ZGlmZiAtLWdpdCBhLy50cmF2aXMueW1sIGIvLnRyYXZpcy55bWwKaW5kZXggNjU5Njc3YS4uNjgxNDliNCAxMDA2NDQKLS0tIGEvLnRyYXZpcy55bWwKKysrIGIvLnRyYXZpcy55bWwKQEAgLTExLDUgKzExLDEyIEBACiAgIC0gIjMuMiIKICAgLSAiMy4zIgogCitpbnN0YWxsOgorICAjIEluc3RhbGwgdGhlIHdoZWVsIGxpYnJhcnkgZXhwbGljaXRseSBoZXJlLiAgSXQgaXMgbm90IHJlYWxseSBhIHNldHVwCisgICMgZGVwZW5kZW5jeS4gIEl0IGlzIG5vdCBhbiBpbnN0YWxsIGRlcGVuZGVuY3kuICBJdCBpcyBvbmx5IGEgZGVwZW5kZW5jeSBmb3IKKyAgIyB0aGUgc2NyaXB0IGRpcmVjdGl2ZSBiZWxvdyAtIGJlY2F1c2Ugd2Ugd2FudCB0byBleGVyY2lzZSB3aGVlbCBidWlsZGluZyBvbgorICAjIHRyYXZpcy4KKyAgLSBwaXAgaW5zdGFsbCB3aGVlbAorCiBzY3JpcHQ6Ci0gIC0gcHl0aG9uIHNldHVwLnB5IHRlc3QKKyAgLSBweXRob24gc2V0dXAucHkgYmRpc3Rfd2hlZWwgdGVzdApkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDk1Y2Y0NWIuLjg3M2MxYzQgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3IEBACisyMDE0LTAzLTAyICBTdGVwaGVuIEhvbHNhcHBsZSAgPHNob2xzYXBwQGdtYWlsLmNvbT4KKworCSogT3BlblNTTC9jcnlwdG8ucHk6IEFkZCBgYGdldF9leHRlbnNpb25zYGAgbWV0aG9kIHRvIGBgWDUwOVJlcWBgLgorCiAyMDE0LTAxLTA5ICBKZWFuLVBhdWwgQ2FsZGVyb25lICA8ZXhhcmt1bkB0d2lzdGVkbWF0cml4LmNvbT4KIAogCSogT3BlblNTTDogUG9ydCB0byB0aGUgY2ZmaS1iYXNlZCBPcGVuU1NMIGJpbmRpbmdzIHByb3ZpZGVkIGJ5CmRpZmYgLS1naXQgYS9PcGVuU1NML1NTTC5weSBiL09wZW5TU0wvU1NMLnB5CmluZGV4IDIyMjljY2YuLmU2YTYyOWIgMTAwNjQ0Ci0tLSBhL09wZW5TU0wvU1NMLnB5CisrKyBiL09wZW5TU0wvU1NMLnB5CkBAIC04MSw3ICs4MSwxMCBAQAogCiBPUF9OT19RVUVSWV9NVFUgPSBfbGliLlNTTF9PUF9OT19RVUVSWV9NVFUKIE9QX0NPT0tJRV9FWENIQU5HRSA9IF9saWIuU1NMX09QX0NPT0tJRV9FWENIQU5HRQotT1BfTk9fVElDS0VUID0gX2xpYi5TU0xfT1BfTk9fVElDS0VUCit0cnk6CisgICAgT1BfTk9fVElDS0VUID0gX2xpYi5TU0xfT1BfTk9fVElDS0VUCitleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgcGFzcwogCiBPUF9BTEwgICA9IF9saWIuU1NMX09QX0FMTAogCkBAIC0yNDcsNiArMjUwLDcgQEAKICAgICBuZXcgU1NMIGNvbm5lY3Rpb25zLgogICAgICIiIgogICAgIF9tZXRob2RzID0geworICAgICAgICBTU0x2Ml9NRVRIT0Q6ICJTU0x2Ml9tZXRob2QiLAogICAgICAgICBTU0x2M19NRVRIT0Q6ICJTU0x2M19tZXRob2QiLAogICAgICAgICBTU0x2MjNfTUVUSE9EOiAiU1NMdjIzX21ldGhvZCIsCiAgICAgICAgIFRMU3YxX01FVEhPRDogIlRMU3YxX21ldGhvZCIsCmRpZmYgLS1naXQgYS9PcGVuU1NML2NyeXB0by5weSBiL09wZW5TU0wvY3J5cHRvLnB5CmluZGV4IGQwMDI2YmQuLmVkMGI2MjkgMTAwNjQ0Ci0tLSBhL09wZW5TU0wvY3J5cHRvLnB5CisrKyBiL09wZW5TU0wvY3J5cHRvLnB5CkBAIC02OTcsNiArNjk3LDIxIEBACiAgICAgICAgICAgICBfcmFpc2VfY3VycmVudF9lcnJvcigpCiAKIAorICAgIGRlZiBnZXRfZXh0ZW5zaW9ucyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEdldCBleHRlbnNpb25zIHRvIHRoZSByZXF1ZXN0LgorCisgICAgICAgIDpyZXR1cm46IEEgOnB5OmNsYXNzOmBsaXN0YCBvZiA6cHk6Y2xhc3M6YFg1MDlFeHRlbnNpb25gIG9iamVjdHMuCisgICAgICAgICIiIgorICAgICAgICBleHRzID0gW10KKyAgICAgICAgbmF0aXZlX2V4dHNfb2JqID0gX2xpYi5YNTA5X1JFUV9nZXRfZXh0ZW5zaW9ucyhzZWxmLl9yZXEpCisgICAgICAgIGZvciBpIGluIHJhbmdlKF9saWIuc2tfWDUwOV9FWFRFTlNJT05fbnVtKG5hdGl2ZV9leHRzX29iaikpOgorICAgICAgICAgICAgZXh0ID0gWDUwOUV4dGVuc2lvbi5fX25ld19fKFg1MDlFeHRlbnNpb24pCisgICAgICAgICAgICBleHQuX2V4dGVuc2lvbiA9IF9saWIuc2tfWDUwOV9FWFRFTlNJT05fdmFsdWUobmF0aXZlX2V4dHNfb2JqLCBpKQorICAgICAgICAgICAgZXh0cy5hcHBlbmQoZXh0KQorICAgICAgICByZXR1cm4gZXh0cworCisKICAgICBkZWYgc2lnbihzZWxmLCBwa2V5LCBkaWdlc3QpOgogICAgICAgICAiIiIKICAgICAgICAgU2lnbiB0aGUgY2VydGlmaWNhdGUgcmVxdWVzdCB1c2luZyB0aGUgc3VwcGxpZWQga2V5IGFuZCBkaWdlc3QKZGlmZiAtLWdpdCBhL09wZW5TU0wvdGVzdC90ZXN0X2NyeXB0by5weSBiL09wZW5TU0wvdGVzdC90ZXN0X2NyeXB0by5weQppbmRleCA0ZTQyZjcwLi5hMzY4NWE5IDEwMDY0NAotLS0gYS9PcGVuU1NML3Rlc3QvdGVzdF9jcnlwdG8ucHkKKysrIGIvT3BlblNTTC90ZXN0L3Rlc3RfY3J5cHRvLnB5CkBAIC0xMTA4LDcgKzExMDgsMzIgQEAKICAgICAgICAgcmVxdWVzdCA9IFg1MDlSZXEoKQogICAgICAgICByZXF1ZXN0LmFkZF9leHRlbnNpb25zKFsKICAgICAgICAgICAgICAgICBYNTA5RXh0ZW5zaW9uKGIoJ2Jhc2ljQ29uc3RyYWludHMnKSwgVHJ1ZSwgYignQ0E6ZmFsc2UnKSldKQotICAgICAgICAjIFhYWCBBZGQgZ2V0X2V4dGVuc2lvbnMgc28gdGhlIHJlc3Qgb2YgdGhpcyB1bml0IHRlc3QgY2FuIGJlIHdyaXR0ZW4uCisgICAgICAgIGV4dHMgPSByZXF1ZXN0LmdldF9leHRlbnNpb25zKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZXh0cyksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXh0c1swXS5nZXRfc2hvcnRfbmFtZSgpLCBiKCdiYXNpY0NvbnN0cmFpbnRzJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXh0c1swXS5nZXRfY3JpdGljYWwoKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHRzWzBdLmdldF9kYXRhKCksIGIoJzBceDAwJykpCisKKworICAgIGRlZiB0ZXN0X2dldF9leHRlbnNpb25zKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgOnB5Om9iajpgWDUwOVJlcS5nZXRfZXh0ZW5zaW9uc2AgcmV0dXJucyBhIDpweTpvYmo6YGxpc3RgIG9mCisgICAgICAgIGV4dGVuc2lvbnMgYWRkZWQgdG8gdGhpcyBYNTA5IHJlcXVlc3QuCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0ID0gWDUwOVJlcSgpCisgICAgICAgIGV4dHMgPSByZXF1ZXN0LmdldF9leHRlbnNpb25zKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHRzLCBbXSkKKyAgICAgICAgcmVxdWVzdC5hZGRfZXh0ZW5zaW9ucyhbCisgICAgICAgICAgICAgICAgWDUwOUV4dGVuc2lvbihiKCdiYXNpY0NvbnN0cmFpbnRzJyksIFRydWUsIGIoJ0NBOnRydWUnKSksCisgICAgICAgICAgICAgICAgWDUwOUV4dGVuc2lvbihiKCdrZXlVc2FnZScpLCBGYWxzZSwgYignZGlnaXRhbFNpZ25hdHVyZScpKV0pCisgICAgICAgIGV4dHMgPSByZXF1ZXN0LmdldF9leHRlbnNpb25zKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZXh0cyksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXh0c1swXS5nZXRfc2hvcnRfbmFtZSgpLCBiKCdiYXNpY0NvbnN0cmFpbnRzJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXh0c1swXS5nZXRfY3JpdGljYWwoKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHRzWzBdLmdldF9kYXRhKCksIGIoJzBceDAzXHgwMVx4MDFceGZmJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXh0c1sxXS5nZXRfc2hvcnRfbmFtZSgpLCBiKCdrZXlVc2FnZScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4dHNbMV0uZ2V0X2NyaXRpY2FsKCksIDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXh0c1sxXS5nZXRfZGF0YSgpLCBiKCdceDAzXHgwMlx4MDdceDgwJykpCiAKIAogICAgIGRlZiB0ZXN0X2FkZF9leHRlbnNpb25zX3dyb25nX2FyZ3Moc2VsZik6CmRpZmYgLS1naXQgYS9PcGVuU1NML3ZlcnNpb24ucHkgYi9PcGVuU1NML3ZlcnNpb24ucHkKaW5kZXggYmU1MTkwMy4uMzA3ZGJhMCAxMDA2NDQKLS0tIGEvT3BlblNTTC92ZXJzaW9uLnB5CisrKyBiL09wZW5TU0wvdmVyc2lvbi5weQpAQCAtNiw0ICs2LDQgQEAKIHB5T3BlblNTTCAtIEEgc2ltcGxlIHdyYXBwZXIgYXJvdW5kIHRoZSBPcGVuU1NMIGxpYnJhcnkKICIiIgogCi1fX3ZlcnNpb25fXyA9ICcwLjEzJworX192ZXJzaW9uX18gPSAnMC4xNCcKZGlmZiAtLWdpdCBhL2RhcHBlci9SRUFETUUuRGViaWFuIGIvZGFwcGVyL1JFQURNRS5EZWJpYW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg4NGRlYjguLjAwMDAwMDAKLS0tIGEvZGFwcGVyL1JFQURNRS5EZWJpYW4KKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1EZWJpYW4gbm90ZXMgLS0gcHlPcGVuU1NMCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVRoZSBzb3VyY2UgcGFja2FnZSBpcyBzcGxpdCB1cCBvdmVyIGZvdXIgYmluYXJ5IHBhY2thZ2VzOgotCi0qIHB5dGhvbjIuMi1weW9wZW5zc2wgLS0gY29tcGlsZWQgZm9yIFB5dGhvbiAyLjIKLSogcHl0aG9uMi4zLXB5b3BlbnNzbCAtLSBjb21waWxlZCBmb3IgUHl0aG9uIDIuMwotKiBweXRob24tcHlvcGVuc3NsICAgIC0tIGR1bW15IHBhY2thZ2UgdGhhdCBkZXBlbmRzIG9uIHRoZSBkZWZhdWx0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgUHl0aG9uIHZlcnNpb24gKGN1cnJlbnRseSAyLjMpCi0qIHB5b3BlbnNzbC1kb2MgICAgICAgLS0gZG9jdW1lbnRhdGlvbiBmb3IgcHlPcGVuU1NMCi0KLQotTWFydGluIFNqw7ZncmVuIDxzam9ncmVuQGRlYmlhbi5vcmc+CmRpZmYgLS1naXQgYS9kYXBwZXIvY2hhbmdlbG9nIGIvZGFwcGVyL2NoYW5nZWxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTlkYjg3OS4uMDAwMDAwMAotLS0gYS9kYXBwZXIvY2hhbmdlbG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAxICswLDAgQEAKLXB5b3BlbnNzbCAoMC42LTJ1YnVudHUzKSBkYXBwZXI7IHVyZ2VuY3k9bG93Ci0KLSAgKiBEcm9wIHB5dGhvbjIuMyBwYWNrYWdlLgotCi0gLS0gTWF0dGhpYXMgS2xvc2UgPGRva29AdWJ1bnR1LmNvbT4gIFR1ZSwgMTQgRmViIDIwMDYgMTU6MzI6NDcgKzAwMDAKLQotcHlvcGVuc3NsICgwLjYtMnVidW50dTIpIGRhcHBlcjsgdXJnZW5jeT1sb3cKLQotICAqIFJlYnVpbGQgYWdhaW5zdCBvcGVuc3NsIDAuOS44LgotCi0gLS0gTWFydGluIFBpdHQgPG1hcnRpbi5waXR0QHVidW50dS5jb20+ICBNb24sIDMwIEphbiAyMDA2IDEyOjU0OjUyICswMDAwCi0KLXB5b3BlbnNzbCAoMC42LTJ1YnVudHUxKSBicmVlenk7IHVyZ2VuY3k9bG93Ci0KLSAgKiBTeW5jaHJvbml6ZSB3aXRoIERlYmlhbi4KLQotIC0tIE1hdHRoaWFzIEtsb3NlIDxkb2tvQHVidW50dS5jb20+ICBXZWQsIDI3IEp1bCAyMDA1IDA4OjUyOjQ0ICswMDAwCi0KLXB5b3BlbnNzbCAoMC42LTIpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogQWRkIHN1cHBvcnQgZm9yIHB5dGhvbiAyLjQuIChDbG9zZXM6ICMyOTc4NzApCi0gICogQnVpbGQtZGVwZW5kIG9uIHYwLjkuNyBvZiBvcGVuc3NsLgotCi0gLS0gTWFydGluIFNqb2dyZW4gPHNqb2dyZW5AZGViaWFuLm9yZz4gIE1vbiwgMTQgTWFyIDIwMDUgMDg6NTY6MjcgKzAxMDAKLQotcHlvcGVuc3NsICgwLjYtMXVidW50dTMpIGhvYXJ5OyB1cmdlbmN5PWxvdwotCi0gICogRHJvcCBweXRob24yLjIgcGFja2FnZS4KLQotIC0tIE1hdHRoaWFzIEtsb3NlIDxkb2tvQHVidW50dS5jb20+ICBNb24sIDI0IEphbiAyMDA1IDA4OjE3OjE5ICswMTAwCi0KLXB5b3BlbnNzbCAoMC42LTF1YnVudHUyKSBob2FyeTsgdXJnZW5jeT1sb3cKLQotICAqIFRpZ2h0ZW4gYnVpbGQgZGVwZW5kZW5jeSBvbiBweXRob24uCi0KLSAtLSBNYXR0aGlhcyBLbG9zZSA8bUBrbG9zZS5pbi1iZXJsaW4uZGU+ICBUaHUsIDE2IERlYyAyMDA0IDIyOjU2OjUzICswMTAwCi0KLXB5b3BlbnNzbCAoMC42LTF1YnVudHUxKSBob2FyeTsgdXJnZW5jeT1sb3cKLQotICAqIFN1cHBvcnQgcHl0aG9uMi40IGFzIGRlZmF1bHQgcHl0aG9uIHZlcnNpb24uCi0KLSAtLSBNYXR0aGlhcyBLbG9zZSA8bUBrbG9zZS5pbi1iZXJsaW4uZGU+ICBXZWQsIDE1IERlYyAyMDA0IDIwOjU5OjExICswMTAwCi0KLXB5b3BlbnNzbCAoMC42LTEpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogTmV3IHVwc3RyZWFtIHJlbGVhc2UsIGluY2x1ZGluZzoKLSAgICAtIEFkZCBOZXRzY2FwZSBTUEtJIGV4dGVuc2lvbnMuIChDbG9zZXM6ICMyMDUxMzIpCi0gICAgLSBBZGQgWDUwOS5zdWJqZWN0X25hbWVfaGFzaCwgWDUwOS5kaWdlc3QuIChDbG9zZXM6ICMyMDUxMzYpCi0gICAgLSBGaXggZnVsbCBuYW1lcyBvZiBleGNlcHRpb25zLiAoQ2xvc2VzOiAjMjUwMzQyKQotICAgIC0gQWRkIFNTTC5Db250ZXh0LnVzZV9jZXJ0aWZpY2F0ZV9jaGFpbl9maWxlLiAoQ2xvc2VzOiAjMjYwMTM0KQotICAqIERvY3MgYXJlIGJ1aWx0IHVwc3RyZWFtLCBzbyB0aGUgYnVpbGQtZGVwcyBoYXZlIGJlZW4gdHJpbW1lZC4KLSAgICBUaGlzIGFsc28gbWVhbnMgdGhhdCBIVE1MIGFuZCB0ZXh0IGRvY3VtZW50YXRpb24gYXJlIGJhY2suCi0gICogQnVtcGVkIHN0YW5kYXJkcy12ZXJzaW9uLgotICAqIFVzZSBkaF9weXRob24uCi0KLSAtLSBNYXJ0aW4gU2pvZ3JlbiA8c2pvZ3JlbkBkZWJpYW4ub3JnPiAgRnJpLCAxMyBBdWcgMjAwNCAyMDo1MzoyNyArMDIwMAotCi1weW9wZW5zc2wgKDAuNS4xLTQpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogRHJvcCBIVE1MIGFuZCB0ZXh0IGRvY3VtZW50YXRpb24gc2luY2UgbGF0ZXgyaHRtbCBtb3ZlZCB0byBub24tZnJlZS4KLSAgICBUaGlzIGlzIGEgdGVtcG9yYXJ5IHNvbHV0aW9uLCB1bnRpbCBJIGNhbiBoYWNrIG1raG93dG8gdG8gdXNlIHNvbWV0aGluZwotICAgIGVsc2UuIChDbG9zZXM6ICMyMjEzNDQpCi0gICogRml4IHRoZSBjb3B5cmlnaHQgZmlsZSB0byBtZW50aW9uIHRoZSBjb3B5cmlnaHQgaG9sZGVyLgotCi0gLS0gTWFydGluIFNqb2dyZW4gPHNqb2dyZW5AZGViaWFuLm9yZz4gIE1vbiwgMTUgRGVjIDIwMDMgMjA6MTY6MjUgKzAxMDAKLQotcHlvcGVuc3NsICgwLjUuMS0zKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIE1BTklGRVNULmluOiBJbmNsdWRlIHRoZSBzcmMvUkFUSU9OQUxFIGZpbGUuIChDbG9zZXM6ICMxOTc0MDEpCi0gICogZG9jL3B5T3BlblNTTC50ZXg6IEZpeCB0eXBvLiAoQ2xvc2VzOiAjMTk3NDM1KQotICAqIERyb3AgUHl0aG9uIDEuNSBhbmQgMi4xIHN1cHBvcnQuCi0gICogTWFrZSBweXRob24tcHlvcGVuc3NsIGRlcGVuZCBvbiBweXRob24yLjMtcHlvcGVuc3NsLCB3aGljaCBpcyBubyBsb25nZXIKLSAgICAiZXhwZXJpbWVudGFsIi4KLQotIC0tIE1hcnRpbiBTam9ncmVuIDxzam9ncmVuQGRlYmlhbi5vcmc+ICBNb24sIDExIEF1ZyAyMDAzIDE4OjM3OjA3ICswMjAwCi0KLXB5b3BlbnNzbCAoMC41LjEtMikgdW5zdGFibGU7IHVyZ2VuY3k9bG93Ci0KLSAgKiBNYWtlIHN1cmUgbmFtZXMgaW4gY29udHJvbCBhbmQgY2hhbmdlbG9nIG1hdGNoLiBTdHVwaWQgY2hhbmdlbG9ncywgYmxlaC4KLSAgKiBDaGFuZ2Ugc2VjdGlvbiB0byAncHl0aG9uJy4KLSAgKiBSZWJ1aWxkIHdpdGggb3BlbnNzbCAwLjkuNy4gKENsb3NlczogIzE4OTgyNikKLSAgKiBfX2luaXRfXy5weTogSW1wb3J0IHRzYWZlIG1vZHVsZS4KLSAgKiB0c2FmZS5weTogQWRkIHNvbWUgbWlzc2luZyBtZXRob2RzLgotICAqIGRlYmlhbi9jb3B5cmlnaHQ6IEZpeCBBdXRob3IocykgYm9pbGVycGxhdGUgdGhpbmd5IHRvIHNodXQgbGludGlhbiB1cC4KLQotIC0tIE1hcnRpbiBTam9ncmVuIDxzam9ncmVuQGRlYmlhbi5vcmc+ICBTdW4sIDIwIEFwciAyMDAzIDE3OjUwOjI0ICswMjAwCi0KLXB5b3BlbnNzbCAoMC41LjEtMSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93Ci0KLSAgKiBOZXcgdXBzdHJlYW0gdmVyc2lvbi4gKENsb3NlczogIzE1OTUzMCkKLSAgKiBBZGRlZCBhIHB5dGhvbi1weW9wZW5zc2wgZHVtbXkgcGFja2FnZS4KLSAgKiBBZGRlZCBhbiBleHBlcmltZW50YWwgcHl0aG9uMi4zLXB5b3BlbnNzbCBwYWNrYWdlLgotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIFN1biwgMjUgQXVnIDIwMDIgMTI6MDg6MzEgKzAyMDAKLQotcHlvcGVuc3NsICgwLjUtMSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93Ci0KLSAgKiBOZXcgdXBzdHJlYW0gdmVyc2lvbgotICAqIFN1cHBvcnQgZm9yIHB5dGhvbjEuNS4KLSAgKiBGaXggc3R1cGlkIG1pc3Rha2VzIGZvciBweXRob24gMS41IGFuZCBweXRob24gMi4xLgotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIFdlZCwgMjQgSnVsIDIwMDIgMDk6MDU6MjggKzAyMDAKLQotcHlvcGVuc3NsICgwLjQuMS04KSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIEFkZGVkIGV4YW1wbGVzIHRvIHB5b3BlbnNzbC1kb2MKLQotIC0tIE1hcnRpbiBTasO2Z3JlbiA8bWFydGluQHN0cmFrdC5jb20+ICBXZWQsICA1IEp1biAyMDAyIDE0OjU4OjA0ICswMjAwCi0KLXB5b3BlbnNzbCAoMC40LjEtNykgdW5zdGFibGU7IHVyZ2VuY3k9bG93Ci0KLSAgKiBUaGUgY3V0ZSBhcnJvdyBpY29ucyBpbiB0aGUgSFRNTCBkb2N1bWVudGF0aW9uIHNob3VsZCBiZSB0aGVyZSBub3cgdG9vLgotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIFRodSwgMzAgTWF5IDIwMDIgMDA6NTM6NDQgKzAyMDAKLQotcHlvcGVuc3NsICgwLjQuMS02KSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIENvbW1lbnRlZCBvdXQgc29tZSB1bnVzZWQgdGhpbmdzIGluIGRlYmlhbi9ydWxlcwotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIFdlZCwgMjkgTWF5IDIwMDIgMTE6MjA6MzMgKzAyMDAKLQotcHlvcGVuc3NsICgwLjQuMS01KSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIEFkZGluZyB0byB0aGUgYnVpbGQtZGVwZW5kcy4KLSAgKiBJbml0aWFsIHVwbG9hZCAoQ2xvc2VzOiAjMTQwNjg3KQotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIFNhdCwgIDYgQXByIDIwMDIgMTQ6MTU6NDkgKzAyMDAKLQotcHlvcGVuc3NsICgwLjQuMS00KSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIEZpeGVzIGluIHBhY2thZ2luZywgaXQgc2hvdWxkbid0IGJlIHJlZ2FyZGVkIGEgbmF0aXZlIHBhY2thZ2Ugbm93LgotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIFNhdCwgIDYgQXByIDIwMDIgMTE6MjY6MzkgKzAyMDAKLQotcHlvcGVuc3NsICgwLjQuMS0zKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIE1vdmVkIGZyb20gbm9uLVVTIHRvIG1haW4vZGV2ZWwKLQotIC0tIE1hcnRpbiBTasO2Z3JlbiA8bWFydGluQHN0cmFrdC5jb20+ICBGcmksICA1IEFwciAyMDAyIDIyOjQ0OjEwICswMjAwCi0KLXB5b3BlbnNzbCAoMC40LjEtMikgdW5zdGFibGU7IHVyZ2VuY3k9bG93Ci0KLSAgKiBGaXhlcyBpbiB0aGUgcGFja2FnaW5nLCBkZXBlbmRlbmNpZXMgYW5kIGJ1aWxkIGRlcGVuZGVuY2llcyBzaG91bGQgYmUKLSAgICBhbGwgcmlnaHQgbm93LgotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIFRodSwgMTAgSmFuIDIwMDIgMTA6MDA6MDYgKzAxMDAKLQotcHlvcGVuc3NsICgwLjQuMS0xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIE5ldyAidXBzdHJlYW0iIHJlbGVhc2UKLSAgKiBOZXcgcGFja2FnaW5nLCBweXRob24yLjEtcHlvcGVuc3NsLCBweXRob24yLjItcHlvcGVuc3NsLCBweW9wZW5zc2wtZG9jCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgTW9uLCAgNyBKYW4gMjAwMiAxNTozODo1MSArMDEwMAotCi1weW9wZW5zc2wgKDAuNC00KSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIEdycnIsIHRoaXMgdGltZSB0aGVuLi4uCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgRnJpLCAxNyBBdWcgMjAwMSAxNDo1MzoxOSArMDIwMAotCi1weW9wZW5zc2wgKDAuNC0zKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIEZpeGVkIGEgYmlnIG5hc3R5IGJ1ZwotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIEZyaSwgMTcgQXVnIDIwMDEgMTQ6MzM6MDYgKzAyMDAKLQotcHlvcGVuc3NsICgwLjQtMikgdW5zdGFibGU7IHVyZ2VuY3k9bG93Ci0KLSAgKiBGaXhlcwotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIEZyaSwgMTcgQXVnIDIwMDEgMTM6NTM6MTEgKzAyMDAKLQotcHlvcGVuc3NsICgwLjQtMSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93Ci0KLSAgKiBOZXcgInVwc3RyZWFtIiB2ZXJzaW9uCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgVGh1LCAgOSBBdWcgMjAwMSAxMjozMjo0NyArMDIwMAotCi1weW9wZW5zc2wgKDAuMy0zKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIFg1MDkgb2JqZWN0cyBub3cgaGFzIGEgaGFzX2V4cGlyZWQgbWV0aG9kCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgVHVlLCAgNyBBdWcgMjAwMSAxNDoxNjoxMyArMDIwMAotCi1weW9wZW5zc2wgKDAuMy0yKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIFg1MDlOYW1lIG9iamVjdHMgbm93IGhhcyBhIGNvbXBhcmUgbWV0aG9kIAotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIFR1ZSwgIDcgQXVnIDIwMDEgMTA6NTM6NTggKzAyMDAKLQotcHlvcGVuc3NsICgwLjMtMSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93Ci0KLSAgKiBOZXcgInVwc3RyZWFtIiB2ZXJzaW9uCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgRnJpLCAgMyBBdWcgMjAwMSAxNjozNjoyNiArMDIwMAotCi1weW9wZW5zc2wgKDAuMS0xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIEluaXRpYWwgdmVyc2lvbi4KLQotIC0tIEFuZGVycyBIYW1tYXJxdWlzdCA8aWtvQHN0cmFrdC5jb20+ICBNb24sIDIzIEp1bCAyMDAxIDE1OjE3OjM4ICswMjAwCmRpZmYgLS1naXQgYS9kYXBwZXIvY29udHJvbCBiL2RhcHBlci9jb250cm9sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZDMzYTdmLi4wMDAwMDAwCi0tLSBhL2RhcHBlci9jb250cm9sCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotU291cmNlOiBweW9wZW5zc2wKLVNlY3Rpb246IHB5dGhvbgotUHJpb3JpdHk6IG9wdGlvbmFsCi1NYWludGFpbmVyOiBNYXJ0aW4gU2pvZ3JlbiA8c2pvZ3JlbkBkZWJpYW4ub3JnPgotQnVpbGQtRGVwZW5kczogZGViaGVscGVyICg+PiA0LjIuMjgpLCBweXRob24gKD49IDIuNCksIHB5dGhvbjIuNC1kZXYsIGxpYnNzbC1kZXYgKD49IDAuOS43KQotU3RhbmRhcmRzLVZlcnNpb246IDMuNi4xCi0KLVBhY2thZ2U6IHB5dGhvbjIuNC1weW9wZW5zc2wKLUFyY2hpdGVjdHVyZTogYW55Ci1EZXBlbmRzOiAke3NobGliczpEZXBlbmRzfSwgJHtweXRob246RGVwZW5kc30KLVN1Z2dlc3RzOiBweW9wZW5zc2wtZG9jCi1EZXNjcmlwdGlvbjogUHl0aG9uIHdyYXBwZXIgYXJvdW5kIHRoZSBPcGVuU1NMIGxpYnJhcnksIGV4cGVyaW1lbnRhbCEKLSBJbmNsdWRlczogU1NMIENvbnRleHQgb2JqZWN0cywgU1NMIENvbm5lY3Rpb24gb2JqZWN0cywgdXNpbmcKLSBQeXRob24gc29ja2V0cyBhcyB0cmFuc3BvcnQgbGF5ZXIuIFRoZSBDb25uZWN0aW9uIG9iamVjdAotIHdyYXBzIGFsbCB0aGUgc29ja2V0IG1ldGhvZHMgYW5kIGNhbiB0aGVyZWZvcmUgYmUgdXNlZAotIGludGVyY2hhbmdlYWJseS4KLQotUGFja2FnZTogcHl0aG9uLXB5b3BlbnNzbAotQXJjaGl0ZWN0dXJlOiBhbGwKLURlcGVuZHM6ICR7cHl0aG9uOkRlcGVuZHN9Ci1EZXNjcmlwdGlvbjogUHl0aG9uIHdyYXBwZXIgYXJvdW5kIHRoZSBPcGVuU1NMIGxpYnJhcnkgKGR1bW15IHBhY2thZ2UpCi0gVGhpcyBpcyBhIGR1bW15IHBhY2thZ2UgdGhhdCBkZXBlbmRzIG9uIHRoZSB2ZXJzaW9uIG9mIHB5T3BlblNTTAotIHRoYXQgaXMgY29tcGlsZWQgZm9yIHRoZSBkZWZhdWx0IHZlcnNpb24gb2YgUHl0aG9uLgotCi1QYWNrYWdlOiBweW9wZW5zc2wtZG9jCi1TZWN0aW9uOiBkb2MKLUFyY2hpdGVjdHVyZTogYWxsCi1TdWdnZXN0czogcHl0aG9uLXB5b3BlbnNzbAotRGVzY3JpcHRpb246IERvY3VtZW50YXRpb24gZm9yIHB5T3BlblNTTAotIFRoaXMgcGFja2FnZSBwcm92aWRlcyBkb2N1bWVudGF0aW9uIGZvciB0aGUgcHlPcGVuU1NMIHBhY2thZ2UsCi0gaW4gSFRNTCwgcG9zdHNjcmlwdCBhbmQgdGV4dCBmb3JtYXRzLgpkaWZmIC0tZ2l0IGEvZGFwcGVyL2NvcHlyaWdodCBiL2RhcHBlci9jb3B5cmlnaHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3MDUzOTkuLjAwMDAwMDAKLS0tIGEvZGFwcGVyL2NvcHlyaWdodAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoaXMgcGFja2FnZSB3YXMgZGViaWFuaXplZCBieSBNYXJ0aW4gU2rDtmdyZW4gPHNqb2dyZW5AZGViaWFuLm9yZz4gb24KLU1vbiwgIDcgSmFuIDIwMDIgMTY6MjU6NTggKzAxMDAuCi0KLUl0IHdhcyBkb3dubG9hZGVkIGZyb20gcHlvcGVuc3NsLnNvdXJjZWZvcmdlLm5ldAotCi1VcHN0cmVhbSBBdXRob3I6IE1hcnRpbiBTasO2Z3JlbiA8bXNqb2dyZW5AZ21haWwuY29tPgotCi1Db3B5cmlnaHQgKEMpIDIwMDEtMjAwNCBBQiBTdHJha3QKLQotVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi12ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLVRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLU1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi1MZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi1BIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAodmVyc2lvbiAyLjEpCi1jYW4gYmUgZm91bmQgaW4gL3Vzci9zaGFyZS9jb21tb24tbGljZW5zZXMvTEdQTCBvbiBEZWJpYW4gc3lzdGVtcywKLW9yIGluIHRoZSBmaWxlIENPUFlJTkcgaW4gdGhlIHNvdXJjZSBwYWNrYWdlLgpkaWZmIC0tZ2l0IGEvZGFwcGVyL3B5b3BlbnNzbC1kb2MuZG9jLWJhc2UgYi9kYXBwZXIvcHlvcGVuc3NsLWRvYy5kb2MtYmFzZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTU3ZWIzZi4uMDAwMDAwMAotLS0gYS9kYXBwZXIvcHlvcGVuc3NsLWRvYy5kb2MtYmFzZQorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLURvY3VtZW50OiBweW9wZW5zc2wtbWFudWFsCi1UaXRsZTogUHl0aG9uIE9wZW5TU0wgTWFudWFsCi1BdXRob3I6IE1hcnRpbiBTavZncmVuCi1BYnN0cmFjdDogTWFudWFsIGZvciB0aGUgcHlPcGVuU1NMIHBhY2thZ2UuCi0gIFRoaXMgbW9kdWxlIGlzIGEgcmF0aGVyIHRoaW4gd3JhcHBlciBhcm91bmQgKGEgc3Vic2V0IG9mKSB0aGUKLSAgT3BlblNTTCBsaWJyYXJ5LiBXaXRoIHRoaW4gd3JhcHBlciBJIG1lYW4gdGhhdCBhIGxvdCBvZiB0aGUKLSAgb2JqZWN0IG1ldGhvZHMgZG8gbm90aGluZyBtb3JlIHRoYW4gY2FsbGluZyBhIGNvcnJlc3BvbmRpbmcKLSAgZnVuY3Rpb24gaW4gdGhlIE9wZW5TU0wgbGlicmFyeS4KLVNlY3Rpb246IEFwcHMvcHJvZ3JhbW1pbmcKLQotRm9ybWF0OiBIVE1MCi1JbmRleDogL3Vzci9zaGFyZS9kb2MvcHlvcGVuc3NsLWRvYy9odG1sL2luZGV4Lmh0bWwKLUZpbGVzOiAvdXNyL3NoYXJlL2RvYy9weW9wZW5zc2wtZG9jL2h0bWwvKgpkaWZmIC0tZ2l0IGEvZGFwcGVyL3B5b3BlbnNzbC1kb2MuZG9jcyBiL2RhcHBlci9weW9wZW5zc2wtZG9jLmRvY3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxNDlkYjEuLjAwMDAwMDAKLS0tIGEvZGFwcGVyL3B5b3BlbnNzbC1kb2MuZG9jcworKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotZG9jL3B5T3BlblNTTC5wcwotZG9jL3B5T3BlblNTTC50eHQKLWRvYy9odG1sCi1kZWJpYW4vUkVBRE1FLkRlYmlhbgpkaWZmIC0tZ2l0IGEvZGFwcGVyL3B5b3BlbnNzbC1kb2MuZXhhbXBsZXMgYi9kYXBwZXIvcHlvcGVuc3NsLWRvYy5leGFtcGxlcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTM5NzIxZS4uMDAwMDAwMAotLS0gYS9kYXBwZXIvcHlvcGVuc3NsLWRvYy5leGFtcGxlcworKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWV4YW1wbGVzLyoKZGlmZiAtLWdpdCBhL2RhcHBlci9weXRob24tcHlvcGVuc3NsLmRvY3MgYi9kYXBwZXIvcHl0aG9uLXB5b3BlbnNzbC5kb2NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMTc0NzI4Li4wMDAwMDAwCi0tLSBhL2RhcHBlci9weXRob24tcHlvcGVuc3NsLmRvY3MKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1kZWJpYW4vUkVBRE1FLkRlYmlhbgpkaWZmIC0tZ2l0IGEvZGFwcGVyL3J1bGVzIGIvZGFwcGVyL3J1bGVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAyMDA3NDg1Li4wMDAwMDAwCi0tLSBhL2RhcHBlci9ydWxlcworKysgL2Rldi9udWxsCkBAIC0xLDEwMyArMCwwIEBACi0jIS91c3IvYmluL21ha2UgLWYKLSMgU2FtcGxlIGRlYmlhbi9ydWxlcyB0aGF0IHVzZXMgZGViaGVscGVyLiAKLSMgR05VIGNvcHlyaWdodCAxOTk3IGJ5IEpvZXkgSGVzcy4KLSMKLSMgVGhpcyB2ZXJzaW9uIGlzIGZvciBhIGh5cG90aGV0aWNhbCBwYWNrYWdlIHRoYXQgYnVpbGRzIGFuCi0jIGFyY2hpdGVjdHVyZS1kZXBlbmRhbnQgcGFja2FnZSwgYXMgd2VsbCBhcyBhbiBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQKLSMgcGFja2FnZS4KLQotIyBVbmNvbW1lbnQgdGhpcyB0byB0dXJuIG9uIHZlcmJvc2UgbW9kZS4gCi0jZXhwb3J0IERIX1ZFUkJPU0U9MQotCi0jIFRoaXMgaXMgdGhlIGRlYmhlbHBlciBjb21wYXRhYmlsaXR5IHZlcnNpb24gdG8gdXNlLgotZXhwb3J0IERIX0NPTVBBVD0zCi0KLVZFUlNJT05TID0gMi4zIDIuNCAyLjUKLQotY29uZmlndXJlOiBjb25maWd1cmUtc3RhbXAKLWNvbmZpZ3VyZS1zdGFtcDoKLQlkaF90ZXN0ZGlyCi0KLQlmb3IgdmVyIGluICQoVkVSU0lPTlMpOyBkbyBcCi0JICAgIGNwIGRlYmlhbi9weXRob24tcHlvcGVuc3NsLmRvY3MgZGViaWFuL3B5dGhvbiQkdmVyLXB5b3BlbnNzbC5kb2NzOyBcCi0JZG9uZQotCi0JdG91Y2ggY29uZmlndXJlLXN0YW1wCi0KLWJ1aWxkOiBjb25maWd1cmUtc3RhbXAgYnVpbGQtc3RhbXAKLWJ1aWxkLXN0YW1wOgotCWRoX3Rlc3RkaXIKLQotCWZvciB2ZXIgaW4gJChWRVJTSU9OUyk7IGRvIFwKLQkgICAgL3Vzci9iaW4vcHl0aG9uJCR2ZXIgc2V0dXAucHkgYnVpbGQ7IFwKLQlkb25lCi0KLQl0b3VjaCBidWlsZC1zdGFtcAotCi1jbGVhbjoKLQlkaF90ZXN0ZGlyCi0JZGhfdGVzdHJvb3QKLQlybSAtZiBidWlsZC1zdGFtcCBjb25maWd1cmUtc3RhbXAKLQotCWZvciB2ZXIgaW4gJChWRVJTSU9OUyk7IGRvIFwKLQkgICAgcm0gLWYgZGViaWFuL3B5dGhvbiQkdmVyLXB5b3BlbnNzbC5kb2NzOyBcCi0JZG9uZQotCXJtIC1yZiBidWlsZAotCi0JZGhfY2xlYW4KLQotaW5zdGFsbDogREhfT1BUSU9OUz0KLWluc3RhbGw6IGJ1aWxkCi0JZGhfdGVzdGRpcgotCWRoX3Rlc3Ryb290Ci0JZGhfY2xlYW4gLWsKLQlkaF9pbnN0YWxsZGlycwotCi0JZm9yIHZlciBpbiAkKFZFUlNJT05TKTsgZG8gXAotCSAgICAvdXNyL2Jpbi9weXRob24kJHZlciBzZXR1cC5weSBpbnN0YWxsIC0tcHJlZml4PSQoQ1VSRElSKS9kZWJpYW4vcHl0aG9uJCR2ZXItcHlvcGVuc3NsL3VzcjsgXAotCWRvbmUKLQotIyBCdWlsZCBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZmlsZXMgaGVyZS4KLSMgUGFzcyAtaSB0byBhbGwgZGViaGVscGVyIGNvbW1hbmRzIGluIHRoaXMgdGFyZ2V0IHRvIHJlZHVjZSBjbHV0dGVyLgotYmluYXJ5LWluZGVwOiBidWlsZCBpbnN0YWxsCi0JZGhfdGVzdGRpciAtaQotCWRoX3Rlc3Ryb290IC1pCi0JZGhfaW5zdGFsbGRvY3MgLWkKLQlkaF9pbnN0YWxsZXhhbXBsZXMgLWkKLSMJZGhfaW5zdGFsbG1lbnUgLWkKLSMJZGhfaW5zdGFsbGNyb24gLWkKLSMJZGhfaW5zdGFsbGluZm8gLWkKLQlkaF9pbnN0YWxsY2hhbmdlbG9ncyBDaGFuZ2VMb2cgLWkKLSMJZGhfbGluayAtaQotCWRoX2NvbXByZXNzIC1pCi0JZGhfZml4cGVybXMgLWkKLQlkaF9weXRob24gLWkKLQlkaF9pbnN0YWxsZGViIC1pCi0JZGhfZ2VuY29udHJvbCAtaQotCWRoX21kNXN1bXMgLWkKLQlkaF9idWlsZGRlYiAtaQotCi0jIEJ1aWxkIGFyY2hpdGVjdHVyZS1kZXBlbmRlbnQgZmlsZXMgaGVyZS4KLWJpbmFyeS1hcmNoOiBidWlsZCBpbnN0YWxsCi0JZGhfdGVzdGRpciAtYQotCWRoX3Rlc3Ryb290IC1hCi0JZGhfaW5zdGFsbGRvY3MgLWEKLQlkaF9pbnN0YWxsZXhhbXBsZXMgLWEKLSMJZGhfaW5zdGFsbG1lbnUgLWEKLSMJZGhfaW5zdGFsbGNyb24gLWEKLSMJZGhfaW5zdGFsbGluZm8gLWEKLQlkaF9pbnN0YWxsY2hhbmdlbG9ncyBDaGFuZ2VMb2cgLWEKLQlkaF9zdHJpcCAtYQotIwlkaF9saW5rIC1hCi0JZGhfY29tcHJlc3MgLWEKLQlkaF9maXhwZXJtcyAtYQotCWRoX3B5dGhvbiAtYQotCWRoX21ha2VzaGxpYnMgLWEKLQlkaF9pbnN0YWxsZGViIC1hCi0JZGhfc2hsaWJkZXBzIC1hCi0JZGhfZ2VuY29udHJvbCAtYQotCWRoX21kNXN1bXMgLWEKLQlkaF9idWlsZGRlYiAtYQotCi1iaW5hcnk6IGJpbmFyeS1pbmRlcCBiaW5hcnktYXJjaAotLlBIT05ZOiBidWlsZCBjbGVhbiBiaW5hcnktaW5kZXAgYmluYXJ5LWFyY2ggYmluYXJ5IGluc3RhbGwgY29uZmlndXJlCmRpZmYgLS1naXQgYS9kb2MvYXBpL2NyeXB0by5yc3QgYi9kb2MvYXBpL2NyeXB0by5yc3QKaW5kZXggN2M3N2IwMy4uZWU5M2NmYiAxMDA2NDQKLS0tIGEvZG9jL2FwaS9jcnlwdG8ucnN0CisrKyBiL2RvYy9hcGkvY3J5cHRvLnJzdApAQCAtNDg1LDYgKzQ4NSwxMyBAQAogICAgIEdldCB0aGUgdmVyc2lvbiAoUkZDIDI0NTksIDQuMS4yLjEpIG9mIHRoZSBjZXJ0aWZpY2F0ZSByZXF1ZXN0LgogCiAKKy4uIHB5Om1ldGhvZDo6IFg1MDlSZXEuZ2V0X2V4dGVuc2lvbnMoKQorCisgICAgR2V0IGV4dGVuc2lvbnMgdG8gdGhlIHJlcXVlc3QuCisKKyAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAwLjE1CisKKwogLi4gX29wZW5zc2wteDUwOXN0b3JlOgogCiBYNTA5U3RvcmUgb2JqZWN0cwpkaWZmIC0tZ2l0IGEvZG9jL2FwaS9zc2wucnN0IGIvZG9jL2FwaS9zc2wucnN0CmluZGV4IGYxNjljYmMuLmI1ODE0NTAgMTAwNjQ0Ci0tLSBhL2RvYy9hcGkvc3NsLnJzdAorKysgYi9kb2MvYXBpL3NzbC5yc3QKQEAgLTgzLDEyICs4Myw2IEBACiAgICAgOnB5OmNvbnN0OmBPUF9OT18qYCBjb25zdGFudCBtYXkgYmUgdW5kZWZpbmVkLgogCiAKLS4uIHB5OmRhdGE6OiBNT0RFX05PX0NPTVBSRVNTSU9OCi0KLSAgIENvbnN0YW50IHVzZWQgd2l0aCA6cHk6bWV0aDpgc2V0X21vZGVgIG9mIENvbnRleHQgb2JqZWN0cyB0byBkaXNhYmxlCi0gICBhdXRvbWF0aWMgY29tcHJlc3Npb24gb2YgYXBwbGljYXRpb24gdHJhZmZpYy4KLQotCiAuLiBweTpkYXRhOjogU1NMRUFZX1ZFUlNJT04KICAgICAgICAgICAgICBTU0xFQVlfQ0ZMQUdTCiAgICAgICAgICAgICAgU1NMRUFZX0JVSUxUX09OCmRpZmYgLS1naXQgYS9kb2MvY29uZi5weSBiL2RvYy9jb25mLnB5CmluZGV4IGJlOTc4NGIuLmQ5YzlhNjcgMTAwNjQ0Ci0tLSBhL2RvYy9jb25mLnB5CisrKyBiL2RvYy9jb25mLnB5CkBAIC01MSw5ICs1MSw5IEBACiAjIGJ1aWx0IGRvY3VtZW50cy4KICMKICMgVGhlIHNob3J0IFguWSB2ZXJzaW9uLgotdmVyc2lvbiA9ICcwLjEzJwordmVyc2lvbiA9ICcwLjE0JwogIyBUaGUgZnVsbCB2ZXJzaW9uLCBpbmNsdWRpbmcgYWxwaGEvYmV0YS9yYyB0YWdzLgotcmVsZWFzZSA9ICcwLjEzJworcmVsZWFzZSA9ICcwLjE0JwogCiAjIFRoZSBsYW5ndWFnZSBmb3IgY29udGVudCBhdXRvZ2VuZXJhdGVkIGJ5IFNwaGlueC4gUmVmZXIgdG8gZG9jdW1lbnRhdGlvbgogIyBmb3IgYSBsaXN0IG9mIHN1cHBvcnRlZCBsYW5ndWFnZXMuCmRpZmYgLS1naXQgYS9ldGNoL1JFQURNRS5EZWJpYW4gYi9ldGNoL1JFQURNRS5EZWJpYW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg4NGRlYjguLjAwMDAwMDAKLS0tIGEvZXRjaC9SRUFETUUuRGViaWFuCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotRGViaWFuIG5vdGVzIC0tIHB5T3BlblNTTAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UaGUgc291cmNlIHBhY2thZ2UgaXMgc3BsaXQgdXAgb3ZlciBmb3VyIGJpbmFyeSBwYWNrYWdlczoKLQotKiBweXRob24yLjItcHlvcGVuc3NsIC0tIGNvbXBpbGVkIGZvciBQeXRob24gMi4yCi0qIHB5dGhvbjIuMy1weW9wZW5zc2wgLS0gY29tcGlsZWQgZm9yIFB5dGhvbiAyLjMKLSogcHl0aG9uLXB5b3BlbnNzbCAgICAtLSBkdW1teSBwYWNrYWdlIHRoYXQgZGVwZW5kcyBvbiB0aGUgZGVmYXVsdAotICAgICAgICAgICAgICAgICAgICAgICAgIFB5dGhvbiB2ZXJzaW9uIChjdXJyZW50bHkgMi4zKQotKiBweW9wZW5zc2wtZG9jICAgICAgIC0tIGRvY3VtZW50YXRpb24gZm9yIHB5T3BlblNTTAotCi0KLU1hcnRpbiBTasO2Z3JlbiA8c2pvZ3JlbkBkZWJpYW4ub3JnPgpkaWZmIC0tZ2l0IGEvZXRjaC9jaGFuZ2Vsb2cgYi9ldGNoL2NoYW5nZWxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDZiOGM4Ni4uMDAwMDAwMAotLS0gYS9ldGNoL2NoYW5nZWxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4OSArMCwwIEBACi1weW9wZW5zc2wgKDAuNi0yLjMpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogTm9uLW1haW50YWluZXIgdXBsb2FkLgotICAqIFVwZGF0ZSBQYWNrYWdlIGZvciBsYXN0IHB5dGhvbiBwb2xpY3kgKENsb3NlczogIzM3MzU0OCkuCi0KLSAtLSBQaWVycmUgSGFib3V6aXQgPG1hZGNvZGVyQGRlYmlhbi5vcmc+ICBGcmksIDMwIEp1biAyMDA2IDEzOjMxOjEwICswMjAwCi0KLXB5b3BlbnNzbCAoMC42LTIuMikgdW5zdGFibGU7IHVyZ2VuY3k9bG93Ci0KLSAgKiBOb24tbWFpbnRhaW5lciB1cGxvYWQuCi0gICogSW5jbHVkZSBwYXRjaCBmcm9tIEN5cmlsIExhY291eCA8Y2xhY291eEBlYXN0ZXItZWdncy5jb20+LAotICAgIGZpeGluZyBTZWdtZW50YXRpb24gZmF1bHQgd2hlbiBjcmVhdGluZyB4NTA5IGV4dGVuc2lvbi4KLSAgICAoQ2xvc2VzOiAjMzU1OTQ3KQotCi0gLS0gSnVsaWVuIERhbmpvdSA8YWNpZEBkZWJpYW4ub3JnPiAgRnJpLCAxMiBNYXkgMjAwNiAxNjo0Mjo0NyArMDIwMAotCi1weW9wZW5zc2wgKDAuNi0yLjEpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogTm9uLW1haW50YWluZXIgdXBsb2FkLgotICAqIFN0b3AgYnVpbGRpbmcgbW9kdWxlcyBmb3IgcHl0aG9uMi4yLiAoQ2xvc2VzOiAjMzUxMTMzKQotICAqIEFsc28gcmVidWlsZCBtb2R1bGUgdXNpbmcgbGlic3NsMC45LjguIChDbG9zZXM6ICMzNDc1NDEpCi0KLSAtLSBQaWVycmUgSGFib3V6aXQgPG1hZGNvZGVyQGRlYmlhbi5vcmc+ICBTdW4sICA5IEFwciAyMDA2IDE5OjQ1OjE2ICswMjAwCi0KLXB5b3BlbnNzbCAoMC42LTIpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogQWRkIHN1cHBvcnQgZm9yIHB5dGhvbiAyLjQuIChDbG9zZXM6ICMyOTc4NzApCi0gICogQnVpbGQtZGVwZW5kIG9uIHYwLjkuNyBvZiBvcGVuc3NsLgotCi0gLS0gTWFydGluIFNqb2dyZW4gPHNqb2dyZW5AZGViaWFuLm9yZz4gIE1vbiwgMTQgTWFyIDIwMDUgMDg6NTY6MjcgKzAxMDAKLQotcHlvcGVuc3NsICgwLjYtMSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93Ci0KLSAgKiBOZXcgdXBzdHJlYW0gcmVsZWFzZSwgaW5jbHVkaW5nOgotICAgIC0gQWRkIE5ldHNjYXBlIFNQS0kgZXh0ZW5zaW9ucy4gKENsb3NlczogIzIwNTEzMikKLSAgICAtIEFkZCBYNTA5LnN1YmplY3RfbmFtZV9oYXNoLCBYNTA5LmRpZ2VzdC4gKENsb3NlczogIzIwNTEzNikKLSAgICAtIEZpeCBmdWxsIG5hbWVzIG9mIGV4Y2VwdGlvbnMuIChDbG9zZXM6ICMyNTAzNDIpCi0gICAgLSBBZGQgU1NMLkNvbnRleHQudXNlX2NlcnRpZmljYXRlX2NoYWluX2ZpbGUuIChDbG9zZXM6ICMyNjAxMzQpCi0gICogRG9jcyBhcmUgYnVpbHQgdXBzdHJlYW0sIHNvIHRoZSBidWlsZC1kZXBzIGhhdmUgYmVlbiB0cmltbWVkLgotICAgIFRoaXMgYWxzbyBtZWFucyB0aGF0IEhUTUwgYW5kIHRleHQgZG9jdW1lbnRhdGlvbiBhcmUgYmFjay4KLSAgKiBCdW1wZWQgc3RhbmRhcmRzLXZlcnNpb24uCi0gICogVXNlIGRoX3B5dGhvbi4KLQotIC0tIE1hcnRpbiBTam9ncmVuIDxzam9ncmVuQGRlYmlhbi5vcmc+ICBGcmksIDEzIEF1ZyAyMDA0IDIwOjUzOjI3ICswMjAwCi0KLXB5b3BlbnNzbCAoMC41LjEtNCkgdW5zdGFibGU7IHVyZ2VuY3k9bG93Ci0KLSAgKiBEcm9wIEhUTUwgYW5kIHRleHQgZG9jdW1lbnRhdGlvbiBzaW5jZSBsYXRleDJodG1sIG1vdmVkIHRvIG5vbi1mcmVlLgotICAgIFRoaXMgaXMgYSB0ZW1wb3Jhcnkgc29sdXRpb24sIHVudGlsIEkgY2FuIGhhY2sgbWtob3d0byB0byB1c2Ugc29tZXRoaW5nCi0gICAgZWxzZS4gKENsb3NlczogIzIyMTM0NCkKLSAgKiBGaXggdGhlIGNvcHlyaWdodCBmaWxlIHRvIG1lbnRpb24gdGhlIGNvcHlyaWdodCBob2xkZXIuCi0KLSAtLSBNYXJ0aW4gU2pvZ3JlbiA8c2pvZ3JlbkBkZWJpYW4ub3JnPiAgTW9uLCAxNSBEZWMgMjAwMyAyMDoxNjoyNSArMDEwMAotCi1weW9wZW5zc2wgKDAuNS4xLTMpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogTUFOSUZFU1QuaW46IEluY2x1ZGUgdGhlIHNyYy9SQVRJT05BTEUgZmlsZS4gKENsb3NlczogIzE5NzQwMSkKLSAgKiBkb2MvcHlPcGVuU1NMLnRleDogRml4IHR5cG8uIChDbG9zZXM6ICMxOTc0MzUpCi0gICogRHJvcCBQeXRob24gMS41IGFuZCAyLjEgc3VwcG9ydC4KLSAgKiBNYWtlIHB5dGhvbi1weW9wZW5zc2wgZGVwZW5kIG9uIHB5dGhvbjIuMy1weW9wZW5zc2wsIHdoaWNoIGlzIG5vIGxvbmdlcgotICAgICJleHBlcmltZW50YWwiLgotCi0gLS0gTWFydGluIFNqb2dyZW4gPHNqb2dyZW5AZGViaWFuLm9yZz4gIE1vbiwgMTEgQXVnIDIwMDMgMTg6Mzc6MDcgKzAyMDAKLQotcHlvcGVuc3NsICgwLjUuMS0yKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIE1ha2Ugc3VyZSBuYW1lcyBpbiBjb250cm9sIGFuZCBjaGFuZ2Vsb2cgbWF0Y2guIFN0dXBpZCBjaGFuZ2Vsb2dzLCBibGVoLgotICAqIENoYW5nZSBzZWN0aW9uIHRvICdweXRob24nLgotICAqIFJlYnVpbGQgd2l0aCBvcGVuc3NsIDAuOS43LiAoQ2xvc2VzOiAjMTg5ODI2KQotICAqIF9faW5pdF9fLnB5OiBJbXBvcnQgdHNhZmUgbW9kdWxlLgotICAqIHRzYWZlLnB5OiBBZGQgc29tZSBtaXNzaW5nIG1ldGhvZHMuCi0gICogZGViaWFuL2NvcHlyaWdodDogRml4IEF1dGhvcihzKSBib2lsZXJwbGF0ZSB0aGluZ3kgdG8gc2h1dCBsaW50aWFuIHVwLgotCi0gLS0gTWFydGluIFNqb2dyZW4gPHNqb2dyZW5AZGViaWFuLm9yZz4gIFN1biwgMjAgQXByIDIwMDMgMTc6NTA6MjQgKzAyMDAKLQotcHlvcGVuc3NsICgwLjUuMS0xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIE5ldyB1cHN0cmVhbSB2ZXJzaW9uLiAoQ2xvc2VzOiAjMTU5NTMwKQotICAqIEFkZGVkIGEgcHl0aG9uLXB5b3BlbnNzbCBkdW1teSBwYWNrYWdlLgotICAqIEFkZGVkIGFuIGV4cGVyaW1lbnRhbCBweXRob24yLjMtcHlvcGVuc3NsIHBhY2thZ2UuCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgU3VuLCAyNSBBdWcgMjAwMiAxMjowODozMSArMDIwMAotCi1weW9wZW5zc2wgKDAuNS0xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIE5ldyB1cHN0cmVhbSB2ZXJzaW9uCi0gICogU3VwcG9ydCBmb3IgcHl0aG9uMS41LgotICAqIEZpeCBzdHVwaWQgbWlzdGFrZXMgZm9yIHB5dGhvbiAxLjUgYW5kIHB5dGhvbiAyLjEuCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgV2VkLCAyNCBKdWwgMjAwMiAwOTowNToyOCArMDIwMAotCi1weW9wZW5zc2wgKDAuNC4xLTgpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogQWRkZWQgZXhhbXBsZXMgdG8gcHlvcGVuc3NsLWRvYwotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIFdlZCwgIDUgSnVuIDIwMDIgMTQ6NTg6MDQgKzAyMDAKLQotcHlvcGVuc3NsICgwLjQuMS03KSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIFRoZSBjdXRlIGFycm93IGljb25zIGluIHRoZSBIVE1MIGRvY3VtZW50YXRpb24gc2hvdWxkIGJlIHRoZXJlIG5vdyB0b28uCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgVGh1LCAzMCBNYXkgMjAwMiAwMDo1Mzo0NCArMDIwMAotCi1weW9wZW5zc2wgKDAuNC4xLTYpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogQ29tbWVudGVkIG91dCBzb21lIHVudXNlZCB0aGluZ3MgaW4gZGViaWFuL3J1bGVzCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgV2VkLCAyOSBNYXkgMjAwMiAxMToyMDozMyArMDIwMAotCi1weW9wZW5zc2wgKDAuNC4xLTUpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogQWRkaW5nIHRvIHRoZSBidWlsZC1kZXBlbmRzLgotICAqIEluaXRpYWwgdXBsb2FkIChDbG9zZXM6ICMxNDA2ODcpCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgU2F0LCAgNiBBcHIgMjAwMiAxNDoxNTo0OSArMDIwMAotCi1weW9wZW5zc2wgKDAuNC4xLTQpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogRml4ZXMgaW4gcGFja2FnaW5nLCBpdCBzaG91bGRuJ3QgYmUgcmVnYXJkZWQgYSBuYXRpdmUgcGFja2FnZSBub3cuCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgU2F0LCAgNiBBcHIgMjAwMiAxMToyNjozOSArMDIwMAotCi1weW9wZW5zc2wgKDAuNC4xLTMpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogTW92ZWQgZnJvbSBub24tVVMgdG8gbWFpbi9kZXZlbAotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIEZyaSwgIDUgQXByIDIwMDIgMjI6NDQ6MTAgKzAyMDAKLQotcHlvcGVuc3NsICgwLjQuMS0yKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIEZpeGVzIGluIHRoZSBwYWNrYWdpbmcsIGRlcGVuZGVuY2llcyBhbmQgYnVpbGQgZGVwZW5kZW5jaWVzIHNob3VsZCBiZQotICAgIGFsbCByaWdodCBub3cuCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgVGh1LCAxMCBKYW4gMjAwMiAxMDowMDowNiArMDEwMAotCi1weW9wZW5zc2wgKDAuNC4xLTEpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogTmV3ICJ1cHN0cmVhbSIgcmVsZWFzZQotICAqIE5ldyBwYWNrYWdpbmcsIHB5dGhvbjIuMS1weW9wZW5zc2wsIHB5dGhvbjIuMi1weW9wZW5zc2wsIHB5b3BlbnNzbC1kb2MKLQotIC0tIE1hcnRpbiBTasO2Z3JlbiA8bWFydGluQHN0cmFrdC5jb20+ICBNb24sICA3IEphbiAyMDAyIDE1OjM4OjUxICswMTAwCi0KLXB5b3BlbnNzbCAoMC40LTQpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogR3JyciwgdGhpcyB0aW1lIHRoZW4uLi4KLQotIC0tIE1hcnRpbiBTasO2Z3JlbiA8bWFydGluQHN0cmFrdC5jb20+ICBGcmksIDE3IEF1ZyAyMDAxIDE0OjUzOjE5ICswMjAwCi0KLXB5b3BlbnNzbCAoMC40LTMpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogRml4ZWQgYSBiaWcgbmFzdHkgYnVnCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgRnJpLCAxNyBBdWcgMjAwMSAxNDozMzowNiArMDIwMAotCi1weW9wZW5zc2wgKDAuNC0yKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIEZpeGVzCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgRnJpLCAxNyBBdWcgMjAwMSAxMzo1MzoxMSArMDIwMAotCi1weW9wZW5zc2wgKDAuNC0xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIE5ldyAidXBzdHJlYW0iIHZlcnNpb24KLQotIC0tIE1hcnRpbiBTasO2Z3JlbiA8bWFydGluQHN0cmFrdC5jb20+ICBUaHUsICA5IEF1ZyAyMDAxIDEyOjMyOjQ3ICswMjAwCi0KLXB5b3BlbnNzbCAoMC4zLTMpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogWDUwOSBvYmplY3RzIG5vdyBoYXMgYSBoYXNfZXhwaXJlZCBtZXRob2QKLQotIC0tIE1hcnRpbiBTasO2Z3JlbiA8bWFydGluQHN0cmFrdC5jb20+ICBUdWUsICA3IEF1ZyAyMDAxIDE0OjE2OjEzICswMjAwCi0KLXB5b3BlbnNzbCAoMC4zLTIpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogWDUwOU5hbWUgb2JqZWN0cyBub3cgaGFzIGEgY29tcGFyZSBtZXRob2QgCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgVHVlLCAgNyBBdWcgMjAwMSAxMDo1Mzo1OCArMDIwMAotCi1weW9wZW5zc2wgKDAuMy0xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIE5ldyAidXBzdHJlYW0iIHZlcnNpb24KLQotIC0tIE1hcnRpbiBTasO2Z3JlbiA8bWFydGluQHN0cmFrdC5jb20+ICBGcmksICAzIEF1ZyAyMDAxIDE2OjM2OjI2ICswMjAwCi0KLXB5b3BlbnNzbCAoMC4xLTEpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogSW5pdGlhbCB2ZXJzaW9uLgotCi0gLS0gQW5kZXJzIEhhbW1hcnF1aXN0IDxpa29Ac3RyYWt0LmNvbT4gIE1vbiwgMjMgSnVsIDIwMDEgMTU6MTc6MzggKzAyMDAKZGlmZiAtLWdpdCBhL2V0Y2gvY29udHJvbCBiL2V0Y2gvY29udHJvbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGYxMTk1OC4uMDAwMDAwMAotLS0gYS9ldGNoL2NvbnRyb2wKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1Tb3VyY2U6IHB5b3BlbnNzbAotU2VjdGlvbjogcHl0aG9uCi1Qcmlvcml0eTogb3B0aW9uYWwKLU1haW50YWluZXI6IE1hcnRpbiBTam9ncmVuIDxzam9ncmVuQGRlYmlhbi5vcmc+Ci1CdWlsZC1EZXBlbmRzOiBkZWJoZWxwZXIgKD49IDUuMC4zNy4yKSwgcHl0aG9uLWFsbC1kZXYgKD49IDIuMy41LTExKSwKLSBweXRob24tc3VwcG9ydCAoPj0gMC4zKSwgbGlic3NsLWRldiAoPj0gMC45LjgpCi1TdGFuZGFyZHMtVmVyc2lvbjogMy43LjIKLQotUGFja2FnZTogcHl0aG9uLXB5b3BlbnNzbAotQXJjaGl0ZWN0dXJlOiBhbnkKLURlcGVuZHM6ICR7cHl0aG9uOkRlcGVuZHN9LCAke3NobGliczpEZXBlbmRzfQotUHJvdmlkZXM6ICR7cHl0aG9uOlByb3ZpZGVzfQotU3VnZ2VzdHM6IHB5b3BlbnNzbC1kb2MKLVJlcGxhY2VzOiBweXRob24yLXB5b3BlbnNzbCwgcHl0aG9uMi4zLXB5b3BlbnNzbCAoPDwgMC42LTIuMyksIHB5dGhvbjIuNC1weW9wZW5zc2wgKDw8IDAuNi0yLjMpCi1Db25mbGljdHM6IHB5dGhvbjItcHlvcGVuc3NsLCBweXRob24yLjMtcHlvcGVuc3NsICg8PCAwLjYtMi4zKSwgcHl0aG9uMi40LXB5b3BlbnNzbCAoPDwgMC42LTIuMykKLVhCLVB5dGhvbi1WZXJzaW9uOiAke3B5dGhvbjpWZXJzaW9uc30KLURlc2NyaXB0aW9uOiBQeXRob24gd3JhcHBlciBhcm91bmQgdGhlIE9wZW5TU0wgbGlicmFyeSAoZHVtbXkgcGFja2FnZSkKLSBJbmNsdWRlczogU1NMIENvbnRleHQgb2JqZWN0cywgU1NMIENvbm5lY3Rpb24gb2JqZWN0cywgdXNpbmcKLSBQeXRob24gc29ja2V0cyBhcyB0cmFuc3BvcnQgbGF5ZXIuIFRoZSBDb25uZWN0aW9uIG9iamVjdAotIHdyYXBzIGFsbCB0aGUgc29ja2V0IG1ldGhvZHMgYW5kIGNhbiB0aGVyZWZvcmUgYmUgdXNlZAotIGludGVyY2hhbmdlYWJseS4KLQotUGFja2FnZTogcHlvcGVuc3NsLWRvYwotU2VjdGlvbjogZG9jCi1BcmNoaXRlY3R1cmU6IGFsbAotU3VnZ2VzdHM6IHB5dGhvbi1weW9wZW5zc2wKLURlc2NyaXB0aW9uOiBEb2N1bWVudGF0aW9uIGZvciBweU9wZW5TU0wKLSBUaGlzIHBhY2thZ2UgcHJvdmlkZXMgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHB5T3BlblNTTCBwYWNrYWdlLAotIGluIEhUTUwsIHBvc3RzY3JpcHQgYW5kIHRleHQgZm9ybWF0cy4KZGlmZiAtLWdpdCBhL2V0Y2gvY29weXJpZ2h0IGIvZXRjaC9jb3B5cmlnaHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3MDUzOTkuLjAwMDAwMDAKLS0tIGEvZXRjaC9jb3B5cmlnaHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGlzIHBhY2thZ2Ugd2FzIGRlYmlhbml6ZWQgYnkgTWFydGluIFNqw7ZncmVuIDxzam9ncmVuQGRlYmlhbi5vcmc+IG9uCi1Nb24sICA3IEphbiAyMDAyIDE2OjI1OjU4ICswMTAwLgotCi1JdCB3YXMgZG93bmxvYWRlZCBmcm9tIHB5b3BlbnNzbC5zb3VyY2Vmb3JnZS5uZXQKLQotVXBzdHJlYW0gQXV0aG9yOiBNYXJ0aW4gU2rDtmdyZW4gPG1zam9ncmVuQGdtYWlsLmNvbT4KLQotQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQgQUIgU3RyYWt0Ci0KLVRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLW1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUxpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi1UaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLWJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi1NRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotQSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKHZlcnNpb24gMi4xKQotY2FuIGJlIGZvdW5kIGluIC91c3Ivc2hhcmUvY29tbW9uLWxpY2Vuc2VzL0xHUEwgb24gRGViaWFuIHN5c3RlbXMsCi1vciBpbiB0aGUgZmlsZSBDT1BZSU5HIGluIHRoZSBzb3VyY2UgcGFja2FnZS4KZGlmZiAtLWdpdCBhL2V0Y2gvcHljb21wYXQgYi9ldGNoL3B5Y29tcGF0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwY2ZiZjA4Li4wMDAwMDAwCi0tLSBhL2V0Y2gvcHljb21wYXQKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi0yCmRpZmYgLS1naXQgYS9ldGNoL3B5b3BlbnNzbC1kb2MuZG9jLWJhc2UgYi9ldGNoL3B5b3BlbnNzbC1kb2MuZG9jLWJhc2UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1N2ViM2YuLjAwMDAwMDAKLS0tIGEvZXRjaC9weW9wZW5zc2wtZG9jLmRvYy1iYXNlCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotRG9jdW1lbnQ6IHB5b3BlbnNzbC1tYW51YWwKLVRpdGxlOiBQeXRob24gT3BlblNTTCBNYW51YWwKLUF1dGhvcjogTWFydGluIFNq9mdyZW4KLUFic3RyYWN0OiBNYW51YWwgZm9yIHRoZSBweU9wZW5TU0wgcGFja2FnZS4KLSAgVGhpcyBtb2R1bGUgaXMgYSByYXRoZXIgdGhpbiB3cmFwcGVyIGFyb3VuZCAoYSBzdWJzZXQgb2YpIHRoZQotICBPcGVuU1NMIGxpYnJhcnkuIFdpdGggdGhpbiB3cmFwcGVyIEkgbWVhbiB0aGF0IGEgbG90IG9mIHRoZQotICBvYmplY3QgbWV0aG9kcyBkbyBub3RoaW5nIG1vcmUgdGhhbiBjYWxsaW5nIGEgY29ycmVzcG9uZGluZwotICBmdW5jdGlvbiBpbiB0aGUgT3BlblNTTCBsaWJyYXJ5LgotU2VjdGlvbjogQXBwcy9wcm9ncmFtbWluZwotCi1Gb3JtYXQ6IEhUTUwKLUluZGV4OiAvdXNyL3NoYXJlL2RvYy9weW9wZW5zc2wtZG9jL2h0bWwvaW5kZXguaHRtbAotRmlsZXM6IC91c3Ivc2hhcmUvZG9jL3B5b3BlbnNzbC1kb2MvaHRtbC8qCmRpZmYgLS1naXQgYS9ldGNoL3B5b3BlbnNzbC1kb2MuZG9jcyBiL2V0Y2gvcHlvcGVuc3NsLWRvYy5kb2NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMTQ5ZGIxLi4wMDAwMDAwCi0tLSBhL2V0Y2gvcHlvcGVuc3NsLWRvYy5kb2NzCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1kb2MvcHlPcGVuU1NMLnBzCi1kb2MvcHlPcGVuU1NMLnR4dAotZG9jL2h0bWwKLWRlYmlhbi9SRUFETUUuRGViaWFuCmRpZmYgLS1naXQgYS9ldGNoL3B5b3BlbnNzbC1kb2MuZXhhbXBsZXMgYi9ldGNoL3B5b3BlbnNzbC1kb2MuZXhhbXBsZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzOTcyMWUuLjAwMDAwMDAKLS0tIGEvZXRjaC9weW9wZW5zc2wtZG9jLmV4YW1wbGVzCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZXhhbXBsZXMvKgpkaWZmIC0tZ2l0IGEvZXRjaC9weXRob24tcHlvcGVuc3NsLmRvY3MgYi9ldGNoL3B5dGhvbi1weW9wZW5zc2wuZG9jcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTE3NDcyOC4uMDAwMDAwMAotLS0gYS9ldGNoL3B5dGhvbi1weW9wZW5zc2wuZG9jcworKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWRlYmlhbi9SRUFETUUuRGViaWFuCmRpZmYgLS1naXQgYS9ldGNoL3J1bGVzIGIvZXRjaC9ydWxlcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWY3YTM3ZS4uMDAwMDAwMAotLS0gYS9ldGNoL3J1bGVzCisrKyAvZGV2L251bGwKQEAgLTEsOTYgKzAsMCBAQAotIyEvdXNyL2Jpbi9tYWtlIC1mCi0jIFNhbXBsZSBkZWJpYW4vcnVsZXMgdGhhdCB1c2VzIGRlYmhlbHBlci4gCi0jIEdOVSBjb3B5cmlnaHQgMTk5NyBieSBKb2V5IEhlc3MuCi0jCi0jIFRoaXMgdmVyc2lvbiBpcyBmb3IgYSBoeXBvdGhldGljYWwgcGFja2FnZSB0aGF0IGJ1aWxkcyBhbgotIyBhcmNoaXRlY3R1cmUtZGVwZW5kYW50IHBhY2thZ2UsIGFzIHdlbGwgYXMgYW4gYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50Ci0jIHBhY2thZ2UuCi0KLSMgVW5jb21tZW50IHRoaXMgdG8gdHVybiBvbiB2ZXJib3NlIG1vZGUuIAotI2V4cG9ydCBESF9WRVJCT1NFPTEKLQotIyBUaGlzIGlzIHRoZSBkZWJoZWxwZXIgY29tcGF0YWJpbGl0eSB2ZXJzaW9uIHRvIHVzZS4KLWV4cG9ydCBESF9DT01QQVQ9NQotCi1QWVZFUlMgOj0gJChzaGVsbCBweXZlcnNpb25zIC1yKQotCi1idWlsZDogYnVpbGQtc3RhbXAKLWJ1aWxkLXN0YW1wOgotCWRoX3Rlc3RkaXIKLQotCXNldCAtZTsgXAotCWZvciBweSBpbiAkKFBZVkVSUyk7IGRvICBcCi0JICAgICQkcHkgc2V0dXAucHkgYnVpbGQ7IFwKLQlkb25lCi0KLQl0b3VjaCBidWlsZC1zdGFtcAotCi1jbGVhbjoKLQlkaF90ZXN0ZGlyCi0JZGhfdGVzdHJvb3QKLQlybSAtZiBidWlsZC1zdGFtcAotCi0JLWZvciBweSBpbiAkKFBZVkVSUyk7IGRvIFwKLQkgICAgJCRweSBzZXR1cC5weSBjbGVhbiAtLWFsbDsgZG9uZQotCXJtIC1yZiBidWlsZCB2ZXJzaW9uLnB5YwotCi0JZGhfY2xlYW4KLQotaW5zdGFsbDogREhfT1BUSU9OUz0KLWluc3RhbGw6IGJ1aWxkCi0JZGhfdGVzdGRpcgotCWRoX3Rlc3Ryb290Ci0JZGhfY2xlYW4gLWsKLQlkaF9pbnN0YWxsZGlycwotCi0Jc2V0IC1lOyBcCi0JZm9yIHB5IGluICQoUFlWRVJTKTsgZG8gXAotCSAgICAkJHB5IHNldHVwLnB5IGluc3RhbGwgLS1yb290PSQoQ1VSRElSKS9kZWJpYW4vcHl0aG9uLXB5b3BlbnNzbDsgXAotCWRvbmUKLQotIyBCdWlsZCBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZmlsZXMgaGVyZS4KLSMgUGFzcyAtaSB0byBhbGwgZGViaGVscGVyIGNvbW1hbmRzIGluIHRoaXMgdGFyZ2V0IHRvIHJlZHVjZSBjbHV0dGVyLgotYmluYXJ5LWluZGVwOiBidWlsZCBpbnN0YWxsCi0JZGhfdGVzdGRpciAtaQotCWRoX3Rlc3Ryb290IC1pCi0JZGhfaW5zdGFsbGRvY3MgLWkKLQlkaF9pbnN0YWxsZXhhbXBsZXMgLWkKLSMJZGhfaW5zdGFsbG1lbnUgLWkKLSMJZGhfaW5zdGFsbGNyb24gLWkKLSMJZGhfaW5zdGFsbGluZm8gLWkKLQlkaF9pbnN0YWxsY2hhbmdlbG9ncyBDaGFuZ2VMb2cgLWkKLSMJZGhfbGluayAtaQotCWRoX2NvbXByZXNzIC1pCi0JZGhfZml4cGVybXMgLWkKLQlkaF9weXN1cHBvcnQgLWkKLQlkaF9weXRob24gLWkKLQlkaF9pbnN0YWxsZGViIC1pCi0JZGhfZ2VuY29udHJvbCAtaQotCWRoX21kNXN1bXMgLWkKLQlkaF9idWlsZGRlYiAtaQotCi0jIEJ1aWxkIGFyY2hpdGVjdHVyZS1kZXBlbmRlbnQgZmlsZXMgaGVyZS4KLWJpbmFyeS1hcmNoOiBidWlsZCBpbnN0YWxsCi0JZGhfdGVzdGRpciAtYQotCWRoX3Rlc3Ryb290IC1hCi0JZGhfaW5zdGFsbGRvY3MgLWEKLQlkaF9pbnN0YWxsZXhhbXBsZXMgLWEKLSMJZGhfaW5zdGFsbG1lbnUgLWEKLSMJZGhfaW5zdGFsbGNyb24gLWEKLSMJZGhfaW5zdGFsbGluZm8gLWEKLQlkaF9pbnN0YWxsY2hhbmdlbG9ncyBDaGFuZ2VMb2cgLWEKLQlkaF9zdHJpcCAtYQotIwlkaF9saW5rIC1hCi0JZGhfY29tcHJlc3MgLWEKLQlkaF9maXhwZXJtcyAtYQotCWRoX3B5c3VwcG9ydCAtYQotCWRoX3B5dGhvbiAtYQotCWRoX21ha2VzaGxpYnMgLWEKLQlkaF9pbnN0YWxsZGViIC1hCi0JZGhfc2hsaWJkZXBzIC1hCi0JZGhfZ2VuY29udHJvbCAtYQotCWRoX21kNXN1bXMgLWEKLQlkaF9idWlsZGRlYiAtYQotCi1iaW5hcnk6IGJpbmFyeS1pbmRlcCBiaW5hcnktYXJjaAotLlBIT05ZOiBidWlsZCBjbGVhbiBiaW5hcnktaW5kZXAgYmluYXJ5LWFyY2ggYmluYXJ5IGluc3RhbGwKZGlmZiAtLWdpdCBhL2d1dHN5L1JFQURNRS5EZWJpYW4gYi9ndXRzeS9SRUFETUUuRGViaWFuCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ODRkZWI4Li4wMDAwMDAwCi0tLSBhL2d1dHN5L1JFQURNRS5EZWJpYW4KKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1EZWJpYW4gbm90ZXMgLS0gcHlPcGVuU1NMCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVRoZSBzb3VyY2UgcGFja2FnZSBpcyBzcGxpdCB1cCBvdmVyIGZvdXIgYmluYXJ5IHBhY2thZ2VzOgotCi0qIHB5dGhvbjIuMi1weW9wZW5zc2wgLS0gY29tcGlsZWQgZm9yIFB5dGhvbiAyLjIKLSogcHl0aG9uMi4zLXB5b3BlbnNzbCAtLSBjb21waWxlZCBmb3IgUHl0aG9uIDIuMwotKiBweXRob24tcHlvcGVuc3NsICAgIC0tIGR1bW15IHBhY2thZ2UgdGhhdCBkZXBlbmRzIG9uIHRoZSBkZWZhdWx0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgUHl0aG9uIHZlcnNpb24gKGN1cnJlbnRseSAyLjMpCi0qIHB5b3BlbnNzbC1kb2MgICAgICAgLS0gZG9jdW1lbnRhdGlvbiBmb3IgcHlPcGVuU1NMCi0KLQotTWFydGluIFNqw7ZncmVuIDxzam9ncmVuQGRlYmlhbi5vcmc+CmRpZmYgLS1naXQgYS9ndXRzeS9jaGFuZ2Vsb2cgYi9ndXRzeS9jaGFuZ2Vsb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlYWZjYWMuLjAwMDAwMDAKLS0tIGEvZ3V0c3kvY2hhbmdlbG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjA5ICswLDAgQEAKLXB5b3BlbnNzbCAoMC42LTIuM3VidW50dTEpIGZlaXN0eTsgdXJnZW5jeT1sb3cKLQotICAqIEJ1aWxkIGEgcHl0aG9uLXR3aXN0ZWQtZGJnIHBhY2thZ2UuCi0gICogQnVtcCBkZWJoZWxwZXIgY29tcGF0aWJpbGl0eSB0byB2NS4KLSAgKiBTZXQgVWJ1bnR1IG1haW50YWluZXIgYWRkcmVzcy4KLQotIC0tIE1hdHRoaWFzIEtsb3NlIDxkb2tvQHVidW50dS5jb20+ICBTYXQsIDE3IEZlYiAyMDA3IDAyOjU5OjE3ICswMTAwCi0KLXB5b3BlbnNzbCAoMC42LTIuM2J1aWxkMikgZWRneTsgdXJnZW5jeT1sb3cKLQotICAqIFJlYnVpbGQgdG8gYWRkIHN1cHBvcnQgZm9yIHB5dGhvbjIuNS4KLQotIC0tIE1hdHRoaWFzIEtsb3NlIDxkb2tvQHVidW50dS5jb20+ICBGcmksICA4IFNlcCAyMDA2IDEzOjMyOjIyICswMDAwCi0KLXB5b3BlbnNzbCAoMC42LTIuM2J1aWxkMSkgZWRneTsgdXJnZW5jeT1sb3cKLQotICAqIFJlYnVpbGQgKHVzaW5nIG5ldyBweXRob24tZGVmYXVsdHMpLiBVYnVudHUgIzUyMzIwLgotCi0gLS0gTWF0dGhpYXMgS2xvc2UgPGRva29AdWJ1bnR1LmNvbT4gIFNhdCwgIDggSnVsIDIwMDYgMTE6MzM6NTUgKzAwMDAKLQotcHlvcGVuc3NsICgwLjYtMi4zKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIE5vbi1tYWludGFpbmVyIHVwbG9hZC4KLSAgKiBVcGRhdGUgUGFja2FnZSBmb3IgbGFzdCBweXRob24gcG9saWN5IChDbG9zZXM6ICMzNzM1NDgpLgotCi0gLS0gUGllcnJlIEhhYm91eml0IDxtYWRjb2RlckBkZWJpYW4ub3JnPiAgRnJpLCAzMCBKdW4gMjAwNiAxMzozMToxMCArMDIwMAotCi1weW9wZW5zc2wgKDAuNi0yLjIpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogTm9uLW1haW50YWluZXIgdXBsb2FkLgotICAqIEluY2x1ZGUgcGF0Y2ggZnJvbSBDeXJpbCBMYWNvdXggPGNsYWNvdXhAZWFzdGVyLWVnZ3MuY29tPiwKLSAgICBmaXhpbmcgU2VnbWVudGF0aW9uIGZhdWx0IHdoZW4gY3JlYXRpbmcgeDUwOSBleHRlbnNpb24uCi0gICAgKENsb3NlczogIzM1NTk0NykKLQotIC0tIEp1bGllbiBEYW5qb3UgPGFjaWRAZGViaWFuLm9yZz4gIEZyaSwgMTIgTWF5IDIwMDYgMTY6NDI6NDcgKzAyMDAKLQotcHlvcGVuc3NsICgwLjYtMi4xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIE5vbi1tYWludGFpbmVyIHVwbG9hZC4KLSAgKiBTdG9wIGJ1aWxkaW5nIG1vZHVsZXMgZm9yIHB5dGhvbjIuMi4gKENsb3NlczogIzM1MTEzMykKLSAgKiBBbHNvIHJlYnVpbGQgbW9kdWxlIHVzaW5nIGxpYnNzbDAuOS44LiAoQ2xvc2VzOiAjMzQ3NTQxKQotCi0gLS0gUGllcnJlIEhhYm91eml0IDxtYWRjb2RlckBkZWJpYW4ub3JnPiAgU3VuLCAgOSBBcHIgMjAwNiAxOTo0NToxNiArMDIwMAotCi1weW9wZW5zc2wgKDAuNi0yKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIEFkZCBzdXBwb3J0IGZvciBweXRob24gMi40LiAoQ2xvc2VzOiAjMjk3ODcwKQotICAqIEJ1aWxkLWRlcGVuZCBvbiB2MC45Ljcgb2Ygb3BlbnNzbC4KLQotIC0tIE1hcnRpbiBTam9ncmVuIDxzam9ncmVuQGRlYmlhbi5vcmc+ICBNb24sIDE0IE1hciAyMDA1IDA4OjU2OjI3ICswMTAwCi0KLXB5b3BlbnNzbCAoMC42LTEpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogTmV3IHVwc3RyZWFtIHJlbGVhc2UsIGluY2x1ZGluZzoKLSAgICAtIEFkZCBOZXRzY2FwZSBTUEtJIGV4dGVuc2lvbnMuIChDbG9zZXM6ICMyMDUxMzIpCi0gICAgLSBBZGQgWDUwOS5zdWJqZWN0X25hbWVfaGFzaCwgWDUwOS5kaWdlc3QuIChDbG9zZXM6ICMyMDUxMzYpCi0gICAgLSBGaXggZnVsbCBuYW1lcyBvZiBleGNlcHRpb25zLiAoQ2xvc2VzOiAjMjUwMzQyKQotICAgIC0gQWRkIFNTTC5Db250ZXh0LnVzZV9jZXJ0aWZpY2F0ZV9jaGFpbl9maWxlLiAoQ2xvc2VzOiAjMjYwMTM0KQotICAqIERvY3MgYXJlIGJ1aWx0IHVwc3RyZWFtLCBzbyB0aGUgYnVpbGQtZGVwcyBoYXZlIGJlZW4gdHJpbW1lZC4KLSAgICBUaGlzIGFsc28gbWVhbnMgdGhhdCBIVE1MIGFuZCB0ZXh0IGRvY3VtZW50YXRpb24gYXJlIGJhY2suCi0gICogQnVtcGVkIHN0YW5kYXJkcy12ZXJzaW9uLgotICAqIFVzZSBkaF9weXRob24uCi0KLSAtLSBNYXJ0aW4gU2pvZ3JlbiA8c2pvZ3JlbkBkZWJpYW4ub3JnPiAgRnJpLCAxMyBBdWcgMjAwNCAyMDo1MzoyNyArMDIwMAotCi1weW9wZW5zc2wgKDAuNS4xLTQpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdwotCi0gICogRHJvcCBIVE1MIGFuZCB0ZXh0IGRvY3VtZW50YXRpb24gc2luY2UgbGF0ZXgyaHRtbCBtb3ZlZCB0byBub24tZnJlZS4KLSAgICBUaGlzIGlzIGEgdGVtcG9yYXJ5IHNvbHV0aW9uLCB1bnRpbCBJIGNhbiBoYWNrIG1raG93dG8gdG8gdXNlIHNvbWV0aGluZwotICAgIGVsc2UuIChDbG9zZXM6ICMyMjEzNDQpCi0gICogRml4IHRoZSBjb3B5cmlnaHQgZmlsZSB0byBtZW50aW9uIHRoZSBjb3B5cmlnaHQgaG9sZGVyLgotCi0gLS0gTWFydGluIFNqb2dyZW4gPHNqb2dyZW5AZGViaWFuLm9yZz4gIE1vbiwgMTUgRGVjIDIwMDMgMjA6MTY6MjUgKzAxMDAKLQotcHlvcGVuc3NsICgwLjUuMS0zKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIE1BTklGRVNULmluOiBJbmNsdWRlIHRoZSBzcmMvUkFUSU9OQUxFIGZpbGUuIChDbG9zZXM6ICMxOTc0MDEpCi0gICogZG9jL3B5T3BlblNTTC50ZXg6IEZpeCB0eXBvLiAoQ2xvc2VzOiAjMTk3NDM1KQotICAqIERyb3AgUHl0aG9uIDEuNSBhbmQgMi4xIHN1cHBvcnQuCi0gICogTWFrZSBweXRob24tcHlvcGVuc3NsIGRlcGVuZCBvbiBweXRob24yLjMtcHlvcGVuc3NsLCB3aGljaCBpcyBubyBsb25nZXIKLSAgICAiZXhwZXJpbWVudGFsIi4KLQotIC0tIE1hcnRpbiBTam9ncmVuIDxzam9ncmVuQGRlYmlhbi5vcmc+ICBNb24sIDExIEF1ZyAyMDAzIDE4OjM3OjA3ICswMjAwCi0KLXB5b3BlbnNzbCAoMC41LjEtMikgdW5zdGFibGU7IHVyZ2VuY3k9bG93Ci0KLSAgKiBNYWtlIHN1cmUgbmFtZXMgaW4gY29udHJvbCBhbmQgY2hhbmdlbG9nIG1hdGNoLiBTdHVwaWQgY2hhbmdlbG9ncywgYmxlaC4KLSAgKiBDaGFuZ2Ugc2VjdGlvbiB0byAncHl0aG9uJy4KLSAgKiBSZWJ1aWxkIHdpdGggb3BlbnNzbCAwLjkuNy4gKENsb3NlczogIzE4OTgyNikKLSAgKiBfX2luaXRfXy5weTogSW1wb3J0IHRzYWZlIG1vZHVsZS4KLSAgKiB0c2FmZS5weTogQWRkIHNvbWUgbWlzc2luZyBtZXRob2RzLgotICAqIGRlYmlhbi9jb3B5cmlnaHQ6IEZpeCBBdXRob3IocykgYm9pbGVycGxhdGUgdGhpbmd5IHRvIHNodXQgbGludGlhbiB1cC4KLQotIC0tIE1hcnRpbiBTam9ncmVuIDxzam9ncmVuQGRlYmlhbi5vcmc+ICBTdW4sIDIwIEFwciAyMDAzIDE3OjUwOjI0ICswMjAwCi0KLXB5b3BlbnNzbCAoMC41LjEtMSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93Ci0KLSAgKiBOZXcgdXBzdHJlYW0gdmVyc2lvbi4gKENsb3NlczogIzE1OTUzMCkKLSAgKiBBZGRlZCBhIHB5dGhvbi1weW9wZW5zc2wgZHVtbXkgcGFja2FnZS4KLSAgKiBBZGRlZCBhbiBleHBlcmltZW50YWwgcHl0aG9uMi4zLXB5b3BlbnNzbCBwYWNrYWdlLgotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIFN1biwgMjUgQXVnIDIwMDIgMTI6MDg6MzEgKzAyMDAKLQotcHlvcGVuc3NsICgwLjUtMSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93Ci0KLSAgKiBOZXcgdXBzdHJlYW0gdmVyc2lvbgotICAqIFN1cHBvcnQgZm9yIHB5dGhvbjEuNS4KLSAgKiBGaXggc3R1cGlkIG1pc3Rha2VzIGZvciBweXRob24gMS41IGFuZCBweXRob24gMi4xLgotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIFdlZCwgMjQgSnVsIDIwMDIgMDk6MDU6MjggKzAyMDAKLQotcHlvcGVuc3NsICgwLjQuMS04KSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIEFkZGVkIGV4YW1wbGVzIHRvIHB5b3BlbnNzbC1kb2MKLQotIC0tIE1hcnRpbiBTasO2Z3JlbiA8bWFydGluQHN0cmFrdC5jb20+ICBXZWQsICA1IEp1biAyMDAyIDE0OjU4OjA0ICswMjAwCi0KLXB5b3BlbnNzbCAoMC40LjEtNykgdW5zdGFibGU7IHVyZ2VuY3k9bG93Ci0KLSAgKiBUaGUgY3V0ZSBhcnJvdyBpY29ucyBpbiB0aGUgSFRNTCBkb2N1bWVudGF0aW9uIHNob3VsZCBiZSB0aGVyZSBub3cgdG9vLgotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIFRodSwgMzAgTWF5IDIwMDIgMDA6NTM6NDQgKzAyMDAKLQotcHlvcGVuc3NsICgwLjQuMS02KSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIENvbW1lbnRlZCBvdXQgc29tZSB1bnVzZWQgdGhpbmdzIGluIGRlYmlhbi9ydWxlcwotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIFdlZCwgMjkgTWF5IDIwMDIgMTE6MjA6MzMgKzAyMDAKLQotcHlvcGVuc3NsICgwLjQuMS01KSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIEFkZGluZyB0byB0aGUgYnVpbGQtZGVwZW5kcy4KLSAgKiBJbml0aWFsIHVwbG9hZCAoQ2xvc2VzOiAjMTQwNjg3KQotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIFNhdCwgIDYgQXByIDIwMDIgMTQ6MTU6NDkgKzAyMDAKLQotcHlvcGVuc3NsICgwLjQuMS00KSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIEZpeGVzIGluIHBhY2thZ2luZywgaXQgc2hvdWxkbid0IGJlIHJlZ2FyZGVkIGEgbmF0aXZlIHBhY2thZ2Ugbm93LgotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIFNhdCwgIDYgQXByIDIwMDIgMTE6MjY6MzkgKzAyMDAKLQotcHlvcGVuc3NsICgwLjQuMS0zKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIE1vdmVkIGZyb20gbm9uLVVTIHRvIG1haW4vZGV2ZWwKLQotIC0tIE1hcnRpbiBTasO2Z3JlbiA8bWFydGluQHN0cmFrdC5jb20+ICBGcmksICA1IEFwciAyMDAyIDIyOjQ0OjEwICswMjAwCi0KLXB5b3BlbnNzbCAoMC40LjEtMikgdW5zdGFibGU7IHVyZ2VuY3k9bG93Ci0KLSAgKiBGaXhlcyBpbiB0aGUgcGFja2FnaW5nLCBkZXBlbmRlbmNpZXMgYW5kIGJ1aWxkIGRlcGVuZGVuY2llcyBzaG91bGQgYmUKLSAgICBhbGwgcmlnaHQgbm93LgotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIFRodSwgMTAgSmFuIDIwMDIgMTA6MDA6MDYgKzAxMDAKLQotcHlvcGVuc3NsICgwLjQuMS0xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIE5ldyAidXBzdHJlYW0iIHJlbGVhc2UKLSAgKiBOZXcgcGFja2FnaW5nLCBweXRob24yLjEtcHlvcGVuc3NsLCBweXRob24yLjItcHlvcGVuc3NsLCBweW9wZW5zc2wtZG9jCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgTW9uLCAgNyBKYW4gMjAwMiAxNTozODo1MSArMDEwMAotCi1weW9wZW5zc2wgKDAuNC00KSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIEdycnIsIHRoaXMgdGltZSB0aGVuLi4uCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgRnJpLCAxNyBBdWcgMjAwMSAxNDo1MzoxOSArMDIwMAotCi1weW9wZW5zc2wgKDAuNC0zKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIEZpeGVkIGEgYmlnIG5hc3R5IGJ1ZwotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIEZyaSwgMTcgQXVnIDIwMDEgMTQ6MzM6MDYgKzAyMDAKLQotcHlvcGVuc3NsICgwLjQtMikgdW5zdGFibGU7IHVyZ2VuY3k9bG93Ci0KLSAgKiBGaXhlcwotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIEZyaSwgMTcgQXVnIDIwMDEgMTM6NTM6MTEgKzAyMDAKLQotcHlvcGVuc3NsICgwLjQtMSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93Ci0KLSAgKiBOZXcgInVwc3RyZWFtIiB2ZXJzaW9uCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgVGh1LCAgOSBBdWcgMjAwMSAxMjozMjo0NyArMDIwMAotCi1weW9wZW5zc2wgKDAuMy0zKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIFg1MDkgb2JqZWN0cyBub3cgaGFzIGEgaGFzX2V4cGlyZWQgbWV0aG9kCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgVHVlLCAgNyBBdWcgMjAwMSAxNDoxNjoxMyArMDIwMAotCi1weW9wZW5zc2wgKDAuMy0yKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIFg1MDlOYW1lIG9iamVjdHMgbm93IGhhcyBhIGNvbXBhcmUgbWV0aG9kIAotCi0gLS0gTWFydGluIFNqw7ZncmVuIDxtYXJ0aW5Ac3RyYWt0LmNvbT4gIFR1ZSwgIDcgQXVnIDIwMDEgMTA6NTM6NTggKzAyMDAKLQotcHlvcGVuc3NsICgwLjMtMSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93Ci0KLSAgKiBOZXcgInVwc3RyZWFtIiB2ZXJzaW9uCi0KLSAtLSBNYXJ0aW4gU2rDtmdyZW4gPG1hcnRpbkBzdHJha3QuY29tPiAgRnJpLCAgMyBBdWcgMjAwMSAxNjozNjoyNiArMDIwMAotCi1weW9wZW5zc2wgKDAuMS0xKSB1bnN0YWJsZTsgdXJnZW5jeT1sb3cKLQotICAqIEluaXRpYWwgdmVyc2lvbi4KLQotIC0tIEFuZGVycyBIYW1tYXJxdWlzdCA8aWtvQHN0cmFrdC5jb20+ICBNb24sIDIzIEp1bCAyMDAxIDE1OjE3OjM4ICswMjAwCmRpZmYgLS1naXQgYS9ndXRzeS9jb21wYXQgYi9ndXRzeS9jb21wYXQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlZDZmZjguLjAwMDAwMDAKLS0tIGEvZ3V0c3kvY29tcGF0CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNQpkaWZmIC0tZ2l0IGEvZ3V0c3kvY29udHJvbCBiL2d1dHN5L2NvbnRyb2wKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAyYzU0ZDcuLjAwMDAwMDAKLS0tIGEvZ3V0c3kvY29udHJvbAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLVNvdXJjZTogcHlvcGVuc3NsCi1TZWN0aW9uOiBweXRob24KLVByaW9yaXR5OiBvcHRpb25hbAotTWFpbnRhaW5lcjogVWJ1bnR1IENvcmUgZGV2ZWxvcGVycyA8dWJ1bnR1LWRldmVsLWRpc2N1c3NAbGlzdHMudWJ1bnR1LmNvbT4KLVhTQkMtT3JpZ2luYWwtTWFpbnRhaW5lcjogTWFydGluIFNqb2dyZW4gPHNqb2dyZW5AZGViaWFuLm9yZz4KLUJ1aWxkLURlcGVuZHM6IGRlYmhlbHBlciAoPj0gNS4wLjM3LjIpLCBweXRob24tYWxsLWRldiAoPj0gMi4zLjUtMTEpLCBweXRob24tYWxsLWRiZyAoPj0gMi41LTB1YnVudHU1KSwKLSBweXRob24tc3VwcG9ydCAoPj0gMC4zKSwgbGlic3NsLWRldiAoPj0gMC45LjgpCi1TdGFuZGFyZHMtVmVyc2lvbjogMy43LjIKLQotUGFja2FnZTogcHl0aG9uLXB5b3BlbnNzbAotQXJjaGl0ZWN0dXJlOiBhbnkKLURlcGVuZHM6ICR7cHl0aG9uOkRlcGVuZHN9LCAke3NobGliczpEZXBlbmRzfQotUHJvdmlkZXM6ICR7cHl0aG9uOlByb3ZpZGVzfQotU3VnZ2VzdHM6IHB5b3BlbnNzbC1kb2MsIHB5dGhvbi1weW9wZW5zc2wtZGJnCi1SZXBsYWNlczogcHl0aG9uMi1weW9wZW5zc2wsIHB5dGhvbjIuMy1weW9wZW5zc2wgKDw8IDAuNi0yLjMpLCBweXRob24yLjQtcHlvcGVuc3NsICg8PCAwLjYtMi4zKQotQ29uZmxpY3RzOiBweXRob24yLXB5b3BlbnNzbCwgcHl0aG9uMi4zLXB5b3BlbnNzbCAoPDwgMC42LTIuMyksIHB5dGhvbjIuNC1weW9wZW5zc2wgKDw8IDAuNi0yLjMpCi1YQi1QeXRob24tVmVyc2lvbjogJHtweXRob246VmVyc2lvbnN9Ci1EZXNjcmlwdGlvbjogUHl0aG9uIHdyYXBwZXIgYXJvdW5kIHRoZSBPcGVuU1NMIGxpYnJhcnkKLSBJbmNsdWRlczogU1NMIENvbnRleHQgb2JqZWN0cywgU1NMIENvbm5lY3Rpb24gb2JqZWN0cywgdXNpbmcKLSBQeXRob24gc29ja2V0cyBhcyB0cmFuc3BvcnQgbGF5ZXIuIFRoZSBDb25uZWN0aW9uIG9iamVjdAotIHdyYXBzIGFsbCB0aGUgc29ja2V0IG1ldGhvZHMgYW5kIGNhbiB0aGVyZWZvcmUgYmUgdXNlZAotIGludGVyY2hhbmdlYWJseS4KLQotUGFja2FnZTogcHl0aG9uLXB5b3BlbnNzbC1kYmcKLVByaW9yaXR5OiBleHRyYQotQXJjaGl0ZWN0dXJlOiBhbnkKLURlcGVuZHM6IHB5dGhvbi1weW9wZW5zc2wgKD0gJHtTb3VyY2UtVmVyc2lvbn0pLCBweXRob24tZGJnLCAke3NobGliczpEZXBlbmRzfQotRGVzY3JpcHRpb246IFB5dGhvbiB3cmFwcGVyIGFyb3VuZCB0aGUgT3BlblNTTCBsaWJyYXJ5IChkZWJ1ZyBleHRlbnNpb24pCi0gSW5jbHVkZXM6IFNTTCBDb250ZXh0IG9iamVjdHMsIFNTTCBDb25uZWN0aW9uIG9iamVjdHMsIHVzaW5nCi0gUHl0aG9uIHNvY2tldHMgYXMgdHJhbnNwb3J0IGxheWVyLiBUaGUgQ29ubmVjdGlvbiBvYmplY3QKLSB3cmFwcyBhbGwgdGhlIHNvY2tldCBtZXRob2RzIGFuZCBjYW4gdGhlcmVmb3JlIGJlIHVzZWQKLSBpbnRlcmNoYW5nZWFibHkuCi0KLVBhY2thZ2U6IHB5b3BlbnNzbC1kb2MKLVNlY3Rpb246IGRvYwotQXJjaGl0ZWN0dXJlOiBhbGwKLVN1Z2dlc3RzOiBweXRob24tcHlvcGVuc3NsCi1EZXNjcmlwdGlvbjogRG9jdW1lbnRhdGlvbiBmb3IgcHlPcGVuU1NMCi0gVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGRvY3VtZW50YXRpb24gZm9yIHRoZSBweU9wZW5TU0wgcGFja2FnZSwKLSBpbiBIVE1MLCBwb3N0c2NyaXB0IGFuZCB0ZXh0IGZvcm1hdHMuCmRpZmYgLS1naXQgYS9ndXRzeS9jb3B5cmlnaHQgYi9ndXRzeS9jb3B5cmlnaHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3MDUzOTkuLjAwMDAwMDAKLS0tIGEvZ3V0c3kvY29weXJpZ2h0CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhpcyBwYWNrYWdlIHdhcyBkZWJpYW5pemVkIGJ5IE1hcnRpbiBTasO2Z3JlbiA8c2pvZ3JlbkBkZWJpYW4ub3JnPiBvbgotTW9uLCAgNyBKYW4gMjAwMiAxNjoyNTo1OCArMDEwMC4KLQotSXQgd2FzIGRvd25sb2FkZWQgZnJvbSBweW9wZW5zc2wuc291cmNlZm9yZ2UubmV0Ci0KLVVwc3RyZWFtIEF1dGhvcjogTWFydGluIFNqw7ZncmVuIDxtc2pvZ3JlbkBnbWFpbC5jb20+Ci0KLUNvcHlyaWdodCAoQykgMjAwMS0yMDA0IEFCIFN0cmFrdAotCi1UaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi1tb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi1MaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLXZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi1idXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLUxlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLUEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICh2ZXJzaW9uIDIuMSkKLWNhbiBiZSBmb3VuZCBpbiAvdXNyL3NoYXJlL2NvbW1vbi1saWNlbnNlcy9MR1BMIG9uIERlYmlhbiBzeXN0ZW1zLAotb3IgaW4gdGhlIGZpbGUgQ09QWUlORyBpbiB0aGUgc291cmNlIHBhY2thZ2UuCmRpZmYgLS1naXQgYS9ndXRzeS9weWNvbXBhdCBiL2d1dHN5L3B5Y29tcGF0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwY2ZiZjA4Li4wMDAwMDAwCi0tLSBhL2d1dHN5L3B5Y29tcGF0CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMgpkaWZmIC0tZ2l0IGEvZ3V0c3kvcHlvcGVuc3NsLWRvYy5kb2MtYmFzZSBiL2d1dHN5L3B5b3BlbnNzbC1kb2MuZG9jLWJhc2UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1N2ViM2YuLjAwMDAwMDAKLS0tIGEvZ3V0c3kvcHlvcGVuc3NsLWRvYy5kb2MtYmFzZQorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLURvY3VtZW50OiBweW9wZW5zc2wtbWFudWFsCi1UaXRsZTogUHl0aG9uIE9wZW5TU0wgTWFudWFsCi1BdXRob3I6IE1hcnRpbiBTavZncmVuCi1BYnN0cmFjdDogTWFudWFsIGZvciB0aGUgcHlPcGVuU1NMIHBhY2thZ2UuCi0gIFRoaXMgbW9kdWxlIGlzIGEgcmF0aGVyIHRoaW4gd3JhcHBlciBhcm91bmQgKGEgc3Vic2V0IG9mKSB0aGUKLSAgT3BlblNTTCBsaWJyYXJ5LiBXaXRoIHRoaW4gd3JhcHBlciBJIG1lYW4gdGhhdCBhIGxvdCBvZiB0aGUKLSAgb2JqZWN0IG1ldGhvZHMgZG8gbm90aGluZyBtb3JlIHRoYW4gY2FsbGluZyBhIGNvcnJlc3BvbmRpbmcKLSAgZnVuY3Rpb24gaW4gdGhlIE9wZW5TU0wgbGlicmFyeS4KLVNlY3Rpb246IEFwcHMvcHJvZ3JhbW1pbmcKLQotRm9ybWF0OiBIVE1MCi1JbmRleDogL3Vzci9zaGFyZS9kb2MvcHlvcGVuc3NsLWRvYy9odG1sL2luZGV4Lmh0bWwKLUZpbGVzOiAvdXNyL3NoYXJlL2RvYy9weW9wZW5zc2wtZG9jL2h0bWwvKgpkaWZmIC0tZ2l0IGEvZ3V0c3kvcHlvcGVuc3NsLWRvYy5kb2NzIGIvZ3V0c3kvcHlvcGVuc3NsLWRvYy5kb2NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMTQ5ZGIxLi4wMDAwMDAwCi0tLSBhL2d1dHN5L3B5b3BlbnNzbC1kb2MuZG9jcworKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotZG9jL3B5T3BlblNTTC5wcwotZG9jL3B5T3BlblNTTC50eHQKLWRvYy9odG1sCi1kZWJpYW4vUkVBRE1FLkRlYmlhbgpkaWZmIC0tZ2l0IGEvZ3V0c3kvcHlvcGVuc3NsLWRvYy5leGFtcGxlcyBiL2d1dHN5L3B5b3BlbnNzbC1kb2MuZXhhbXBsZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzOTcyMWUuLjAwMDAwMDAKLS0tIGEvZ3V0c3kvcHlvcGVuc3NsLWRvYy5leGFtcGxlcworKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWV4YW1wbGVzLyoKZGlmZiAtLWdpdCBhL2d1dHN5L3B5dGhvbi1weW9wZW5zc2wuZG9jcyBiL2d1dHN5L3B5dGhvbi1weW9wZW5zc2wuZG9jcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTE3NDcyOC4uMDAwMDAwMAotLS0gYS9ndXRzeS9weXRob24tcHlvcGVuc3NsLmRvY3MKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1kZWJpYW4vUkVBRE1FLkRlYmlhbgpkaWZmIC0tZ2l0IGEvZ3V0c3kvcnVsZXMgYi9ndXRzeS9ydWxlcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZTg4NmI0OC4uMDAwMDAwMAotLS0gYS9ndXRzeS9ydWxlcworKysgL2Rldi9udWxsCkBAIC0xLDEwMiArMCwwIEBACi0jIS91c3IvYmluL21ha2UgLWYKLSMgU2FtcGxlIGRlYmlhbi9ydWxlcyB0aGF0IHVzZXMgZGViaGVscGVyLiAKLSMgR05VIGNvcHlyaWdodCAxOTk3IGJ5IEpvZXkgSGVzcy4KLSMKLSMgVGhpcyB2ZXJzaW9uIGlzIGZvciBhIGh5cG90aGV0aWNhbCBwYWNrYWdlIHRoYXQgYnVpbGRzIGFuCi0jIGFyY2hpdGVjdHVyZS1kZXBlbmRhbnQgcGFja2FnZSwgYXMgd2VsbCBhcyBhbiBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQKLSMgcGFja2FnZS4KLQotIyBVbmNvbW1lbnQgdGhpcyB0byB0dXJuIG9uIHZlcmJvc2UgbW9kZS4gCi0jZXhwb3J0IERIX1ZFUkJPU0U9MQotCi1QWVZFUlMgOj0gJChzaGVsbCBweXZlcnNpb25zIC1yKQotCi1idWlsZDogYnVpbGQtc3RhbXAKLWJ1aWxkLXN0YW1wOgotCWRoX3Rlc3RkaXIKLQotCXNldCAtZTsgXAotCWZvciBweSBpbiAkKFBZVkVSUyk7IGRvICBcCi0JICAgICQkcHkgc2V0dXAucHkgYnVpbGQ7IFwKLQkgICAgJCRweS1kYmcgc2V0dXAucHkgYnVpbGQ7IFwKLQlkb25lCi0KLQl0b3VjaCBidWlsZC1zdGFtcAotCi1jbGVhbjoKLQlkaF90ZXN0ZGlyCi0JZGhfdGVzdHJvb3QKLQlybSAtZiBidWlsZC1zdGFtcAotCi0JLWZvciBweSBpbiAkKFBZVkVSUyk7IGRvIFwKLQkgICAgJCRweSBzZXR1cC5weSBjbGVhbiAtLWFsbDsgXAotCSAgICAkJHB5LWRiZyBzZXR1cC5weSBjbGVhbiAtLWFsbDsgXAotCWRvbmUKLQlybSAtcmYgYnVpbGQgdmVyc2lvbi5weWMKLQotCWRoX2NsZWFuCi0KLWluc3RhbGw6IERIX09QVElPTlM9Ci1pbnN0YWxsOiBidWlsZAotCWRoX3Rlc3RkaXIKLQlkaF90ZXN0cm9vdAotCWRoX2NsZWFuIC1rCi0JZGhfaW5zdGFsbGRpcnMKLQotCXNldCAtZTsgXAotCWZvciBweSBpbiAkKFBZVkVSUyk7IGRvIFwKLQkgICAgZWNobyAiaW5zdGFsbGluZyBmb3IgJCRweSAuLi4iOyBcCi0JICAgICQkcHkgc2V0dXAucHkgaW5zdGFsbCAtLXJvb3Q9JChDVVJESVIpL2RlYmlhbi9weXRob24tcHlvcGVuc3NsOyBcCi0JICAgIGVjaG8gImluc3RhbGxpbmcgZm9yICQkcHktZGJnIC4uLiI7IFwKLQkgICAgJCRweS1kYmcgc2V0dXAucHkgaW5zdGFsbCAtLXJvb3Q9JChDVVJESVIpL2RlYmlhbi9weXRob24tcHlvcGVuc3NsLWRiZzsgXAotCWRvbmUKLQlmaW5kIGRlYmlhbi9weXRob24tcHlvcGVuc3NsLWRiZyAhIC10eXBlIGQgISAtbmFtZSAnKl9kLnNvJyB8IHhhcmdzIHJtIC1mCi0JZmluZCBkZWJpYW4vcHl0aG9uLXB5b3BlbnNzbC1kYmcgLWRlcHRoIC1lbXB0eSAtZXhlYyBybWRpciB7fSBcOwotCi0jIEJ1aWxkIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBmaWxlcyBoZXJlLgotIyBQYXNzIC1pIHRvIGFsbCBkZWJoZWxwZXIgY29tbWFuZHMgaW4gdGhpcyB0YXJnZXQgdG8gcmVkdWNlIGNsdXR0ZXIuCi1iaW5hcnktaW5kZXA6IGJ1aWxkIGluc3RhbGwKLQlkaF90ZXN0ZGlyIC1pCi0JZGhfdGVzdHJvb3QgLWkKLQlkaF9pbnN0YWxsZG9jcyAtaQotCWRoX2luc3RhbGxleGFtcGxlcyAtaQotIwlkaF9pbnN0YWxsbWVudSAtaQotIwlkaF9pbnN0YWxsY3JvbiAtaQotIwlkaF9pbnN0YWxsaW5mbyAtaQotCWRoX2luc3RhbGxjaGFuZ2Vsb2dzIENoYW5nZUxvZyAtaQotIwlkaF9saW5rIC1pCi0JZGhfY29tcHJlc3MgLWkKLQlkaF9maXhwZXJtcyAtaQotCWRoX3B5c3VwcG9ydCAtaQotCWRoX3B5dGhvbiAtaQotCWRoX2luc3RhbGxkZWIgLWkKLQlkaF9nZW5jb250cm9sIC1pCi0JZGhfbWQ1c3VtcyAtaQotCWRoX2J1aWxkZGViIC1pCi0KLSMgQnVpbGQgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBmaWxlcyBoZXJlLgotYmluYXJ5LWFyY2g6IGJ1aWxkIGluc3RhbGwKLQlkaF90ZXN0ZGlyIC1hCi0JZGhfdGVzdHJvb3QgLWEKLQlkaF9pbnN0YWxsZG9jcyAtYQotCWRoX2luc3RhbGxleGFtcGxlcyAtYQotIwlkaF9pbnN0YWxsbWVudSAtYQotIwlkaF9pbnN0YWxsY3JvbiAtYQotIwlkaF9pbnN0YWxsaW5mbyAtYQotCWRoX2luc3RhbGxjaGFuZ2Vsb2dzIENoYW5nZUxvZyAtYQotCWRoX3N0cmlwIC1wcHl0aG9uLXB5b3BlbnNzbCAtLWRiZy1wYWNrYWdlPXB5dGhvbi1weW9wZW5zc2wtZGJnCi0jCWRoX2xpbmsgLWEKLQlybSAtcmYgZGViaWFuL3B5dGhvbi1weW9wZW5zc2wtZGJnL3Vzci9zaGFyZS9kb2MvcHl0aG9uLXB5b3BlbnNzbC1kYmcKLQlsbiAtcyBweXRob24tcHlvcGVuc3NsIGRlYmlhbi9weXRob24tcHlvcGVuc3NsLWRiZy91c3Ivc2hhcmUvZG9jL3B5dGhvbi1weW9wZW5zc2wtZGJnCi0JZGhfY29tcHJlc3MgLWEKLQlkaF9maXhwZXJtcyAtYQotCWRoX3B5c3VwcG9ydCAtYQotCWRoX21ha2VzaGxpYnMgLWEKLQlkaF9pbnN0YWxsZGViIC1hCi0JZGhfc2hsaWJkZXBzIC1hCi0JZGhfZ2VuY29udHJvbCAtYQotCWRoX21kNXN1bXMgLWEKLQlkaF9idWlsZGRlYiAtYQotCi1iaW5hcnk6IGJpbmFyeS1pbmRlcCBiaW5hcnktYXJjaAotLlBIT05ZOiBidWlsZCBjbGVhbiBiaW5hcnktaW5kZXAgYmluYXJ5LWFyY2ggYmluYXJ5IGluc3RhbGwKZGlmZiAtLWdpdCBhL3NldHVwLmNmZyBiL3NldHVwLmNmZwppbmRleCA5MmU2NTY4Li5lYzEyMThkIDEwMDY0NAotLS0gYS9zZXR1cC5jZmcKKysrIGIvc2V0dXAuY2ZnCkBAIC0xLDYgKzEsOSBAQAogW3NkaXN0XQogZm9yY2VfbWFuaWZlc3Q9MQogCitbd2hlZWxdCit1bml2ZXJzYWwgPSAxCisKICMgYmRpc3RfcnBtIHNldHRpbmdzIGNvbnRyaWJ1dGVkIGJ5IE1paGFpIEliYW5lc2N1IDxtaXNhQHJlZGhhdC5jb20+CiBbYmRpc3RfcnBtXQogcmVsZWFzZSA9IDEKZGlmZiAtLWdpdCBhL3NldHVwLnB5IGIvc2V0dXAucHkKaW5kZXggN2Q1ZGNlNS4uZjEyNzE0ZCAxMDA3NTUKLS0tIGEvc2V0dXAucHkKKysrIGIvc2V0dXAucHkKQEAgLTExLDcgKzExLDcgQEAKIGZyb20gc2V0dXB0b29scyBpbXBvcnQgc2V0dXAKIAogIyBYWFggRGVkdXBsaWNhdGUgdGhpcwotX192ZXJzaW9uX18gPSAnMC4xMycKK19fdmVyc2lvbl9fID0gJzAuMTQnCiAKIHNldHVwKG5hbWU9J3B5T3BlblNTTCcsIHZlcnNpb249X192ZXJzaW9uX18sCiAgICAgICBwYWNrYWdlcyA9IFsnT3BlblNTTCddLApAQCAtMzQsNyArMzQsNyBAQAogICAgICAgbWFpbnRhaW5lcl9lbWFpbCA9ICdleGFya3VuQHR3aXN0ZWRtYXRyaXguY29tJywKICAgICAgIHVybCA9ICdodHRwczovL2dpdGh1Yi5jb20vcHljYS9weW9wZW5zc2wnLAogICAgICAgbGljZW5zZSA9ICdBUEwyJywKLSAgICAgIGluc3RhbGxfcmVxdWlyZXM9WyJjcnlwdG9ncmFwaHk+PTAuMSIsICJzaXg+PTEuNS4yIl0sCisgICAgICBpbnN0YWxsX3JlcXVpcmVzPVsiY3J5cHRvZ3JhcGh5Pj0wLjMiLCAic2l4Pj0xLjUuMiJdLAogICAgICAgbG9uZ19kZXNjcmlwdGlvbiA9ICIiIlwKIEhpZ2gtbGV2ZWwgd3JhcHBlciBhcm91bmQgYSBzdWJzZXQgb2YgdGhlIE9wZW5TU0wgbGlicmFyeSwgaW5jbHVkZXMKICAqIFNTTC5Db25uZWN0aW9uIG9iamVjdHMsIHdyYXBwaW5nIHRoZSBtZXRob2RzIG9mIFB5dGhvbidzIHBvcnRhYmxlCkBAIC00OSwxMSArNDksMjMgQEAKICAgICAgICAgJ09wZXJhdGluZyBTeXN0ZW0gOjogTWFjT1MgOjogTWFjT1MgWCcsCiAgICAgICAgICdPcGVyYXRpbmcgU3lzdGVtIDo6IE1pY3Jvc29mdCA6OiBXaW5kb3dzJywKICAgICAgICAgJ09wZXJhdGluZyBTeXN0ZW0gOjogUE9TSVgnLAotICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDIuNCcsCi0gICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi41JywKKworICAgICAgICAjIEdlbmVyYWwgY2xhc3NpZmllcnMgdG8gaW5kaWNhdGUgInRoaXMgcHJvamVjdCBzdXBwb3J0cyBQeXRob24gMiIgYW5kCisgICAgICAgICMgInRoaXMgcHJvamVjdCBzdXBwb3J0cyBQeXRob24gMyIuCisgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMicsCisgICAgICAgICMgSW4gcGFydGljdWxhciwgdGhpcyBtYWtlcyBweU9wZW5TU0wgc2hvdyB1cCBvbgorICAgICAgICAjIGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGk/OmFjdGlvbj1icm93c2UmYz01MzMmc2hvdz1hbGwgYW5kIGlzIGluCisgICAgICAgICMgYWNjb3JkYW5jZSB3aXRoCisgICAgICAgICMgaHR0cDovL2RvY3MucHl0aG9uLm9yZy8yL2hvd3RvL3B5cG9ydGluZy5odG1sI3VuaXZlcnNhbC1iaXRzLW9mLWFkdmljZQorICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMnLAorCisgICAgICAgICMgTW9yZSBzcGVjaWZpYyBjbGFzc2lmaWVycyB0byBpbmRpY2F0ZSBtb3JlIHByZWNpc2VseSB3aGljaCB2ZXJzaW9ucworICAgICAgICAjIG9mIHRob3NlIGxhbmd1YWdlcyB0aGUgcHJvamVjdCBzdXBwb3J0cy4KICAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyLjYnLAogICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDIuNycsCiAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy4yJywKKyAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjMnLAorCiAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogSW1wbGVtZW50YXRpb24gOjogQ1B5dGhvbicsCiAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogSW1wbGVtZW50YXRpb24gOjogUHlQeScsCiAgICAgICAgICdUb3BpYyA6OiBTZWN1cml0eSA6OiBDcnlwdG9ncmFwaHknLAo=