ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RvZG8udHh0IGIvcnVudGltZS9kb2MvdG9kby50eHQKaW5kZXggMTk5YzU1MS4uNmVhYzE4ZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdG9kby50eHQKKysrIGIvcnVudGltZS9kb2MvdG9kby50eHQKQEAgLTEsNCArMSw0IEBACi0qdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDAzCisqdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDA0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTMwLDU1ICszMCw0MSBAQAogCQkJCQkJCSprbm93bi1idWdzKgogLS0tLS0tLS0tLS0tLS0tLS0tLS0gS25vd24gYnVncyBhbmQgY3VycmVudCB3b3JrIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLUZ1bmN0aW9uIHRvIGdldCBhbmQgcmVzdG9yZSB3aW5kb3cgcG9zaXRpb24/ICBJbmNsdWRpbmcgdG9wbGluZSwgY29sdW1uCi1vZmZzZXQsIGV0Yy4gIFVzZSBkaWN0aW9uYXJ5IHRvIHN0b3JlIHRoZSBpbmZvPworQWRkIG9wdGlvbnMgdG8gb3B0d2luLnZpbToKK3RhYnBhZ2VtYXgKK3RhYmxpbmUKK3Nob3d0YWJsaW5lCitndWl0YWJsYWJlbAorZm9ybWF0ZXhwcgogCi1DcmFzaCB3aXRoIFggY29tbWFuZCBzZXJ2ZXIgKENpYXJhbiBNY0NyZWVzaCkuCi0KLUN0YWdzIHN0aWxsIGhhc24ndCBpbmNsdWRlZCB0aGUgcGF0Y2guICBEYXJyZW4gaXMgbG9va2luZyBmb3Igc29tZW9uZSB0byBkbwotbWFpbnRhbmFuY2UuICBJcyB0aGVyZSBhbm90aGVyIHNvbHV0aW9uPworQWRkIG9wdGlvbnMgdG8gcXVpY2tyZWYudHh0OgorZ3VpdGFibGFiZWwKK3Nob3d0YWJsaW5lCit0YWJsaW5lCit0YWJwYWdlbWF4CiAKIHNwZWxsaW5nOgotLSBBbHNvIHVzZSB0aGUgc3BlbGxpbmcgZGljdGlvbmFyeSBmb3IgZGljdGlvbmFyeSBjb21wbGV0aW9uLgotICAtPiBwcm9wZXIgY2FzZSBjb21wYXJlIGFnYWluc3QgcGF0dGVybiwgYWxzbyBmb3IgbXVsdGktYnl0ZQotLSBVc2luZyBLRUVQQ0FTRSBmbGFnIHN0aWxsIGFsbG93cyBhbGwtdXBwZXIgd29yZCwgZG9jcyBzYXkgaXQgZG9lc24ndC4KLSAgRG9uJ3QgYWxsb3cgaXQsIGJlY2F1c2UgdGhlcmUgaXMgbm8gb3RoZXIgd2F5IHRvIGRvIHRoaXMuCi0tIFVzZSBydW50aW1lL2NsZWFuYWRkIHNjcmlwdCB0byBjbGVhbnVwIC5hZGQgZmlsZXMuICBXaGVuIHRvIGludm9rZSBpdD8KLSAgQWZ0ZXIgZGVsZXRpbmcgYSB3b3JkIHdpdGggInp3IiBhbmQgc29tZSB0aW1lc3RhbXAgZGlmZmVyZW5jZSBwZXJoYXBzPwotICBTdG9yZSBpdCBhcyBzcGVsbC9jbGVhbmFkZC52aW0uCi0tIEhhdmUgInpnIiBhbmQgInp3IiByZXBvcnQgdGhlIGZpbGUgdGhhdCB3YXMgbW9kaWZpZWQuIChNYXJ2aW4gUmVuaWNoKQotLSBBZGQgYSBjb21tYW5kIGxpa2UgInpnIiB0aGF0IHNlbGVjdHMgb25lIG9mIHRoZSBmaWxlcyBpbiAnc3BlbGxmaWxlJy4KLS0gQWRkIGEgInp1ZyIgY29tbWFuZCB0aGF0IHVuZG9lcyAiemciPyAgRGVsZXRlcyB0aGUgZ29vZCB3b3JkIGluc3RlYWQgb2YKLSAgYWRkaW5nIGEgYmFkIHdvcmQgbGlrZSAienciIHdvdWxkLiAgVXNlICJ6dXciIHRvIHVuZG8gInp3Ij8gIChBbnRvbmlvCi0gIENvbG9tYm8pCi0KIC0gUmVuYW1lIENPTVBPVU5ERkxBR1MgdG8gQ09NUE9VTkRQQVRURVJOIG9yIENPTVBPVU5EUlVMRT8KICAgICBIdW5zcGVsbCBub3cgdXNlcyBDT01QT1VORCB3aXRoIGEgY291bnQuCiAtIENoZWNrIG91dCBIdW5zcGVsbCAxLjEuMy4KKyAgICBUcnkgdG8gbWFrZSB0aGUgbmV3bHkgYWRkZWQgZmVhdHVyZXMgY29tcGF0aWJsZS4KICAgICB3aGF0IGRvZXMgTUFYTkdSQU1TVUdTIGRvPwogICAgIFNlZSBhbm5vdW5jZW1lbnQgKE5lbWV0aCwgNSBqYW4pCiAgICAgaXMgQ09NUExFWFBSRUZJWEVTIG5lY2Vzc2FyeSBub3cgdGhhdCB3ZSBoYXZlIGZsYWdzIGZvciBhZmZpeGVzPwotLSBMb29rIGludG8gaHVuZ2FyaWFuIGRpY3Rpb25hcnk6CistIExvb2sgaW50byBIdW5nYXJpYW4gZGljdGlvbmFyeToKICAgaHR0cDovL21hZ3lhcmlzcGVsbC5zb3VyY2Vmb3JnZS5uZXQvaHVfSFUtMS4wLnRhci5negotLSAgIFN1cHBvcnQgZmxhZ3Mgb24gYSBzdWZmaXguICBVc2VkIGZvciBzZWNvbmQgbGV2ZWwgYWZmaXhlcywgcmFyZSBhbmQKLSAgICBub2NvbXAuICBUaGUgZmxhZ3MgbWF5IGFsc28gYmUgdXNlZCBmb3IgY29tcG91bmRpbmcuICBEZWZhdWx0IGlzIGFuIE9SCi0gICAgbWVjaGFuaXNtIHdpdGggdGhlIGZsYWdzIG9mIHRoZSB3b3JkLiAgQWRkaW5nICJjb21wc2V0IiBvbiB0aGUgYWZmaXhlcwotICAgIG1lYW5zIHRoZSBjb21wb3VuZCBmbGFncyBvZiB0aGUgd29yZCBhcmUgbm90IHVzZWQuCi0gICAgSW5zdGVhZCBvZiAiU0ZYIGEgMCBhZGQvRkxBR1MgLiIgd2UgY291bGQgdXNlICJTRlggYSAwIGFkZCAuIC9GTEFHUyIgKG9yCi0gICAgc3VwcG9ydCBib3RoKS4KIC0gV2hlbiBjb21wb3VuZGluZyBIdW5zcGVsbCBkb2Vzbid0IGFsbG93IGFmZml4ZXMgaW5zaWRlIHRoZSBjb21wb3VuZCB3b3JkLAogICBvbmx5IGJlZm9yZSBhbmQgYWZ0ZXIgaXQuICBDT01QT1VORFBFUk1JVEZMQUcgY2FuIGJlIHVzZWQgdG8gYWxsb3cgaXQuCiAgIENoZWNrIE15c3BlbGwgYW5kIEFzcGVsbCBpZiB0aGV5IGFsc28gd29yayB0aGlzIHdheS4KICAgVGh1cyBhIHdvcmQgKyBzdWZmaXggbmVlZHMgYSBmbGFnIHRoYXQgaXQgY2FuJ3QgYmUgdXNlZCB3aXRoIGEgZm9sbG93aW5nCiAgIGNvbXBvdW5kLCBhbmQgd29yZCArIHByZWZpeCBjYW4ndCBiZSBhZnRlciBhbm90aGVyIHdvcmQgaW4gYSBjb21wb3VuZC4KIC0gSW1wbGVtZW50IENPTVBPVU5ERk9SQklERkxBRyAuCi0tIFN1cHBvcnQgYnJlYWtwb2ludCBjaGFyYWN0ZXIgtyAweGI3IGFuZCBpZ25vcmUgaXQ/ICBNYWtlcyBpdCBwb3NzaWJsZSB0byB1c2UKLSAgc2FtZSB3b3JkbGlzdCBmb3IgaHlwaGVuYXRpb24uCi0KLUlzIGl0IHBvc3NpYmxlIHRvIGtlZXAgdGhlIGNvbW1hbmQtbGluZSB3aW5kb3cgb3Blbj8gIFdvdWxkIGFjdHVhbGx5IHdvcmsgbGlrZQotY2xvc2luZyBpdCwgZXhlY3V0aW5nIHRoZSBjb21tYW5kIGFuZCByZS1vcGVuaW5nIGl0IChhdCB0aGUgc2FtZSBwb3NpdGlvbikuCiAKIE1hYyB1bmljb2RlIHBhdGNoIChEYSBXb29uIEp1bmcpOgorLSAgIE1hYzogVW5pY29kZSBpbnB1dCBhbmQgZGlzcGxheSAoRWNrZWhhcmQgQmVybnMsIDIwMDQgSnVuZSAyNykKKyAgICBPdGhlciBwYXRjaCBmcm9tIERhIFdvb24gSnVuZywgMjAwNSBKYW4gMTYuCis4ICAgQWRkIHBhdGNoIGZyb20gTXVyYW9rYSBUYXJvIChNYXIgMTYpIHRvIHN1cHBvcnQgaW5wdXQgbWV0aG9kIG9uIE1hYz8KKyAgICBOZXcgcGF0Y2ggMjAwNCBKdW4gMTYKIC0gY29uZmlndXJhdGlvbiBvcHRpb24gZm9yIHBsYXRmb3JtOiBpMzg2LCBwcGMgb3IgYm90aC4KICAgICBVc2UgX19MSVRUTEVfRU5ESUFOX18gdG8gdGVzdCBmb3IgY3VycmVudCBwbGF0Zm9ybS4KIC0gc2VsZWN0aW5nIHByb3BvcnRpb25hbCBmb250IGJyZWFrcyBkaXNwbGF5CkBAIC04OSwxOCArNzUsMjUgQEAKIC0gV2l0aCAnbm9wYXN0ZScgcGFzdGluZyBpcyB3cm9uZywgd2l0aCAncGFzdGUnIENvbW1hbmQtViBkb2Vzbid0IHdvcmsuCiAgIChBbGFuIFNjaG1pdHQpCiAKLVBhdGNoIHRvIGFkZCBhIGZldyBmbGFncyB0byBzZWFyY2goKS4gKEJlbmppIEZpc2hlciwgTm92IDI5LCBkb2MgdXBkYXRlIERlYyAxKQorOCAgIFN1cHBvcnQgZm91ciBjb21wb3NpbmcvY29tYmluaW5nIGNoYXJhY3RlcnMsIG5lZWRlZCBmb3IgSGVicmV3LiAoUm9uIEFhcm9uKQorICAgIEFkZCB0aGUgJ21heGNvbWJpbmluZycgb3B0aW9uIHRvIHNldCB0aGUgbnIuIG9mIGNvbXBvc2luZyBjaGFyYWN0ZXJzLgorICAgIEF0IHRoZSBzYW1lIHRpbWUgc3VwcG9ydCAzMiBiaXQgVW5pY29kZSBjaGFyYWN0ZXJzPworOCAgICJnYSIgc2hvdWxkIHNob3cgYWxsIGNvbXBvc2luZyBjaGFyYWN0ZXJzLCBhbHNvIGlmIHRoZXJlIGFyZSBtb3JlIHRoYW4gMi4KKzggICBTZWFyY2hpbmcgZm9yIGEgY29tcG9zaW5nIGNoYXJhY3RlciBieSBpdHNlbGYgc2hvdWxkIHdvcmsuICBQZXJoYXBzICIuIgorICAgIHdpdGggYSBjb21wb3NpbmcgY2hhciBzaG91bGQgd29yayB0b28uCiAKIFdpbjMyOiBVc2UgdGhlIGZyZWUgZG93bmxvYWRhYmxlIGNvbXBpbGVyIDcuMSAoMjAwMykuICBGaWd1cmUgb3V0IGhvdyB0byBkbwogZGVidWdnaW5nICh3aXRoIEFnaWRlPykgYW5kIGRlc2NyaWJlIGl0LiAoR2VvcmdlIFJlaWxseSkKIFRyeSBvdXQgdXNpbmcgdGhlIGZyZWUgTVMgY29tcGlsZXIgYW5kIGRlYnVnZ2VyLCB1c2luZyBNYWtlX212Yy5tYWsuCi1UcnkgdXNpbmcgVmlzdWFsIEMrKyBFeHByZXNzIDIwMDUuIChJbHlhIEJvYmlyIERlYyAyMCkKLSAgICBEaXNhZHZhbnRhZ2U6IEFubm95aW5nIHdhcm5pbmcgbWVzc2FnZXMsIHJlcXVpcmVzIC4uLl9OT19ERVBSRUNBVEUsIHRoaXMKLSAgICBpcyBub3QgYSBzdGFuZGFyZCBjb21waWxlci4KK0Fsc28gZ2VuZXJhdGUgdGhlIC5wZGIgZmlsZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGdlbmVyYXRlIGEgdXNlZnVsIGNyYXNoIHJlcG9ydAorb24gTVMtV2luZG93cy4gKEdlb3JnZSBSZWlsbHkpCiAKIFdpbjMyOiBDaGVjayB0aGF0IGluc3RhbGxlciBwdXRzIG1lbnUgaXRlbXMgaW4gImFsbCB1c2VycyIgZGlyIHdoZW4gcG9zc2libGUsCiBub3QgYWRtaW5pc3RyYXRvciBkaXIuCiAKK1doZW4gIj0gZXZhbHVhdGlvbiByZXN1bHRzIGluIGEgTGlzdCwgdXNlIGl0IGFzIGEgc2VxdWVuY2Ugb2YgbGluZXMuCitBcyBpZiBqb2luKGxpc3QsICJcbiIpIHdhcyB1c2VkLgorCiBBdXRvbG9hZDoKIC0gQWRkIGEgVmltIHNjcmlwdCBpbiAkVklNUlVOVElNRS90b29scyB0aGF0IHRha2VzIGEgZmlsZSB3aXRoIGEgbGlzdCBvZgogICBzY3JpcHQgbmFtZXMgYW5kIGEgaGVscCBmaWxlIGFuZCBwcm9kdWNlcyBhIHNjcmlwdCB0aGF0IGNhbiBiZSBzb3VyY2VkIHRvCkBAIC0xMTIsMjIgKzEwNSwxMiBAQAogICAgIGhlbHBmaWxlIGRvYy9teXNjcmlwdC50eHQKICAgRm9yIHRoZSAiaGVscGZpbGUiIGl0ZW0gIjpoZWxwdGFncyIgaXMgcnVuLgogCi1BZGQgIjpzbWFwIiwgU2VsZWN0IG1vZGUgbWFwcGluZz8gIE90aGVyd2lzZTogIjpzdW5tYXAiLCBzbyB0aGF0IFZpc3VhbCBtb2RlCi1tYXBwaW5ncyBmb3Igbm9ybWFsIGtleXMgY2FuIGJlIHJlbW92ZWQgZnJvbSBTZWxlY3QgbW9kZS4KLQogV2hlbiBleHBhbmRpbmcgb24gdGhlIGNvbW1hbmQgbGluZSwgcmVjb2duaXplIHNoZWxsIGNvbW1hbmRzLCBzdWNoIGFzICI6IWNtZCIuCiBDb21wbGV0ZSBjb21tYW5kIG5hbWVzIGJ5IHNlYXJjaGluZyBpbiAkUEFUSC4gIFdoZW4gY29tcGxldGluZyBmaWxlIG5hbWVzCiBlc2NhcGUgc3BlY2lhbCBjaGFyYWN0ZXJzICI7Jjw+KCl7fSIuIChBZHJpIFZlcmhvZWYpCiAKIEFyZSB0aGVyZSBtb3JlIGNvbW1hbmRzIHdoZXJlIHY6c3dhcGNvbW1hbmQgY2FuIGJlIHNldCB0byBzb21ldGhpbmcgdXNlZnVsPwogCi1QdXQgYXV0b2NvbW1hbmQgZXZlbnQgbmFtZXMgaW4gYSBoYXNodGFibGUgZm9yIGZhc3RlciBsb29rdXA/Ci0KLUF3YWl0aW5nIHJlc3BvbnNlOgotLSAgIFdpbjMyOiB0ZWFyb2ZmIG1lbnUgd2luZG93IHNob3VsZCBoYXZlIGEgc2Nyb2xsYmFyIHdoZW4gaXQncyB0YWxsZXIgdGhhbgotICAgIHRoZSBzY3JlZW4uCi0tICAgbWJsZW4oTlVMTCwgMCkgYWxzbyBpbiBWaW0gNi4zPwotCiAKIENPTlNJREVSRUQgRk9SIFZFUlNJT04gNy4wOgogCkBAIC0xNDgsOCArMTMxLDggQEAKICAgICAgIGNoYXJhY3RlcnMvc3RyaW5ncy4gKE1hcnRpbiBTdHViZW5zY2hyb3R0KQogICAgICAgQW5kL29yOiBQcm92aWRlIGEgZnVuY3Rpb24gdG8gcG9wdXAgdGhlIG1lbnUsIHNvIHRoYXQgYW4gaW5zZXJ0IG1vZGUKICAgICAgIG1hcHBpbmcgY2FuIHN0YXJ0IGl0ICh3aXRoIGEgc3BlY2lmaWMgc2VsZWN0aW9uKS4KLSAgICAtIEdVSSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcG9wdXAgbWVudS4KLSAgICAtIFNob3cgImluZm8iIGZyb20gYSBtYXRjaCBpbiBwcmV2aWV3IHdpbmRvdy4KKyAgICAtIFNob3cgImluZm8iIGZyb20gYSBtYXRjaCBpbiBwcmV2aWV3IHdpbmRvdyAod2l0aCBhbiBvcHRpb24gb3IgYnkgb3BlbmluZworICAgICAgYSBwcmV2aWV3IHdpbmRvdyB3aXRoIGEgc3BlY2lmaWMgbmFtZSkuCiAgICAgICBPciB1c2Ugb25lIHdpbmRvdyBmb3IgbWF0Y2hlcywgYW5vdGhlciBmb3IgY29udGV4dC9pbmZvIChEb3VnIEtlYXJucywKICAgICAgIDIwMDUgU2VwIDEzKQogICAgIC0gSWRlYXMgb246IGh0dHA6Ly93d3cud2hvbGV0b21hdG8uY29tLwpAQCAtMTk5LDQ2ICsxODIsMTEgQEAKICAgICBTaG93IHRoZSBsaXN0IG9mIGNoYW5nZXMgaW4gYSB3aW5kb3cgdG8gYmUgYWJsZSB0byBzZWxlY3QgYSB2ZXJzaW9uPwogICAgIEFsc286IFNlZSAiOmUiIGFzIGEgY2hhbmdlIG9wZXJhdGlvbiwgZmluZCB0aGUgY2hhbmdlcyBhbmQgYWRkIHRoZW0gdG8gdGhlCiAgICAgdW5kbyBpbmZvLiAgTmVlZGVkIGZvciB3aGVuIGFuIGV4dGVybmFsIHRvb2wgY2hhbmdlcyB0aGUgZmlsZS4KLS0gICBQRVJTSVNURU5UIFVORE86IHN0b3JlIHVuZG8gaW4gYSBmaWxlLgotICAgIFVzZSB0aW1lc3RhbXBzLCBzbyB0aGF0IGEgdmVyc2lvbiBhIGNlcnRhaW4gdGltZSBhZ28gY2FuIGJlIGZvdW5kIGFuZCBpbmZvCi0gICAgYmVmb3JlIHNvbWUgdGltZS9kYXRlIGNhbiBiZSBmbHVzaGVkLiAndW5kb3BlcnNpc3QnIGdpdmVzIG1heGltdW0gdGltZSB0bwotICAgIGtlZXAgdW5kbzogIjNoIiwgIjFkIiwgIjJ3IiwgIjF5IiwgZXRjLiAgRm9yIHRoZSBmaWxlIHVzZSBkb3QgYW5kCi0gICAgZXh0ZW5zaW9uOiAiLmZpbGVuYW1lLnVufiIgKGxpa2Ugc3dhcGZpbGUgYnV0ICJ1bn4iIGluc3RlYWQgb2YgInN3cCIpLgorCiAtICAgRU1CRURESU5HOiBNYWtlIGl0IHBvc3NpYmxlIHRvIHJ1biBWaW0gaW5zaWRlIGEgd2luZG93IG9mIGFub3RoZXIgcHJvZ3JhbS4KICAgICBGb3IgWHdpbmRvd3MgdGhpcyBjYW4gYmUgZG9uZSB3aXRoIFhSZXBhcmVudFdpbmRvdygpLgogICAgIEZvciBHVEsgTmVpbCBCaXJkIGhhcyBhIHBhdGNoIHRvIHVzZSBWaW0gbGlrZSBhIHdpZGdldC4KLS0gICBBZGQgQ09MVU1OIE5VTUJFUlMgdG8gIjoiIGNvbW1hbmRzICI6bGluZTEsbGluZTJbY29sMSxjb2wyXWNtZCIuICBCbG9jawotICAgIGNhbiBiZSBzZWxlY3RlZCB3aXRoIENUUkwtVi4gIEFsbG93ICckJyAoZW5kIG9mIGxpbmUpIGZvciBjb2wyLgotLSAgIEFkZCBERUJVR0dFUiBJTlRFUkZBQ0UuICBJbXBsZW1lbnRhdGlvbiBmb3IgZ2RiIGJ5IFhhdmllciBkZSBHYXllLgotICAgIFNob3VsZCB3b3JrIGxpa2UgYW4gSURFLiAgVHJ5IHRvIGtlZXAgaXQgZ2VuZXJpYy4gIE5vdyBmb3VuZCBoZXJlOgotICAgIGh0dHA6Ly9jbGV3bi5zZi5uZXQuCi0gICAgQW5kIHRoZSBpZGV2aW0gcGx1Z2luL3NjcmlwdC4KLSAgICBUbyBiZSBhYmxlIHRvIHN0YXJ0IHRoZSBkZWJ1Z2dlciBmcm9tIGluc2lkZSBWaW06IEZvciBHVUkgcnVuIGEgcHJvZ3JhbQotICAgIHdpdGggYSBuZXRiZWFucyBjb25uZWN0aW9uOyBmb3IgY29uc29sZTogc3RhcnQgYSBwcm9ncmFtIHRoYXQgc3BsaXRzIHRoZQotICAgIHRlcm1pbmFsLCBydW5zIHRoZSBkZWJ1Z2dlciBpbiBvbmUgd2luZG93IGFuZCByZWNvbm5lY3QgVmltIEkvTyB0byB0aGUKLSAgICBvdGhlciB3aW5kb3cuCi0gICAgV2lzaGVzIGZvciBOZXRCZWFucyBjb21tYW5kczoKLSAgICAtIG1ha2UgaXQgcG9zc2libGUgdG8gaGF2ZSAnZGVmaW5lQW5ub1R5cGUnIGFsc28gaGFuZGxlIHRlcm1pbmFsIGNvbG9ycy4KLSAgICAtIHNlbmQgJ2JhbGxvb25UZXh0JyBldmVudHMgZm9yIHRoZSBjdXJzb3IgcG9zaXRpb24gKHVzaW5nIEN1cnNvckhvbGQgPykKLSAgICAgIGluIHRlcm1pbmFsIG1vZGUuCi0tICAgRUNMSVBTRSBwbHVnaW4uICBQcm9ibGVtIGlzOiB0aGUgaW50ZXJmYWNlIGlzIHZlcnkgY29tcGxpY2F0ZWQuICBOZWVkIHRvCi0gICAgaW1wbGVtZW50IHBhcnQgaW4gSmF2YSBhbmQgdGhlbiBjb25uZWN0IHRvIFZpbS4gIFNvbWUgaGludHMgZnJvbSBBbGV4YW5kcnUKLSAgICBSb21hbiwgMjAwNCBEZWMgMTUuICBTaG91bGQgdGhlbiBhbHNvIHdvcmsgd2l0aCBPcmFjbGUgSmRldmVsb3Blciwgc2VlIEpTUgotICAgIDE5OCBzdGFuZGFyZCBodHRwOi8vd3d3LmpjcC5vcmcvZW4vanNyL2RldGFpbD9pZD0xOTguCi0gICAgRWNsaW0gZG9lcyBpdDogaHR0cDovL2VjbGltLnNvdXJjZWZvcmdlLm5ldC8gIChFcmljIFZhbiBEZXdvZXN0aW5lKQotICAgIFBsdWdpbiB0aGF0IHVzZXMgYSB0ZXJtaW5hbCBlbXVsYXRvcjogaHR0cDovL3ZpbXBsdWdpbi5zZi5uZXQKLS0gICBTVElDS1kgQ1VSU09SOiBBZGQgYSB3YXkgb2Ygc2Nyb2xsaW5nIHRoYXQgbGVhdmVzIHRoZSBjdXJzb3Igd2hlcmUgaXQgaXMuCi0gICAgRXNwZWNpYWxseSB3aGVuIHVzaW5nIHRoZSBzY3JvbGxiYXIuICBUeXBpbmcgYSBjdXJzb3ItbW92ZW1lbnQgY29tbWFuZAotICAgIHNjcm9sbHMgYmFjayB0byB3aGVyZSB0aGUgY3Vyc29yIGlzLgotLSAgIEV4ZWN1dGUgYSBmdW5jdGlvbiB3aXRoIHN0YW5kYXJkIG9wdGlvbiB2YWx1ZXMuICBObyBuZWVkIHRvIHNhdmUgYW5kCi0gICAgcmVzdG9yZSBvcHRpb24gdmFsdWVzLiAgRXNwZWNpYWxseSB1c2VmdWwgZm9yIG5ldyBvcHRpb25zLiAgUHJvYmxlbTogaG93Ci0gICAgdG8gYXZvaWQgYSBwZXJmb3JtYW5jZSBwZW5hbHR5IChlc3AuIGZvciBzdHJpbmcgb3B0aW9ucyk/Ci04ICAgU3VwcG9ydCBmb3VyIGNvbXBvc2luZy9jb21iaW5pbmcgY2hhcmFjdGVycywgbmVlZGVkIGZvciBIZWJyZXcuIChSb24gQWFyb24pCi0gICAgQWRkIHRoZSAnbWF4Y29tYmluaW5nJyBvcHRpb24gdG8gc2V0IHRoZSBuci4gb2YgY29tcG9zaW5nIGNoYXJhY3RlcnMuCi0gICAgQXQgdGhlIHNhbWUgdGltZSBzdXBwb3J0IDMyIGJpdCBVbmljb2RlIGNoYXJhY3RlcnM/Ci04ICAgImdhIiBzaG91bGQgc2hvdyBhbGwgY29tcG9zaW5nIGNoYXJhY3RlcnMsIGFsc28gaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiAyLgotOCAgIFNlYXJjaGluZyBmb3IgYSBjb21wb3NpbmcgY2hhcmFjdGVyIGJ5IGl0c2VsZiBzaG91bGQgd29yay4gIFBlcmhhcHMgIi4iCi0gICAgd2l0aCBhIGNvbXBvc2luZyBjaGFyIHNob3VsZCB3b3JrIHRvby4KKwogLSAgIEFkZCBhIGZldyBtb3JlIHRoaW5ncyB0byAnZGlmZm9wdCc6ICJob3Jpem9udGFsIiwgInZlcnRpY2FsIiwKICAgICAiZm9sZGNvbHVtbiIuIChCZW5qaSBGaXNoZXIsIDIwMDQgSnVuIDIxKQogLSAgIEZpbGVDaGFuZ2VkU2hlbGxQb3N0IGF1dG9jb21tYW5kIGV2ZW50OiBhZnRlciAobm90KSByZWxvYWRpbmcgYSBjaGFuZ2VkCkBAIC0yNDgsMTUgKzE5Niw2IEBACiAJSXQncyBub3QgY2xlYXIgdGhhdCB0aGlzIGRvZXNuJ3QgY2F1c2UgcHJvYmxlbXMgd2hlbiB0aGUgZXhlY3V0ZWQKIAljb21tYW5kcyBkbyBzb21ldGhpbmcgbGlrZSBjaGFuZ2luZyAnbGluZXMnLiAgRXNwLiBiZWNhdXNlIHRoZSAKIAlzY3JlZW4gaGFzIG5vdCB5ZXQgYmVlbiBhbGxvY2F0ZWQgd2l0aCB0aGUgbmV3IHNpemUuCi0tICAgUnVubmluZyBhIHNoZWxsIGNvbW1hbmQgZnJvbSB0aGUgR1VJIHN0aWxsIGhhcyBsaW1pdGF0aW9ucy4gIExvb2sgaW50byBob3cKLSAgICB0aGUgVmltIHNoZWxsIHByb2plY3QgY2FuIGhlbHA6IGh0dHA6Ly92aW1zaGVsbC53YW5hLmF0Ci0tICAgRGlzcGxheWluZyBzaXplIG9mIFZpc3VhbCBhcmVhOiB1c2UgMjQtMzMgY29sdW1uIGRpc3BsYXkuCi0gICAgV2hlbiBzZWxlY3RpbmcgbXVsdGlwbGUgbGluZXMsIHVwIHRvIGFib3V0IGEgc2NyZWVuZnVsLCBhbHNvIGNvdW50IHRoZQotICAgIGNoYXJhY3RlcnMuCi0tICAgTWFjOiBVbmljb2RlIGlucHV0IGFuZCBkaXNwbGF5IChFY2tlaGFyZCBCZXJucywgMjAwNCBKdW5lIDI3KQotICAgIE90aGVyIHBhdGNoIGZyb20gRGEgV29vbiBKdW5nLCAyMDA1IEphbiAxNi4KLTggICBBZGQgcGF0Y2ggZnJvbSBNdXJhb2thIFRhcm8gKE1hciAxNikgdG8gc3VwcG9ydCBpbnB1dCBtZXRob2Qgb24gTWFjPwotICAgIE5ldyBwYXRjaCAyMDA0IEp1biAxNgogOSAgIEFkZCBjdXJzb3ItY29sdW1uIGhpZ2hsaWdodGluZy4gIEVuYWJsZSBpdCB3aXRoICdjdXJzb3Jjb2x1bW4nIG9wdGlvbiwKICAgICBzZXQgaGlnaGxpZ2h0aW5nIHdpdGggIkN1cnNvckNvbHVtbiIgZ3JvdXAuICBVc2VmdWwgZm9yIGFsaWduaW5nIHRleHQuCiAgICAgQWxzbyBjdXJzb3Itcm93IGhpZ2hsaWdodGluZy4gIFBhdGNoIGZyb20gWWFzdWhpcm8gTWF0c3Vtb3RvIGZvcgpAQCAtMjY5LDc4ICsyMDgsNDMgQEAKIC0gICBXaGVuIHVzaW5nICdpbmNzZWFyY2giIENUUkwtUiBDVFJMLVcgZ2V0cyB0aGUgd29yZCB1bmRlciB0aGUgY3Vyc29yLCBidXQKICAgICB0aGUgcGFydCB0aGF0IGFscmVhZHkgbWF0Y2hlZCBpcyBkb3VibGVkIHRoZW4uICBSZW1vdmUgdGhlIHBhcnQgb2YgdGhlCiAgICAgd29yZCB0aGF0IHdvdWxkIGJlIGRvdWJsZWQuICBNYWtlIGl0IHdvcmsgbGluZSBDVFJMLU4gaW4gSW5zZXJ0IG1vZGUuCi0tICAgQWRkIEx1YSBpbnRlcmZhY2U/IChXb2xmZ2FuZyBPZXJ0bCkKIC0gICAib25lbW9yZSIgZmxhZyBpbiAndmlydHVhbGVkaXQnOiBtb3ZlIGN1cnNvciBwYXN0IGVuZCBvZiBsaW5lLiAgUGF0Y2ggYnkKICAgICBNYXR0aWFzIEZsb2RpbiAoMjAwNCBKdWwgMzApCiAtICAgSW4gYSA6cyBjb21tYW5kIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBzaG91bGQgYWxzbyBiZSB1cHBlci9sb3dlciBjYXNlZAogICAgIHdpdGggXHUsIFxVLCBldGMuCi04ICAgQWRkIGEgY29tbWFuZCB0byBqdW1wIHRvIGEgY2VydGFpbiBraW5kIG9mIHRhZy4gIEFsbG93IHRoZSB1c2VyIHRvIHNwZWNpZnkKLSAgICB2YWx1ZXMgZm9yIHRoZSBvcHRpb25hbCBmaWVsZHMuICBFLmcuLCAiOnRhZyBzaXplIHR5cGU9bSIuCi0gICAgQWxzbyBhbGxvdyBzcGVjaWZ5aW5nIHRoZSBmaWxlIGFuZCBjb21tYW5kLCBzbyB0aGF0IHRoZSByZXN1bHQgb2YKLSAgICB0YWdsaXN0KCkgY2FuIGJlIHVzZWQuCiAKLUFkanVzdCBzcmMvbWFpbi5hYXAgZm9yIGluc3RhbGxpbmcgbWFucGFnZXMgbGlrZSBpbiBNYWtlZmlsZS4KLUFuZCBmb3IgZ2VuZXJhdGluZyBWaW0uYXBwIGZvciB0aGUgTWFjLgotSW5zdGFsbCBzcGVsbCBmaWxlcyB3aXRoIHNyYy9tYWluLmFhcC4KKy0gICBBZGp1c3Qgc3JjL21haW4uYWFwIGZvciBpbnN0YWxsaW5nIG1hbnBhZ2VzIGxpa2UgaW4gTWFrZWZpbGUuCisgICAgQW5kIGZvciBnZW5lcmF0aW5nIFZpbS5hcHAgZm9yIHRoZSBNYWMuCisgICAgSW5zdGFsbCBzcGVsbCBmaWxlcyB3aXRoIHNyYy9tYWluLmFhcC4KIAotV2hlbiBlZGl0aW5nIGEgZmlsZSB3aXRoIGJvdGggdXRmLTggYW5kIGxhdGluMSB0ZXh0IFZpbSBhbHdheXMgZmFsbHMgYmFjayB0bwotbGF0aW4xLiAgQWRkIGEgY29tbWFuZCB0byBjb252ZXJ0IHRoZSBsYXRpbjEgY2hhcmFjdGVycyB0byB1dGYtOD8KLSAgICA6dW5taXggdXRmLTgsbGF0aW4xIGZpbGVuYW1lCi1Xb3VsZCBvbmx5IHdvcmsgd2hlbiAnZW5jb2RpbmcnIGlzIHV0Zi04LgotQWxzbzogY29tbWFuZCB0byBzZWFyY2ggZm9yIGlsbGVnYWwgdXRmLTggYnl0ZSBzZXF1ZW5jZT8KLQotQWxzbyBnZW5lcmF0ZSB0aGUgLnBkYiBmaWxlIHRoYXQgY2FuIGJlIHVzZWQgdG8gZ2VuZXJhdGUgYSB1c2VmdWwgY3Jhc2ggcmVwb3J0Ci1vbiBNUy1XaW5kb3dzLiAoR2VvcmdlIFJlaWxseSkKKy0gICBBZGQgY29tbWFuZCB0byBzZWFyY2ggZm9yIGlsbGVnYWwgdXRmLTggYnl0ZSBzZXF1ZW5jZS4KIAogQWRkIHN0cnRvbCgpIHRvIGF2b2lkIHRoZSBwcm9ibGVtcyB3aXRoIGxlYWRpbmcgemVybyBjYXVzaW5nIG9jdGFsIGNvbnZlcnNpb24uCiAKLVRyeSBuZXcgUE9TSVggdGVzdHMsIG1hZGUgYWZ0ZXIgbXkgY29tbWVudHMuIChHZW9mZiBDbGFyZSwgMjAwNSBBcHJpbCA3KQotVmVyc2lvbiAxLjUgaXMgaW4gfi9zcmMvcG9zaXgvMS41LiAoTHlubmUgQ2FuYWwpCi0KIEFkZCBhICd0b29sJyB3aW5kb3c6IGJlaGF2ZXMgbGlrZSBhIHByZXZpZXcgd2luZG93IGJ1dCB0aGVyZSBjYW4gYmUgc2V2ZXJhbC4KIERvbid0IGNvdW50IGl0IGluIG9ubHlfb25lX3dpbmRvdygpLiAoQWxleGVpIEFsZXhhbmRyb3YpCiAKIFdpbjMyOiBQYXRjaCBmb3IgS29yZWFuIElNRS4gKFl1c3VuZywgMjAwNSBNYXJjaCAyMSkKIAotV2hlbiAiPSBldmFsdWF0aW9uIHJlc3VsdHMgaW4gYSBMaXN0LCB1c2UgaXQgYXMgYSBzZXF1ZW5jZSBvZiBsaW5lcy4KLQogU3VwcG9ydCAiOnNldCBzeW50YXg9Y3BwLmRveHlnZW4iPyAgU3VnZ2VzdGVkIHBhdGNoIGJ5IE1pY2hhZWwgR2VkZGVzICg5IEF1ZwogMjAwNCkuICBTaG91bGQgYWxzbyB3b3JrIGZvciAnZmlsZXR5cGUnLgogCi1Gb3IgbWFuaXB1bGF0aW5nIGJ1ZmZlcnMgd2l0aG91dCBvcGVuaW5nIGEgbmV3IHdpbmRvdywgc3VwcG9ydCBWaXJ0dWFsCi13aW5kb3dzLiAgRXhhbXBsZToKLSAgICA6dmlydHdpbiBsZXQgbCA9IEdldEJ1ZkxpbmUoNCwgMTApCi0gICAgOmZ1biBHZXRCdWZMaW5lKGJ1Zm5yLCBsbnVtKQotICAgIDogIGV4ZSAiYnVmZmVyICIgLiBhOmJ1Zm5yCi0gICAgOiAgcmV0dXJuIGdldGxpbmUobG51bSkKLSAgICA6ZW5kZnVuCi1UaGUgZ2V0bGluZSgpIGFuZCBzZXRsaW5lKCkgZnVuY3Rpb25zIGNvdWxkIHdvcmsgZm9yIG90aGVyIGJ1ZmZlcnMsIHVzaW5nIGEKLVZpcnR1YWwgd2luZG93LgotQSBWaXJ0dWFsIHdpbmRvdyBvbmx5IGV4aXN0cyBmb3Igb25lIGNvbW1hbmQuICBUaGVyZSBjYW4gYmUgc2V2ZXJhbCAoZm9yCi1uZXN0ZWQgY29tbWFuZHMpLiAgVGhlIHdpbmRvdyB3b3JrcyBhcyBpZiBpdCBjb21lcyBhZnRlciB0aGUgbGFzdCB3aW5kb3csIHNpemUKLWlzIHRoZSBWaW0gd2luZG93IHNpemUsIGJ1dCBpdCdzIG5ldmVyIGRpc3BsYXllZC4KLQogV2luMzI6IEluIHRoZSBnZW5lcmF0ZWQgYmF0Y2ggZmlsZXMsIHVzZSAkVklNUlVOVElNRSBpZiBpdCdzIHNldC4gIEV4YW1wbGVzIGJ5CiBNYXRoaWFzIE1pY2hhZWxpcyAoMjAwNCBTZXAgNikKIEFsc28gcGxhY2UgdmltdHV0b3IuYmF0IGluICV3aW5kaXIlPwogCi1BZGQgZ3VpX21jaF9icm93c2VkaXIoKSBmb3IgTW90aWYsIE1hYyBPUy9YLgorQ3RhZ3Mgc3RpbGwgaGFzbid0IGluY2x1ZGVkIHRoZSBwYXRjaC4gIERhcnJlbiBpcyBsb29raW5nIGZvciBzb21lb25lIHRvIGRvCittYWludGFuYW5jZS4gIElzIHRoZXJlIGFub3RoZXIgc29sdXRpb24/CiAKLUhUTUwgaW5kZW50aW5nIGNhbiBiZSBzbG93LCBmaW5kIG91dCB3aHkuICBBbnkgd2F5IHRvIGRvIHNvbWUga2luZCBvZgotcHJvZmlsaW5nIGZvciBWaW0gc2NyaXB0PyAgQXQgbGVhc3QgYWRkIGEgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjdXJyZW50IHRpbWUgaW4KLXVzZWMuICByZWx0aW1lKFtzdGFydCwgW2VuZF1dKQorSFRNTCBpbmRlbnRpbmcgY2FuIGJlIHNsb3csIGZpbmQgb3V0IHdoeS4KK0FkZCBhIGZ1bmN0aW9uIHRvIGdldCB0aGUgY3VycmVudCB0aW1lIGluIHVzZWMuICByZWx0aW1lKFtzdGFydCwgW2VuZF1dKQogICAgIHJlbHRpbWUoKS5zZWMgPT0gc2Vjb25kcywgcmVsdGltZSgpLnVzZWMgPSBtaWNyb3NlY29uZHMKICAgICByZWx0aW1lKHN0YXJ0KSBjdXJyZW50IHRpbWUgcmVsYXRpdmUgdG8gW3N0YXJ0XQogCWVjaG8gdGltZXN0cmluZyhyZWx0aW1lKHN0YXJ0KSwgMykgICgzIGlzIG5yIG9mIGRpZ2l0cyBhZnRlciBkb3QpCiAgICAgcmVsdGltZShzdGFydCwgZW5kKSBkaWZmZXJlbmNlIGJldHdlZW4gc3RhcnQgYW5kIGVuZAotUmVhbCBQcm9maWxpbmc6Ci0gICAgLSA6cHJvZmlsZSBzdGFydCAvdG1wL3NvbWVmaWxlICAoYXBwZW5kIGlmIGV4aXN0cykKK1Byb2ZpbGluZzoKICAgICAtIDpwcm9maWxlIHBhdXNlCiAgICAgLSA6cHJvZmlsZSByZXN1bWUKLSAgICAtIDpwcm9maWxlIHN0b3AKLSAgICAtIHBlciBmdW5jdGlvbiBsaW5lCi0gICAgLSBzZWxmLCBWaW0gYW5kIHRvdGFsIHRpbWUgKGluY2wgc3lzdGVtIHRpbWUpCi0gICAgLSBkdW1wIHJlc3VsdHMgaW4gZmlsZSBvbiBleGl0IG9yIHdoZW4gc3RvcHBlZC4KIAogQWRkIG1vcmUgdGVzdHMgZm9yIGFsbCBuZXcgZnVuY3Rpb25hbGl0eSBpbiBWaW0gNy4gIEVzcGVjaWFsbHkgbmV3IGZ1bmN0aW9ucy4KIApAQCAtMzUxLDk0ICsyNTUsOTYgQEAKIEFkZCBhIGZsYWcgdG8gY2hlY2sgZm9yIGEgbWF0Y2ggd2l0aCB0aGUgbmV4dCBpdGVtIGZpcnN0PyAgSGVscHMgZm9yCiBjb250aW51YXRpb24gbGluZXMgdGhhdCBtYXkgY29udGFpbiBqdXN0IGFib3V0IGFueXRoaW5nLgogCi1Bd2FpdGluZyB1cGRhdGVkIHBhdGNoZXM6Ci0gICAgLS0tIGF3YWl0aW5nIHVwZGF0ZWQgcGF0Y2ggLS0tCi0gICAgOCAgIEFkZCAiOm4iIHRvIGZuYW1lbW9kaWZ5KCk6IG5vcm1hbGl6ZSBwYXRoLCByZW1vdmUgIi4uLyIgd2hlbiBwb3NzaWJsZS4KLQlBcmljIEJsdW1lciBoYXMgYSBwYXRjaCBmb3IgdGhpcy4KLQlIZSB3aWxsIHVwZGF0ZSB0aGUgcGF0Y2ggZm9yIDYuMy4KLSAgICBBdXRvY29tbWFuZHM6Ci0gICAgNyAgIENvbXBsZXRpb24gb2YgbmV0d29yayBzaGFyZXMsIHBhdGNoIGJ5IFlhc3VoaXJvIE1hdHN1bW90by4KLQlVcGRhdGUgMjAwNCBTZXAgNi4KLQlIb3cgZG9lcyB0aGlzIHdvcms/ICBNaXNzaW5nIGNvbW1lbnRzLgotICAgIC0JZ2V0dGV4dCgpCVRyYW5zbGF0ZSBhIG1lc3NhZ2UuICAoUGF0Y2ggZnJvbSBZYXN1aGlybyBNYXRzdW1vdG8pCi0JCQlVcGRhdGUgMjAwNCBTZXAgMTAKLQkJCUFub3RoZXIgcGF0Y2ggZnJvbSBFZHdhcmQgTC4gRm94ICgyMDA1IE5vdiAyNCkKLQkJCVNlYXJjaCBpbiAncnVudGltZXBhdGgnPwotCQkJTW9yZSBkb2NzIGFib3V0IGhvdyB0byB1c2UgdGhpcy4KLQkJCUhvdyB0byBnZXQgdGhlIG1lc3NhZ2VzIGludG8gdGhlIC5wbyBmaWxlcz8KLSAgICAtLS0gZGlkIG5vdCByZXNwb25kICh5ZXQpIC0tCi0gICAgLQlQYXRjaCBmb3IgJ2JyZWFraW5kZW50JyBvcHRpb246IHJlcGVhdCBpbmRlbnQgZm9yIHdyYXBwZWQgbGluZS4gKFZhY2xhdgotCVNtaWxhdWVyLCAyMDA0IFNlcCAxMywgZml4IE9jdCAzMSkKLQlBc2tlZCBmb3IgaW1wcm92ZW1lbnRzIDIwMDQgRGVjIDIwLgotICAgIDcgICBNYWtlICI1ZGQiIG9uIGxhc3QtYnV0LW9uZS1saW5lIG5vdCBkZWxldGUgYW55dGhpbmcgKFZpIGNvbXBhdGlibGUpLgotCUFkZCBmbGFnIGluICdjcG9wdGlvbnMnIGZvciB0aGlzLiAgV2hlbiBub3QgcHJlc2VudCwgIjJkZCIgaW4gdGhlIGxhc3QKLQlsaW5lIHNob3VsZCBkZWxldGUgdGhlIGxhc3QgbGluZS4gIFBhdGNoIGZyb20gZ3JlZW54IDIwMDIgQXByIDExLgotICAgIDggICBBZGQgYSBmZXcgbW9yZSBjb21tYW5kIG5hbWVzIHRvIHRoZSBtZW51cy4gIFBhdGNoIGZyb20gSmlyaSBCcmV6aW5hCi0JKDI4IGZlYiAyMDAyKS4KLSAgICA3ICAgQVRURU5USU9OIGRpYWxvZyBjaG9pY2VzIGFyZSBtb3JlIGxvZ2ljYWwgd2hlbiAiRGVsZXRlIGl0JyBhcHBlYXJzCi0JYmVmb3JlICJRdWl0Ii4gIFBhdGNoIGJ5IFJvYmVydCBXZWJiLCAyMDA0IE1heSAzLgotICAgIC0gICBJbmNsdWRlIGZsaXBjYXNlIHBhdGNoOiB+L3ZpbS9wYXRjaGVzL3dhbGwuZmxpcGNhc2UyID8gIE1ha2UgaXQgd29yawotCWZvciBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuCi0gICAgLSAgIFdpbjMyOiBhZGQgb3B0aW9ucyB0byBwcmludCBkaWFsb2cuICBQYXRjaCBmcm9tIFZpcGluIEFyYXZpbmQuCi0gICAgLSAgIFBhdGNoIHRvIGFkZCBoaWdobGlnaHRpbmcgZm9yIHdoaXRlc3BhY2UuIChUb20gU2NodW1tLCAyMDAzIEp1bCA1KQotCXVzZSB0aGUgcGF0Y2ggdGhhdCBrZWVwcyB1c2luZyBITEZfOCBpZiBITEZfV1MgaGFzIG5vdAotCWJlZW4gZ2l2ZW4gdmFsdWVzLgotCUFkZCBzZWN0aW9uIGluIGhlbHAgZmlsZXMgZm9yIHRoZXNlIGhpZ2hsaWdodCBncm91cHM/Ci0gICAgOCAgICJmZyIgYW5kICJiZyIgZG9uJ3Qgd29yayBpbiBhbiB4dGVybS4gIEdldCBkZWZhdWx0IGNvbG9ycyBmcm9tIHh0ZXJtCi0Jd2l0aCBhbiBFU0Mgc2VxdWVuY2UuICBJZGVhcyBpbjogfi92aW0vcGF0Y2hlcy92aWthcy54dGVybWNvbG9ycyAuCi0gICAgNyAgIEFkZCAiRGVmYXVsdEZHIiBhbmQgIkRlZmF1bHRCRyIgZm9yIHRoZSBjb2xvcnMgb2YgdGhlIG1lbnUuIChNYXJjaW4KLQlEYWxlY2tpIGhhcyBhIHBhdGNoIGZvciBNb3RpZiBhbmQgQ2FyYm9uKQotICAgIC0gICBBZGQgcG9zc2liaWxpdHkgdG8gaGlnaGxpZ2h0IHNwZWNpZmljIGNvbHVtbnMgKGZvciBGb3J0cmFuKS4gIE9yIHB1dCBhCi0JbGluZSBpbiBiZXR3ZWVuIGNvbHVtbnMgKGUuZy4sIGZvciAndGV4dHdpZHRoJykuCi0JUGF0Y2ggdG8gYWRkICdobGNvbHVtbicgZnJvbSBWaXQgU3RyYWRhbCwgMjAwNCBNYXkgMjAuCi0gICAgOCAgIEFkZCBmdW5jdGlvbnM6Ci0JY29uZmlybSgpCQlhZGQgImZsYWdzIiBhcmd1bWVudCwgd2l0aCAndicgZm9yIHZlcnRpY2FsCi0JCQkJbGF5b3V0IGFuZCAnYycgZm9yIGNvbnNvbGUgZGlhbG9nLiAoSGFlZ2cpCi0JCQkJRmxlbW1pbmcgTWFkc2VuIGhhcyBhIHBhdGNoIGZvciB0aGUgJ2MnIGZsYWcKLQkJCQkoMjAwMyBNYXkgMTMpCi0JcmFpc2V3aW4oKQkJcmFpc2UgZ3ZpbSB3aW5kb3cgKHNlZSBIaWVyQXNzaXN0IHBhdGNoIGZvcgotCQkJCVRjbCBpbXBsZW1lbnRhdGlvbiB+L3ZpbS9IaWVyQXNzaXN0LyApCi0gICAgNyAgIE1ha2UgZ2xvYnBhdGgoKSBhbHNvIHdvcmsgd2l0aCB1cHdhcmRzIHNlYXJjaC4gKEJyaWFuIE1lZGxleSkKLSAgICA3ICAgQWRkIHBhdGNoIGZyb20gQmVub2l0IENlcnJpbmEgdG8gaW50ZWdyYXRlIFZpbSBhbmQgUGVybCBmdW5jdGlvbnMKLQliZXR0ZXIuICBOb3cgYWxzbyB3b3JrcyBmb3IgUnVieSAoMjAwMSBOb3YgMTApCi0gICAgLSAgIFBhdGNoIGZyb20gSGVyY3VsYW5vIGRlIExpbWEgRWlubG9mdCBOZXRvIGZvciBiZXR0ZXIgZm9ybWF0dGluZyBvZiB0aGUKLQlxdWlja2ZpeCB3aW5kb3cgKDIwMDQgZGVjIDIpCi0gICAgNyAgIFdoZW4gJ3JpZ2h0bGVmdCcgaXMgc2V0LCB0aGUgc2VhcmNoIHBhdHRlcm4gc2hvdWxkIGJlIGRpc3BsYXllZCByaWdodAotCXRvIGxlZnQgYXMgd2VsbD8gIFNlZSBwYXRjaCBvZiBEZWMgMjYuIChOYWRpbSBTaGFpa2xpKQotICAgIDggICBMb2NrIGFsbCB1c2VkIG1lbW9yeSBzbyB0aGF0IGl0IGRvZXNuJ3QgZ2V0IHN3YXBwZWQgdG8gZGlzayAodW5jcnlwdGVkKS4KLQlQYXRjaCBieSBKYXNvbiBIb2x0LCAyMDAzIE1heSAyMy4gIFVzZXMgbWxvY2suCi0gICAgNyAgIFN1cHBvcnQgYSBzdHJvbmdlciBlbmNyeXB0aW9uLiAgSmFzb24gSG9sdCBpbXBsZW1lbnRlZCBBRVMgKE1heSA2IDIwMDMpLgotICAgIDcgICBBZGQgISByZWdpc3RlciwgZm9yIHNoZWxsIGNvbW1hbmRzLiAocGF0Y2ggZnJvbSBHcmVuaWUpCi0gICAgOCAgIEluIHRoZSBnemlwIHBsdWdpbiwgYWxzbyByZWNvZ25pemUgKi5nei5vcmlnLCAqLmd6LmJhaywgZXRjLiAgTGlrZSBpdCdzCi0JZG9uZSBmb3IgZmlsZXR5cGUgZGV0ZWN0aW9uLiAgUGF0Y2ggZnJvbSBXYWx0ZXIgQnJpc2NvZSwgMjAwMyBKdWwgMS4KLSAgICA3ICAgQWRkIGEgIi1AIGZpbGVsaXN0IiBhcmd1bWVudDogcmVhZCBmaWxlIG5hbWVzIGZyb20gYSBmaWxlLiAoRGF2aWQKLQlLb3RjaGFuIGhhcyBhIHBhdGNoIGZvciBpdCkKLSAgICA4ICAgSW5jbHVkZSBhIGNvbm5lY3Rpb24gdG8gYW4gZXh0ZXJuYWwgcHJvZ3JhbSB0aHJvdWdoIGEgcGlwZT8gIFNlZQotCXBhdGNoZXMgZnJvbSBGZWxiaW5nZXIgZm9yIGEgbWF0aGVtYXRpY2EgaW50ZXJmYWNlLgotCU9yIHVzZSBlbWFjcyBzZXJ2ZXIga2luZCBvZiB0aGluZz8KLSAgICA3ICAgQWRkICI6anVzdGlmeSIgY29tbWFuZC4gIFBhdGNoIGZyb20gVml0IFN0cmFkYWwgMjAwMiBOb3YgMjUuCi0gICAgLSAgIGZpbmRtYXRjaCgpIHNob3VsZCBiZSBhZGp1c3RlZCBmb3IgTGlzcC4gIFNlZSByZW1hcmsgYXQKLQlnZXRfbGlzcF9pbmRlbnQoKS4gIEVzcC4gXCggYW5kIFwpIHNob3VsZCBiZSBza2lwcGVkLiAoRG9yYWkgU2l0YXJhbSwKLQlpbmNvbXBsZXRlIHBhdGNoIE1hciAxOCkKLSAgICAtCVNldCB1c2VyIHZhcmlhYmxlcyB0byB0aGUgbmFtZXMgb2YgdGhlIGFjdHVhbGx5IHVzZWQgdXNlciB2aW1yYyBmaWxlLAotCXRoZSBmaXJzdCBkaXJlY3RvcnkgbG9va2VkIGZvciB1c2VyIHBsdWdpbnMvc3ludGF4IGZpbGVzLgotCSRNWVZJTVJDIGZvciAudmltcmMsICRNWUdWSU1SQyBmb3IgLmd2aW1yYywgJE1ZUlVOVElNRS9wbHVnaW4gZm9yCi0JcnVudGltZSBmaWxlcz8KLQlBbHNvOiB3aGVuIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBleGlzdHMsIHVzZSBpdC4gIElmIGl0IGRvZXNuJ3QKLQlleGlzdCwgc2V0IGl0LiAgUmVxdWlyZXMgZ29vZCBuYW1lczogJFZJTV9VU0VSX1ZJTVJDICAkVklNX1VTRVJfRElSCi0gICAgLQlUaGUgUmVwbGFjZSBkaWFsb2cgdGFrZXMgIlxyIiBsaXRlcmFsLCB1bmxlc3MgInJlcGxhY2UgYWxsIiBpcyB1c2VkLgotCU5lZWQgdG8gZXNjYXBlIGJhY2tzbGFzaGVzLgotICAgICAgICBXaW4zMjogdGhlIHRleHQgdG8gcmVwbGFjZSB3aXRoIGlzbid0IHJlbWVtYmVyZWQuCi0gICAgLQlGb3IgR1VJIEZpbmQvUmVwbGFjZSBkaWFsb2cgc3VwcG9ydCB1c2luZyBhIHJlZ2V4cC4gIFBhdGNoIGZvciBNb3RpZgotCWFuZCBHVEsgYnkgZGVncmVuZWlyIChub3YgMTAgYW5kIG5vdiAxOCkuCi0KLVBhdGNoIGZvciAicGFyYW5vaWQgbW9kZSIgYnkgS2V2aW4gQ29sbGlucywgTWFyY2ggNy4gIE5lZWRzIG11Y2ggbW9yZSB3b3JrLgorQWRkICI6c21hcCIsIFNlbGVjdCBtb2RlIG1hcHBpbmc/ICBPdGhlcndpc2U6ICI6c3VubWFwIiwgc28gdGhhdCBWaXN1YWwgbW9kZQorbWFwcGluZ3MgZm9yIG5vcm1hbCBrZXlzIGNhbiBiZSByZW1vdmVkIGZyb20gU2VsZWN0IG1vZGUuCiAKIENoZWNrIGlmIGZpbGUgZXhwbG9yZXIgY2FuIGhhbmRsZSBkaXJlY3RvcnkgbmFtZXMgYW5kIGxpbmtzIHdpdGggYSBzaW5nbGUKIHF1b3RlLiAoTmlla28gTWFhdGplcywgMjAwNSBKYW4gNCkKIAogCitBd2FpdGluZyB1cGRhdGVkIHBhdGNoZXM6Cis4ICAgQWRkICI6biIgdG8gZm5hbWVtb2RpZnkoKTogbm9ybWFsaXplIHBhdGgsIHJlbW92ZSAiLi4vIiB3aGVuIHBvc3NpYmxlLgorICAgIEFyaWMgQmx1bWVyIGhhcyBhIHBhdGNoIGZvciB0aGlzLgorICAgIEhlIHdpbGwgdXBkYXRlIHRoZSBwYXRjaCBmb3IgNi4zLgorNyAgIENvbXBsZXRpb24gb2YgbmV0d29yayBzaGFyZXMsIHBhdGNoIGJ5IFlhc3VoaXJvIE1hdHN1bW90by4KKyAgICBVcGRhdGUgMjAwNCBTZXAgNi4KKyAgICBIb3cgZG9lcyB0aGlzIHdvcms/ICBNaXNzaW5nIGNvbW1lbnRzLgorLSAgIFBhdGNoIGZvciAnYnJlYWtpbmRlbnQnIG9wdGlvbjogcmVwZWF0IGluZGVudCBmb3Igd3JhcHBlZCBsaW5lLiAoVmFjbGF2CisgICAgU21pbGF1ZXIsIDIwMDQgU2VwIDEzLCBmaXggT2N0IDMxKQorICAgIEFza2VkIGZvciBpbXByb3ZlbWVudHMgMjAwNCBEZWMgMjAuCis3ICAgTWFrZSAiNWRkIiBvbiBsYXN0LWJ1dC1vbmUtbGluZSBub3QgZGVsZXRlIGFueXRoaW5nIChWaSBjb21wYXRpYmxlKS4KKyAgICBBZGQgZmxhZyBpbiAnY3BvcHRpb25zJyBmb3IgdGhpcy4gIFdoZW4gbm90IHByZXNlbnQsICIyZGQiIGluIHRoZSBsYXN0CisgICAgbGluZSBzaG91bGQgZGVsZXRlIHRoZSBsYXN0IGxpbmUuICBQYXRjaCBmcm9tIGdyZWVueCAyMDAyIEFwciAxMS4KKzggICBBZGQgYSBmZXcgbW9yZSBjb21tYW5kIG5hbWVzIHRvIHRoZSBtZW51cy4gIFBhdGNoIGZyb20gSmlyaSBCcmV6aW5hCisgICAgKDI4IGZlYiAyMDAyKS4KKzcgICBBVFRFTlRJT04gZGlhbG9nIGNob2ljZXMgYXJlIG1vcmUgbG9naWNhbCB3aGVuICJEZWxldGUgaXQnIGFwcGVhcnMKKyAgICBiZWZvcmUgIlF1aXQiLiAgUGF0Y2ggYnkgUm9iZXJ0IFdlYmIsIDIwMDQgTWF5IDMuCistICAgSW5jbHVkZSBmbGlwY2FzZSBwYXRjaDogfi92aW0vcGF0Y2hlcy93YWxsLmZsaXBjYXNlMiA/ICBNYWtlIGl0IHdvcmsKKyAgICBmb3IgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLgorLSAgIFdpbjMyOiBhZGQgb3B0aW9ucyB0byBwcmludCBkaWFsb2cuICBQYXRjaCBmcm9tIFZpcGluIEFyYXZpbmQuCistICAgUGF0Y2ggdG8gYWRkIGhpZ2hsaWdodGluZyBmb3Igd2hpdGVzcGFjZS4gKFRvbSBTY2h1bW0sIDIwMDMgSnVsIDUpCisgICAgdXNlIHRoZSBwYXRjaCB0aGF0IGtlZXBzIHVzaW5nIEhMRl84IGlmIEhMRl9XUyBoYXMgbm90CisgICAgYmVlbiBnaXZlbiB2YWx1ZXMuCisgICAgQWRkIHNlY3Rpb24gaW4gaGVscCBmaWxlcyBmb3IgdGhlc2UgaGlnaGxpZ2h0IGdyb3Vwcz8KKzggICAiZmciIGFuZCAiYmciIGRvbid0IHdvcmsgaW4gYW4geHRlcm0uICBHZXQgZGVmYXVsdCBjb2xvcnMgZnJvbSB4dGVybQorICAgIHdpdGggYW4gRVNDIHNlcXVlbmNlLiAgSWRlYXMgaW46IH4vdmltL3BhdGNoZXMvdmlrYXMueHRlcm1jb2xvcnMgLgorNyAgIEFkZCAiRGVmYXVsdEZHIiBhbmQgIkRlZmF1bHRCRyIgZm9yIHRoZSBjb2xvcnMgb2YgdGhlIG1lbnUuIChNYXJjaW4KKyAgICBEYWxlY2tpIGhhcyBhIHBhdGNoIGZvciBNb3RpZiBhbmQgQ2FyYm9uKQorLSAgIEFkZCBwb3NzaWJpbGl0eSB0byBoaWdobGlnaHQgc3BlY2lmaWMgY29sdW1ucyAoZm9yIEZvcnRyYW4pLiAgT3IgcHV0IGEKKyAgICBsaW5lIGluIGJldHdlZW4gY29sdW1ucyAoZS5nLiwgZm9yICd0ZXh0d2lkdGgnKS4KKyAgICBQYXRjaCB0byBhZGQgJ2hsY29sdW1uJyBmcm9tIFZpdCBTdHJhZGFsLCAyMDA0IE1heSAyMC4KKzggICBBZGQgZnVuY3Rpb25zOgorICAgIGdldHRleHQoKQkJVHJhbnNsYXRlIGEgbWVzc2FnZS4gIChQYXRjaCBmcm9tIFlhc3VoaXJvIE1hdHN1bW90bykKKwkJCVVwZGF0ZSAyMDA0IFNlcCAxMAorCQkJQW5vdGhlciBwYXRjaCBmcm9tIEVkd2FyZCBMLiBGb3ggKDIwMDUgTm92IDI0KQorCQkJU2VhcmNoIGluICdydW50aW1lcGF0aCc/CisJCQlNb3JlIGRvY3MgYWJvdXQgaG93IHRvIHVzZSB0aGlzLgorCQkJSG93IHRvIGdldCB0aGUgbWVzc2FnZXMgaW50byB0aGUgLnBvIGZpbGVzPworICAgIGNvbmZpcm0oKQkJYWRkICJmbGFncyIgYXJndW1lbnQsIHdpdGggJ3YnIGZvciB2ZXJ0aWNhbAorCQkJICAgIGxheW91dCBhbmQgJ2MnIGZvciBjb25zb2xlIGRpYWxvZy4gKEhhZWdnKQorCQkJICAgIEZsZW1taW5nIE1hZHNlbiBoYXMgYSBwYXRjaCBmb3IgdGhlICdjJyBmbGFnCisJCQkgICAgKDIwMDMgTWF5IDEzKQorICAgIHJhaXNld2luKCkJCXJhaXNlIGd2aW0gd2luZG93IChzZWUgSGllckFzc2lzdCBwYXRjaCBmb3IKKwkJCSAgICBUY2wgaW1wbGVtZW50YXRpb24gfi92aW0vSGllckFzc2lzdC8gKQorNyAgIE1ha2UgZ2xvYnBhdGgoKSBhbHNvIHdvcmsgd2l0aCB1cHdhcmRzIHNlYXJjaC4gKEJyaWFuIE1lZGxleSkKKzcgICBBZGQgcGF0Y2ggZnJvbSBCZW5vaXQgQ2VycmluYSB0byBpbnRlZ3JhdGUgVmltIGFuZCBQZXJsIGZ1bmN0aW9ucworICAgIGJldHRlci4gIE5vdyBhbHNvIHdvcmtzIGZvciBSdWJ5ICgyMDAxIE5vdiAxMCkKKy0gICBQYXRjaCBmcm9tIEhlcmN1bGFubyBkZSBMaW1hIEVpbmxvZnQgTmV0byBmb3IgYmV0dGVyIGZvcm1hdHRpbmcgb2YgdGhlCisgICAgcXVpY2tmaXggd2luZG93ICgyMDA0IGRlYyAyKQorNyAgIFdoZW4gJ3JpZ2h0bGVmdCcgaXMgc2V0LCB0aGUgc2VhcmNoIHBhdHRlcm4gc2hvdWxkIGJlIGRpc3BsYXllZCByaWdodAorICAgIHRvIGxlZnQgYXMgd2VsbD8gIFNlZSBwYXRjaCBvZiBEZWMgMjYuIChOYWRpbSBTaGFpa2xpKQorOCAgIExvY2sgYWxsIHVzZWQgbWVtb3J5IHNvIHRoYXQgaXQgZG9lc24ndCBnZXQgc3dhcHBlZCB0byBkaXNrICh1bmNyeXB0ZWQpLgorICAgIFBhdGNoIGJ5IEphc29uIEhvbHQsIDIwMDMgTWF5IDIzLiAgVXNlcyBtbG9jay4KKzcgICBTdXBwb3J0IGEgc3Ryb25nZXIgZW5jcnlwdGlvbi4gIEphc29uIEhvbHQgaW1wbGVtZW50ZWQgQUVTIChNYXkgNiAyMDAzKS4KKzcgICBBZGQgISByZWdpc3RlciwgZm9yIHNoZWxsIGNvbW1hbmRzLiAocGF0Y2ggZnJvbSBHcmVuaWUpCis4ICAgSW4gdGhlIGd6aXAgcGx1Z2luLCBhbHNvIHJlY29nbml6ZSAqLmd6Lm9yaWcsICouZ3ouYmFrLCBldGMuICBMaWtlIGl0J3MKKyAgICBkb25lIGZvciBmaWxldHlwZSBkZXRlY3Rpb24uICBQYXRjaCBmcm9tIFdhbHRlciBCcmlzY29lLCAyMDAzIEp1bCAxLgorNyAgIEFkZCBhICItQCBmaWxlbGlzdCIgYXJndW1lbnQ6IHJlYWQgZmlsZSBuYW1lcyBmcm9tIGEgZmlsZS4gKERhdmlkCisgICAgS290Y2hhbiBoYXMgYSBwYXRjaCBmb3IgaXQpCis4ICAgSW5jbHVkZSBhIGNvbm5lY3Rpb24gdG8gYW4gZXh0ZXJuYWwgcHJvZ3JhbSB0aHJvdWdoIGEgcGlwZT8gIFNlZQorICAgIHBhdGNoZXMgZnJvbSBGZWxiaW5nZXIgZm9yIGEgbWF0aGVtYXRpY2EgaW50ZXJmYWNlLgorICAgIE9yIHVzZSBlbWFjcyBzZXJ2ZXIga2luZCBvZiB0aGluZz8KKzcgICBBZGQgIjpqdXN0aWZ5IiBjb21tYW5kLiAgUGF0Y2ggZnJvbSBWaXQgU3RyYWRhbCAyMDAyIE5vdiAyNS4KKy0gICBmaW5kbWF0Y2goKSBzaG91bGQgYmUgYWRqdXN0ZWQgZm9yIExpc3AuICBTZWUgcmVtYXJrIGF0CisgICAgZ2V0X2xpc3BfaW5kZW50KCkuICBFc3AuIFwoIGFuZCBcKSBzaG91bGQgYmUgc2tpcHBlZC4gKERvcmFpIFNpdGFyYW0sCisgICAgaW5jb21wbGV0ZSBwYXRjaCBNYXIgMTgpCistICAgU2V0IHVzZXIgdmFyaWFibGVzIHRvIHRoZSBuYW1lcyBvZiB0aGUgYWN0dWFsbHkgdXNlZCB1c2VyIHZpbXJjIGZpbGUsCisgICAgdGhlIGZpcnN0IGRpcmVjdG9yeSBsb29rZWQgZm9yIHVzZXIgcGx1Z2lucy9zeW50YXggZmlsZXMuCisgICAgJE1ZVklNUkMgZm9yIC52aW1yYywgJE1ZR1ZJTVJDIGZvciAuZ3ZpbXJjLCAkTVlSVU5USU1FL3BsdWdpbiBmb3IKKyAgICBydW50aW1lIGZpbGVzPworICAgIEFsc286IHdoZW4gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGV4aXN0cywgdXNlIGl0LiAgSWYgaXQgZG9lc24ndAorICAgIGV4aXN0LCBzZXQgaXQuICBSZXF1aXJlcyBnb29kIG5hbWVzOiAkVklNX1VTRVJfVklNUkMgICRWSU1fVVNFUl9ESVIKKy0gICBUaGUgUmVwbGFjZSBkaWFsb2cgdGFrZXMgIlxyIiBsaXRlcmFsLCB1bmxlc3MgInJlcGxhY2UgYWxsIiBpcyB1c2VkLgorICAgIE5lZWQgdG8gZXNjYXBlIGJhY2tzbGFzaGVzLgorICAgIFdpbjMyOiB0aGUgdGV4dCB0byByZXBsYWNlIHdpdGggaXNuJ3QgcmVtZW1iZXJlZC4KKy0gICBGb3IgR1VJIEZpbmQvUmVwbGFjZSBkaWFsb2cgc3VwcG9ydCB1c2luZyBhIHJlZ2V4cC4gIFBhdGNoIGZvciBNb3RpZgorICAgIGFuZCBHVEsgYnkgZGVncmVuZWlyIChub3YgMTAgYW5kIG5vdiAxOCkuCistICAgUGF0Y2ggZm9yICJwYXJhbm9pZCBtb2RlIiBieSBLZXZpbiBDb2xsaW5zLCBNYXJjaCA3LiAgTmVlZHMgbXVjaCBtb3JlIHdvcmsuCisKKwogVmkgaW5jb21wYXRpYmlsaXR5OgorLSAgIFRyeSBuZXcgUE9TSVggdGVzdHMsIG1hZGUgYWZ0ZXIgbXkgY29tbWVudHMuIChHZW9mZiBDbGFyZSwgMjAwNSBBcHJpbCA3KQorICAgIFZlcnNpb24gMS41IGlzIGluIH4vc3JjL3Bvc2l4LzEuNS4gKEx5bm5lIENhbmFsKQogOCAgIFdpdGggdW5kby9yZWRvIG9ubHkgbWFya3MgaW4gdGhlIGNoYW5nZWQgbGluZXMgc2hvdWxkIGJlIGNoYW5nZWQuICBPdGhlcgogICAgIG1hcmtzIHNob3VsZCBiZSBrZXB0LiAgVmkga2VlcHMgZWFjaCBtYXJrIGF0IHRoZSBzYW1lIHRleHQsIGV2ZW4gd2hlbiBpdAogICAgIGlzIGRlbGV0ZWQgb3IgcmVzdG9yZWQuIChXZWJiKQpAQCAtNTE1LDYgKzQyMSw3IEBACiAgICAgYXBwZW5kaW5nICJib2xkIiB3aGVuIHRoZXJlIGFyZSBub3QgMTQgZGFzaGVzLgogCiBHVEsrIEdVSSBrbm93biBidWdzOgorOSAgIENyYXNoIHdpdGggWCBjb21tYW5kIHNlcnZlciBvdmVyIHNzaC4gKENpYXJhbiBNY0NyZWVzaCwgMjAwNiBGZWIgNikKIDggICBHVEsgMjogQ29tYmluaW5nIFVURi04IGNoYXJhY3RlcnMgbm90IGRpc3BsYXllZCBwcm9wZXJseSBpbiBtZW51cyAoTWlrb2xhagogICAgIE1hY2hvd3NraSkgIFRoZXkgYXJlIGRpc3BsYXllZCBhcyBzZXBhcmF0ZSBjaGFyYWN0ZXJzLiAgUHJvYmxlbSBpbgogICAgIGNyZWF0aW5nIGEgbGFiZWw/CkBAIC01MjcsNiArNDM0LDggQEAKICAgICBJdCBzdGFydHMgd29ya2luZyBhZnRlciBHVEsgZ3ZpbSBsb3NlcyB0aGUgc2VsZWN0aW9uIGFuZCBnYWlucyBpdCBhZ2Fpbi4KIAogV2luMzIgR1VJIGtub3duIGJ1Z3M6CistICAgV2luMzI6IHRlYXJvZmYgbWVudSB3aW5kb3cgc2hvdWxkIGhhdmUgYSBzY3JvbGxiYXIgd2hlbiBpdCdzIHRhbGxlciB0aGFuCisgICAgdGhlIHNjcmVlbi4KIDggICBPbiBXaW5kb3dzIDk4IHRoZSB1bmljb3dzIGxpYnJhcnkgaXMgbmVlZGVkIHRvIHN1cHBvcnQgZnVuY3Rpb25zIHdpdGggVUNTMgogICAgIGZpbGUgbmFtZXMuICBDYW4gd2UgbG9hZCB1bmljb3dzLmRsbCBkeW5hbWljYWxseT8KIDggICBUaGUgLVAgYXJndW1lbnQgZG9lc24ndCB3b3JrIHZlcnkgd2VsbCB3aXRoIG1hbnkgTURJIGFwcGxpY2F0aW9ucy4KQEAgLTY2Miw2ICs1NzEsNyBAQAogCiAKIE1vdGlmIEdVSToKKy0gICBndWlfbWNoX2Jyb3dzZWRpcigpIGlzIG1pc3NpbmcuCiA3ICAgVXNlIFhtU3RyaW5nQ3JlYXRlTG9jYWxpemVkKCkgaW5zdGVhZCBvZiBYbVN0cmluZ0NyZWF0ZVNpbXBsZSgpPwogICAgIERhdmlkIEhhcnJpc29uIHNheXMgaXQncyBPSyAoaXQgZXhpc3RzIGluIE1vdGlmIDEuMikuCiA4ICAgTGVzc3RpZjogV2hlbiBkZWxldGluZyBhIG1lbnUgdGhhdCdzIHRvcm4gb2ZmLCB0aGUgdG9ybiBvZmYgbWVudSBiZWNvbWVzCkBAIC04NjYsNiArNzc2LDcgQEAKIAogCiBNYWNpbnRvc2g6CistICAgR1VJOiBndWlfbWNoX2Jyb3dzZWRpcigpIGlzIG1pc3NpbmcuCiA3ICAgUGF0Y2ggdG8gYWRkICd0cmFuc3BhcmVuY3knIG9wdGlvbi4gIERpc2FkdmFudGFnZTogaXQncyBzbG93LiAoRWNrZWhhcmQKICAgICBCZXJucywgMjAwNCBNYXkgOSkgaHR0cDovL2Vja2kudG8vdmltL1RyYW5zQmFjay0yMDA0LTA1LTA5LmRpZmYKICAgICBOZWVkcyBtb3JlIHdvcmsuICBBZGQgd2hlbiBzb21lb25lIHJlYWxseSB3YW50cyBpdC4KQEAgLTEyNjAsNiArMTE3MSw0MCBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tICBleHRlbnNpb25zIGFuZCBpbXByb3ZlbWVudHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCQkJCQkJICAgICpleHRlbnNpb25zLWltcHJvdmVtZW50cyoKIAorRGlkbid0IG1ha2UgaXQgaW50byBWaW0gNy4wOgorLSAgIEFkZCBDT0xVTU4gTlVNQkVSUyB0byAiOiIgY29tbWFuZHMgIjpsaW5lMSxsaW5lMltjb2wxLGNvbDJdY21kIi4gIEJsb2NrCisgICAgY2FuIGJlIHNlbGVjdGVkIHdpdGggQ1RSTC1WLiAgQWxsb3cgJyQnIChlbmQgb2YgbGluZSkgZm9yIGNvbDIuCistICAgQWRkIERFQlVHR0VSIElOVEVSRkFDRS4gIEltcGxlbWVudGF0aW9uIGZvciBnZGIgYnkgWGF2aWVyIGRlIEdheWUuCisgICAgU2hvdWxkIHdvcmsgbGlrZSBhbiBJREUuICBUcnkgdG8ga2VlcCBpdCBnZW5lcmljLiAgTm93IGZvdW5kIGhlcmU6CisgICAgaHR0cDovL2NsZXduLnNmLm5ldC4KKyAgICBBbmQgdGhlIGlkZXZpbSBwbHVnaW4vc2NyaXB0LgorICAgIFRvIGJlIGFibGUgdG8gc3RhcnQgdGhlIGRlYnVnZ2VyIGZyb20gaW5zaWRlIFZpbTogRm9yIEdVSSBydW4gYSBwcm9ncmFtCisgICAgd2l0aCBhIG5ldGJlYW5zIGNvbm5lY3Rpb247IGZvciBjb25zb2xlOiBzdGFydCBhIHByb2dyYW0gdGhhdCBzcGxpdHMgdGhlCisgICAgdGVybWluYWwsIHJ1bnMgdGhlIGRlYnVnZ2VyIGluIG9uZSB3aW5kb3cgYW5kIHJlY29ubmVjdCBWaW0gSS9PIHRvIHRoZQorICAgIG90aGVyIHdpbmRvdy4KKyAgICBXaXNoZXMgZm9yIE5ldEJlYW5zIGNvbW1hbmRzOgorICAgIC0gbWFrZSBpdCBwb3NzaWJsZSB0byBoYXZlICdkZWZpbmVBbm5vVHlwZScgYWxzbyBoYW5kbGUgdGVybWluYWwgY29sb3JzLgorICAgIC0gc2VuZCAnYmFsbG9vblRleHQnIGV2ZW50cyBmb3IgdGhlIGN1cnNvciBwb3NpdGlvbiAodXNpbmcgQ3Vyc29ySG9sZCA/KQorICAgICAgaW4gdGVybWluYWwgbW9kZS4KKy0gICBFQ0xJUFNFIHBsdWdpbi4gIFByb2JsZW0gaXM6IHRoZSBpbnRlcmZhY2UgaXMgdmVyeSBjb21wbGljYXRlZC4gIE5lZWQgdG8KKyAgICBpbXBsZW1lbnQgcGFydCBpbiBKYXZhIGFuZCB0aGVuIGNvbm5lY3QgdG8gVmltLiAgU29tZSBoaW50cyBmcm9tIEFsZXhhbmRydQorICAgIFJvbWFuLCAyMDA0IERlYyAxNS4gIFNob3VsZCB0aGVuIGFsc28gd29yayB3aXRoIE9yYWNsZSBKZGV2ZWxvcGVyLCBzZWUgSlNSCisgICAgMTk4IHN0YW5kYXJkIGh0dHA6Ly93d3cuamNwLm9yZy9lbi9qc3IvZGV0YWlsP2lkPTE5OC4KKyAgICBFY2xpbSBkb2VzIGl0OiBodHRwOi8vZWNsaW0uc291cmNlZm9yZ2UubmV0LyAgKEVyaWMgVmFuIERld29lc3RpbmUpCisgICAgUGx1Z2luIHRoYXQgdXNlcyBhIHRlcm1pbmFsIGVtdWxhdG9yOiBodHRwOi8vdmltcGx1Z2luLnNmLm5ldAorLSAgIFNUSUNLWSBDVVJTT1I6IEFkZCBhIHdheSBvZiBzY3JvbGxpbmcgdGhhdCBsZWF2ZXMgdGhlIGN1cnNvciB3aGVyZSBpdCBpcy4KKyAgICBFc3BlY2lhbGx5IHdoZW4gdXNpbmcgdGhlIHNjcm9sbGJhci4gIFR5cGluZyBhIGN1cnNvci1tb3ZlbWVudCBjb21tYW5kCisgICAgc2Nyb2xscyBiYWNrIHRvIHdoZXJlIHRoZSBjdXJzb3IgaXMuCistICAgUnVubmluZyBhIHNoZWxsIGNvbW1hbmQgZnJvbSB0aGUgR1VJIHN0aWxsIGhhcyBsaW1pdGF0aW9ucy4gIExvb2sgaW50byBob3cKKyAgICB0aGUgdGVybWluYWwgZW11bGF0b3Igb2YgdGhlIFZpbSBzaGVsbCBwcm9qZWN0IGNhbiBoZWxwOgorICAgIGh0dHA6Ly92aW1zaGVsbC53YW5hLmF0CistICAgQWRkIEx1YSBpbnRlcmZhY2U/IChXb2xmZ2FuZyBPZXJ0bCkKKzggICBBZGQgYSBjb21tYW5kIHRvIGp1bXAgdG8gYSBjZXJ0YWluIGtpbmQgb2YgdGFnLiAgQWxsb3cgdGhlIHVzZXIgdG8gc3BlY2lmeQorICAgIHZhbHVlcyBmb3IgdGhlIG9wdGlvbmFsIGZpZWxkcy4gIEUuZy4sICI6dGFnIHNpemUgdHlwZT1tIi4KKyAgICBBbHNvIGFsbG93IHNwZWNpZnlpbmcgdGhlIGZpbGUgYW5kIGNvbW1hbmQsIHNvIHRoYXQgdGhlIHJlc3VsdCBvZgorICAgIHRhZ2xpc3QoKSBjYW4gYmUgdXNlZC4KKworCiBEb2N1bWVudGF0aW9uOgogOCAgIFRoZSBHVUkgaGVscCBzaG91bGQgZXhwbGFpbiB0aGUgRmluZCBhbmQgRmluZC9SZXBsYWNlIGRpYWxvZ3MuICBBZGQgYSBsaW5rCiAgICAgdG8gaXQgZnJvbSAiOnByb21wdHJlcGwiIGFuZCAiOnByb21wdGZpbmQiLgpAQCAtMTM1Nyw2ICsxMzAyLDE0IEBACiAKIFNwZWxsIGNoZWNraW5nOgogLSAgIHN1Z2dlc3Rpb24gZm9yICJLRyIgdG8gImtnIiB3aGVuIGl0J3Mga2VlcGNhc2UuCistICAgU3VwcG9ydCBmbGFncyBvbiBhIHN1ZmZpeC4gIFVzZWQgZm9yIHNlY29uZCBsZXZlbCBhZmZpeGVzLCByYXJlIGFuZAorICAgIG5vY29tcC4gIFRoZSBmbGFncyBtYXkgYWxzbyBiZSB1c2VkIGZvciBjb21wb3VuZGluZy4gIERlZmF1bHQgaXMgYW4gT1IKKyAgICBtZWNoYW5pc20gd2l0aCB0aGUgZmxhZ3Mgb2YgdGhlIHdvcmQuICBBZGRpbmcgImNvbXBzZXQiIG9uIHRoZSBhZmZpeGVzCisgICAgbWVhbnMgdGhlIGNvbXBvdW5kIGZsYWdzIG9mIHRoZSB3b3JkIGFyZSBub3QgdXNlZC4KKyAgICBJbnN0ZWFkIG9mICJTRlggYSAwIGFkZC9GTEFHUyAuIiB3ZSBjb3VsZCB1c2UgIlNGWCBhIDAgYWRkIC4gL0ZMQUdTIiAob3IKKyAgICBzdXBwb3J0IGJvdGgpLgorLSAgIFN1cHBvcnQgYnJlYWtwb2ludCBjaGFyYWN0ZXIgtyAweGI3IGFuZCBpZ25vcmUgaXQ/ICBNYWtlcyBpdCBwb3NzaWJsZSB0bworICAgIHVzZSBzYW1lIHdvcmRsaXN0IGZvciBoeXBoZW5hdGlvbi4KIC0gICBDb21wb3VuZCB3b3JkIGlzIGFjY2VwdGVkIGlmIG5yIG9mIHdvcmRzIGlzIDw9IENPTVBPVU5ETUFYIE9SIG5yIG9mCiAgICAgc3lsbGFibGVzIDw9IENPTVBPVU5EU1lMTUFYLiAgU3BlY2lmeSB1c2luZyBBTkQgaW4gdGhlIGFmZml4IGZpbGU/CiAtICAgQ09NUE9VTkRNQVggLT4gQ09NUE9VTkRXT1JETUFYPwpAQCAtMTQ2MSw2ICsxNDE0LDEwIEBACiAKIAogTXVsdGktYnl0ZSBjaGFyYWN0ZXJzOgorLSAgIFdoZW4gZWRpdGluZyBhIGZpbGUgd2l0aCBib3RoIHV0Zi04IGFuZCBsYXRpbjEgdGV4dCBWaW0gYWx3YXlzIGZhbGxzIGJhY2sKKyAgICB0byBsYXRpbjEuICBBZGQgYSBjb21tYW5kIHRvIGNvbnZlcnQgdGhlIGxhdGluMSBjaGFyYWN0ZXJzIHRvIHV0Zi04PworCTp1bm1peCB1dGYtOCxsYXRpbjEgZmlsZW5hbWUKKyAgICBXb3VsZCBvbmx5IHdvcmsgd2hlbiAnZW5jb2RpbmcnIGlzIHV0Zi04LgogOSAgIFdoZW4gdGhlIHRhaWwgYnl0ZSBvZiBhIGRvdWJsZS1ieXRlIGNoYXJhY3RlciBpcyBpbGxlZ2FsIChlLmcuLCBhIENSKSwgdGhlCiAgICAgZGlzcGxheSBpcyBtZXNzZWQgdXAgKFlhc3VoaXJvIE1hdHN1bW90bykuICBTaG91bGQgY2hlY2sgZm9yIGlsbGVnYWwKICAgICBkb3VibGUtYnl0ZSBjaGFyYWN0ZXJzIGFuZCBkaXNwbGF5IHRoZW0gZGlmZmVyZW50bHkgKGRpc3BsYXkgZWFjaCBzaW5nbGUKQEAgLTE3MDEsNiArMTY1OCw5IEBACiAKIAogQnVpbHQtaW4gc2NyaXB0IGxhbmd1YWdlOgorNyAgIEV4ZWN1dGUgYSBmdW5jdGlvbiB3aXRoIHN0YW5kYXJkIG9wdGlvbiB2YWx1ZXMuICBObyBuZWVkIHRvIHNhdmUgYW5kCisgICAgcmVzdG9yZSBvcHRpb24gdmFsdWVzLiAgRXNwZWNpYWxseSB1c2VmdWwgZm9yIG5ldyBvcHRpb25zLiAgUHJvYmxlbTogaG93CisgICAgdG8gYXZvaWQgYSBwZXJmb3JtYW5jZSBwZW5hbHR5IChlc3AuIGZvciBzdHJpbmcgb3B0aW9ucyk/CiA4ICAgQWRkIHJlZmVycmluZyB0byBrZXkgb3B0aW9ucyB3aXRoICImdF94eCIuICBCb3RoIGZvciAiZWNobyAmdF94eCIgYW5kCiAgICAgIjpsZXQgJnRfeHggPSIuICBVc2VmdWwgZm9yIG1ha2luZyBwb3J0YWJsZSBtYXBwaW5ncy4KIDggICBleGlzdHMoIiYmb3B0aW9uIikgdGVzdHMgaWYgJ29wdGlvbicgaXMgYWN0dWFsbHkgaW1wbGVtZW50ZWQuICBVc2VmdWwgZm9yCkBAIC0yMTgxLDYgKzIxNDEsNyBAQAogCiAKIEF1dG9jb21tYW5kczoKKy0gICBQdXQgYXV0b2NvbW1hbmQgZXZlbnQgbmFtZXMgaW4gYSBoYXNodGFibGUgZm9yIGZhc3RlciBsb29rdXA/CiA3ICAgRm9yIGF1dG9jb21tYW5kIGV2ZW50cyB0aGF0IHRyaWdnZXIgbXVsdGlwbGUgdGltZXMgcGVyIGJ1ZmZlciAoZS5nLiwKICAgICBDdXJzb3JIb2xkKSwgZ28gdGhyb3VnaCB0aGUgbGlzdCBvbmNlIGFuZCBjYWNoZSB0aGUgcmVzdWx0IGZvciBhIHNwZWNpZmljCiAgICAgYnVmZmVyLiAgSW52YWxpZGF0ZSB0aGUgY2FjaGUgd2hlbiBhZGRpbmcvZGVsZXRpbmcgYXV0b2NvbW1hbmRzIG9yCkBAIC0yMjY1LDYgKzIyMjYsNyBAQAogCiAKIEluc2VydCBtb2RlIGNvbXBsZXRpb24vZXhwYW5zaW9uOgorLSAgIEdVSSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcG9wdXAgbWVudS4KIDggICBXaGVuIHRoZXJlIGlzIG5vIHdvcmQgYmVmb3JlIHRoZSBjdXJzb3IgYnV0IHNvbWV0aGluZyBsaWtlICJzeXMuIiBjb21wbGV0ZQogICAgIHdpdGggInN5cy4iLiAgV29ya3Mgd2VsbCBmb3IgQyBhbmQgc2ltaWxhciBsYW5ndWFnZXMuCiA5ICAgXlheTCBjb21wbGV0aW9uIGRvZXNuJ3QgcmVwZWF0IGNvcnJlY3RseS4gIEl0IHVzZXMgdGhlIGZpcnN0IG1hdGNoIHdpdGgKQEAgLTI2MDgsNiArMjU3MCw5IEBACiAtICAgV2hlbiBkcmFnZ2luZyB0aGUgVmlzdWFsIHNlbGVjdGlvbiB3aXRoIHRoZSBtb3VzZSBhbmQgJ3Njcm9sbG9mZicgaXMgemVybywKICAgICBiZWhhdmUgbGlrZSAnc2Nyb2xsb2ZmJyBpcyBvbmUsIHNvIHRoYXQgdGhlIHRleHQgc2Nyb2xscyB3aGVuIHRoZSBwb2ludGVyCiAgICAgaXMgaW4gdGhlIHRvcCBsaW5lLgorLSAgIERpc3BsYXlpbmcgc2l6ZSBvZiBWaXN1YWwgYXJlYTogdXNlIDI0LTMzIGNvbHVtbiBkaXNwbGF5LgorICAgIFdoZW4gc2VsZWN0aW5nIG11bHRpcGxlIGxpbmVzLCB1cCB0byBhYm91dCBhIHNjcmVlbmZ1bCwgYWxzbyBjb3VudCB0aGUKKyAgICBjaGFyYWN0ZXJzLgogOCAgIFdoZW4gdXNpbmcgIkkiIG9yICJBIiBpbiBWaXN1YWwgYmxvY2sgbW9kZSwgc2hvcnQgbGluZXMgZG8gbm90IGdldCB0aGUgbmV3CiAgICAgdGV4dC4gIE1ha2UgaXQgcG9zc2libGUgdG8gYWRkIHRoZSB0ZXh0IHRvIHNob3J0IGxpbmVzIHRvbywgd2l0aCBwYWRkaW5nCiAgICAgd2hlcmUgbmVlZGVkLgpAQCAtMjg3Myw2ICsyODM4LDExIEBACiAKIAogVW5kbzoKKy0gICBQZXJzaXN0ZW50IHVuZG86IHN0b3JlIHVuZG8gaW4gYSBmaWxlLgorICAgIFVzZSB0aW1lc3RhbXBzLCBzbyB0aGF0IGEgdmVyc2lvbiBhIGNlcnRhaW4gdGltZSBhZ28gY2FuIGJlIGZvdW5kIGFuZCBpbmZvCisgICAgYmVmb3JlIHNvbWUgdGltZS9kYXRlIGNhbiBiZSBmbHVzaGVkLiAndW5kb3BlcnNpc3QnIGdpdmVzIG1heGltdW0gdGltZSB0bworICAgIGtlZXAgdW5kbzogIjNoIiwgIjFkIiwgIjJ3IiwgIjF5IiwgZXRjLiAgRm9yIHRoZSBmaWxlIHVzZSBkb3QgYW5kCisgICAgZXh0ZW5zaW9uOiAiLmZpbGVuYW1lLnVufiIgKGxpa2Ugc3dhcGZpbGUgYnV0ICJ1bn4iIGluc3RlYWQgb2YgInN3cCIpLgogLSAgIE1ha2UgaXQgcG9zc2libGUgdG8gdW5kbyBhbGwgdGhlIGNvbW1hbmRzIGZyb20gYSBtYXBwaW5nLCBpbmNsdWRpbmcgYQogICAgIHRyYWlsaW5nIHVuZmluaXNoZWQgY29tbWFuZCwgZS5nLiBmb3IgIjptYXAgSyBpWF5bciIuCiAtICAgV2hlbiBhY2NpZGVudGFsbHkgaGl0dGluZyAiUiIgaW5zdGVhZCBvZiBDdHJsLVIsIGZ1cnRoZXIgQ3RybC1SIGlzIG5vdApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0IGIvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0CmluZGV4IDYwM2QzMzMuLjU3NWMwZjcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dAorKysgYi9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQKQEAgLTEsNCArMSw0IEBACi0qdmVyc2lvbjcudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDAyCisqdmVyc2lvbjcudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDA0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC02MDgsNiArNjA4LDggQEAKIHx0YWdsaXN0KCl8CQlnZXQgbGlzdCBvZiBtYXRjaGluZyB0YWdzIChZZWdhcHBhbiBMYWtzaG1hbmFuKQogfHRyKCl8CQkJdHJhbnNsYXRlIGNoYXJhY3RlcnMgKFJvbiBBYXJvbikKIHx2YWx1ZXMoKXwJCWdldCBMaXN0IG9mIERpY3Rpb25hcnkgdmFsdWVzCit8d2lucmVzdHZpZXcoKXwJCXJlc3RvcmUgdGhlIHZpZXcgb2YgdGhlIGN1cnJlbnQgd2luZG93Cit8d2luc2F2ZXZpZXcoKXwJCXNhdmUgdGhlIHZpZXcgb2YgdGhlIGN1cnJlbnQgd2luZG93CiB8d3JpdGVmaWxlKCl8CQl3cml0ZSBhIGxpc3Qgb2YgbGluZXMgaW50byBhIGZpbGUKIAogVXNlciBkZWZpbmVkIGZ1bmN0aW9ucyBjYW4gbm93IGJlIGxvYWRlZCBhdXRvbWF0aWNhbGx5IGZyb20gdGhlICJhdXRvbG9hZCIKQEAgLTgyMSw3ICs4MjMsMTQgQEAKIHdpbm5yKCkgdGFrZXMgYW4gb3B0aW9uYWwgIiQiIGFuZCAiIyIgYXJndW1lbnRzLiAgKE5pa29sYWkgV2VpYnVsbCwgWWVnYXBwYW4KIExha3NobWFuYW4pCiAKK0FkZGVkICdzJyBmbGFnIHRvIHNlYXJjaCgpOiBzZXQgJyBtYXJrIGlmIGN1cnNvciBtb3ZlZC4gKFllZ2FwcGFuIExha3NobWFuYW4pCiBBZGRlZCAnbicgZmxhZyB0byBzZWFyY2goKTogZG9uJ3QgbW92ZSB0aGUgY3Vyc29yLiAoTmlrb2xhaSBXZWlidWxsKQorQWRkZWQgJ2MnIGZsYWcgdG8gc2VhcmNoKCk6IGFjY2VwdCBtYXRjaCBhdCB0aGUgY3Vyc29yLgorQWRkZWQgJ2UnIGZsYWcgdG8gc2VhcmNoKCk6IG1vdmUgdG8gZW5kIG9mIHRoZSBtYXRjaC4gKEJlbmppIEZpc2hlcikKK0FkZGVkICdwJyBmbGFnIHRvIHNlYXJjaCgpOiByZXR1cm4gbnVtYmVyIG9mIHN1Yi1wYXR0ZXJuLiAoQmVuamkgRmlzaGVyKQorVGhlc2UgYWxzbyBhcHBseSB0byBzZWFyY2hwb3MoKSwgc2VhcmNocGFpcigpIGFuZCBzZWFyY2hwYWlycG9zKCkuCitUaGUgc2VhcmNoKCkgYW5kIHNlYXJjaHBhaXIoKSBmdW5jdGlvbnMgaGF2ZSBhbiBleHRyYSBhcmd1bWVudCB0byBzcGVjaWZ5Cit3aGVyZSB0byBzdG9wIHNlYXJjaGluZy4gIFNwZWVkcyB1cCBzZWFyY2hlcyB0aGF0IHNob3VsZCBub3QgY29udGludWUgdG9vIGZhci4KIAogV2hlbiB1bmNvbXByZXNzaW5nIGZhaWxzIGluIHRoZSBnemlwIHBsdWdpbiwgZ2l2ZSBhbiBlcnJvciBtZXNzYWdlIGJ1dCBkb24ndAogZGVsZXRlIHRoZSByYXcgdGV4dC4gIEhlbHBzIGlmIHRoZSBmaWxlIGhhcyBhIC5neiBleHRlbnNpb24gYnV0IGlzIG5vdApAQCAtOTgwLDEyICs5ODksNiBAQAogV2luMzI6IEJhbGxvb25zIGNhbiBoYXZlIG11bHRpcGxlIGxpbmVzIGlmIGNvbW1vbiBjb250cm9scyBzdXBwb3J0cyBpdC4KIChTZXJnZXkgS2hvcmV2KQogCi1UaGUgJ3MnIGZsYWcgaXMgYWRkZWQgdG8gdGhlIHNlYXJjaCgpIGFuZCBzZWFyY2hwYWlyKCkgZnVuY3Rpb24gdG8gc2V0IHRoZQotJyBtYXJrIGlmIHRoZSBjdXJzb3IgaXMgbW92ZWQuIChZZWdhcHBhbiBMYWtzaG1hbmFuKQotCi1UaGUgc2VhcmNoKCkgYW5kIHNlYXJjaHBhaXIoKSBmdW5jdGlvbnMgaGF2ZSBhbiBleHRyYSBhcmd1bWVudCB0byBzcGVjaWZ5Ci13aGVyZSB0byBzdG9wIHNlYXJjaGluZy4gIFNwZWVkcyB1cCBzZWFyY2hlcyB0aGF0IHNob3VsZCBub3QgY29udGludWUgdG9vIGZhci4KLQogRm9yICdlcnJvcmZvcm1hdCcgaXQgd2FzIG5vdCBwb3NzaWJsZSB0byBoYXZlIGEgZmlsZSBuYW1lIHRoYXQgY29udGFpbnMgdGhlCiBjaGFyYWN0ZXIgdGhhdCBmb2xsb3dzIGFmdGVyICIlZiIuICBGb3IgZXhhbXBsZSwgaW4gIiVmOiVsOiVtIiB0aGUgZmlsZSBuYW1lCiBjb3VsZCBub3QgY29udGFpbiAiOiIuICBOb3cgaW5jbHVkZSB0aGUgZmlyc3QgIjoiIHdoZXJlIHRoZSByZXN0IG9mIHRoZQo=