ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0IGIvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQKaW5kZXggYzAyMWVkZi4uZTYzYmNkYiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQKKysrIGIvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQKQEAgLTczNjMsNyArNzM2Myw3IEBACiAJV2hlbiBub3QgZW1wdHkgYWxsIG1lc3NhZ2VzIGFyZSB3cml0dGVuIGluIGEgZmlsZSB3aXRoIHRoaXMgbmFtZS4KIAlXaGVuIHRoZSBmaWxlIGV4aXN0cyBtZXNzYWdlcyBhcmUgYXBwZW5kZWQuCiAJV3JpdGluZyB0byB0aGUgZmlsZSBlbmRzIHdoZW4gVmltIGV4aXRzIG9yIHdoZW4gJ3ZlcmJvc2VmaWxlJyBpcyBtYWRlCi0JZW1wdHkuCisJZW1wdHkuICBXcml0ZXMgYXJlIGJ1ZmZlcmVkLCB0aHVzIG1heSBub3Qgc2hvdyB1cCBmb3Igc29tZSB0aW1lLgogCVNldHRpbmcgJ3ZlcmJvc2VmaWxlJyB0byBhIG5ldyB2YWx1ZSBpcyBsaWtlIG1ha2luZyBpdCBlbXB0eSBmaXJzdC4KIAlUaGUgZGlmZmVyZW5jZSB3aXRoIHw6cmVkaXJ8IGlzIHRoYXQgdmVyYm9zZSBtZXNzYWdlcyBhcmUgbm90CiAJZGlzcGxheWVkIHdoZW4gJ3ZlcmJvc2VmaWxlJyBpcyBzZXQuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90b2RvLnR4dCBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CmluZGV4IDYwNWMzY2IuLmY4OThjMDIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RvZG8udHh0CisrKyBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CkBAIC0zMCw5ICszMCw2IEBACiAJCQkJCQkJKmtub3duLWJ1Z3MqCiAtLS0tLS0tLS0tLS0tLS0tLS0tLSBLbm93biBidWdzIGFuZCBjdXJyZW50IHdvcmsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotZ3RrX3NlbGVjdGlvbl9jbGVhcl90YXJnZXRzIG5vdCBhdmFpbGFibGUgaW4gR1RLMSAoUGF0cmljayBUZXhpZXIpCi1Vc2UgI2lmZGVmcyB0byB1c2Ugb2xkIGNvZGUgZm9yIEdUSzEuCi0KIEN1cnNvciBwb3NpdGlvbmluZyB3cm9uZyB3aXRoIDB4MjAwZSBjaGFyYWN0ZXIuIChKb2huIEJlY2tldCwgMjAxMCBNYXkgNikKIAogRTMxNSB3aGVuIHRyeWluZyB0byBjaGFuZ2UgYSBmaWxlIGluIEZpbGVDaGFuZ2VkUk8gYXV0b2NvbW1hbmQgZXZlbnQuCkBAIC0xMDg4LDcgKzEwODUsNiBAQAogCiAKIFZpbSA3LjM6Ci0tIGNyYXNoIHdoZW4gcmVsb2FkaW5nIGZpbGUuIChOYW1zaCwgMjAxMCBKdW4gMTEpCiAtIHVzaW5nIE5TSVMgMi40NjogaW5zdGFsbCBvbiBXaW5kb3dzIDcgd29ya3MsIGJ1dCBubyAiRWRpdCB3aXRoIFZpbSIgbWVudS4KICAgIFVzZSByZWdpc3Rlcl9zaGVsbF9leHRlbnNpb24oKT8gKEdlb3JnZSBSZWlsbHksIDIwMTAgTWF5IDI2KQogICAgUm9uJ3MgdmVyc2lvbjogaHR0cDovL2Rldi5yb253YXJlLm9yZy9wL3ZpbS9maW5mbz9uYW1lPWd2aW0ubnNpCmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLmVvIGIvcnVudGltZS90dXRvci90dXRvci5lbwppbmRleCAyYWMwNjg5Li45NThkMzkzIDEwMDY0NAotLS0gYS9ydW50aW1lL3R1dG9yL3R1dG9yLmVvCisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuZW8KQEAgLTEsNSArMSw1IEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLT0gIEIgbyBuIHYgZSBuIG8gbiAgYWwgIGxhICBJIG4gcyB0IHIgdSBpIGwgbyAgZGUgIFYgSSBNICAtICBWZXJzaW8gMS43LmVvLjIgPQorPSAgQiBvIG4gdiBlIG4gbyBuICBhbCAgbGEgIEkgbiBzIHQgciB1IGkgbCBvICBkZSAgViBJIE0gIC0gIFZlcnNpbyAxLjcuZW8uMyA9CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogICAgVmltIGVzdGFzIHRyZSBwb3RlbmNhIHJlZGFrdGlsbywga2l1IGhhdmFzIG11bHRham4ga29tYW5kb2puLCB0cm8gZGEgaWxpCkBAIC0xNDksNiArMTQ5LDcgQEAKICAgISEgUklNQVJLTzogQW50Yf0gb2wgcGxlbnVtaSBpdW4gc3ViYW4gcGH+b24gYWpuLCBsZWd1IGxhIHR1dGFuIGxlY2lvbm9uISEKIAogICAxLiBFbGlydSBlbCBsYSBpbnN0cnVpbG8ga2llbCB2aSBmYXJpcyBlbiBsYSBsZWNpb25vIDEuMjogIDpxIQorICAgICBB/Swgc2UgdmkgaGF2YXMgYXRpbmdvbiBhbCBhbGlhIHRlcm1pbmFsbywgZmFydSB0aW9uLCBraW8gc2VrdmFzIHRpZS4KIAogICAyLiDGZSBsYSD+ZWxpbnZpdG8sIHRhanB1IOZpIHRpdW4ga29tYW5kb246ICB2aW0gdHV0b3IgPEVuZW5rbGF2bz4KICAgICAgJ3ZpbScgZXN0YXMgbGEga29tYW5kbyBwb3IgbGFu5mkgbGEgcmVkYWt0aWxvbiBWaW0sICd0dXRvcicgZXN0YXMgbGEKQEAgLTE1OSw3ICsxNjAsOCBAQAogCiAgIDQuIEtvbnNlcnZ1IGxhIGRvc2llcm9uIGt1biD+YW74b2oga2FqIGVsaXJ1IGVsIFZpbSBwZXI6ICA6d3EgIDxFbmVua2xhdm8+CiAKLSAgNS4gUmVsYW7mdSBsYSBpbnN0cnVpbG9uIHZpbXR1dG9yIGthaiBtb3Zp+HUgc3ViZW4gYWwgbGEgc2VrdmFudGEgcmVzdW1vLgorICA1LiBTZSB2aSBlbGlyaXMgbGEgaW5zdHJ1aWxvbiB2aW10dXRvciBlbiBwYf5vIDEsIHJlc3RhcnR1IGxhIGludHJ1aWxvbgorICAgICB2aW10dXRvciBrYWogbW92afh1IHN1YmVuIGFsIGxhIHNla3ZhbnRhIHJlc3Vtby4KIAogICA2LiBQb3N0IGtpYW0gdmkgbGVnaXMgbGEgc3VwcmFqbiBwYf5vam4sIGthaiBrb21wcmVuaXMgaWxpbjogZmFydSBpbGluLgogCkBAIC00MTMsNyArNDE1LDcgQEAKIAogICA1LiBOdW4gbW92afh1IGFsIGxhIGxlY2lvbm8gMy4zLgogCi1SaW1hcmtvOiBNZW1vcnUsIGtlIHZpIGRldnVzIGxlcm5pIHBlciB1em8sIGthaiBuZSBwZXIgbWVtb3JhZG8uCitSSU1BUktPOiBNZW1vcnUsIGtlIHZpIGRldnVzIGxlcm5pIHBlciB1em8sIGthaiBuZSBwZXIgbWVtb3JhZG8uCiAKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CkBAIC05MDgsNyArOTEwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAqKiBFYmxpZ3Uga2FwYWJsb2puIGRlIFZpbSAqKgogCiAgIFZpbSBoYXZhcyBtdWx0ZSBwbGkgZGEga2FwYWJsb2ogb2wgVmksIHNlZCBsYSBwbGVqIG11bHRhaiBlc3RhcyBkZWZh/Wx0ZQotICBtYWz+YWx0aXRhai4gIFBvciBla3V6aSBsYSBrYXBhYmxvam4sIHZpIGRldmFzIGtyZWkgZG9zaWVyb24gInZpbXJjLgorICBtYWz+YWx0aXRhai4gIFBvciBla3V6aSBsYSBrYXBhYmxvam4sIHZpIGRldmFzIGtyZWkgZG9zaWVyb24gInZpbXJjIi4KIAogICAxLiBFa3JlZGFrdHUgbGEgZG9zaWVyb24gInZpbXJjIi4gIFRpbyBkZXBlbmRhcyBkZSB2aWEgc2lzdGVtbzoKICAgICAgIDplIH4vLnZpbXJjICAgICAgICAgIHBvciBVbmlrc28KQEAgLTk2OSw3ICs5NzEsNyBAQAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAKICAgVGlvIGtvbmtsdWRhcyBsYSBpbnN0cnVpbG9uIGRlIFZpbS4gINhpIGNlbGlzIGRvbmkgbWFsbG9uZ2FuIHN1cGVycmlnYXJkb24KLSAgZGUgbGEgcmVkYWt0aWxvIFZpbSwgbnVyIHRpbyBraW8gc3VmaeZhcyBwb3IgZWJsaWdpIGFsIHZpIGZhY2lsYW4gdXpvbiBkZQorICBkZSBsYSByZWRha3RpbG8gVmltLCBudXIgdGlvbiBraW8gc3VmaeZhcyBwb3IgZWJsaWdpIGFsIHZpIGZhY2lsYW4gdXpvbiBkZQogICBsYSByZWRha3RpbG8uIEVzdGFzIG5lcHJlIG5la29tcGxldGEsIOZhciBWaW0gaGF2YXMgbXVsdGFqbiBtdWx0YWpuIHBsaWFqbgogICBrb21hbmRvam4uIExlZ3UgbGEgbWFubGlicm9uOiAiOmhlbHAgdXNlci1tYW51YWwiLgogCkBAIC05ODQsNiArOTg2LDYgQEAKIAogICBUcmFkdWtpdGEgZW4gRXNwZXJhbnRvIGRlIERvbWluaXF1ZSBQZWxs6SwgMjAwOC0wNC0wMQogICBSZXRwb/50bzogZG9taW5pcXVlLnBlbGxlQGdtYWlsLmNvbQotICBMYXN0YSD+YW74bzogMjAwOS0wMi0wMQorICBMYXN0YSD+YW74bzogMjAxMC0wNS0yMwogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuZW8udXRmLTggYi9ydW50aW1lL3R1dG9yL3R1dG9yLmVvLnV0Zi04CmluZGV4IDVhZGFkMzkuLmZlYmYyZjkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuZW8udXRmLTgKKysrIGIvcnVudGltZS90dXRvci90dXRvci5lby51dGYtOApAQCAtMSw1ICsxLDUgQEAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotPSAgQiBvIG4gdiBlIG4gbyBuICBhbCAgbGEgIEkgbiBzIHQgciB1IGkgbCBvICBkZSAgViBJIE0gIC0gIFZlcnNpbyAxLjcuZW8uMiA9Cis9ICBCIG8gbiB2IGUgbiBvIG4gIGFsICBsYSAgSSBuIHMgdCByIHUgaSBsIG8gIGRlICBWIEkgTSAgLSAgVmVyc2lvIDEuNy5lby4zID0KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAgICBWaW0gZXN0YXMgdHJlIHBvdGVuY2EgcmVkYWt0aWxvLCBraXUgaGF2YXMgbXVsdGFqbiBrb21hbmRvam4sIHRybyBkYSBpbGkKQEAgLTE0OSw2ICsxNDksNyBAQAogICAhISBSSU1BUktPOiBBbnRhxa0gb2wgcGxlbnVtaSBpdW4gc3ViYW4gcGHFnW9uIGFqbiwgbGVndSBsYSB0dXRhbiBsZWNpb25vbiEhCiAKICAgMS4gRWxpcnUgZWwgbGEgaW5zdHJ1aWxvIGtpZWwgdmkgZmFyaXMgZW4gbGEgbGVjaW9ubyAxLjI6ICA6cSEKKyAgICAgQcWtLCBzZSB2aSBoYXZhcyBhdGluZ29uIGFsIGFsaWEgdGVybWluYWxvLCBmYXJ1IHRpb24sIGtpbyBzZWt2YXMgdGllLgogCiAgIDIuIMSIZSBsYSDFnWVsaW52aXRvLCB0YWpwdSDEiWkgdGl1biBrb21hbmRvbjogIHZpbSB0dXRvciA8RW5lbmtsYXZvPgogICAgICAndmltJyBlc3RhcyBsYSBrb21hbmRvIHBvciBsYW7EiWkgbGEgcmVkYWt0aWxvbiBWaW0sICd0dXRvcicgZXN0YXMgbGEKQEAgLTE1OSw3ICsxNjAsOCBAQAogCiAgIDQuIEtvbnNlcnZ1IGxhIGRvc2llcm9uIGt1biDFnWFuxJ1vaiBrYWogZWxpcnUgZWwgVmltIHBlcjogIDp3cSAgPEVuZW5rbGF2bz4KIAotICA1LiBSZWxhbsSJdSBsYSBpbnN0cnVpbG9uIHZpbXR1dG9yIGthaiBtb3ZpxJ11IHN1YmVuIGFsIGxhIHNla3ZhbnRhIHJlc3Vtby4KKyAgNS4gU2UgdmkgZWxpcmlzIGxhIGluc3RydWlsb24gdmltdHV0b3IgZW4gcGHFnW8gMSwgcmVzdGFydHUgbGEgaW50cnVpbG9uCisgICAgIHZpbXR1dG9yIGthaiBtb3ZpxJ11IHN1YmVuIGFsIGxhIHNla3ZhbnRhIHJlc3Vtby4KIAogICA2LiBQb3N0IGtpYW0gdmkgbGVnaXMgbGEgc3VwcmFqbiBwYcWdb2puLCBrYWoga29tcHJlbmlzIGlsaW46IGZhcnUgaWxpbi4KIApAQCAtNDEzLDcgKzQxNSw3IEBACiAKICAgNS4gTnVuIG1vdmnEnXUgYWwgbGEgbGVjaW9ubyAzLjMuCiAKLVJpbWFya286IE1lbW9ydSwga2UgdmkgZGV2dXMgbGVybmkgcGVyIHV6bywga2FqIG5lIHBlciBtZW1vcmFkby4KK1JJTUFSS086IE1lbW9ydSwga2UgdmkgZGV2dXMgbGVybmkgcGVyIHV6bywga2FqIG5lIHBlciBtZW1vcmFkby4KIAogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KQEAgLTkwOCw3ICs5MTAsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICoqIEVibGlndSBrYXBhYmxvam4gZGUgVmltICoqCiAKICAgVmltIGhhdmFzIG11bHRlIHBsaSBkYSBrYXBhYmxvaiBvbCBWaSwgc2VkIGxhIHBsZWogbXVsdGFqIGVzdGFzIGRlZmHFrWx0ZQotICBtYWzFnWFsdGl0YWouICBQb3IgZWt1emkgbGEga2FwYWJsb2puLCB2aSBkZXZhcyBrcmVpIGRvc2llcm9uICJ2aW1yYy4KKyAgbWFsxZ1hbHRpdGFqLiAgUG9yIGVrdXppIGxhIGthcGFibG9qbiwgdmkgZGV2YXMga3JlaSBkb3NpZXJvbiAidmltcmMiLgogCiAgIDEuIEVrcmVkYWt0dSBsYSBkb3NpZXJvbiAidmltcmMiLiAgVGlvIGRlcGVuZGFzIGRlIHZpYSBzaXN0ZW1vOgogICAgICAgOmUgfi8udmltcmMgICAgICAgICAgcG9yIFVuaWtzbwpAQCAtOTY5LDcgKzk3MSw3IEBACiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAogICBUaW8ga29ua2x1ZGFzIGxhIGluc3RydWlsb24gZGUgVmltLiAgxJxpIGNlbGlzIGRvbmkgbWFsbG9uZ2FuIHN1cGVycmlnYXJkb24KLSAgZGUgbGEgcmVkYWt0aWxvIFZpbSwgbnVyIHRpbyBraW8gc3VmacSJYXMgcG9yIGVibGlnaSBhbCB2aSBmYWNpbGFuIHV6b24gZGUKKyAgZGUgbGEgcmVkYWt0aWxvIFZpbSwgbnVyIHRpb24ga2lvIHN1ZmnEiWFzIHBvciBlYmxpZ2kgYWwgdmkgZmFjaWxhbiB1em9uIGRlCiAgIGxhIHJlZGFrdGlsby4gRXN0YXMgbmVwcmUgbmVrb21wbGV0YSwgxIlhciBWaW0gaGF2YXMgbXVsdGFqbiBtdWx0YWpuIHBsaWFqbgogICBrb21hbmRvam4uIExlZ3UgbGEgbWFubGlicm9uOiAiOmhlbHAgdXNlci1tYW51YWwiLgogCkBAIC05ODQsNiArOTg2LDYgQEAKIAogICBUcmFkdWtpdGEgZW4gRXNwZXJhbnRvIGRlIERvbWluaXF1ZSBQZWxsw6ksIDIwMDgtMDQtMDEKICAgUmV0cG/FnXRvOiBkb21pbmlxdWUucGVsbGVAZ21haWwuY29tCi0gIExhc3RhIMWdYW7EnW86IDIwMDktMDItMDEKKyAgTGFzdGEgxZ1hbsSdbzogMjAxMC0wNS0yMwogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuZnIgYi9ydW50aW1lL3R1dG9yL3R1dG9yLmZyCmluZGV4IGUzMjE3NTQuLmFiYjUzZDEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuZnIKKysrIGIvcnVudGltZS90dXRvci90dXRvci5mcgpAQCAtMSw1ICsxLDUgQEAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLT0gQiBpIGUgbiB2IGUgbiB1IGUgIGRhbnMgbGUgIFQgdSB0IG8gciBpIGUgbCAgZGUgIFYgSSBNICAtICBWZXJzaW9uIDEuNy5mci4xID0KKz0gQiBpIGUgbiB2IGUgbiB1IGUgIGRhbnMgbGUgIFQgdSB0IG8gciBpIGUgbCAgZGUgIFYgSSBNICAtICBWZXJzaW9uIDEuNy5mci4yID0KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogICAgICBWaW0gZXN0IHVuIOlkaXRldXIgdHLocyBwdWlzc2FudCBxdWkgYSB0cm9wIGRlIGNvbW1hbmRlcyBwb3VyIHBvdXZvaXIKQEAgLTY3LDcgKzY3LDcgQEAKICAgNC4gU2kgdm91cyBhdmV6IG3pbW9yaXPpIGNlcyDpdGFwZXMgZXQg6nRlcyBjb25maWFudCwgZWZmZWN0dWV6IGxlcyDpdGFwZXMKICAgICAgMSDgIDMgcG91ciBzb3J0aXIgcHVpcyByZW50cmVyIGRhbnMgbCfpZGl0ZXVyLgogCi1OT1RFIDogIDpxISA8RW50cullPiBhbm51bGUgdG91cyBsZSBjaGFuZ2VtZW50cyBxdWUgdm91cyBhdmV6IGZhaXQuIERhbnMKK05PVEUgOiAgOnEhIDxFbnRy6WU+IGFubnVsZSB0b3VzIGxlcyBjaGFuZ2VtZW50cyBxdWUgdm91cyBhdmV6IGZhaXQuIERhbnMKICAgICAgICAgIHF1ZWxxdWVzIGxl529ucywgdm91cyBhcHByZW5kcmV6IOAgZW5yZWdpc3RyZXIgbGVzIGNoYW5nZW1lbnRzLgogCiAgIDUuIETpcGxhY2V6IGxlIGN1cnNldXIg4CBsYSBMZedvbiAxLjMuCkBAIC00MDEsNyArNDAxLDcgQEAKIAogICAyLiBUYXBleiAgZGQgIHBvdXIgZWZmYWNlciBsYSBsaWduZSBldCBsYSBwbGFjZXIgZGFucyB1biByZWdpc3RyZSBkZSBWaW0uCiAKLSAgMy4gROlwbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgbGlnbmUgYykgYXUgZGVzc3VzIG/5IHZvdXMgdm91bGV6IHJlbWV0dHJlIGxhCisgIDMuIETpcGxhY2V6IGxlIGN1cnNldXIgc3VyIGxhIGxpZ25lIGMpIGF1LWRlc3N1cyBv+SB2b3VzIHZvdWxleiByZW1ldHRyZSBsYQogICAgICBsaWduZSBlZmZhY+llLgogCiAgIDQuIEVuIG1vZGUgTm9ybWFsLCB0YXBleiAgIHAgICBwb3VyIHJlbWV0dHJlIGxhIGxpZ25lIGVuIGRlc3NvdXMgZHUgY3Vyc2V1ci4KQEAgLTQ4Niw3ICs0ODYsNyBAQAogLS0tPiBMYSBmaW4gZGUgY2V0dGUgbGlnbmUgZG9pdCDqdHJlIHJlbmR1ZSBpZGVudGlxdWUg4CBsYSBzZWNvbmRlLgogLS0tPiBMYSBmaW4gZGUgY2V0dGUgbGlnbmUgZG9pdCDqdHJlIGNvcnJpZ+llIGF2ZWMgbGEgY29tbWFuZGUgIGMkIC4KIAotTk9URSA6ICBWb3VzIHBvdXZleiB1dGlsaXNleiBsYSB0b3VjaGUgUmV0b3VyIEFycmnocmUgcG91ciBjb3JyaWdlciBsZXMKK05PVEUgOiAgVm91cyBwb3V2ZXogdXRpbGlzZXIgbGEgdG91Y2hlIFJldG91ciBBcnJp6HJlIHBvdXIgY29ycmlnZXIgbGVzCiAgICAgICAgIGVycmV1cnMgbG9yc3F1ZSB2b3VzIHRhcGV6LgogCiAKQEAgLTcyMiwxNCArNzIyLDE0IEBACiAKICAgICAgICAgKiogUG91ciBpbnPpcmVyIGxlIGNvbnRlbnUgZCd1biBmaWNoaWVyLCB0YXBleiAgOnIgRklDSElFUiAqKgogCi0gIDEuIFBsYWNleiBsZSBjdXJzZXVyIGp1c3RlIGF1IGRlc3N1cyBkZSBjZXR0ZSBsaWduZS4KKyAgMS4gUGxhY2V6IGxlIGN1cnNldXIganVzdGUgYXUtZGVzc3VzIGRlIGNldHRlIGxpZ25lLgogCiBOT1RFIDogIEFwcuhzIGF2b2lyIGV46WN1dOkgbCfpdGFwZSAyIHZvdXMgdmVycmV6IGR1IHRleHRlIGRlIGxhIExl529uIDUuMy4KICAgICAgICAgUHVpcyBk6XBsYWNleiB2b3VzIHZlcnMgbGUgYmFzIHBvdXIgdm9pciBjZXR0ZSBsZedvbiDgIG5vdXZlYXUuCiAKICAgMi4gTWFpbnRlbmFudCBy6WN1cOlyZXogdm90cmUgZmljaGllciBURVNUIGVuIHV0aWxpc2FudCBsYSBjb21tYW5kZSAgOnIgVEVTVAogICAgICBv+SBURVNUIGVzdCBsZSBub20gZGUgdm90cmUgZmljaGllci4KLSAgICAgTGUgZmljaGllciBxdWUgdm91cyBy6WN1cOlyZXogZXN0IHBsYWPpIGF1IGRlc3NvdXMgZGUgbGEgbGlnbmUgZHUgY3Vyc2V1ci4KKyAgICAgTGUgZmljaGllciBxdWUgdm91cyBy6WN1cOlyZXogZXN0IHBsYWPpIGF1LWRlc3NvdXMgZGUgbGEgbGlnbmUgZHUgY3Vyc2V1ci4KIAogICA0LiBQb3VyIHbpcmlmaWVyIHF1ZSBsZSBmaWNoaWVyIGEgYmllbiDpdOkgaW5z6XLpLCByZW1vbnRleiBldCB26XJpZmllegogICAgICBxdSdpbCB5IGEgbWFpbnRlbmFudCBkZXV4IGNvcGllcyBkZSBsYSBMZedvbiA1LjMsIGwnb3JpZ2luYWxlIGV0IGNlbGxlCkBAIC03NzksNyArNzc5LDcgQEAKIAogLS0tPiBFbiB0YXBhbnQgIG8gIGxlIGN1cnNldXIgc2UgbWV0IHN1ciBsYSBsaWduZSBvdXZlcnRlLCBlbiBtb2RlIEluc2VydGlvbi4KIAotICA0LiBQb3VyIG91dnJpciB1bmUgbGlnbmUgYXUgREVTU1VTIGR1IGN1cnNldXIsIHRhcGV6IHNpbXBsZW1lbnQgdW4gIE8KKyAgNC4gUG91ciBvdXZyaXIgdW5lIGxpZ25lIGF1LURFU1NVUyBkdSBjdXJzZXVyLCB0YXBleiBzaW1wbGVtZW50IHVuICBPCiAgICAgIG1hanVzY3VsZSwgcGx1dPR0IHF1J3VuICBvICBtaW51c2N1bGUuIEZhaXRlcyB1biBlc3NhaSBzdXIgbGEgbGlnbmUKICAgICAgY2ktZGVzc291cy4KIApAQCAtODQ5LDcgKzg0OSw3IEBACiAKICAgMy4gVGFwZXogIHkgIHBvdXIgY29waWVyIGxlIHRleHRlIGVuIHN1cmJyaWxsYW5jZS4KIAotICA0LiBE6XBsYWNleiBsYSBjdXJzZXVyIOAgbGEgZmluIGRlIGxhIGxpZ25lIHN1aXZhbnRlIDogICBqJAorICA0LiBE6XBsYWNleiBsZSBjdXJzZXVyIOAgbGEgZmluIGRlIGxhIGxpZ25lIHN1aXZhbnRlIDogICBqJAogCiAgIDUuIFRhcGV6ICBwICBwb3VyIGNvbGxlciBsZSB0ZXh0ZS4gUHVpcyB0YXBleiA6ICB1biBzZWNvbmQgPMljaGFwPiAuCiAKQEAgLTg5Myw3ICs4OTMsNyBAQAogCiAKICAgMS4gVGFwZXIgIG8gIG91dnJlIHVuZSBsaWduZSBTT1VTIGxlIGN1cnNldXIgZXQgZOltYXJyZSBsZSBtb2RlIEluc2VydGlvbi4KLSAgICAgVGFwZXIgIE8gIG91dnJlIHVuZSBsaWduZSBhdSBERVNTVVMgZHUgY3Vyc2V1ci4KKyAgICAgVGFwZXIgIE8gIG91dnJlIHVuZSBsaWduZSBhdS1ERVNTVVMgZHUgY3Vyc2V1ci4KIAogICAyLiBUYXBlciAgYSAgcG91ciBpbnPpcmVyIGR1IHRleHRlIEFQUshTIGxlIGN1cnNldXIuCiAgICAgIFRhcGVyICBBICBwb3VyIGluc+lyZXIgZHUgdGV4dGUgYXBy6HMgbGEgZmluIGRlIGxpZ25lLgpAQCAtOTg1LDcgKzk4NSw3IEBACiAKICAgNyAgQXBwdXlleiAgPFRBQj4uIFZpbSB2YSBjb21wbOl0ZXIgbGUgbm9tIChzJ2lsIGVzdCB1bmlxdWUpLgogCi1OT1RFIDogTGUgY29tcGzodGVtZW50IGZvbmN0aW9ubmUgcG91ciBkZSBub21icmV1c2UgY29tbWFuZGVzLiBFc3NheWV6CitOT1RFIDogTGUgY29tcGzodGVtZW50IGZvbmN0aW9ubmUgcG91ciBkZSBub21icmV1c2VzIGNvbW1hbmRlcy4gRXNzYXllegogICAgICAgIGQnYXBwdXllciBDVFJMLUQgZXQgPFRBQj4uIEMnZXN0IHV0aWxlIGVuIHBhcnRpY3VsaWVyIHBvdXIgIDpoZWxwIC4KIAogCkBAIC0xMDM0LDUgKzEwMzQsNSBAQAogICBEZXJuaehyZXMgbWlzZXMg4CBqb3VyIHBhciBEb21pbmlxdWUgUGVsbOkuCiAKICAgRS1tYWlsIDogICAgICBkb21pbmlxdWUucGVsbGVAZ21haWwuY29tCi0gIExhc3QgQ2hhbmdlIDogMjAwOCBOb3YgMjMKKyAgTGFzdCBDaGFuZ2UgOiAyMDEwIE1heSAyMwogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLmZyLnV0Zi04IGIvcnVudGltZS90dXRvci90dXRvci5mci51dGYtOAppbmRleCAxYjAxNTEwLi4yNGQ4YmZhIDEwMDY0NAotLS0gYS9ydW50aW1lL3R1dG9yL3R1dG9yLmZyLnV0Zi04CisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuZnIudXRmLTgKQEAgLTEsNSArMSw1IEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci09IEIgaSBlIG4gdiBlIG4gdSBlICBkYW5zIGxlICBUIHUgdCBvIHIgaSBlIGwgIGRlICBWIEkgTSAgLSAgVmVyc2lvbiAxLjcuZnIuMSA9Cis9IEIgaSBlIG4gdiBlIG4gdSBlICBkYW5zIGxlICBUIHUgdCBvIHIgaSBlIGwgIGRlICBWIEkgTSAgLSAgVmVyc2lvbiAxLjcuZnIuMiA9CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKICAgICAgVmltIGVzdCB1biDDqWRpdGV1ciB0csOocyBwdWlzc2FudCBxdWkgYSB0cm9wIGRlIGNvbW1hbmRlcyBwb3VyIHBvdXZvaXIKQEAgLTY3LDcgKzY3LDcgQEAKICAgNC4gU2kgdm91cyBhdmV6IG3DqW1vcmlzw6kgY2VzIMOpdGFwZXMgZXQgw6p0ZXMgY29uZmlhbnQsIGVmZmVjdHVleiBsZXMgw6l0YXBlcwogICAgICAxIMOgIDMgcG91ciBzb3J0aXIgcHVpcyByZW50cmVyIGRhbnMgbCfDqWRpdGV1ci4KIAotTk9URSA6ICA6cSEgPEVudHLDqWU+IGFubnVsZSB0b3VzIGxlIGNoYW5nZW1lbnRzIHF1ZSB2b3VzIGF2ZXogZmFpdC4gRGFucworTk9URSA6ICA6cSEgPEVudHLDqWU+IGFubnVsZSB0b3VzIGxlcyBjaGFuZ2VtZW50cyBxdWUgdm91cyBhdmV6IGZhaXQuIERhbnMKICAgICAgICAgIHF1ZWxxdWVzIGxlw6dvbnMsIHZvdXMgYXBwcmVuZHJleiDDoCBlbnJlZ2lzdHJlciBsZXMgY2hhbmdlbWVudHMuCiAKICAgNS4gRMOpcGxhY2V6IGxlIGN1cnNldXIgw6AgbGEgTGXDp29uIDEuMy4KQEAgLTQwMSw3ICs0MDEsNyBAQAogCiAgIDIuIFRhcGV6ICBkZCAgcG91ciBlZmZhY2VyIGxhIGxpZ25lIGV0IGxhIHBsYWNlciBkYW5zIHVuIHJlZ2lzdHJlIGRlIFZpbS4KIAotICAzLiBEw6lwbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgbGlnbmUgYykgYXUgZGVzc3VzIG/DuSB2b3VzIHZvdWxleiByZW1ldHRyZSBsYQorICAzLiBEw6lwbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgbGlnbmUgYykgYXUtZGVzc3VzIG/DuSB2b3VzIHZvdWxleiByZW1ldHRyZSBsYQogICAgICBsaWduZSBlZmZhY8OpZS4KIAogICA0LiBFbiBtb2RlIE5vcm1hbCwgdGFwZXogICBwICAgcG91ciByZW1ldHRyZSBsYSBsaWduZSBlbiBkZXNzb3VzIGR1IGN1cnNldXIuCkBAIC00ODYsNyArNDg2LDcgQEAKIC0tLT4gTGEgZmluIGRlIGNldHRlIGxpZ25lIGRvaXQgw6p0cmUgcmVuZHVlIGlkZW50aXF1ZSDDoCBsYSBzZWNvbmRlLgogLS0tPiBMYSBmaW4gZGUgY2V0dGUgbGlnbmUgZG9pdCDDqnRyZSBjb3JyaWfDqWUgYXZlYyBsYSBjb21tYW5kZSAgYyQgLgogCi1OT1RFIDogIFZvdXMgcG91dmV6IHV0aWxpc2V6IGxhIHRvdWNoZSBSZXRvdXIgQXJyacOocmUgcG91ciBjb3JyaWdlciBsZXMKK05PVEUgOiAgVm91cyBwb3V2ZXogdXRpbGlzZXIgbGEgdG91Y2hlIFJldG91ciBBcnJpw6hyZSBwb3VyIGNvcnJpZ2VyIGxlcwogICAgICAgICBlcnJldXJzIGxvcnNxdWUgdm91cyB0YXBlei4KIAogCkBAIC03MjIsMTQgKzcyMiwxNCBAQAogCiAgICAgICAgICoqIFBvdXIgaW5zw6lyZXIgbGUgY29udGVudSBkJ3VuIGZpY2hpZXIsIHRhcGV6ICA6ciBGSUNISUVSICoqCiAKLSAgMS4gUGxhY2V6IGxlIGN1cnNldXIganVzdGUgYXUgZGVzc3VzIGRlIGNldHRlIGxpZ25lLgorICAxLiBQbGFjZXogbGUgY3Vyc2V1ciBqdXN0ZSBhdS1kZXNzdXMgZGUgY2V0dGUgbGlnbmUuCiAKIE5PVEUgOiAgQXByw6hzIGF2b2lyIGV4w6ljdXTDqSBsJ8OpdGFwZSAyIHZvdXMgdmVycmV6IGR1IHRleHRlIGRlIGxhIExlw6dvbiA1LjMuCiAgICAgICAgIFB1aXMgZMOpcGxhY2V6IHZvdXMgdmVycyBsZSBiYXMgcG91ciB2b2lyIGNldHRlIGxlw6dvbiDDoCBub3V2ZWF1LgogCiAgIDIuIE1haW50ZW5hbnQgcsOpY3Vww6lyZXogdm90cmUgZmljaGllciBURVNUIGVuIHV0aWxpc2FudCBsYSBjb21tYW5kZSAgOnIgVEVTVAogICAgICBvw7kgVEVTVCBlc3QgbGUgbm9tIGRlIHZvdHJlIGZpY2hpZXIuCi0gICAgIExlIGZpY2hpZXIgcXVlIHZvdXMgcsOpY3Vww6lyZXogZXN0IHBsYWPDqSBhdSBkZXNzb3VzIGRlIGxhIGxpZ25lIGR1IGN1cnNldXIuCisgICAgIExlIGZpY2hpZXIgcXVlIHZvdXMgcsOpY3Vww6lyZXogZXN0IHBsYWPDqSBhdS1kZXNzb3VzIGRlIGxhIGxpZ25lIGR1IGN1cnNldXIuCiAKICAgNC4gUG91ciB2w6lyaWZpZXIgcXVlIGxlIGZpY2hpZXIgYSBiaWVuIMOpdMOpIGluc8OpcsOpLCByZW1vbnRleiBldCB2w6lyaWZpZXoKICAgICAgcXUnaWwgeSBhIG1haW50ZW5hbnQgZGV1eCBjb3BpZXMgZGUgbGEgTGXDp29uIDUuMywgbCdvcmlnaW5hbGUgZXQgY2VsbGUKQEAgLTc3OSw3ICs3NzksNyBAQAogCiAtLS0+IEVuIHRhcGFudCAgbyAgbGUgY3Vyc2V1ciBzZSBtZXQgc3VyIGxhIGxpZ25lIG91dmVydGUsIGVuIG1vZGUgSW5zZXJ0aW9uLgogCi0gIDQuIFBvdXIgb3V2cmlyIHVuZSBsaWduZSBhdSBERVNTVVMgZHUgY3Vyc2V1ciwgdGFwZXogc2ltcGxlbWVudCB1biAgTworICA0LiBQb3VyIG91dnJpciB1bmUgbGlnbmUgYXUtREVTU1VTIGR1IGN1cnNldXIsIHRhcGV6IHNpbXBsZW1lbnQgdW4gIE8KICAgICAgbWFqdXNjdWxlLCBwbHV0w7R0IHF1J3VuICBvICBtaW51c2N1bGUuIEZhaXRlcyB1biBlc3NhaSBzdXIgbGEgbGlnbmUKICAgICAgY2ktZGVzc291cy4KIApAQCAtODQ5LDcgKzg0OSw3IEBACiAKICAgMy4gVGFwZXogIHkgIHBvdXIgY29waWVyIGxlIHRleHRlIGVuIHN1cmJyaWxsYW5jZS4KIAotICA0LiBEw6lwbGFjZXogbGEgY3Vyc2V1ciDDoCBsYSBmaW4gZGUgbGEgbGlnbmUgc3VpdmFudGUgOiAgIGokCisgIDQuIETDqXBsYWNleiBsZSBjdXJzZXVyIMOgIGxhIGZpbiBkZSBsYSBsaWduZSBzdWl2YW50ZSA6ICAgaiQKIAogICA1LiBUYXBleiAgcCAgcG91ciBjb2xsZXIgbGUgdGV4dGUuIFB1aXMgdGFwZXogOiAgdW4gc2Vjb25kIDzDiWNoYXA+IC4KIApAQCAtODkzLDcgKzg5Myw3IEBACiAKIAogICAxLiBUYXBlciAgbyAgb3V2cmUgdW5lIGxpZ25lIFNPVVMgbGUgY3Vyc2V1ciBldCBkw6ltYXJyZSBsZSBtb2RlIEluc2VydGlvbi4KLSAgICAgVGFwZXIgIE8gIG91dnJlIHVuZSBsaWduZSBhdSBERVNTVVMgZHUgY3Vyc2V1ci4KKyAgICAgVGFwZXIgIE8gIG91dnJlIHVuZSBsaWduZSBhdS1ERVNTVVMgZHUgY3Vyc2V1ci4KIAogICAyLiBUYXBlciAgYSAgcG91ciBpbnPDqXJlciBkdSB0ZXh0ZSBBUFLDiFMgbGUgY3Vyc2V1ci4KICAgICAgVGFwZXIgIEEgIHBvdXIgaW5zw6lyZXIgZHUgdGV4dGUgYXByw6hzIGxhIGZpbiBkZSBsaWduZS4KQEAgLTk4NSw3ICs5ODUsNyBAQAogCiAgIDcgIEFwcHV5ZXogIDxUQUI+LiBWaW0gdmEgY29tcGzDqXRlciBsZSBub20gKHMnaWwgZXN0IHVuaXF1ZSkuCiAKLU5PVEUgOiBMZSBjb21wbMOodGVtZW50IGZvbmN0aW9ubmUgcG91ciBkZSBub21icmV1c2UgY29tbWFuZGVzLiBFc3NheWV6CitOT1RFIDogTGUgY29tcGzDqHRlbWVudCBmb25jdGlvbm5lIHBvdXIgZGUgbm9tYnJldXNlcyBjb21tYW5kZXMuIEVzc2F5ZXoKICAgICAgICBkJ2FwcHV5ZXIgQ1RSTC1EIGV0IDxUQUI+LiBDJ2VzdCB1dGlsZSBlbiBwYXJ0aWN1bGllciBwb3VyICA6aGVscCAuCiAKIApAQCAtMTAzNCw1ICsxMDM0LDUgQEAKICAgRGVybmnDqHJlcyBtaXNlcyDDoCBqb3VyIHBhciBEb21pbmlxdWUgUGVsbMOpLgogCiAgIEUtbWFpbCA6ICAgICAgZG9taW5pcXVlLnBlbGxlQGdtYWlsLmNvbQotICBMYXN0IENoYW5nZSA6IDIwMDggTm92IDIzCisgIExhc3QgQ2hhbmdlIDogMjAxMCBNYXkgMjMKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpkaWZmIC0tZ2l0IGEvc3JjL2Jsb3dmaXNoLmMgYi9zcmMvYmxvd2Zpc2guYwppbmRleCBkNDdmNDYzLi5mMGI5N2I3IDEwMDY0NAotLS0gYS9zcmMvYmxvd2Zpc2guYworKysgYi9zcmMvYmxvd2Zpc2guYwpAQCAtNDAyLDIyICs0MDIsNDAgQEAKIH0KICNlbmRpZgogCisvKgorICogSW5pdGlhbGl6ZSB0aGUgY3J5cHQgbWV0aG9kIHVzaW5nICJwYXNzd29yZCIgYXMgdGhlIGVuY3J5cHRpb24ga2V5IGFuZAorICogInNhbHRbc2FsdF9sZW5dIiBhcyB0aGUgc2FsdC4KKyAqLwogICAgIHZvaWQKLWJmX2tleV9pbml0KHBhc3N3b3JkKQorYmZfa2V5X2luaXQocGFzc3dvcmQsIHNhbHQsIHNhbHRfbGVuKQogICAgIGNoYXJfdSAqcGFzc3dvcmQ7CisgICAgY2hhcl91ICpzYWx0OworICAgIGludCAgICBzYWx0X2xlbjsKIHsKICAgICBpbnQgICAgICBpLCBqLCBrZXlwb3MgPSAwOwogICAgIFVJTlQzMl9UIHZhbCwgZGF0YV9sLCBkYXRhX3I7CiAgICAgY2hhcl91ICAgKmtleTsKICAgICBpbnQgICAgICBrZXlsZW47CiAKLSAgICBrZXkgPSBzaGEyNTZfa2V5KHBhc3N3b3JkKTsKLSAgICBrZXlsZW4gPSAoaW50KVNUUkxFTihrZXkpOworICAgIC8qIFByb2Nlc3MgdGhlIGtleSAxMDAwIHRpbWVzLgorICAgICAqIFNlZSBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0tleV9zdHJlbmd0aGVuaW5nLiAqLworICAgIGtleSA9IHNoYTI1Nl9rZXkocGFzc3dvcmQsIHNhbHQsIHNhbHRfbGVuKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgMTAwMDsgaSsrKQorICAgICAgICBrZXkgPSBzaGEyNTZfa2V5KGtleSwgc2FsdCwgc2FsdF9sZW4pOworCisgICAgLyogQ29udmVydCB0aGUga2V5IGZyb20gNjQgaGV4IGNoYXJzIHRvIDMyIGJpbmFyeSBjaGFycy4gKi8KKyAgICBrZXlsZW4gPSAoaW50KVNUUkxFTihrZXkpIC8gMjsKICAgICBpZiAoa2V5bGVuID09IDApCiAgICAgewogCUVNU0coXygiRTgzMTogYmZfa2V5X2luaXQoKSBjYWxsZWQgd2l0aCBlbXB0eSBwYXNzd29yZCIpKTsKIAlyZXR1cm47CiAgICAgfQorICAgIGZvciAoaSA9IDA7IGkgPCBrZXlsZW47IGkrKykKKyAgICB7CisgICAgICAgIHNzY2FuZigoY2hhciAqKSZrZXlbaSAqIDJdLCAiJTJ4IiwgJmopOworICAgICAgICBrZXlbaV0gPSBqOworICAgIH0KKwogICAgIGZvciAoaSA9IDA7IGkgPCAyNTY7ICsraSkKICAgICB7CiAJc2J4WzBdW2ldID0gc2JpWzBdW2ldOwpAQCAtNDc1LDkgKzQ5MywxMCBAQAogCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgY2hhcl91ICAgcGFzc3dvcmRbNjRdOwotICAgIGNoYXJfdSAgIHBsYWludHh0WzhdOwotICAgIGNoYXJfdSAgIGNyeXB0eHRbOF07Ci0gICAgY2hhcl91ICAgYmFkY3J5cHR4dFs4XTsgLyogY3J5cHR4dCB3aGVuIGJpZy9saXR0bGUgZW5kaWFuIGlzIHdyb25nICovCisgICAgY2hhcl91ICAgc2FsdFs5XTsKKyAgICBjaGFyX3UgICBwbGFpbnR4dFs5XTsKKyAgICBjaGFyX3UgICBjcnlwdHh0WzldOworICAgIGNoYXJfdSAgIGJhZGNyeXB0eHRbOV07IC8qIGNyeXB0eHQgd2hlbiBiaWcvbGl0dGxlIGVuZGlhbiBpcyB3cm9uZyAqLwogICAgIFVJTlQzMl9UIGtleXN1bTsKIH0gc3RydWN0X2JmX3Rlc3RfZGF0YTsKIApAQCAtNDg4LDEwICs1MDcsMTEgQEAKIHN0YXRpYyBzdHJ1Y3RfYmZfdGVzdF9kYXRhIGJmX3Rlc3RfZGF0YVtdID0gewogICB7CiAgICAgICAicGFzc3dvcmQiLAorICAgICAgInNhbHQiLAogICAgICAgInBsYWludHh0IiwKLSAgICAgICJceDU1XHhjYVx4NTZceDNhXHhlZlx4ZTFceDljXHg3MyIsIC8qIGNyeXB0eHQgKi8KLSAgICAgICJceDQ3XHhkOVx4NjdceDQ5XHg5MVx4YzVceDlhXHg5NSIsIC8qIGJhZGNyeXB0eHQgKi8KLSAgICAgIDB4NWRlMDFiZGJ1LCAvKiBrZXlzdW0gKi8KKyAgICAgICJceGFkXHgzZFx4ZmFceDdmXHhlOFx4ZWFceDQwXHhmNiIsIC8qIGNyeXB0eHQgKi8KKyAgICAgICJceDcyXHg1MFx4M2JceDM4XHgxMFx4NjBceDIyXHhhNyIsIC8qIGJhZGNyeXB0eHQgKi8KKyAgICAgIDB4NTY3MDFiNWR1IC8qIGtleXN1bSAqLwogICB9LAogfTsKIApAQCAtNTE5LDcgKzUzOSw5IEBACiAgICAgYm4gPSBBUlJBWV9MRU5HVEgoYmZfdGVzdF9kYXRhKTsKICAgICBmb3IgKGkgPSAwOyBpIDwgYm47IGkrKykKICAgICB7Ci0JYmZfa2V5X2luaXQoKGNoYXJfdSAqKShiZl90ZXN0X2RhdGFbaV0ucGFzc3dvcmQpKTsKKwliZl9rZXlfaW5pdCgoY2hhcl91ICopKGJmX3Rlc3RfZGF0YVtpXS5wYXNzd29yZCksCisgICAgICAgICAgICAgICAgICAgIGJmX3Rlc3RfZGF0YVtpXS5zYWx0LAorCQkgICAgKGludClTVFJMRU4oYmZfdGVzdF9kYXRhW2ldLnNhbHQpKTsKIAlpZiAoIWJmX2NoZWNrX3RhYmxlcyhwYXgsIHNieCwgYmZfdGVzdF9kYXRhW2ldLmtleXN1bSkpCiAJICAgIGVycisrOwogCmRpZmYgLS1naXQgYS9zcmMvZmlsZWlvLmMgYi9zcmMvZmlsZWlvLmMKaW5kZXggYmM2MjlmMy4uYmZjMTFkMCAxMDA2NDQKLS0tIGEvc3JjL2ZpbGVpby5jCisrKyBiL3NyYy9maWxlaW8uYwpAQCAtMzcsNyArMzcsMTIgQEAKIHN0YXRpYyBjaGFyCSpjcnlwdF9tYWdpY1tdID0geyJWaW1DcnlwdH4wMSEiLCAiVmltQ3J5cHR+MDIhIn07CiBzdGF0aWMgY2hhcgljcnlwdF9tYWdpY19oZWFkW10gPSAiVmltQ3J5cHR+IjsKICMgZGVmaW5lIENSWVBUX01BR0lDX0xFTgkxMgkJLyogbXVzdCBiZSBtdWx0aXBsZSBvZiA0ISAqLworCisvKiBGb3IgYmxvd2Zpc2gsIGFmdGVyIHRoZSBtYWdpYyBoZWFkZXIsIHdlIHN0b3JlIDggYnl0ZXMgb2Ygc2FsdCBhbmQgdGhlbiA4CisgKiBieXRlcyBvZiBzZWVkIChpbml0aWFsaXNhdGlvbiB2ZWN0b3IpLiAqLworc3RhdGljIGludAljcnlwdF9zYWx0X2xlbltdID0gezAsIDh9Owogc3RhdGljIGludAljcnlwdF9zZWVkX2xlbltdID0gezAsIDh9OworI2RlZmluZSBDUllQVF9TQUxUX0xFTl9NQVggOAogI2RlZmluZSBDUllQVF9TRUVEX0xFTl9NQVggOAogI2VuZGlmCiAKQEAgLTE0NDEsNiArMTQ0Niw3IEBACiAJICAgIGlmICgoZmlsZXNpemUgPT0gMAogIyBpZmRlZiBGRUFUX0NSWVBUCiAJCSAgIHx8IChmaWxlc2l6ZSA9PSAoQ1JZUFRfTUFHSUNfTEVOCisJCQkJCSAgICsgY3J5cHRfc2FsdF9sZW5bdXNlX2NyeXB0X21ldGhvZF0KIAkJCQkJICAgKyBjcnlwdF9zZWVkX2xlblt1c2VfY3J5cHRfbWV0aG9kXSkKIAkJCQkJCQkgICYmIGNyeXB0a2V5ICE9IE5VTEwpCiAjIGVuZGlmCkBAIC0yNDg4LDcgKzI0OTQsOSBAQAogI2lmZGVmIEZFQVRfQ1JZUFQKIAkgICAgaWYgKGNyeXB0a2V5ICE9IE5VTEwpCiAJCW1zZ19hZGRfbGluZXMoYywgKGxvbmcpbGluZWNudCwgZmlsZXNpemUKLQkJCS0gQ1JZUFRfTUFHSUNfTEVOIC0gY3J5cHRfc2VlZF9sZW5bdXNlX2NyeXB0X21ldGhvZF0pOworCQkJLSBDUllQVF9NQUdJQ19MRU4KKwkJCS0gY3J5cHRfc2FsdF9sZW5bdXNlX2NyeXB0X21ldGhvZF0KKwkJCS0gY3J5cHRfc2VlZF9sZW5bdXNlX2NyeXB0X21ldGhvZF0pOwogCSAgICBlbHNlCiAjZW5kaWYKIAkJbXNnX2FkZF9saW5lcyhjLCAobG9uZylsaW5lY250LCBmaWxlc2l6ZSk7CkBAIC0yODQxLDcgKzI4NDksNyBAQAogCiAgICAgZm9yIChpID0gMDsgaSA8IChpbnQpKHNpemVvZihjcnlwdF9tYWdpYykgLyBzaXplb2YoY3J5cHRfbWFnaWNbMF0pKTsgaSsrKQogICAgIHsKLQlpZiAobGVuIDwgKENSWVBUX01BR0lDX0xFTiArIGNyeXB0X3NlZWRfbGVuW2ldKSkKKwlpZiAobGVuIDwgKENSWVBUX01BR0lDX0xFTiArIGNyeXB0X3NhbHRfbGVuW2ldICsgY3J5cHRfc2VlZF9sZW5baV0pKQogCSAgICBjb250aW51ZTsKIAlpZiAobWVtY21wKHB0ciwgY3J5cHRfbWFnaWNbaV0sIENSWVBUX01BR0lDX0xFTikgPT0gMCkKIAkgICAgcmV0dXJuIGk7CkBAIC0yOTAzLDE5ICsyOTExLDIwIEBACiAJaWYgKGNyeXB0a2V5ICE9IE5VTEwpCiAJewogCSAgICBpbnQgc2VlZF9sZW4gPSBjcnlwdF9zZWVkX2xlblttZXRob2RdOworCSAgICBpbnQgc2FsdF9sZW4gPSBjcnlwdF9zYWx0X2xlblttZXRob2RdOwogCiAJICAgIGlmIChtZXRob2QgPT0gMCkKIAkJY3J5cHRfaW5pdF9rZXlzKGNyeXB0a2V5KTsKIAkgICAgZWxzZQogCSAgICB7Ci0JCWJmX2tleV9pbml0KGNyeXB0a2V5KTsKLQkJYmZfb2ZiX2luaXQocHRyICsgQ1JZUFRfTUFHSUNfTEVOLCBzZWVkX2xlbik7CisJCWJmX2tleV9pbml0KGNyeXB0a2V5LCBwdHIgKyBDUllQVF9NQUdJQ19MRU4sIHNhbHRfbGVuKTsKKwkJYmZfb2ZiX2luaXQocHRyICsgQ1JZUFRfTUFHSUNfTEVOICsgc2FsdF9sZW4sIHNlZWRfbGVuKTsKIAkgICAgfQogCiAJICAgIC8qIFJlbW92ZSBtYWdpYyBudW1iZXIgZnJvbSB0aGUgdGV4dCAqLwotCSAgICAqZmlsZXNpemVwICs9IENSWVBUX01BR0lDX0xFTiArIHNlZWRfbGVuOwotCSAgICAqc2l6ZXAgLT0gQ1JZUFRfTUFHSUNfTEVOICsgc2VlZF9sZW47Ci0JICAgIG1jaF9tZW1tb3ZlKHB0ciwgcHRyICsgQ1JZUFRfTUFHSUNfTEVOICsgc2VlZF9sZW4sIChzaXplX3QpKnNpemVwKTsKKwkgICAgKmZpbGVzaXplcCArPSBDUllQVF9NQUdJQ19MRU4gKyBzYWx0X2xlbiArIHNlZWRfbGVuOworCSAgICAqc2l6ZXAgLT0gQ1JZUFRfTUFHSUNfTEVOICsgc2FsdF9sZW4gKyBzZWVkX2xlbjsKKwkgICAgbWNoX21lbW1vdmUocHRyLCBwdHIgKyBDUllQVF9NQUdJQ19MRU4gKyBzYWx0X2xlbiArIHNlZWRfbGVuLCAoc2l6ZV90KSpzaXplcCk7CiAJfQogICAgIH0KICAgICAvKiBXaGVuIHN0YXJ0aW5nIHRvIGVkaXQgYSBuZXcgZmlsZSB3aGljaCBkb2VzIG5vdCBoYXZlIGVuY3J5cHRpb24sIGNsZWFyCkBAIC0yOTM1LDEyICsyOTQ0LDE1IEBACiAgICAgRklMRQkqZnA7CiB7CiAgICAgaW50CQltZXRob2Q7Ci0gICAgY2hhcl91CWJ1ZmZlcltDUllQVF9NQUdJQ19MRU4gKyBDUllQVF9TRUVEX0xFTl9NQVggKyAyXTsKKyAgICBjaGFyX3UJYnVmZmVyW0NSWVBUX01BR0lDX0xFTiArIENSWVBUX1NBTFRfTEVOX01BWAorCQkJCQkJICAgICsgQ1JZUFRfU0VFRF9MRU5fTUFYICsgMl07CiAKICAgICBpZiAoZnJlYWQoYnVmZmVyLCBDUllQVF9NQUdJQ19MRU4sIDEsIGZwKSAhPSAxKQogCXJldHVybiBGQUlMOwogICAgIG1ldGhvZCA9IGdldF9jcnlwdF9tZXRob2QoKGNoYXIgKilidWZmZXIsCi0JCQkJCUNSWVBUX01BR0lDX0xFTiArIENSWVBUX1NFRURfTEVOX01BWCk7CisJCQkJCUNSWVBUX01BR0lDX0xFTiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1JZUFRfU0VFRF9MRU5fTUFYICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUllQVF9TQUxUX0xFTl9NQVgpOwogICAgIGlmIChtZXRob2QgPCAwIHx8IG1ldGhvZCAhPSBjdXJidWYtPmJfcF9jbSkKIAlyZXR1cm4gRkFJTDsKIApAQCAtMjk0OCwxMiArMjk2MCwxMyBAQAogCWNyeXB0X2luaXRfa2V5cyhjdXJidWYtPmJfcF9rZXkpOwogICAgIGVsc2UKICAgICB7CisJaW50IHNhbHRfbGVuID0gY3J5cHRfc2FsdF9sZW5bbWV0aG9kXTsKIAlpbnQgc2VlZF9sZW4gPSBjcnlwdF9zZWVkX2xlblttZXRob2RdOwogCi0JaWYgKGZyZWFkKGJ1ZmZlciwgc2VlZF9sZW4sIDEsIGZwKSAhPSAxKQorCWlmIChmcmVhZChidWZmZXIsIHNhbHRfbGVuICsgc2VlZF9sZW4sIDEsIGZwKSAhPSAxKQogCSAgICByZXR1cm4gRkFJTDsKLQliZl9rZXlfaW5pdChjdXJidWYtPmJfcF9rZXkpOwotCWJmX29mYl9pbml0KGJ1ZmZlciwgc2VlZF9sZW4pOworCWJmX2tleV9pbml0KGN1cmJ1Zi0+Yl9wX2tleSwgYnVmZmVyLCBzYWx0X2xlbik7CisJYmZfb2ZiX2luaXQoYnVmZmVyICsgc2FsdF9sZW4sIHNlZWRfbGVuKTsKICAgICB9CiAgICAgcmV0dXJuIE9LOwogfQpAQCAtMjk2OSw4ICsyOTgyLDEyIEBACiB7CiAgICAgY2hhcl91ICAqaGVhZGVyOwogICAgIGludAkgICAgc2VlZF9sZW4gPSBjcnlwdF9zZWVkX2xlbltidWYtPmJfcF9jbV07CisgICAgaW50ICAgICBzYWx0X2xlbiA9IGNyeXB0X3NhbHRfbGVuW2J1Zi0+Yl9wX2NtXTsKKyAgICBjaGFyX3UgICpzYWx0OworICAgIGNoYXJfdSAgKnNlZWQ7CiAKLSAgICBoZWFkZXIgPSBhbGxvY19jbGVhcihDUllQVF9NQUdJQ19MRU4gKyBDUllQVF9TRUVEX0xFTl9NQVggKyAyKTsKKyAgICBoZWFkZXIgPSBhbGxvY19jbGVhcihDUllQVF9NQUdJQ19MRU4gKyBDUllQVF9TQUxUX0xFTl9NQVgKKwkJCQkJCSAgICArIENSWVBUX1NFRURfTEVOX01BWCArIDIpOwogICAgIGlmIChoZWFkZXIgIT0gTlVMTCkKICAgICB7CiAJdXNlX2NyeXB0X21ldGhvZCA9IGJ1Zi0+Yl9wX2NtOyAgLyogc2VsZWN0IHBremlwIG9yIGJsb3dmaXNoICovCkBAIC0yOTgwLDI3ICsyOTk3LDMyIEBACiAJICAgIGNyeXB0X2luaXRfa2V5cyhidWYtPmJfcF9rZXkpOwogCWVsc2UKIAl7Ci0JICAgIC8qIFVzaW5nIGJsb3dmaXNoLCBhZGQgc2VlZC4gKi8KLQkgICAgc2hhMl9zZWVkKGhlYWRlciArIENSWVBUX01BR0lDX0xFTiwgc2VlZF9sZW4pOyAvKiBjcmVhdGUgaXYgKi8KLQkgICAgYmZfb2ZiX2luaXQoaGVhZGVyICsgQ1JZUFRfTUFHSUNfTEVOLCBzZWVkX2xlbik7Ci0JICAgIGJmX2tleV9pbml0KGJ1Zi0+Yl9wX2tleSk7CisJICAgIC8qIFVzaW5nIGJsb3dmaXNoLCBhZGQgc2FsdCBhbmQgc2VlZC4gKi8KKwkgICAgc2FsdCA9IGhlYWRlciArIENSWVBUX01BR0lDX0xFTjsKKwkgICAgc2VlZCA9IHNhbHQgKyBzYWx0X2xlbjsKKwkgICAgc2hhMl9zZWVkKHNhbHQsIHNhbHRfbGVuLCBzZWVkLCBzZWVkX2xlbik7CisJICAgIGJmX2tleV9pbml0KGJ1Zi0+Yl9wX2tleSwgc2FsdCwgc2FsdF9sZW4pOworCSAgICBiZl9vZmJfaW5pdChzZWVkLCBzZWVkX2xlbik7CiAJfQogICAgIH0KLSAgICAqbGVucCA9IENSWVBUX01BR0lDX0xFTiArIHNlZWRfbGVuOworICAgICpsZW5wID0gQ1JZUFRfTUFHSUNfTEVOICsgc2FsdF9sZW4gKyBzZWVkX2xlbjsKICAgICByZXR1cm4gaGVhZGVyOwogfQogCisjZW5kaWYgIC8qIEZFQVRfQ1JZUFQgKi8KKwogLyoKICAqIExpa2UgZndyaXRlKCkgYnV0IGNyeXB0IHRoZSBieXRlcyB3aGVuICdrZXknIGlzIHNldC4KICAqIFJldHVybnMgMSBpZiBzdWNjZXNzZnVsLgogICovCiAgICAgc2l6ZV90CiBmd3JpdGVfY3J5cHQoYnVmLCBwdHIsIGxlbiwgZnApCi0gICAgYnVmX1QJKmJ1ZjsKKyAgICBidWZfVAkqYnVmIFVOVVNFRDsKICAgICBjaGFyX3UJKnB0cjsKICAgICBzaXplX3QJbGVuOwogICAgIEZJTEUJKmZwOwogeworI2lmZGVmIEZFQVRfQ1JZUFQKICAgICBjaGFyX3UgICpjb3B5OwogICAgIGNoYXJfdSAgc21hbGxfYnVmWzEwMF07CiAgICAgc2l6ZV90ICBpOwpAQCAtMzAyMCw2ICszMDQyLDkgQEAKICAgICBpZiAoY29weSAhPSBzbWFsbF9idWYpCiAJdmltX2ZyZWUoY29weSk7CiAgICAgcmV0dXJuIGk7CisjZWxzZQorICAgIHJldHVybiBmd3JpdGUocHRyLCBsZW4sIChzaXplX3QpMSwgZnApOworI2VuZGlmCiB9CiAKIC8qCkBAIC0zMDI4LDE5ICszMDUzLDIwIEBACiAgKi8KICAgICBjaGFyX3UgKgogcmVhZF9zdHJpbmdfZGVjcnlwdChidWYsIGZkLCBsZW4pCi0gICAgYnVmX1QgICAqYnVmOworICAgIGJ1Zl9UICAgKmJ1ZiBVTlVTRUQ7CiAgICAgRklMRSAgICAqZmQ7CiAgICAgaW50CSAgICBsZW47CiB7CiAgICAgY2hhcl91ICAqcHRyOwogCiAgICAgcHRyID0gcmVhZF9zdHJpbmcoZmQsIGxlbik7CisjaWZkZWYgRkVBVF9DUllQVAogICAgIGlmIChwdHIgIT0gTlVMTCB8fCAqYnVmLT5iX3Bfa2V5ICE9IE5VTCkKIAljcnlwdF9kZWNvZGUocHRyLCBsZW4pOworI2VuZGlmCiAgICAgcmV0dXJuIHB0cjsKIH0KIAotI2VuZGlmICAvKiBGRUFUX0NSWVBUICovCiAKICNpZmRlZiBVTklYCiAgICAgc3RhdGljIHZvaWQKZGlmZiAtLWdpdCBhL3NyYy9wby9lby5wbyBiL3NyYy9wby9lby5wbwppbmRleCA3ZWEyZTY5Li4yMzU0M2ViIDEwMDY0NAotLS0gYS9zcmMvcG8vZW8ucG8KKysrIGIvc3JjL3BvL2VvLnBvCkBAIC0yMywxNCArMjMsMjkgQEAKIG1zZ3N0ciAiIgogIlByb2plY3QtSWQtVmVyc2lvbjogVmltKEVzcGVyYW50bylcbiIKICJSZXBvcnQtTXNnaWQtQnVncy1UbzogXG4iCi0iUE9ULUNyZWF0aW9uLURhdGU6IDIwMTAtMDItMTYgMjE6NTQrMDEwMFxuIgotIlBPLVJldmlzaW9uLURhdGU6IDIwMTAtMDItMTYgMjE6NTYrMDEwMFxuIgorIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEwLTA2LTEyIDA3OjE1KzAyMDBcbiIKKyJQTy1SZXZpc2lvbi1EYXRlOiAyMDEwLTA2LTEyIDA4OjI0KzAyMDBcbiIKICJMYXN0LVRyYW5zbGF0b3I6IERvbWluaXF1ZSBQRUxMw4kgPGRvbWluaXF1ZS5wZWxsZUBnbWFpbC5jb20+XG4iCiAiTGFuZ3VhZ2UtVGVhbTogXG4iCiAiTUlNRS1WZXJzaW9uOiAxLjBcbiIKICJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLThcbiIKICJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCiAKK21zZ2lkICJFODMxOiBiZl9rZXlfaW5pdCgpIGNhbGxlZCB3aXRoIGVtcHR5IHBhc3N3b3JkIgorbXNnc3RyICJFODMxOiBiZl9rZXlfaW5pdCgpIGFsdm9raXRhIGt1biBtYWxwbGVuYSBwYXN2b3J0byIKKworbXNnaWQgIkU4MjA6IHNpemVvZih1aW50MzJfdCkgIT0gNCIKK21zZ3N0ciAiRTgyMDogc2l6ZW9mKHVpbnQzMl90KSAhPSA0IgorCittc2dpZCAiRTgxNzogQmxvd2Zpc2ggYmlnL2xpdHRsZSBlbmRpYW4gdXNlIHdyb25nIgorbXNnc3RyICJFODE3OiBNaXN1em8gZGUgcGV6a29tZW5jYS9wZXpmaW5hIGVuIGJsb3dmaXNoIgorCittc2dpZCAiRTgxODogc2hhMjU2IHRlc3QgZmFpbGVkIgorbXNnc3RyICJFODE4OiBUZXN0byBkZSBzaGEyNTYgZmlhc2tpcyIKKworbXNnaWQgIkU4MTk6IEJsb3dmaXNoIHRlc3QgZmFpbGVkIgorbXNnc3RyICJFODE5OiBUZXN0byBkZSBibG93ZmlzaCBmaWFza2lzIgorCiBtc2dpZCAiRTgyOiBDYW5ub3QgYWxsb2NhdGUgYW55IGJ1ZmZlciwgZXhpdGluZy4uLiIKIG1zZ3N0ciAiRTgyOiBOZSBlYmxhcyBkaXNwb25pZ2kgaXVuIGFqbiBidWZyb24sIG51biBlbGlyYXMuLi4iCiAKQEAgLTc0OSw3ICs3NjQsNiBAQAogbXNnaWQgIkUxMzM6IDpyZXR1cm4gbm90IGluc2lkZSBhIGZ1bmN0aW9uIgogbXNnc3RyICJFMTMzOiBcIjpyZXR1cm5cIiBla3N0ZXIgZnVua2NpbyIKIAotIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCiAiIyBnbG9iYWwgdmFyaWFibGVzOlxuIgpAQCAtMTAzOSw3ICsxMDUzLDcgQEAKIG1zZ3N0ciAiICAoTkVUUk9WSVRBKSIKIAogbXNnaWQgIiAobm90IHN1cHBvcnRlZCkiCi1tc2dzdHIgIiAobmVzdWJ0ZW5pdGEpIgorbXNnc3RyICIgKG5lc3VidGVuYXRhKSIKIAogbXNnaWQgIltEZWxldGVkXSIKIG1zZ3N0ciAiW0ZvcnZpxZ1pdGFdIgpAQCAtMTA3MCw4ICsxMDg0LDggQEAKIG1zZ2lkICIlM2QgICVzICVzICBsaW5lICVsZCIKIG1zZ3N0ciAiJTNkICAlcyAlcyAgbGluaW8gJWxkIgogCi1tc2dpZCAiRTc1MDogRmlyc3QgdXNlIDpwcm9maWxlIHN0YXJ0IDxmbmFtZT4iCi1tc2dzdHIgIkU3NTA6IFV6dSB1bnVlIFwiOnByb2ZpbGUgc3RhcnQgPGRvc2llcm5vbW8+XCIiCittc2dpZCAiRTc1MDogRmlyc3QgdXNlIFwiOnByb2ZpbGUgc3RhcnQge2ZuYW1lfVwiIgorbXNnc3RyICJFNzUwOiBVenUgdW51ZSBcIjpwcm9maWxlIHN0YXJ0IHtkb3NpZXJub21vfVwiIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIlNhdmUgY2hhbmdlcyB0byBcIiVzXCI/IgpAQCAtMTA5NywxMCArMTExMSw2IEBACiBtc2dzdHIgIkUxNjU6IE5lIGVibGFzIGlyaSBwcmV0ZXIgbGEgbGFzdGFuIGRvc2llcm9uIgogCiAjLCBjLWZvcm1hdAotbXNnaWQgIkU2NjY6IGNvbXBpbGVyIG5vdCBzdXBwb3J0ZWQ6ICVzIgotbXNnc3RyICJFNjY2OiBrb21waWxpbG8gbmVzdWJ0ZW5pdGE6ICVzIgotCi0jLCBjLWZvcm1hdAogbXNnaWQgIlNlYXJjaGluZyBmb3IgXCIlc1wiIGluIFwiJXNcIiIKIG1zZ3N0ciAiU2VyxIlhZG8gZGUgXCIlc1wiIGVuIFwiJXNcIiIKIApAQCAtMTI3OSw2ICsxMjg5LDkgQEAKIG1zZ2lkICJFNDY3OiBDdXN0b20gY29tcGxldGlvbiByZXF1aXJlcyBhIGZ1bmN0aW9uIGFyZ3VtZW50IgogbXNnc3RyICJFNDY3OiBVenVsYSBrb21wbGV0aWdvIGJlem9uYXMgZnVua2NpYW4gYXJndW1lbnRvbiIKIAorbXNnaWQgInVua25vd24iCittc2dzdHIgIm5la29uYXRhIgorCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUxODU6IENhbm5vdCBmaW5kIGNvbG9yIHNjaGVtZSAlcyIKIG1zZ3N0ciAiRTE4NTogTmUgZWJsYXMgdHJvdmkgYWdvcmRhcm9uIGRlIGtvbG9yb2ogJXMiCkBAIC0xNjQ1LDYgKzE2NTgsOSBAQAogbXNnaWQgImNhbid0IHJlYWQgb3V0cHV0IG9mICdjaGFyY29udmVydCciCiBtc2dzdHIgIm5lIGVibGFzIGxlZ2kgbGEgZWxpZ29uIGRlICdjaGFyY29udmVydCciCiAKK21zZ2lkICJFODIxOiBGaWxlIGlzIGVuY3J5cHRlZCB3aXRoIHVua25vd24gbWV0aG9kIgorbXNnc3RyICJFODIxOiBEb3NpZXJvIGVzdGFzIMSJaWZyYXRhIHBlciBuZWtvbmF0YSBtZXRvZG8iCisKIG1zZ2lkICJFNjc2OiBObyBtYXRjaGluZyBhdXRvY29tbWFuZHMgZm9yIGFjd3JpdGUgYnVmZmVyIgogbXNnc3RyICJFNjc2OiBOZW5pdSBrb25ncnVhIGHFrXRva29tYW5kbyBwb3IgbGEgYnVmcm8gYWN3cml0ZSIKIApAQCAtMTc5Myw2ICsxODA5LDEwIEBACiBtc2dzdHIgIjEgc2lnbm8iCiAKICMsIGMtZm9ybWF0Cittc2dpZCAiJWxsZCBjaGFyYWN0ZXJzIgorbXNnc3RyICIlbGxkIHNpZ25vaiIKKworIywgYy1mb3JtYXQKIG1zZ2lkICIlbGQgY2hhcmFjdGVycyIKIG1zZ3N0ciAiJWxkIHNpZ25vaiIKIApAQCAtMjE2OSw3ICsyMTg5LDcgQEAKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJFMjQzOiBBcmd1bWVudCBub3Qgc3VwcG9ydGVkOiBcIi0lc1wiOyBVc2UgdGhlIE9MRSB2ZXJzaW9uLiIKLW1zZ3N0ciAiRTI0MzogTmUgc3VidGVuaXRhIGFyZ3VtZW50bzogXCItJXNcIjsgVXp1IGxhIHZlcnNpb24gT0xFLiIKK21zZ3N0ciAiRTI0MzogTmUgc3VidGVuYXRhIGFyZ3VtZW50bzogXCItJXNcIjsgVXp1IGxhIHZlcnNpb24gT0xFLiIKIAogbXNnaWQgIkU2NzI6IFVuYWJsZSB0byBvcGVuIHdpbmRvdyBpbnNpZGUgTURJIGFwcGxpY2F0aW9uIgogbXNnc3RyICJFNjcyOiBOZSBlYmxhcyBtYWxmZXJtaSBmZW5lc3Ryb24gaW50ZXJuZSBkZSBhcGxpa2HEtW8gTURJIgpAQCAtMjMyMSw3ICsyMzQxLDcgQEAKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJFNjE5OiBmaWxlIFwiJXNcIiBpcyBub3QgYSBzdXBwb3J0ZWQgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIgotbXNnc3RyICJFNjE5OiBcIiVzXCIgbmUgZXN0YXMgc3VidGVuaXRhIGRvc2llcm8gZGUgUG9zdFNrcmlwdGEgcmltZWRvIgorbXNnc3RyICJFNjE5OiBcIiVzXCIgbmUgZXN0YXMgc3VidGVuYXRhIGRvc2llcm8gZGUgUG9zdFNrcmlwdGEgcmltZWRvIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIkU2MjE6IFwiJXNcIiByZXNvdXJjZSBmaWxlIGhhcyB3cm9uZyB2ZXJzaW9uIgpAQCAtMjQ0MiwxMyArMjQ2MiwxMyBAQAogbXNnc3RyICJFNTY3OiBuZW5pdSBrb25la3RvIGFsIGNzY29wZSIKIAogIywgYy1mb3JtYXQKLW1zZ2lkICJFMjU5OiBubyBtYXRjaGVzIGZvdW5kIGZvciBjc2NvcGUgcXVlcnkgJXMgb2YgJXMiCi1tc2dzdHIgIkUyNTk6IG5lbml1IGtvbmdydW8gdHJvdml0YSBwb3Igc2VyxIlvIHBlciBjc2NvcGUgJXMgZGUgJXMiCi0KLSMsIGMtZm9ybWF0CiBtc2dpZCAiRTQ2OTogaW52YWxpZCBjc2NvcGVxdWlja2ZpeCBmbGFnICVjIGZvciAlYyIKIG1zZ3N0ciAiRTQ2OTogbmV2YWxpZGEgZmxhZ28gY3Njb3BlcXVpY2tmaXggJWMgZGUgJWMiCiAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTI1OTogbm8gbWF0Y2hlcyBmb3VuZCBmb3IgY3Njb3BlIHF1ZXJ5ICVzIG9mICVzIgorbXNnc3RyICJFMjU5OiBuZW5pdSBrb25ncnVvIHRyb3ZpdGEgcG9yIHNlcsSJbyBwZXIgY3Njb3BlICVzIGRlICVzIgorCiBtc2dpZCAiY3Njb3BlIGNvbW1hbmRzOlxuIgogbXNnc3RyICJrb21hbmRvaiBkZSBjc2NvcGU6XG4iCiAKQEAgLTI4ODAsNiArMjkwMCw5IEBACiBtc2dpZCAiJWQgZmlsZXMgdG8gZWRpdFxuIgogbXNnc3RyICIlZCByZWRha3RlbmRhaiBkb3NpZXJvalxuIgogCittc2dpZCAibmV0YmVhbnMgaXMgbm90IHN1cHBvcnRlZCB3aXRoIHRoaXMgR1VJXG4iCittc2dzdHIgIm5ldGJlYW5zIG5lIGVzdGFzIHN1YnRlbmF0YSBrdW4gdGl1IGdyYWZpa2EgaW50ZXJmYWNvXG4iCisKIG1zZ2lkICJUaGlzIFZpbSB3YXMgbm90IGNvbXBpbGVkIHdpdGggdGhlIGRpZmYgZmVhdHVyZS4iCiBtc2dzdHIgIlRpdSBWaW0gbmUgZXN0aXMga29tcGlsaXRhIGt1biBsYSBrb21wYXJhIGVibG8uIgogCkBAIC0yOTcxLDcgKzI5OTQsNyBAQAogbXNnc3RyICItLVx0XHRcdE51ciBkb3NpZXJub21vaiBtYWxhbnRhxa0gdGlvIgogCiBtc2dpZCAiLS1saXRlcmFsXHRcdERvbid0IGV4cGFuZCB3aWxkY2FyZHMiCi1tc2dzdHIgIi0tbGl0ZXJhbFx0XHROZSBla3NwYW5zaWkgxLVva2Vyb2puIgorbXNnc3RyICItLWxpdGVyYWxcdFx0TmUgbWFsdm9sdmkgxLVva2Vyb2puIgogCiBtc2dpZCAiLXJlZ2lzdGVyXHRcdFJlZ2lzdGVyIHRoaXMgZ3ZpbSBmb3IgT0xFIgogbXNnc3RyICItcmVnaXN0ZXJcdFx0UmVnaXN0cmkgdGl1biBndmltIGFsIE9MRSIKQEAgLTMzOTcsNyArMzQyMCw3IEBACiBtc2dzdHIgIkUyOTY6IEVyYXJvIGRlIGVucG96aWNpaWdvIGR1bSBza3JpYm8gZGUgcGVybXV0b2Rvc2llcm8gLnN3cCIKIAogbXNnaWQgIkUyOTc6IFdyaXRlIGVycm9yIGluIHN3YXAgZmlsZSIKLW1zZ3N0ciAiRTI5NzogRXJhcm8gZGUgc2tyaWJvIGVuIHBlcm11dG9kb3NpZXJvIC5zd3AiCittc2dzdHIgIkUyOTc6IFNrcmliZXJhcm8gZW4gcGVybXV0b2Rvc2llcm8gLnN3cCIKIAogbXNnaWQgIkUzMDA6IFN3YXAgZmlsZSBhbHJlYWR5IGV4aXN0cyAoc3ltbGluayBhdHRhY2s/KSIKIG1zZ3N0ciAiRTMwMDogUGVybXV0b2Rvc2llcm8gLnN3cCBqYW0gZWt6aXN0YXMgKMSJdSBhdGFrbyBwZXIgc2ltYm9sYSBsaWdpbG8/KSIKQEAgLTM1MzcsMTQgKzM1NjAsMjAgQEAKICJcbiIKICIoSW5kYXMga29uc2VydmkgdGl1biBkb3NpZXJvbiBwZXIgYWxpYSBub21vXG4iCiAKLW1zZ2lkICJhbmQgcnVuIGRpZmYgd2l0aCB0aGUgb3JpZ2luYWwgZmlsZSB0byBjaGVjayBmb3IgY2hhbmdlcylcbiIKLW1zZ3N0ciAia2FqIGxhbsSJaSBkaWZmIGt1biBsYSBvcmlnaW5hbGEgZG9zaWVybyBwb3Iga29udHJvbGkgbGEgxZ1hbsSdb2puKVxuIgorbXNnaWQgImFuZCBydW4gZGlmZiB3aXRoIHRoZSBvcmlnaW5hbCBmaWxlIHRvIGNoZWNrIGZvciBjaGFuZ2VzKSIKK21zZ3N0ciAia2FqIGxhbsSJaSBkaWZmIGt1biBsYSBvcmlnaW5hbGEgZG9zaWVybyBwb3Iga29udHJvbGkgbGEgxZ1hbsSdb2puKSIKKworbXNnaWQgIlJlY292ZXJ5IGNvbXBsZXRlZC4gQnVmZmVyIGNvbnRlbnRzIGVxdWFscyBmaWxlIGNvbnRlbnRzLiIKK21zZ3N0ciAiIgorIlJlc3Rhxa1ybyBmaW5pxJ1pcy4gTGEgZW5oYXZvIGRlIGxhIGJ1ZnJvIHNhbWFzIGt1biBsYSBlbmhhdm8gZGUgbGEgZG9zaWVyby4iCiAKIG1zZ2lkICIiCi0iRGVsZXRlIHRoZSAuc3dwIGZpbGUgYWZ0ZXJ3YXJkcy5cbiIKKyJcbiIKKyJZb3UgbWF5IHdhbnQgdG8gZGVsZXRlIHRoZSAuc3dwIGZpbGUgbm93LlxuIgogIlxuIgogbXNnc3RyICIiCi0iUG9zdGUgZm9ydmnFnWkgbGEgcGVybXV0b2Rvc2llcm9uIC5zd3AuXG4iCisiXG4iCisiTGEgZG9zaWVybyAuc3dwIG51biBmb3J2acWdaW5kYXMuXG4iCiAiXG4iCiAKICMuIHVzZSBtc2coKSB0byBzdGFydCB0aGUgc2Nyb2xsaW5nIHByb3Blcmx5CkBAIC00MDc0LDYgKzQxMDMsOSBAQAogbXNnaWQgIkU2NTg6IE5ldEJlYW5zIGNvbm5lY3Rpb24gbG9zdCBmb3IgYnVmZmVyICVsZCIKIG1zZ3N0ciAiRTY1ODogS29uZWt0byBkZSBOZXRCZWFucyBwZXJkaXRhIHBvciBidWZybyAlbGQiCiAKK21zZ2lkICJFNTExOiBuZXRiZWFucyBhbHJlYWR5IGNvbm5lY3RlZCIKK21zZ3N0ciAiRTUxMTogbmViZWFucyBqYW0ga29uZWt0YXRhIgorCiBtc2dpZCAiRTUwNTogIgogbXNnc3RyICJFNTA1OiAiCiAKQEAgLTQyMzYsNyArNDI2OCw3IEBACiBtc2dzdHIgIkU1MTg6IE5la29uYXRhIG9wY2lvIgogCiBtc2dpZCAiRTUxOTogT3B0aW9uIG5vdCBzdXBwb3J0ZWQiCi1tc2dzdHIgIkU1MTk6IE9wY2lvIG5lIHN1YnRlbml0YSIKK21zZ3N0ciAiRTUxOTogT3BjaW8gbmUgc3VidGVuYXRhIgogCiBtc2dpZCAiRTUyMDogTm90IGFsbG93ZWQgaW4gYSBtb2RlbGluZSIKIG1zZ3N0ciAiRTUyMDogTmUgcGVybWVzaXRhIGVuIHJlxJ1pbWxpbmlvIgpAQCAtNDMxMiw3ICs0MzQ0LDcgQEAKIG1zZ3N0ciAiRTUzNzogJ2NvbW1lbnRzdHJpbmcnIGRldmFzIGVzdGkgbWFscGxlbmEgYcWtIGVuaGF2aSAlcyIKIAogbXNnaWQgIkU1Mzg6IE5vIG1vdXNlIHN1cHBvcnQiCi1tc2dzdHIgIkU1Mzg6IE5lbml1IG11c28gc3VidGVuaXRhIgorbXNnc3RyICJFNTM4OiBOZW5pdSBtdXNvIHN1YnRlbmF0YSIKIAogbXNnaWQgIkU1NDA6IFVuY2xvc2VkIGV4cHJlc3Npb24gc2VxdWVuY2UiCiBtc2dzdHIgIkU1NDA6ICd9JyBtYW5rYXMiCkBAIC00NjM3LDcgKzQ2NjksNyBAQAogCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUzNzU6IFVuc3VwcG9ydGVkICUlJWMgaW4gZm9ybWF0IHN0cmluZyIKLW1zZ3N0ciAiRTM3NTogTmVzdWJ0ZW5pdGEgJSUlYyBlbiBmb3JtYXRhIMSJZW5vIgorbXNnc3RyICJFMzc1OiBOZXN1YnRlbmF0YSAlJSVjIGVuIGZvcm1hdGEgxIllbm8iCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTM3NjogSW52YWxpZCAlJSVjIGluIGZvcm1hdCBzdHJpbmcgcHJlZml4IgpAQCAtNDk0OSwxMSArNDk4MSwxMSBAQAogbXNnc3RyICJFNzcyOiBMaXRlcnVtYSBkb3NpZXJvIGVzdGFzIHBvciBwbGkgbm92YSB2ZXJzaW8gZGUgVmltIgogCiBtc2dpZCAiRTc3MDogVW5zdXBwb3J0ZWQgc2VjdGlvbiBpbiBzcGVsbCBmaWxlIgotbXNnc3RyICJFNzcwOiBOZXN1YnRlbml0YSBzZWtjaW8gZW4gbGl0ZXJ1bWEgZG9zaWVybyIKK21zZ3N0ciAiRTc3MDogTmVzdWJ0ZW5hdGEgc2VrY2lvIGVuIGxpdGVydW1hIGRvc2llcm8iCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiV2FybmluZzogcmVnaW9uICVzIG5vdCBzdXBwb3J0ZWQiCi1tc2dzdHIgIkF2ZXJ0bzogcmVnaW9ubyAlcyBuZSBzdWJ0ZW5pdGEiCittc2dzdHIgIkF2ZXJ0bzogcmVnaW9ubyAlcyBuZSBzdWJ0ZW5hdGEiCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVhZGluZyBhZmZpeCBmaWxlICVzIC4uLiIKQEAgLTQ5NjUsMTEgKzQ5OTcsMTEgQEAKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb252ZXJzaW9uIGluICVzIG5vdCBzdXBwb3J0ZWQ6IGZyb20gJXMgdG8gJXMiCi1tc2dzdHIgIktvbnZlcnRvIGVuICVzIG5lc3VidGVuaXRhOiBkZSAlcyBhbCAlcyIKK21zZ3N0ciAiS29udmVydG8gZW4gJXMgbmVzdWJ0ZW5hdGE6IGRlICVzIGFsICVzIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbnZlcnNpb24gaW4gJXMgbm90IHN1cHBvcnRlZCIKLW1zZ3N0ciAiS29udmVydG8gZW4gJXMgbmVzdWJ0ZW5pdGEiCittc2dzdHIgIktvbnZlcnRvIGVuICVzIG5lc3VidGVuYXRhIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQgdmFsdWUgZm9yIEZMQUcgaW4gJXMgbGluZSAlZDogJXMiCkBAIC01MTg5LDcgKzUyMjEsNyBAQAogbXNnc3RyICJFNzUxOiBOb21vIGRlIGVsaWdhIGRvc2llcm8gbmUgZGV2YXMgaGF2aSBub21vbiBkZSByZWdpb25vIgogCiBtc2dpZCAiRTc1NDogT25seSB1cCB0byA4IHJlZ2lvbnMgc3VwcG9ydGVkIgotbXNnc3RyICJFNzU0OiBOdXIgOCByZWdpb25vaiBzdWJ0ZW5pdGFqIgorbXNnc3RyICJFNzU0OiBOdXIgOCByZWdpb25vaiBzdWJ0ZW5hdGFqIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIkU3NTU6IEludmFsaWQgcmVnaW9uIGluICVzIgpAQCAtNTU4OSw2ICs1NjIxLDc1IEBACiBtc2dpZCAiTm8gdW5kbyBwb3NzaWJsZTsgY29udGludWUgYW55d2F5IgogbXNnc3RyICJNYWxmYXJvIG5lZWJsYTsgZGHFrXJpZ2kgdGFtZW5lIgogCisjLCBjLWZvcm1hdAorbXNnaWQgIkU4Mjg6IENhbm5vdCBvcGVuIHVuZG8gZmlsZSBmb3Igd3JpdGluZzogJXMiCittc2dzdHIgIkU4Mjg6IE5lIGVibGFzIG1hbGZlcm1pIGxhIG1hbGZhcmFuIGRvc2llcm9uIHBvciBza3JpYmk6ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU4MjU6IENvcnJ1cHRlZCB1bmRvIGZpbGUgKCVzKTogJXMiCittc2dzdHIgIkU4MjU6IERpZmVrdGl0YSBtYWxmYXJhIGRvc2llcm8gKCVzKTogJXMiCisKK21zZ2lkICJDYW5ub3Qgd3JpdGUgdW5kbyBmaWxlIGluIGFueSBkaXJlY3RvcnkgaW4gJ3VuZG9kaXInIgorbXNnc3RyICJOZSBlYmxpcyBza3JpYmkgbWFsZmFyYW4gZG9zaWVyb24gZW4gaXUgZG9zaWVybyBham4gZGUgJ3VuZG9kaXInIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIldpbGwgbm90IG92ZXJ3cml0ZSB3aXRoIHVuZG8gZmlsZSwgY2Fubm90IHJlYWQ6ICVzIgorbXNnc3RyICJOZSBzdXBlcmtyaWJvcyBtYWxmYXJhbiBkb3NpZXJvbiwgbmUgZWJsaXMgbGVnaTogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2lsbCBub3Qgb3ZlcndyaXRlLCB0aGlzIGlzIG5vdCBhbiB1bmRvIGZpbGU6ICVzIgorbXNnc3RyICJOZSBzdXBlcnNrcmlib3MsIHRpbyBuZSBlc3RhcyBtYWxmYXJhIGRvc2llcm86ICVzIgorCittc2dpZCAiU2tpcHBpbmcgdW5kbyBmaWxlIHdyaXRlLCBub3RoaW5nIHRvIHVuZG8iCittc2dzdHIgIlByZXRlcnBhc2FzIHNrcmlib24gZGUgbWFsZmFyYSBkb3NpZXJvLCBuZW5pbyBwb3IgbWFsZmFyaSIKKworIywgYy1mb3JtYXQKK21zZ2lkICJXcml0aW5nIHVuZG8gZmlsZTogJXMiCittc2dzdHIgIlNrcmliYXMgbWFsZmFyYW4gZG9zaWVyb246ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU4Mjk6IHdyaXRlIGVycm9yIGluIHVuZG8gZmlsZTogJXMiCittc2dzdHIgIkU4Mjk6IFNrcmliZXJhcm8gZW4gbWFsZmFyYSBkb3NpZXJvOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJOb3QgcmVhZGluZyB1bmRvIGZpbGUsIG93bmVyIGRpZmZlcnM6ICVzIgorbXNnc3RyICJOZSBsZWdhcyBtYWxmYXJhbiBkb3NpZXJvbiwgcG9zZWRhbnRvIG1hbHNhbWFzOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkaW5nIHVuZG8gZmlsZTogJXMiCittc2dzdHIgIkxlZ2FkbyBkZSBkZSBtYWxmYXJhIGRvc2llcm86ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU4MjI6IENhbm5vdCBvcGVuIHVuZG8gZmlsZSBmb3IgcmVhZGluZzogJXMiCittc2dzdHIgIkU4MjI6IE5lIGVibGFzIG1hbGZlcm1pIG1hbGZhcmFuIGRvc2llcm9uIHBvciBsZWdpOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFODIzOiBOb3QgYW4gdW5kbyBmaWxlOiAlcyIKK21zZ3N0ciAiRTgyMzogTmUgZXN0YXMgbWFsZmFyYSBkb3NpZXJvOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFODMyOiBOb24tZW5jcnlwdGVkIGZpbGUgaGFzIGVuY3J5cHRlZCB1bmRvIGZpbGU6ICVzIgorbXNnc3RyICJFODMyOiBOZSDEiWlmcmF0YSBkb3NpZXJvIGhhdmFzIMSJaWZyYXRhbiBtYWxmYXJhbiBkb3NpZXJvbjogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTgyNjogVW5kbyBmaWxlIGRlY3J5cHRpb24gZmFpbGVkOiAlcyIKK21zZ3N0ciAiRTgyNjogTWFsxIlpZnJhZG8gZGUgbWFsZmFyYSBkb3NpZXJvIGZpYXNraXM6ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU4Mjc6IFVuZG8gZmlsZSBpcyBlbmNyeXB0ZWQ6ICVzIgorbXNnc3RyICJFODI3OiBNYWxmYXJhIGRvc2llcm8gZXN0YXMgxIlpZnJhdGE6ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU4MjQ6IEluY29tcGF0aWJsZSB1bmRvIGZpbGU6ICVzIgorbXNnc3RyICJFODI0OiBNYWxrb25ncnVhIG1hbGZhcmEgZG9zaWVybzogJXMiCisKK21zZ2lkICJGaWxlIGNvbnRlbnRzIGNoYW5nZWQsIGNhbm5vdCB1c2UgdW5kbyBpbmZvIgorbXNnc3RyICJFbmhhdm8gZGUgZG9zaWVybyDFnWFuxJ1pxJ1pcywgbmUgZWJsYXMgdXppIG1hbGZhcmFqbiBpbmZvbW9qbiIKKworIywgYy1mb3JtYXQKK21zZ2lkICJGaW5pc2hlZCByZWFkaW5nIHVuZG8gZmlsZSAlcyIKK21zZ3N0ciAiRmluaXMgbGVnaSBtYWxmYXJhbiBkb3NpZXJvbiAlcyIKKwogbXNnaWQgIkFscmVhZHkgYXQgb2xkZXN0IGNoYW5nZSIKIG1zZ3N0ciAiSmFtIGFsIGxhIHBsZWogbWFsbm92YSDFnWFuxJ1vIgogCkBAIC01NTk2LDggKzU2OTcsOCBAQAogbXNnc3RyICJKYW0gYWwgbGEgcGxlaiBub3ZhIMWdYW7EnW8iCiAKICMsIGMtZm9ybWF0Ci1tc2dpZCAiVW5kbyBudW1iZXIgJWxkIG5vdCBmb3VuZCIKLW1zZ3N0ciAiTWFsZmFybyBudW1lcm8gJWxkIG5ldHJvdml0YSIKK21zZ2lkICJFODMwOiBVbmRvIG51bWJlciAlbGQgbm90IGZvdW5kIgorbXNnc3RyICJFODMwOiBNYWxmYXJhIG51bWVybyAlbGQgbmV0cm92aXRhIgogCiBtc2dpZCAiRTQzODogdV91bmRvOiBsaW5lIG51bWJlcnMgd3JvbmciCiBtc2dzdHIgIkU0Mzg6IHVfdW5kbzogbmV2YWxpZGFqIG51bWVyb2ogZGUgbGluaW9qIgpAQCAtNjMxOCw3ICs2NDE5LDcgQEAKIG1zZ3N0ciAiRTUyMzogTmUgcGVybWVzaXRhIHRpZSIKIAogbXNnaWQgIkUzNTk6IFNjcmVlbiBtb2RlIHNldHRpbmcgbm90IHN1cHBvcnRlZCIKLW1zZ3N0ciAiRTM1OTogUmXEnWltbyBkZSBla3Jhbm8gbmUgc3VidGVuaXRhIgorbXNnc3RyICJFMzU5OiBSZcSdaW1vIGRlIGVrcmFubyBuZSBzdWJ0ZW5hdGEiCiAKIG1zZ2lkICJFNDk6IEludmFsaWQgc2Nyb2xsIHNpemUiCiBtc2dzdHIgIkU0OTogTmV2YWxpZGEgZ3JhbmRvIGRlIHJ1bHVtbyIKQEAgLTYzNTQsNyArNjQ1NSw3IEBACiBtc2dzdHIgIkU3ODogTmVrb25hdGEgbWFya28iCiAKIG1zZ2lkICJFNzk6IENhbm5vdCBleHBhbmQgd2lsZGNhcmRzIgotbXNnc3RyICJFNzk6IE5lIGVibGFzIGVrc3BhbnNpIMS1b2tlcm9qbiIKK21zZ3N0ciAiRTc5OiBOZSBlYmxhcyBtYWx2b2x2aSDEtW9rZXJvam4iCiAKIG1zZ2lkICJFNTkxOiAnd2luaGVpZ2h0JyBjYW5ub3QgYmUgc21hbGxlciB0aGFuICd3aW5taW5oZWlnaHQnIgogbXNnc3RyICJFNTkxOiAnd2luaGVpZ2h0JyBuZSByYWp0YXMgZXN0aSBtYWxwbGkgb2wgJ3dpbm1pbmhlaWdodCciCmRpZmYgLS1naXQgYS9zcmMvcG8vZnIucG8gYi9zcmMvcG8vZnIucG8KaW5kZXggYjM0MTQ4OS4uMGM2ZjY5YiAxMDA2NDQKLS0tIGEvc3JjL3BvL2ZyLnBvCisrKyBiL3NyYy9wby9mci5wbwpAQCAtMTUsMTQgKzE1LDI5IEBACiBtc2dzdHIgIiIKICJQcm9qZWN0LUlkLVZlcnNpb246IFZpbShGcmFu52FpcylcbiIKICJSZXBvcnQtTXNnaWQtQnVncy1UbzogXG4iCi0iUE9ULUNyZWF0aW9uLURhdGU6IDIwMTAtMDItMTYgMjE6NTQrMDEwMFxuIgotIlBPLVJldmlzaW9uLURhdGU6IDIwMTAtMDItMTYgMjI6MTArMDEwMFxuIgorIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEwLTA2LTEyIDA3OjE1KzAyMDBcbiIKKyJQTy1SZXZpc2lvbi1EYXRlOiAyMDEwLTA2LTEyIDA3OjU2KzAyMDBcbiIKICJMYXN0LVRyYW5zbGF0b3I6IERvbWluaXF1ZSBQZWxs6SA8ZG9taW5pcXVlLnBlbGxlQGdtYWlsLmNvbT5cbiIKICJMYW5ndWFnZS1UZWFtOiBcbiIKICJNSU1FLVZlcnNpb246IDEuMFxuIgogIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU09fODg1OS0xNVxuIgogIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKIAorbXNnaWQgIkU4MzE6IGJmX2tleV9pbml0KCkgY2FsbGVkIHdpdGggZW1wdHkgcGFzc3dvcmQiCittc2dzdHIgIkU4MzE6IGJmX2tleV9pbml0KCkgYXBwZWzpZSBhdmVjIHVuIG1vdCBkZSBwYXNzZSB2aWRlIgorCittc2dpZCAiRTgyMDogc2l6ZW9mKHVpbnQzMl90KSAhPSA0IgorbXNnc3RyICJFODIwOiBzaXplb2YodWludDMyX3QpICE9IDQiCisKK21zZ2lkICJFODE3OiBCbG93ZmlzaCBiaWcvbGl0dGxlIGVuZGlhbiB1c2Ugd3JvbmciCittc2dzdHIgIkU4MTc6IHBldGl0L2dyb3MgYm91dGlzbWUgaW5jb3JyZWN0IGRhbnMgYmxvd2Zpc2giCisKK21zZ2lkICJFODE4OiBzaGEyNTYgdGVzdCBmYWlsZWQiCittc2dzdHIgIkU4MTg6IGxlIHRlc3QgZGUgc2hhMjU2IGEg6WNob3XpIgorCittc2dpZCAiRTgxOTogQmxvd2Zpc2ggdGVzdCBmYWlsZWQiCittc2dzdHIgIkU4MTk6IGxlIHRlc3QgZGUgYmxvd2Zpc2ggYSDpY2hvdekiCisKICMgQUIgLSBJbCBmYXV0IHJlc3BlY3RlciBsJ2VzcHJpdCBwbHVzIHF1ZSBsYSBsZXR0cmUuCiBtc2dpZCAiRTgyOiBDYW5ub3QgYWxsb2NhdGUgYW55IGJ1ZmZlciwgZXhpdGluZy4uLiIKIG1zZ3N0ciAiRTgyOiBBdWN1biB0YW1wb24gbmUgcGV1dCDqdHJlIGFsbG916SwgVmltIGRvaXQgcydhcnLqdGVyIgpAQCAtNTkwLDcgKzYwNSw3IEBACiBtc2dzdHIgIkU3MjM6IElsIG1hbnF1ZSAnfScg4CBsYSBmaW4gZHUgRGljdGlvbm5haXJlICVzIgogCiBtc2dpZCAiRTcyNDogdmFyaWFibGUgbmVzdGVkIHRvbyBkZWVwIGZvciBkaXNwbGF5aW5nIgotbXNnc3RyICJFNzI0OiB2YXJpYWJsZSB0cm9wIGltYnJpcXXpZSBwb3VyIOp0cmUgYWZmaWNoZXIiCittc2dzdHIgIkU3MjQ6IHZhcmlhYmxlIHRyb3AgaW1icmlxdellIHBvdXIg6nRyZSBhZmZpY2jpZSIKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJFNzQwOiBUb28gbWFueSBhcmd1bWVudHMgZm9yIGZ1bmN0aW9uICVzIgpAQCAtODQwLDcgKzg1NSw2IEBACiAKICMgQUIgLSBMYSB2ZXJzaW9uIGZyYW7nYWlzZSBlc3QgY2FwaXRhbGlz6WUgcG91ciDqdHJlIGVuIGFjY29yZCBhdmVjIGxlcyBhdXRyZXMKICMgICAgICBjb21tZW50YWlyZXMgZW5yZWdpc3Ry6XMgZGFucyBsZSBmaWNoaWVyIHZpbWluZm8uCi0jLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKICIjIGdsb2JhbCB2YXJpYWJsZXM6XG4iCkBAIC0xMTEzLDcgKzExMjcsNyBAQAogIyAgICAgIHF1aSBlc3QgdXRpbGlz6S4KICMsIGMtZm9ybWF0CiBtc2dpZCAiUGF0dGVybiBmb3VuZCBpbiBldmVyeSBsaW5lOiAlcyIKLW1zZ3N0ciAiTW90aWYgdHJvdXbpIGRhbnMgdG91dGVzIGxlcyBsaWduZSA6ICVzIgorbXNnc3RyICJNb3RpZiB0cm91dukgZGFucyB0b3V0ZXMgbGVzIGxpZ25lcyA6ICVzIgogCiAjIEFCIC0gTmUgcGFzIHRyYWR1aXJlIGxlIGRvbGxhci4KICMgQUIgLSBDZSBtZXNzYWdlIG4nZXN0IHZvbG9udGFpcmVtZW50IHBhcyB0cmFkdWl0LiBFbiBlZmZldCwgaWwgZmFpdCBwYXJ0aWUKQEAgLTEyNTEsOCArMTI2NSw4IEBACiBtc2dpZCAiJTNkICAlcyAlcyAgbGluZSAlbGQiCiBtc2dzdHIgIiUzZCAgJXMgJXMgIGxpZ25lICVsZCIKIAotbXNnaWQgIkU3NTA6IEZpcnN0IHVzZSA6cHJvZmlsZSBzdGFydCA8Zm5hbWU+IgotbXNnc3RyICJFNzUwOiBVdGlsaXNleiBkJ2Fib3JkIDpwcm9maWxlIHN0YXJ0IDxub21maWNoaWVyPiIKK21zZ2lkICJFNzUwOiBGaXJzdCB1c2UgXCI6cHJvZmlsZSBzdGFydCB7Zm5hbWV9XCIiCittc2dzdHIgIkU3NTA6IFV0aWxpc2V6IGQnYWJvcmQgXCI6cHJvZmlsZSBzdGFydCB7bm9tZmljaGllcn1cIiIKIAogIyBBQiAtICJjaGFuZ2VzIHRvIiBlc3QgcmVkb25kYW50IGV0IGEg6XTpIG9taXMgZGUgbGEgdmVyc2lvbiBmcmFu52Fpc2UuCiAjLCBjLWZvcm1hdApAQCAtMTQ2NSw2ICsxNDc5LDkgQEAKIG1zZ2lkICJFNDY3OiBDdXN0b20gY29tcGxldGlvbiByZXF1aXJlcyBhIGZ1bmN0aW9uIGFyZ3VtZW50IgogbXNnc3RyICJFNDY3OiBMZSBjb21wbOh0ZW1lbnQgcGVyc29ubmFsaXPpIHJlcXVpZXJ0IHVuZSBmb25jdGlvbiBlbiBhcmd1bWVudCIKIAorbXNnaWQgInVua25vd24iCittc2dzdHIgImluY29ubnUiCisKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTE4NTogQ2Fubm90IGZpbmQgY29sb3Igc2NoZW1lICVzIgogbXNnc3RyICJFMTg1OiBJbXBvc3NpYmxlIGRlIHRyb3V2ZXIgbGUgamV1IGRlIGNvdWxldXJzICVzIgpAQCAtMTczMiw3ICsxNzQ5LDcgQEAKIG1zZ3N0ciAiRTE5ODogY21kX3BjaGFyIGF1LWRlbOAgZGUgbGEgbG9uZ3VldXIgZGUgbGEgY29tbWFuZGUiCiAKIG1zZ2lkICJFMTk5OiBBY3RpdmUgd2luZG93IG9yIGJ1ZmZlciBkZWxldGVkIgotbXNnc3RyICJFMTk5OiBUYW1wb24gb3UgZmVu6nRyZSBhY3RpdmUgZWZmYWPpKGUpIgorbXNnc3RyICJFMTk5OiBGZW7qdHJlIG91IHRhbXBvbiBhY3RpZiBlZmZhY+kiCiAKIG1zZ2lkICJFODEyOiBBdXRvY29tbWFuZHMgY2hhbmdlZCBidWZmZXIgb3IgYnVmZmVyIG5hbWUiCiBtc2dzdHIgIkU4MTI6IERlcyBhdXRvY29tbWFuZGVzIG9uIGNoYW5n6SBsZSB0YW1wb24gb3UgbGUgbm9tIGR1IHRhbXBvbiIKQEAgLTE4MzAsNiArMTg0Nyw5IEBACiBtc2dpZCAiY2FuJ3QgcmVhZCBvdXRwdXQgb2YgJ2NoYXJjb252ZXJ0JyIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkZSBsaXJlIGxhIHNvcnRpZSBkZSAnY2hhcmNvbnZlcnQnIgogCittc2dpZCAiRTgyMTogRmlsZSBpcyBlbmNyeXB0ZWQgd2l0aCB1bmtub3duIG1ldGhvZCIKK21zZ3N0ciAiRTgyMTogTGUgZmljaGllciBlc3QgY2hpZmZy6SBhdmVjIHVuZSBt6XRob2RlIGluY29ubnVlIgorCiBtc2dpZCAiRTY3NjogTm8gbWF0Y2hpbmcgYXV0b2NvbW1hbmRzIGZvciBhY3dyaXRlIGJ1ZmZlciIKIG1zZ3N0ciAiRTY3NjogUGFzIGQnYXV0b2NvbW1hbmRlIGNvcnJlc3BvbmRhbnRlIHBvdXIgbGUgdGFtcG9uIGFjd3JpdGUiCiAKQEAgLTE4OTgsMTUgKzE5MTgsMTUgQEAKIAogbXNnaWQgIkU1MTM6IHdyaXRlIGVycm9yLCBjb252ZXJzaW9uIGZhaWxlZCAobWFrZSAnZmVuYycgZW1wdHkgdG8gb3ZlcnJpZGUpIgogbXNnc3RyICIiCi0iRTUxMzogRXJyZXVyIGQn6WNyaXR1cmUsIOljaGVjIGRlIGNvbnZlcnNpb24gKHZpZGV6ICdmZW5jJyBwb3VyIHBhc3NlciAiCi0ib3V0cmUpIgorIkU1MTM6IEVycmV1ciBkJ+ljcml0dXJlLCDpY2hlYyBkZSBjb252ZXJzaW9uICh2aWRleiAnZmVuYycgcG91ciBwYXNzZXIgb3V0cmUpIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJFNTEzOiB3cml0ZSBlcnJvciwgY29udmVyc2lvbiBmYWlsZWQgaW4gbGluZSAlbGQgKG1ha2UgJ2ZlbmMnIGVtcHR5IHRvICIKICJvdmVycmlkZSkiCiBtc2dzdHIgIiIKLSJFNTEzOiBFcnJldXIgZCfpY3JpdHVyZSwg6WNoZWMgZGUgY29udmVyc2lvbiDgIGxhIGxpZ25lICVsZCAodmlkZXogJ2ZlbmMnIHBvdXIgcGFzc2VyIG91dHJlKSIKKyJFNTEzOiBFcnJldXIgZCfpY3JpdHVyZSwg6WNoZWMgZGUgY29udmVyc2lvbiDgIGxhIGxpZ25lICVsZCAodmlkZXogJ2ZlbmMnICIKKyJwb3VyIHBhc3NlciBvdXRyZSkiCiAKIG1zZ2lkICJFNTE0OiB3cml0ZSBlcnJvciAoZmlsZSBzeXN0ZW0gZnVsbD8pIgogbXNnc3RyICJFNTE0OiBlcnJldXIgZCfpY3JpdHVyZSAoc3lzdOhtZSBkZSBmaWNoaWVycyBwbGVpbiA/KSIKQEAgLTE5ODcsNiArMjAwNywxMCBAQAogbXNnc3RyICIxIGNhcmFjdOhyZSIKIAogIywgYy1mb3JtYXQKK21zZ2lkICIlbGxkIGNoYXJhY3RlcnMiCittc2dzdHIgIiVsbGQgY2FyYWN06HJlcyIKKworIywgYy1mb3JtYXQKIG1zZ2lkICIlbGQgY2hhcmFjdGVycyIKIG1zZ3N0ciAiJWxkIGNhcmFjdOhyZXMiCiAKQEAgLTI2NTcsMTUgKzI2ODEsMTUgQEAKIG1zZ2lkICJFNTY3OiBubyBjc2NvcGUgY29ubmVjdGlvbnMiCiBtc2dzdHIgIkU1Njc6IEF1Y3VuZSBjb25uZXhpb24gY3Njb3BlIgogCisjLCBjLWZvcm1hdAorbXNnaWQgIkU0Njk6IGludmFsaWQgY3Njb3BlcXVpY2tmaXggZmxhZyAlYyBmb3IgJWMiCittc2dzdHIgIkU0Njk6IERyYXBlYXUgY3Njb3BlcXVpY2tmaXggJWMgaW52YWxpZGUgcG91ciAlYyIKKwogIyBEQiAtIHRvZG8KICMsIGMtZm9ybWF0CiBtc2dpZCAiRTI1OTogbm8gbWF0Y2hlcyBmb3VuZCBmb3IgY3Njb3BlIHF1ZXJ5ICVzIG9mICVzIgogbXNnc3RyICJFMjU5OiBhdWN1bmUgY29ycmVzcG9uZGFuY2UgdHJvdXbpZSBwb3VyIGxhIHJlcXXqdGUgY3Njb3BlICVzIGRlICVzIgogCi0jLCBjLWZvcm1hdAotbXNnaWQgIkU0Njk6IGludmFsaWQgY3Njb3BlcXVpY2tmaXggZmxhZyAlYyBmb3IgJWMiCi1tc2dzdHIgIkU0Njk6IERyYXBlYXUgY3Njb3BlcXVpY2tmaXggJWMgaW52YWxpZGUgcG91ciAlYyIKLQogbXNnaWQgImNzY29wZSBjb21tYW5kczpcbiIKIG1zZ3N0ciAiY29tbWFuZGVzIGNzY29wZSA6XG4iCiAKQEAgLTMwOTcsNiArMzEyMSw5IEBACiBtc2dpZCAiJWQgZmlsZXMgdG8gZWRpdFxuIgogbXNnc3RyICIlZCBmaWNoaWVycyDgIOlkaXRlclxuIgogCittc2dpZCAibmV0YmVhbnMgaXMgbm90IHN1cHBvcnRlZCB3aXRoIHRoaXMgR1VJXG4iCittc2dzdHIgIm5ldGJlYW5zIG4nZXN0IHBhcyBzdXBwb3J06SBhdmVjIGNldHRlIGludGVyZmFjZSBncmFwaGlxdWVcbiIKKwogbXNnaWQgIlRoaXMgVmltIHdhcyBub3QgY29tcGlsZWQgd2l0aCB0aGUgZGlmZiBmZWF0dXJlLiIKIG1zZ3N0ciAiQ2UgVmltIG4nYSBwYXMg6XTpIGNvbXBpbOkgYXZlYyBsYSBmb25jdGlvbm5hbGl06SBkaWZmIgogCkBAIC0zMzcxLDcgKzMzOTgsOSBAQAogbXNnc3RyICItLXNlcnZlcm5hbWUgPG5vbT5cdEVudm95ZXIgYXUvZGV2ZW5pciBsZSBzZXJ2ZXVyIFZpbSBub21t6SA8bm9tPiIKIAogbXNnaWQgIi0tc3RhcnR1cHRpbWUgPGZpbGU+XHRXcml0ZSBzdGFydHVwIHRpbWluZyBtZXNzYWdlcyB0byA8ZmlsZT4iCi1tc2dzdHIgIi0tc3RhcnR1cHRpbWUgPGZpY2g+XHTJY3JpcmUgbGVzIG1lc3NhZ2VzIGQnaG9yb2RhdGFnZSBhdSBk6W1hcnJhZ2UgZGFucyA8ZmljaD4iCittc2dzdHIgIiIKKyItLXN0YXJ0dXB0aW1lIDxmaWNoPlx0yWNyaXJlIGxlcyBtZXNzYWdlcyBkJ2hvcm9kYXRhZ2UgYXUgZOltYXJyYWdlIGRhbnMgIgorIjxmaWNoPiIKIAogbXNnaWQgIi1pIDx2aW1pbmZvPlx0XHRVc2UgPHZpbWluZm8+IGluc3RlYWQgb2YgLnZpbWluZm8iCiBtc2dzdHIgIi1pIDx2aW1pbmZvPlx0XHRVdGlsaXNlciA8dmltaW5mbz4gYXUgbGlldSBkdSB2aW1pbmZvIGhhYml0dWVsIgpAQCAtMzc1OSwxNSArMzc4OCwyMCBAQAogIlxuIgogIihWb3VzIHZvdWRyZXogcGV1dC3qdHJlIGVucmVnaXN0cmVyIGNlIGZpY2hpZXIgc291cyB1biBhdXRyZSBub21cbiIKIAotbXNnaWQgImFuZCBydW4gZGlmZiB3aXRoIHRoZSBvcmlnaW5hbCBmaWxlIHRvIGNoZWNrIGZvciBjaGFuZ2VzKVxuIgorbXNnaWQgImFuZCBydW4gZGlmZiB3aXRoIHRoZSBvcmlnaW5hbCBmaWxlIHRvIGNoZWNrIGZvciBjaGFuZ2VzKSIKIG1zZ3N0ciAiIgotImV0IGxhbmNlciBkaWZmIGF2ZWMgbGUgZmljaGllciBvcmlnaW5hbCBwb3VyIHJlcOlyZXIgbGVzIGNoYW5nZW1lbnRzKVxuIgorImV0IGxhbmNlciBkaWZmIGF2ZWMgbGUgZmljaGllciBvcmlnaW5hbCBwb3VyIHJlcOlyZXIgbGVzIGNoYW5nZW1lbnRzKSIKKworbXNnaWQgIlJlY292ZXJ5IGNvbXBsZXRlZC4gQnVmZmVyIGNvbnRlbnRzIGVxdWFscyBmaWxlIGNvbnRlbnRzLiIKK21zZ3N0ciAiUuljdXDpcmF0aW9uIGFjaGV26WUuIExlIGNvbnRlbnUgZHUgdGFtcG9uIGVzdCBpZGVudGlxdWUgYXUgY29udGVudSBkdSBmaWNoaWVyLiIKIAogbXNnaWQgIiIKLSJEZWxldGUgdGhlIC5zd3AgZmlsZSBhZnRlcndhcmRzLlxuIgorIlxuIgorIllvdSBtYXkgd2FudCB0byBkZWxldGUgdGhlIC5zd3AgZmlsZSBub3cuXG4iCiAiXG4iCiBtc2dzdHIgIiIKLSJFZmZhY2V6IGVuc3VpdGUgbGUgZmljaGllciAuc3dwLlxuIgorIlxuIgorIklsIGVzdCBjb25zZWlsbOkgZCdlZmZhY2VyIG1haW50ZW5hbnQgbGUgZmljaGllciAuc3dwLlxuIgogIlxuIgogCiAjLiB1c2UgbXNnKCkgdG8gc3RhcnQgdGhlIHNjcm9sbGluZyBwcm9wZXJseQpAQCAtNDI5OSw2ICs0MzMzLDkgQEAKIG1zZ2lkICJFNjU4OiBOZXRCZWFucyBjb25uZWN0aW9uIGxvc3QgZm9yIGJ1ZmZlciAlbGQiCiBtc2dzdHIgIkU2NTg6IENvbm5leGlvbiBOZXRCZWFucyBwZXJkdWUgcG91ciBsZSB0YW1wb24gJWxkIgogCittc2dpZCAiRTUxMTogbmV0YmVhbnMgYWxyZWFkeSBjb25uZWN0ZWQiCittc2dzdHIgIkU1MTE6IG5ldGJlYW5zIGTpauAgY29ubmVjdOkiCisKIG1zZ2lkICJFNTA1OiAiCiBtc2dzdHIgIkU1MDU6ICIKIApAQCAtNTM3Niw3ICs1NDEzLDcgQEAKIAogIywgYy1mb3JtYXQKIG1zZ2lkICIvIGxpbmUgaWdub3JlZCBpbiAlcyBsaW5lICVkOiAlcyIKLW1zZ3N0ciAiTGlnbmUgLyBpZ25vcullIGRhbnMgJXMgbGlnZW4gJWQgOiAlcyIKK21zZ3N0ciAiTGlnbmUgLyBpZ25vcullIGRhbnMgJXMgbGlnbmUgJWQgOiAlcyIKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIHJlZ2lvbiBuciBpbiAlcyBsaW5lICVkOiAlcyIKQEAgLTU1OTksNyArNTYzNiw3IEBACiBtc2dzdHIgIkUzOTk6IFBhcyBhc3NleiBkJ2FyZ3VtZW50cyA6IHN5bnRheCByZWdpb24gJXMiCiAKIG1zZ2lkICJFNDAwOiBObyBjbHVzdGVyIHNwZWNpZmllZCIKLW1zZ3N0ciAiRTQwMDogQXVjdW4gZ3JhcHBlIHNw6WNpZmnpZSIKK21zZ3N0ciAiRTQwMDogQXVjdW5lIGdyYXBwZSBzcOljaWZp6WUiCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTQwMTogUGF0dGVybiBkZWxpbWl0ZXIgbm90IGZvdW5kOiAlcyIKQEAgLTU4MzQsNiArNTg3MSw3NyBAQAogbXNnaWQgIk5vIHVuZG8gcG9zc2libGU7IGNvbnRpbnVlIGFueXdheSIKIG1zZ3N0ciAiQW5udWxhdGlvbiBpbXBvc3NpYmxlIDsgY29udGludWVyIgogCisjLCBjLWZvcm1hdAorbXNnaWQgIkU4Mjg6IENhbm5vdCBvcGVuIHVuZG8gZmlsZSBmb3Igd3JpdGluZzogJXMiCittc2dzdHIgIkU4Mjg6IEltcG9zc2libGUgZCdvdXZyaXIgbGUgZmljaGllciBkJ2FubnVsYXRpb25zIGVuIOljcml0dXJlIDogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTgyNTogQ29ycnVwdGVkIHVuZG8gZmlsZSAoJXMpOiAlcyIKK21zZ3N0ciAiRTgyNTogRmljaGllciBkJ2FubnVsYXRpb25zIGNvcnJvbXB1ICglcykgOiAlcyIKKworbXNnaWQgIkNhbm5vdCB3cml0ZSB1bmRvIGZpbGUgaW4gYW55IGRpcmVjdG9yeSBpbiAndW5kb2RpciciCittc2dzdHIgIkltcG9zc2libGUgZCfpY3JpcmUgbGUgZmljaGllciBkJ2FubnVsYXRpb25zIGRhbnMgbidpbXBvcnRlICIKKyJxdWVsIHLpcGVydG9pcmUgZGUgJ3VuZG9kaXInIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIldpbGwgbm90IG92ZXJ3cml0ZSB3aXRoIHVuZG8gZmlsZSwgY2Fubm90IHJlYWQ6ICVzIgorbXNnc3RyICJMZSBmaWNoaWVyIGQnYW5udWxhdGlvbnMgZGUgc2VyYSBwYXMg6WNyYXPpLCBpbXBvc3NpYmxlIGRlIGxpcmUgOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJXaWxsIG5vdCBvdmVyd3JpdGUsIHRoaXMgaXMgbm90IGFuIHVuZG8gZmlsZTogJXMiCittc2dzdHIgIkZpY2hpZXIgbmUgc2VyYSBwYXMg6WNyYXPpLCBjZSBuJ2VzdCBwYXMgdW4gZmljaGllciBkJ2FubnVsYXRpb25zIDogJXMiCisKK21zZ2lkICJTa2lwcGluZyB1bmRvIGZpbGUgd3JpdGUsIG5vdGhpbmcgdG8gdW5kbyIKK21zZ3N0ciAiTGUgZmljaGllciBkJ2FubnVsYXRpb25zIG4nZXN0IHBhcyDpY3JpdCwgcmllbiDgIGFubnVsZXIiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiV3JpdGluZyB1bmRvIGZpbGU6ICVzIgorbXNnc3RyICLJY3JpdHVyZSBkdSBmaWNoaWVyIGQnYW5udWxhdGlvbnMgOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFODI5OiB3cml0ZSBlcnJvciBpbiB1bmRvIGZpbGU6ICVzIgorbXNnc3RyICJFODI5OiBFcnJldXIgZCfpY3JpdHVyZSBkYW5zIGxlIGZpY2hpZXIgZCdhbm51bGF0aW9ucyA6ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCByZWFkaW5nIHVuZG8gZmlsZSwgb3duZXIgZGlmZmVyczogJXMiCittc2dzdHIgIkxlIGZpY2hpZXIgZCdhbm51bGF0aW9ucyBuJ2VzdCBwYXMgbHUsIHByb3Byael0YWlyZSBkaWZm6XJlbnQgOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkaW5nIHVuZG8gZmlsZTogJXMiCittc2dzdHIgIkxlY3R1cmUgZHUgZmljaGllciBkJ2FubnVsYXRpb25zIDogJXMuLi4iCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTgyMjogQ2Fubm90IG9wZW4gdW5kbyBmaWxlIGZvciByZWFkaW5nOiAlcyIKK21zZ3N0ciAiRTgyMjogSW1wb3NzaWJsZSBkJ291dnJpciBsZSBmaWNoaWVyIGQnYW5udWxhdGlvbnMgZW4gbGVjdHVyZSA6ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU4MjM6IE5vdCBhbiB1bmRvIGZpbGU6ICVzIgorbXNnc3RyICJFODIzOiBDZSBuJ2VzdCBwYXMgdW4gZmljaGllciBkJ2FubnVsYXRpb25zIDogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTgzMjogTm9uLWVuY3J5cHRlZCBmaWxlIGhhcyBlbmNyeXB0ZWQgdW5kbyBmaWxlOiAlcyIKK21zZ3N0ciAiRTgzMjogRmljaGllciBub24tY2hpZmZy6SBhIHVuIGZpY2hpZXIgZCdhbm51bGF0aW9ucyBjaGlmZnLpIDogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTgyNjogVW5kbyBmaWxlIGRlY3J5cHRpb24gZmFpbGVkOiAlcyIKK21zZ3N0ciAiRTgyNjogROljaGlmZnJhZ2UgZHUgZmljaGllciBkJ2FubnVsYXRpb24gYSDpY2hvdekgOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFODI3OiBVbmRvIGZpbGUgaXMgZW5jcnlwdGVkOiAlcyIKK21zZ3N0ciAiRTgyNzogTGUgZmljaGllciBkJ2FubnVsYXRpb25zIGVzdCBjaGlmZnLpIDogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTgyNDogSW5jb21wYXRpYmxlIHVuZG8gZmlsZTogJXMiCittc2dzdHIgIkU4MjQ6IEZpY2hpZXIgZCdhbm51bGF0aW9ucyBpbmNvbXBhdGlibGUgOiAlcyIKKworbXNnaWQgIkZpbGUgY29udGVudHMgY2hhbmdlZCwgY2Fubm90IHVzZSB1bmRvIGluZm8iCittc2dzdHIgIkxlIGNvbnRlbnUgZHUgZmljaGllciBhIGNoYW5n6SwgaW1wb3NzaWJsZSBkJ3V0aWxpc2VyIGxlcyAiCisiaW5mb3JtYXRpb25zIGQnYW5udWxhdGlvbiIKKworIywgYy1mb3JtYXQKK21zZ2lkICJGaW5pc2hlZCByZWFkaW5nIHVuZG8gZmlsZSAlcyIKK21zZ3N0ciAiRmluIGRlIGxlY3R1cmUgZHUgZmljaGllciBkJ2FubnVsYXRpb25zICVzIgorCiBtc2dpZCAiQWxyZWFkeSBhdCBvbGRlc3QgY2hhbmdlIgogbXNnc3RyICJE6WrgIOAgbGEgbW9kaWZpY2F0aW9uIGxhIHBsdXMgYW5jaWVubmUiCiAKQEAgLTU4NDEsOCArNTk0OSw4IEBACiBtc2dzdHIgIkTpauAg4CBsYSBtb2RpZmljYXRpb24gbGEgcGx1cyBy6WNlbnRlIgogCiAjLCBjLWZvcm1hdAotbXNnaWQgIlVuZG8gbnVtYmVyICVsZCBub3QgZm91bmQiCi1tc2dzdHIgIkwnYW5udWxhdGlvbiBusCAlbGQgaW50cm91dmFibGUiCittc2dpZCAiRTgzMDogVW5kbyBudW1iZXIgJWxkIG5vdCBmb3VuZCIKK21zZ3N0ciAiRTgzMDogQW5udWxhdGlvbiBusCAlbGQgaW50cm91dmFibGUiCiAKIG1zZ2lkICJFNDM4OiB1X3VuZG86IGxpbmUgbnVtYmVycyB3cm9uZyIKIG1zZ3N0ciAiRTQzODogdV91bmRvIDogbnVt6XJvcyBkZSBsaWduZSBlcnJvbulzIgpAQCAtNjUzNSw3ICs2NjQzLDcgQEAKIG1zZ3N0ciAiRTc3NjogQXVjdW5lIGxpc3RlIGQnZW1wbGFjZW1lbnRzIgogCiBtc2dpZCAiRTQzOiBEYW1hZ2VkIG1hdGNoIHN0cmluZyIKLW1zZ3N0ciAiRTQzOiBMZSBjaGHubmUgZGUgcmVjaGVyY2hlIGVzdCBlbmRvbW1hZ+llIgorbXNnc3RyICJFNDM6IExhIGNoYe5uZSBkZSByZWNoZXJjaGUgZXN0IGVuZG9tbWFn6WUiCiAKIG1zZ2lkICJFNDQ6IENvcnJ1cHRlZCByZWdleHAgcHJvZ3JhbSIKIG1zZ3N0ciAiRTQ0OiBMJ2F1dG9tYXRlIGRlIHJlZ2V4cCBlc3QgY29ycm9tcHUiCkBAIC02NjUwLDkgKzY3NTgsMyBAQAogCiBtc2dpZCAic2VhcmNoIGhpdCBCT1RUT00sIGNvbnRpbnVpbmcgYXQgVE9QIgogbXNnc3RyICJMYSByZWNoZXJjaGUgYSBhdHRlaW50IGxlIEJBUywgZXQgY29udGludWUgZW4gSEFVVCIKLQotI34gbXNnaWQgIkU1Njk6IG1heGltdW0gbnVtYmVyIG9mIGNzY29wZSBjb25uZWN0aW9ucyByZWFjaGVkIgotI34gbXNnc3RyICJFNTY5OiBub21icmUgbWF4aW11bSBkZSBjb25uZXhpb25zIGNzY29wZSBhdHRlaW50IgotCi0jfiBtc2dpZCAiW05MIGZvdW5kXSIKLSN+IG1zZ3N0ciAiW05MIHRyb3V26V0iCmRpZmYgLS1naXQgYS9zcmMvcHJvdG8uaCBiL3NyYy9wcm90by5oCmluZGV4IDJiMjQ4YTUuLjMzMTM2NTYgMTAwNjQ0Ci0tLSBhL3NyYy9wcm90by5oCisrKyBiL3NyYy9wcm90by5oCkBAIC0xNDksNyArMTQ5LDcgQEAKICMgZW5kaWYKICMgaW5jbHVkZSAicmVnZXhwLnBybyIKICMgaW5jbHVkZSAic2NyZWVuLnBybyIKLSMgaWZkZWYgRkVBVF9DUllQVAorIyBpZiBkZWZpbmVkKEZFQVRfQ1JZUFQpIHx8IGRlZmluZWQoRkVBVF9QRVJTSVNURU5UX1VORE8pCiAjICBpbmNsdWRlICJzaGEyNTYucHJvIgogIyBlbmRpZgogIyBpbmNsdWRlICJzZWFyY2gucHJvIgpkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvL2Jsb3dmaXNoLnBybyBiL3NyYy9wcm90by9ibG93ZmlzaC5wcm8KaW5kZXggZGEzNTYwZS4uYmExODE3NiAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL2Jsb3dmaXNoLnBybworKysgYi9zcmMvcHJvdG8vYmxvd2Zpc2gucHJvCkBAIC0xLDUgKzEsNSBAQAogLyogYmxvd2Zpc2guYyAqLwotdm9pZCBiZl9rZXlfaW5pdCBfX0FSR1MoKGNoYXJfdSAqcGFzc3dvcmQpKTsKK3ZvaWQgYmZfa2V5X2luaXQgX19BUkdTKChjaGFyX3UgKnBhc3N3b3JkLCBjaGFyX3UgKnNhbHQsIGludCBzYWx0X2xlbikpOwogdm9pZCBiZl9vZmJfaW5pdCBfX0FSR1MoKGNoYXJfdSAqaXYsIGludCBpdl9sZW4pKTsKIHZvaWQgYmZfY3J5cHRfZW5jb2RlIF9fQVJHUygoY2hhcl91ICpmcm9tLCBzaXplX3QgbGVuLCBjaGFyX3UgKnRvKSk7CiB2b2lkIGJmX2NyeXB0X2RlY29kZSBfX0FSR1MoKGNoYXJfdSAqcHRyLCBsb25nIGxlbikpOwpkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvL3NoYTI1Ni5wcm8gYi9zcmMvcHJvdG8vc2hhMjU2LnBybwppbmRleCBjNTIzN2Y0Li42NTFhMGEwIDEwMDY0NAotLS0gYS9zcmMvcHJvdG8vc2hhMjU2LnBybworKysgYi9zcmMvcHJvdG8vc2hhMjU2LnBybwpAQCAtMiw3ICsyLDcgQEAKIHZvaWQgc2hhMjU2X3N0YXJ0IF9fQVJHUygoY29udGV4dF9zaGEyNTZfVCAqY3R4KSk7CiB2b2lkIHNoYTI1Nl91cGRhdGUgX19BUkdTKChjb250ZXh0X3NoYTI1Nl9UICpjdHgsIGNoYXJfdSAqaW5wdXQsIFVJTlQzMl9UIGxlbmd0aCkpOwogdm9pZCBzaGEyNTZfZmluaXNoIF9fQVJHUygoY29udGV4dF9zaGEyNTZfVCAqY3R4LCBjaGFyX3UgZGlnZXN0WzMyXSkpOwotY2hhcl91ICpzaGEyNTZfa2V5IF9fQVJHUygoY2hhcl91ICpidWYpKTsKK2NoYXJfdSAqc2hhMjU2X2tleSBfX0FSR1MoKGNoYXJfdSAqYnVmLCBjaGFyX3UgKnNhbHQsIGludCBzYWx0X2xlbikpOwogaW50IHNoYTI1Nl9zZWxmX3Rlc3QgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHNoYTJfc2VlZCBfX0FSR1MoKGNoYXJfdSBoZWFkZXJbXSwgaW50IGhlYWRlcl9sZW4pKTsKK3ZvaWQgc2hhMl9zZWVkIF9fQVJHUygoY2hhcl91IGhlYWRlcltdLCBpbnQgaGVhZGVyX2xlbiwgY2hhcl91IHNhbHRbXSwgaW50IHNhbHRfbGVuKSk7CiAvKiB2aW06IHNldCBmdD1jIDogKi8KZGlmZiAtLWdpdCBhL3NyYy9zaGEyNTYuYyBiL3NyYy9zaGEyNTYuYwppbmRleCAwZjk1ODU2Li5jMjRlOGI4IDEwMDY0NAotLS0gYS9zcmMvc2hhMjU2LmMKKysrIGIvc3JjL3NoYTI1Ni5jCkBAIC0yMyw5ICsyMyw2IEBACiAjaWYgZGVmaW5lZChGRUFUX0NSWVBUKSB8fCBkZWZpbmVkKEZFQVRfUEVSU0lTVEVOVF9VTkRPKQogCiBzdGF0aWMgdm9pZCBzaGEyNTZfcHJvY2VzcyBfX0FSR1MoKGNvbnRleHRfc2hhMjU2X1QgKmN0eCwgY2hhcl91IGRhdGFbNjRdKSk7Ci1zdGF0aWMgY2hhcl91ICpzaGEyNTZfYnl0ZXMgX19BUkdTKChjaGFyX3UgKmJ1ZiwgaW50IGJ1ZmxlbikpOwotc3RhdGljIHVuc2lnbmVkIGludCBnZXRfc29tZV90aW1lIF9fQVJHUygodm9pZCkpOwotCiAKICNkZWZpbmUgR0VUX1VJTlQzMihuLCBiLCBpKQkJICAgIFwKIHsJCQkJCSAgICBcCkBAIC0yNzEsMTQgKzI2OCwyMiBAQAogICAgIFBVVF9VSU5UMzIoY3R4LT5zdGF0ZVs2XSwgZGlnZXN0LCAyNCk7CiAgICAgUFVUX1VJTlQzMihjdHgtPnN0YXRlWzddLCBkaWdlc3QsIDI4KTsKIH0KKyNlbmRpZiAvKiBGRUFUX0NSWVBUIHx8IEZFQVRfUEVSU0lTVEVOVF9VTkRPICovCisKKyNpZiBkZWZpbmVkKEZFQVRfQ1JZUFQpIHx8IGRlZmluZWQoUFJPVE8pCitzdGF0aWMgY2hhcl91ICpzaGEyNTZfYnl0ZXMgX19BUkdTKChjaGFyX3UgKmJ1ZiwgaW50IGJ1Zl9sZW4sIGNoYXJfdSAqc2FsdCwgaW50IHNhbHRfbGVuKSk7CitzdGF0aWMgdW5zaWduZWQgaW50IGdldF9zb21lX3RpbWUgX19BUkdTKCh2b2lkKSk7CiAKIC8qCi0gKiBSZXR1cm5zIGhleCBkaWdlc3Qgb2YgImJ1ZltidWZsZW5dIiBpbiBhIHN0YXRpYyBhcnJheS4KKyAqIFJldHVybnMgaGV4IGRpZ2VzdCBvZiAiYnVmW2J1Zl9sZW5dIiBpbiBhIHN0YXRpYyBhcnJheS4KKyAqIGlmICJzYWx0IiBpcyBub3QgTlVMTCBhbHNvIGRvICJzYWx0W3NhbHRfbGVuXSIuCiAgKi8KICAgICBzdGF0aWMgY2hhcl91ICoKLXNoYTI1Nl9ieXRlcyhidWYsIGJ1ZmxlbikKK3NoYTI1Nl9ieXRlcyhidWYsIGJ1Zl9sZW4sIHNhbHQsIHNhbHRfbGVuKQogICAgIGNoYXJfdSAqYnVmOwotICAgIGludCAgICBidWZsZW47CisgICAgaW50ICAgIGJ1Zl9sZW47CisgICAgY2hhcl91ICpzYWx0OworICAgIGludCAgICBzYWx0X2xlbjsKIHsKICAgICBjaGFyX3UJICAgICBzaGEyNTZzdW1bMzJdOwogICAgIHN0YXRpYyBjaGFyX3UgICAgaGV4aXRbNjVdOwpAQCAtMjg4LDcgKzI5Myw5IEBACiAgICAgc2hhMjU2X3NlbGZfdGVzdCgpOwogCiAgICAgc2hhMjU2X3N0YXJ0KCZjdHgpOwotICAgIHNoYTI1Nl91cGRhdGUoJmN0eCwgYnVmLCBidWZsZW4pOworICAgIHNoYTI1Nl91cGRhdGUoJmN0eCwgYnVmLCBidWZfbGVuKTsKKyAgICBpZiAoc2FsdCAhPSBOVUxMKQorCXNoYTI1Nl91cGRhdGUoJmN0eCwgc2FsdCwgc2FsdF9sZW4pOwogICAgIHNoYTI1Nl9maW5pc2goJmN0eCwgc2hhMjU2c3VtKTsKICAgICBmb3IgKGogPSAwOyBqIDwgMzI7IGorKykKIAlzcHJpbnRmKChjaGFyICopaGV4aXQgKyBqICogMiwgIiUwMngiLCBzaGEyNTZzdW1bal0pOwpAQCAtMzAwLDE0ICszMDcsMTYgQEAKICAqIFJldHVybnMgc2hhMjU2KGJ1ZikgYXMgNjQgaGV4IGNoYXJzIGluIHN0YXRpYyBhcnJheS4KICAqLwogICAgIGNoYXJfdSAqCi1zaGEyNTZfa2V5KGJ1ZikKK3NoYTI1Nl9rZXkoYnVmLCBzYWx0LCBzYWx0X2xlbikKICAgICBjaGFyX3UgKmJ1ZjsKKyAgICBjaGFyX3UgKnNhbHQ7CisgICAgaW50ICAgIHNhbHRfbGVuOwogewogICAgIC8qIE5vIHBhc3N3ZCBtZWFucyBkb24ndCBlbmNyeXB0ICovCiAgICAgaWYgKGJ1ZiA9PSBOVUxMIHx8ICpidWYgPT0gTlVMKQogCXJldHVybiAoY2hhcl91ICopIiI7CiAKLSAgICByZXR1cm4gc2hhMjU2X2J5dGVzKGJ1ZiwgKGludClTVFJMRU4oYnVmKSk7CisgICAgcmV0dXJuIHNoYTI1Nl9ieXRlcyhidWYsIChpbnQpU1RSTEVOKGJ1ZiksIHNhbHQsIHNhbHRfbGVuKTsKIH0KIAogLyoKQEAgLTM1NCw3ICszNjMsOCBAQAogCWlmIChpIDwgMikKIAl7CiAJICAgIGhleGl0ID0gc2hhMjU2X2J5dGVzKChjaGFyX3UgKilzaGFfc2VsZl90ZXN0X21zZ1tpXSwKLQkJCQkJICAgKGludClTVFJMRU4oc2hhX3NlbGZfdGVzdF9tc2dbaV0pKTsKKwkJICAgIChpbnQpU1RSTEVOKHNoYV9zZWxmX3Rlc3RfbXNnW2ldKSwKKwkJICAgIE5VTEwsIDApOwogCSAgICBTVFJDUFkob3V0cHV0LCBoZXhpdCk7CiAJfQogCWVsc2UKQEAgLTM4MCwyOSArMzkwLDMyIEBACiAgICAgc3RhdGljIHVuc2lnbmVkIGludAogZ2V0X3NvbWVfdGltZSgpCiB7Ci0jaWZkZWYgSEFWRV9HRVRUSU1FT0ZEQVkKKyMgaWZkZWYgSEFWRV9HRVRUSU1FT0ZEQVkKICAgICBzdHJ1Y3QgdGltZXZhbCB0djsKIAogICAgIC8qIFVzaW5nIHVzZWMgbWFrZXMgaXQgbGVzcyBwcmVkaWN0YWJsZS4gKi8KICAgICBnZXR0aW1lb2ZkYXkoJnR2LCBOVUxMKTsKICAgICByZXR1cm4gKHVuc2lnbmVkIGludCkodHYudHZfc2VjICsgdHYudHZfdXNlYyk7Ci0jZWxzZQorIyBlbHNlCiAgICAgcmV0dXJuICh1bnNpZ25lZCBpbnQpdGltZShOVUxMKTsKLSNlbmRpZgorIyBlbmRpZgogfQogCiAvKgogICogc2V0IGhlYWRlciA9IHNoYTJfc2VlZChyYW5kb21fZGF0YSk7CiAgKi8KICAgICB2b2lkCi1zaGEyX3NlZWQoaGVhZGVyLCBoZWFkZXJfbGVuKQotICAgIGNoYXJfdSBoZWFkZXJbXTsKK3NoYTJfc2VlZChoZWFkZXIsIGhlYWRlcl9sZW4sIHNhbHQsIHNhbHRfbGVuKQorICAgIGNoYXJfdSAqaGVhZGVyOwogICAgIGludCAgICBoZWFkZXJfbGVuOworICAgIGNoYXJfdSAqc2FsdDsKKyAgICBpbnQgICAgc2FsdF9sZW47CiB7CiAgICAgaW50CQkgICAgIGk7CiAgICAgc3RhdGljIGNoYXJfdSAgICByYW5kb21fZGF0YVsxMDAwXTsKICAgICBjaGFyX3UJICAgICBzaGEyNTZzdW1bMzJdOwogICAgIGNvbnRleHRfc2hhMjU2X1QgY3R4OworCiAgICAgc3JhbmQoZ2V0X3NvbWVfdGltZSgpKTsKIAogICAgIGZvciAoaSA9IDA7IGkgPCAoaW50KXNpemVvZihyYW5kb21fZGF0YSkgLSAxOyBpKyspCkBAIC00MTEsOCArNDI0LDEzIEBACiAgICAgc2hhMjU2X3VwZGF0ZSgmY3R4LCAoY2hhcl91ICopcmFuZG9tX2RhdGEsIHNpemVvZihyYW5kb21fZGF0YSkpOwogICAgIHNoYTI1Nl9maW5pc2goJmN0eCwgc2hhMjU2c3VtKTsKIAorICAgIC8qIHB1dCBmaXJzdCBibG9jayBpbnRvIGhlYWRlci4gKi8KICAgICBmb3IgKGkgPSAwOyBpIDwgaGVhZGVyX2xlbjsgaSsrKQogCWhlYWRlcltpXSA9IHNoYTI1NnN1bVtpICUgc2l6ZW9mKHNoYTI1NnN1bSldOworCisgICAgLyogcHV0IHJlbWFpbmluZyBibG9jayBpbnRvIHNhbHQuICovCisgICAgZm9yIChpID0gMDsgaSA8IHNhbHRfbGVuOyBpKyspCisJc2FsdFtpXSA9IHNoYTI1NnN1bVsoaSArIGhlYWRlcl9sZW4pICUgc2l6ZW9mKHNoYTI1NnN1bSldOwogfQogCi0jZW5kaWYgLyogRkVBVF9DUllQVCB8fCBGRUFUX1BFUlNJU1RFTlRfVU5ETyAqLworI2VuZGlmIC8qIEZFQVRfQ1JZUFQgKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3Q3MS5pbiBiL3NyYy90ZXN0ZGlyL3Rlc3Q3MS5pbgppbmRleCA3MTdiNjYwLi41NmRlZTU1IDEwMDY0NAotLS0gYS9zcmMvdGVzdGRpci90ZXN0NzEuaW4KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdDcxLmluCkJpbmFyeSBmaWxlcyBkaWZmZXIK