LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpDaGFuZ2VzOiBWNS40LjMgLT4gVjUuNC40CgoyMDExLTA2LTI0IDEyOjM4ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE1pc3NpbmcgY2hlY2sgZm9yIHJwbXRzLmgKCjIwMTEtMDYtMjQgMTI6MjAgIGR0czEyCgogICAqIGNvbmZpZ3VyZToKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMS0wNi0yNCAxMjowOCAgZHRzMTIKCiAgICogIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgIAogICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsLjMsIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDExLTA2LTI0IDEyOjAyICBkdHMxMgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsICAgCiAgICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTEtMDYtMjMgMTU6NDEgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFR3ZWFrIFJQTSBoYW5kbGluZyB0byB3b3JrIHdpdGggbGlicmFyeSB2ZXJzaW9uIDQuOQogICBCYXNlZCBvbiBhIHBhdGNoIGJ5IEphbiBTYWZyYW5lawoKMjAxMS0wNi0yMiAxNDoyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIFByb3ZpZGUgYSBmcmFtZXdvcmsgZm9yIHJlYWRpbmcgUlBNIHBhY2thZ2UgaW5mb3JtYXRpb24gZnJvbQogICBhIGNhY2hlIGRpcmVjdG9yeSAocmF0aGVyIHRoYW4gcXVlcnlpbmcgdGhlIFJQTWRiIGRpcmVjdGx5KS4KICAgCiAgIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcwogICBmdW5jdGlvbmFsaXR5LgoKMjAxMS0wNi0xNyAxOTowNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBVc2UgJXAgdG8gcHJpbnQgYSBwb2ludGVyIGluc3RlYWQgb2YgJWxkCgoyMDExLTA2LTAxIDE1OjU3ICBkdHMxMgoKICAgKiBDSEFOR0VTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTEtMDYtMDEgMTU6NDggIGR0czEyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDExLTA2LTAxIDE1OjQ3ICBkdHMxMgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTEtMDYtMDEgMTU6NDIgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgUmVpbnN0YXRlIGFuICJ1bnVzZWQiIGxhYmVsIHRoYXQgaXMgYWN0dWFsbHkgc3RpbGwgcmVxdWlyZWQuCiAgIChyZWZlcmVuY2VkIGluIGxpbmUgMjcxMCkKCjIwMTEtMDYtMDEgMTU6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIEZpeCB0eXBvCgoyMDExLTA2LTAxIDE1OjA4ICBkdHMxMgoKICAgKiAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgICAKICAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCAgCiAgICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWwuMywgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMTEtMDYtMDEgMTQ6NTEgIGR0czEyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywgICAKICAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMS0wNS0zMSAyMjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSCAzMDY2ODYyOiBmcm9tIGZoZXc6IGZpeCB0aGUgYWdlbnQgZm9yCiAgIGNvbXBhcmluZyB1bnNpZ25lZCBsYXJnZSBpbmRleGVzIG9mIHRoZSBkaXNrIGFuZCBleHRlbmQgdGFibGVzLgoKMjAxMS0wNS0zMSAxMjozMCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBoclNXUnVuUGF0aCBvZiBzd2FwcGVkLW91dCBwcm9jZXNzZXMgb24KICAgTGludXguCiAgIAogICBmZ2V0cygpIHJldHVybnMgTlVMTCBib3RoIHdoZW4gL3Byb2MvUElEL2NtZGxpbmUgaXMgZW1wdHkgKD0KICAgc3dhcHBlZCBvdXQpIGFuZCB3aGVuIHRoZSBwcm9jZXNzIGV4aXRlZCBhZnRlciBmb3BlbigpLCBzbyBjaGVjawogICAvcHJvYy9QSUQvc3RhdHVzIGluIGJvdGggY2FzZXMuCgoyMDExLTA1LTI2IDE2OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzI5OTM4NDogZml4IElORk9STXMgc28gdGhleSByZXRyeSBwcm9iaW5nCiAgIGZvciBhbiBlbmdpbmVJRC4KCjIwMTEtMDUtMjYgMTY6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFwcGxpZWQgKHJvdWdobHkpIHBhdGNoIDMyOTkzNzAgdG8gYXZvaWQgcmV3cml0aW5nIGV4aXN0aW5nCiAgIGF1dGhrZXkvcHJpdmtleS9ldGNzCgoyMDExLTA1LTI1IDA5OjIxICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogVXNlIHByb3BlciBmb3JtYXQgc3BlY2lmaWVyIGluIGRlYnVnIHN0YXRlbWVudHMKICAgZm9yIHByaW50aW5nIHZhbHVlcyBvZiB0eXBlICdvaWQnLgoKMjAxMS0wNS0yNCAxMjo1MSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmM6CgogICBBZGRlZCBOVUxMLWNoZWNrcyBhZnRlciBtYWxsb2MKCjIwMTEtMDUtMjIgMTk6MzQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUc6IDMzMDUxNTc6IEZpeCBpcEFkZHJlc3NQcmVmaXggaGFuZGxpbmcgb2YKICAgSVB2NiBhZGRyZXNzZXMKCjIwMTEtMDUtMjIgMTk6MDcgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IEJVRzogMzI5NTQwNzogRml4IGhhbmRsaW5nIG9mIHZvaWQgcG9pbnRlcgoKMjAxMS0wNS0yMiAxODo1NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzI2NDg1MjogUmVjb2duaXNlIG1pc3NpbmcgcmVwb3J0IHR5cGVzCiAgIChzbm1we1VuYXZhaWxhYmxlLFVua25vd259Q29udGV4dHMsc25tcFVua25vd25QRFVIYW5kbGVycykKCjIwMTEtMDUtMjAgMTU6NDEgIGR0czEyCgogICAqICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBTVEREb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzMjM0NzU0OiBFbnN1cmUgb2xkIGZfY3JlYXRlX2Zyb21fdHN0cmluZwogICBob29rIGlzIGluaXRpYWxpemVkIHRvIE5VTEwKCjIwMTEtMDUtMTkgMTk6NDYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB1c2UgI2lmZGVmIHJhdGhlciB0aGFuICNpZiBmb3IgZGVmaW5lIGNoZWNrcy4KCjIwMTEtMDUtMTkgMTc6MTkgIGR0czEyCgogICAqIG1hbi9zbm1wX2FwaS4zLmRlZiwgbWFuL3NubXBfc2Vzc19hcGkuMy5kZWY6CgogICBDSEFOR0VTOiBtYW46IEJVRzogMzE5MDcyNTogRG9jdW1lbnQgc25tcHssX3Nlc3N9c3luY2hfcmVzcG9uc2UKICAgYW5kIHNubXBfYXN5bmNfc2VuZAoKMjAxMS0wNS0xMiAwOTowMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgYSBtZW1vcnkgbGVhayBpbiBzbm1wX2ZyZWVfc2Vzc2lvbigpLgoKMjAxMS0wNS0xMiAwODoxMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSBOZXQtU05NUAogICAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSSBpcE5ldFRvTWVkaWFUYWJsZS4KCjIwMTEtMDUtMTIgMDg6MDggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSBOZXQtU05NUAogICAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSSBpZlRhYmxlLgoKMjAxMS0wNS0xMiAwNzozMyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkgbGVhayBpbiB0aGUgTmV0LVNOTVAKICAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkgaXBBZGRyVGFibGUuCgoyMDExLTA1LTEyIDA2OjU0ICBidmFzc2NoZQoKICAgKiBDaGFuZ2VMb2c6CgogICBEb2N1bWVudGF0aW9uIC8gc291cmNlIGNvZGUgY29tbWVudCBzcGVsbGluZyBmaXg6IGV4aXRlbnQgLT4KICAgZXhpc3RlbnQuCgoyMDExLTA1LTEwIDE1OjAyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIE1pbkdXOiBhdm9pZCB0aGF0IGdjYyBjb21wbGFpbnMgYWJvdXQgcGFzaW5nIGEgKGNoYXIgKikgYXJndW1lbnQKICAgd2hpbGUgKHVuc2lnbmVkIGNoYXIgKikgaXMgZXhwZWN0ZWQuCgoyMDExLTA1LTA5IDIwOjUyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgVXNlIHN5bWJvbGljIG5hbWVkIGZvciBpZlR5cGUgdmFsdWVzCgoyMDExLTA1LTA4IDIwOjAxICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Byb2JlSGlzdG9yeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmM6CgogICBGaXggd2FybmluZ3MgYW5kIGRhdGEgZm9ybWF0IGZvciBEYXRlQW5kVGltZSBvYmplY3RzLgogICBUaGVzZSBtb2R1bGVzIHdvcmssIGJ1dDoKICAgLSBUaGV5IGFyZSBMaW51eCBvbmx5CiAgIC0gUm93cyBtdXN0IGJlIGNyZWF0ZWQgd2l0aCByb3dTdGF0dXMgY3JlYXRlQW5kV2FpdCBiZWZvcmUgdGhleQogICBhcmUgcG9wdWxhdGVkCiAgIC0gQWdlbnQgbXVzdCBydW4gYXMgcm9vdAogICAtIEFnZW50IGlzIGJsb2NrZWQgd2hpbGUgdGVzdHMgcnVuCiAgIC0gRGF0YSBmb3JtYXQgZm9yIEluZXRBZGRyZXNzIG9iamVjdHMgaXMgd3JvbmcuIEl0IGlzIEFTQ0lJLCBub3QKICAgYmluYXJ5CiAgIChtYWtpbmcgaXQgZWFzaWVyIHRvIHVzZSBmcm9tIHRoZSBjb21tYW5kIGxpbmUsIGJ1dCAuLi4pCgoyMDExLTA1LTA3IDE1OjIyICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFJlbW92ZWQgYW4gdW51c2VkIGxhYmVsIGZyb20gcGVybC9TTk1QL1NOTVAueHMuCgoyMDExLTA1LTA2IDIxOjMyICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmg6CgogICBORVdTOiBQQVRDSCAzMTk4NzgxOiBmcm9tIGZlbm5lcjogR2V0IGRpc21hbi9waW5nIGFuZAogICBkaXNtYW4vdHJhY2Vyb3V0ZSB0byBhdCBsZWFzdCBjb21waWxlCgoyMDExLTA1LTA2IDE3OjQ2ICBkdHMxMgoKICAgKiBDSEFOR0VTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTEtMDUtMDYgMTc6MzcgIGR0czEyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDExLTA1LTA2IDE3OjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMS0wNS0wNiAxNzoyMiAgZHRzMTIKCiAgICogIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgIAogICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsLjMsIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDExLTA1LTA2IDE3OjE3ICBkdHMxMgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsICAgCiAgICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTEtMDUtMDYgMTM6NTAgIGR0czEyCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIEZpeCBpbmNvbXBsZXRlIHVuaW5zdGFsbCBjb25maWd1cmF0aW9uOgogICAtIGJyb2tlbiByZW1vdmFsIG9mIE1pY3Jvc29mdCBETEwKICAgLSByZW1vdmUgYXNzb3J0ZWQgbmV3IE1JQnMgYW5kIGhlYWRlciBmaWxlcwoKMjAxMS0wNS0wNSAwNjowNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90b29scy5jLCB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgQ0hBTkdFUzogTWluR1c6IE1hZGUgcmVncmVzc2lvbiB0ZXN0IG91dHB1dCBpbmRlcGVuZGVudCBvZiB0aGUKICAgTmV0LVNOTVAgdmFyaWFibGVzIGRlZmluZWQgaW4gdGhlIFdpbmRvd3MgcmVnaXN0cnkuIFNvbWUgdGVzdHMKICAgdGhhdCBmYWlsZWQgcHJldmlvdXNseSBhZnRlciB0aGUgTmV0LVNOTVAgYmluYXJpZXMgKE1TVkMgYnVpbGQpCiAgIGhhZCBiZWVuIGluc3RhbGxlZCBkbyBub3cgcGFzcy4KCjIwMTEtMDUtMDMgMTU6MjkgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgQ0hBTkdFUzogV2luMzI6IFBBVENIOiAzMjkzODQyOiBFbGltaW5hdGUgcmVnaXN0cnkgYXJndW1lbnQgbGltaXQKICAgb2YgMTI3IGNoYXJhY3RlcnMgKHRoaXMgbGltaXRhdGlvbiB3YXMgcmVwb3J0ZWQgYnkgU3lsdmFpbiBEZXJ5KS4KCjIwMTEtMDUtMDIgMTE6MjIgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBXaW4zMjogaGVhZGVyIGZpbGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBjYW4gbm93CiAgIGJlIHVzZWQgaW4gdGhlIE1pbkdXIGVudmlyb25tZW50LgoKMjAxMS0wNC0yOSAxMToxNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBTcGVsbGluZyBhbmQgZ3JhbW1hciBmaXhlcyBmb3IgdGhlIHNvdXJjZSBjb2RlIGNvbW1lbnRzIGluCiAgIHNubXBsaWIvd2luc2VydmljZS5jLgoKMjAxMS0wNC0yNyAyMToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgRG9uJ3QgZnJlZSB0aGUgaWZYVGFibGUgcm93IGZvdW5kIG9uIGxvYWQgZmFpbHVyZSBhcyB3ZSBkb24ndCBvd24KICAgaXQKCjIwMTEtMDQtMTUgMTM6NDIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDMxODMwMDA6IEZpeCBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lECiAgIHByZWZpeCBsZW5ndGgKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMzE4Mjk4NTogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQKICAgcHJlZml4IGxlbmd0aAoKMjAxMS0wNC0xNCAyMTozMSAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0hFUzogMzE4NTA4NTogRml4IHNlZ2ZhdWx0IG9uIDY0LWJpdCBzeXN0ZW1zCgoyMDExLTA0LTE0IDIxOjEwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMTc1MzIzOiBGaXggaGFuZGxpbmcgb2YgJ3doaWxlIChmYWxzZSknCiAgIGJsb2NrcwoKMjAxMS0wNC0xNCAyMDo1MiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIwNDg4MzogRml4IGhhbmRsaW5nIG9mIG5vbi10YWJsZQogICBvYmplY3RzIG5hbWVkIGZvb1RhYmxlCgoyMDExLTA0LTE0IDIwOjQ0ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjExNDg0OiBTdXBwb3J0IGVudW1lcmF0aW9ucyBpbgogICBub3RpZmljYXRpb24gdmFyYmluZHMKCjIwMTEtMDQtMTIgMjA6MDEgIG5iYQoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBBZGQgbWlzc2luZyBzeXN0ZW0gb2lkcyB0byBtaWIKCjIwMTEtMDQtMTIgMTk6NTMgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgRml4IGZvciBnYXJiYWdlIG91dHB1dCB3aGVuIGFnZW50IHByZXNlbnRzIG1vcmUgY29sdW1ucyBpbiBidWxrCiAgIHJlc3BvbnNlIHRoYW4gb3VyIGxvY2FsIE1JQiBmaWxlIHNwZWNpZmllZC4KCjIwMTEtMDQtMTIgMTk6NTAgIG5iYQoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgRml4IHdyb25nIG5hbWUgZm9yIGNvbmZpZyB0b2tlbiAnZG9Ob3RSZXRhaW5Ob3RpZmljYXRpb25Mb2dzJwoKMjAxMS0wMy0xNSAxMjozNyAgZHRzMTIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDExLTAzLTE1IDEwOjU3ICBkdHMxMgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMS0wMy0xNSAxMDo1NiAgZHRzMTIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDExLTAzLTE1IDEwOjQyICBkdHMxMgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsICAgCiAgICAgIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9PSUQvT0lELnBtLCAgIAogICAgICBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLCAgIAogICAgICBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgcGVybC9hZ2VudC9hZ2VudC5wbSwgICAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDExLTAzLTE1IDEwOjQxICBkdHMxMgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMS0wMy0xMiAwNjo1OSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogcmVhbGxvYytpbml0IGluc3RlYWQgb2YgY2FsbG9jCiAgIAogICBpbnNwaXJlZCBieSBwYXRjaCAzMTk1NTMyIGZyb20gU3RlcGhlbiBIZW1taW5nZXIKCjIwMTEtMDMtMTIgMDU6NDcgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogb3B0aW1pemF0aW9ucyBmb3IgbGFyZ2Ugcm91dGUgdGFibGVzIGZyb20KICAgU3RlcGhlbiBIZW1taW5nZXIKICAgCiAgIGFwcGxpZWQgcGFydHMgMS0zIG9mIDQgZnJvbSBoaW0gKG1zZ3MgdG8gY29kZXJzIG9uIDIvMjgvMTE7CiAgIHN1YmplY3QKICAgaXAtZm9yd2FyZC1taWIgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzOyBwYXJ0IDQgbmVlZHMgbW9yZSB3b3JrCgoyMDExLTAzLTExIDExOjExICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHJhY2UgY29uZGl0aW9uIGluIGhyU1dSdW5UYWJsZQogICBUcmVhdCB0aGUgcmVhZHMgZnJvbSAvcHJvYy88cGlkPi8qIGNhcmVmdWx5LCBwcm9jZXNzZXMgY2FuIGV4aXQKICAgaW4gdGhlIG1pZGRsZSBvZiBwcm9jZXNzaW5nLgoKMjAxMS0wMy0xMCAxNTo1MSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTc4Mzg5OiBGaXggaW5jb25zaXN0ZW50IGhhbmRsaW5nIG9mIFRaCiAgIG9mZnNldHMKCjIwMTEtMDMtMDQgMTU6MDkgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCAndHJ1bmNhdGluZyBpbnRlZ2VyIHZhbHVlID4gMzIgYml0cycgaW4KICAgVUNELVNOTVAtTUlCOjpzeXN0ZW1TdGF0cyBvbiBMaW51eAoKMjAxMS0wMi0yNSAxMjo1NSAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBGaXggdGhlIGNvbW1hbmQgdG8gY3JlYXRlIGEgbmV3IFNWTiB0YWcgbGluZQogICAKICAgKEhhdmluZyBicm91Z2h0IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIDUuNS54IGJyYW5jaAogICBpbnRvIGxpbmUgd2l0aCB0aGUgb3RoZXIgYnJhbmNoZXMsIHRoZSBwcmV2aW91cwogICBjb21tYW5kIGlzIG5vdyB3cm9uZyBmb3IgKmFsbCogYnJhbmNoZXMsIHJhdGhlcgogICB0aGFuIGp1c3QgbW9zdCBvZiB0aGVtISkKCjIwMTEtMDItMjUgMTE6MTAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBBdm9pZCBhIHBvc3NpYmxlIGNyYXNoIGlmIHRoZSBlbmdpbmVJRCBpcyBub3QgYXZhaWxhYmxlIG9yIHNldC4KCjIwMTEtMDItMjMgMDk6MzYgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgRml4IGJ1ZyAzMTE4NjMxOiBzbm1wdGFibGUgc2VnZmF1bHRzIGlmIGluZGV4IGNvbnRhaW5zIDoKICAgY2hhcmFjdGVyCgoyMDExLTAyLTIzIDA5OjMwICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDguaDoKCiAgIEZyZWVCU0QgOCBzdXBwb3J0CgoyMDExLTAyLTIxIDE5OjA4ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIFVwZGF0ZWQgY29tbWVudCBhYm91dCB3aGVyZSBtYWtlcmVsZWFzZSBjb21lcyBmcm9tIChub3cgZ2l0aHViKQoKMjAxMS0wMi0yMSAxMToxNCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBCYWNrcG9ydGVkIHIxOTQ1NCBmcm9tIHRoZSB0cnVuayBhbmQgdGhlcmVieSBmaXhlZCB0aGlzIFZhbGdyaW5kCiAgIGNvbXBsYWludDoKICAgCiAgID09NjI4Nz09IEludmFsaWQgcmVhZCBvZiBzaXplIDgKICAgPT02Mjg3PT0gYXQgMHg0RTZDQ0FFOiBuZXRzbm1wX2RlbGV0ZV90YWJsZV9kYXRhX3NldAogICAodGFibGVfZGF0YXNldC5jOjE4NikKICAgPT02Mjg3PT0gYnkgMHg1MTIxOTc0OiBzaHV0ZG93bl9ub3RpZmljYXRpb25fbG9nCiAgIChub3RpZmljYXRpb25fbG9nLmM6NTY0KQogICA9PTYyODc9PSBieSAweDUxOTQxREI6IF9zaHV0ZG93bl9taWJfbW9kdWxlcwogICAobWliX21vZHVsZV9zaHV0ZG93bi5oOjMyKQogICA9PTYyODc9PSBieSAweDU0QjE0RjQ6IHNubXBfY2FsbF9jYWxsYmFja3MgKGNhbGxiYWNrLmM6MzQ0KQogICA9PTYyODc9PSBieSAweDU0OEI1OEI6IHNubXBfc2h1dGRvd24gKHNubXBfYXBpLmM6ODYyKQogICA9PTYyODc9PSBieSAweDQwNEMwNjogbWFpbiAoc25tcGQuYzoxMDYwKQogICA9PTYyODc9PSBBZGRyZXNzIDB4Njg2ZjMxOCBpcyAyNCBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDQwCiAgIGZyZWUnZAogICA9PTYyODc9PSBhdCAweDRBMDYwRTA6IGZyZWUgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MzY2KQogICA9PTYyODc9PSBieSAweDRFNkFCMTY6IG5ldHNubXBfdGFibGVfZGF0YV9kZWxldGVfdGFibGUKICAgKHRhYmxlX2RhdGEuYzozMjApCiAgID09NjI4Nz09IGJ5IDB4NEU2Q0M4NDogbmV0c25tcF9kZWxldGVfdGFibGVfZGF0YV9zZXQKICAgKHRhYmxlX2RhdGFzZXQuYzoxODApCiAgID09NjI4Nz09IGJ5IDB4NTEyMTk3NDogc2h1dGRvd25fbm90aWZpY2F0aW9uX2xvZwogICAobm90aWZpY2F0aW9uX2xvZy5jOjU2NCkKICAgPT02Mjg3PT0gYnkgMHg1MTk0MURCOiBfc2h1dGRvd25fbWliX21vZHVsZXMKICAgKG1pYl9tb2R1bGVfc2h1dGRvd24uaDozMikKICAgPT02Mjg3PT0gYnkgMHg1NEIxNEY0OiBzbm1wX2NhbGxfY2FsbGJhY2tzIChjYWxsYmFjay5jOjM0NCkKICAgPT02Mjg3PT0gYnkgMHg1NDhCNThCOiBzbm1wX3NodXRkb3duIChzbm1wX2FwaS5jOjg2MikKICAgPT02Mjg3PT0gYnkgMHg0MDRDMDY6IG1haW4gKHNubXBkLmM6MTA2MCkKCjIwMTEtMDItMjAgMDk6MjQgIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMxODU1Mjg6IHNodXRkb3duX21hc3Rlcl9hZ2VudCBkb2Vzbid0IGNsb3NlCiAgIFVEUCBzb2NrZXQKICAgKEZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gcjE5NTExLikKCjIwMTEtMDItMTUgMjI6MjQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgUHJvcGVybHkgc2F2ZSBlbnRyaWVzIGZvciBOZXRCU0QgYW5kIERyYWdvbkZseQoKMjAxMS0wMi0xNSAyMjoxOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jOgoKICAgcmVtb3ZlIHJlZHVuZGFudCBpbmNsdWRlcwoKMjAxMS0wMi0xNSAyMTo0OCAgbmJhCgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJlcnVuIGF1dG9oZWFkZXIvYXV0b2NvbmYKCjIwMTEtMDItMTUgMjE6MTEgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2Lmg6CgogICBGaXggSVB2NiBUQ1AgYW5kIFVEUCB0YWJsZXMsICpCU0Qgc3VwcG9ydAoKMjAxMS0wMi0xNSAyMDo0NSAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBSZXN1bHRzVGFibGUuYzoKCiAgIEtpbGwgY29tcGlsZXIgd2FybmluZ3MKCjIwMTEtMDItMTUgMjA6NDQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOgoKICAgRmlsdGVyIElQdjYgZW50cmllcyBmcm9tIElQdjQgdGFibGUKCjIwMTEtMDItMTQgMTQ6MzggIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBkLmM6CgogICBGaXhlZCBhIE1pbkdXLXNwZWNpZmljIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDExLTAyLTEzIDE2OjI4ICBtYWdmcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBDSEFOR0VTOiBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHN0YXRpYyBhcHBsaWNhdGlvbnMgdXNpbmcKICAgbmV0LXNubXAtY29uZmlnIGFuZCB0aGUgLSpsaWJzIGZsYWdzIG9uY2UgbW9yZS4KCjIwMTEtMDItMTAgMTU6MTMgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzMTY1ODc4OiBDYXRjaCBidWZmZXIgb3ZlcnJ1biBvbgogICA2NC1iaXQgc3lzdGVtcwoKMjAxMS0wMi0xMCAxNTowNiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzE1MjQxMjogSGFuZGxlIChhbmQgcmVwb3J0KSBwcm9ibGVtcwogICByZWFkaW5nIC9wcm9jL3Ztc3RhdAoKMjAxMS0wMi0wOCAxNzo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHMsIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICBDSEFOR0VTOiBwZXJsOiBwYXRjaCBmcm9tIE1hcnRpbiBCdWNrOiBkb24ndCBhbHdheXMgb3BlbiBzdGRlcnIKICAgYXMgdGhlIGNhbGxzIHRvIHNubXBfbG9nIGFscmVhZHkgZG8gdGhpcyBhbmQgaXQgbWVzc2VzIHVwIHRoZQogICBhZ2VudCB3aGVuIGVtYmVkZGVkCgoyMDExLTAyLTA4IDE3OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogRml4IGEgc3RybGVuIGNhbGN1bGF0aW9uIGFzIHBvaW50ZWQgb3V0IGJ5CiAgIEtvbnN0YW50aW4gQmF5ZGFyb3YKCjIwMTEtMDItMDMgMjI6NDIgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzMTcxODc4OiBVc2luZyBTTk1QdjMgY29udGV4dCBkb2VzIG5vdAogICB3b3JrCgoyMDExLTAyLTAxIDA5OjQxICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHRoZSBhZ2VudCB3cml0aW5nICdsb29rcyBsaWtlIGEgNjRiaXQgd3JhcCwKICAgYnV0IHByZXYhPW5ldycgaW4gc3lzbG9nIHdoZW4gY29tcHV0aW5nIGlwU3lzdGVtU3RhdHMKICAgCiAgIFdpdGhvdXQgdGhlIG1lbWNweSwgcHJldl92YWxzLT5zdGF0cyBhbmQgbmV3X3ZhbHMtPnN0YXRzIGNvdWxkCiAgIGdldCBkaWZmZXJlbnQsCiAgIHdoaWNoIGNvdWxkIG11Y2ggbXVjaCBsYXRlciAod2hlbiBhIGNvdW50ZXIgZ2V0cyBiaWdnZXIgdGhhbiAzMgogICBiaXRzKSByZXN1bHQKICAgaW4gJ3ByZXYhPW5ldycgbWVzc2FnZSBpbiBzeXNsb2cuIFR5cGljYWxseSB0aGlzIGhhcHBlbnMgYWZ0ZXIKICAgbG9uZyB0aW1lIG9mCiAgIHVwdGltZSBhbmQgaXQgaXMgdmVyeSBoYXJkIHRvIHJlcHJvZHVjZS4KCjIwMTEtMDEtMzEgMjI6MzkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYzoKCiAgIGFkZHByb3RvdHlwZXMgYW5kIHJlbW92ZSB1bnVzZWQgdmFycwoKMjAxMS0wMS0zMSAyMjozNyAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBWYWx1ZVRhYmxlLmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIGNvbnN0IGp1Z2dsaW5nIHRvIHJlbW92ZSB3YXJuaW5ncwoKMjAxMS0wMS0zMSAyMjozMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgZGlza2lvIGZvciBkcmFnb25mbHkKCjIwMTEtMDEtMzEgMjI6MjggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tpbmZvLmM6CgogICBwcm9wZXJseSBuYW1lIGluaXRhbGl6ZXIgZnVuY3Rpb24gZm9yIGNwdV9raW5mbwoKMjAxMS0wMS0zMCAwMTowNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMxNTE4OTc6IGZkIGxlYWsgdy8gL3Byb2MvcGFydGl0aW9ucwogICByZWFkIGluIGRpc2tpbwoKMjAxMS0wMS0yNyAwOTozNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFmdGVyIHRlbiB5ZWFycyBpbnRlbnNpdmUgdXNlLCBhbiAiZXhwZXJpbWVudGFsIgogICBmZWF0dXJlIGNhbiBwcm9iYWJseSBiZSByZWxlYXNlZCBmb3IgZ2VuZXJhbCB1c2UuCgoyMDExLTAxLTI2IDE2OjUwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENIQU5HRVM6IG1pYjJjOiBtYWtlIHRoZSBtaWIyYyBmb3JlYWNoIHJhbmdlcyB3b3JrIGFzIGFkdmVydGlzZWQKICAgaW4gdGhlIGNvbW1lbnRzLgoKMjAxMS0wMS0yNiAwOToxMiAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCByYXJlIHJhY2UgY29uZGl0aW9uIHdoZW4gY291bnRpbmcgcHJvY2Vzc2VzCiAgIGZvciBVQ0QtU05NUC1NSUI6OnByVGFibGUKICAgCiAgIFRoZSBYWCBwcm9jZXNzIGNhbiBleGl0IGFmdGVyIGZvcGVuKC9wcm9jL1hYL3N0YXR1cykgYW5kIGJlZm9yZQogICBmZ2V0cygpIGZyb20gaXQuIHNubXBkIHNob3VsZCBjb250aW51ZSB3aXRoIG90aGVyIHByb2Nlc3NlcyBhbmQKICAgbm90IHRvIHN0b3AuCgoyMDExLTAxLTE5IDA2OjIwICBuYmEKCiAgICogYWNjb25maWcuaDoKCiAgIERlZmluZSBEUkFHT05GTFlJRAoKMjAxMS0wMS0xNCAxMjoyOCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZyb20gUm9iZXJ0IFN0b3J5OiBmaXhlZCBhZGRpbmcgbmV3IGFkZHJlc3NlcyB0bwogICBpcEFkZHJlc3NUYWJsZQogICAKICAgTG9uZyB0aW1lIGFnbywgdGhlcmUgd2FzIGEgYnVncmVwb3J0WzFdIHJlZ2FyZGluZyBpcEFkZHJlc3NUYWJsZQogICBvbgogICBuZXQtc25tcC1jb2RlcnMgbGlzdCBhbmQgcnN0b3J5J3MgZXhwZXJpbWVudGFsIHBhdGNoIHdpdGhvdXQgYW55CiAgIGZlZWRiYWNrLgogICBOb3cgSSd2ZSBnb3QgZmV3IGNvbXBsYWludHMgdGhhdCBTTk1QIFNFVCBvbiBpcEFkZHJlc3NUYWJsZQogICBwcm9kdWNlcyB0aGUKICAgc2FtZSBlcnJvcnMgYW5kIGd1ZXNzIHdoYXQsIHRoZSBwYXRjaCBmaXhlcyB0aGVtLgogICAKICAgWzFdOgogICBodHRwOi8vc291cmNlZm9yZ2UubmV0L21haWxhcmNoaXZlL2ZvcnVtLnBocD90aHJlYWRfbmFtZT0yMDA2MDkyMDEzNDkzNS4zNWIzNmVkNiU0MGRldi5mdXR6Lm9yZyZmb3J1bV9uYW1lPW5ldC1zbm1wLWNvZGVycwoKMjAxMS0wMS0xNCAwNjoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgcmVtb3ZlIGNvbXBsZXRlbHkgdXNlbGVzcyBhbmQgbm9uc2Vuc2ljYWwgY29kZQoKMjAxMS0wMS0xMyAxNTo1NiAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBFbnN1cmUgcmVsZWFzZXMgYXJlIGluc3RhbGxlZCB0byB0aGUgY29ycmVjdCBwYXRoIHdpdGhpbiB0aGUKICAgL3RhZ3MgU1ZOIHRyZWUKCjIwMTEtMDEtMTMgMTU6MTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9uZXRic2QuYzoKCiAgIFJlbW92ZSBDKysgY29tbWVudHMKCjIwMTEtMDEtMTMgMTI6MTQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ29uZmlndXJlIGZpeGVzIGZvciBEcmFnb25GbHkgc3VwcG9ydAoKMjAxMS0wMS0xMyAxMjowNCAgZHRzMTIKCiAgICogIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RyYWdvbmZseS5oOgoKICAgQ29kZSBmaXhlcyBmb3IgRHJhZ29uRmx5IHN1cHBvcnQKCjIwMTEtMDEtMTMgMTE6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbmV0YnNkLmM6CgogICBGaXggdHlwbwoKMjAxMS0wMS0xMiAxOToyMCAgYnZhc3NjaGUKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy91c21ESFBhcmFtZXRlcnMuYzoKCiAgIEdldCByaWQgb2YgYSBjb21waWxlciB3YXJuaW5nIGluCiAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy91c21ESFBhcmFtZXRlcnMuYy4KCjIwMTEtMDEtMTIgMTk6MDQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIChmb3JtYXQgc3BlY2lmaWNhdGlvbiBtaXNtYXRjaCkgdGhhdCB3YXMKICAgaW50cm9kdWNlZAogICBpbiByMTk4MDggKCJzbm1wZDogUEFUQ0hFUzogMjk3NTI1NDogQXZvaWQgY2FsbGJhY2sgcmUtdXNlIG9mCiAgIGNsb3NlZCBzZXNzaW9ucyIpLgoKMjAxMS0wMS0xMiAxNTowMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXA6IHBhdGNoOiAzMDk2NzI1OiBzeXNPUlRhYmxlIHJlZ2lzdGF0aW9uIGZvcgogICBub3RpZmljYXRpb24gbG9nIG1pYgogICAKICAgb3JpZ2luYWwgcGF0Y2ggZml4ZWQgc2V2ZXJhbCBpc3N1ZXMsIG90aGVyIHBhcnRzIGFwcGxpZWQgZWFybGllcgoKMjAxMS0wMS0xMiAxNDozNyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IE1JQi1zcGVjaWZpYyBsZWFrLWF0LWV4aXQgZml4ZXMuCiAgIAogICBiYWNrcG9ydCBhcHBsaWNhYmxlIHBhcnRzIG9mIHIxOTUzMyBmcm9tIHRydW5rCgoyMDExLTAxLTExIDE2OjA0ICBkdHMxMgoKICAgKiBvdi9VQ0QtZmllbGRzLCBvdi9vaWRfdG9fc3ltLmluLCBvdi9vaWRfdG9fdHlwZS5pbjoKCiAgIFJlY29nbmlzZSBBZ2VudCBPSUQgZm9yIERyYWdvbkZseSBzeXN0ZW1zIChhbmQgZ2VuZXJhbCB0aWR5aW5nCiAgIHVwKQogICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KICAgCiAgIFFuOiBTaG91bGQgdGhlc2UgYmUgdXBkYXRlZCB0byByZWZlciB0byBOZXQtU05NUCAocmF0aGVyIHRoYW4KICAgVUNEKT8KCjIwMTEtMDEtMTEgMTY6MDEgIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBtaWJzL05FVC1TTk1QLVRDLnR4dCwgICAKICAgICAgbWlicy9VQ0QtU05NUC1NSUIudHh0LCBzZWRzY3JpcHQuaW46CgogICBEZWZpbmUgQWdlbnQgT0lEIGZvciBEcmFnb25GbHkgc3lzdGVtcwogICAoYW5kIGdlbmVyYWwgdGlkeWluZyB1cCkKICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTExIDE1OjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgTmV0QlNEIERyYWdvbkZseSBzdXBwb3J0IGZvciBVRFAgJiBUQ1AgdGFibGVzCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0xMSAxNDo0MSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa2luZm8uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgQ0hBTkdFUzogTmV0QlNEOiBEcmFnb25GbHkgc3VwcG9ydAogICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMTEgMTQ6MzYgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTmV0QlNEL0RyYWdvbkZseSAnc3RydWN0IGlmbmV0JyByZXF1aXJlcyBLRVJORUwsIGJ1dCBub3QgX0tFUk5FTAogICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KICAgKEkgaG9wZSBJJ3ZlIGdvdCB0aGlzIG9uZSByaWdodCEpCgoyMDExLTAxLTExIDE0OjE0ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgcmV2ZXJ0IFBBVENIIDMwNTM0MzY6IHRjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2VzcyBpbnZhbGlkCiAgIG1lbW9yeSBhY2Nlc3MKICAgCiAgIHRoZSBidWcgdGhpcyBpcyBmaXhpbmcgd2FzIGludHJvZHVjZWQgaW4gcjE3NzE5LCBhbmQgZml4ZWQgaW4KICAgcjE3ODYxLgoKMjAxMS0wMS0xMSAxMzoyMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgUmVhbGx5IGhhbmRsZSBzeXN0ZW1zIHdpdGggJ3N0cnVjdCB0aW1lc3BlYyBpZm5ldC5pZl9sYXN0Y2hhbmdlJwogICAobWlzc2luZyBlbGVtZW50IGZyb20gU1ZOIHJldmlzaW9uIDE5ODQxKQoKMjAxMS0wMS0xMSAxMjoyNCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGRpdGlvbmFsIGhlYWRlcnMgd2hlbiB0ZXN0aW5nIGZvciBJUHY2IGhlYWRlcnMKICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTExIDEyOjE0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBNaXNzaW5nIHR5cGUgdW5kZXIgZGFyd2luCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0xMSAxMjowMSAgZHRzMTIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgSGFuZGxlIHN5c3RlbXMgd2l0aCAnc3RydWN0IHRpbWVzcGVjIGlmbmV0LmlmX2xhc3RjaGFuZ2UnIChyYXRoZXIKICAgdGhhbiBzdHJ1Y3QgdGltZXZhbCkKICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTExIDExOjI3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmg6CgogICBQdWxsIGluIGtlcm5lbF9uZXRic2QgbW9kdWxlIHdoZW4gcmVxdWlyZWQKICAgW0Jhc2VkIG9uIGZpeCBmcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0xMSAxMDozNiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX25ldGJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbmV0YnNkLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oOgoKICAgQ0hBTkdFUzogTmV0QlNEOiBSZXRyaWV2ZSBNSUItSUkgbmV0d29yayBzdGF0aXN0aWNzIHZpYSBzeXNjdGwKICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTEwIDE2OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jOgoKICAgQWRkIHN1cHBvcnQgZm9yIGRhcndpbgogICAoVGhlIHBhdGNoIGZyb20gdGhlIE5ldEJTRCBhcmNoaXZlIGFwcGVhcnMgdG8gYmUgZXNzZW50aWFsbHkgdGhlCiAgIHNhbWUgYXMgdGhlIGVxdWl2YWxlbnQgY29kZSBmcm9tIHRoZSBPcGVuQlNEIHBhdGNoIGFyY2hpdmUpCgoyMDExLTAxLTEwIDE2OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYzoKCiAgIEFkZCBzdXBwb3J0IGZvciBkYXJ3aW4KICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTEwIDE0OjU1ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9uZXRic2QuYzoKCiAgIENIQU5HRVM6IE5ldEJTRDogVXBkYXRlIG1lbW9yeSBhbmQgQ1BVIHN0YXRpc3RpY3MgaGFuZGxpbmcKICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTEwIDE0OjIyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIEZpeCBkaXZpZGUtYnktemVybyBlcnJvciBpbiBDUFUgcGVyZm9ybWFuY2Ugc3RhdGlzdGljcwogICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMDkgMTk6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBBbWVuZCBob3cgbXVsdGktQ1BVIHN0YXRpc3RpY3MgYXJlIHJldHJlaXZlZCB1c2luZyBzeXNjdGwgb24KICAgT3BlbkJTRCBzeXN0ZW1zCiAgIChpZiB0aGlzIGJsb2NrIHdhcyBhY3RpdmUsIHdoaWNoIGl0IGlzbid0LCBidXQgdGhhdCdzIG5vdAogICBpbXBvcnRhbnQgcmlnaHQgbm90KQogICBbQmFzZWQgb24gT3BlbkJTRCBwYXRjaCBhcmNoaXZlLCBhbWVuZGVkIChwcm9iYWJseSB3cm9uZ2x5KSBieQogICBEVFNdCgoyMDExLTAxLTA5IDE4OjEzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmM6CgogICBzeXNjdGwgdGFrZXMgYSAnc2l6ZV90JyB2YXJpYWJsZSBmb3IgdGhlIHNpemUgcGFyYW1ldGVyCgoyMDExLTAxLTA5IDE4OjExICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9ubGlzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X25ldGJzZC5jOgoKICAgc3lzY3RsIHRha2VzIGEgJ3NpemVfdCcgdmFyaWFibGUgZm9yIHRoZSBzaXplIHBhcmFtZXRlcgoKMjAxMS0wMS0wOCAwMDo0NyAgbWFnZnIKCiAgICogYWNjb25maWcuaDoKCiAgIFVwZGF0ZSBhY2NvbmZpZy5oIHdpdGggY2hhbmdlcyBmcm9tIHIxOTgxOS4KICAgUmVydW4gYXV0b2hlYWRlci4KCjIwMTEtMDEtMDcgMjA6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmM6CgogICBDSEFOR0VTOiBPcGVuQlNEOiBTdXBwb3J0IHVwZGF0aW5nIHRoZSByb3V0aW5nIHRhYmxlCiAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMDcgMjA6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBTZXQgJ25leHQnIGZpZWxkIGZvciB1ZHAgZW50cnkgbGlua2VkIGxpc3Qgb24gT3BlbkJTRDQKICAgW0Zyb20gT3BlbkJTRCBwYXRjaCBhcmNoaXZlXQogICAKICAgVGhpcyBzaG91bGQgcHJvYmFibHkgYmUgc2V0IGluIDxuZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oPgoKMjAxMS0wMS0wNyAyMDoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmM6CgogICBVc2UgYSBzdWl0YWJsZSBjb25zdGFudCBmb3IgQ1dEIGJ1ZmZlciBzaXplCiAgIFtCYXNlZCBvbiBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA3IDIwOjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBNb3ZlIGdsb2JhbCB2YXJpYWJsZSBpbnRvIHRoZSBtZXRob2Qgd2hlcmUgaXQncyB1c2VkLgogICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA3IDE2OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jOgoKICAgSGFuZGxlIHN5c3RlbXMgd2l0aG91dCBJRk1fVE9LRU4KICAgW0Zyb20gT3BlbkJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxNDozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmM6CgogICBVcGRhdGUgcmV0cmlldmFsIG9mIGNhY2hlIHVzYWdlIHN0YXRpc3RpY3Mgb24gRnJlZUJTRAogICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA3IDE0OjIwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgSW5jcmVhc2UgbWF4aW11bSBzaXplIG9mIGV4ZWN1dGUgb3V0cHV0IGNhY2hlCiAgIFtGcm9tIEZyZWVCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMDcgMTQ6MDkgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuYzoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgaW5jbHVkZSBkaXJlY3RpdmVzCiAgIFtGcm9tIEZyZWVCU0QgcGF0Y2hlcyBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxMzo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIEhhbmRsZSBzeXN0ZW1zIHdoZXJlIFJURl9MTElORk8gaXMgbm90IGRlZmluZWQKICAgW0Zyb20gRnJlZUJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxMzo0MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgSW5jbHVkZSB6ZnMgbW91bnQgcG9pbnRzIGZvciBkaXNrIHJlcG9ydHMgdW5kZXIgRnJlZUJTRAogICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA3IDEzOjM0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmg6CgogICBQcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUtaW5jbHVzaW9uCiAgIFtGcm9tIEZyZWVCU0QgcGF0Y2hlcyBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxMzoyNCAgZHRzMTIKCiAgICogIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIva2V5dG9vbHMuYywgIAogICAgICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsICAgCiAgICAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIEluY2x1ZGUgPHVuaXN0ZC5oPgogICBbRnJvbSBCU0QgcGF0Y2hlcyBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxMzoyMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQXZvaWQgY2FsbGJhY2sgcmUtdXNlIG9mIGNsb3NlZCBzZXNzaW9ucy4KICAgKFBhcnQgb2YgcGF0Y2ggIzI5NzUyNTQgLSBzZWUgU1ZOIHJldmlzaW9uIDE5ODA4KQoKMjAxMS0wMS0wNyAxMjo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgRnJlZUJTRCB1c2VzIGEgc2xpZ2h0bHkgZGlmZmVyZW50IG5hbWluZyBzY2hlbWUgZm9yIHN0cnVjdCBpZnJlcQogICBbRnJvbSBGcmVlQlNEIHBhdGNoZXMgYXJjaGl2ZV0KCjIwMTEtMDEtMDcgMTI6MjIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICBFbnN1cmUgVENQIHRhYmxlIGluZm9ybWF0aW9uIGlzIGxvYWRlZCBiZWZvcmUgY291bnRpbmcKICAgY29ubmVjdGlvbnMKICAgW0Zyb20gRnJlZUJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0wNiAxOTozNSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIEZpeCBkb2N1bWVudGF0aW9uIGJ1ZyBwb2ludGVkIG91dCBpbiBjcGFuIGJ1ZyAjNTI2MTgKCjIwMTEtMDEtMDYgMTQ6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDI5NzUyNTQ6IEF2b2lkIGNhbGxiYWNrIHJlLXVzZSBvZiBjbG9zZWQKICAgc2Vzc2lvbnMKICAgCiAgIFFuOiBTaG91bGQgdGhpcyBhbHNvIGJlIGFwcGxpZWQgd2hlbiBtYWluIHNlc3Npb24gaXMgTlVMTD8KCjIwMTEtMDEtMDYgMTM6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgRml4IG1pc2xlYWRpbmcgaW5kZW50YXRpb24KICAgCiAgIFFuOiBTaG91bGQgdGhpcyBjYWxsICdzdWJhZ2VudF9zdGFydHVwJyByYXRoZXIgdGhhbgogICAnYWdlbnR4X3Jlb3Blbl9zZXNzaW9uJz8KICAgUW46IFdoeSBkb2Vzbid0IHRoaXMgYXR0ZW1wdCB0byByZS1vcGVuIHRoZSBzZXNzaW9uIGlmIGl0IHdhcwogICBvcmlnaW5hbGx5IE5VTEw/CgoyMDExLTAxLTA2IDEyOjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMjk0MTgxMTogSGFuZGxlIHN1Y2Nlc3NmdWwgcmVxdWVzdHMgd2l0aAogICByZXFJRCAwCgoyMDExLTAxLTA1IDE2OjMxICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgVXNlIHRoZSBhcHByb3ByaWF0ZSBBUEkgY2FsbCBmb3IgcmVwb3J0aW5nIGNvbmZpZyBlcnJvcnMuCiAgICgiRG9uJ3QgYmUgc28gaW1wYXRpZW50LCBEYXZlLi4uLiIpCgoyMDExLTAxLTA1IDE0OjA2ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOiAzMTM0MzIzOiBGaXggY3Jhc2ggd2hlbiBjb21wYXJpbmcgaW52YWxpZAogICBPSURzCgoyMDExLTAxLTA1IDE0OjA0ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBCVUdTOiAzMTUxMjU0OiBGaXggY3Jhc2ggd2l0aCBpbnZhbGlkCiAgIHRyYXBoYW5kbGUgZGlyZWN0aXZlCgoyMDExLTAxLTA0IDE4OjI0ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgQ29weXJpZ2h0IHVwZGF0ZSBmb3IgMjAxMQoKMjAxMC0xMi0yOSAwMTozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBORVdTOiBzbm1wZDogUGF0Y2ggMzE0MTQ2MjogZnJvbSBmZW5uZXI6IGZpeCBhZ2VudHggc3ViYWdlbnQKICAgaXNzdWVzIHdpdGggbXVsdGlwbGUtb2JqZWN0IHJlcXVlc3RzCgoyMDEwLTEyLTI5IDAxOjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIE5FV1M6IHNubXBkOiBQYXRjaCBmcm9tIE5pZWxzIHRvIGZpeCBWQUNNIHBlcnNpc3RhbnQgc3RvcmFnZS4KCjIwMTAtMTItMjEgMTE6MjkgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgQnJpbmcgYWxsIHZlcnNpb25zIG9mIG1ha2VyZWxlYXNlLnhtbCBpbnRvIGxpbmUKCjIwMTAtMTItMTAgMTU6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgc25tcGxpYi9zbm1wdXNtLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUGF0Y2ggZnJvbSBDbGF1cyBLbGVpbiB0byBmaXggZW5naW5laWQgZ2VuZXJhdGlvbgogICBvbiBvdXRnb2luZyB2MyB0cmFwcyBmcm9tIHRoZSBhZ2VudAoKMjAxMC0xMi0wOCAxMzoxNyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBhZGQgbmV3bHkgY3JlYXRlZC9kZXN0cm95ZWQgaW50ZXJmYWNlcyB0bwogICBpcHY2SWZUYWJsZQogICAKICAgVGhlIGxpc3Qgb2YgaW50ZXJmYWNlcyB3YXMgbmV2ZXIgcmVmcmVzaGVkLCBub3cgaXQgaXMgcmVsb2FkZWQKICAgZXZlcnkgdGltZSB0aGUKICAgdGFibGUgaXMgYWNjZXNzZWQuIEkndmUgYWxzbyBmaXhlZCBhIG1lbW9yeSBsZWFrIGFuZCBvcHRpbWl6ZWQKICAgdGhlIGxvYWRpbmcKICAgb2YgdGhlIGxpc3QgYSBiaXQuCgoyMDEwLTEyLTA2IDE2OjI0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICBmaXggY29udGV4dEVuZ2luZUlEcyBmb3Igb3V0Z29pbmcgaW5mb3JtcyBmcm9tIHNubXBpbmZvcm0gdG8gYmUKICAgdGhlIGxvY2FsIGVuZ2luZUlECgoyMDEwLTEyLTAxIDAxOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgdXNlIG5ldHNubXBfYXNzZXJ0IGluc3RlYWQgb2YgYXNzZXJ0CgoyMDEwLTExLTMwIDIzOjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IHBhdGNoIDMwNDkwMjk6IGZyb20gZmVubmVjOiBmaXggYSBtZW1vcnkgbGVhayB3aXRoCiAgIHNubXAgYnVsa3dhbGtzCgoyMDEwLTExLTMwIDIzOjE2ICBoYXJkYWtlcgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNTM0MzY6IGZyb206IHRha2V2b3M6IGZpeDoKICAgdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzIGludmFsaWQgbWVtb3J5IGFjY2VzcwoKMjAxMC0xMS0zMCAyMzoxMiAgaGFyZGFrZXIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNTM0MzY6IGZyb206IHRha2V2b3M6IGZpeDoKICAgdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2VzcyBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MKCjIwMTAtMTEtMzAgMDQ6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgQ0hBTkdFUzogUEFUQ0ggMzA3NDkxODogZnJvbSB3ZWl6aGVuZzogY2hlY2sgZm9yIENPTlRBSU5FUl9JTlNFUlQKICAgZmFpbHVyZXMgYW5kIHJlYWN0IGFwcHJvcHJpYXRlbHkgdG8gYXZvaWQgbWVtb3J5IGxlYWtzCgoyMDEwLTExLTI5IDIyOjE0ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogdXNlIGNhY2hlLXVuaXF1ZSBpZCBpbnN0ZWFkIG9mIGhhbmRsZXIgbmFtZSBmb3IKICAgc2hhcmVkCiAgIGNhY2hlIHJlbG9hZCBwcm90ZWN0aW9uCgoyMDEwLTExLTE4IDAzOjQ5ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IGRvbid0IHNlY29uZC1ndWVzcyBjYWNoZSBoYW5kbGVyCiAgIAogICAod2F2ZXMgaGFuZCkgdGhpcyBpcyBub3QgdGhlIGZ1bmN0aW9uIHlvdSBhcmUgbG9va2luZyBmb3IuCiAgIAogICBuZXRzbm1wX2NhY2hlX2lzX3ZhbGlkKCkgaXMgbm90IG1lYW50IGZvciBtaWIgbW9kdWxlcwoKMjAxMC0xMS0xNSAxNDoxNSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBidWdzIGluIGFzbl9wYXJzZV91bnNpZ25lZF9pbnQ2NCgpLAogICBhc25fYnVpbGRfdW5zaWduZWRfaW50NjQoKSwgYXNuX3BhcnNlX3NpZ25lZF9pbnQ2NCgpIGFuZAogICBhc25fYnVpbGRfc2lnbmVkX2ludDY0KCkuIE1vc3QgYnV0IG5vdCBhbGwgb2YgdGhlc2UgYnVncyB3ZXJlCiAgIHNwZWNpZmljIHRvIDY0LWJpdCBzeXN0ZW1zLiBGaXhlcyBidWcgIzMwOTMxOTkuCgoyMDEwLTExLTE1IDE0OjEyICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaDoKCiAgIEJ1aWxkcyBhZ2Fpbi4KCjIwMTAtMTEtMTEgMjI6NDggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBGaXggcjE5NjM2OiBUcmFwT0lEIGlzIG5vdCB0aGUgZmlyc3QgdmFyYmluZCBpbiB0aGUgY29udmVydGVkIHYyCiAgIHRyYXAKCjIwMTAtMTEtMTAgMTI6MzEgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogQlVHOiAzMTAyOTA0OiBBbGwgTmV0LVNOTVAgQyBzb3VyY2UgZmlsZXMgYXJlIG5vdwogICBjb21waWxlZCB3aXRoIC1mbm8tc3QKICAgcmljdC1hbGlhc2luZywgYXQgbGVhc3QgaWYgdGhlIGNvbmZpZ3VyZWQgY29tcGlsZXIgc3VwcG9ydHMgdGhpcwogICBmbGFnLgoKMjAxMC0xMS0wOSAxMzo0NyAgYnZhc3NjaGUKCiAgICogdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgQ0hBTkdFUzogdGVzdGluZzogVGVzdCBUMDMwIGRvZXMgbm93IHBhc3Mgb24gTWluR1cuCgoyMDEwLTExLTA4IDA4OjQ2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgV2luMzI6IGFnZW50OiBlbGltaW5hdGVkIGNhc3RzIGZyb20vdG8gaW50IGZvciB0aHJlYWQgaGFuZGxlcy4KCjIwMTAtMTEtMDcgMjE6MTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDIxMTk3MjU6IEZpeCBza2lwTkZTSW5Ib3N0UmVzb3VyY2VzCiAgIGhhbmRsaW5nIG9mIGhyU3RvcmFnZVRhYmxlCgoyMDEwLTExLTA3IDIxOjE0ICBtYWdmcgoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZiBzdHJkdXAgaW4KICAgbmV0c25tcF9jcmVhdGVfZGF0YV9saXN0IGFuZCBmYWlsIGlmIHN0cmR1cCBmYWlscy4KCjIwMTAtMTEtMDcgMTk6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzMDk2NzI1OiBEb24ndCByZWdpc3RlciB2MVRyYXAgY2FsbGJhY2ssCiAgIGlmIFNOTVB2MSBpcyBub3Qgc3VwcG9ydGVkCgoyMDEwLTExLTA3IDE5OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMTg0MDIzMDogRG9uJ3QgaW5jbHVkZSB0aGUgaW5kZXggb2JqZWN0IGFzCiAgIChwc2V1ZG8tKWFjY2Vzc2libGUgY29sdW1uLgoKMjAxMC0xMS0wNyAxOTozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMwOTY3MjU6IEluY2x1ZGUgU05NUHYxIHRyYXAgT0lEcyBpbgogICBubG1Mb2dOb3RpZmljYXRpb25JRCBjb2x1bW4KCjIwMTAtMTEtMDcgMTk6MjYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgU3VwcG9ydCBob2xlcyBpbiBkYXRhc2V0IHRhYmxlcy4KICAgKFBhcnRpYWwgYmFjay1wb3J0IG9mIHJldmlzaW9uIDE3OTI5KQoKMjAxMC0xMS0wNyAxOToyMiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgRml4IGEgdHlwbywgYW5kIGRyb3AgYSBjb3VwbGUgb2YgcmVkdW5kYW50IHZhcmlhYmxlcy4KCjIwMTAtMTEtMDcgMTY6MzUgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZm9yY2UgYSA7IGF0IHRoZSBlbmQgb2YgdGhlIHN0YXRpY19hc3NlcnQKICAgbWFjcm8uCgoyMDEwLTExLTA3IDE2OjIxICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBCYWNrcG9ydCBvZiByZXZpc2lvbiAxNzU5NgogICBUcml2aWFsIHdhcm5pbmcgZml4ZXMKCjIwMTAtMTEtMDUgMDg6NDggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkZWQgbWFjcm8gbmV0c25tcF9zdGF0aWNfYXNzZXJ0KCkuCgoyMDEwLTExLTA0IDEzOjA5ICBkdHMxMgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBDSEFOR0VTOiBMaW51eDogUEFUQ0hFUzogMzA4MzAyNzogRml4IFJQTSBzcGVjIGZpbGUgdG8gc3VwcG9ydAogICBDZW50T1MKCjIwMTAtMTEtMDQgMDc6MDkgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIEJhY2twb3J0ZWQgcjE5NjAyLCB3aGljaCBmaXhlcyB0aGUgZG91YmxlIGZyZWUgYXQgZXhpdCB0aGF0IHdhcwogICBpbnRyb2R1Y2VkIGJ5IHIxOTQ2Mi4KCjIwMTAtMTEtMDMgMTQ6NTkgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFZFUlNJT04gaXMgYWdhaW4gYSBudW1iZXIgaW5zdGVhZCBvZiBhIEMKICAgZXhwcmVzc2lvbiwgc3VjaCB0aGF0IHRoZSBQZXJsIG1vZHVsZXMgYnVpbGQgYWdhaW4uCgoyMDEwLTExLTAzIDE0OjQ3ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmg6CgogICBGaXhlZCBhbiBpbmNvcnJlY3QgZmlsZSBoZWFkZXIgKGEgc291cmNlIGNvZGUgY29tbWVudCkuCgoyMDEwLTExLTAxIDE2OjUwICBkdHMxMgoKICAgKiBtYW4vdmFyaWFibGVzLjUuZGVmOgoKICAgUmV3b3JrIGRlc2NyaXB0aW9uIG9mIE9JRCBuYW1lIGhhbmRsaW5nIHRvIGJlCiAgIG5vdCBxdWl0ZSBzbyBpbmNyZWRpYmx5IG91dCBvZiBkYXRlLgoKMjAxMC0xMS0wMSAxNjo0NyAgZHRzMTIKCiAgICogbWFuL3NubXBnZXQuMS5kZWYsIG1hbi9zbm1wZ2V0bmV4dC4xLmRlZjoKCiAgIERvY3VtZW50IC1DZiBpbiB0aGUgdHdvIG1hbiBwYWdlcyBzZXBhcmF0ZWx5LgoKMjAxMC0xMS0wMSAxNjozMCAgZHRzMTIKCiAgICogIG1hbi9zbm1wX3Nlc3NfYXBpLjMuZGVmLCBtYW4vc25tcGJ1bGtnZXQuMS5kZWYsICAgCiAgICAgIG1hbi9zbm1wYnVsa3dhbGsuMS5kZWYsIG1hbi9zbm1wZ2V0LjEuZGVmLCBtYW4vc25tcGdldG5leHQuMS5kZWYsIAogICAgICAgIG1hbi9zbm1wc2V0LjEuZGVmLCBtYW4vc25tcHRyYXAuMS5kZWYsIG1hbi9zbm1wdHJhcGQuOC5kZWYsICAgCiAgICAgIG1hbi9zbm1wd2Fsay4xLmRlZjoKCiAgIFJlbW92ZSBDTVUgY29weXJpZ2h0IG5vdGljZSBmcm9tIG1hbiBwYWdlcyB0aGF0CiAgIHdlcmUgbm90IGluaGVyaXRlZCBmcm9tIENNVS1TTk1QCiAgIChhbmQgcXVhbGlmeSB0aGUgY29weXJpZ2h0IGZvciB0aG9zZSB0aGF0IHdlcmUpLgoKMjAxMC0xMS0wMSAxMzo1NSAgZHRzMTIKCiAgICogIG1hbi9lbmNvZGVfa2V5Y2hhbmdlLjEuZGVmLCBtYW4vZml4cHJvYy4xLmRlZiwgICAKICAgICAgbWFuL21pYjJjLXVwZGF0ZS4xLmRlZiwgbWFuL21pYjJjLjEuZGVmLCBtYW4vbWliX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldC1zbm1wLWNvbmZpZy4xLmRlZiwgbWFuL3JlYWRfY29uZmlnLjMuZGVmLCAgIAogICAgICBtYW4vc25tcC5jb25mLjUuZGVmLCBtYW4vc25tcF9hZ2VudF9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9zbm1wX2FsYXJtLjMuZGVmLCBtYW4vc25tcF9hcGkuMy5kZWYsIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgIAogICAgICAgbWFuL3NubXBfc2Vzc19hcGkuMy5kZWYsIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vc25tcGJ1bGtnZXQuMS5kZWYsIG1hbi9zbm1wYnVsa3dhbGsuMS5kZWYsIG1hbi9zbm1wY21kLjEuZGVmLCAKICAgICAgICBtYW4vc25tcGNvbmYuMS5kZWYsIG1hbi9zbm1wZC44LmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYsICAgCiAgICAgIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZiwgbWFuL3NubXBkLmludGVybmFsLjUuZGVmLCAgIAogICAgICBtYW4vc25tcGRlbHRhLjEuZGVmLCBtYW4vc25tcGRmLjEuZGVmLCBtYW4vc25tcGdldC4xLmRlZiwgICAKICAgICAgbWFuL3NubXBnZXRuZXh0LjEuZGVmLCBtYW4vc25tcG5ldHN0YXQuMS5kZWYsIG1hbi9zbm1wc2V0LjEuZGVmLCAgCiAgICAgICBtYW4vc25tcHN0YXR1cy4xLmRlZiwgbWFuL3NubXB0YWJsZS4xLmRlZiwgbWFuL3NubXB0ZXN0LjEuZGVmLCAgIAogICAgICBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwgbWFuL3NubXB0cmFwLjEuZGVmLCBtYW4vc25tcHRyYXBkLjguZGVmLCAKICAgICAgICBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wdXNtLjEuZGVmLCBtYW4vc25tcHZhY20uMS5kZWYsCiAgICAgICAgIG1hbi9zbm1wd2Fsay4xLmRlZiwgbWFuL3RrbWliLjEuZGVmLCBtYW4vdHJhcHRvZW1haWwuMS5kZWYsICAgCiAgICAgIG1hbi92YXJpYWJsZXMuNS5kZWY6CgogICBTdXBwcmVzcyBmb3JjaW5nIG9mICJCZXJrZWxleSBEaXN0cmlidXRpb24iIGZvb3RlcgogICAoQWxsb3dzIE5ldC1TTk1QIHZlcnNpb24gaW5mb3JtYXRpb24gdG8gYmUgZGlzcGxheWVkIGluIHRoZSBtYW4KICAgcGFnZSkKCjIwMTAtMTEtMDEgMTM6NDIgIGR0czEyCgogICAqICBtYW4vbWliMmMuMS5kZWYsIG1hbi9taWJfYXBpLjMuZGVmLCBtYW4vcmVhZF9jb25maWcuMy5kZWYsICAgCiAgICAgIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wX2FnZW50X2FwaS4zLmRlZiwgICAKICAgICAgbWFuL3NubXBfYWxhcm0uMy5kZWYsIG1hbi9zbm1wX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL3NubXBfc2Vzc19hcGkuMy5kZWYsIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vc25tcGJ1bGtnZXQuMS5kZWYsIG1hbi9zbm1wYnVsa3dhbGsuMS5kZWYsIG1hbi9zbm1wY21kLjEuZGVmLCAKICAgICAgICBtYW4vc25tcGNvbmYuMS5kZWYsIG1hbi9zbm1wZC44LmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYsICAgCiAgICAgIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZiwgbWFuL3NubXBkLmludGVybmFsLjUuZGVmLCAgIAogICAgICBtYW4vc25tcGdldC4xLmRlZiwgbWFuL3NubXBnZXRuZXh0LjEuZGVmLCBtYW4vc25tcG5ldHN0YXQuMS5kZWYsICAKICAgICAgIG1hbi9zbm1wc2V0LjEuZGVmLCBtYW4vc25tcHRhYmxlLjEuZGVmLCBtYW4vc25tcHRlc3QuMS5kZWYsICAgCiAgICAgIG1hbi9zbm1wdHJhbnNsYXRlLjEuZGVmLCBtYW4vc25tcHRyYXAuMS5kZWYsIG1hbi9zbm1wdHJhcGQuOC5kZWYsIAogICAgICAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiwgbWFuL3NubXB1c20uMS5kZWYsIG1hbi9zbm1wdmFjbS4xLmRlZiwKICAgICAgICAgbWFuL3NubXB3YWxrLjEuZGVmLCBtYW4vdmFyaWFibGVzLjUuZGVmOgoKICAgVXBkYXRlIG1hbiBwYWdlIGRhdGVzdGFtcHMgdG8gbWF0Y2ggdGhlIGxhdGVzdCAobm9uLXRyaXZpYWwpCiAgIGNvbnRlbnQgY2hhbmdlLgoKMjAxMC0xMC0yOSAxMjoxOCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBTcGVsbGluZyBmaXggaW4gbG9nIHRleHRzOiBjb250YWludGVyIC0+IGNvbnRhaW5lci4KCjIwMTAtMTAtMjggMTQ6MDIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmNoZWNrX3ZhbHVlcy5jb25mOgoKICAgRml4IGxvZ2ljIG9mIHRlc3RpbmcgZm9yIG91dC1vZi1yYW5nZSBlbnVtIHZhbHVlcy4KICAgUmVwb3J0ZWQgYnkgQm9yaXMgWndlaW11ZWxsZXIuCgoyMDEwLTEwLTI4IDExOjQ2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgKG1pc21hdGNoIGJldHdlZW4gZm9ybWF0IHNwZWNpZmljYXRpb24KICAgYW5kIGFyZ3VtZW50KSB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHI2NTYyLgoKMjAxMC0xMC0yOCAxMTozMiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIFJldmVydGVkIHIxOTU2NSBiZWNhdXNlIGl0IGNhdXNlZCBnY2MgdG8gcmVwb3J0IG1vcmUgd2FybmluZ3MKICAgaW5zdGVhZCBvZiBsZXNzLgoKMjAxMC0xMC0yOCAxMDozMiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIENoYW5nZWQgdGhlIHR5cGUgb2YgdGhlIGZpcnN0IHR3byBhcmd1bWVudHMgc3VjaCB0aGF0IGl0IGlzIG5vCiAgIGxvbmdlciBuZWNlc3NhcnkgdG8gY2FzdCB0aGVzZSB0d28gYXJndW1lbnRzIChoYXMgYmVlbiByZXZlcnRlZAogICB2aWEgcjE5NTY4KS4KCjIwMTAtMTAtMjggMTA6MDYgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIEJhY2twb3J0ZWQgSVNERUZJTkVEIGZyb20gcjE4NjcwLgoKMjAxMC0xMC0yNSAyMDo1OSAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAzMDg4MzYwOiBFbnN1cmUgcHl0aG9uIG1vZHVsZXMgYXJlIGJ1aWx0CiAgIGFnYWluc3QgdGhlIGNvcnJlY3QgbGlicmFyaWVzCgoyMDEwLTEwLTI1IDIwOjM0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMwNTgxMDE6IFdyaXRlYWJsZSAnbG9uZycgaW5zdGFuY2VzIHdvcmsgb24KICAgNjQtYml0IHN5c3RlbXMsIGJ1dCBub3Qgd3JpdGFibGUgJ2ludCdzCgoyMDEwLTEwLTI1IDE1OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEZpeCBhIHN0dXBpZCB0eXBvCgoyMDEwLTEwLTI1IDE1OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMwNjI1Mzg6IEZpeCBjb20yc2VjKiBoYW5kbGluZyBvZgogICBub24tZGVmYXVsdCBjb250ZXh0cwoKMjAxMC0xMC0yNSAxMjo1NCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy90ZXN0cy9UMjAwc25tcHYyY3dhbGthbGw6CgogICBDSEFOR0VTOiBXaW4zMjogdGVzdGluZzogQXZvaWQgdGhhdCBUMjAwIGZhaWxzIG9uIGtub3duIE1pY3Jvc29mdAogICBTTk1QIGV4dGVuc2lvbiBETEwgYnVncy4KCjIwMTAtMTAtMjIgMDk6MTkgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBCYWNrcG9ydGVkIHIxOTUyNTogbWFkZSBzdXJlIHRoYXQgY2xlYW5fc3VidHJlZSgpIGRlYWxsb2NhdGVzIGFsbAogICBjb250ZXh0IGNhY2hlIG5vZGVzLgoKMjAxMC0xMC0yMCAxMjo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICBmaXggaXBDaWRyUm91dGVUYWJsZSAobWFzaykgZm9yIGxpdHRsZSBlbmRpYW4gc3lzdGVtcwoKMjAxMC0xMC0yMCAxMDozNCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgICAKICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkZWQgc25tcF9zZXNzX3Nlc3Npb25fbG9va3VwKCkuCiAgIENIQU5HRVM6IGFnZW50OiBDYWxsIHNodXRkb3duX21hc3Rlcl9hZ2VudCgpIGFuZCBzaHV0ZG93bl9hZ2VudCgpCiAgIGR1cmluZyBzaHV0ZG93bi4KICAgQ0hBTkdFUzogYWdlbnQ6IFRoZSBmdW5jdGlvbiBjbGVhbl9zdWJ0cmVlKCkgZG9lcyBubyBsb25nZXIKICAgdHJpZ2dlciBkb3VibGUgZnJlZXMgYW5kIGludmFsaWQgbWVtb3J5IHJlYWRzLiBOb3RlOiB0aGlzCiAgIGZ1bmN0aW9uIHdhcyBhbHJlYWR5IHdyb25nIGF0IHRoZSB0aW1lIGl0IHdhcyBpbnRyb2R1Y2VkIChwYXRjaAogICAjNzI0OTI1IC8gcjg1MzEsIEp1bHkgMjAwMykuCiAgIENIQU5HRVM6IGFnZW50OiBSZW1vdmVkIGEgY29tbWVudCBpbiBuZXRzbm1wX2hhbmRsZXJfZnJlZSgpIHRoYXQKICAgaXMgbm93IG9ic29sZXRlIGJlY2F1c2Ugb2YgdGhlIGNsZWFuX3N1YnRyZWUoKSBjaGFuZ2VzLgogICBDSEFOR0VTOiBhZ2VudDogTW9kaWZpZWQgbmV0c25tcF9kZXJlZ2lzdGVyX2FnZW50X25zYXAoKSBzdWNoCiAgIHRoYXQgaXQgbmV2ZXIgZXhhbWluZXMgc2Vzc2lvbnMgdGhhdCBhbHJlYWR5IGhhdmUgYmVlbiBjbG9zZWQuIEl0CiAgIGlzIGZvciB0aGlzIGNoYW5nZSB0aGF0IGl0IHdhcyBuZWNlc3NhcnkgdG8gaW50cm9kdWNlIHRoZSBuZXcKICAgZnVuY3Rpb24gc25tcF9zZXNzX3Nlc3Npb25fbG9va3VwKCkuCgoyMDEwLTEwLTIwIDA3OjU0ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBNYWRlIGl0IHBvc3NpYmxlIHRvIGFuYWx5emUgYWxsIGNvZGUgY292ZXJlZCBieQogICB0aGUgcmVncmVzc2lvbiB0ZXN0cyB3aXRoIGEgZHluYW1pYyBhbmFseXplciwgYXQgbGVhc3QgaWYgdGhhdAogICBhbmFseXplciBzdXBwb3J0cyBmb2xsb3dpbmcgY2hpbGQgcHJvY2Vzc2VzLgogICAoQmFja3BvcnRlZCByMTkyODMgZnJvbSB0aGUgdHJ1bmsuKQoKMjAxMC0xMC0xOSAxODowOCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogQXZvaWQgdGhhdCBNU1ZDIDIwMTAgcHJpbnRzIGEgd2FybmluZwogICBtZXNzYWdlIGFib3V0IHJlZGVmaW5pbmcgRUFERFJJTlVTRS4KCjIwMTAtMTAtMTggMDg6NTIgIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBkLmM6CgogICBDSEFOR0VTOiBXaW4zMjogV2hlbiBzbm1wZC5leGUgaXMgc3RhcnRlZCBpbiBhIGNvbW1hbmQgcHJvbXB0CiAgIHdpbmRvdywgdGhlIHNubXBkIHByb2Nlc3Mgbm93IHN0b3BzIHVwb24gdGhlIGZpcnN0IGtleSBwcmVzcy4KICAgVGhpcyBtYWtlcyBpdCBlYXNpZXIgdG8gZGVidWcgc25tcGQuZXhlIGZvciBtZW1vcnkgbGVha3MuCgoyMDEwLTEwLTE4IDA2OjE1ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBDSEFOR0VTOiBzbm1wZDogVXNlIHRoZSBzYW1lIGF1dG9jb25mIHN5bWJvbCB0byBkZWNpZGUgYm90aCBpZgogICBzdHJjYXNlY21wIHNob3VsZCBiZSBkZWNsYXJlZCBhbmQgaWYgaXQgc2hvdWxkIGJlIGRlZmluZWQuCgoyMDEwLTEwLTE3IDE4OjI5ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBhIGRvdWJsZSBmcmVlIGF0IGV4aXQgdGhhdCB3YXMgdHJpZ2dlcmVkIGJ5CiAgIGNsZWFuaW5nIHVwIHRoZSBkYXRhIHN0cnVjdHVyZXMgdXNlZCBmb3IgZW1iZWRkZWQgUGVybCBzdXBwb3J0LgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEZpeGVkIGEgZG91YmxlIGZyZWUgYXQgZXhpdCB0aGF0IHdhcwogICB0cmlnZ2VyZWQgYnkgY2xlYW5pbmcgdXAgdGhlIGRhdGEgc3RydWN0dXJlcyB1c2VkIGZvciBlbWJlZGRlZAogICBQZXJsIHN1cHBvcnQuCiAgIAogICBWYWxncmluZCByZXBvcnRlZCB0aGF0IGRvdWJsZSBmcmVlIGFzIGZvbGxvd3M6CiAgIAogICBJbnZhbGlkIHJlYWQgb2Ygc2l6ZSA0CiAgIGF0IDB4NTlEMDUwMTogcGVybF9kZXN0cnVjdCAoaW4KICAgL3Vzci9saWIvcGVybDUvNS4xMi4xL3g4Nl82NC1saW51eC10aHJlYWQtbXVsdGkvQ09SRS9saWJwZXJsLnNvKQogICBieSAweDU0NERGOEU6IHNodXRkb3duX3BlcmwgKHNubXBfcGVybC5jOjE2NikKICAgYnkgMHg0MDM5NjY6IHRlcm1faGFuZGxlciAoc25tcHRyYXBkLmM6MzE4KQogICBieSAweDZENDNBNUY6ID8/PyAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBBZGRyZXNzIDB4NzY2MGY4OCBpcyA1NiBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDIsOTEyIGZyZWUnZAogICBhdCAweDRDMjY0OTY6IGZyZWUgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MzY2KQogICBieSAweDU0NERGOUE6IHNodXRkb3duX3BlcmwgKHNubXBfcGVybC5jOjE2NykKICAgYnkgMHg0MDM5NjY6IHRlcm1faGFuZGxlciAoc25tcHRyYXBkLmM6MzE4KQogICBieSAweDZENDNBNUY6ID8/PyAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZEREFERjI6IF9fc2VsZWN0X25vY2FuY2VsIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NDA0RTIwOiBtYWluIChzbm1wdHJhcGQuYzoxMjU4KQoKMjAxMC0xMC0xNyAxNzozMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEF2b2lkIHRoYXQgVmFsZ3JpbmQgY29tcGxhaW5zIGFib3V0CiAgIHVuaW5pdGlhbGl6ZWQgZGF0YSBmb3IgdGhlIGJ1ZmZlcnMgcmV0dXJuZWQgYnkKICAgbmV0c25tcF9jYWxsYmFja19yZWN2KCkgYW5kIG5ldHNubXBfY2FsbGJhY2tfaG9va19idWlsZCgpLgoKMjAxMC0xMC0xNyAxNDoyNCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmg6CgogICBSZW1vdmVkIGFuIG9ic29sZXRlIGRlY2xhcmF0aW9uOiB0aGUgZnVuY3Rpb24gYWdlbnR4X2J1aWxkKCkgaGFzCiAgIGJlZW4gcmVtb3ZlZCBhIGxvbmcgdGltZSBhZ28uCgoyMDEwLTEwLTE2IDA4OjM3ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFNwZWxsaW5nIGZpeDogZHVscGljYXRlIC0+IGR1cGxpY2F0ZS4KCjIwMTAtMTAtMTUgMTI6NTMgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkZWQgZnVuY3Rpb24gbmV0c25tcF9kZWxldGVfdGFibGVfZGF0YV9zZXQoKS4KICAgQ0hBTkdFUzogc25tcGxpYjogQWRkZWQgZGVjbGFyYXRpb24gZm9yIHRoZSBmdW5jdGlvbgogICBuZXRzbm1wX3RhYmxlX2RhdGFfZGVsZXRlX3RhYmxlKCkgaW4gYSBwdWJsaWMgYWdlbnQgaGVhZGVyIGZpbGUuCiAgIENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIG1lbW9yeSBsZWFrIGluCiAgIG5ldHNubXBfdGFibGVfZGF0YV9kZWxldGVfdGFibGUoKS4KICAgKEJhY2twb3J0ZWQgcjE5NDUwIGFuZCByMTk0NTQgZnJvbSB0cnVuay4pCgoyMDEwLTEwLTE1IDEyOjMwICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBSZXZlcnRlZCByMTk0NjAgYmVjYXVzZSBpdCBtYWtlcyBzb21lIHJlZ3Jlc3Npb24gdGVzdHMgZmFpbAogICAoVDEyMHByb3h5Z2V0X3NpbXBsZSwgVDEyMXByb3h5c2V0X3NpbXBsZSwKICAgVDEyMnByb3h5c2V0ZmFpbF9zaW1wbGUsIFQyMDBzbm1wdjJjd2Fsa2FsbF9zaW1wbGUpLiBEaXNhYmxlZCB0aGUKICAgaGFuZGxlciBkdXBsaWNhdGlvbiB0ZXN0IGluIFQwMDYgYmVjYXVzZSBpdCB0cmlnZ2VycyBhIGNyYXNoCiAgIHdpdGhvdXQgcjE5NDYwLgoKMjAxMC0xMC0xNSAxMTozNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogbmV0c25tcF9oYW5kbGVyX2R1cCgpOiBmcmVlaW5nIHRoZSBkdXBsaWNhdGVkCiAgIGhhbmRsZXIgbm8gbG9uZ2VyIGNhdXNlcyBhIGNyYXNoIChkb3VibGUgZnJlZSkgd2hlbgogICBoYW5kbGVyLT5teXZvaWQgb2YgdGhlIG9yaWdpbmFsIGhhbmRsZXIgd2FzIG5vbi1OVUxMLgoKMjAxMC0xMC0xNSAxMDowMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBtYW4vbmV0c25tcF9oYW5kbGVyLjM6CgogICBTcGVsbGluZyBmaXg6IGR1bHBpY2F0ZXMgLT4gZHVwbGljYXRlcy4KCjIwMTAtMTAtMTUgMDk6NTMgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIEZpeGVkIGEgc3BlbGxpbmcgZXJyb3IgaW4gYSBzb3VyY2UgY29kZSBjb21tZW50LgoKMjAxMC0xMC0xNCAwODozNiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSBjYWxsaW5nCiAgIHNlX2FkZF9wYWlyX3RvX2xpc3QoKSB3aXRoIGEgdmFsdWUgdGhhdCBhbHJlYWR5IGV4aXN0ZWQgaW4gdGhlCiAgIGxpc3QuCgoyMDEwLTEwLTEzIDE2OjUzICBoYXJkYWtlcgoKICAgKiBkaXN0L2F1dG9jb25mLXZlcnNpb24sIHRlc3RpbmcvdGVzdHMvVDAwMGNvbmZpZ3VyZToKCiAgIGFkZGVkIGEgYXV0b2NvbmYgdmVyc2lvbiBjaGVja2luZyB0ZXN0IHRvIGNhdGNoIGRldmVsb3BlcnMgYW5kCiAgIHNjcmlwdHMgdGhhdCBmYWlsIHRvIHVzZSB0aGUgY29ycmVjdCBhdXRvY29uZiB2ZXJzaW9uCgoyMDEwLTEwLTEzIDA3OjQzICBidmFzc2NoZQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBTcGVsbGluZyBmaXhlcy4KCjIwMTAtMTAtMTIgMTE6MTEgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwgc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEludm9raW5nIHNlX2NsZWFyX3NsaXN0KCkgZG9lcyBubyBsb25nZXIgY3JlYXRlCiAgIGEgZGFuZ2xpbmcgcG9pbnRlci4KICAgQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgbGVha3MtYXQtZXhpdCB0cmlnZ2VyZWQgYnkgdXNpbmcgdGhlCiAgIHNubXBfZW51bSBjb2RlLgogICBDSEFOR0VTOiBzbm1wbGliOiBEb2N1bWVudGVkIGJlaGF2aW9yIG9mIHNlX2FkZF9wYWlyKCksCiAgIHNlX2FkZF9wYWlyX3RvX3NsaXN0KCkgYW5kIGNsZWFyX3NubXBfZW51bSgpLiBNYWRlIHNubXBfZW51bQogICBleGFtcGxlIGNvbnNpc3RlbnQgd2l0aCB0aGUgcmVzdCBvZiB0aGUgY29kZSBieSBhZGRpbmcgc3RyZHVwKCkKICAgY2FsbHMgYW5kIGFkZGVkIGEgY2FsbCB0byBzZV9jbGVhcl9hbGxfbGlzdHMoKS4KICAgQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgYSBtZW1vcnkgY29ycnVwdGlvbiBwcm9ibGVtIHRyaWdnZXJlZCBieQogICB0aGUgKHVuZG9jdW1lbnRlZCkgc25tcGQuY29uZiAiZW51bSIga2V5d29yZCBoYW5kbGVyIC0gc3RvcmluZwogICBwb2ludGVycyB0byBzdHJpbmdzIGFsbG9jYXRlZCBvbiB0aGUgc3RhY2sgaW4gYSBnbG9iYWwgbGlzdCBkb2VzCiAgIG5vdCB3b3JrLgogICBDSEFOR0VTOiBzbm1wbGliOgoKMjAxMC0wOS0yMSAwMDowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMwNjI1MjY6IGZyb20gbWFyaW9nODU6IGZpeCBzZWN1cml0eQogICBlbmdpbmVJRCBzZXR0aW5nIGluIHRoZSB0cmFwc2VzcyBkaXJlY3RpdmUKCjIwMTAtMDktMjAgMjA6MjMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzA2NzU0MDogZnJvbSBqb3ljZWFubWFjaGluZTogRml4IElQdjQKICAgT0lEIGluZGV4ZXMgb24gNjQtYml0IGJpZy1lbmRpYW4gc3lzdGVtcy4KCjIwMTAtMDktMDMgMjI6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHBhdGNoIDMwNTg2NDU6IGZyb20gam9yaXNlc2F0dXJudXM6IG1vZGlmaWVkCiAgIHZlcnNpb24gb2YgdGhlIHBhdGNoIHRvIHVzZSBNU0dfRE9OVFdBSVQgZm9yIHRoZSB1bml4IGRvbWFpbgogICBzb2NrZXQKCjIwMTAtMDgtMjQgMDU6MzcgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcHVzbTogQ29ycmVjdCBpZmRlZnMsIHJlbW92ZSBkZWFkIHZhcmlhYmxlcy4KCjIwMTAtMDgtMTcgMTA6MzEgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGFuIHVudXNlZCBsYWJlbCB0aGF0IHdhcyB0cmlnZ2VyZWQKICAgd2hlbgogICBjb21waWxpbmcgd2l0aG91dCBTU0wgc3VwcG9ydC4KCjIwMTAtMDgtMTYgMTY6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIENIQU5HRVM6IHBlcmw6IHBhdGNoIDMwNDYzNzE6IGZyb20gY2hyaXN0b3BoYjQ6IEZpeCBtZW1vcnkgbGVhawogICBpbiBTTk1QdjEgdHJhcCBoYW5kbGluZy4KCjIwMTAtMDgtMTYgMTY6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDI4MjU2NTM6IGZyb20gYnJ1NWNlOiBmaXggc2VuZG1haWwuY2YKICAgcGFyc2luZyBpbiBjZXJ0YWluIGNvbmRpdGlvbnMKCjIwMTAtMDgtMTQgMTY6MzAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MTEzNjE6IFJlbW92ZSByZWR1bmRhbnQgdmFyaWFibGVzCgoyMDEwLTA4LTE0IDE2OjIzICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MDQ5MDA6IERvY3VtZW50YXRpb24gcGx1cyBhc3NvcnRlZAogICBoYW5kbGVyIGNvZGUgZml4ZXMKCjIwMTAtMDgtMTMgMTI6MjIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEZpeCBoYW5kbGluZyBvZiBpbmRleCB2YWx1ZXMgaW4gY2FjaGUgbG9hZCBmdW5jdGlvbi4KCjIwMTAtMDgtMTAgMDQ6NTkgIG1hZ2ZyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogSGFuZGxlIGVtYmVkZGVkICUncyBpbiB0aGUgcmVzdWx0IG1lc3NhZ2UuCgoyMDEwLTA4LTA1IDExOjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIFVwZGF0ZSAiYXV0aCoiIHVzYWdlIG1lc3NhZ2Ugd2l0aCBjb250ZXh0IHN1cHBvcnQKCjIwMTAtMDgtMDEgMDY6MDAgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBGaXhlZCBhIHR5cG8gaW4gYSB0ZXh0IHN0cmluZyBpbiBhIHVuaXQgdGVzdDogcmVzdHVyYW50IC0+CiAgIHJlc3RhdXJhbnQuCgoyMDEwLTA3LTMwIDEzOjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIIDMwMzUzMjg6IGZyb206IHN3czogY2hlY2sgdGhlIHJlc3VsdHMgb2YKICAgc2Vzc2lvbiBjcmVhdGlvbiBmb3IgYSBmYWlsdXJlIGNhc2UuCgoyMDEwLTA3LTMwIDEzOjAwICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBwYXRjaCAzMDM1NTc4OiBmcm9tIHN3czoga2VlcCBlcnJvciBjb2RlcyB1cCB0bwogICBkYXRlCgoyMDEwLTA3LTI4IDE0OjQwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggbWlzbmFtZWQgY29tbWVudAoKMjAxMC0wNy0yOCAxNDozNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRG9uJ3QgbWl4IFNNSXYxIGFuZCBTTUl2MiBNSUJzIGluIHRoZSBsaXN0IG9mIGRlZmF1bHQgTUlCcyB0bwogICBsb2FkLgogICBVc2UgbmV3ZXIgU01JdjIgdmVyc2lvbnMgKHdoaWNoIGluY2x1ZGUgc3VpdGFibGUgZGlzcGxheSBoaW50cykKICAgcmF0aGVyIHRoYW4gdGhlIG9yaWdpbmFsIFJGQzEyMTMgTUlCICh3aGljaCBkb2Vzbid0KQoKMjAxMC0wNy0yNyAxMDo1NCAgaGFyZGFrZXIKCiAgICogbWlicy9TTVVYLU1JQi50eHQ6CgogICBDSEFOR0VTOiBtaWJzOiBwYXRjaCAyOTc0NzE2OiBmcm9tIGJ2YXNzY2hlOiBmaXggaXNzdWVzIGluIHRoZQogICBTTVVYLU1JQgoKMjAxMC0wNy0yNCAxNTozNiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRG9uJ3QgbG9zZSB0cmFjayBvZiB3aGljaCBjb25maWcgZmlsZSBpcyBiZWluZyBwYXJzZWQsCiAgIHdoZW4gb3BlbmluZyBhIG5ldyBTTk1QIHNlc3Npb24uCiAgIEZpeGVzIGEgYnVnIHdpdGggcmVwb3J0aW5nIGxhdGVyIGNvbmZpZyBlcnJvcnMuCgoyMDEwLTA3LTIwIDEwOjM4ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGZpeGVkIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBnZW5lcmF0aW5nCiAgIHRlbXAuIGZpbGUgbmFtZXMKCjIwMTAtMDctMjAgMDc6MzIgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsICAgCiAgICAgIG1hbi9zbm1wY21kLjEuZGVmLCBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwgbWFuL3NubXB0cmFwZC44LmRlZiwgIAogICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIERlc2NyaWJlIC1EIHVzYWdlIGFzIC1EW1RPS0VOXSBpbnN0ZWFkIG9mIC1EIFtUT0tFTl0KCjIwMTAtMDctMTUgMTg6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZml4IGlzc3VlIHdpdGggVVNNIHVzaW5nIGluYWN0aXZlIHVzZXJzCgoyMDEwLTA3LTEyIDEwOjI2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBDSEFOR0VTOiBXaW4zMiBhbmQgQ3lnd2luOiBtYWRlIHN1cmUgdGhhdCBhY2Nlc3NpbmcgdGhlIG1pYklJCiAgIGludGVyZmFjZXMgdGFibGUgZG9lcyBub3QgdHJpZ2dlciBvdXQtb2YtcmFuZ2UgYXJyYXkgYWNjZXNzZXMKICAgKHdhcyBkZXRlY3RlZCBieSBCb3VuZHNDaGVja2VyKS4KCjIwMTAtMDctMDggMTI6MTcgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMDAzOTgxOiBQcm90ZWN0IGFnYWluc3QgYnVmZmVyIG92ZXJmbG93CgoyMDEwLTA3LTA4IDExOjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMwMTkyNDM6IFJlZ2lzdGVyIGV4ZWNGaXggY29tcGF0YWJpbGl0eQogICBkaXJlY3RpdmUgY29ycmVjdGx5LgoKMjAxMC0wNi0yOSAyMjoyOSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxOTExNjogbWFrZSBzdXJlIHdlIGluY2x1ZGUgYWdlbnQgY29uZmlnCgoyMDEwLTA2LTI4IDAwOjU0ICB0YW5kZXJzCgogICAqICBtYW4vbWliX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfY29udGFpbmVyLjMsICAKICAgICAgIG1hbi9uZXRzbm1wX2V4YW1wbGVfc2NhbGFyX2ludC4zLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vc25tcGNtZC4xLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYsICAgCiAgICAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIENIQU5HRVM6IG1hbjogY2xlYW4gdXAgbWFudWFsIHBhZ2VzCiAgIChmcm9tIERlYmlhbiBwYXRjaCA1Nl9tYW5wYWdlKQoKMjAxMC0wNi0yOCAwMDoyMSAgdGFuZGVycwoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jOgoKICAgZml4IGNwcCBzeW50YXggZXJyb3IKCjIwMTAtMDYtMjcgMjM6MjkgIHRhbmRlcnMKCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFwcHMvc25tcHRyYXBkLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX2F1dGguYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBEbyBub3QgY2FsbCB2YWNtX3N0YW5kYXJkX3ZpZXdzKCkgb3IKICAgaW5pdF92YWNtX2NvbmZpZ190b2tlbnMoKSBpZiB0aGUgY29ycmVzcG9uZGluZyBtb2R1bGUgd2FzIG5vdAogICBjb21waWxlZAogICAoZnJvbSBEZWJpYW4gcGF0Y2ggNjFfdmFjbV9taXNzaW5nX2RlcGVuZGVuY3lfY2hlY2spCgoyMDEwLTA2LTI1IDEzOjAxICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmV2ZXJ0aW5nIDE5MDk1LCBpdCBicmVha3MgdGVzdHMKCjIwMTAtMDYtMjUgMDk6NDAgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wdHJhbnNsYXRlOiBmaXhlZCBwcmludGluZyBvZiByYW5nZXMgd2l0aCBVTlNJR05FRAogICB0eXBlLgoKMjAxMC0wNi0yMyAxMToxNCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgdmFsdWUgb2YgSVAtTUlCOjppcHY2SW50ZXJmYWNlRm9yd2FyZGluZyBvbgogICBMaW51eAogICAKICAgVGhlIHZhbHVlIHdhcyAwIChub3QgZm9yd2FyZGluZykgb3IgMSAoZm9yd2FyZGluZyksIHNob3VsZCBiZSAyCiAgIGFuZCAxCiAgIGluc3RlYWQgLSBuZXRzbm1wX2ludGVyZmFjZV9lbnRyeS5mb3J3YXJkaW5nX3Y2IGlzIGJvb2xlYW4sIG5vdAogICBUcnV0aFZhbHVlLgoKMjAxMC0wNi0yMiAwODozNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBGaXhlZCBhbiBlcnJvciBpbiBhIGNvbW1lbnQgYmxvY2suCgoyMDEwLTA2LTE2IDE5OjE0ICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIEZpeCBwcm9jZXNzaW5nIG9mIHZpZXcgbWFza3MgKG1pc3BsYWNlZCBwYXJlbnRoZXNlcykKCjIwMTAtMDYtMDcgMjA6MTggIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIFJldmVydGluZyByZXYuIDE3NjE2LCB0aGUgbmVjZXNzYXJ5IGNoZWNrIGlzIGFscmVhZHkgaW4gcmV2LgogICAxNzQxNS4KCjIwMTAtMDYtMDIgMTA6NTcgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiBwYXJzaW5nIE9JRHMKICAgaW4gY29uZmlnIGZpbGVzLgoKMjAxMC0wNi0wMSAxNDo0OCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgRml4ZWQgYSB0eXBvIGluIGEgc291cmNlIGNvZGUgY29tbWVudC4KCjIwMTAtMDYtMDEgMTQ6MjUgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgSVAtTUlCOjppcElmU3RhdHNSZWFzbVJlcWRzIHZhbHVlLgogICAKICAgSnVzdCBmaXhpbmcgYSBzdHVwaWQgdHlwby4KCjIwMTAtMDUtMjcgMTM6NTIgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMjk3MjU3OTogZml4ZWQgY2hlY2tpbmcgb2YKICAgc25tcFRhcmdldEFkZHJSb3dTdGF0dXMgU0VUIHJlcXVlc3RzLgoKMjAxMC0wNS0yNyAwNjo0OSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDSEFOR0VTOiB3aW5FeHRETEw6IGNvbnZlcnQgYXNzZXJ0KCkgc3RhdGVtZW50cyBpbnRvCiAgIG5ldHNubXBfYXNzZXJ0KCkgc3RhdGVtZW50cy4KCjIwMTAtMDUtMjMgMjE6MDcgIGR0czEyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkNoYW5nZXM6IFY1LjQuMiAtPiBWNS40LjMKCjIwMTAtMDUtMjMgMjA6NDIgIGR0czEyCgogICAqICBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgbWFuL25ldHNubXBfc2NhbGFyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsICAKICAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbC4zLCBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAxMC0wNS0yMyAyMDozOSAgZHRzMTIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLCAgIAogICAgICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDUtMTQgMTI6NDYgIGR0czEyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNS0xNCAxMjo0MSAgZHRzMTIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDUtMTQgMTI6MjggIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDUtMTQgMTI6MTkgIGR0czEyCgogICAqICBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgbWFuL25ldHNubXBfc2NhbGFyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsICAKICAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbC4zLCBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAxMC0wNS0xNCAxMjoxMCAgZHRzMTIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLCAgIAogICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA1LTExIDE3OjI2ICBidmFzc2NoZQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQnVpbGRzIGFnYWluIHdpdGggdGhlIE1pY3Jvc29mdCBWaXN1YWwgQyBjb21waWxlcnMsIHdoaWNoIGRvIG5vdAogICByZWNvZ25pemUgdGhlIEM5OSBVTEwgc3VmZml4LgoKMjAxMC0wNS0xMSAxNTo0NiAgZHRzMTIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgRW5zdXJlICduZXRzbm1wX3JlYWRfbW9kdWxlJyBpcyBhdmFpbGFibGUgZm9yIHBlcmwgYnVpbGQuCgoyMDEwLTA1LTExIDE1OjQ0ICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgRml4IHBlcmwgYnVpbGQgdW5kZXIgV2luZG93cyAoc3RydG91bGwgbm90IGF2YWlsYWJsZSkKCjIwMTAtMDUtMDkgMTY6MzQgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2N5Z3dpbi5oOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBCVUc6IDI5OTc0OTI6IGJ5dGUgb3JkZXIgb2YgdWRwTG9jYWxQb3J0IGlzIG5vdyBjb3JyZWN0CiAgIChCYWNrcG9ydGVkIHIxODA3NCBmcm9tIHRydW5rLikKCjIwMTAtMDUtMDYgMTQ6NDkgIGR0czEyCgogICAqIHNubXBsaWIvaW5ldF9udG9wLmMsIHNubXBsaWIvaW5ldF9wdG9uLmM6CgogICBEb24ndCBhc3N1bWUgdGhlIHByZXNlbmNlIG9mIDxzdHJpbmcuaD4KICAgKGJyaW5nIGludG8gbGluZSB3aXRoIGFsbCBvdGhlciBvY2N1cmFuY2VzKQoKMjAxMC0wNS0wNiAxNDo0NCAgZHRzMTIKCiAgICogd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMnNkay5kc3c6CgogICBBZGQgcHJvamVjdCBkZXBlbmRlbmNpZXMgZm9yIE1TVkMgYnVpbGRzLgoKMjAxMC0wNS0wNiAwNjozMyAgYnZhc3NjaGUKCiAgICogIG5ldC1zbm1wLWNvbmZpZy5pbiwgdGVzdGluZy9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBEZXRlY3QgZnJlZSBVRFAgcG9ydHMgY29ycmVjdGx5IGZvciB1c2UgaW4gdGVzdCBpbmZyYXN0cnVjdHVyZS4KICAgKEJhY2twb3J0ZWQgdHJ1bmsgcjE4MDczIGFuZCByMTgwODApLgoKMjAxMC0wNC0zMCAxOToxMCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYXBwcy9zbm1wdHJhcGQuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIENIQU5HRVM6IFdpbmRvd3M6IEZpeCBidWlsZCB1bmRlciBNaW5HVwoKMjAxMC0wNC0zMCAxODo0NCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlOgoKICAgU2hvdWxkIGhhdmUgYmVlbiBpbmNsdWRlZCBpbiByMTg2MjcuCgoyMDEwLTA0LTMwIDE4OjI3ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUuaW46CgogICBtYWRlIHN1cmUgdGhhdCBjcm9zcy1jb21waWxpbmcgd2l0aG91dCBzcGVjaWZ5aW5nIHRoZSBlbmRpYW5uZXNzCiAgIGRvZXMgbm90IHRyaWdnZXIgYSBzeW50YXggZXJyb3IgaW4gdGhlIGNvbmZpZ3VyZSBzY3JpcHQuCgoyMDEwLTA0LTI4IDEwOjQ4ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGxlZnQgb3V0IGluZXRfbnRvcCgpIGFuZCBpbmV0X3B0b24oKSBmcm9tIGxpYm5ldHNubXAgc2luY2UgdGhlc2UKICAgZnVuY3Rpb25zIGFyZSBhbHJlYWR5IHByZXNlbnQgaW4gQ3lnd2lucyBDIGxpYnJhcnkuCgoyMDEwLTA0LTI4IDEwOjI2ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBGaXhlZCBhIGRvY3VtZW50YXRpb24gYnVnIHdpdGggcmVnYXJkIHRvIHRoZSBDeWd3aW4gYnVpbGQ6CiAgIGxpbmtpbmcgd2l0aCB3czJfMzIgaXMgb25seSBuZWNlc3NhcnkgZm9yIHJlYWxseSBhbmNpZW50IEN5Z3dpbiB2ZXJzaW9ucy4KCjIwMTAtMDQtMjggMDc6MjkgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL2luZXRfbnRvcC5jLCBzbm1wbGliL2luZXRfcHRvbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IEN5Z3dpbjogYnVpbGRzIG5vdyB3aXRoIElQdjYgc3VwcG9ydCBlbmFibGVkLgoKMjAxMC0wNC0yNyAxNjo1NSAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZHMgYWdhaW4gd2l0aCBJUHY2IHN1cHBvcnQgZW5hYmxlZC4KCjIwMTAtMDQtMjcgMTU6NDIgIGR0czEyCgogICAqICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbjoKCiAgIFJlLWluc3RhdGUgTm90aWZpY2F0aW9uLUxvZyBNSUIgc3VwcG9ydCB3aGVuIGJ1aWxkaW5nIHdpdGgKICAgV2luZG93cyBQbGF0Zm9ybSBTREsuCgoyMDEwLTA0LTI1IDE3OjM3ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBEb2N1bWVudGF0aW9uIHVwZGF0ZS4KCjIwMTAtMDQtMjEgMTE6MDUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIENvcGllZCB0aGUgc291cmNlIGZpbGUgc25tcGxpYi9zdHJ0b3VsbC5jIGZyb20gdGhlIHRydW5rIHRvIHRoZQogICBWNS40IGJyYW5jaC4KCjIwMTAtMDQtMTggMTM6NDAgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvd2lucGlwZS5jOgoKICAgQWRkZWQgI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBpbiBmaWxlCiAgIHNubXBsaWIvd2lucGlwZS5jIHN1Y2gKICAgdGhhdCBidWlsZGluZyBvbiBXaW5kb3dzIGRvZXNuJ3QgdHJpZ2dlciBhIHdhcm5pbmcgYWJvdXQKICAgaW5jbHVkaW5nIGJvdGgKICAgPHN0ZGFyZ3MuaD4gYW5kIDx2YXJhcmdzLmg+IGluIHRoZSBzYW1lIHNvdXJjZSBmaWxlLgoKMjAxMC0wNC0xOCAxMzoyNCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJldmVydGVkIGFub3RoZXIgY2hhbmdlIHRoYXQgd2FzIGludHJvZHVjZWQgaW4gcjE4NDk1IGFuZCB0aGF0J3MKICAgb2J2aW91c2x5IGJyb2tlbi4KCjIwMTAtMDQtMTUgMTY6NTUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgUGFydGlhbGx5IHJldmVydGVkIHIxODQ5NjoKICAgLSBDb21tZW50ZWQgb3V0ICNkZWZpbmUgTkVUU05NUF9VU0VfRExMIGFnYWluIGluIGZpbGUKICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggb24gdGhlIDUuNCBicmFuY2guIFRoaXMgY2hhbmdlCiAgIGhhZCBiZWVuIGNvbW1pdHRlZCB1bmludGVudGlvbmFsbHkuCiAgIC0gUmUtZW5hYmxlZCAjZGVmaW5lCiAgIFVTSU5HX05PVElGSUNBVElPTl9MT0dfTUlCX05PVElGSUNBVElPTl9MT0dfTU9EVUxFIGluCiAgIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmggb24gdGhlIHRydW5rIGFuZCB0aGUKICAgVjUuNSBicmFuY2guIFdoaWxlIGJ1aWxkLmJhdCByZXBvcnRzIGFuIGVycm9yIG9uIGVhcmxpZXIgYnJhbmNoZXMKICAgd2l0aCB0aGlzIHN5bWJvbCBlbmFibGVkLCB0aGVyZSBpcyBubyBzdWNoIHByb2JsZW0gb24gdGhlIHRydW5rCiAgIG9yIFY1LjUgYnJhbmNoZXMgYW5kIGhlbmNlIHRoZXJlIHdhcyBubyByZWFzb24gdG8gZGlzYWJsZSB0aGlzCiAgIHByZXByb2Nlc3NvciBzeW1ib2wuCgoyMDEwLTA0LTE0IDA5OjQ3ICBkdHMxMgoKICAgKiAgd2luMzIsIHdpbjMyL2Jpbiwgd2luMzIvZGlzdCwgd2luMzIvZGlzdC9odG1saGVscCwgICAKICAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIsIHdpbjMyL2Rpc3Qvc2NyaXB0cywgd2luMzIvZW5jb2RlX2tleWNoYW5nZSwgCiAgICAgICAgd2luMzIvbGliLCB3aW4zMi9saWJhZ2VudCwgd2luMzIvbGliaGVscGVycywgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkLCB3aW4zMi9saWJzbm1wLCB3aW4zMi9saWJzbm1wX2RsbCwgICAKICAgICAgd2luMzIvbGlidWNkbWlicywgd2luMzIvbG9jYWwsIHdpbjMyL25ldC1zbm1wLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudCwgd2luMzIvbmV0LXNubXAvbGlicmFyeSwgd2luMzIvbmV0c25tcG1pYnMsICAKICAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrLCB3aW4zMi9zbm1wYnVsa2dldCwgd2luMzIvc25tcGJ1bGt3YWxrLCAgIAogICAgICB3aW4zMi9zbm1wZCwgd2luMzIvc25tcGRlbHRhLCB3aW4zMi9zbm1wZGYsIHdpbjMyL3NubXBkc2RrLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0LCB3aW4zMi9zbm1wZ2V0bmV4dCwgd2luMzIvc25tcG5ldHN0YXQsICAgCiAgICAgIHdpbjMyL3NubXBzZXQsIHdpbjMyL3NubXBzdGF0dXMsIHdpbjMyL3NubXB0YWJsZSwgd2luMzIvc25tcHRlc3QsIAogICAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUsIHdpbjMyL3NubXB0cmFwLCB3aW4zMi9zbm1wdHJhcGQsICAgCiAgICAgIHdpbjMyL3NubXB1c20sIHdpbjMyL3NubXB2YWNtLCB3aW4zMi9zbm1wd2FsazoKCiAgIERvbid0IHRyeSB0byBTVk4tbWFuYWdlIHRoZSBXaW5kb3dzIGJhdGNoIGJ1aWxkIGluZnJhc3RydWN0dXJlCiAgIChhZGQgcmVsZWFzZSwgZGVidWcsIE1ha2VmaWxlIHRvIHRoZSBwcmV2aW91cyBpZ25vcmUgbGlzdCkKCjIwMTAtMDQtMTQgMDg6MTYgIGR0czEyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIEZpeCBXaW5kb3dzIGJhdGNoIGJ1aWxkIHVzaW5nIFZpc3VhbCBTdHVkaW8gd2l0aCBkeW5hbWljIGxpbmtpbmcuCiAgIFVucmVmZXJlbmNlZCBzeW1ib2wgaW50cm9kdWNlZCBieSBTVk4gcmV2aXNpb24gMTgzOTMKCjIwMTAtMDQtMTQgMDg6MTEgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIEZpeCBXaW5kb3dzIGJhdGNoIGJ1aWxkIHVzaW5nIFZpc3VhbCBTdHVkaW8gMjAwOCB3aXRoIFBsYXRmb3JtCiAgIFNESyBlbmFibGVkLgoKMjAxMC0wNC0xNCAwODowOCAgZHRzMTIKCiAgICogIHdpbjMyL2J1aWxkLnBsLCB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBXaW4zMjogRml4IGJhdGNoIGJ1aWxkIHVzaW5nIHJlY2VudCB2ZXJzaW9ucyBvZiBWaXN1YWwgU3R1ZGlvLgogICBQYXJ0aWFsIGJhY2sgcG9ydCBvZiBTVk4gcmV2aXNpb25zIDE3NTczIGFuZCAxNzY5Ni4KCjIwMTAtMDQtMDcgMTQ6MzcgIGR0czEyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNC0wNyAxNDoyMiAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wNC0wNyAxNDoxMiAgZHRzMTIKCiAgICogIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgIAogICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsLjMsIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDEwLTA0LTA3IDE0OjA4ICBkdHMxMgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsICAgCiAgICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDQtMDcgMTQ6MDUgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEluc2VydCB0aGUgY2FjaGUgaGVscGVyIGNvcnJlY3RseS4KCjIwMTAtMDQtMDYgMTE6MDMgIGR0czEyCgogICAqIEZBUToKCiAgIFB5dGhvbiBpcyBhcHBhcmVudGx5IGNsaWVudC1zaWRlIG9ubHkuCgoyMDEwLTA0LTA2IDA4OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIE5FV1M6IHNubXBkOiBMYXRjaCBsYXJnZS1kaXNrIHN0YXRpc3RpY3MgYXQgMlRiIChyYXRoZXIgdGhhbgogICB3cmFwcGluZy4KCjIwMTAtMDMtMjkgMTU6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCBzbm1wbGliL3BhcnNlLmM6CgogICBJbmNsdWRlIE1JQiBkaXJlY3Rvcnkgc2VhcmNoIHBhdGggaW4gcmVwb3J0cyBvZiBtaXNzaW5nIE1JQgogICBmaWxlcy4KICAgSW5jbHVkZSBjb25maWcgZmlsZSBzZWFyY2ggcGF0aCBpbiByZXBvcnRzIG9mIG1pc3NpbmcgYWNjZXNzCiAgIGNvbnRyb2wgc2V0dGluZ3MuCgoyMDEwLTAzLTI5IDE1OjIwICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIE5FV1M6IHNubXBkOiBGaXggaGFuZGxpbmcgb2YgbXVsdGlwbGUgbWF0Y2hpbmcgVkFDTSBlbnRyaWVzLgogICAoVXNlIHRoZSAiYmVzdCIgbWF0Y2gsIHJhdGhlciB0aGFuIHRoZSBmaXJzdCBvbmUpLgogICBSZXBvcnRlZCBieSBBZGFtIExld2lzLgogICBOb3RlIHRoYXQgdGhpcyBjb3VsZCBwb3RlbnRpYWxseSBhZmZlY3QgdGhlIGJlaGF2aW91ciBvZgogICBleGlzdGluZyBhY2Nlc3MgY29udHJvbCBjb25maWd1cmF0aW9ucy4KCjIwMTAtMDMtMjkgMTU6MTUgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRml4IGFnZW50IGNyYXNoIHdoZW4gc2VuZGluZyBlbmNyeXB0ZWQgU05NUHYzCiAgIHRyYXBzLgogICBSZXBvcnRlZCBieSBTcmlrYXBpbGFuIEdhbmRoaQoKMjAxMC0wMy0yNSAyMDowNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIENIQU5HRVM6IGFnZW50eDogY2hhbmdlZCBkZWZhdWx0IFRDUCB0YXJnZXQgZnJvbSAwLjAuMC4wOjcwNSB0bwogICBsb2NhbGhvc3Q6NzA1LiBUaGlzIGlzIG5vdCBvbmx5IGEgbW9yZSBzZWN1cmUgY2hvaWNlIGJ1dCBpdCBhbHNvCiAgIG1ha2VzIGl0IHBvc3NpYmxlIG9uIFdpbmRvd3Mgc3lzdGVtcyB0byBsZXQgYW4gQWdlbnRYIHN1YmFnZW50CiAgIGNvbm5lY3QgdG8gYW4gQWdlbnRYIG1hc3RlciBhZ2VudCBydW5uaW5nIG9uIHRoZSBzYW1lIHN5c3RlbQogICB3aXRob3V0IGhhdmluZyB0byBzZXQgdGhlIHZhcmlhYmxlIE5FVFNOTVBfRFNfQUdFTlRfWF9TT0NLRVQuCgoyMDEwLTAzLTIyIDE2OjEwICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLVBBU1MtTUlCLnR4dDoKCiAgIEZpeCB0eXBvIGluIGRlZmF1bHQgSXBBZGRyZXNzIHZhbHVlCiAgIChTZWUgQnVnICMyOTcyMTQxKQoKMjAxMC0wMy0yMiAxNToyNCAgYnZhc3NjaGUKCiAgICogbWlicy9VQ0QtRElTS0lPLU1JQi50eHQ6CgogICBGb2xsb3ctdXAgZm9yIHIxODM0OTogYWRkZWQgbWlzc2luZyBjb21tYSBzdWNoIHRoYXQgaXQgaXMgYWdhaW4KICAgcG9zc2libGUgdG8gY29tcGlsZSBVQ0QtRElTS0lPLU1JQi4KCjIwMTAtMDMtMjIgMTM6NDkgIGR0czEyCgogICAqICBtaWJzL1VDRC1ESVNLSU8tTUlCLnR4dCwgbWlicy9VQ0QtRExNT0QtTUlCLnR4dCwgICAKICAgICAgbWlicy9VQ0QtSVBGSUxURVItTUlCLnR4dCwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgQ0hBTkdFUzogbWliczogQlVHOiAyOTczODkwOiBGaXggaW1wb3J0cywgRGlza0lPRW50cnkgbGlzdCBhbmQKICAgcmV2aXNpb24gaGlzdG9yaWVzCgoyMDEwLTAzLTIyIDExOjU1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBXaW4zMiwgd2luRXh0RExMOiBzb2x2ZWQgdGhlIG15c3Rlcnkgb2YgIkFTTiB0eXBlIHplcm8iLiBUaGUKICAgd2luRXh0RExMIGNvZGUgZG9lcyBub3cgbm8gbG9uZ2VyIHRyaWdnZXIgY29udmVyc2lvbnMgb2YgV2luZG93cwogICBBU04gdmFyYmluZHMgd2l0aCBBU04gdHlwZSB6ZXJvLiBOb3RlOiB0aGlzIGNvZGUgY2hhbmdlIGRvZXMgbm90CiAgIGNoYW5nZSB0aGUgYWdlbnQgYmVoYXZpb3IuCgoyMDEwLTAzLTIwIDE5OjE2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIEZpeGVkIHRoZSBjb21waWxlciB3YXJuaW5ncyByZXBvcnRlZCBieSBnY2MgKE1pbkdXKS4KCjIwMTAtMDMtMTkgMTI6NDAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogbXVsdGlwbGUgdmFyYmluZCBzZXQgcmVxdWVzdHMgYXJlIG5vdwogICBwcm9jZXNzZWQgY29ycmVjdGx5LgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBtYWRlIGVycm9yIGNvZGVzIGluIFNOTVAgcmVzcG9uc2UgUERVcwogICBhcyBSRkMtY29tcGxpYW50IGFzIHBvc3NpYmxlLgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBpZiBsb2FkaW5nIGFuIGV4dGVuc2lvbiBETEwgZmFpbHMsIHRoZQogICByZWFzb24gd2h5IGxvYWRpbmcgZmFpbGVkIGlzIG5vdyBsb2dnZWQuCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdGhhdCBvY2N1cnJlZCB3aGVuCiAgIFNubXBFeHRlbnNpb25RdWVyeShFeCkgZmFpbGVkLiBUaGlzIG1lbW9yeSBsZWFrIGhhcyBiZWVuIGZvdW5kCiAgIHZpYSBzb3VyY2UgcmVhZGluZy4gTm90ZTogaXQgaXMgbm90IGNsZWFyIHdoZXRoZXIgaXQgd2FzIHBvc3NpYmxlCiAgIHRvIHRyaWdnZXIgdGhpcyBtZW1vcnkgbGVhay4gVGhpcyBsZWFrIGlzIGNlcnRhaW5seSBub3QgdHJpZ2dlcmVkCiAgIGJ5IGV2ZXJ5IHJlcXVlc3QgZm9yIHdoaWNoIGEgcmVzcG9uc2Ugd2l0aCBub24temVybyBlcnJvciBzdGF0dXMKICAgaXMgc2VudCBiYWNrLgoKMjAxMC0wMy0xOSAxMTo0MSAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUmV2ZXJ0ZWQgcjE4MzI0IHNpbmNlIHRoZSA1LjQgYnJhbmNoIGlzIGluIFJDIHN0YWdlIGFuZCBhCiAgIGxlYWstYXQtZXhpdCBpcyBub3QgYSBzaG93c3RvcHBlci4KCjIwMTAtMDMtMTcgMTM6NDEgIGJ2YXNzY2hlCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dCwgbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIE1pbm9yIE1JQiBmaXhlcyAoYmFja3BvcnRlZCByMTgzMjAsIHIxODMyMSBhbmQgcjE4MzI1KS4KCjIwMTAtMDMtMTcgMTM6MjkgIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBvbmUgbGVhay1hdC1leGl0LgoKMjAxMC0wMy0xNyAxMjo0NCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDSEFOR0VTOiBCVUc6IDI5NzEyNTc6IEZpeGVkIHdpbkV4dERMTCBoYW5kbGluZyBvZiBtdWx0aS12YXJiaW5kCiAgIGdldE5leHQgcmVxdWVzdHMgd2l0aCBPSURzIGluIHJldmVyc2UgbGV4aWNvZ3JhcGhpY2FsIG9yZGVyLgoKMjAxMC0wMy0xNCAyMjo1NiAgZHRzMTIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTAzLTE0IDIyOjMxICBkdHMxMgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wMy0xNCAyMjoyOCAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wMy0xNCAyMjoxOSAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wMy0xNCAyMjoxOSAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wMy0xNCAyMjoxMCAgZHRzMTIKCiAgICogIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgIAogICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsLjMsIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDEwLTAzLTE0IDIyOjA3ICBkdHMxMgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsICAgCiAgICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDMtMTIgMTE6NTMgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wdGFibGU6IFBBVENIOiAyODUwMDY3OiBTdXBwcmVzcyBleHRyYW5lb3VzICJpbmRleCIKICAgaGVhZGVyIHRva2VuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IERhbiBOZWxzb24KCjIwMTAtMDMtMTEgMTY6NTIgIGR0czEyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgRG9jdW1lbnQgdGhlIGZvcm1hdCBvZiB0aGUgLWUvLUUgY29tbWFuZCBsaW5lIG9wdGlvbnMuCgoyMDEwLTAzLTExIDE2OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFJlbW92ZSBtZW50aW9uIG9mIHRoZSAoYWJhbmRvbmVkKSAnZGF0YXNldDInIGhlbHBlci4KCjIwMTAtMDMtMTEgMTY6MDMgIGR0czEyCgogICAqIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaDoKCiAgIFVzZSBTTk1QX1RNUERJUiBpbnN0ZWFkIG9mIFRNUERJUgogICBCYWNrcG9ydCBvZiByZXZpc2lvbiAxODI2MgoKMjAxMC0wMy0xMSAxNTowOCAgZHRzMTIKCiAgICogIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAgIAogICAgICBhcHBzL3NubXB0ZXN0LmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi90b29scy5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDI5NTIwMzQ6IFJldHVybiBvZiB0aGUgR3JlYXQgU3VTRSAnc3ByaW50ZicKICAgSHVudC4uLgogICBQYXRjaCBzdXBwbGllZCBieSBMZW9uYXJkbyBDaGlxdWl0dG8KCjIwMTAtMDMtMTEgMTQ6NTUgIGR0czEyCgogICAqIGxvY2FsL3RyYXB0b2VtYWlsOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDI5Mzc5OTY6IEFkZCBEYXRlOiBoZWFkZXIgdG8gZW1haWwgc2VuZCBieQogICB0cmFwdG9lbWFpbAoKMjAxMC0wMy0xMSAxNDoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTY4NjQyOiBDYXRjaCBvdmVyZmxvdyBvZiBwYXNzLXRocm91Z2gKICAgY29tbWFuZCBidWZmZXIuCiAgIFBhdGNoIGZyb20gQW5kcmVhcyBKYWVnZXIvTGVvbmFyZG8gQ2hpcXVpdHRvCgoyMDEwLTAzLTExIDEyOjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjk1NjY1NzogSGFuZGxlIG92ZXItbGVuZ3RoIEFnZW50WCBPSURzLgogICBQYXRjaCBwcm92aWRlZCBieSBSb2IgV2VzdAoKMjAxMC0wMy0xMSAxMjoxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgU3VwcHJlc3Mgd2FybmluZ3Mgb2YgcG9zc2libGUgYnVmZmVyIG92ZXJmbG93LgogICBUaGlzIGRvZXNuJ3QgX2FjdHVhbGx5XyBwcm90ZWN0IGFnYWluc3Qgc3VjaCBhbiBvdmVyZmxvdywKICAgc2luY2UgdGhlIHRhcmdldCBidWZmZXIgaXMgbm9uLWVtcHR5LCBzbyBzdHJuY2F0IGNhbid0CiAgIHVzZSBpdCBhbGwgYW55d2F5LiBCdXQgdGhpcyBzaG91bGQgYXQgbGVhc3QgbWlzbGVhZCB0aGUKICAgY29tcGlsZXIgc3VmZmljaWVudGx5IHRvIHNodXQgaXQgdXAhCiAgIAogICBQYXRjaCBwcm92aWRlZCBieSBBbmRyZWFzIEphZWdlci4KCjIwMTAtMDMtMTEgMTE6NTcgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUmVwbGFjZSBiYWNrcXVvdGUgd2l0aCBzaW5nbGUgcXVvdGUgaW4gY29uZmlndXJlIG91dHB1dCBtZXNzYWdlLgogICBXaGlsZSB0aGlzIGNoYW5nZSBpcyBwcm9iYWJseSBub3Qgc3RyaWN0bHkgbmVjZXNzYXJ5LCBpdCBmZWVscwogICBzZW5zaWJsZSB0byBhdm9pZCB0aGlzIHBhcnRpY3VsYXIgdXNlIG9mIGJhY2txdW90ZXMsIEp1c3QgSW4KICAgQ2FzZS4KICAgU2VlIGRpc2N1c3Npb24gaW4gUGF0Y2ggIzI5NTIxNjkKCjIwMTAtMDMtMTEgMTE6NDMgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBQQVRDSDogMjk1MjE0MDogT3ZlcmZsb3cgY291bnRlcjMyIGFuZCBnYXVnZTMyCiAgIG9uIDY0Yml0IHN5c3RlbXMgY29ycmVjdGx5CiAgIFBhdGNoIHByb3ZpZGVkIGJ5IExlb25hcmRvIENoaXF1aXR0bwoKMjAxMC0wMy0xMSAxMTozNiAgZHRzMTIKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaCwgdGVzdGluZy9ldmFsX3N1aXRlLnNoOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAyOTUyMDIwOiBFeHBsaWNpdGx5IHNldCBwZXJtaXNzaW9uIG9uCiAgIHRlbXBvcmFyeSB0ZXN0aW5nIG91dHB1dCBkaXJlY3Rvcmllcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTGVvbmFyZG8gQ2hpcXVpdHRvLgoKMjAxMC0wMy0xMSAxMToyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5NTA4NDU6IEZpeCBpZkhpZ2hTcGVlZCBjYWxjdWxhdGlvbgogICBQYXRjaCBwcm92aWRlZCBieSBMZW9uYXJkbyBDaGlxdWl0dG8KCjIwMTAtMDMtMDMgMTY6MTEgIGpzYWZyYW5lawoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZWdlcmF0ZSBjb25maWd1cmUgc2NyaXB0IGFmdGVyIHJldi4gMTgxOTMgKGF1dG9tYXRpYyBSUE0gdmVyc2lvbgogICBkZXRlY3Rpb24pLgogICBOZXQtU05NUCBzaG91bGQgY29tcGlsZSB3aXRoIHJwbS00LjYgYXV0b21hdGljYWxseS4KCjIwMTAtMDItMjMgMTI6MjcgIGpzYWZyYW5lawoKICAgKiBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogRml4ZWQgY29tcGlsYXRpb24gd2l0aCBycG0tNC42LgogICBUdXJuIG9uIHRoZSBsZWdhY3kgQVBJIHdoZW4gcnBtLTQuNiBpcyBkZXRlY3RlZC4KCjIwMTAtMDItMTAgMTA6MDQgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IFN1cHBvcnQgbnVsbC1ieXRlcyBpbiBvY3RldCBzdHJpbmdzCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IFRvbW15IEJlYWRsZQoKMjAxMC0wMi0wOSAxNTowNSAgYnZhc3NjaGUKCiAgICogIC4sIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5oLCB3aW4zMi9NZ210QXBpLXdpbkV4dERMTC5oLCAgIAogICAgICB3aW4zMi9Tbm1wLXdpbkV4dERMTC5oOgoKICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogd29ya3Mgbm93IG9uIFdpbmRvd3MgVmlzdGEsIFdpbmRvd3MgNwogICBhbmQgV2luZG93cyAyMDA4IHRvby4KICAgQ0hBTkdFUzogV2luMzI6IHNpbXBsaWZpZWQgYnVpbGRpbmcgTmV0LVNOTVAgKyB3aW5FeHRETEwgd2l0aAogICBNU1ZDLgogICBDSEFOR0VTOiBNaW5HVzogd2luRXh0RExMOiBidWlsZHMgbm93LgogICBOb3RlOiBhbGwgdGhlc2UgY2hhbmdlcyBoYXZlIGJlZW4gYmFja3BvcnRlZCBmcm9tIHRoZSB0cnVuay4KCjIwMTAtMDItMDkgMTQ6MjkgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBhZGRlZCAjaW5jbHVkZSA8c3RkaW8uaD4gaW4KICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oIHN1Y2ggdGhhdCBOZXQtU05NUCA1LjUKICAgYnVpbGRzIGFnYWluIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gNi4KCjIwMTAtMDItMDggMTk6NDcgIGJ2YXNzY2hlCgogICAqICAuLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oOgoKICAgQ0hBTkdFUzogc25tcGQsIHNubXBsaWI6IFJlbW92ZSB0aGUgaW5saW5lIGRlY2xhcmF0aW9ucyBmb3IKICAgZnVuY3Rpb25zIHRoYXQgbGFjayBhbiBpbmxpbmUgZGVmaW5pdGlvbi4KICAgCiAgIEJhY2twb3J0ZWQgcjE2OTI2IGZyb20gdGhlIHRydW5rIHRvIHRoZSA1LjQgYnJhbmNoIGJlY2F1c2UgTWFyaW8KICAgR2FydG5lciBwb3N0ZWQKICAgcGF0Y2ggMjk0NTIwMiBpbiB3aGljaCBoZSByZXBvcnRlZCB0aGF0IGdjYyBwcmludGVkIHNldmVyYWwKICAgd2FybmluZ3MgbGlrZSB0aGUKICAgZm9sbG93aW5nIGZvciB0aGUgY29kZSBvbiB0aGUgNS40IGJyYW5jaDoKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6MjQxOiB3YXJuaW5nOiBpbmxpbmUKICAgZnVuY3Rpb24gJ3ZvaWQqCiAgIG5ldHNubXBfcmVxdWVzdF9nZXRfbGlzdF9kYXRhKG5ldHNubXBfcmVxdWVzdF9pbmZvKiwgY29uc3QKICAgY2hhciopJyB1c2VkIGJ1dAogICBuZXZlciBkZWZpbmVkCgoyMDEwLTAyLTA1IDA5OjQ4ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IHJlcG9ydCByZWFsIGlmU3BlZWQgb2YgbmV0d29yayBpbnRlcmZhY2UgZXZlbiBpdAogICBpcyBkb3duLgogICBTb21lIGludGVyZmFjZXMgY2FuIHJlcG9ydCB0aGVpciByZWFsIHNwZWVkLCBldmVuIHRoZXkgYXJlIGRvd24uCiAgIEFuZCBpZiB0aGV5IGNhbid0LCB0aGUgZmFsbGJhY2sgdG8gMTBNYnBzIGlzIHN0aWxsIHRoZXJlLgoKMjAxMC0wMi0wMSAwMTowNyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcDoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MDkzOiBzYW1lIGNoYW5nZXMgZm9yIGFsbCBicmFuY2hlcwoKMjAxMC0wMi0wMSAwMTowNSAgdGFuZGVycwoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6ICdtYWtlIHRlc3QgVEVTVE9QVFM9Ii1QIHRjcCInIHdvcmtzIGZpbmUgbm93CgoyMDEwLTAxLTMxIDAxOjQyICB0YW5kZXJzCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE3NzEwIC8gYmFja3BvcnQgb2YgcjE3NzEyOiByZW1vdmUgYW4gb2Jzb2xldGUKICAgbWFudWFsCiAgIHBhZ2UgZnJvbSB0aGUgc2V0IG9mIGZpbGVzIHRoYXQgc2hvdWxkIGJlIGluc3RhbGxlZAoKMjAxMC0wMS0yOSAyMDowNyAganNhZnJhbmVrCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZToKCiAgIEVsYWJvcmF0ZSBvbiByZXYuIDE4MDg5IGFuZCBhZGp1c3QgdGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkgdG8gdGhlCiAgICogICAgKnJlYWxseSB3b3JraW5nIG9uZSouICAyMDEwLTAxLTI5IDE5OjExICBqc2FmcmFuZWsKCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZToKCiAgIEZpeCB0ZXN0IDM1IHdoZW4gY29uZmlndXJlIG9wdGlvbiAnLS13aXRoLXRlbXAtZmlsZS1wYXR0ZXJuJyB3YXMKICAgdXNlZCBhbmQgdGhlIGRpcmVjdG9yeSBmb3IgdGVtcC4gZmlsZXMgZG9lcyBub3QgZXhpc3QgeWV0LgoKMjAxMC0wMS0yNiAwOToyNyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4IHJhcmUgcmFjZSBjb25kaXRpb24gd2hlbiByZWFkaW5nIFJQTQogICBkYXRhYmFzZS4KICAgT2xkIHJwbSB2ZXJzaW9ucyByZXR1cm4gTlVMTCBpbnN0ZWFkIG9mIEhlYWRlciB3aGVuIGFub3RoZXIgUlBNCiAgIGluc3RhbmNlIGhvbGRzCiAgIGRhdGFiYXNlIGxvY2tzLiBJLmUuIHNubXBkIHNvbWV0aW1lcyBjcmFzaGVzIHdoZW4gcmVhZGluZwogICBocl9zd0luc3QgYW5kIHJwbSBpcwogICBpbnN0YWxsaW5nL3VwZGF0aW5nL3JlbW92aW5nIGFub3RoZXIgcGFja2FnZS4gQXMgYSBzb2x1dGlvbiwKICAgd2hvbGUgUlBNIGNhY2hlCiAgIGlzIHRocm93biBhd2F5IGFuZCByZS1yZWFkIHdoZW4gd2UgZ290IGFuIGVycm9yIGZyb20gbGlicnBtLiBUaGUKICAgd2hvbGUgcHJvY2VzcwogICBpcyByZXN0YXJ0ZWQgb25seSB0aHJlZSB0aW1lcywgdG8gcHJldmVudCBlbmRsZXNzIGxvb3AuCgoyMDEwLTAxLTIyIDAwOjM5ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgQ29weXJpZ2h0IGZpbGUgdXBkYXRlIGZvciBTUEFSVEEsIEluYy4KCjIwMTAtMDEtMjEgMTQ6NTUgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBDSEFOR0VTOiBQQVRDSDogMjkyNjM3NDogZnJvbSBFZCBTd2llcms6IGZpeGVkIHJlYWRpbmcgb2YKICAgaXBBZGRyZXNzVGFibGUgZnJvbSAvcHJvYy9uZXQvaWZfaW5ldDYgb24gTGludXgKICAgCiAgIFRoZSBrZXJuZWwgbWlnaHQgcHJvdmlkZSBsb25nZXIgZmllbGRzLCBlc3BlY2lhbGx5IG9uIDY0LWJpdAogICBzeXN0ZW1zLgoKMjAxMC0wMS0yMCAwODo1MyAganNhZnJhbmVrCgogICAqIG1hbi9zbm1wbmV0c3RhdC4xLmRlZjoKCiAgIEZpeCBtaW5vciB0eXBvIGluIG1hbiBwYWdlLCBpdCdzIHNubXBuZXRzdGF0IC1DcCwgbm90IC1DUC4KCjIwMTAtMDEtMDcgMTk6NDIgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgUGF0Y2ggZnJvbSBTdGVwaGVuIEhlbW1pbmdlciB0byBmaXggYSBtaW5vciBtZW1sZWFrIGluIGNwdQogICBzeXNjdHJsIGZldGNoaW5nCgoyMDEwLTAxLTA2IDE3OjU2ICBkdHMxMgoKICAgKiBDSEFOR0VTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDEtMDYgMTc6MjUgIGR0czEyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTAxLTA2IDE3OjA2ICBkdHMxMgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDEtMDYgMTc6MDYgIGR0czEyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wMS0wNiAxNjo1NSAgZHRzMTIKCiAgICogIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgIAogICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsLjMsIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDEwLTAxLTA2IDE2OjQzICBkdHMxMgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsICAgCiAgICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDEtMDYgMTM6MzMgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oOgoKICAgQWRkIHN1cHBvcnQgb2YgbmV0d29yayBpbnRlcmZhY2VzIHdpdGggSFcgYWRkcmVzcyBiaWdnZXIgdGhhbiA2CiAgIGJ5dGVzIHRvIGF0VGFibGUuIFNvbWUgSFcsIGxpa2UgSW5maW5pQmFuZCwgdXNlcyBIVyBhZGRyZXNzZXMKICAgd2l0aCA5IGFuZCBtb3JlIGJ5dGVzLgoKMjAxMC0wMS0wNiAxMjo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDI5MjQxNDA6IEZpeCB0ZXJtaW5hdGlvbiBvZiBDUFUvRlBVIHR5cGVzCgoyMDEwLTAxLTA2IDEyOjMzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOiAyOTIyMzkwOiBGaXggdGVzdCBmb3IgbWlzc2luZyBjb250ZXh0TmFtZSBwYXJhbWV0ZXIKCjIwMTAtMDEtMDUgMjI6MzMgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IEJVR1M6IDI5MTkzNzk6IEluaXRpYWxpc2UgU05NUCBzZXNzaW9ucyBwcm9wZXJseQogICBQcm92aWRlZCBieSBEaWVnbyBCaWxsaQoKMjAxMC0wMS0wNSAyMjoyMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6IDI5MTkzMjA6IEF2b2lkIGFjY2Vzc2luZyBmcmVlZCBtZW1vcnkKICAgUmVwb3J0ZWQgYnkgVG9tYXN6IExpcwoKMjAxMC0wMS0wNSAxODo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDI5MTQ0MTA6IEZpeCBjcmFzaCBvbiBlbXB0eSBjb21tYW5kIGxpbmVzCgoyMDEwLTAxLTA1IDE1OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjkxMjU4NDogRml4IG51bGwgT0lEIGhhbmRsaW5nIGluIEFnZW50eCBvbiA2NGJpdAogICBQYXRjaCBzdXBwbGllZCBieSBMdXR6IEphZW5pY2tlCgoyMDA5LTEyLTIyIDA3OjU5ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBSZXZlcnRlZCByMTc5MjYsIHdoaWNoIG1hZGUgdGhlIHN0cmluZyByZXR1cm5lZCBieQogICByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIHplcm8tdGVybWluYXRlZC4gQSBuZXcgcGF0Y2ggd2lsbAogICBmb2xsb3cKICAgdGhhdCBmaXhlcyB0aGUgY2FsbGVycyBvZiByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIHRoYXQKICAgd2VyZQogICBhc3N1bWluZyB0aGF0IHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgemVyby10ZXJtaW5hdGVzIHRoZQogICBzdHJpbmcKICAgcmVhZCBieSB0aGlzIGZ1bmN0aW9uLgoKMjAwOS0xMi0yMSAxMzo1MiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRm9sbG93LXVwIGZvciByMTc5Mjg6IHdoaWxlIHIxNzkyOCBmaXhlZCBhIGRhbmdsaW5nIHBvaW50ZXIKICAgZGVyZWZlcmVuY2UKICAgZGV0ZWN0ZWQgYnkgcnVubmluZyB0aGUgTmV0LVNOTVAgc29mdHdhcmUgb24gV2luZG93cywgdGhhdCBwYXRjaAogICBpbnRyb2R1Y2VkCiAgIGEgZGFuZ2xpbmcgcG9pbnRlciBkZXJlZmVyZW5jZSBhYm91dCB3aGljaCBvbmx5IFZhbGdyaW5kIG9uIExpbnV4CiAgIGNvbXBsYWluZWQuCiAgIFRoaXMgZm9sbG93LXVwIHBhdGNoIGZpeGVzIGJvdGggZGFuZ2xpbmcgcG9pbnRlciBkZXJlZmVyZW5jZXMKICAgdHJpZ2dlcmVkIGJ5CiAgIHBhcnNpbmcgdGhlIHBlcnNpc3RlbnREaXIga2V5d29yZC4KCjIwMDktMTItMjEgMTI6MjMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEFwcGxpZWQgYSBzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uIG9mIHBhdGNoICMyOTEyMDU1OiBtYWtlIHN1cmUKICAgdGhhdAogICBwYXJzaW5nIHRoZSAicGVyc2lzdGVudERpciIga2V5d29yZCBpbiBzbm1wLmNvbmYgZG9lcyBub3QgdHJpZ2dlcgogICBhCiAgIGRhbmdsaW5nIHBvaW50ZXIuIFRvIG15IHN1cnByaXNlIEJvdW5kc0NoZWNrZXIgY29tcGxhaW5lZCBhYm91dAogICB0aGlzCiAgIChvbiBXaW5kb3dzKSwgYnV0IFZhbGdyaW5kIGRpZCBub3QgcmVwb3J0IHRoaXMgaXNzdWUgKG9uIExpbnV4KS4KCjIwMDktMTItMjEgMTI6MDggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTI1IChmaXggbWVtb3J5IGxlYWsgZHVyaW5nIHN0YXJ0dXApOiB3aGlsZQogICByMTc5MjUgZml4ZWQKICAgb25seSB0aGUgbGVhayB0cmlnZ2VyZWQgZnJvbSBpbnNpZGUgdGhlIGZvci1sb29wLCB0aGlzIHBhdGNoIGRvZXMKICAgbm93IGFsc28KICAgZml4IHRoZSBsZWFrIHRyaWdnZXJlZCBieSB0aGUgbmV0c25tcF90YWJsZV9kYXRhc2V0X2FkZF9yb3coKQogICBjYWxsIG5lYXIKICAgdGhlIGVuZCBvZiBsb2dfbm90aWZpY2F0aW9uKCkuCgoyMDA5LTEyLTIxIDEyOjAxICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBcHBsaWVkIHBhdGNoICMyOTEyMDYyOiBtYWtlIHN1cmUgdGhhdCB0aGUgc3RyaW5nIHJldHVybmVkIGJ5CiAgIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgaXMgcHJvcGVybHkgdGVybWluYXRlZCwgc3VjaCB0aGF0CiAgIHRoZQogICBjYWxsZXJzIG9mIHRoaXMgZnVuY3Rpb24gZG8gbm90IHRyaWdnZXIgcGFzdC1lbmQtb2YtYnVmZmVyIHJlYWRzLgogICBGb3VuZAogICB0aGlzIGlzc3VlIHZpYSBCb3VuZHNDaGVja2VyLgoKMjAwOS0xMi0yMSAxMTowNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgQXBwbGllZCBwYXRjaCAjMjkxMjA2OCwgd2hpY2ggZml4ZXMgYSBtZW1vcnkgbGVhayBkdXJpbmcgc3RhcnR1cC4KICAgVGhlIGZ1bmN0aW9uIGxvZ19ub3RpZmljYXRpb24oKSBhZGRzIGEgcm93IHRvIHRoZSB0YWJsZQogICBubG1Mb2dWYXJUYWJsZSwgYnV0CiAgIHRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBiZWZvcmUgdGhhdCB0YWJsZSBoYXMgYmVlbgogICBpbml0aWFsaXplZC4gSWYKICAgdGhhdCBoYXBwZW5zLCBtZW1vcnkgaXMgYWxsb2NhdGVkIGZvciBhIHJvdyBidXQgdGhhdCBtZW1vcnkgaXMKICAgbmV2ZXIKICAgYWRkZWQgdG8gdGhlIGNhY2hlZCB0YWJsZSBkYXRhLiBUaGUgQm91bmRzQ2hlY2tlciB0b29sIHJlcG9ydGVkCiAgIHRoaXMgYXMKICAgYSAibWVtb3J5IGxlYWsgbGVhdmluZyBzY29wZSIuCgoyMDA5LTEyLTIxIDEwOjU0ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBBZGRlZCB0aGUgZm9sbG93aW5nIHRleHQgdG8gdGhlICJMaW1pdGF0aW9ucyIgc2VjdGlvbiBvZgogICBSRUFETUUud2luMzI6CiAgICJXaGVuIHVzaW5nIHdpbkV4dERMTCwgdGhlcmUgaXMgYW4gb2Zmc2V0IG9mIHVwIHRvIG9uZSBzZWNvbmQKICAgYmV0d2VlbiB0aGUKICAgdmFsdWUgb2YgdGhlIHN5c1VwVGltZSB2YXJiaW5kIGluY2x1ZGVkIGluIHRoZSB0cmFwcyBnZW5lcmF0ZWQgYnkKICAgU05NUAogICBleHRlbnNpb24gRExMcyAoZS5nLiBsaW5rVXAgYW5kIGxpbmtEb3duKSBhbmQgdGhlIHZhbHVlIG9mIHRoZQogICBzeXNVcFRpbWUKICAgdmFyYmluZCBpbmNsdWRlZCBpbiB0cmFwcyBnZW5lcmF0ZWQgYnkgTmV0LVNOTVAgaXRzZWxmIChlLmcuCiAgIGNvbGRTdGFydCkuIgoKMjAwOS0xMi0yMSAxMDo1MCAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQmFja3BvcnRlZCByMTc5MDEgKHNwZWxsaW5nIGZpeGVzIGFuZCBoclN5c3RlbVVwdGltZSBkb2N1bWVudGF0aW9uKS4KCjIwMDktMTItMTcgMTA6MDMgIGR0czEyCgogICAqIG1hbi9zbm1wdGVzdC4xLmRlZjoKCiAgIEZpeCB0eXBvLgoKMjAwOS0xMi0xMSAxNDowNiAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIHdpbkV4dERMTCBidWdzIGZpeGVkOgogICAtIHN5c1VwVGltZS4wIGRvZXMgbm93IHJlcG9ydCB0aGUgY29ycmVjdCB2YWx1ZS4KICAgLSBhIGxpbmtVcCBvciBsaW5rRG93biB0cmFwIGlzIG5vdyBzZW50IGFmdGVyIHRoZSBzdGF0dXMgb2YgYQogICBuZXR3b3JrIGludGVyZmFjZQogICBoYXMgY2hhbmdlZC4KICAgLSB0aGUgdmFsdWUgb2YgdGhlIHN5c1VwVGltZS4wIHZhcmJpbmQgaW4gbGlua1VwIGFuZCBsaW5rRG93bgogICB0cmFwcyBpcyBub3cKICAgY29ycmVjdC4KCjIwMDktMTItMTAgMTU6NDMgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAyOTExMzIzOiBGaXggYWdlbnQgbG9ja3VwIHdoZW4gbW9uaXRvcmluZyBBZ2VudFgtZGVsZWdhdGVkIGluZm9ybWF0aW9uCgoyMDA5LTEyLTEwIDEyOjU0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIEZpeGVkIHRoZSBmb2xsb3dpbmcgd2luRXh0RExMIGJ1Z3M6CiAgIC0gRml4ZWQgYnVnIGluIHRyYXAgZm9yd2FyZGluZzogbGlua0Rvd24gdHJhcHMgd2VyZSBzZW50IGFzCiAgIHdhcm1TdGFydCB0cmFwcwogICBhbmQgbGlua1VwIHRyYXBzIHdlcmUgc2VudCBhcyBsaW5rRG93biB0cmFwcy4KICAgLSBGaXhlZCBhIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSBleHRlbnNpb24gRExMIGxvYWRpbmcuCiAgIC0gQSBkZWJ1ZyB0cmFjZSBzdGF0ZW1lbnQgaXMgbm93IGludm9rZWQgd2hlbmV2ZXIgYSBzZXJpb3VzIGVycm9yCiAgIGhhcyBiZWVuCiAgIGRldGVjdGVkLgoKMjAwOS0xMi0wOSAxNDozNyAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmg6CgogICBDSEFOR0VTOiBzbm1wZDogQWRkIHN1cHBvcnQgb2YgbmV0d29yayBpbnRlcmZhY2VzIHdpdGggSFcgYWRkcmVzcyBiaWdnZXIgdGhhbiA2IGJ5dGVzIHRvIGlwTmV0VG9NZWRpYVRhYmxlIGFuZCBpcE5ldFRvUGh5c2ljYWxUYWJsZS4KICAgU29tZSBIVywgbGlrZSBJbmZpbmlCYW5kLCB1c2VzIEhXIGFkZHJlc3NlcyB3aXRoIDkgYW5kIG1vcmUKICAgYnl0ZXMuIFNubXBkIG9uIExpbnV4IHdhcyBub3QgYWJsZSB0byBwYXJzZSAvcHJvYy9uZXQvYXJwIHRoZW4KICAgYW5kIHByb2R1Y2VkIHVnbHkgJ2lvY3RsIDM1MTIzIHJldHVybmVkIC0xJyB0byBsb2cuCgoyMDA5LTEyLTA4IDIxOjU0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZDogTWFrZSBzdXJlIHRoYXQgYSBtYXNrIGlzIGdpdmVuIHRvIG9wZW4gd2hlbiBPX0NSRUFUIGlzIHNwZWNpZmllZAoKMjAwOS0xMi0wNyAxMDo0NiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIFR3ZWFrIG1pc3Npbmcgc3ViaWRlbnRpZmllciBwcm9jZXNzaW5nIHRvIGJlIG1vcmUgdHlwZS1hd2FyZS4KICAgKEFuIGlzc3VlIHdpdGggQUlYLCBhdCBsZWFzdCkKCjIwMDktMTItMDUgMTc6NDIgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBjYWxsIG5ldHNubXBfcmVhZF9tb2R1bGUgaW5zdGVhZCBvZiByZWFkX21vZHVsZSB0byBtYWtlIGl0CiAgIGNvbXBpbGUgd2l0aCBORVRTTk1QX0NMRUFOX05BTUVTUEFDRQoKMjAwOS0xMi0wNSAxNzoxOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6CgogICBhcHBseSByMTc4NTQgYnVpbGQgZml4IHRvIGFsbCBhZmZlY3RlZCBicmFuY2hlcwoKMjAwOS0xMi0wMiAxNTozOSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgaW52YWxpZCBhY2Nlc3MgdG8gbWVtb3J5IGluIFRDUC1NSUIKICAgVGhpcyBwYXJ0bHkgcmV2ZXJ0cyBwYXRjaCAxNzcxOSAtIHRoZSBlbnRyaWVzICphcmUqIHVzZWQgYWZ0ZXIKICAgcmF3X2RhdGEgY29udGFpbmVyIGlzIGZyZWVkLiBUaGVzZSBlbnRyaWVzIHNob3VsZCBiZSBmcmVlZCB3aGVuCiAgIGFzc29jaWF0ZWQgcm93cmVxX2N0eCBpcyBmcmVlZC4KCjIwMDktMTItMDIgMDg6MzAgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIHVkcFRhYmxlIGluZGV4ZXMgb24gYmlnLWVuZGlhbiA2NGJpdCBMaW51eC4KICAgVGhlIGluZGV4IHdhcyBhbHdheXMgJzAuMC4wLjAnIGluc3RlYWQgb2YgcmVhbCBsb2NhbCBJUCBhZGRyZXNzLgoKMjAwOS0xMi0wMSAxMjozNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBVcGRhdGUgYSByZWR1bmRhbnQgKGFuZCBwcm9iYWJseSBpbmFjY3VyYXRlKSBjb21tZW50LgoKMjAwOS0xMi0wMSAxMjozMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVR1M6IDI4MjIzNjA6IEZpeCBtZW1vcnkgbGVhayB3aGVuIGJ1aWxkaW5nIHRhYmxlIE9JRHMKCjIwMDktMTItMDEgMTI6MDggIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wdGFibGU6IEJVR1M6IDI4Mzc5OTg6IEhhbmRsZSBtaXNzaW5nIGluc3RhbmNlIHN1YmlkZW50aWZpZXJzIGluIHJlc3VsdHMKCjIwMDktMTItMDEgMTE6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUdTOiAyODQxMDA4OiBQcm90ZWN0IGFnYWluc3QgY3Jhc2ggZm9sbG93aW5nIGZhaWxlZCBBZ2VudFggcmVzcG9uc2UKCjIwMDktMTEtMzAgMTY6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUdTOiAyODczODU4OiBGaXggaGFuZGxpbmcgb2Ygc2NoZWRPd25lciBpbmRleC4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWF4IFNjaHViZXJ0LgoKMjAwOS0xMS0zMCAxNjo0NiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgQ0hBTkdFUzogbWliMmM6IEJVR1M6IDI4ODg1Njk6IEZpeCBnZW5lcmF0aW9uIG9mIHRhYmxlIGNvbHVtbnMgYXJyYXkKCjIwMDktMTEtMzAgMTY6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUdTOiAyODk0MDU5OiBIYW5kbGUgZXJyb3JzIHdoZW4gY291bnRpbmcgaW50ZXJmYWNlcwoKMjAwOS0xMS0zMCAxNjowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHOiAyODk3MDAwOiBTdXBwcmVzcyAzMi1iaXQgY291bnRlciB0cnVuY2F0aW9uIHdhcm5pbmdzLgoKMjAwOS0xMS0zMCAxNToxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI5MDEwMjk6IEZpeCBjb21waWxlciB3YXJuaW5nIG9uIENsb3NlSGFuZGxlKCkKICAgRW5kaWFuIHByb2JsZW1zIGFscmVhZHkgYWRkcmVzc2VkIGJ5IHBhdGNoICMyODM1NTc2CgoyMDA5LTExLTMwIDE1OjEzICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDI4OTA5MzE6IEJldHRlciBoYW5kbGluZyBvZiBDb3VudGVyNjQgdmFsdWVzLgogICBQYXRjaCBwcm92aWRlZCBieSBNYXggUm9tYW5vdi4KCjIwMDktMTEtMzAgMTU6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODg3ODE2OiBQcm90ZWN0IGFnYWluc3QgZGl2aXNpb24tYnktemVybyBjcmFzaAoKMjAwOS0xMS0zMCAxNDo0OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg4MzE1NTogRml4IG1lbW9yeSBsZWFrIGluIHByb3h5IGhhbmRsaW5nLgogICBQYXRjaCBzdXBwbGllZCBieSBHb3d0aGFtIFRob21tYW5kcmEuCgoyMDA5LTExLTMwIDE0OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg3NzUxODogRml4IGhhbmRsaW5nIG9mIHNjb3BlZCBBZ2VudFggdmFyaWFibGVzCgoyMDA5LTExLTI3IDA4OjU0ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYzoKCiAgIFJlbW92ZSBleGVjdXRhYmxlIGF0dHJpYnV0ZSBmcm9tIHNvdXJjZSBmaWxlcy4KCjIwMDktMTEtMTMgMTI6NTkgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBsb2dnaW5nIG9mICd0cnVuY2F0aW5nIGludGVnZXIgdmFsdWUgPiAzMiBiaXRzJyBpbiBJUC1NSUIgYW5kIFRDUC1NSUIKICAgVGhlIGNvdW50ZXJzLCB3aGljaCBncm93IGZhc3QgYXJlIG5vdyBjdXQgdG8gMzJiaXRzLgoKMjAwOS0xMS0xMSAwOTowMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBGaXggY2FjaGUgZnJlZSByb3V0aW5lIHRvIG1hdGNoIGhlYWRlciBkZWNsYXJhdGlvbi4KICAgUmV0dXJuIHN1Y2Nlc3MvZmFpbHVyZSB2YWx1ZXMgZnJvbSBjYWNoZSBsb2FkIHJvdXRpbmUuCiAgIFByb2JsZW0gaWRlbnRpZmllZCBieSBYdWFuLgoKMjAwOS0xMC0yOSAxNjowNSAgZHRzMTIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLCAgIAogICAgICBwZXJsL0FTTi9BU04ucG0sIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvT0lEL09JRC5wbSwgICAKICAgICAgcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgICAKICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sIHBlcmwvYWdlbnQvYWdlbnQucG0sICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgc2Vkc2NyaXB0LmluLCAgIAogICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC4zLnByZTEgKQoKMjAwOS0xMC0yOSAxNDoyNCAgZHRzMTIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA5LTEwLTI5IDExOjQ2ICBkdHMxMgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOS0xMC0yOSAxMDozMCAgZHRzMTIKCiAgICogIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgIAogICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsLjMsIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTEwLTI5IDEwOjI4ICBkdHMxMgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40LjMucHJlMSApCgoyMDA5LTEwLTI5IDA5OjU1ICBkdHMxMgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOS0xMC0wOSAxMjozOCAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyODcxNzQ3OiBwbHVnIG1lbW9yeSBsZWFrIGluIE9JRCBwcm9jZXNzaW5nLgogICBUaGUgbWVtb3J5IGxlYWtlZCB3aGVuIHNtYWxsIE9JRCwgd2hpY2ggY291bGQgZml0IHByZS1hbGxvY2F0ZWQKICAgdnAtPm5hbWVfbG9jLCB3YXMgcGxhY2VkIGluIGRpZmZlcmVudCAoYWxsb2NhdGVkKSBvbmUuCgoyMDA5LTEwLTA5IDA1OjMxICBtYWdmcgoKICAgKiBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmM6CgogICBDSEFOR0VTOiBCVUc6IDI4MzgyNDM6IENvcnJlY3QgdGhlIG91dHB1dCBvZiB1bnNpZ25lZCB2YWx1ZXMuCiAgIFRoYW5rcyB0byBKYWNrIEh1YW5nIG9mIFF1YWxjb21tIHdobyBwb2ludGVkIG91dCB0aGlzIGJ1Zy4KCjIwMDktMTAtMDkgMDU6MDAgIG1hZ2ZyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZSB0aGUgcGFyc2luZyBvZiByYW5nZXMgdG8gYWNjZXB0IGFsbAogICB2YWxpZCB2YWx1ZXMuCgoyMDA5LTEwLTA3IDEyOjUwICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgY3JlYXRpb24gb2Ygdmlld3MgdXNpbmcgc25tcHVzbSwgT0lEcyB3aXRoCiAgIGluZGV4ZXMgPiAyNTUgYXJlIGFsbG93ZWQgbm93LgogICBUaGlzIHJldmVydHMgU1ZOIGNvbW1pdCAjNzQ5Mi4KCjIwMDktMTAtMDUgMTk6MTkgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmlsZV91dGlscy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdGV4dF91dGlscy5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ29ycmVjdCB0aGUgc3BlbGxpbmcgb2YgX19jcGx1c3BsdXMgd2hlbgogICBjaGVja2luZyBpZiB0aGUgZmlsZSBzaG91bGQgYmUgd3JhcHBlZCBpbiBleHRlcm4gIkMiLgoKMjAwOS0wOS0zMCAxMDoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIENIQU5HRVM6IFNvbGFyaXM6IFByb3RlY3QgYWdhaW5zdCBtaXNzaW5nIHBhY2thZ2UgdmVyc2lvbgogICBpbmZvcm1hdGlvbiBjcmFzaGluZyB0aGUgYWdlbnQuCiAgIFByb2JsZW0gcmVwb3J0ZWQgYnkgSW55YXZlbiBTYWthcmFpLgoKMjAwOS0wOS0yMyAyMzo0MCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgcHJvcGVyIHByb2plY3QgY2FwaXRhbGl6YXRpb24KCjIwMDktMDktMjIgMjE6NTEgIHRhbmRlcnMKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBmaXggdHlwb3MKCjIwMDktMDgtMjYgMTQ6NTAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBib2d1cyBmYWlsdXJlcyAocmV0dXJuaW5nIDApIGFuZCBzdWJzZXF1ZW50CiAgIGRvdWJsZS1mcmVlcywKICAgZHVlIHRvIDE1LS8zMS1iaXQgbWFza2luZyB3aGVuIHNlbGVjdGluZyByZXF1ZXN0IElEcy4gSWRlbnRpZmllZAogICBieSBrcm9tZXNreS4KCjIwMDktMDgtMDUgMjA6MDcgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAgIAogICAgICBzbm1wbGliL2ZpbGVfdXRpbHMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDI4MjIzNTU6IEZpeCBtZW1vcnkgbGVha3Mgb24KICAgdWRwRW5kcG9pbnRUYWJsZSAobGludXgpCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEZyYW5rIExpY2h0ZW5oZWxkCgoyMDA5LTA4LTA1IDE5OjA1ICBkdHMxMgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMjgyMjMzNzogRml4IG1lbW9yeSBsZWFrIGluCiAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlCgoyMDA5LTA4LTA1IDE1OjEyICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgRml4IG1lbW9yeSBsZWFrIGluIFVEUC0gYW5kIFRDUC1NSUIuCiAgIFRoZSBkYXRhIGZyb20gcmF3X2RhdGEgYXJlIGNvcGllZCB0byBjYWNoZSwgc28gaXQgc2hvdWxkIGJlCiAgIGZyZWVkLgoKMjAwOS0wOC0wNSAxMDoxNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIENIQU5HRVM6IGFwcHM6IEJVRzogMjgxMTU3NzogRml4IGJ1ZyBpbiBHZXRCdWxrIGhhbmRsaW5nLgogICBEb24ndCBnZXQgY29uZnVzZWQgYnkgaW5kZXggdmFsdWVzIHRoYXQgY29udGFpbiBhICc6JyBjaGFyYWN0ZXIuCgoyMDA5LTA4LTA0IDIxOjU5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaToKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDI4MjcyNjk6IFN1cHByZXNzIG5vbi1vcmRlcmVkIFRPRE8gY29tbWVudHMuCgoyMDA5LTA4LTA0IDIxOjM1ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBIYW5kbGUgZ2VuZXJhdGluZyBjb2RlIGZvciBhIHNpbmdsZSB0YWJsZSwKICAgYXMgd2VsbCBhcyBhIGxhcmdlciBncm91cC4KICAgQWxzbyBhZGRyZXNzZXMgYnVnIDIxNTAyODUKCjIwMDktMDgtMDQgMTA6NTcgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZnJvbSAiTWFyY3VzIFL8Y2tlcnQiOiBmaXggcG9zc2libGUgY3Jhc2ggd2hlbgogICA2NC1iaXQgY291bnRlcnMgaW4gaXBTeXN0ZW1TdGF0c1RhYmxlIGdldCBiaWdnZXIgdGhhbiAyXjMyCgoyMDA5LTA3LTI3IDEyOjEzICBoYXJkYWtlcgoKICAgKiBtYW4vbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMzoKCiAgIHJlbW92ZSBvdXRkYXRlIGNhc2UtY29uZmxpY3RpbmcgbWFudWFsIHBhZ2UKCjIwMDktMDctMjcgMTI6MDYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6CgogICBDSEFOR0VTOiBmcmVlYnNkOiBwYXRjaCBmcm9tIENlemFyeSBNb3JnYSB0byBmaXggYSBtYWtlIHRlc3Qgb24KICAgZnJlZWJzZAoKMjAwOS0wNy0yMyAyMToyOSAgYWxleF9iCgogICAqIFJFQURNRToKCiAgIFVwZGF0ZSBlbWFpbCBhZGRyZXNzIGluIFJFQURNRS4KCjIwMDktMDctMjEgMTI6MTMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEZpeCBtaXNzaW5nIHNlbWljb2xvbiB0eXBvcy4KCjIwMDktMDctMjEgMDk6MTUgIGR0czEyCgogICAqIEZBUToKCiAgIE5ldyBzdWdnZXN0ZWQgZW50cmllcy4KCjIwMDktMDctMjAgMTk6MjQgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gQ09ESU5HIHNlY3Rpb24uCgoyMDA5LTA3LTE5IDE1OjA5ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIENPTVBJTElORyBzZWN0aW9uLgoKMjAwOS0wNy0xMCAwNzo0NiAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGxvY2FsL21pYjJjOgoKICAgRml4IGFub3RoZXIgSVB2NCBhZGRyZXNzIHNpemUgLSBsb25nIGhhcyA4IGJ5dGVzIG9uIDY0Yml0IExpbnV4LgogICBBbHNvIGZpeCB0aGUgZGVmYXVsdCB0eXBlIGZvXkNBU05fSVBBRERSRVNTIGluIG1pYjJjLCBzbyB0aGUKICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYyBjYW4gYmUgc2FmZWx5IHJlZ2VuZXJhdGVkLgoKMjAwOS0wNy0wNyAxNTo0NiAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgRml4IElQIGFkZHJlc3MgbGVuZ3RoIG9uIDY0IGJpdCBzeXN0ZW1zIGluIG1pYklJLCBwYXNzIGFuZAogICBwYXNzX3BlcnNpc3QgbW9kdWxlcy4KCjIwMDktMDctMDcgMTU6MjQgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgVXNlIGNvcnJlY3RseSBzaXplZCBJUCBhZGRyZXNzZXMgaW4gYWRkcmVzcyB0cmFuc2xhdGlvbiB0YWJsZQogICBwcm9jZXNzaW5nIC0gdV9sb25nIGNhbiBtYWtlIHByb2JsZW1zIG9uIGJpbiBlbmRpYW4gNjQgYml0CiAgIHN5c3RlbXMKCjIwMDktMDYtMTYgMTU6MTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgY2hlY2sgZm9yIG51bGwgcG9pbnRlciBiZWZvcmUgZGVyZWYKCjIwMDktMDYtMTUgMTU6MjUgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gQUdFTlQgc2VjdGlvbi4KCjIwMDktMDYtMTQgMjI6MDEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgcG9ydGFiaWxpdHkgZml4IChzeW5jIHdpdGggNS41KQoKMjAwOS0wNi0xMSAyMzowOSAgaGFyZGFrZXIKCiAgICogIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvd2lucGlwZS5jLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgQ0hBTkdFUzogd2luMzI6IFBBVENIOiAyNjkzNzQ2OiBmcm9tIGJ2YXNzY2hlOiBpbXByb3ZlZCBzb2NrZXQgc3RhcnR1cCBzdXBwb3J0CgoyMDA5LTA2LTExIDIyOjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIwMTI0MDI6IGRvbid0IGZhaWwgb24gZmFpbHVyZSB0byBsb29rIHVwIGludGVyZmFjZSBlcnJvciBjb3VudGVycy4KCjIwMDktMDYtMDMgMTI6MzUgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0hFUzogMjc5Mzg1NzogUmVwb3J0IGZhaWxlZCBhc3luY2hyb25vdXMgcmVxdWVzdHMuCgoyMDA5LTA2LTAzIDExOjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICBSZW1vdmUgcGF0Y2ggIzIxODI1OTIgLSByZXZlcnQgdG8gU1ZOIHJldmlzaW9uIDE3NjQ2CiAgIFRoZSBjbGVhbnVwIHJvdXRpbmVzIGRvbid0IGFwcGVhciB0byBleGlzdC4KCjIwMDktMDYtMDMgMTA6MTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIFBBVENIOiAyMTgyNTkyOiBDbGVhbiB1cCB2YWNtQ29udGV4dFRhYmxlIGFmdGVyIHVucmVnaXN0cmF0aW9ucwogICBQYXRjaCBzdXBwbGllZCBieSBKb2huIEZvcnN5dGgKCjIwMDktMDYtMDMgMTA6MTIgIGR0czEyCgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAyNzk3MjUxOiBTdXBwb3J0IG11bHRpcGxlIGluaXRpYWxpc2F0aW9uIGFuZCBzaHV0ZG93biwgZml4IG1lbW9yeSBsZWFrcwogICBQYXRjaCBzdXBwbGllZCBieSBJdm9zaAoKMjAwOS0wNi0wMSAxNTo1MyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDSEFOR0VTOiBkb2NzOiBQQVRDSEVTOiAyNzg4MDcyOiBEb2N1bWVudCAnbG9nbWF0Y2gnIGZ1bmN0aW9uYWxpdHkuCgoyMDA5LTA2LTAxIDE1OjUwICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCBzbm1wbGliL21pYi5jLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAyNzgwNDExOiBGaXggY29tcGlsZXIgd2FybmluZ3MKCjIwMDktMDYtMDEgMTU6MzcgIGR0czEyCgogICAqICBhY2xvY2FsLm00LCBjb25maWd1cmUsIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL21vbml0b3IsICAgCiAgICAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtYW4vc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBDSEFOR0VTOiBkb2NzOiBQQVRDSDogMjc5NTczOTogRml4IGluY29ycmVjdCBkaXNrL2ZpbGUgc2l6ZSBkZXNjcmlwdGlvbnMgJiB1bml0IHNwZWNpZmllcnMKCjIwMDktMDYtMDEgMTM6MTEgIGR0czEyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICBSZXdvcmsgZXhhbXBsZSBjb25maWd1cmF0aW9uIGZpbGUgdG8gbWF0Y2ggY3VycmVudCBzbm1wZC5jb25mKDUpCiAgIHN0cnVjdHVyZSwgYW5kIG1vcmUgY2xlYXJseSBpbGx1c3RyYXRlIGN1cnJlbnQgYmVzdCBwcmFjdGlzZS4KCjIwMDktMDUtMjkgMDk6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaDoKCiAgIEF1dG9tYXRpY2FsbHkgbG9hZCB0aGUgZXhhbXBsZSBwYXNzdGVzdCBNSUIKCjIwMDktMDUtMjkgMDk6MDggIGR0czEyCgogICAqIGxvY2FsL3Bhc3N0ZXN0LnBsLCBtaWJzL01ha2VmaWxlLmluLCBtaWJzL05FVC1TTk1QLVBBU1MtTUlCLnR4dDoKCiAgIFJld29yayAicGFzc3Rlc3QiIGV4YW1wbGVzIHRvIGZ1bGx5IHZhbGlkYXRlIEdFVE5FWFQgcmVxdWVzdHMsCiAgIGFuZCB1c2UgYSBsZWdpdGltYXRlIE1JQiBzdHJ1Y3R1cmUgZm9yIG91dHB1dC4KICAgQWRkIGFuIGV4YW1wbGUgTUlCIHRvIGRlZmluZSB0aGF0IHN0cnVjdHVyZS4KCjIwMDktMDUtMjggMTI6NTUgIGR0czEyCgogICAqIEZBUToKCiAgIFN5bmNocm9uaXNlIHdpdGggbGF0ZXN0IEZBUQogICAoaW5jbHVkaW5nIDUuNSByZXZpc2lvbnMgdXAgdG8gTUlCcyBzZWN0aW9uKQoKMjAwOS0wNS0xOSAxNzo1MCAgYWxleF9iCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIFVwZGF0ZSBQZXJsIFRyYXBSZWNlaXZlciBleGFtcGxlIHRvIHByb3Blcmx5IG91dHB1dCB0aGUKICAgc2VjdXJpdHlFbmdpbmVJRCBhbmQgY29udGV4dEVuZ2luZUlELgoKMjAwOS0wNS0xOCAxMDowMyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgQXZvaWQgZGl2aXNpb24gYnkgemVyby4KCjIwMDktMDUtMTUgMTk6MjIgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMjc4MjcwMDogYnVpbGQgZmFpbHVyZSB3aGVuIHVzaW5nIC0td2l0aC1wa2NzIG9uIFNvbGFyaXMKCjIwMDktMDUtMTUgMTQ6NTkgIGpzYWZyYW5lawoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBGaXggY29tcGlsYXRpb24gb2YgcnBtIHBhY2thZ2VzIG9uIEZlZG9yYSA+PSAxMCAtIGl0IGhhcyBuZXdlcgogICBSUE0gYW5kIHRoZSBvbGQgQVBJIG5lZWRzIHRvIGJlIGV4cGxpY2l0bHkgZW5hYmxlZCBieSBhIG1hY3JvLgoKMjAwOS0wNS0xNCAxMzozOSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBUaGUgc25tcGNtZCBtYW4gcGFnZSBpcyBub3Qgc3BlY2lmaWMgaG93IHJhbmdlIG9mIGxvZyBwcmlvcml0aWVzCiAgIHNob3VsZCBiZSBzcGVjaWZpZWQgb24gY29tbWFuZCBsaW5lLAogICBpLmUuIGJvdGggLUxPIDQtMCBhbmQgLUxPIDAtNCBhcmUgdmFsaWQuIEFsbCBzbm1wIGNvbW1hbmRzIChpbmNsLgogICBzbm1wZCkgc2hvdWxkIHJlY29nbml6ZSB0aGF0LgoKMjAwOS0wNS0xNCAwODozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQWxsb3cgIm1vbml0b3IiIHRvIGhhbmRsZSBuZWdhdGl2ZSB0aHJlc2hvbGQgdmFsdWVzLgogICBSZXBvcnRlZCBieSBSaWNoYXJkIEdpcHBzLgoKMjAwOS0wNS0xMyAyMjozMiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjc5MTQxNzogZml4IHNubXBkIHNlZ2ZhdWx0IHdoZW4gcnVuIHdpdGggLURBTEwKICAgUGF0Y2ggc3VwcGxpZWQgYnkgUm9uIFJvc2tlbnMuCgoyMDA5LTA1LTEzIDA4OjAyICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEJyaW5nIGRvY3VtZW50YXRpb24gb2Ygbm90aWZpY2F0aW9uRXZlbnQgc3ludGF4IGludG8gbGluZSB3aXRoIHJlYWxpdHkuCiAgIChVc2VzICItbSIgcmF0aGVyIHRoYW4gIi1uIiB0byByZWdpc3RlciBzdGFuZGFyZCBNSUIgcGF5bG9hZCBvYmplY3RzKQogICBJbmNvbnNpc3RlbmN5IHJlcG9ydGVkIGJ5IFJpY2hhcmQgR2lwcHMuCgoyMDA5LTA1LTEyIDIzOjI2ICBhbGV4X2IKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIFdpbjMyOiBCdWlsZCBmaXhlcyAtIGNoYW5nZSB1bnNpZ25lZCBsb25nIGxvbmcgdG8gdWludDY0X3QuCgoyMDA5LTA1LTA3IDIzOjAwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfaHB1eC5jOgoKICAgYnVpbGQgZml4IGZvciBIUC1VWDogaW5jbHVkZSA8c3lzL3BhcmFtLmg+IGZvciBERVZfQlNJWkUKCjIwMDktMDQtMjYgMTM6MDYgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiBVcGRhdGUgYnVpbGQgaW5zdHJ1Y3Rpb25zIGluIGNvbW1lbnRzLgoKMjAwOS0wNC0yNCAwNzozMSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IEhQLVVYOiBCVUc6IDI3Nzk0NzI6IEZpbGVzeXN0ZW1zIG1pc3NpbmcgaW4gaHJTdG9yYWdlIHRhYmxlIG9uIEhQLVVYIDExLjMxCiAgIChhbGxvdyBmb3IgbW50dGFiIHRoYXQgaXMgYSBjaGFyYWN0ZXIgc3BlY2lhbCBkZXZpY2UpCgoyMDA5LTA0LTI0IDAxOjM2ICBhbGV4X2IKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBDSEFOR0VTOiBXaW4zMjogQlVHOiAyNzc5NTQxIEZpeGVkIGhhbmRsZSBsZWFrIGluIHBhc3NfcGVyc2lzdC4KCjIwMDktMDQtMjMgMjM6MTQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBDSEFOR0VTOiBBSVg6IEJVRzogMjcxMjY3MDogQWdlbnQgY3Jhc2hlcyBvbiBBSVggd2l0aCBoclN0b3JhZ2UKCjIwMDktMDQtMjMgMjI6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgZml4IEMrKyBzdHlsZSBjb21tZW50cwoKMjAwOS0wNC0yMyAyMjoxNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIGltcHJvdmUgZXJyb3IgbWVzc2FnZSB3aGVuIGZhaWxpbmcgdG8gb3BlbiBtbnR0YWIKCjIwMDktMDQtMjMgMjI6MTAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBIUC1VWDogQlVHOiAyNzc5NDcyOiBGaWxlc3lzdGVtcyBtaXNzaW5nIGluIGhyU3RvcmFnZSB0YWJsZSBvbiBIUC1VWCAxMS4zMQoKMjAwOS0wNC0yMyAyMTo0OCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBQQVRDSDogMjc1MTU4ODogSW5jb25zaXN0ZW50IGRhdGEgKGUuZy4gVURQL1RDUCBNSUIgc2NhbGFyIHZhbHVlcyBvZiB6ZXJvKSBjYW4gYmUgcmVwb3J0ZWQgb24gU29sYXJpcyAxMFU0KwogICBQYXRjaCBwcm92aWRlZCBieSBBbmRlcnMgUGVyc3NvbgoKMjAwOS0wNC0yMyAxNjo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgQ0hBTkdFUzogc29sYXJpczogUEFUQ0g6IDIwMTI0MDQ6IGRlYWwgd2l0aCBtb3JlIHRoYW4gMTAgaW50ZXJmYWNlcy4gTmV3IGhhcmRjb2RlZCBsaW1pdCBpcyA1MC4gQSBiZXR0ZXIgc2NhbGluZyBwYXRjaCB3b3VsZCBiZSBhcHByZWNpYXRlZCA6LSkKCjIwMDktMDQtMjMgMTY6MzUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgQ0hBTkdFUzogbWliMmM6IFBBVENIOiAyMTM2NDM3OiBtYWtlIEZMQUcgZGVmaW5lcyBtb3JlIDY0Yml0IGZyaWVuZGx5IHdoZW4gaHVnZSB0YWJsZXMgYXJlIGVuY291bnRlcmVkCgoyMDA5LTA0LTIzIDE2OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2hwdXguYzoKCiAgIENIQU5HRVM6IGhwdXg6IFBBVENIOiAyMDg4NzI2OiBmcm9tIHJhdmluZHJhMTEwMyB0byBmaXggYW4gaXNzdWUKICAgd2l0aCBocHV4IHJlcG9ydGluZyBtZW1vcnkgaW4gbmVnYXRpdmUgdmFsdWVzLgoKMjAwOS0wNC0yMyAxNjoyMSAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50LnB5OgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMjA3NDgxNzogZnJvbSBmZW5uZXIgdG8gZml4IHJlZ2V4cCBlbmdpbmUgQ1BVIHBlcmZvcm1hbmNlIGlzc3VlcwoKMjAwOS0wNC0yMyAxNjoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIxNjI2NTI6IHBhdGNoIHRvIGZpeCBzaW1wbGUgaHJmcyBjaGVja3Mgd2hlbiBORlMgaXMgaW4gdXNlLgoKMjAwOS0wNC0yMyAxNjoxMSAgaGFyZGFrZXIKCiAgICogIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BbnlEYXRhX1NOTVAvRm9ybWF0LnBtLCAgIAogICAgICBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLCBwZXJsL09JRC9PSUQucG0sIHBlcmwvU05NUC9TTk1QLnBtLCAKICAgICAgICBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgcGVybC9hZ2VudC9hZ2VudC5wbSwgICAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCBwZXJsL21hbmFnZXIvbWFuYWdlci5wbToKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyMTgyMDc5OiBhcHBseSBwYXRjaCBmcm9tIGludDMyIHRvIGZpeCBhCiAgIG51bWJlciBvZiBwZXJsIHdhcm5pbmdzIGFuZCBmaXggdGhlIG1vZHVsZXMgc28gdGhhdCB1c2Ugc3RyaWN0IGlzCiAgIHBvc3NpYmxlCgoyMDA5LTA0LTIzIDE1OjU4ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLCAKICAgICAgICBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsICAgCiAgICAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcHYzLmM6CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDIxODQwMzk6IG1pc2MgZml4ZXMgZm9yIGZyZWVpbmcgbWVtb3J5CiAgIGR1cmluZyBlcnJvciBjb25kaXRpb25zLgoKMjAwOS0wNC0yMyAxNTo0NyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjM2MTcxMjogZnJvbSBrYnJpbnQgdG8gZml4IGdldGJ1bGsKICAgb3B0aW1pemF0aW9uIGR1cmluZyB3YWxrcyB3aGVyZSBlbmQgY29uZGl0aW9ubnMgYXJlIG1ldCBvbiBtaWRkbGUKICAgT0lEcyBmaXJzdC4KCjIwMDktMDQtMjMgMTU6MzUgIGFsZXhfYgoKICAgKiBSRUFETUU6CgogICBSRUFETUUgVGhhbmtzIHVwZGF0ZQoKMjAwOS0wNC0yMyAxNTowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggZnJvbSBUdXNoYXIgR29oYWQgdG8gY2xlYW4gdXAgbm90aWZpY2F0aW9uCiAgIHJlZ2lzdGVyYXRpb25zIGR1cmluZyBkaXNtYW4gZXZlbnQgbWliIGNsZWFudXAgcHJvY2Vzc2luZy4KCjIwMDktMDQtMjMgMTQ6NTUgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5jOgoKICAgRml4IG1lbW9yeSBsZWFrIGluIFNDVFAgY29udGFpbmVycy4KCjIwMDktMDQtMjMgMDM6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI1MDU0ODg6IGZyb20gZGFib2tleSB0byBmaXggYWxhcm1zIG5vdAogICBiZWluZyB0cmlnZ2VyZWQgYXQgdGhlIHJpZ2h0IHRpbWVzIGR1ZSB0byBsYXJnZSBjbG9jayBza2V3cy4KCjIwMDktMDQtMjIgMjM6NDkgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaCwgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIENIQU5HRVM6IHBvcnRzOiBQQVRDSDogMjY4ODM0MjogZnJvbSBhaG1ha2UgdG8gZml4IHZhcmlvdXMKICAgY29tcGlsZXIgd2FybmluZwoKMjAwOS0wNC0yMiAyMjoxMSAgYWxleF9iCgogICAqIFJFQURNRSwgUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlIFRIQU5LUyBzZWN0aW9uLgoKMjAwOS0wNC0yMiAxMDowOCAgZHRzMTIKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICBDb3JyZWN0IGEgc2VyaW91c2x5IG1pc2xlYWRpbmcgKGkuZS4gd3JvbmcpIGRlc2NyaXB0aW9uIG9mIHRoZQogICBwdXJwb3NlIGFuZCBiZWhhdmlvdXIgb2YgdGhlIHByaW50X2Rlc2NyaXB0aW9uIGZhbWlseSBvZiBjYWxscy4KCjIwMDktMDQtMTAgMjM6MTggIGFsZXhfYgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLCBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBQQVRDSCAyNjkxODc2OiBBcHBsaWVkIHBhdGNoIGJ5IHJkaWV6IHRvIGFsbG93CiAgIGNvbXBpbGluZyB0aGUgc2VydmljZXMgdXNpbmcgdW5pY29kZS4KCjIwMDktMDQtMTAgMjI6NTUgIGFsZXhfYgoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwLCB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgd2luMzIvc25tcGQvc25tcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcCwgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgV2luMzI6IFBBVENIIDI2ODgzMDk6IEFwcGxpZWQgcGF0Y2ggYnkgQmFydCBWYW4gQXNzY2hlIHRvIHJlbW92ZQogICBNU1ZDIDIwMDUvMjAwOCBjb21waWxlciB3YXJuaW5ncy4KCjIwMDktMDQtMTAgMjE6NDUgIGFsZXhfYgoKICAgKiB3aW4zMi9Db25maWd1cmU6CgogICBXaW4zMjogTWlub3IgYnVpbGQgYW5kIHJlYWRtZSB1cGRhdGVzLgoKMjAwOS0wNC0xMCAyMTozOCAgYWxleF9iCgogICAqICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgTkVXUzogV2luMzI6IFBBVENIIDI2ODYyNDg6IEFwcGxpZWQgcGF0Y2ggYnkgQmFydCBWYW4gQXNzY2hlCiAgIHdoaWNoIGZpeGVzIHNldmVyYWwgd2luRXh0RExMIGJ1Z3MuCgoyMDA5LTA0LTEwIDIwOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICByZXN0b3JlIGFubm95aW5nIGxvZyBtZXNzYWdlLCBidXQgZml4IGNhdXNlIG9mIGl0IG9uICFmcmVlYnNkIHN5c3RlbXMKCjIwMDktMDQtMDkgMTI6MjggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTU1MDczMDogUmVwb3J0IGVycm9ycyBmcm9tIGl0ZXJhdG9yLWJhc2VkIGhhbmRsZXJzLgogICBCYXNlZCBvbiBhIHBhdGNoIHByb3ZpZGVkIGJ5IFdheW5lIEdsYW50egoKMjAwOS0wNC0wOSAxMTo0MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjEyNDI4ODogRml4IHNldHRpbmcgb2YgdXNtVXNlclByaXZQcm90b2NvbCBhdCBjcmVhdGlvbi4KICAgTG9naWMgYnVnLCByZXBvcnRlZCBieSBSYW1lc2ggS290YWJhZ2kKCjIwMDktMDQtMDkgMDk6MTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDIyNTgyMjk6IFJlbW92ZSBtaXNsZWFkaW5nIGNvbW1lbnQKICAgUGF0Y2ggcHJvdmlkZWQgYnkgRGFuIEFuZGVyc29uCgoyMDA5LTA0LTA5IDA5OjA4ICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMjI2MDgyODogRml4IHB5dGhvbiBzbm1wd2FsayBtZW1vcnkgbGVhawogICBQYXRjaCBwcm92aWRlZCBieSBHYWJyaWVsZSBNZXNzaW5lbwoKMjAwOS0wNC0wOSAwODo1NCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSDogMjMxNjEyNzogRml4IGJ1ZyBpbiBpdGVyYXRlX2FjY2VzcyBnZW5lcmF0ZWQgY29kZS4KCjIwMDktMDQtMDkgMDg6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI0MzU3OTM6IFN1cHBvcnQgNjQtYml0IElGLU1JQiBjb3VudGVycyBvbiBzeXNjdGwgKCpCU0QpIHN5c3RlbXMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEphbiBBbmRyZXMKCjIwMDktMDQtMDggMTY6MDAgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjM4NDc3OTogRml4IGhhbmRsaW5nIG9mIEdldEJ1bGsgd2l0aCBOPjAsTT09MAogICBQYXRjaCBwcm92aWRlZCBieSBBbmd1cyBTYWxrZWxkCgoyMDA5LTA0LTA4IDE1OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI0MDYzNzg6IEZpeCBoclNXUnVuUGVyZk1lbSBvbiA2NC1iaXQgU29sYXJpcyBzeXN0ZW1zCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE5Ud29PCgoyMDA5LTA0LTA4IDE1OjQ4ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI0Nzk3MDA6IEZpeCB6b25lZCBJUCBhZGRyZXNzIHVzZWQgYXMgdGFibGUgaW5kaWNlcwogICBQYXRjaCBwcm92aWRlZCBieSBCcmlhbiBSZXRmb3JkLgoKMjAwOS0wNC0wOCAxNTozMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyNDkyMzc3OiBGaXggdHlwby9idWcgaW4gc25tcF9lbmFibGVfY2FsbGJhY2soKQogICBSZXBvcnRlZCBieSBqb3ljZWFubWFjaGluZQoKMjAwOS0wNC0wOCAxNToxNiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI1MzgxNjk6IFByZXZlbnQgaW5maW5pdGUgcmV0cmllcyBmb3IgYW4KICAgaW52YWxpZCBlcnJvci1pbmRleC4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgRG91ZyBNYW5sZXkKCjIwMDktMDQtMDggMTQ6NTggIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIOiAyNTgwOTc5OiBGaXggcHl0aG9uIHNlc3Npb24gcG9pbnRlcnMgb24gNjQtYml0IHN5c3RlbXMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEpvaG4gS2h2YXRvdi4KCjIwMDktMDQtMDggMTQ6NDkgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weToKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDI2Njc0MTU6IFN1cHBvcnQgIlVzZU51bWVyaWMiIG9wdGlvbi4KICAgUmVtb3ZlIGRlYnVnZ2luZyBvdXRwdXQgaW4gInNubXB3YWxrIiBjb21tYW5kLgogICBQYXRjaCBwcm92aWRlZCBieSBEaWVnbyBCaWxsaQoKMjAwOS0wNC0wOCAxNDozNCAgZHRzMTIKCiAgICogIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLCBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC1jLmluYywgCiAgICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvY29uc3QteHMuaW5jOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSDogMjcyNjMwMjogUGFzcyByZXN1bHRzIG9mIFBlcmwgdHJhcAogICBoYW5kbGVycyB0byB0cmFwIGRhZW1vbgogICBQYXRjaCBwcm92aWRlZCBieSBNaWNoYWVsIFNjaG1pdHoKCjIwMDktMDQtMDggMTQ6MzAgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI3MTM4NDE6IEZpeCBydW50aW1lIGVycm9ycyB0cmlnZ2VyZWQgYnkKICAgaGlnaC1BU0NJSSBjaGFycwogICBQYXRjaCBwcm92aWRlZCBieSBCYXJ0IFZhbiBBc3NjaGUKCjIwMDktMDQtMDggMTQ6MTYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyNjg5MzYyOiBGaXggaGFuZGxpbmcgb2YgSVB2NiBob3N0bmFtZXMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE5lc3RvciBNZWxvLgoKMjAwOS0wNC0wOCAxNDowNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBQQVRDSDogMjY4ODM0NTogRml4IG5ldHNubXBfYXNzZXJ0KCkgZm9yIFZpc3VhbAogICBTdHVkaW8KICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmFydCBWYW4gQXNzY2hlCgoyMDA5LTA0LTA4IDEzOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyNjg2MjgwOiBSZXBvcnQgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbnMgYXMKICAgYW4gZXJyb3IgKHJhdGhlciB0aGFuIGEgZmFpbGVkIGFzc2VydGlvbikuCiAgIEZpeCBwcm92aWRlZCBieSBCYXJ0IFZhbiBBc3NjaGUKICAgCiAgIFFuOiBEb2VzIHRoaXMgZXZlbiBxdWFsaWZ5IGFzIGFuIGVycm9yPyBXb3VsZG4ndCBhIHdhcm5pbmcgYmUKICAgc3VmZmljaWVudD8KCjIwMDktMDQtMDYgMTg6MjIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIFByb3BlciBjaGVjayBmb3IgZW1wdHkgcHJvY2VzcyBzdGF0dXMgZmlsZS4KICAgKEF2b2lkcyB0cnVuY2F0ZWQgd2FsayBvZiBoclNXUnVuUGF0aCBvbiBTdVNFIHN5c3RlbXMpCiAgIFJlcG9ydGVkIGJ5IEthbWlsIEtpc2llbC4KCjIwMDktMDQtMDYgMTI6MDUgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9hZ2VudC54cywgcGVybC9hZ2VudC90eXBlbWFwOgoKICAgQ0hBTkdFUzogcGVybDogQlVHIDE1NTQ4MTc6IGZyb20geGFuY286IHJldmlzZWQgZml4IGZvciB0aGUgY2xhc3MKICAgYXNzaWdtZW50IHNvCiAgIGdldFJvb3RPSUQgd29ya3MgcHJvcGVybHkuIE5vdyBwYXNzZXMgIm1ha2UgdGVzdCIgYW5kICJtYWtlCiAgIHBlcmx0ZXN0Ii4KCjIwMDktMDQtMDYgMTI6MDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYzoKCiAgIEZpeCB0eXBvCgoyMDA5LTA0LTAyIDIxOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBCVUcgMTEyNjk0OiBQYXRjaCBmcm9tIEJpbGwgRmVubmVyOiBkb24ndCBvcGVuIChhbmQKICAgY2xvYmJlcikgYW4gYWdlbnR4IHNvY2tldCBpZiB0aGUgb3RoZXIgdHJhbnNwb3J0cyBmYWlsIHRvIG9wZW4KCjIwMDktMDMtMzEgMTU6MTIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEJhbGFuY2UgcGFyZW50aGVzZXMgaW4gY2FjaGUtYmFzZWQgcmVnaXN0cmF0aW9uIGNvZGUuCgoyMDA5LTAzLTMxIDE1OjA3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBCdXQgdGhleSdyZSBub3QgQyBjb21tZW50cyBhdCBhbGwsIERhdmUuCiAgIFRoZXkgYXJlIG1pYjJjIHRlbXBsYXRlIGNvbW1lbnRzLAogICBhbmQgc2hvdWxkIGJlIG9taXR0ZWQgZnJvbSB0aGUgZ2VuZXJhdGVkIGNvZGUuCiAgIDxzaWdoPgoKMjAwOS0wMy0zMSAxNTowMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQyBjb21tZW50cyB1c2UgLyogLi4uICovLCBub3QgIwoKMjAwOS0wMy0xOCAxMDo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jOgoKICAgY3B1X2xpbnV4OiBhdm9pZCByZWFkaW5nIHBhc3QgZW5kIG9mIGJ1ZmZlcgogICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIEhlbW1pbmdlcgoKMjAwOS0wMy0xOCAxMDo0MyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jOgoKICAgbGludXg6IGluY3JlYXNlIHNpemUgb2YgaW5pdGlhbCBwcm9jIGkvbyBidWZmZXIKICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBIZW1taW5ncwoKMjAwOS0wMy0xOCAxMDozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jOgoKICAgbWVtb3J5X2xpbnV4OiBhdm9pZCByZWFkaW5nIHBhc3QgZW5kIG9mIGJ1ZmZlci4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBIZW1taW5nZXIKCjIwMDktMDMtMTggMTA6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIEZpeCB2YWxncmluZCB3YXJuaW5nLgogICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIEhlbW1pbmdlcgoKMjAwOS0wMy0xMyAyMToyMyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFJlZ2lzdGVyIENQVS9tZW1vcnkgaGFyZHdhcmUgbW9kdWxlcyB3aXRoCiAgIG5zQ2FjaGVUYWJsZS4KICAgQWxsb3dzIG1vbml0b3JpbmcgZnJlcXVlbmN5IHRvIGJlIGNvbmZpZ3VyZWQgZHluYW1pY2FsbHkuCgoyMDA5LTAzLTEzIDIxOjIwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIEF2b2lkIGRpdjAgY3Jhc2guCiAgIFByb2JsZW0gcmVwb3J0ZWQgYnkgTmljayBIaW5kbGV5CgoyMDA5LTAzLTEzIDIxOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tzdGF0LmM6CgogICBTa2lwIG5ldyBDUFVzLCB0aGF0IGhhdmUgYXBwZWFyZWQgc2luY2UgdGhlIGFnZW50IGZpcnN0IHN0YXJ0ZWQuCiAgIChBbiBhbHRlcm5hdGl2ZSBtaWdodCBiZSB0byBjcmVhdGUgYSBuZXcgZW50cnkgaW5zdGVhZCkuCiAgIFByb2JsZW0gcmVwb3J0ZWQgYnkgTmljayBIaW5kbGV5CgoyMDA5LTAyLTI3IDEzOjIwICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBHZXQgcmlkIG9mIGFubm95aW5nICdkaXNraW8uYzogZG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIDkKICAgcmVxdWVzdCcgaW4gbG9nLgogICBJdCdzIGJlaW5nIHdyaXR0ZW4gdG8gbG9nIGV2ZXJ5dGltZSBzb21lb25lIHF1ZXJpZXMKICAgVUNELVNOTVAtRElTS0lPIE1JQi4KCjIwMDktMDItMjQgMDc6MjYgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBDSEFOR0VTOiBNYWtlIC1MTiBzdG9wIGR1bXBpbmcgY29yZS4gTWFrZSBiYWQgZGVidWcgbGV2ZWxzIHJlcG9ydAogICB0aGUgb2ZmZW5kaW5nIHN5bWJvbC4KCjIwMDktMDItMTggMTU6MjcgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfbGludXguYzoKCiAgIEZpeCBzY3RwLW1pYiBjb21waWxhdGlvbiBwcm9ibGVtcwoKMjAwOS0wMi0xOCAxNToyNyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgQmFja3BvcnQgZ2V0X3BpZF9mcm9tX2lub2RlIGZyb20gdHJ1bmssIGl0J3MgbmVlZGVkIGJ5IHNjdHAtbWliCgoyMDA5LTAyLTE2IDIxOjI0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogQlVHIDE1NTQ4MTc6IFBhdGNoIGZyb20geGFuY286IGZpeCB0aGUgY2xhc3MKICAgYXNzaWdtZW50IHNvIGdldFJvb3RPSUQgd29ya3MgcHJvcGVybHkuCgoyMDA5LTAxLTI5IDA4OjM4ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXR1cm4gYSBsZXNzIG1pc2xlYWRpbmcgZXJyb3Igd2hlbiBhZGRpbmcgYW4gdW5yZWNvZ25pc2VkIHZhbHVlLgoKMjAwOS0wMS0yOCAxMDoxMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBGaXggc3JjL2RzdCBjb25mdXNpb24KICAgUGF0Y2ggcHJvdmlkZWQgYnkgS3J6eXN6dG9mIE9sv2R6a2kKCjIwMDktMDEtMjggMDk6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgQ0hBTkdFUzogRml4IHR3byBidWdzIHdpdGggc211eCBwYXNzd29yZCBzdXBwb3J0LgogICBQYXRjaCBzdXBwbGllZCBieSBLcnp5c3p0b2YgT2y/ZHpraQoKMjAwOS0wMS0yMyAxNDo1MyAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBGaXggcGFyc2luZyBvZiBsZXZlbCByYW5nZXMgaW4gJy1MPGNhcGl0YWw+Jy4KCjIwMDktMDEtMTMgMDk6MTcgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIENoZWNrIGVuY29kaW5nIG9mIE9JRHMuCiAgIAogICBCRVIgZW5jb2RlZCBPSURzIHNob3VsZCBoYXZlIGhpZ2ggYml0IGNsZWFyIGluIHRoZSBsYXN0IGJ5dGUgb2YKICAgZWFjaCBzdWJpZGVudGlmaWVyLiBUaGlzIGlzIG5vdyBjaGVja2VkIGFuZCBwYXJzaW5nIG9mIE9JRCBmYWlscywKICAgaWYgdGhpcyBjb25kaXRpb24gaXMgbm90IG1ldC4KCjIwMDktMDEtMDggMTA6NDUgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgQ0hBTkdFUzogc25tcGQsIGFwcHM6IFBhcnNlciBvZiAtTFMgY29tbWFuZCBsaW5lIGFyZ3VtZW50IG5vdwogICBhY2NlcHRzIGJvdGggJy1MUyA8bGV2ZWw+IDxmYWNpbGl0eT4nIGFuZCAnLUxTCiAgIDxsZXZlbD48ZmFjaWxpdHk+Jy4KICAgCiAgIEJlZm9yZSBwYXRjaCAjMTgwNjMzNiB0aGUgZmlyc3Qgc3ludGF4IHdhcyB0aGUgb25seSBvbmUKICAgc3VwcG9ydGVkLiBUaGUgcGF0Y2gKICAgY2hhbmdlZCB0aGUgc3ludGF4IHRvIHRoZSBzZWNvbmQgb25lLCBjYXVzaW5nIGluY29tcGF0aWJpbGl0aWVzCiAgIGluIHN0YWJsZQogICBicmFuY2hlcy4gV2Ugbm93IHN1cHBvcnQgYm90aCBvZiB0aGVtLgoKMjAwOS0wMS0wNiAyMjoyMyAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIHVwZGF0ZSBTUEFSVEEgZm9yIDIwMDkKCjIwMDgtMTItMTUgMjM6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cFZhbHVlVGFibGUuYzoKCiAgIFBhdGNoIHRvIGNoYW5nZSBhIHR5cGVkZWYgbmFtZSBmcm9tIGxpbmsgdG8gbm9kZWxpbmsgdG8gYXZvaWQKICAgbmFtaW5nIGNvbmZsaWN0IGlzc3Vlcy4KCjIwMDgtMTItMDkgMDE6MDEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wbG9jYWxzbS5oLCBzbm1wbGliL3NubXBsb2NhbHNtLmM6CgogICBBcyBhZ3JlZWQgaW4gdGhlIGFkbWluIG1lZXRpbmcsIHJlbW92ZSB0aGUgb2xkZXIgc25tcGxvY2Fsc20KICAgc2VjdXJpdHkgbW9kZWwKCjIwMDgtMTItMDQgMTE6NDQgIGpzYWZyYW5lawoKICAgKiAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBQcmludCBwb3J0cyBhcyB1bnNpZ25lZCBudW1iZXJzLgoKMjAwOC0xMS0yMCAyMDo1MSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wU1RERG9tYWluLmM6CgogICBNYWtlIGxvZyByZWZlciB0byB0aGUgcmlnaHQgZnVuY3Rpb24uCgoyMDA4LTExLTIwIDIwOjQ2ICBtYWdmcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQ0hBTkdFUzogRG8gbm90IHVzZSAlbSBpbiBwcmludGYtZm9ybWF0dGVkIHN0cmluZ3Mgc2luY2UgJW0gaW4KICAgcHJpbnRmIGlzIGEgZ2xpYmMgZXh0ZW5zaW9uLgoKMjAwOC0xMS0xMyAwMDozMCAgdGFuZGVycwoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDIyNTg5MzU6IFB5dGhvbiBFeHRlbnNpb24gTW9kdWxlIGZhaWxzIG9uCiAgIFNvbGFyaXMKCjIwMDgtMTEtMTMgMDA6MjYgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IHR5cG8KCjIwMDgtMTEtMTMgMDA6MjQgIHRhbmRlcnMKCiAgICogZGlzdC9leHRyYWN0bmV3czoKCiAgIG1ha2Ugc2NyaXB0cyBleGVjdXRhYmxlCgoyMDA4LTExLTEyIDE3OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIGZpeCB0eXBvL3NwZWxsaW5nIGluIGFuIGVtYmVkZGVkIHBlcmwgZXJyb3IgbWVzc2FnZQoKMjAwOC0xMS0xMSAxMzoxMyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIEZpeCBjb21waWxhdGlvbiBvbiBvbGRlciBMaW51eGVzIHdpdGhvdXQgU1BFRURfMTAwMDAgYW5kCiAgIFNQRUVEXzI1MDAuCgoyMDA4LTExLTAxIDE5OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBORVdTOiBzbm1wZDogQXBwbHlpbmcgcGF0Y2ggZnJvbSBNYWdudXMgRnJvbXJlaWRlIHRvIGZpeCB0aGUKICAgZ2V0YnVsayBpc3N1ZSByZXBvcnRlZCBieSBPc2NhciBNaXJhLVNhbmNoZXoKCjIwMDgtMTAtMjIgMDc6MjkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIERvbid0IGNsZWFyIHNlc3Npb24gZmxhZ3Mgd2hlbiB0ZXN0aW5nIG9uZSBiaXQuCgoyMDA4LTEwLTE2IDA5OjU2ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyMDgyNzI2OiBjb3JyZWN0bHkgcmVwb3J0IE5JQyBzcGVlZHMKICAgaGlnaGVyIHRoYW4gNEdiaXQvcwoKMjAwOC0xMC0xNCAxODo1NSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjA0MzAxODogZml4IHJlY3Zmcm9tIGhhbmdzCiAgIEFsc28gYWRkcmVzc2VzIChjbG9zZWQpIGJ1Z3MgMTE3MTkwNCBhbmQgMTM0NTI5NgoKMjAwOC0xMC0xNCAwOTo0NCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXggbWVtb3J5IGxlYWsgd2hlbiBtdWx0aXBsZSBpbnRlcmZhY2VzIGhhdmUgdGhlCiAgIHNhbWUgSVB2NiBhZGRyZXNzCgoyMDA4LTEwLTE0IDA5OjM3ICBqc2FmcmFuZWsKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTY5MzAzOTogYmUgc2lsZW50IHdoZW4gaW5zZXJ0IGZhaWxzLgoKMjAwOC0xMC0xMyAxOTowMSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE5Nzc0Mzk6IEZpeCBwYXNzL19wZXJzaXN0IGJ1ZyB3aXRoIFNFVAogICBvaWQgdmFsdWUKCjIwMDgtMTAtMDcgMDg6NTAgIGpzYWZyYW5lawoKICAgKiBkaXN0L2ZpbmQtcmVxdWlyZXM6CgogICBDSEFOR0VTOiBidWlsZGluZzogQlVHOiAyMDk1OTgzOiBmaXggc3ludGF4IGVycm9yIGluCiAgIGZpbmQtcmVxdWlyZXMgaGVscGVyIHNjcmlwdCBhbmQgbWFrZSBpdCBleGVjdXRhYmxlCgoyMDA4LTA5LTMwIDIyOjExICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDIwMjI5NDg6IEZpeCBmb3IgQ291bnRlcjY0IGluIHBlcmwgc3ViYWdlbnQKCjIwMDgtMDktMzAgMjE6MDggIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMTI1NzM0NzogTm9uLWZpeGVkIHNpemUgY29ubmVjdGlvbiBidWZmZXIKCjIwMDgtMDktMjQgMTI6NTMgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5jOgoKICAgVXNlIHRoZSBsb25nZXN0IGludGVnZXIgZm9yIGlub2RlIG51bWJlcnMgYW5kIChwb3NzaWJseSA2NCBiaXQpCiAgIGNvdW50ZXJzLgoKMjAwOC0wOS0wNSAwOToyNyAgZHRzMTIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLCAgIAogICAgICBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIHZlcnNpb24gdGFnICggNS40LjIgKQoKMjAwOC0wOS0wNSAwOToyNyAgZHRzMTIKCiAgICogQ0hBTkdFUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA4LTA5LTA1IDA5OjI1ICBkdHMxMgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOC0wOS0wNSAwOToyMCAgZHRzMTIKCiAgICogIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgIAogICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsLjMsIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA4LTA5LTA1IDA5OjE2ICBkdHMxMgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40LjIgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC4xIC0+IFY1LjQuMgoKMjAwOC0wOS0wNSAwNzo1MSAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIFVwZGF0ZSByZWxlYXNlIGluc3RydWN0aW9ucywgaW4gbGluZSB3aXRoIG1ha2VyZWxlYXNlLnhtbAogICAoUW46IFdoeSBpc24ndCBtYWtlcmVsZWFzZS54bWwgYmVpbmcgcGlja2VkIHVwIGhlcmU/KQoKMjAwOC0wOS0wNCAyMjo1MiAgdGFuZGVycwoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDE4NjgyNzg6IFB5dGhvbiBzZWdmYXVsdCAoaW50cm9kdWNlZCBieSByMTY5NjIpCgoyMDA4LTA4LTI5IDIxOjE5ICBkdHMxMgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsICAgCiAgICAgIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQuMi5yYzMgKQoKMjAwOC0wOC0yOSAyMToxOCAgZHRzMTIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA4LTA4LTI5IDIxOjE1ICBkdHMxMgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOC0wOC0yOSAyMTowOCAgZHRzMTIKCiAgICogIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgIAogICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsLjMsIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA4LTA4LTI5IDIxOjA0ICBkdHMxMgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40LjIucmMzICkKCgoyMDA4LTA4LTI5IDE5OjU0ICBkdHMxMgoKICAgKiBkaXN0L2NoYW5nZWxvZ2ZpeDoKCiAgIFJldGFpbiBmaWxlbmFtZXMgd2hpY2ggZG9uJ3QgaW5jbHVkZSB0aGUgZXhwZWN0ZWQgcHJlZml4LgoKMjAwOC0wOC0yNyAxMzozOSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYzoKCiAgIFMvMzkwIHVzZXMgc2xpZ2h0bHkgZGlmZmVyZW50IGZvcm1hdCBvZiB0aGUgL3Byb2MvY3B1aW5mbyBmaWxlOgogICBwcm9jZXNzb3IgMDogdmVyc2lvbiA9IEZGLCBpZGVudGlmaWNhdGlvbiA9IDA2MEFGRSwgbWFjaGluZSA9IDIwOTQKCjIwMDgtMDgtMjIgMjM6NDcgIHRhbmRlcnMKCiAgICogRkFROgoKICAgdXBkYXRlIGxpc3Qgb2Ygc3VwcG9ydGVkIG9wZXJhdGluZyBzeXN0ZW1zCgoyMDA4LTA4LTIyIDIzOjI3ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTkVXUzogYnVpbGQ6IEJVRzogMjAyMzgwMzogQ29tcGlsYXRpb24gcHJvYmxlbXMgb24gSFAtVVggMTEuMzEKICAgQ0hBTkdFUzogYnVpbGQ6IExpbWl0IHRoZSB1c2Ugb2YgX0tFUk5FTCBkZWZpbml0aW9ucyBpbiBjb25maWd1cmUKICAgdGVzdHMgdG8gbWF0Y2ggdGhlIHVzZSBvZiBfS0VSTkVMIGluIG91ciBjb2RlYmFzZQoKMjAwOC0wOC0yMiAwMDoxOCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBGaXggYnVpbGQgZmFpbHVyZSBvbiBIUC1VWCAxMS4zMTogdXNlIGdldHBhZ2VzaXplKCkgaW5zdGVhZCBvZiBQR1NISUZULgogICBTdWNjZXNzZnVsbHkgdGVzdGVkIG9uIEhQLVVYIDEwLjIwLCAxMS4wMCwgMTEuMTEsIDExLjIzIGFuZCAxMS4zMS4KCjIwMDgtMDgtMjEgMTA6MDMgIGpzYWZyYW5lawoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgU0NUUC1NSUIKCjIwMDgtMDgtMTkgMjM6MjIgIHRhbmRlcnMKCiAgICogUkVBRE1FLnRydTY0OgoKICAgdXBkYXRlIFJFQURNRSBmb3IgVHJ1NjQgYWZ0ZXIgdGhlIHNlbmR0by9yZWN2ZnJvbSBmaXhlcwoKMjAwOC0wOC0xOSAyMDozNiAgZHRzMTIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLCAgIAogICAgICBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIHZlcnNpb24gdGFnICggNS40LjIucmMyICkKCjIwMDgtMDgtMTkgMjA6MzYgIGR0czEyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOC0wOC0xOSAyMDoyNiAgZHRzMTIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDgtMDgtMTkgMjA6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA4LTA4LTE5IDIwOjAzICBkdHMxMgoKICAgKiAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgICAKICAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCAgCiAgICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWwuMywgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDgtMDgtMTkgMTk6NTUgIGR0czEyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQuMi5yYzIgKQoKCjIwMDgtMDgtMTkgMDg6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmM6CiAgICAgQmV0dGVyIHRyYWNpbmcgb2YgRGlzTWFuIG9iamVjdCBwcm9jZXNzaW5nLgoKMjAwOC0wOC0xOCAyMjo0MyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5oOgogICAgIHJlbW92ZSBib2d1cyB3aGl0ZSBzcGFjZQoKMjAwOC0wOC0xOCAyMjozOCAgdGFuZGVycwoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKICAgICBkb2N1bWVudCBTQ1RQLU1JQiBhZGRpdGlvbgoKMjAwOC0wOC0xOCAyMjowMSAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CiAgICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDIwMjE0NDQ6IFN1cHBvcnQgU05NUHYyYyBpbiBnZXR0YWJsZSBwcm9jZXNzaW5nCgoyMDA4LTA4LTE4IDIxOjQ0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKICAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjAwMzQ1MDogRml4IGEgY291cGxlIG9mIDY0LWJpdCBwcm9ibGVtcy4KCjIwMDgtMDgtMTggMTk6MDUgIHRhbmRlcnMKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKICAgICBmaXggU0NUUC1NSUIgaW5zdGFsbAoKMjAwOC0wOC0xNyAyMToyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIsIGFnZW50L21pYmdyb3VwL3NjdHAtbWliLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuaCwKICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24uaCwKICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXMuaCwKICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5jLCBtaWJzL01ha2VmaWxlLmluLAogICAgIG1pYnMvTWFrZWZpbGUubWliLCBtaWJzL1NDVFAtTUlCLnR4dDoKICAgICBORVdTOiBzbm1wZDogUEFUQ0g6IDIwMjM2MzM6IGFkZCBTQ1RQLU1JQiBpbXBsZW1lbnRhdGlvbiAoTGludXggb25seSkKCjIwMDgtMDgtMTcgMjE6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgogICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjAyMjkzNjogRml4IEFnZW50WCBDb3VudGVyNjQgZGVjb2Rpbmcgb24KICAgICA2NC1iaXQgYXJjaGl0ZWN0dXJlcwoKMjAwOC0wOC0xNyAyMDo1MCAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKICAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIwMTQyMDQ6IFN1cHBvcnQgLWcge2dyb3VwbmFtZX0KCjIwMDgtMDgtMTMgMTM6MDIgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CiAgICAgQ29ycmVjdGx5IHBhcnNlIGludGVyZmFjZSBpbmRleGVzIGhpZ2hlciB0aGFuIDB4ZmYuCgoyMDA4LTA4LTEyIDA4OjI3ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgogICAgIENsb3NlIGZpbGUgd2hlbiBwYXJzaW5nIG9mIC9wcm9jL1hYWC9zdGF0dXMgZmFpbHMuCgoyMDA4LTA4LTA3IDA5OjAwICBqc2FmcmFuZWsKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CiAgICAgRml4IGRvY3VtZW50YXRpb24gb2YgZXhlYyBzdGF0YW1lbnQgLSBpdCBkb2VzIG5vdCBjYWNoZSByZXN1bHRzIGFueW1vcmUuCiAgICAgUmVsYXRlZCB0byBidWcgODgzMTM0CgoyMDA4LTA3LTMxIDE2OjQ4ICBkdHMxMgoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywKICAgICBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CiAgICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC4yLnJjMSApCgoyMDA4LTA3LTMxIDE2OjQ3ICBkdHMxMgoKICAgKiBDSEFOR0VTOgogICAgIHZlcnNpb24gdXBkYXRlCgoyMDA4LTA3LTMxIDE2OjE0ICBkdHMxMgoKICAgKiBDaGFuZ2VMb2c6CiAgICAgdmVyc2lvbiB1cGRhdGUKCjIwMDgtMDctMzEgMTY6MDUgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwKICAgICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKICAgICBtYWtlIGRlcGVuZAoKMjAwOC0wNy0zMSAxNjowMyAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywKICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLAogICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLAogICAgIG1hbi9uZXRzbm1wX3V0aWwuMywgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBtYW4vbmV0c25tcF93YXRjaGVyLjM6CiAgICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDgtMDctMzAgMTc6NDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgogICAgIENIQU5HRVM6IGFnZW50OiBCVUc6IDIwMDMxNDQ6IEluY3JlYXNlIHNpemUgb2YgQWdlbnRYIHBhY2tldCBidWlsZCBidWZmZXIKCjIwMDgtMDctMzAgMTc6MjggIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKICAgICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE2ODEwMzU6IGZyb20gbWFnZnI6IGltcHJvdmUgbmV0LXNubXAtY29uZmlnIC9iaW4vc2ggY29tcGF0aWJpbGl0eQogICAgIEJhY2stcG9ydCBvZiBTVk4gcmV2aXNpb24gMTU5NjEKCjIwMDgtMDctMzAgMDk6NTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgogICAgIENIQU5HRVM6IGFnZW50OiBCVUc6IDE1NTczNzI6IFJlYWxpZ24gaHJGU1N0b3JhZ2VJbmRleCB3aXRoIGhyU3RvcmFnZVRhYmxlCgoyMDA4LTA3LTMwIDA3OjU3ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgogICAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMjAyNzgzNDogRXh0ZW5kIHN0cmluZyBwcmludCBidWZmZXIgYnkgdGhlIG1pbmltdW0gbmVjZXNzYXJ5LgoKMjAwOC0wNy0yOSAxNjoxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CiAgICAgYSkgRml4IHRoZSBzaXplIG9mIHRoZSBidWZmZXIgaW4ganVzdCBvbmUgcGxhY2UKICAgICAobWFrZXMgaXQgZWFzaWVyIHRvIGNoYW5nZSBpZiBuZWNlc3NhcnkpCiAgICAgYikgRml4IHZhcmlvdXMgdW5mb3J0dW5hdGUgbGluZS1icmVha3MgKHdpdGhpbiAicGR1LT5mbGFncyIpCgoyMDA4LTA3LTI4IDE0OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKICAgICBDSEFOR0VTOiBhZ2VudDogQlVHOiAyMDIzODAzOiBFbnN1cmUgY29tcGlsYXRpb24gaXMgbm90IGRlcGVuZGVudAogICAgIG9uIGFuIGlycmVsZXZhbnQgY29uZmlndXJlIGNoYXJhY3RlcmlzdGljIGZvciBIUC1VWCAxMQoKMjAwOC0wNy0yOCAxMTo0MSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CiAgICAgTkVXUzogYnVpbGRpbmc6IGFkZCAtLXdpdGgtdGVtcC1maWxlLXBhdHRlcm4gY29uZmlndXJlIG9wdGlvbgogICAgIEJhY2twb3J0IG9mIFNWTiByZXZpc2lvbiAxNzEyMQoKMjAwOC0wNy0yOCAxMDo1NiAgZHRzMTIKCiAgICogYXBwcy9zbm1wc2V0LmM6CiAgICAgQ0hBTkdFUzogYXBwczogQlVHOiAxOTY0MTM2OiBEcm9wIE5VTEwgdHlwZSBmcm9tIHNubXBzZXQgdXNhZ2UgbWVzc2FnZS4KCjIwMDgtMDctMjQgMjM6MjIgIHRhbmRlcnMKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CiAgICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogQlVHOiAyMDI3MTI5OiBmaXggdHlwbyBpbiBzbm1wY21kLjEKCjIwMDgtMDctMjQgMDY6NTMgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgogICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTgyMzgwMDogcmVsZWFzZSBhbmQgcmVsb2FkIGFsbCB0cmFwIGRlc3RpbmF0aW9ucyBvbiBTSUdIVVAKCjIwMDgtMDctMjEgMTM6NDQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgogICAgIENIQU5HRVM6IGFnZW50OiBQQVRDSCAxOTQ0NTgxOiBQcm90ZWN0IGFnYWluc3QgY29yZSBkdW1wcyB3aXRoIGxvbmcgc3RyaW5nIGluZGV4IHZhbHVlcy4KCjIwMDgtMDctMTcgMTU6MDcgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CiAgICAgbWFrZSBkZXBlbmQKCjIwMDgtMDctMTcgMTQ6NDIgIGR0czEyCgogICAqIGRveHlnZW4uY29uZjoKICAgICAtIHZlcnNpb24gdGFnICggNS40LjIucmMxICkKCjIwMDgtMDctMTcgMTA6MDUgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CiAgICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMjAxODAzMTogRG9uJ3QgcHJvYmUgZW5naW5lSUQgaW4gaW50ZXJuYWwgbW9uaXRvciBzZXNzaW9ucy4KCjIwMDgtMDctMTAgMTM6NTAgIGFsZXhfYgoKICAgKiB3aW4zMi9NYWtlZmlsZS5pbjoKICAgICBDSEFOR0VTOiBidWlsZGluZzogQlVHOiAyMDE0NTI2OiBXaW4zMjogc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmggbm90IGluc3RhbGxlZAoKMjAwOC0wNy0wNiAxNTowNSAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9idWlsZC5wbCwKICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbjoKICAgICBDSEFOR0VTOiBidWxkaW5nOiBBZGQgc3VwcG9ydCBmb3Igd2luRXh0RExMIHRvIGJ1aWxkLmJhdCAod2luMzIpCgoyMDA4LTA3LTA2IDEyOjM4ICBhbGV4X2IKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgogICAgIFdpbjMyIGJ1aWxkIGZpeGVzIC0gYWRkIG1pc3NpbmcgZnVuY3Rpb24gZm9yIERMTCBidWlsZC4KCjIwMDgtMDctMDIgMTI6MzkgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jOgogICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDIwMDY3ODY6IEludGVyZmFjZSBuYW1lIGNhbiBoYXZlIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMuCgoyMDA4LTA2LTI1IDE1OjE2ICBqc2FmcmFuZWsKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CiAgICAgZml4IGFzc2VydGlvbiB3aGVuIHVzZWQgd2l0aCBwZXJsIDUuMTAKCjIwMDgtMDYtMjQgMjI6MzYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDAxc25tcHYxZ2V0LCB0ZXN0aW5nL3Rlc3RzL1QwMTRzbm1wdjJjZ2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LAogICAgIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgICAgdGVzdGluZy90ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLAogICAgIHRlc3RpbmcvdGVzdHMvVDAxOXNubXB2MmNub3N1Y2gsIHRlc3RpbmcvdGVzdHMvVDAyMHNubXB2M2dldCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LAogICAgIHRlc3RpbmcvdGVzdHMvVDAyMjBzbm1wdjNidWxrZ2V0OgogICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBEaXNhYmxlIHRlc3RzIGlmIHRoZSBhZ2VudCBpcyBidWlsdCB3aXRob3V0IHRoZSBtaWIgbW9kdWxlIHRoZXkgZGVwZW5kIG9uLgogICAgIEJhY2twb3J0IG9mIHIxNzA4Ny4KCjIwMDgtMDYtMTcgMDg6NTcgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKICAgICBGaXggcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiBzcHJpbnRmIGZvciBUQ1AvSVB2NgogICAgIENyb3NzLXBvcnQgb2YgcmV2aXNpb24gMTY2NjgKCjIwMDgtMDYtMTYgMjM6NTUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluOgogICAgIENIQU5HRVM6IGJ1aWxkOiBCVUc6IDE5OTUxNzI6IGZpeCAtLXdpdGhvdXQtZWxmIGNvbmZpZ3VyZSB1c2FnZSBtZXNzYWdlCgoyMDA4LTA2LTE1IDIyOjE1ICBkdHMxMgoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywKICAgICBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CiAgICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC4yLnByZTIgKQoKMjAwOC0wNi0xNSAyMjoxNCAgZHRzMTIKCiAgICogQ0hBTkdFUywgTkVXUzoKICAgICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOC0wNi0xNSAyMTo1NSAgZHRzMTIKCiAgICogQ2hhbmdlTG9nOgogICAgIFZlcnNpb24gdXBkYXRlCiAgICAgCiAgICAgQWxzbyBmaXggYWxsIENoYW5nZUxvZyBlbnRyaWVzIHNpbmNlIHRoZSBDVlMtPlNWTiBtb3ZlLAogICAgIHdoaWNoIGhhdmUgYmVlbiBvbWl0dGluZyBpbmZvcm1hdGlvbiBhYm91dCB3aGF0IGZpbGVzCiAgICAgd2VyZSBhZmZlY3RlZCBieSBhbnkgZ2l2ZW4gY2hhbmdlLgoKMjAwOC0wNi0xNSAyMTozMiAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKICAgICBtYWtlIGRlcGVuZAoKMjAwOC0wNi0xNSAyMTowNiAgZHRzMTIKCiAgICogZG94eWdlbi5jb25mOgogICAgIC0gdmVyc2lvbiB0YWcgKCA1LjQuMi5wcmUyICkKMjAwOC0wNi0xMyAyMjoxNiAgZHRzMTIKCiAgICogZGlzdC9maW5kLXJlcXVpcmVzLCBkaXN0L25ldC1zbm1wLnNwZWM6CiAgICAgQ0hBTkdFUzogYnVpbGQ6IEltcHJvdmVkIFJQTSBzcGVjIGZpbGVzLCBmb3IgYmV0dGVyIGNvbnNpc3RlbmN5IHdpdGggdmVuZG9yLXByb3ZpZGVkIHBhY2thZ2VzLgogICAgIFByb3ZpZGVkIGJ5IEphbiBTYWZyYW5lawoKMjAwOC0wNi0xMyAyMTo1NCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CiAgICAgUmVzdG9yZSBlbWJlZGRlZCBwZXJsIHRvIGRlZmF1bHQgTWFjIE9TL1ggYnVpbGQuCiAgICAgKHJldmVyc2luZyByZXZpc2lvbiAxNjk4OCkKCjIwMDgtMDYtMTMgMjE6MDMgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgogICAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTg5OTc2MjogVHdlYWsgZW1iZWRkZWRfcGVybCBjb25maWd1cmUgY2hlY2tzLgoKMjAwOC0wNi0xMiAxMjo1MCAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKICAgICBPbmx5IGFkZCBub24tZGVmYXVsdCBNSUIgbW9kdWxlcyB0byB0aGUgdGVzdCBidWlsZHMuCiAgICAgU3BlY2lmeWluZyB0aGUgaG9zdCBtb2R1bGUgaXMgbm90IG5lZWRlZCBvbiBMaW51eCBzeXN0ZW1zLAogICAgIGFuZCBtYXkgYnJlYWsgb24gb3RoZXIgTy9Tcy4gU3BlY2lmeWluZyB0aGUgZGlzbWFuL2V2ZW50CiAgICAgTUlCIGlzIHVubmVjZXNzYXJ5IG9uIGFueSBzeXN0ZW0uCgoyMDA4LTA2LTEyIDEyOjQ1ICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgogICAgIE1pc3NpbmcgTUQ1IHNpZ25hdHVyZSBmaWxlIGZvciB6aXAgcmVsZWFzZQoKMjAwOC0wNi0xMiAxMjo0NCAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKICAgICBCYXNpYyBkb2N1bWVudGF0aW9uIGFuZCBoZWxwL3VzYWdlIG1lc3NhZ2VzLgoKMjAwOC0wNi0xMSAxMDoxNiAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKICAgICBPbmx5IGVuYWJsZSBJUFggdHJhbnNwb3J0IG9uIExpbnV4IHN5c3RlbXMKCjIwMDgtMDYtMTAgMTQ6MzcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgogICAgIHNubXBkOiBQQVRDSDogMTkxODM4MzogRml4IERpc01hbiBtb25pdG9yaW5nIG9mIEFnZW50WCBzdWJhZ2VudHMKICAgICBOb3RlIHRoYXQgdGhpcyBkb2Vzbid0IGFjdHVhbGx5IHVzZSB0aGUgY29kZSBzdWJtaXR0ZWQgaW4gdGhhdAogICAgIHBhdGNoLgogICAgIEluc3RlYWQgaXQgaW5zZXJ0cyBhIGNhbGxiYWNrIGhvb2sgaW50byB0aGUKICAgICBzbm1wX3N5bmNoX3Jlc3BvbnNlX2NiCiAgICAgcm91dGluZSAodXNpbmcgdGhlIG15dm9pZCBwb2ludGVyIGFuZCBhIG5ldyBzZXNzaW9uIGZsYWcpLCB3aGljaAogICAgIGhhcwogICAgIHRoZSBzYW1lIGVmZmVjdCB3aXRob3V0IG5lZWRpbmcgdG8gZHVwbGljYXRlIGFueSBjb2RlLgoKMjAwOC0wNi0xMCAxMjo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYzoKICAgICBGaXggbG9naWMgZXJyb3JzIGluIGhhbmRsaW5nIG9mIG9sZC9jdXJyZW50IHZhcmJpbmQgbGlzdHMuCiAgICAgUmVwb3J0ZWQgYnkgRnJlZCBHYW8gaW4gcGF0Y2ggIzE5MTgzODMKCjIwMDgtMDYtMTAgMTA6NTEgIGR0czEyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKICAgICB1cGRhdGUgdG8gbWF0Y2ggcHVibGlzaGVkIHJlbGVhc2UKCjIwMDgtMDYtMDkgMDk6MDUgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdXNtLmM6CiAgICAgQSBjb3VwbGUgbW9yZSBtaXNzaW5nIGVycm9yIGNoZWNrcy4KICAgICBCYXNlZCBvbiB0aG9zZSByZXBvcnRlZCBieSBCb3lhIFN1bgoKMjAwOC0wNi0wNiAxMjowMiAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CiAgICAgQmV0dGVyIGhhbmRsaW5nIG9mIGVtYmVkZGVkIHBlcmwgb24gTWFjIE9TL1gKICAgICAobmVhcmx5IHdvcmtpbmcgb24gTGVvcGFyZCBub3cpCgoyMDA4LTA2LTA1IDIzOjA3ICB0YW5kZXJzCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKICAgICBzeW5jIHdpdGggdHJ1bmsKCjIwMDgtMDYtMDUgMjE6MTIgIHRhbmRlcnMKCiAgICogY29uZmlndXJlOgogICAgIHJ1biBhdXRvY29uZgoKMjAwOC0wNi0wNSAyMToxMSAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3N5c3RlbS5jOgogICAgIE5FV1M6IEFJWDogQWRkIHN1cHBvcnQgZm9yIEFJWCA2LnguCiAgICAgU3VjY2Vzc2Z1bGx5IHRlc3RlZCBvbiB0cnVuayAocGFzc2VkIGV4dGVuc2l2ZSByZWdyZXNzaW9uCiAgICAgdGVzdGluZykuCgoyMDA4LTA2LTA1IDIxOjA0ICB0YW5kZXJzCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgY29uZmlndXJlLCBsdG1haW4uc2g6CiAgICAgTkVXUzogYnVpbGQ6IFVwZGF0ZSB0byBsaWJ0b29sIDEuNS4yNiAoZnJvbSAxLjUuMjQpLCBlLmcuIHRvCiAgICAgYmV0dGVyIHN1cHBvcnQgQUlYIDYuMSBhbmQgTWFjIE9TIFggTGVvcGFyZC4KICAgICBTdWNjZXNzZnVsbHkgdGVzdGVkIG9uIHRydW5rIChwYXNzZWQgZXh0ZW5zaXZlIHJlZ3Jlc3Npb24KICAgICB0ZXN0aW5nKS4KCjIwMDgtMDYtMDMgMDk6MzcgIGR0czEyCgogICAqIFJFQURNRS5vc1g6CiAgICAgRG9jdW1lbnQgd2h5IGVtYmVkZGVkIHBlcmwgd2FzIGRpc2FibGVkLgoKMjAwOC0wNi0wMyAwODo1NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgogICAgIEVuc3VyZSB0aGUgZGVmYXVsdCBpbnRlcm5hbCBxdWVyeSBzZXNzaW9uIGhhcyBhIHZhbGlkIGVuZ2luZUlELAogICAgIHRvIGF2b2lkIGhhdmluZyB0byBwcm9iZSBmb3IgaXQgb24gdGhlIGZpcnN0IHVzZS4KCjIwMDgtMDYtMDIgMTU6MTggIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgogICAgIERyb3AgZW1iZWRkZWQgcGVybCBmcm9tIHRoZSBkZWZhdWx0IGJ1aWxkIG9uIE1hYyBPUy9YCiAgICAgVGggZHVhbC1hcmNoaXRlY3R1cmUgbmF0dXJlIG9mIHRoZSBkZWZhdWx0IHBlcmwgYmluYXJ5CiAgICAgY29uZnVzZXMgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgc3VmZmljaWVudGx5IHRoYXQgdGhlCiAgICAgY29kZSB3b24ndCBhY3R1YWxseSBjb21waWxlLgoKMjAwOC0wNi0wMiAxMzoyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYzoKICAgICBFbnN1cmUgdGhhdCB0aGUgInRyaWdnZXIgYXJtZWQiIGZsYWcgaXMgY2xlYXJlZCB3aGVuZXZlciB0aGUKICAgICBtYXRjaGluZwogICAgIGV4cHJlc3Npb24gaXMgZm91bmQgdG8gaG9sZCAtIGV2ZW4gaWYgdGhlIHRyaWdnZXIgZG9lc24ndAogICAgIGFjdHVhbGx5IGZpcmUuCiAgICAgVGhpcyBhZmZlY3RzIHRoZSBiZWhhdmlvdXIgb2YgaW5pdGlhbGx5LXRydWUgZXhwcmVzc2lvbnMsIHdoZW4KICAgICB0aGlzCiAgICAgaW5pdGlhbCBmaXJpbmcgaXMgc3VwcHJlc3NlZCB1c2luZyB0aGUgbXRlVHJpZ2dlcipTdGFydHVwIG9iamVjdC4KICAgICBXaXRob3V0IHRoaXMgdHdlYWssIHRoZSB0cmlnZ2VyIHdpbGwgZmlyZSBvbiB0aGUgc2Vjb25kIHNhbXBsaW5nCiAgICAgKGFzIGlmIHRoZSBleHByZXNzaW9uIGhhZCBldmFsdWF0ZWQgZmFsc2UgZmlyc3QgdGltZSByb3VuZCkuCgoyMDA4LTA2LTAxIDIwOjAyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmg6CiAgICAgSGFuZGxlIHZhcmJpbmQgcGF5bG9hZCBmb3IgaW50ZXJuYWwgbGlua1VwL0Rvd24gbm90aWZpY2F0aW9ucy4KCjIwMDgtMDYtMDEgMDY6NDUgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgogICAgIE5FV1M6IHNubXB0cmFwZDogQlVHOiAxOTU1MjI3OiBNZW1vcnkgbGVhayBmb3IgZW1iZWRkZWQgUGVybCBvbgogICAgIHg4Nl82NAoKMjAwOC0wNS0yOSAxNjoxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jOgogICAgIFNpbGx5IHR5cG8KCjIwMDgtMDUtMjkgMDk6NTkgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsIGFwcHMvc25tcHRlc3QuYywKICAgICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHVzbS5jLCBzbm1wbGliL3NubXB1c20uYzoKICAgICBWYXJpb3VzIG1pc3NpbmcgZXJyb3IgY2hlY2tzLCBldGMuCiAgICAgUmVwb3J0ZWQgYnkgQm95YSBTdW4uCgoyMDA4LTA1LTI4IDExOjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2ZyZWVic2QuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKICAgICBSZXBvcnQgY2FjaGVkIG1lbW9yeSBzaXplL3VzYWdlIHByb3Blcmx5IChwYXJ0aWN1bGFybHkgb24KICAgICBGcmVlQlNEKS4KCjIwMDgtMDUtMjggMTE6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgogICAgIEJyaW5nIG1lbUJ1ZmZlciBjb2RlIGludG8gbGluZSB3aXRoIHJldmlzaW9uIDE2OTc1LgoKMjAwOC0wNS0yOCAxMToxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jOgogICAgIExpbnV4IDIuNiBrZXJuZWwgZG9lcyBub3QgcmVwb3J0IHNoYXJlZCBtZW1vcnkgaW5mb3JtYXRpb24uCgoyMDA4LTA1LTI4IDA5OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmM6CiAgICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTkzMTM5MTogRml4IHJlcG9ydGluZyBvZiBNZW1vcnkgYnVmZmVycyBhbmQKICAgICBjYWNoZWQgbWVtb3J5LgogICAgIFByb2JsZW0gcmVwb3J0ZWQgYnkgZG9jb25laWxsLgoKMjAwOC0wNS0yOCAwNjo1NiAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYzoKICAgICBDSEFOR0VTOiBzbm1wZDogRW5mb3JjZSB0aGUgbG93ZXIgbGltaXQgb24gc2NhbGFyX2dyb3VwcwogICAgIFRoaXMgZml4ZXMgdGhlIGNhc2Ugb2YgZ2V0bmV4dCBpY21wLjAgcmV0dXJuaW5nIGljbXAuMC4wIGluc3RlYWQKICAgICBvZiB0aGUKICAgICBleHBlY3RlZCBpY21wSW5Nc2dzLjAKCjIwMDgtMDUtMjcgMjI6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CiAgICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTkxMjY0NzogRml4IG1lbW9yeSBsZWFrIGZvbGxvd2luZyBmYWlsZWQKICAgICByZXF1ZXN0cy4KICAgICBGaXggcHJvdmlkZWQgYnkgQW50b24gUGFrCgoyMDA4LTA1LTI3IDIxOjIyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CiAgICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAxOTU4MDQxOiBFbnN1cmUgSURzIGFyZSBub3QgdHJ1bmNhdGVkLgoKMjAwOC0wNS0yNyAxNDoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmM6CiAgICAgTW9uaXRvciBtZW1vcnkgYnVmZmVycyBvbiBGcmVlQlNEIHN5c3RlbXMuCiAgICAgQVBJIHN1Z2dlc3RlZCBieSBDaHJpcwoKMjAwOC0wNS0yNyAxMjo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYzoKICAgICBGaXggY2FyZWxlc3MgdHlwbyB3aGVuIGFwcGx5aW5nIE1heGltJ3MgcGF0Y2guCgoyMDA4LTA1LTI1IDA3OjI0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmM6CiAgICAgUmVtb3ZlIGEgbG9jYWwgdmFyaWFibGUgb25seSB1c2VkIHRvIHRyYWNrIGEgbG9jYWwgc3RyaW5nCiAgICAgY29uc3RhbnQgYW5kIHJlcGxhY2UgdCB3aXRoIGEgZGlyZWN0IHJlZmVyZW5jZSB0byB0aGUgc3RyaW5nCiAgICAgY29uc3RhbnQuCiAgICAgTWFyayB0d28gbG9jYWwgZnVuY3Rpb25zIHN0YXRpYyBhcyB3ZWxsLgoKMjAwOC0wNS0yNSAwNzoxNyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgogICAgIFJlb3JkZXIgdG8gYXZvaWQgb25lIHN0cmxlbiBjYWxsLgogICAgIEFkZCBtaXNzaW5nIGNhc3QuCgoyMDA4LTA1LTI1IDA3OjE0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19saW51eC5jOgogICAgIE1ha2UgaXBmd19uYW1lIGEgc3RhdGljIGFycmF5IGluc3RlYWQgb2YgYSBwb2ludGVyIGFzIGl0IGlzCiAgICAgcHJpdmF0ZSB0byB0aGlzIG1vZHVsZS4KCjIwMDgtMDUtMjUgMDc6MDUgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKICAgICBXaGVuIGNhc3RpbmcsIGNhc3QgdG8gdGhlIHJpZ2h0IHR5cGUuCgoyMDA4LTA1LTI0IDIwOjMwICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgogICAgIENIQU5HRVM6IHB5dGhvbjogQlVHOiAxODI2MTc0OiBDaGVjayBmb3IgYnVmZmVyIG92ZXJmbG93IHdoZW4KICAgICBwcmludGluZyB2YWx1ZXMuCiAgICAgQWRkcmVzc2VzIENWRS0yMDA4LTIyOTIKCjIwMDgtMDUtMjMgMjA6MjcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CiAgICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiBGaXggZm9yIENQVSBzdGF0cyBvbiBGcmVlQlNECiAgICAgUHJvdmlkZWQgYnkgTWF4aW0gU29ib2xldgoKMjAwOC0wNS0yMyAyMDoxMiAgZHRzMTIKCiAgICogZGlzdC9zbm1wZC1pbml0LmQsIGRpc3Qvc25tcHRyYXBkLWluaXQuZDoKICAgICBDSEFOR0VTOiBpbnN0YWxsOiBQQVRDSDogMTk2OTYyNzogSGFuZGxlIGVtcHR5CiAgICAgL2V0Yy9zeXNjb25maWcvbmV0d29yayBmaWxlCiAgICAgRml4IHByb3ZpZGVkIGJ5IEpvc2ggV2lsbWVzCgoyMDA4LTA1LTIzIDIwOjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKICAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE5NjcxOTQ6IFJlY29nbmlzZSBORlM0IG1vdW50cwogICAgIFN1Ym1pdHRlZCBieSBGYWJyaWNlIEJhY2NoZWxsYQoKMjAwOC0wNS0yMiAyMDo1NSAgZHRzMTIKCiAgICogc25tcGxpYi9hc24xLmM6CiAgICAgRG9uJ3QgY2hhbmdlIGxlbmd0aCBvZiBPSUQgYnVmZmVyIGlmIHBhcnNpbmcgdGhlIE9JRCBmYWlscy4KICAgICBSZXBvcnRlZCBieSBzYWlmdWxsYSBNb2hkIEFiZHVsLgoKMjAwOC0wNS0xNCAxMzozNSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CiAgICAgZml4IGJ1aWxkIGZhaWx1cmVzIHdpdGggZWFybGllciBMaW51eCBrZXJuZWxzIChlLmcuIHdpdGggUkg3LjEpCiAgICAgaW50cm9kdWNlZCBieSByMTY5MDkKCjIwMDgtMDUtMDkgMTk6MDQgIGR0czEyCgogICAqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLAogICAgIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9PSUQvT0lELnBtLAogICAgIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sCiAgICAgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sIHBlcmwvYWdlbnQvYWdlbnQucG0sCiAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIHNlZHNjcmlwdC5pbiwKICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgogICAgIC0gdmVyc2lvbiB0YWcgKCA1LjQuMi5wcmUxICkKCjIwMDgtMDUtMDkgMTk6MDQgIGR0czEyCgogICAqIENIQU5HRVMsIE5FV1M6CiAgICAgdmVyc2lvbiB1cGRhdGUKCjIwMDgtMDUtMDkgMTg6NDcgIGR0czEyCgogICAqIENoYW5nZUxvZzoKICAgICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOC0wNS0wOSAxNToyNCAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKICAgICBtYWtlIGRlcGVuZAoKMjAwOC0wNS0wOSAxNToxNCAgZHRzMTIKCiAgICogZG94eWdlbi5jb25mOgogICAgIC0gdmVyc2lvbiB0YWcgKCA1LjQuMi5wcmUxICkKCjIwMDgtMDUtMDkgMTQ6NTEgIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywKICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsCiAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLAogICAgIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywKICAgICBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywKICAgICBtYW4vbmV0c25tcF91dGlsLjMsIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbWFuL25ldHNubXBfd2F0Y2hlci4zOgogICAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA4LTA1LTA5IDE0OjQ3ICBkdHMxMgoKICAgKiBkb3h5Z2VuLmNvbmY6CiAgICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC4yICkKCjIwMDgtMDUtMDkgMTQ6MjMgIGR0czEyCgogICAqIE1ha2VmaWxlLnRvcDoKICAgICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOC0wNS0wOSAxMzo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CiAgICAgRGVidWdnaW5nIG1lc3NhZ2VzLgoKMjAwOC0wNS0wOCAxNDowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgogICAgIERyb3Agc3VwcG9ydCBmb3IgdGhlIGludGVyaW0gU0lPQ0RFVlBSSVZBVEUtYmFzZWQgaW9jdGwgY2FsbHMuCiAgICAgU0lPQ0dNSUlQSFkvU0lPQ0dNSUlSRUcgaGF2ZSBiZWVuIGRlZmluZWQgc2luY2UgYXQgbGVhc3QgU2VwdAogICAgIDIwMDEgKGtlcm5lbCAyLjQuMTApLAogICAgIHNvIHRoZSByaXNrIG9mIGNhbGxpbmcgYW4gaW5hcHByb3ByaWF0ZSBwcml2YXRlIGlvY3RsIGlzIHByb2JhYmx5CiAgICAgZ3JlYXRlciB0aGFuCiAgICAgdGhhdCBvZiBtaXNzaW5nIGluZm9ybWF0aW9uIGZyb20gYW4gYW5jaWVudCBzeXN0ZW0uCgoyMDA4LTA1LTA4IDA5OjAyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CiAgICAgRG9uJ3QgdHJ5IHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGFub255bW91cyB1c2Vycy4KICAgICAoQW4gaW52YWxpZCB0cmFwc2VzcyBkaXJlY3RpdmUgbWF5IGNyYXNoIHRoZSBhZ2VudCkKCjIwMDgtMDUtMDIgMTA6MTkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjkuaDoKICAgICBIYW5kbGUgdWRwVGFibGUgaW5kZXhpbmcgb24gYm90aCBQUEMgYW5kIEludGVsIGhhcmR3YXJlLgoKMjAwOC0wNC0zMCAwNToyOCAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CiAgICAgUmVtb3ZlIHVubmNlc3NhcnkgcHJvdG90eXBlcwoKMjAwOC0wNC0xOSAyMjoyMCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKICAgICBkb24ndCBkZXBlbmQgb24gT0lEIHJlc29sdXRpb24gZm9yIGRpc21hbiBsaW5rVXBEb3duTm90aWZpY2F0aW9ucwoKMjAwOC0wNC0wOCAyMDozOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKICAgICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhbiBleHRyYSBicmFjZSBpbiB0aGUgZG9jcyBwb2ludGVkIG91dCBieQogICAgIEphc29uIE1hcnRpbgoKMjAwOC0wNC0wNyAxNDowMCAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgogICAgIEFub3RoZXIgb3Zlci1zaG9ydCBERVNDUklQVElPTiBidWZmZXIuCgoyMDA4LTA0LTA3IDEzOjU3ICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CiAgICAgSGFuZGxlIGxvbmdlciBERVNDUklQVElPTi9SRUZFUkVOQ0Ugc3RyaW5ncyBpbiBDYXBhYmlsaXRpZXMKICAgICBzdGF0ZW1lbnRzLgogICAgIChDb25zaXN0ZW50IHByb2Nlc3Npbmcgd2l0aCBvdGhlciBNSUIgZGVmaW5pdGlvbiBtYWNyb3MpLgogICAgIEZpeCBwcm92aWRlZCBieSBBbGVrc2FuZHIgTG9tYW5vdi4KCjIwMDgtMDMtMjYgMDc6NTIgIG1hZ2ZyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKICAgICBORVdTOiBzbm1wbGliOiBmcm9tICJBbGVrc2FuZHIgTG9tYW5vdiI6IENvcnJlY3RlZCByZWdpc3RlcmluZyBvZgogICAgIG11bHRpcGxlIHByZW1pYiBjb25maWcgaGFuZGxlcnMgc28gdGhhdCBhbGwgb2YgdGhlbSBnZXQKICAgICByZWdpc3RlcmVkIGFzIHByZW1pYiBoYW5kbGVycyBhcyBvcHBvc2VkIHRvIHRoZSBlYXJsaWVyIGJlaGF2aW91cgogICAgIHdoZXJlIHRoZXkgYWx3YXlzIGdvdCByZWdpc3RlcmVkIGFzIG5vcm1hbCBjb25maWcgaXRlbXMuCgoyMDA4LTAzLTI1IDA2OjA3ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgogICAgIFJlbW92ZSBzcHVyaW91cyBwcmludGYgZnJvbSB1bnJlZ2lzdGVyX21pYl9jb250ZXh0CgoyMDA4LTAzLTI0IDE3OjU0ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKICAgICBDSEFOR0VTOiBtaWIyYzogQlVHOiAxODc0MDU5LDE3MzcwNjg6IEhhbmRsZSBNSUIgb2JqZWN0cyB3aXRoCiAgICAgZW1iZWRkZWQgaHlwaGVucwoKMjAwOC0wMy0yNCAxNzoyOSAgZHRzMTIKCiAgICogc25tcGxpYi9hc24xLmM6CiAgICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAxODY2NjU1OiBIYW5kbGUgcGFyc2luZyBpbnZhbGlkIE9JRAogICAgIHN1YmlkZW50aWZpZXJzCgoyMDA4LTAzLTI0IDE2OjUzICBkdHMxMgoKICAgKiBzbm1wbGliL2FzbjEuYzoKICAgICBDSEFOR0VTOiBsaWJyYXJ5OiBQQVRDSDogMTkyMTg2MTogQXZvaWQgZW5kbGVzcyBsb29wIGFmdGVyCiAgICAgdHJ1bmNhdGluZyA2NGJpdCBpbnQKCjIwMDgtMDMtMjQgMTU6MDAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgogICAgIENIQU5HRVM6IGJ1aWxkOiBCVUc6IDE4MjMzODE6IFZhbGlkIE1JQiBkaXJlY3Rvcnkgc2VhcmNoIHBhdGggb24KICAgICBXaW5kb3dzCgoyMDA4LTAzLTIxIDE3OjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLAogICAgIHNubXBsaWIvd2lucGlwZS5jOgogICAgIE5FV1M6IGxpYnNubXA6IFBBVENIOiAxODk1OTI3OiBmcm9tIGpodW04MTExOiBjaGFuZ2Ugb2Jzb2xldGUKICAgICByZWN2L3NlbmQgdG8gcmVjdmZyb20vc2VuZHRvCgoyMDA4LTAzLTIxIDE3OjQ5ICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgogICAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDE4NjIxNzc6IGZyb20gd2FmZmxlc291ZmZsZTogbWFkZSBjb2RlCiAgICAgbW9yZSB3aW5kb3dzL2N5Z3dpbiBjb21waWxlciBmcmllbmRsCgoyMDA4LTAzLTIxIDE3OjQ1ICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnQucHk6CiAgICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMTg3Nzg0MDogZml4IE1JQiBsYWJlbCBhbmQgaW5kZXhpbmcgZHVlCiAgICAgdG8gc2xpZ2h0bHkgYnJva2VuIHJlZ2V4cAoKMjAwOC0wMy0yMSAxNzozOSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG06CiAgICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDE5MjAzOTA6IGZyb20gd2lsbWVzajogZml4IHJlZ2lzdHJhdGlvbiBvZgogICAgIHRhYmxlcyB3aXRoIC4wIGFzIElJRHMKCjIwMDgtMDMtMjEgMTc6MzIgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtOgogICAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAxOTE0NjQ1OiBmcm9tIHdpbG1lc2o6IGJldHRlciBlbmQgb2YgbWliCiAgICAgc3VwcG9ydAoKMjAwOC0wMy0yMSAxNzoyOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKICAgICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMTkxNDY0MzogZnJvbSB3aWxtZXNqOiBmaXggaXNzdWVzIHdpdGgKICAgICBlbWJlZGRlZCBwZXJsIHJldHVybmluZyAwIGJlaW5nIHJlY2xhc3NpZmllZCBhcyBhIHdyb25nIGRhdGEgdHlwZQogICAgIHdoZW4gYW4gaW50IHdvcmtzLgoKMjAwOC0wMy0yMSAxNzoyMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CiAgICAgQ0hBTkdFUzogbWliMmM6IFBBVENIIDE5MTQzOTg6IGZyb20gd2lsbWVzajogaW5zdGFsbAogICAgIG1pYjJjLnBlcmwuY29uZgoKMjAwOC0wMy0yMSAxNzowMiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG06CiAgICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDE5MTQzOTM6IGZyb20gd2lsbWVzajogcmVnaXN0ZXJBZ2VudCBjYW4KICAgICBub3cgYmUgcnVuIG11bHRpcGxlIHRpbWVzCgoyMDA4LTAzLTIxIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CiAgICAgTkVXUzogc25tcGQ6IFBBVENIOiAxOTA5ODEzOiBmaXggdGFibGVfaXRlcmF0b3IgaGludCB0byBnZXRfZmlyc3QKICAgICB3aGVuIFNPUlRFRCBmbGFnIGlzIHNldAoKMjAwOC0wMi0yNyAyMjoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKICAgICBGaXggQysrIHN0eWxlIGNvbW1lbnQKCjIwMDgtMDItMjIgMjM6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYzoKICAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4OTYxMTg6IHBhdGNoIGZyb20ganNhZnJhbmVrOiBmaXggaWZUYWJsZQogICAgIDMyYml0IGNvdW50ZXJzIG9uIGxpbnV4CgoyMDA4LTAyLTIyIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CiAgICAgQ0hBTkdFUzogbGlic25tcDogUEFUQ0g6IDE4OTgyMDQ6IGZyb20gTWlrZSBXZXNjb3R0OiBmaXggYnVnCiAgICAgMTg5ODE5OCBpbiBwYXJzZS5jIHRvIGF2b2lkIGEgc2VnZmF1bHQgd2hlbiBwYXJzaW5nIGJyb2tlbiBtaWJzLgoKMjAwOC0wMi0xOCAxMjoxMSAgZHRzMTIKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CiAgICAgQ2xhcmlmeSB0aGUgbmVlZCB0byByZXNldCBidWZmZXIgbGVuZ3RoIHdoZW4gY2FsbGluZyAncmVhZF9vYmppZCcKICAgICByZXBlYXRlZGx5LgoKMjAwOC0wMi0xNyAxODowMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKICAgICBmaXggdHlwbyBpbiB2YXJpYWJsZSBuYW1lCgoyMDA4LTAyLTE3IDA4OjM4ICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CiAgICAgcG9ydGFiaWxpdHkgZml4CgoyMDA4LTAyLTE1IDEzOjAwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CiAgICAgcG9ydGFiaWxpdHkgZml4CgoyMDA4LTAyLTE1IDA0OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgogICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTcxNjU0ODogZnJvbSBteWFtYXRvOiBGaXggaGVscCBvdXRwdXQgc28KICAgICBubyBzcGFjZSBpcyBwcmludGVkIGJldHdlZW4gLUQgYW5kIGFyZ3VtZW50cy4KCjIwMDgtMDItMTUgMDM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CiAgICAgTkVXUzogc25tcGQ6IFBBVENIOiAxODkzNDY4OiBmcm9tIGdrb2VuaWc6IGZpeGVkIHJlZ2lzdHJhdGlvbiBvZgogICAgIE9JRHMgd2l0aCByYW5nZXMKCjIwMDgtMDItMTQgMjE6NDAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CiAgICAgZml4IHR5cG8gaW4gdmFyaWFibGUgZGVjbGFyYXRpb24gKHVuYnJlYWtzIHRoZSBidWlsZCBvbiBhIGZldwogICAgIHN5c3RlbXMpCgoyMDA4LTAyLTE0IDAwOjI5ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgogICAgIHllYXIgdXBkYXRlIGZvciBzcGFydGEKCjIwMDgtMDItMTMgMjM6MzcgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYzoKICAgICBORVdTOiBzbm1wbGliOiBDaGFuZ2UgQ09OVEFJTkVSX0lOU0VSVCB0byBub3QgZG8gcGFydGlhbCBpbnNlcnRzCiAgICAgaW4gY29udGFpbmVycyB3aXRoIG11bHRpcGxlIGluZGljZXMgd2hlbiBvbmUgaW5zZXJ0IGZhaWxzLgoKMjAwOC0wMi0xMyAyMzoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CiAgICAgRml4ZWQgdGhlIGNyZWF0ZVVzZXIgbGluZSB0byBzcGVjaWZ5IHRoZSAtZSBmbGFnIChyZXNwb25kaW5nIHRvIGEKICAgICBjb21wbGFpbnQgYWJvdXQgaXQgYmUgbWlzc2luZykKCjIwMDgtMDItMTMgMTc6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CiAgICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzgzNzMzOiBQdXQgdGhlIHBhY2thZ2UgdmVyc2lvbiBudW1iZXIKICAgICBpbnRvIHRoZSBoclNXSW5zdCB0YWJsZSBmb3Igc29sYXJpcy4KCjIwMDgtMDItMTMgMTY6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CiAgICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzg0NzQ3OiBmcm9tIGpzYWZyYW5lazogRml4IGxvbmcgdXNhZ2UKICAgICBmb3IgaXAgYWRyZXNzZXMgb24gNjQgYml0IHN5c3RlbXMgaW4gdmFyaW91cyBNSUItSUkgdGFibGVzLgoKMjAwOC0wMi0xMyAxNjowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgogICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTgyNjEwMjogZnJvbSBqc2FmcmFuZWs6IHN1cHBvcnQgbG9uZ2VyCiAgICAgaW50ZXJmYWNlIG5hbWVzIG9uIGxpbnV4CgoyMDA4LTAyLTEzIDA5OjIyICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZToKICAgICByZXZlcnQgdG8gYXV0b2NvbmYgMi41OSBwZXIgZXhpc3RpbmcgcG9saWN5CgoyMDA4LTAyLTEyIDIzOjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgogICAgIENIQU5HRVM6IGxpYnNubXA6IFBBVENIOiAxODA3NDg5OiBmaXggaWdub3Jpbmcgb2YgZGlzcGxheSBoaW50cy4KCjIwMDgtMDItMTIgMjI6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgogICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTg2NjgyMzogZnJvbSBqc2FmcmFuZWs6IHRydW5jYXRlIDMyIGJpdAogICAgIGNvdW50ZXIgdmFsdWVzIG9uIDY0IGJpdCBtYWNoaW5lcyB0byBhdm9pZCBib2d1cyB3YXJuaW5ncy4KCjIwMDgtMDItMTIgMTk6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CiAgICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxODQ5OTAzOiBmcm9tIGpzYWZyYW5lazogZG8gbm90IHNwYW0gbG9nCiAgICAgd2l0aCBhc3NlcnRzIHdoZW4gWEVOIGlzIHVzZWQKCjIwMDgtMDItMTIgMTg6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKICAgICBDSEFOR0VTOiBsaWJzbm1wOiBQQVRDSDogMTg3NTAyMjogZnJvbSBzZW1fcHJnOiBpbXByb3ZlIGNhbGxiYWNrCiAgICAgbG9ja2luZyBtZWNoYW5pc21zCgoyMDA4LTAyLTEyIDE3OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYzoKICAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4NzkyNjE6IGZyb20gYW1lc2J1cnk6IEFkZCBpbiBpbmFjdGl2ZQogICAgIG1lbW9yeSB0byB0aGUgY2FjaGVkIHJlcG9ydCBmb3IgZnJlZWJzZAoKMjAwOC0wMi0xMiAxNToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CiAgICAgQ2hhbmdlIHNucHJpbnRmIHByaW50IGxlbmd0aHMgdG8gbGVuLTEgdG8gbGVhdmUgMCBpbiBmaW5hbAogICAgIHBvc2l0aW9uIGZvciBwcmludGluZwoKMjAwOC0wMi0xMSAyMjoyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CiAgICAgZml4IHF1b3RlZCBzdHJpbmdzIGluIGhlbHAgb3V0cHV0CgoyMDA4LTAxLTMwIDE3OjI5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKICAgICBhZGRlZCB2YWNtX2NvbmYgdG8gZXhpc3RpbmcgY29uZmlndXJlIGZpbGVzIChmb3IgdHJhcGQgdG9vKQoKMjAwOC0wMS0yMCAwNzo1NSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKICAgICBDSEFOR0VTOiBidWlsZDogQlVHOiAxODcyMjY2OiBQRVJMQ0MgY2hlY2sgZmFpbHMgZm9yIENDIHdpdGgKICAgICBvcHRpb25zCgoyMDA4LTAxLTE3IDAxOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaDoKICAgICBmaXggZGVmYXVsdCBtaWJzIHRvIGluY2x1ZGUgdmFjbV9jb25mIHRvbwoKMjAwOC0wMS0xNyAwMDowOSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgogICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTgyNjA4ODogZnJvbSBKYW4gU2FmcmFuZWs6IFVzZSB0aGUgcmlnaHQKICAgICBpbnRlcmZhY2UgdCByZWFkIHRoZSBuZXRtYXNrCgoyMDA4LTAxLTE2IDIxOjU0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CiAgICAgQ0hBTkdFUzogSGFuZGxlIGRldmljZSBuYW1lcyB3aXRoIGVtYmVkZGVkIHNwYWNlcyBpbgogICAgIFVDRC1TTk1QLU1JQjo6ZHNrRGV2aWNlCgoyMDA4LTAxLTE2IDAwOjQ3ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CiAgICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxODI4ODM5OiBmcm9tIGpzYWZyYW5layB0byBwcm92aWRlIGJldHRlcgogICAgIGhhbmRsaW5nIG9mIGRpc2tzIG1vdW50ZWQgb24gcGF0aHMgd2l0aCBlbWJlZGRlZCBzcGFjZXMKCjIwMDgtMDEtMTUgMTY6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgogICAgIGNvdmVyaXR5IGJ1ZyAyMDU6IGRvdWJsZSBjaGVjayBwb2ludGVyIHRoYXQgc2hvdWxkIG5ldmVyIGJlIG51bGwKCjIwMDgtMDEtMDkgMjE6NTggIG1hZ2ZyCgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgogICAgIERlbGV0ZSB1bnVzZWQgc3RhdGljIGZ1bmN0aW9ucwoKMjAwOC0wMS0wNiAxMzowMSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgogICAgIE1ha2UgZXJyb3Jfc3RyaW5nIHByaXZhdGUgYW5kIHJlYWRvbmx5CgoyMDA3LTEyLTIyIDE5OjIyICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKICAgICBDSEFOR0VTOiBwZXJsOiBCVUc6IDE4MjYxNzQ6IENoZWNrIGZvciBidWZmZXIgb3ZlcmZsb3cgd2hlbgogICAgIHByaW50aW5nIHZhbHVlcy4KCjIwMDctMTItMjEgMjM6MTkgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgogICAgIENIQU5HRVM6IHBlcmw6IEJVRzogMTc0NzczMzogTW9yZSByb2J1c3QgaGFuZGxpbmcgb2YgdW5kZWZpbmVkCiAgICAgdmFsdWVzLgogICAgIFBhdGNoIHN1cHBsaWVkIGJ5IE1hdHRpIExpbm5hbnZ1b3JpCgoyMDA3LTEyLTIxIDIxOjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgogICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE3NDgyMDY6IFByb3RlY3QgYWdhaW5zdCBmYWlsdXJlcyB0byBvcGVuCiAgICAgL2V0Yy9tdGFiIChvciBlcXVpdikKCjIwMDctMTItMjEgMTg6NDIgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKICAgICBCcmluZyBvcmRlciBvZiBhZ2VudCBsaWJyYXJ5IGxpbmtpbmcgaW50byBsaW5lIHdpdGggYWdlbnQKICAgICBNYWtlZmlsZS4KICAgICBQcm9ibGVtIHJlcG9ydGVkIGJ5IFN0ZXZlIE1jQ2FydGh5LgogICAgIFFuOiBTaG91bGQgNS4yLnggYW5kIDUuMy54IGFsc28gdXNlIHRoZSBzYW1lIG9yZGVyPwogICAgIChmb3IgYm90aCBhZ2VudCBNYWtlZmlsZSBhbmQgbmV0LXNubXAtY29uZmlnKQoKMjAwNy0xMi0yMSAxMzoxMSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CiAgICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMTgwMjgzMzogRW5zdXJlIHNubXB0cmFwZCBidWlsZHMgd2l0aAogICAgIC0tZGlzYWJsZS1zbm1wdjEvMmMKCjIwMDctMTItMjAgMTY6MjYgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgogICAgIENIQU5HRVM6IHBlcmw6IEJVRzogMTgzNDUzOTogQ29uc2lzdGVudCBoYW5kbGluZyBvZiBPSUQgcGFyc2luZy4KICAgICBBcHBsaWVzIHBhdGNoICMxODM0OTgzLCBwcm92aWRlZCBieSBEbWl0cnkgS2FyYXNpawoKMjAwNy0xMi0yMCAxNDoyMCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmM6CiAgICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTgyMjM2MDogRml4IHNwaW5sb2NrIGhlbHBlciBlcnJvciBoYW5kbGluZy4KCjIwMDctMTItMjAgMTQ6MTggIGR0czEyCgogICAqIHNubXBsaWIvYXNuMS5jOgogICAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMTc5NTg0MDogU2lnbmVkIDMyLWJpdCB0cnVuY2F0aW9uIGxvZ2dlZAogICAgIGFzIGRlYnVnIG1lc3NhZ2UgcmF0aGVyIHRoZW4gZXJyb3IuCgoyMDA3LTEyLTIwIDE0OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKICAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNzkyODkwOiBpbmNsdWRlIENJRlMgbW91bnRzIHdoZW4gc2tpcHBpbmcKICAgICByZW1vdGUgZmlsZXN5c3RlbXMKCjIwMDctMTItMjAgMTQ6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKICAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNzcxMjIxOiBSZXRhaW4gaWZMYXN0Q2hhbmdlIGluZm9ybWF0aW9uIG9uCiAgICAgZGF0YSByZWxvYWQuCgoyMDA3LTEyLTIwIDE0OjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CiAgICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTc1ODIxMjogSGFuZGxpbmcgbWlzc2luZyB2YXJpYWJsZSB0eXBlcwogICAgIChJcEFkZHJlc3MsQ291bnRlcixPcGFxdWUpCgoyMDA3LTEyLTE5IDIyOjM5ICBtYWdmcgoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jLCBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jLAogICAgIHNubXBsaWIvY29udGFpbmVyX251bGwuYywgc25tcGxpYi9kYXRhX2xpc3QuYywKICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmM6CiAgICAgQ29ycmVjdCBkb3h5Z2VuIHdhcm5pbmdzCgoyMDA3LTEyLTE5IDIyOjMxICBtYWdmcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M3ZhY21jb25maWcsIHRlc3RpbmcvdGVzdHMvVDAwMXNubXB2MWdldCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTRzbm1wdjJjZ2V0LCB0ZXN0aW5nL3Rlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQsCiAgICAgdGVzdGluZy90ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsCiAgICAgdGVzdGluZy90ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICAgIHRlc3RpbmcvdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTlzbm1wdjJjbm9zdWNoLCB0ZXN0aW5nL3Rlc3RzL1QwMjJzbm1wdjNnZXRNRDUsCiAgICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1QUVTLAogICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsCiAgICAgdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uLAogICAgIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLAogICAgIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsCiAgICAgdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlLCB0ZXN0aW5nL3Rlc3RzL1QwNjB0cmFwZHBlcmwsCiAgICAgdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsLCB0ZXN0aW5nL3Rlc3RzL1QwNjVhZ2VudGV4dGVuZCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cCwgdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwgdGVzdGluZy90ZXN0cy9UMTIxcHJveHlzZXQsCiAgICAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsLCB0ZXN0aW5nL3Rlc3RzL1QxMzBzbm1wdjF2YWNtZ2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDEzMXNubXB2MmN2YWNtZ2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDE0MHNubXB2MXZhY21nZXRmYWlsLAogICAgIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTBzb2xhcmlzaG9zdGNwdSwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTFzb2xhcmlzaG9zdGRpc2ssIHRlc3RpbmcvdGVzdHMvVDE1Mmhvc3R1cHRpbWUsCiAgICAgdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXAsIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0LAogICAgIHRlc3RpbmcvdGVzdHMvVDIwMHNubXB2MmN3YWxrYWxsOgogICAgIFVzZSBORVRTTk1QXy1wcmVmaXhlZCBzeW1ib2xzIHdoZW4gZGVjaWRpbmcgd2hhdCB0ZXN0cyB0byBydW4gYXMKICAgICB0aGUgY29tcGF0IHN5bWJvbHMgYXJlbid0IGRlZmluZWQuCgoyMDA3LTEyLTE5IDIyOjA2ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CiAgICAgQlVHIDE4MzE1Njg6IHN0cmR1cCBtaWdodCBmYWlsIGFuZCByZXR1cm4gTlVMTCAtIHRha2UgY2FyZSBvZiBpdAogICAgIGluIHRoaXMgY2FzZSBhdCBsZWFzdC4KCjIwMDctMTItMTkgMjE6NDkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLCBzbm1wbGliL3NubXBfYXBpLmM6CiAgICAgQlVHIDE4MjQ4ODM6IFJlbW92ZSBtZW1vcnkgbGVhawoKMjAwNy0xMi0xOSAyMDo0NiAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmM6CiAgICAgQ0hBTkdFUzogQlVHOiAxODUxMDQ3OiBEbyBub3QgdHJ5IHRvIGRvIG1vcmUgaGFuZGxpbmcgb2YgYSB2YWx1ZQogICAgIG9uY2UgaXQgaXMgZm91bmQgdG8gYmUgY29ycnVwdCBieSB0aGUgd2F0Y2hlciBoZWxwZXIsIHRodXMKICAgICBhdm9pZGluZyBjb2RlIHRoYXQgY291bnRzIG9uIGdldHRpbmcgdGhlIHJpZ2h0IHR5cGUuIFRoaXMgYnVnIHdhcwogICAgIGZvdW5kIGJ5IENoYXJsaWUgTWlsbGVyLCBJbmRlcGVuZGVudCBTZWN1cml0eSBFdmFsdWF0b3JzLgoKMjAwNy0xMS0yNyAwOTo1NiAgZHRzMTIKCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjoKICAgICBDbGFyaWZ5IHVzZSBvZiB0aGUgLUEgKGxvZyBhcHBlbmQpIG9wdGlvbi4KCjIwMDctMTEtMjIgMTU6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYzoKICAgICBjaGVjayByZXF1ZXN0LCBub3QgcmVxdWVzdHMuIHJlcG9ydGVkIGJ5IHVsaW0gb24gaXJjCgoyMDA3LTExLTIyIDE1OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmM6CiAgICAgY2hlY2sgcmVxdWVzdCwgbm90IHJlcXVlc3RzLiByZXBvcnRlZCBieSB1bGltIG9uIGlyYwoKMjAwNy0xMS0xOSAyMTozNCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CiAgICAgQ0hBTkdFUzogU29sYXJpczogUEFUQ0g6IDE4MzQ2OTk6IGZyb20gYXBlcnNzb246IEZpeCAxODMzMjk0OgogICAgIERMUEkgcHJvYmxlbXMgb24gU29sYXJpcyAyLjYKCjIwMDctMTEtMDggMjM6MTcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jLAogICAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKICAgICBDSEFOR0VTOiBTb2xhcmlzOiBQQVRDSDogMTgyNDE5Njoge2lmT3BlclN0YXR1cyxpcEFkRW50SWZJbmRleH0KICAgICByZXBvcnRlZCBpbmNvcnJlY3RseQogICAgIFBhdGNoIHN1cHBsaWVkIGJ5IEFuZGVycyBQZXJzc29uLiBGaXhlcyBCdWdzIDE4MjIyNzUgYW5kIDE4MTkxODkuCgoyMDA3LTEwLTE2IDA3OjE3ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsCiAgICAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKICAgICBDSEFOR0VTOiBtaXNjOiBhdm9pZCBjYWxsaW5nIGRlYnVnIG1hY3JvcyB3aXRoIHRvbyBtYW55CiAgICAgYXJndW1lbnRzLgoKMjAwNy0xMC0xNiAwNjoxOCAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX3NlcnZpY2UuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgogICAgIE1ha2UgdGhlIGxpYnJhcnkgYnVpbGRhYmxlIGFzIEMrKyBhZ2Fpbi4KCjIwMDctMTAtMTUgMjA6MzkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlVGFibGUuYzoKICAgICBDb252ZXJ0IGFuIGluZmluaXRlIGxvb3AgdG8gYSBmaW5pdGUgb25lLgogICAgIFJlbW92ZSBhbiB1bnVzZWQgdmFyaWFibGUuCgoyMDA3LTEwLTE0IDIyOjEwICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jOgogICAgIENIQU5HRVM6IG1pc2M6IEF2b2lkIGNhbGxpbmcgZGVidWcgbWFjcm9zIHdpdGggdG9vIGZldyBhcmd1bWVudHMuCgoyMDA3LTEwLTE0IDIwOjUxICB0YW5kZXJzCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKICAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTgxMTQ2OTogcmVhZF9jb25maWdfZmlsZXNfaW5fcGF0aCgpCiAgICAgcmVhZHMgcGFzdCBtYWxsb2MnZCBidWZmZXIKCjIwMDctMTAtMTQgMjA6NDEgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CiAgICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDE4MTE0NjM6IHBlcmwgYXN5bmMgY2FsbGJhY2sgY29yZWR1bXAKICAgICBDSEFOR0VTOiBwZXJsOiBCVUc6IDE2MDYwNjI6IHBlcmwgYnVsa3dhbGsgKGFzeW5jKSBjb3JlZHVtcAoKMjAwNy0xMC0xNCAxOTowNyAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgogICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxODA2MzM2OiBmaXggLUxTIG9wdGlvbiBwYXJzaW5nCgoyMDA3LTEwLTE0IDEyOjEyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CiAgICAgZml4IGNvbW1lbnQKCjIwMDctMTAtMTMgMjM6MjggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CiAgICAgQ0hBTkdFUzogdGVzdDogZW5oYW5jZSBzbm1wbmV0c3RhdCB0ZXN0IHRvIGNoZWNrIHRjcFRhYmxlIGluIFRDUAogICAgIG1vZGUKCjIwMDctMTAtMTMgMjI6MjggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmg6CiAgICAgQ0hBTkdFUzogU29sYXJpczogQlVHOiAxODEwODE0OiB0Y3BUYWJsZSBtaXNzaW5nIGVudHJpZXMgYW5kCiAgICAgd3JvbmcgcG9ydHMKCjIwMDctMTAtMTIgMjE6NDYgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oOgogICAgIENIQU5HRVM6IFNvbGFyaXM6ICNkZWZpbmUgTkVXX01JQl9DT01QTElBTlQgdG8gc3VwcG9ydCBTb2xhcmlzCiAgICAgMTBVNCsKCjIwMDctMTAtMTEgMjA6NDYgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgogICAgIENIQU5HRVM6IHNubXBsaWI6IERvIG5vdCBsZWFrIG1lbW9yeSB3aGVuZXZlciBhbiB1ZHAgYWRkcmVzcyBpcwogICAgIGZvcm1hdHRlZC4KCjIwMDctMDktMzAgMjA6NTkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wX3NlcnZpY2UuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgogICAgIENIQU5HRVM6IEJVRzogMTgwMTgzNTogQWRkZWQgdGhlIGFiaWxpdHkgdG8gaGF2ZSBtdWx0aXBsZSBkZWZhdWx0CiAgICAgdHJhbnNwb3J0cyBmb3IgYW4gYXBwbGljYXRpb24uIE9uIG9wZW4gdGhlIGRpZmZlcmVudCB0cmFuc3BvcnRzCiAgICAgd2lsbCBiZSB0cmllZCBpbiBvcmRlci4gQXMgYSBjb25zZXF1ZW5jZSBzbm1wIGFuZCBzbm1wdHJhcCBub3cKICAgICB3aWxsIHRyeSBmaXJzdCB1ZHAgYW5kIHRoZW4gdWRwNiBhbmQgYWdlbnR4IHdpbCB0cnkgZmlyc3QgdW5peAogICAgIGFuZCB0aGVuIHRjcC4KCjIwMDctMDktMjkgMTM6MTAgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKICAgICBDSEFOR0VTOiBzbm1wbGliOiBEbyBub3QgdHJ5IHRvIGxvb2sgdXAgZW1wdHkgc3RyaW5ncyBhcwogICAgIGhvc3RuYW1lcyBmb3IgSVB2NgogICAgIEFkZGl0aW5hbGx5LCBwcmludCB3aGF0IHN0cmluZyBmaWxlZCB0byByZXNvbHZlIHVzaW5nIGdldGFkZHJpbmZvCiAgICAgZm9yIElQdjYKCjIwMDctMDktMjQgMjA6NDMgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CiAgICAgeWVhciB1cGRhdGUKCjIwMDctMDktMjAgMjE6NTUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgogICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc0NjgzMTogZnJvbSBjdW5uaWpkOiBmaXggcHJvY2VzcwogICAgIGNoZWNraW5nIHJhY2UKICAgICBjb25kaXRpb24gdW5kZXIgTGludXggYW5kIHBsYXRmb3JtICNpZmRlZnMKCjIwMDctMDktMTkgMjE6MDkgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CiAgICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiBDb3Zlcml0eSAjMTgzOiBmaXggbWVtb3J5IGxlYWsgaWYKICAgICBJUF9QS1RJTkZPIGZhaWxzCgoyMDA3LTA5LTE2IDA5OjUxICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CiAgICAgUmVtb3ZlIGJhc2hpc21zLiBUaGlzIGlzIG5ldGJzZCBwYXRjaC1ldCBmcm9tIGJ1ZyAxNzQ1NDA0LgoKMjAwNy0wOS0xNiAwOTo0NSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYzoKICAgICBVc2UgY29uc3QgY2hhciogZm9yIHRlbXBvcmFyeSBjb25zdGFudCBzdHJpbmcgdmFyaWFibGUuIFRoaXMgaXMKICAgICBuZXRic2QgcGF0Y2gtZWEgZnJvbSBidWcgMTc0NTQwNC4KCjIwMDctMDktMTYgMDk6NDAgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKICAgICBVc2UgdGhlIG5hdHVyYWwgdHlwZSBvZiBpbl9hZGRyX3QncyBmb3IgY29tcGFyaXNpb25zLiBUaGlzIGlzCiAgICAgbmV0YnNkIHBhdGNoLWVhIGZyb20gYnVnIDE3NDU0MDQuCgoyMDA3LTA5LTE2IDA3OjA2ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CiAgICAgQ0hBTkdFUzogQlVHOiAxNzkzNTQ1OiBUYWtlIHRoZSBuYW1lIGZyb20gdGhlIHNvY2thZGRyX3VuIGluCiAgICAgb3JkZXIgdG8gYXZvaWQgdHJhbnNwb3J0IHNwZWNpZmllcnMgYW5kIG90aGVyIGRlY29yYXRpb25zLgoKMjAwNy0wOS0xNCAxNDo0NCAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKICAgICBTeW5jaCB3aXRoIG1haW4gdHJ1bmsgcmVsZWFzZSBzY3JpcHQuCgoyMDA3LTA5LTEzIDIxOjI1ICB0YW5kZXJzCgogICAqIFJFQURNRToKICAgICBkcm9wIG9ic29sZXRlIG1pcnJvcnMKCjIwMDctMDgtMjUgMTQ6MjQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywKICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmg6CiAgICAgTWFrZSBtb3N0IG9mIG5vdGlmaWNhdGlvbl9sb2cgc3RhdGljLiBNaW5pbWl6ZSB0aGUgaGVhZGVyIGZpbGUuCgoyMDA3LTA4LTIyIDIxOjU2ICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CiAgICAgTkVXUzogYWdlbnQ6IHN1cHByZXNzIGFubm95aW5nICJyZWdpc3RyYXRpb24gIT0gZHVwbGljYXRlIgogICAgIHdhcm5pbmcgZm9yIHJvb3Qgb2lkcwogICAgIChvdGhlcndpc2UsIHlvdSdsbCBnZXQgdGhpcyBtZXNzYWdlIG9uIGFsbW9zdCBldmVyeSBzdGFydHVwKQoKMjAwNy0wOC0yMCAwODowNiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CiAgICAgTkVXUzogc25tcGxpYjogZml4IHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgaW4gc3ByaW50ZiBmb3IKICAgICBVRFAvSVB2NgoKMjAwNy0wOC0xNyAwOTowOCAgZHRzMTIKCiAgICogRkFROgogICAgIFN5bmNoIHdpdGggbWFpbiBkZXZlbG9wbWVudCAoYW5kIG9uLWxpbmUpIEZBUSB0ZXh0LgoKMjAwNy0wOC0xNyAwODo1OSAgZHRzMTIKCiAgICogRkFROgogICAgIENsYXJpZnkgaGFuZGxpbmcgb2YgdW5rbm93biBjb21tdW5pdGllcwoKMjAwNy0wOC0xNiAxNTozNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CiAgICAgRG9uJ3QganVzdCByZXBvcnQgdGhlIHByb2JsZW0gLSBpdCBtaWdodCBiZSBzZW5zaWJsZSB0byBhdm9pZAogICAgIGNyYXNoaW5nIHRoZSBhZ2VudCBhcyB3ZWxsIQoKMjAwNy0wOC0xNiAxNTozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CiAgICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzQ0MTU3OiBSZXBvcnQgZHVwbGljYXRlICJleHRlbmQvZXhlYyIKICAgICBpZGVudGlmaWVycy4KCjIwMDctMDgtMTYgMTU6MjQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCBhcHBzL3NubXB0cmFwZF9kcy5oOgogICAgIENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0g6IDE3NDY5OTI6IEltcHJvdmUgc25tcHRyYXBkCiAgICAgYWNjZXNzLWNvbnRyb2wgZXJyb3IgbWVzc2FnZXMuCgoyMDA3LTA4LTE2IDE0OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CiAgICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzUyOTM0OiBGaXggb2ZmLWJ5LW9uZSBxc29ydCBlcnJvciBpbgogICAgIHRhYmxlIHV0aWxpdGllcy4KCjIwMDctMDgtMTYgMTM6MzEgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKICAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3NTM0Mzc6IEZpeCBlcnJvciBpbmRleCBvbiBmYWlsaW5nIFNFVAogICAgIHJlcXVlc3RzCgoyMDA3LTA4LTE2IDEzOjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CiAgICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzUzNDQ5OiBGaXggQWdlbnRYIGVycm9yIHByb3BhZ2F0aW9uCgoyMDA3LTA4LTE2IDEyOjM0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKICAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3NTM0NjM6IEZpeCBBZ2VudFggc3ViYWdlbnQgcGluZyBhbGFybQogICAgIGhhbmRsaW5nCgoyMDA3LTA4LTE2IDEyOjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CiAgICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzU4MjA4OiBGaXggbWVtb3J5IGxlYWsKCjIwMDctMDgtMTYgMTI6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKICAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3NzQ2MTI6IE1vcmUgcmVzaWxpZW50IHByb2Nlc3Mgc3RhdHVzCiAgICAgaGFuZGxpbmcKCjIwMDctMDgtMTYgMTE6NTggIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgogICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNzc1MTI0OiBGaXggY2xpZW50YWRkciBmdW5jdGlvbmFsaXR5CgoyMDA3LTA4LTE2IDA5OjM4ICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CiAgICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE3NjgyODU6IENvdW50IE1JQiBmaWxlcyBjb3JyZWN0bHkgaW4KICAgICBhZGRfbWliZGlyKCkKCjIwMDctMDgtMTYgMDk6MzUgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CiAgICAgQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSDogMTc2NzcyNTogQ2xvc2UgYWxsIG5vbiBzdGFuZGFyZCBmaWxlCiAgICAgaGFuZGxlcwoKMjAwNy0wOC0xNiAwOTowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwVmFsdWUuYzoKICAgICBEZWNsYXJlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUgY29ycmVjdGx5LCBhbmQgb21pdCB1bnVzZWQKICAgICB2YXJpYWJsZXMuCiAgICAgUGF0Y2ggZnJvbSBNYWdudXMgRnJvbXJlaWRlLgoKMjAwNy0wOC0xNiAwODo1NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgogICAgIFJlYWQgaW4gYWdlbnQgY29uZmlndXJhdGlvbiBzZXR0aW5ncyAqYmVmb3JlKiB0aGUgaGVhZGVyCiAgICAgZmlsZXMgdGhhdCBtaWdodCByZWx5IG9uIHRoZW0uCgoyMDA3LTA4LTAyIDEzOjQ2ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CiAgICAgSXQgbWlnaHQgYmUgc2xpZ2h0bHkgbGVzcyBjb25mdXNpbmcgaWYgdGhlIG5ldFNubXBFeGFtcGxlU3RyaW5nCiAgICAgTUlCIG9iamVjdCBkaWQgYWN0dWFsbHkgdGFrZSBzdHJpbmcgdmFsdWVzLiBQaWNreSwgSSBrbm93Li4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUtNC1wYXRjaGVzIGJyYW5jaCBjcmVhdGVkIC0+IFY1LjQuMQoKMjAwNy0wNy0yNyAxNzowMiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsCiAgICAgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgogICAgIC0gdmVyc2lvbiB0YWcgKCA1LjQuMSApCgoyMDA3LTA3LTI3IDE3OjAxICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTLCBORVdTOgogICAgIHZlcnNpb24gdXBkYXRlCgoyMDA3LTA3LTI3IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CiAgICAgcmVtb3ZlIGJvZ3VzIGVtcHR5ICogbGluZXMgZnJvbSB0aGUgQ2hhbmdlTG9nCgoyMDA3LTA3LTI3IDE2OjU0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CiAgICAgZml4IHZlcnNpb24gbnVtYmVycyBpbiBDaGFuZ2VMb2cKCjIwMDctMDctMjcgMTY6NTQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKICAgICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNy0wNy0yNyAxNjoxNSAgaGFyZGFrZXIKCiAgICogbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywKICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLAogICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLAogICAgIG1hbi9uZXRzbm1wX3V0aWwuMywgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBtYW4vbmV0c25tcF93YXRjaGVyLjM6CiAgICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDctMDctMjcgMTY6MTMgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKICAgICAtIHZlcnNpb24gdGFnICggNS40LjEgKQoKMjAwNy0wNy0yNSAyMjo0MSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKICAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNzYwNjMzOiBmaXggdHlwbyBpbiBkZWJ1ZyBtZXNzYWdlCgoyMDA3LTA3LTIyIDAwOjU1ICB0YW5kZXJzCgogICAqIE5FV1M6CiAgICAgcmVtb3ZlIGR1cGxpY2F0ZSBlbnRyeQoKMjAwNy0wNy0yMiAwMDo1MiAgdGFuZGVycwoKICAgKiBORVdTOgogICAgIGltcHJvdmUgTkVXUyBzZWN0aW9uIGZvciA1LjQuMQoKMjAwNy0wNy0yMSAxNjoxNyAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsCiAgICAgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgogICAgIC0gdmVyc2lvbiB0YWcgKCA1LjQuMS5yYzQgKQoKMjAwNy0wNy0yMSAxNjoxNiAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUywgTkVXUzoKICAgICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNy0wNy0yMSAxNjoxMyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgogICAgIHZlcnNpb24gdXBkYXRlCgoyMDA3LTA3LTIxIDE1OjA3ICBoYXJkYWtlcgoKICAgKiBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywKICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLAogICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywKICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLAogICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCiAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywKICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgbWFuL25ldHNubXBfc2NhbGFyLjMsCiAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywKICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsCiAgICAgbWFuL25ldHNubXBfdXRpbC4zLCBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKICAgICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNy0wNy0yMSAxNTowNiAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgogICAgIC0gdmVyc2lvbiB0YWcgKCA1LjQuMS5yYzQgKQoKMjAwNy0wNy0yMSAxNDo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgogICAgIHBhdGNoIHRvIGZpeCBmb3J3YXJkaW5nIGVuY29kaW5nCgoyMDA3LTA3LTIwIDA4OjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CiAgICAgVHdlYWsgd2FybmluZyBtZXNzYWdlIGZvciAob2xkLXN0eWxlLCBpbnZhbGlkIGZvcm1hdCkgImV4ZWMgT0lEIgogICAgIGRpcmVjdGl2ZXMuCgoyMDA3LTA3LTE5IDIxOjE2ICB0YW5kZXJzCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgY29uZmlndXJlLCBsdG1haW4uc2g6CiAgICAgTkVXUzogYnVpbGQ6IHVwZGF0ZSB0byBsaWJ0b29sIDEuNS4yNCAoZnJvbSAxLjUuMjIpCiAgICAgQ0hBTkdFUzogSFAtVVg6IEJVRzogMTc0MjI3ODogY29tcGlsZSBlcnJvciBvbiBIUC1VWCAxMS4yMyAoSUE2NCkKCjIwMDctMDctMTkgMjE6MDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgYWdlbnQvc25tcGQuYzoKICAgICBDaGVjayBmb3IgcHJlc2VuY2Ugb2YgJ2Nob3duJyBhbmQgJ2xvY2FsdGltZV9yJyByb3V0aW5lcyBiZWZvcmUKICAgICB1c2luZyB0aGVtLgoKMjAwNy0wNy0xOSAyMTowMCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CiAgICAgQ29uZmlndXJlIGNoZWNrcyBmb3IgJ2Nob3duJyBhbmQgJ2xvY2FsdGltZV9yJyBmdW5jdGlvbnMKCjIwMDctMDctMTcgMDA6MjAgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLAogICAgIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKICAgICAtIHZlcnNpb24gdGFnICggNS40LjEucmMzICkKCjIwMDctMDctMTcgMDA6MTkgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKICAgICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNy0wNy0xNyAwMDoxNyAgaGFyZGFrZXIKCiAgICogbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywKICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLAogICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLAogICAgIG1hbi9uZXRzbm1wX3V0aWwuMywgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBtYW4vbmV0c25tcF93YXRjaGVyLjM6CiAgICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDctMDctMTcgMDA6MTYgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKICAgICAtIHZlcnNpb24gdGFnICggNS40LjEucmMzICkKCjIwMDctMDctMTYgMjM6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICAgIHNubXBsaWIvZGF0YV9saXN0LmM6CiAgICAgQXBwbHkgKGNvcnJlY3QpIHBhdGNoIGZyb20gTWFyY3VzIFJ1ZWNrZXJ0IHRvIHJlbW92ZSBhc3NlcnRzCiAgICAgdXNpbmcgc29ydC1vLWlsbGVnYWwgQyBzdHJpbmcgY29tcGFyZXMKCjIwMDctMDctMTYgMjM6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICAgIHNubXBsaWIvZGF0YV9saXN0LmM6CiAgICAgUmVtb3ZlIHByZXZpb3VzIHBhdGNoIHdoaWNoIHdhcyB0aGUgd3JvbmcgdmVyc2lvbgoKMjAwNy0wNy0xNiAyMzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgICAgc25tcGxpYi9kYXRhX2xpc3QuYzoKICAgICBBcHBseSBwYXRjaCBmcm9tIE1hcmN1cyBSdWVja2VydCB0byByZW1vdmUgYXNzZXJ0cyB1c2luZwogICAgIHNvcnQtby1pbGxlZ2FsIEMgc3RyaW5nIGNvbXBhcmVzCgoyMDA3LTA3LTEyIDIxOjUxICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CiAgICAgZml4IHN1YmFnZW50IGV4YW1wbGUgKGRvY3VtZW50YXRpb24pCgoyMDA3LTA3LTEyIDIxOjI3ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wX3Nlc3NfYXBpLjMuZGVmOgogICAgIHNubXBfc2Vzc19yZWFkIHJldHVybnMgaW50LCBub3Qgdm9pZAoKMjAwNy0wNy0wNyAwMDoxNyAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsCiAgICAgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgogICAgIC0gdmVyc2lvbiB0YWcgKCA1LjQuMS5yYzIgKQoKMjAwNy0wNy0wNyAwMDoxNyAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUzoKICAgICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNy0wNy0wNyAwMDoxMyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgogICAgIHZlcnNpb24gdXBkYXRlCgoyMDA3LTA3LTA3IDAwOjExICBoYXJkYWtlcgoKICAgKiBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywKICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLAogICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywKICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLAogICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCiAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywKICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgbWFuL25ldHNubXBfc2NhbGFyLjMsCiAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywKICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsCiAgICAgbWFuL25ldHNubXBfdXRpbC4zLCBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKICAgICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNy0wNy0wNyAwMDoxMCAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgogICAgIC0gdmVyc2lvbiB0YWcgKCA1LjQuMS5yYzIgKQoKMjAwNy0wNy0wNiAyMzozOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXMsIE1ha2VmaWxlLnRvcDoKICAgICBDSEFOR0VTOiBidWlsZDogdXNlIGxpYnRvb2wgY2xlYW4gZm9yIHJlbW92aW5nIGZpbGVzIHRvIGVuc3VyZSB3ZQogICAgIGRlbGV0ZSBhbGwgbGlidG9vbCB0ZW1wb3JhcnkgZmlsZXMuCgoyMDA3LTA3LTA2IDIxOjIyICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgogICAgIHN0b3Agc2VhcmNoaW5nIHBhdGhzIHdoZW4gZG9uZQoKMjAwNy0wNy0wNiAyMToxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKICAgICBkbyBub3QgZnJlZSBpbnRlcmZhY2UgZW50cnkganVzdCBiZWNhdXNlIHdlIGNhbiBub3QgZ2V0IHN0YXRzIGZvcgogICAgIGl0CgoyMDA3LTA3LTA2IDE1OjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKICAgICBDSEFOR0VTOiBzbm1wZDogQlVHIDE3NDUxMTM6IEhhbmRsZSBzaW5nbGUtbGluZSAoYW5kIHplcm8tbGluZSkKICAgICBvdXRwdXQgaW4gVUNEIGNvbXBhdGFiaWxpdHkgbW9kZS4KCjIwMDctMDctMDUgMTQ6NDUgIHJzdG9yeQoKICAgKiAuLCBSRUFETUUub3NYOgogICAgIHIyMDA0NEBkaGNwMjExOiByc3RvcnkgfCAyMDA3LTA3LTA1IDEwOjQ0OjAxIC0wNDAwCiAgICAgcmVtb3ZlIGRpc2FibGUtc3RhdGljIGZyb20gcmVjb21tZW5kZWQgb3B0aW9ucwoKMjAwNy0wNy0wNSAxMTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKICAgICBza2lwIHN0YXRzIHBhcnNpbmcgb24gaW50ZXJmYWNlcyB3aXRoIG5vIHN0YXRpc3RpY3MKCjIwMDctMDctMDQgMjM6MjYgIHRhbmRlcnMKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CiAgICAgQ0hBTkdFUzogcGVybDogaW5zdGFsbCBlbWJlZGRlZCBwZXJsIGluaXQgZmlsZXMgZm9yCiAgICAgc25tcGQvc25tcHRyYXBkIHdpdGggbW9kZSA2NDQgaW5zdGVhZCBvZiA3NTUKCjIwMDctMDctMDQgMjE6NDIgIHRhbmRlcnMKCiAgICogUkVBRE1FLm9zWDoKICAgICBQZXJsIHByb2JsZW1zIChiZWxpZXZlZCB0byBiZSkgZml4ZWQKCjIwMDctMDctMDMgMjI6MzYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgogICAgIENIQU5HRVM6IGxpYnJhcnk6IFBhdGNoIGZyb20gIk1pdHN1cnUgQ2hpbmVuIjogY2xlYW5zIHVwIHRoZQogICAgIGludDY0IHR5cGUgY2hlY2tpbmcgYW5kIHVzYWdlIGZvciBidWlsZGluZyBwYWNrZXRzIGVzcGVjaWFsbHkKICAgICB1bmRlciBNU1ZDLgoKMjAwNy0wNy0wMyAxMjo1NiAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbToKICAgICByZW1vdmUgZXhlY3V0YWJsZSBmbGFnIGZyb20gU1ZOIHByb3BlcnRpZXMKCjIwMDctMDctMDIgMDY6MDIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jOgogICAgIEFkZCBtaXNzaW5nIHJldHVybiB2YWx1ZSB0byBfbXRlRXZlbnRfZmlyZV9ub3RpZnkuCgoyMDA3LTA3LTAyIDA1OjMxICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmM6CiAgICAgUmVtb3ZlIHRoZSBkZWNsYXJhdGlvbiBvZiBhbiB1bmRlZmluZWQgc3RhdGljIGZ1bmN0aW9uLgoKMjAwNy0wNy0wMSAxOTo1OSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKICAgICBtaW5vciBoZWxwIHRleHQgZm9ybWF0dGluZyBmaXgKCjIwMDctMDYtMzAgMDU6MzQgIHRhbmRlcnMKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgogICAgIGFkZCAtLWVuYWJsZS1hcy1uZWVkZWQgaWYgYnVpbGRpbmcgd2l0aCBlbWJlZGRlZCBQZXJsIHN1cHBvcnQKCjIwMDctMDYtMzAgMDQ6MzcgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLAogICAgIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKICAgICAtIHZlcnNpb24gdGFnICggNS40LjEucmMxICkKCjIwMDctMDYtMzAgMDQ6MzcgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIE5FV1M6CiAgICAgdmVyc2lvbiB1cGRhdGUKCjIwMDctMDYtMzAgMDQ6MzYgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKICAgICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNy0wNi0zMCAwNDozNCAgaGFyZGFrZXIKCiAgICogbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywKICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLAogICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLAogICAgIG1hbi9uZXRzbm1wX3V0aWwuMywgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBtYW4vbmV0c25tcF93YXRjaGVyLjM6CiAgICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDctMDYtMzAgMDQ6MzIgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKICAgICAtIHZlcnNpb24gdGFnICggNS40LjEucmMxICkKCjIwMDctMDYtMjkgMjI6MTggIHRhbmRlcnMKCiAgICogUkVBRE1FLmFpeCwgUkVBRE1FLmlyaXgsIFJFQURNRS5zb2xhcmlzLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgICBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbmV0LXNubXAtY29uZmlnLmluOgogICAgIE5FV1M6IHBlcmw6IEJVRzogMTYxOTgyNzogbGluayBsaWJuZXRzbm1wYWdlbnQvbGlibmV0c25tcHRyYXBkCiAgICAgKHJhdGhlciB0aGFuIHNubXBkL3NubXB0cmFwZCkgYWdhaW5zdCBsaWJwZXJsIHdoZW4gY29uZmlndXJlZAogICAgIHdpdGggLS1lbmFibGUtYXMtbmVlZGVkCgoyMDA3LTA2LTI4IDIyOjA5ICB0YW5kZXJzCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKICAgICByZW5hbWUgbGFzdCBvY2N1cmVuY2Ugb2YgREVGQVVMVF9NSUJbRElSXVMgdG8KICAgICBORVRTTk1QX0RFRkFVTFRfTUlCW0RJUl1TCgoyMDA3LTA2LTI2IDIyOjEyICB0YW5kZXJzCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CiAgICAgQ0hBTkdFUzogYnVpbGQ6IHdvcmsgYXJvdW5kIGxpYm5ldHNubXBhZ2VudC9saWJuZXRzbm1waGVscGVycwogICAgIGRlcGVuZGVuY3kgaXNzdWVzIHdoZW4gbGlua2luZyBzbm1wdHJhcGQKCjIwMDctMDYtMjYgMjE6NDUgIHRhbmRlcnMKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CiAgICAgQ0hBTkdFUzogYnVpbGQ6IHVzZSBMREZMQUdTIHdoZW4gYnVpbGRpbmcgYWdlbnQsIGhlbHBlcnMgYW5kIG1pYgogICAgIGxpYiB0byBiZSBjb25zaXN0ZW50IHdpdGggbGlibmV0bm1wCgoyMDA3LTA2LTI2IDIxOjI4ICB0YW5kZXJzCgogICAqIElOU1RBTEw6CiAgICAgbWlub3IgdXBkYXRlcwoKMjAwNy0wNi0yNCAxMjo1NyAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgogICAgIEhBVkVfU1NJWkVfVCBjbGVhbnVwCgoyMDA3LTA2LTIzIDIyOjU2ICB0YW5kZXJzCgogICAqIFJFQURNRS5ocHV4MTE6CiAgICAgZG9uJ3Qgc3VnZ2VzdCAtLXdpdGgtbGlicz0tbG5tCgoyMDA3LTA2LTIyIDE1OjA5ICBkdHMxMgoKICAgKiB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCwgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwKICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgd2luMzIvbGlic2RsbC5kc3csCiAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsCiAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLAogICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3AsCiAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLAogICAgIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLAogICAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwKICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsCiAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwgd2luMzIvc25tcHZhY20vc25tcHZhY20uZHNwLAogICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcCwgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMnNkay5kc3c6CiAgICAgRW5mb3JjZSBET1Mtc3R5bGUgbGluZSBlbmRpbmdzLCB0byBrZWVwIFZpc3VhbCBTdHVkaW8gaGFwcHkuCgoyMDA3LTA2LTIwIDIxOjM0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmM6CiAgICAgZml4IHR5cG8KCjIwMDctMDYtMTkgMjI6MjMgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CiAgICAgZml4IFBlcmwtcmVsYXRlZCBhdXRvY29uZiBtZXNzYWdlcwoKMjAwNy0wNi0xOSAxNTowOCAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CiAgICAgQ0hBTkdFUzogYnVpbGQ6IGFkZCAiQnVpbGRSZXF1aXJlczogcGVybC1FeHRVdGlscy1FbWJlZCIgdG8gdGhlCiAgICAgc3BlYyBmaWxlLCBlLmcuIGZvciBGZWRvcmEgNwoKMjAwNy0wNi0xOCAyMjoyOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CiAgICAgZml4IGJyb2tlbiBjb21tZW50LgoKMjAwNy0wNi0xOCAyMjowNCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsCiAgICAgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgogICAgIC0gdmVyc2lvbiB0YWcgKCA1LjQuMS5wcmUzICkKCjIwMDctMDYtMTggMjI6MDMgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIE5FV1M6CiAgICAgdmVyc2lvbiB1cGRhdGUKCjIwMDctMDYtMTggMjE6NTcgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKICAgICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNy0wNi0xOCAyMTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKICAgICByZXZlcnQgZG91YmxlIGxpbmtpbmcgb2YgbGlibmV0c21ucCBwYXJ0IG9mIHBhdGNoIHRoYXQgd2FzCiAgICAgc3VwcG9zZWQgdG8gYmUgcHVsbGVkIGJvZmVyIGFwcGx5aW5nIGluIHIxNjUzOCAodGhhbmtzIHRhbmRlcnMKICAgICBmb3IgY2F0Y2hpbmcgaXQpCgoyMDA3LTA2LTE4IDIxOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CiAgICAgbWFrZSBkZXBlbmQKCjIwMDctMDYtMTggMjE6NDcgIGhhcmRha2VyCgogICAqIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywKICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsCiAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLAogICAgIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywKICAgICBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywKICAgICBtYW4vbmV0c25tcF91dGlsLjMsIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbWFuL25ldHNubXBfd2F0Y2hlci4zOgogICAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA3LTA2LTE4IDIxOjQ2ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CiAgICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC4xLnByZTMgKQoKMjAwNy0wNi0xOCAyMTozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKICAgICBDSEFOR0VTOiBidWlsZDogcGF0Y2ggZnJvbSBhcHBsZSB0byBzaW1wbGlmeSBtYWtlZmlsZSB0YXJnZXQKICAgICByZWZlcmVuY2VzIGluIHNvbWUgcnVsZXMuCgoyMDA3LTA2LTE4IDIxOjE3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9jb25maWcuNS5kZWYsIG1hbi9zbm1wZ2V0LjEuZGVmOgogICAgIENIQU5HRVM6IHBhdGNoIGZyb20gYXBwbGUgdG8gZml4IG1pbm9yIGRvY3VtZW50YXRpb24gYnVncy4KCjIwMDctMDYtMTggMjE6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45Lmg6CiAgICAgCgoyMDA3LTA2LTE4IDIxOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2Rhcndpbi5jOgogICAgIENIQU5HRVM6IHBhdGNoIGZyb20gYXBwbGUgdG8gaW1wcm92ZSBtZW1vcnkgcmVwb3J0aW5nCgoyMDA3LTA2LTE4IDIxOjA5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45Lmg6CiAgICAgQ0hBTkdFUzogcGF0Y2ggZnJvbSBhcHBsZSB0byBmaXggY3Jvc3MtY29tcGlsZSBidWlsZHMgaW4gYXBwbGVzCiAgICAgYnVpbGQgZW52aXJvbm1lbnQuCgoyMDA3LTA2LTE4IDIwOjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgogICAgIENIQU5HRVM6IHBhdGNoOiAxNzM3MDg1OiBmcm9tIGpzYWZyYW5lazogZml4IHRoZSAtTSBzd2l0Y2ggZm9yCiAgICAgbWliIHBhcnNpbmcgYnkgbG9hZGluZyBkZWZhdWx0cyBmaXJzdCBiZWZvcmUgcGVyZm9ybWluZyB0aGUgc2V0CiAgICAgc28gaXQgZG9lcyBub3QgZ2V0IG92ZXJ3cml0dGVuIGJ5IHRoZSBkZWZhdWx0cyBsYXRlci4KCjIwMDctMDYtMTggMjA6NTAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgogICAgIE5FV1M6IHBlcmw6IHBhdGNoOiAxNzI1MDQ5OiBmaXggYnVsa3dhbGsgaW4gY2FzZXMgb2Ygbm9uLXJlcGVhdGVyCiAgICAgdXNhZ2UuCgoyMDA3LTA2LTE4IDE0OjEwICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMOgogICAgIENIQU5HRVM6IHBlcmw6IGZpeCBwcmVyZXF1aXNpdGVzIGZvciBOZXRTTk1QOjpUcmFwUmVjZWl2ZXIKCjIwMDctMDYtMTggMTM6MzkgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG06CiAgICAgQ0hBTkdFUzogcGVybDogZml4IHN5bnRheCBlcnJvciBpbiBOZXRTTk1QOjphZ2VudDo6U3VwcG9ydAoKMjAwNy0wNi0xNCAxNTo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmNvbmY6CiAgICAgZml4IHR5cG8gaW4gdXNlciBvdXRwdXQsIGFzIG5vdGVkIG9uIGNvZGVycwoKMjAwNy0wNi0xNCAwNDozNyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4Lmg6CiAgICAgQWRkIG1pc3NpbmcgYXJndW1lbnQgdHlwZSBpbiBvcmRlciB0byBzaWxlbmNlIGEgZ2NjIHdhcm5pbmcKCjIwMDctMDYtMTEgMTA6MTEgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFpeDoKICAgICBkb2N1bWVudCB4bGM8LT5jY19yIGNvbXBpbGVyIGlzc3VlcyB3aXRoIFBlcmwgb24gQUlYIChzZWUgYnVnCiAgICAgIzE2MDAwOTkpCgoyMDA3LTA2LTEwIDIyOjI5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKICAgICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE3MjgyNDc6IGZyb20gbWl0c3VydV9jaGluZW46IEFkZCB0eXBlCiAgICAgY2hlY2sgZm9yIGludD8/X3QgYW5kIHVpbnQ/P190CgoyMDA3LTA2LTEwIDIyOjIyICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKICAgICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE3MjgyNDQ6IGZyb20gbWl0c3VydV9jaGluZW46IEFkZAogICAgIGNvbmZpZ3VyZSBjaGVjayBmb3Igc2luNl9zY29wZV9pZAoKMjAwNy0wNi0xMCAyMjoxNSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKICAgICBDSEFOR0VTOiBQQVRDSDogMTcyODI0MTogZnJvbSBtaXRzdXJ1X2NoaW5lbjogYWRkIGNvbmZpZ3VyZSBjaGVjawogICAgIGZvciA8c3lzL3Vpby5oPiAobWFrZSBzdXJlIGlvdiBzdHJ1Y3R1cmUgaXMgZGVjbGFyZWQpCgoyMDA3LTA2LTA4IDIwOjMyICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluOgogICAgIEZpeCByZWdyZXNzaW9uIGludHJvZHVjZWQgYnkgcjE2NDc5OiAnbWFrZSB0ZXN0IFRFU1RPUFRTPSItVAogICAgIHRjcCInIG5vdwogICAgIHdvcmtzIGFnYWluLiBtYWtlcmVsZWFzZSBub3cgdXNlcyB0aGUgcmlnaHQgb3B0aW9uLgoKMjAwNy0wNi0wOCAxMDo0NCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKICAgICBJbXByb3ZlIG1lbW9yeSBoYW5kbGluZyBvZiBzdHlsZS1zcGVjaWZpYyBmb3JtYXQgc3RyaW5ncy4KCjIwMDctMDYtMDggMTA6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgogICAgIERlZmF1bHQgdG8gcmVwb3J0aW5nIE5GUyBtb3VudHMgYXMgTmV0d29ya0Rpc2suCgoyMDA3LTA2LTA4IDA1OjE2ICBtYWdmcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgogICAgIFJlbW92ZSB0aGUgdW51c2VkIHVuZGVmIEhBVkVfUEVSTF9FVkFMX1BWLgogICAgIFRoZSBQZXJsX2V2YWxfcHYgZnVuY3Rpb25zIGFyZSBoYW5kbGVkIGJ5IHRoZQogICAgIEhBVkVfUEVSTF9FVkFMX1BWX1tVTF1DIGRlZmluZXMsCiAgICAgdGhpcyBvbmUgaXMgbmV2ZXIgc2V0IGJ5IG91ciBjb25maWd1cmUgc2NyaXB0LgoKMjAwNy0wNi0wNyAxNjowMiAgZHRzMTIKCiAgICogLmN2c2lnbm9yZSwgYWdlbnQvLmN2c2lnbm9yZSwgYWdlbnQvaGVscGVycy8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmUsIGFnZW50L21pYmdyb3VwL1Jtb24vLmN2c2lnbm9yZSwKICAgICBhZ2VudC9taWJncm91cC9hZ2VudC8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByLy5jdnNpZ25vcmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlLy5jdnNpZ25vcmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvLmN2c2lnbm9yZSwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvLmN2c2lnbm9yZSwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvLmN2c2lnbm9yZSwKICAgICBhZ2VudC9taWJncm91cC9ob3N0Ly5jdnNpZ25vcmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvLmN2c2lnbm9yZSwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvLmN2c2lnbm9yZSwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvLmN2c2lnbm9yZSwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvLmN2c2lnbm9yZSwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZSwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvLmN2c2lnbm9yZSwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvLmN2c2lnbm9yZSwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS8uY3ZzaWdub3JlLCBhZ2VudC9taWJncm91cC9taXNjLy5jdnNpZ25vcmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvLmN2c2lnbm9yZSwKICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vLmN2c2lnbm9yZSwKICAgICBhZ2VudC9taWJncm91cC9zbXV4Ly5jdnNpZ25vcmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzLy5jdnNpZ25vcmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Ly5jdnNpZ25vcmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLy5jdnNpZ25vcmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlLy5jdnNpZ25vcmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvLmN2c2lnbm9yZSwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlLy5jdnNpZ25vcmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLy5jdnNpZ25vcmUsIGFwcHMvLmN2c2lnbm9yZSwKICAgICBhcHBzL3NubXBuZXRzdGF0Ly5jdnNpZ25vcmUsIGRpc3QvLmN2c2lnbm9yZSwKICAgICBpbmNsdWRlL25ldC1zbm1wLy5jdnNpZ25vcmUsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvLmN2c2lnbm9yZSwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvLmN2c2lnbm9yZSwgaW5jbHVkZS91Y2Qtc25tcC8uY3ZzaWdub3JlLAogICAgIGxvY2FsLy5jdnNpZ25vcmUsIG1hbi8uY3ZzaWdub3JlLCBtaWJzLy5jdnNpZ25vcmUsIG92Ly5jdnNpZ25vcmUsCiAgICAgcGVybC8uY3ZzaWdub3JlLCBwZXJsL0FTTi8uY3ZzaWdub3JlLAogICAgIHBlcmwvQW55RGF0YV9TTk1QLy5jdnNpZ25vcmUsIHBlcmwvT0lELy5jdnNpZ25vcmUsCiAgICAgcGVybC9TTk1QLy5jdnNpZ25vcmUsIHBlcmwvU05NUC90Ly5jdnNpZ25vcmUsCiAgICAgcGVybC9UcmFwUmVjZWl2ZXIvLmN2c2lnbm9yZSwgcGVybC9hZ2VudC8uY3ZzaWdub3JlLAogICAgIHBlcmwvYWdlbnQvU3VwcG9ydC8uY3ZzaWdub3JlLAogICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS8uY3ZzaWdub3JlLAogICAgIHBlcmwvZGVmYXVsdF9zdG9yZS8uY3ZzaWdub3JlLCBwZXJsL21hbmFnZXIvLmN2c2lnbm9yZSwKICAgICBzbm1wbGliLy5jdnNpZ25vcmUsIHRlc3RpbmcvLmN2c2lnbm9yZSwgd2luMzIvLmN2c2lnbm9yZSwKICAgICB3aW4zMi9iaW4vLmN2c2lnbm9yZSwgd2luMzIvZW5jb2RlX2tleWNoYW5nZS8uY3ZzaWdub3JlLAogICAgIHdpbjMyL2xpYi8uY3ZzaWdub3JlLCB3aW4zMi9saWJhZ2VudC8uY3ZzaWdub3JlLAogICAgIHdpbjMyL2xpYmhlbHBlcnMvLmN2c2lnbm9yZSwgd2luMzIvbGlibmV0c25tcHRyYXBkLy5jdnNpZ25vcmUsCiAgICAgd2luMzIvbGlic25tcC8uY3ZzaWdub3JlLCB3aW4zMi9saWJzbm1wX2RsbC8uY3ZzaWdub3JlLAogICAgIHdpbjMyL2xpYnVjZG1pYnMvLmN2c2lnbm9yZSwgd2luMzIvbmV0LXNubXAvLmN2c2lnbm9yZSwKICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudC8uY3ZzaWdub3JlLAogICAgIHdpbjMyL25ldC1zbm1wL2xpYnJhcnkvLmN2c2lnbm9yZSwgd2luMzIvbmV0c25tcG1pYnMvLmN2c2lnbm9yZSwKICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wYnVsa2dldC8uY3ZzaWdub3JlLAogICAgIHdpbjMyL3NubXBidWxrd2Fsay8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wZC8uY3ZzaWdub3JlLAogICAgIHdpbjMyL3NubXBkZWx0YS8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wZGYvLmN2c2lnbm9yZSwKICAgICB3aW4zMi9zbm1wZHNkay8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wZ2V0Ly5jdnNpZ25vcmUsCiAgICAgd2luMzIvc25tcGdldG5leHQvLmN2c2lnbm9yZSwgd2luMzIvc25tcG5ldHN0YXQvLmN2c2lnbm9yZSwKICAgICB3aW4zMi9zbm1wc2V0Ly5jdnNpZ25vcmUsIHdpbjMyL3NubXBzdGF0dXMvLmN2c2lnbm9yZSwKICAgICB3aW4zMi9zbm1wdGFibGUvLmN2c2lnbm9yZSwgd2luMzIvc25tcHRlc3QvLmN2c2lnbm9yZSwKICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB0cmFwLy5jdnNpZ25vcmUsCiAgICAgd2luMzIvc25tcHRyYXBkLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB1c20vLmN2c2lnbm9yZSwKICAgICB3aW4zMi9zbm1wdmFjbS8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wd2Fsay8uY3ZzaWdub3JlOgogICAgIFJlbW92ZSByZWR1bmRhbnQgQ1ZTLWFkbWluIGZpbGVzLgoKMjAwNy0wNi0wNyAxMjo1NiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3NlY21vZC5jOgogICAgIEhhbmRsZSB1bnJlZ2lzdGVyaW5nIHRoZSBmaXJzdCBTZWN1cml0eSBNb2RlbCBpbiB0aGUgbGlzdC4KICAgICBSZXBvcnRlZCBieSBBbGVrc2FuZHIgTG9tYW5vdi4KCjIwMDctMDYtMDcgMDk6MTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CiAgICAgSW5zdGFsbCBoZWFkZXIgZmlsZXMgZm9yIHN0YXNoX2NhY2hlIGFuZCBzdGFzaF90b19uZXh0IGhlbHBlcnMuCgoyMDA3LTA2LTA3IDA5OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgogICAgIFNlcGFyYXRlIG91dCBoZWFkZXIgZmlsZXMgdGhhdCBkb24ndCBoYXZlIGEgY29ycmVzcG9uZGluZyBDCiAgICAgc291cmNlIGZpbGUuCgoyMDA3LTA2LTA3IDA4OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgogICAgIFNvcnQgbGlzdHMgb2YgaGVscGVycyAoc291cmNlIGNvZGUsIG9iamVjdCBmaWxlcyBhbmQgaGVhZGVycykuCiAgICAgVGhpcyBzaG91bGQgbWFrZSBpdCBlYXNpZXIgdG8gc3BvdCBmaWxlcyB0aGF0IGhhdmUgYmVlbiBvbWl0dGVkLgoKMjAwNy0wNi0wNyAwODo0MiAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgogICAgIFByb3RlY3QgYWdhaW5zdCBzeXN0ZW1zIHdpdGhvdXQgU19JU0RJUi4KCjIwMDctMDYtMDYgMTI6MzcgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CiAgICAgQ0hBTkdFUzogQUlYOiB1c2UgIi1XbCwtYnJ0bCIgd2hlbiBjb21waWxpbmcgd2l0aCBnY2MKCjIwMDctMDYtMDYgMTA6MjAgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CiAgICAgRW5zdXJlIG91dHB1dCBpcyBwcm9wZXJseSBkaXJlY3RlZCB0byBzeXNsb2cuCiAgICAgT3RoZXJ3aXNlLCBwcm9ibGVtcyBpbiB0aGUgY29uZmlnIGVudmlyb25tZW50IGNhbiB0cmlnZ2VyCiAgICAgZXJyb3JzIGJlaW5nIGRpcmVjdGVkIHRvIHN0ZGVyciwgYW5kIHN1YnNlcXVlbnQgbG9nZ2luZwogICAgIG91dHB1dCBnZXRzIGxvc3QuCgoyMDA3LTA2LTA2IDEwOjEzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CiAgICAgTW9yZSBoZWxwZnVsIGRlYnVnZ2luZyBvdXRwdXQuCgoyMDA3LTA2LTA2IDA1OjUzICBtYWdmcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICAgIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQ6CiAgICAgQ0hBTkdFUzogbWlzYzogRG9uJ3QgdXNlIHRoZSBsZWdhY3kgc3ltYm9sCiAgICAgU05NUFRSQVBEX0RJU0FCTEVfQUdFTlRYCgoyMDA3LTA2LTA1IDE1OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYzoKICAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTcyOTYyOTogRml4IG1lbW9yeSBsZWFrIGluIGRpc21hbgogICAgIGFnZW50LgoKMjAwNy0wNi0wNCAyMjowNiAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgogICAgIE5FV1M6IHNubXBsaWI6IENoYW5nZSBzbm1wX3Nlc3NfYWRkX2V4IHRvIGNvbnNpc3RlbnRseSBjbG9zZSBhbmQKICAgICBkZWxldGUgdGhlIHRyYW5zcG9ydCBhcmd1bWVudCBvbiBmYWlsdXJlLCBlYXJsaWVyIHRoZSBsaXZlbmVzcyBvZgogICAgIHRoZSB0cmFuc3BvcnQgYXJndW1lbnQgd2FzIHVuZGVjaWRlZC4KCjIwMDctMDYtMDQgMTU6NTAgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLAogICAgIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKICAgICAtIHZlcnNpb24gdGFnICggNS40LjEucHJlMiApCgoyMDA3LTA2LTA0IDE1OjUwICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTLCBORVdTOgogICAgIHZlcnNpb24gdXBkYXRlCgoyMDA3LTA2LTA0IDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CiAgICAgdmVyc2lvbiB1cGRhdGUKCjIwMDctMDYtMDQgMTU6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZDoKICAgICBtYWtlIGRlcGVuZAoKMjAwNy0wNi0wNCAxNTo0MSAgaGFyZGFrZXIKCiAgICogbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywKICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLAogICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLAogICAgIG1hbi9uZXRzbm1wX3V0aWwuMywgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBtYW4vbmV0c25tcF93YXRjaGVyLjM6CiAgICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDctMDYtMDQgMTU6MzkgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKICAgICAtIHZlcnNpb24gdGFnICggNS40LjEucHJlMiApCgoyMDA3LTA2LTA0IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgdGVzdGluZy9SVU5URVNUUzoKICAgICBDSEFOR0VTOiB0ZXN0OiBzdXBwb3J0IGEgLW4gZmxhZyB0byBSVU5URVNUUyB0byBwcmludCB0aGUgdGVzdAogICAgIG51bWJlciBmb3VuZCBpbiB0aGUgdGVzdCBmaWxlIGFzIG9wcG9zZWQgdG8gdGhlIG51bWVyaWNhbCBjb3VudAoKMjAwNy0wNi0wNCAxMzowOSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKICAgICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE3MjgyMzc6IGZyb20gbWl0c3VydV9jaGluZW46IE1vdmUKICAgICB2YXJpYWJsZSBkZWNsYXJhdGlvbiBhdCB0aGUgdG9wIG9mIG5ldHNubXBfdWRwX3NlbmR0bwoKMjAwNy0wNi0wNCAxMjoxMyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgY29uZmlndXJlLAogICAgIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgogICAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMTcyODIzMDogZnJvbSBtaXRzdXJ1X2NoaW5lbjogYWRkCiAgICAgY29uZmlndXJlIGNoZWNrIGZvciBnYWlfc3RyZXJyb3IoKQoKMjAwNy0wNi0wNCAxMDozNSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CiAgICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjI2OiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBtYWtlIHN1cmUKICAgICBJRl9OQU1FU0laRSBpcyBkZWZpbmVkCgoyMDA3LTA2LTA0IDA5OjQ3ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgogICAgIGFsc28gc2tpcCB0aGlzIHRlc3Qgb24gSVJJWDY0CgoyMDA3LTA2LTAyIDA4OjI0ICBtYWdmcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2R5bml4LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgICAgd2luMzIvY29uZmlnLmguYm9ybGFuZCwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CiAgICAgQ0hBTkdFUzogc25tcGFwaTogRG8gbm90IHVzZSBnZXRzZXJ2YnluYW1lIHRvIGZpbmQgZGVmYXVsdCBwb3J0CiAgICAgbnVtYmVycywganVzdCBoYXJkY29kZSB0aGVtIGFuZCBsZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlbSBpZgogICAgIG5lZWRlZC4KCjIwMDctMDYtMDEgMjI6NTUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CiAgICAgQ0hBTkdFUzogYnVpbGQ6IExpbmsgbGliZGwgYWdhaW5zdCBsaWJuZXRzbm1wbWlicyBpbnN0ZWFkIG9mCiAgICAgc25tcGQuCiAgICAgRml4ZXMgdGhlIGJ1aWxkIG9uIChzb21lKSBTb2xhcmlzIHN5c3RlbXMuCgoyMDA3LTA2LTAxIDIxOjM2ICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CiAgICAgQ0hBTkdFUzogc25tcGxpYjogRkVBVFVSRVM6IDEwNDE4ODg6IENoZWNrIGRpcmVjdG9yeSBwYXRocyBmb3IKICAgICBjb25maWcgZmlsZXMuCiAgICAgQmFja3BvcnQgZnJvbSBtYWluIGRldmVsb3BtZW50IHRydW5rIG9mIGJ1ZyBmaXguCgoyMDA3LTA2LTAxIDIxOjIzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CiAgICAgQ0hBTkdFUzogc25tcGxpYjogRkVBVFVSRVM6IDg1MTg4NzogUmVwb3J0IHJhbmdlIGluZm9ybWF0aW9uIGZvcgogICAgIGludmFsaWQgU0VUIHJlcXVlc3RzLgogICAgIEJhY2twb3J0IGZyb20gbWFpbiB0cnVuayBvZiBidWcgZml4LgoKMjAwNy0wNS0zMSAyMzo1MSAgdGFuZGVycwoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgbmV0LXNubXAtY29uZmlnLmluOgogICAgIENIQU5HRVM6IGJ1aWxkOiBMaW5rIGxpYmt2bSBhbmQgbGlid3JhcCB0byBsaWJuZXRzbm1wYWdlbnQKICAgICBpbnN0ZWFkIG9mIHNubXBkLgogICAgIEZpeGVzIHRlc3QgIzQ0IChQZXJsIHN1YmFnZW50KSBvbiBzeXN0ZW1zIHVzaW5nIG9uZSBvZiB0aG9zZQogICAgIGxpYnJhcmllcy4KCjIwMDctMDUtMzEgMTQ6MzkgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgogICAgIEZpeCBsb2dnaW5nIG9mIGF1dGhlbnRpY2F0aW9uIGluZm9ybWF0aW9uLgoKMjAwNy0wNS0zMSAxMDoxMCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CiAgICAgUmVtb3ZlIGJvZ3VzIGRlYnVnIG91dHB1dC4KCjIwMDctMDUtMzAgMjI6NTMgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHBlcmwvQVNOL01ha2VmaWxlLlBMLAogICAgIHBlcmwvT0lEL01ha2VmaWxlLlBMLCBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsCiAgICAgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsCiAgICAgcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgogICAgIENIQU5HRVM6IEFJWDogYnVpbGQgZml4ZXMgZm9yIGVtYmVkZGVkIFBlcmwKCjIwMDctMDUtMjkgMjI6NDIgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKICAgICBDSEFOR0VTOiBzbm1wbGliOiBVc2UgdGhlIGRlZmF1bHRfdGFyZ2V0IGFyZ3VtZW50IGlmIGl0IGlzCiAgICAgbm9uLU5VTEwsIG5vdCBpZiBpdCBpcyBOVUxMLgoKMjAwNy0wNS0yOSAxMDoyNyAgdGFuZGVycwoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKICAgICBhZGQgcmVjZW50IG1mZCByZXdyaXRlcwoKMjAwNy0wNS0yNyAyMTo0MiAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTDoKICAgICBTb21lIGxhbWUgbGlua2VycyAoZS5nLiBvbiBIUC1VWCAxMS4yMy9JQTY0KSBuZWVkIHF1aXRlIGEgYml0IG9mCiAgICAgaGVscCB0byBzdWNjZXNzZnVsbHkgbGluayB0aGUgUGVybCBtb2R1bGVzLgoKMjAwNy0wNS0yNyAyMDo1MiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKICAgICBBZGQgZGVzY3JpcHRpb25zIHRvIEFDX0RFRklORTsgZHJvcCBvYnNvbGV0ZSBBQ19DSEVDS19MSUIobSwKICAgICBhc2luKS4KCjIwMDctMDUtMjcgMTk6NTQgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKICAgICBDSEFOR0VTOiBsaWJyYXJ5OiBGRUFUVVJFUzogNDU0MDI4OiBEZXRlY3QgYW5kIGhhbmRsZSBlbXB0eSBNSUIKICAgICBpbmRleCBmaWxlcy4KCjIwMDctMDUtMjcgMDY6MjAgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFpeDoKICAgICBncmFtbWFyIGZpeAoKMjAwNy0wNS0yNiAxNjo0MSAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9idWlsZC5wbCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKICAgICBXaW4zMiBJUHY2IGJ1aWxkIGZpeGVzLiBJUHY2IG5vdyByZXF1aXJlcyBQU0RLLgoKMjAwNy0wNS0yNiAxNToxNCAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CiAgICAgSVB2NiBidWlsZCBmaXhlcyBmb3IgYnVpbGQuYmF0LCBDb25maWd1cmUgYW5kIFJFQURNRS53aW4zMi4KCjIwMDctMDUtMjUgMjM6MDMgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFpeCwgUkVBRE1FLnNvbGFyaXMsIFJFQURNRS50cnU2NDoKICAgICBEb2N1bWVudGF0aW9uIHVwZGF0ZSB3LnIudC4gcmVjZW50IGNoYW5nZXMgKG1pYklJL2lwdjYgYW5kIEFJWAogICAgIHNoYXJlZCBsaWJyYXJ5IGJ1aWxkaW5nKS4KCjIwMDctMDUtMjUgMTU6MjggIHRhbmRlcnMKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgogICAgIFNvbWUgc3lzdGVtcyAoZS5nLiBIUC1VWCAxMS4yMy9JQTY0KSBjdXJyZW50bHkgc3RpbGwgbmVlZAogICAgICJuZXQtc25tcC1jb25maWcgLS1saWJzIiAoaW5zdGVhZCBvZiBqdXN0IC0tbmV0c25tcC1saWJzKSBmb3IKICAgICBsaW5raW5nCiAgICAgbGlibmV0c25tcCB0byBhIFBlcmwgbW9kdWxlLgoKMjAwNy0wNS0yNCAyMzo1NSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKICAgICBDSEFOR0VTOiBidWlsZDogb25seSBlbmFibGUgbWliSUkvaXB2NiB0aHJvdWdoIC0tZW5hYmxlLWlwdjYgb24KICAgICBzeXN0ZW1zIGl0IGJ1aWxkcyBwcm9wZXJseSBvbiAoTGludXggYW5kICpCU0QpCgoyMDA3LTA1LTI0IDIzOjE1ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKICAgICBTb21lIHN5c3RlbXMgKGUuZy4gSFAtVVggMTEuMjMvSUE2NCkgY3VycmVudGx5IHN0aWxsIG5lZWQKICAgICAibmV0LXNubXAtY29uZmlnIC0tbGlicyIgKGluc3RlYWQgb2YganVzdCAtLW5ldHNubXAtbGlicykgZm9yCiAgICAgbGlua2luZyBsaWJzbm1wYWdlbnQgdG8gYSBQZXJsIG1vZHVsZS4KCjIwMDctMDUtMjQgMjI6MDEgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKICAgICBDb3JyZWN0IG9idmlvdXNseSBicm9rZW4gdXNlIG9mIHRoZSBLTE9PS1VQIG1hY3JvIHRvIGJlCiAgICAgY29uc2lzdGVudCBhdCBsZWFzdAoKMjAwNy0wNS0yNCAyMDo1MSAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNy5oOgogICAgIENIQU5HRVM6IEZyZWVCU0Q6IGFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIHVwY29taW5nIEZyZWVCU0QgNwoKMjAwNy0wNS0yNCAxMjo0OCAgdGFuZGVycwoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKICAgICBmaXggbGlicmFyeSBsaW5raW5nIG9uIEhQLVVYIDExLjIzL0lBNjQKCjIwMDctMDUtMjQgMDg6MzYgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUudG9wOgogICAgIENIQU5HRVM6IHNubXBsaWI6IGluY3JlbWVudCAiY3VycmVudCIgYW5kICJhZ2UiIGFjY29yZGluZyB0bwogICAgIGxpYnRvb2wKICAgICB2ZXJzaW9uaW5nIHBvbGljeSwgc2luY2UgaW50ZXJmYWNlcyBoYXZlIGJlZW4gYWRkZWQgc2luY2UgNS40LgogICAgIFdlIG5vdyBidWlsZCBsaWJuZXRzbm1wLnNvLjE1LjEuMC4KICAgICA1LjQuMS5wcmUxIHdhcyBicm9rZW4gaW4gdGhpcyByZWdhcmQuCgoyMDA3LTA1LTIzIDE5OjA1ICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlcywgYWdlbnQvTWFrZWZpbGUuaW4sCiAgICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLAogICAgIGNvbmZpZ3VyZS5pbiwgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsCiAgICAgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgc25tcGxpYi9NYWtlZmlsZS5pbjoKICAgICBORVdTOiBzbm1wbGliOiBCVUc6IDE2MTk4Mjc6IGxpbmsgbmV0LXNubXAgbGlicmFyaWVzIGFuZCBiaW5hcmllcwogICAgIGFnYWluc3QgdGhlIG5ldC1zbm1wIGxpYnJhcmllcyB0aGV5IHJlYWxseSBkZXBlbmQgb24KICAgICAtIHJlZmxlY3QgbGlicmFyeSBpbnRlcmRlcGVuZGVuY2llcyBhdCBsaW5rIHRpbWUKICAgICAtIGZpeCBkZXBlbmRlbmNpZXMgb24gbGliY3J5cHRvLCBsaWJwa2NzMTEgYW5kIGxpYmtzdGF0CiAgICAgLSBpbnN0YWxsIGxpYnJhcmllcyBpbiBjb3JyZWN0IG9yZGVyIChpbXBvcnRhbnQgZm9yIGxpYnRvb2wKICAgICByZWxpbmtpbmcpCiAgICAgTkVXUzogUGVybDogbGluayBQZXJsIG1vZHVsZXMgYWdhaW5zdCB0aGUgZXhhY3Qgc2V0IG9mIGxpYnJhcmllcwogICAgIHRoZXkgZGVwZW5kIG9uCgoyMDA3LTA1LTIyIDE0OjQwICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywKICAgICBwZXJsL0FTTi9BU04ucG0sIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvT0lEL09JRC5wbSwKICAgICBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLAogICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCBwZXJsL2FnZW50L2FnZW50LnBtLAogICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCBzZWRzY3JpcHQuaW4sCiAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKICAgICB2ZXJzaW9uIHN0YW1wIDUuNC4xLnByZTEKCjIwMDctMDUtMjIgMDA6MjQgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIE5FV1M6CiAgICAgdmVyc2lvbiB1cGRhdGUKCjIwMDctMDUtMjIgMDA6MTkgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKICAgICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNy0wNS0yMiAwMDowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKICAgICBtYWtlIGRlcGVuZAoKMjAwNy0wNS0yMiAwMDowMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CiAgICAgaWdub3JlIHdpbkV4dERMTCBpbiBjb21tZW50IGNoZWNrCgoyMDA3LTA1LTIxIDIzOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2luZm8uYzoKICAgICAvLyAtPiBDIGNvbW1lbnQKCjIwMDctMDUtMjEgMjM6NTEgIGhhcmRha2VyCgogICAqIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywKICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsCiAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLAogICAgIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywKICAgICBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywKICAgICBtYW4vbmV0c25tcF91dGlsLjMsIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbWFuL25ldHNubXBfd2F0Y2hlci4zOgogICAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA3LTA1LTIxIDIzOjExICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKICAgICBDSEFOR0VTOiBidWlsZGluZzogRGlzYWJsZSBpbmxpbmluZyBvbiBzb2xhcmlzIGFzIHRoZXJlIGFyZSBzb21lCiAgICAgbGlua2luZyBlcnJvcnMgdGhhdCBzaG93IHVwIGlmIHRoZSBpbmxpbmUgc3VwcG9ydCBpcyBsZWZ0CiAgICAgZW5hYmxlZC4KCjIwMDctMDUtMjEgMjI6NDYgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKICAgICAtIHZlcnNpb24gdGFnICggNS40LjEucHJlMSApCgoyMDA3LTA1LTIxIDIyOjIyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CiAgICAgdmVyc2lvbiB1cGRhdGUKCjIwMDctMDUtMjEgMjM6NTEgIGhhcmRha2VyCgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNy0wNS0yMSAyMzoxMSAgbWFnZnIKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBEaXNhYmxlIGlubGluaW5nIG9uIHNvbGFyaXMgYXMgdGhlcmUgYXJlIHNvbWUKICAgbGlua2luZyBlcnJvcnMgdGhhdCBzaG93IHVwIGlmIHRoZSBpbmxpbmUgc3VwcG9ydCBpcyBsZWZ0CiAgIGVuYWJsZWQuCgoyMDA3LTA1LTIxIDIyOjQ2ICBoYXJkYWtlcgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC4xLnByZTEgKQoKMjAwNy0wNS0yMSAyMjoyMiAgaGFyZGFrZXIKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA3LTA1LTIwIDIxOjM0ICB0YW5kZXJzCgoJKiBhZ2VudC9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgkgIE5FV1M6IHNubXBsaWI6IEJVRzogMTYxOTgyNzogbGluayBhZ2FpbnN0IG5lZWRlZCBleHRlcm5hbAoJICBsaWJyYXJpZXMgYXQgbGlicmFyeSBsaW5rIHRpbWUgKHdoZXJlIHRoZXkgYXJlIHJlZmVyZW5jZWQpLAoJICByYXRoZXIgdGhhbiBhcHBsaWNhdGlvbiBsaW5rIHRpbWUuCgkgIEFscmVhZHkgY292ZXJzIG1vc3Qgb2YgbGlibmV0c25tcG1pYnMnIGV4dGVybmFsIGRlcGVuZGVuY2llcy4KCSAgRml4ZXMgYnVpbGQgaXNzdWVzIG9uIHNvbWUgcGxhdGZvcm1zIChlLmcuIGJ1aWxkaW5nIHdpdGggc2hhcmVkCgkgIGxpYnJhcmllcyBvbiBBSVgpLiBUZXN0ZWQgb24gZGlmZmVyZW50IHZlcnNpb25zIG9mIExpbnV4LAoJICBTb2xhcmlzLCBIUC1VWCwgQUlYIGFuZCBJUklYLgoKMjAwNy0wNS0xOSAxNToyNyAgbWFnZnIKCgkqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAoJICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoJICBDSEFOR0VTOiBidWlsZGluZzogQ2hlY2sgZm9yIHN1cHBvcnQgb2Ygc3RhdGljIGlubGluZSBmdW5jdGlvbnMKCSAgaW5zdGVhZCBvZiBuZXN0ZWQgc3RhdGljIGlubGluZSBmdW5jdGlvbnMgd2hlbiBkZXRlcm1pbmluZyBpZgoJICBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucyB3b3JrCgoyMDA3LTA1LTE4IDE4OjA4ICBoYXJkYWtlcgoKCSogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgkgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTcxOTI1NDogZnJvbSAiQ2hyaXN0YW4gSnVuZyI6IHVwZGF0ZQoJICBIUkZTX2lnbm9yZSBsaXN0IHRvIGN1cnJlbnQgbGludXggbGlrZWx5aG9vZHMKCjIwMDctMDUtMTggMTg6MDIgIGhhcmRha2VyCgoJKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCSAgTkVXUzogc25tcGQ6IHBhdGNoOiAxNzE5MjUzOiBmcm9tICJDaHJpc3RpYW4gSnVuZyI6IGZpeAoJICBza2lwTkZTSW5Ib3N0UmVzb3VyY2VzIHNvIGl0IGRvZXMgbm90IGJyZWFrIG9uIHRoZSBzZWNvbmQgd2FsayBvZgoJICB0aGUgdGFibGUuCgoyMDA3LTA1LTE4IDE1OjA1ICB0YW5kZXJzCgoJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCSAgTkVXUzogQUlYOiBmaXggZGVmYXVsdCBzaGFyZWQgbGlicmFyeSBidWlsZGluZyBpbnN0ZWFkIG9mIGZvcmNpbmcKCSAgc3RhdGljCgoyMDA3LTA1LTE4IDEwOjIyICBtYWdmcgoKCSogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmg6CgkgIENIQU5HRVM6IHNubXBkOiBDb3JyZWN0IHRoZSBkZXBlbmRlbmN5IGluZm9ybWF0aW9uIGZvcgoJICBob3N0L2hyX3N0b3JhZ2UKCjIwMDctMDUtMTcgMjI6MTYgIG1hZ2ZyCgoJKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywKCSAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKCSAgc25tcGxpYi9zbm1wX2FwaS5jOgoJICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2MjA0MjQ6IEZpeCBub3RpZmljYXRpb24gc2VuZGluZyBzbyB0aGF0CgkgIGV4cGxpY2l0IHNwZWNpZmljYXRpb24gb2YgcG9ydCAxNjIgc2hvdWxkIGJlIHVubmVjZXNzYXJ5CgkgIENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0g6IDE2MjA0MjQ6IEZpeCBub3RpZmljYXRpb24gcmVjZXB0aW9uIHNvCgkgIHRoYXQgZXhwbGljaXQgc3BlY2lmaWNhdGlvbiBvZiBwb3J0IDE2MiBzaG91bGQgYmUgdW5uZWNlc3NhcnkKCSAgQ0hBTkdFUzogYXBwczogUEFUQ0g6IDE2MjA0MjQ6IEZpeCBub3RpZmljYXRpb24gc2VuZGluZyBzbyB0aGF0CgkgIGV4cGxpY2l0IHNwZWNpZmljYXRpb24gb2YgcG9ydCAxNjIgc2hvdWxkIGJlIHVubmVjZXNzYXJ5CgkgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjIwNDI0OiBIb25vcgoJICBORVRTTk1QX0RTX0xJQl9ERUZBVUxUX1BPUlQgb3ZlciB0aGUgZGVmYXVsdCBzeXN0ZW0KCjIwMDctMDUtMTcgMjE6NTMgIGhhcmRha2VyCgoJKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLAoJICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsCgkgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywKCSAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmM6CgkgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTcxMDYzMjogZnJvbSBtYXZhcmxleTogZml4IG1lbW9yeSBsZWFrIG9uCgkgIGJyb2tlbiBjb250YWluZXIgaW5zZXJ0aW9ucyBmb3IgdGhlIGlwQWRkcmVzc1RhYmxlCgoyMDA3LTA1LTE3IDE4OjA2ICByc3RvcnkKCgkqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoJICBDSEFOR0VTOiBQQVRDSDogMTcxOTI0NDogZml4IG1mZCBnZW5lcmF0aW5nIG1hcCBmdW5jdGlvbgoKMjAwNy0wNS0xNyAxNjozMSAgaGFyZGFrZXIKCgkqIGNvbmZpZ3VyZS5pbjoKCSAgTkVXUzogcG9ydHM6IHBhdGNoOiAxNzA2MzQ0OiBmcm9tIG5heWxvcjogZml4IGNvbXBpbGF0aW9uIHdpdGgKCSAgY3lnd2luCgoyMDA3LTA1LTE3IDE2OjIyICBoYXJkYWtlcgoKCSogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoJICBORVdTOiBzbm1wZDogcGF0Y2g6IDE3MDAxNTc6IGZyb20gYWZyaWthOiBmaXhlcyBvcmRlcmluZyBvZiBleGVjCgkgIHRva2VucyBpbiB0aGUgcmVzdWx0aW5nIG1pYiB0cmVlCgoyMDA3LTA1LTE3IDE1OjUzICBoYXJkYWtlcgoKCSogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgkgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTYxNzI1NTogZml4IGxlbmd0aCBvZiB0aGUgaGlzdG9yeSBhcnJheQoJICB0byBtYXRjaCBjb2RlLgoKMjAwNy0wNS0xNyAxMzo1MyAgaGFyZGFrZXIKCgkqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgkgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTIyNTQ0MDogQXBwbHkgaW50ZW50IG9mIHBhdGNoOiB0byBkZWxheQoJICBzaWdodXAgdGlsbCBpdCBpcyBzYWZlLgoJICBDSEFOR0VTOiBzbm1wdHJhcGQ6IHBhdGNoOiAxMjI1NDQwOiBBcHBseSBpbnRlbnQgb2YgcGF0Y2g6IHRvCgkgIGRlbGF5IHNpZ2h1cCB0aWxsIGl0IGlzIHNhZmUuCgoyMDA3LTA1LTE3IDA0OjM5ICBoYXJkYWtlcgoKCSogc25tcGxpYi9hc24xLmM6CgkgIENIQU5HRVM6IHNubXBsaWI6IHBhdGNoOiAxNjQ1Njk4OiBmaXggNjQtYml0IHNpZ25lZCBpbnRlZ2VyCgkgIGVuY29kaW5nCgoyMDA3LTA1LTE2IDIzOjUzICB0YW5kZXJzCgoJKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4Lmg6CgkgIENIQU5HRVM6IEhQLVVYOiBIUC1VWCBuZWVkcyBfUkVFTlRSQU5UIGRlZmluZWQgdG8gcGljayB1cAoJICBzdHJ0b2tfci4KCSAgT3RoZXJ3aXNlLCBhdCBsZWFzdCBmb3IgNjQtYml0IGNvZGUsIHN0cnRva19yIHdpbGwgbm90IHdvcmsKCSAgYW5kIHdpbGwgbWFrZSBuZXQtc25tcCBzZWdmYXVsdC4KCjIwMDctMDUtMTUgMTQ6MzYgIHRhbmRlcnMKCgkqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfc29sYXJpcy5jOgoJICBmaXggdHlwbwoKMjAwNy0wNS0xNCAyMTo0OSAgdGFuZGVycwoKCSogYXBwcy9NYWtlZmlsZS5pbjoKCSAgYWRkIG1pc3NpbmcgQ0ZMQUdTIHRvIGxpbmsgbGluZQoKMjAwNy0wNS0xNCAyMTo0OCAgdGFuZGVycwoKCSogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCSAgYWRkIG1pc3NpbmcgQ0ZMQUdTIHRvIGxpbmsgbGluZQoKMjAwNy0wNS0xNCAxNDo1MCAgaGFyZGFrZXIKCgkqIGFnZW50L3NubXBfYWdlbnQuYzoKCSAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAxNTk1NTY4OiBmcm9tIGN5cmlsX21hcmdhcmlhOiBmaXgKCSAgZGVsZWdhdGVkIFNFVCByZXF1ZXN0cyBmcm9tIGFnZW50eCBzdWJhZ2VudHMKCjIwMDctMDUtMTMgMTQ6MjcgIG1hZ2ZyCgoJKiBzbm1wbGliL3NubXBfc2VydmljZS5jOgoJICBDSEFOR0VTOiBzbm1wbGliOiBSZWFkIHRoZSBjb25maWcgcGFyYW1ldGVycyBkZWZUYXJnZXQgYW5kCgkgIGRlZkRvbWFpbiBmcm9tIHNubXAuY29uZiBhcyB3ZWxsIGFzIGZyb20gPGFwcGxpY2F0aW9uPi5jb25mCgoyMDA3LTA1LTEyIDExOjE0ICBtYWdmcgoKCSogc25tcGxpYi9taWIuYzoKCSAgQ0hBTkdFUzogc25tcGxpYjogRGVhbGxvY2F0ZSB0aGUgY29uZm1pYnMgYW5kIGNvbmZtaWJkaXJzCgkgIHZhcmlhYmxlcyBpbiBzaHV0ZG93bl9taWIgdG8gbWFrZSBmb3IgYSBjbGVhbmVyIGV4aXQgb2YgdGhlCgkgIGxpYnJhcnkKCjIwMDctMDUtMTEgMjE6MDYgIG1hZ2ZyCgoJKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoJICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2ODczMzY6IFN0YXJ0IHVzaW5nIHRoZSBlbmhhbmNlZAoJICByZWFkX2NvbmZpZyBpbnRlcmZhY2UKCjIwMDctMDUtMTEgMjA6MzMgIG1hZ2ZyCgoJKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgkgIFBBVENIIDE2ODczMjk6IEFwcGxpZWQgcGFydCAyIG9mIHRoZSBwYXRjaCAtIFdoZW4gcmVnaXN0ZXJpbmcKCSAgbXVsdGlwbGUgcHJlbWliIGhhbmRsZXJzIG9ubHkgdGhlIGxhc3Qgb25lIHdhcyByZWdpc3RlcmVkIHByZW1pYiwKCSAgdGhlIG90aGVycyB3ZXJlIHJlZ2lzdGVyZCBhdCB0aGUgbm9ybWFsIHRpbWUuIFRoaXMgcGF0Y2ggcHV0cyBhbGwKCSAgcmVnaXN0cmF0aW9uIGluIG9uZSBmdW5jdGlvbiB0aGF0IHRha2VzIHRoZSBwcm9ibGVtYXRpYyB2YWx1ZSBhcwoJICBhbiBhcmd1bWVudCBhbmQgbWFrZXMgdGhlIG9sZCBmdW5jdGlvbnMgdGhpbiB3cmFwcGVycyBvZiB0aGUgbmV3CgkgIG9uZQoKMjAwNy0wNS0xMSAyMDoyNCAgbWFnZnIKCgkqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCSAgQ0hBTkdFOiBzbm1wbGliOiBQQVRDSCAxNjg3MzI5OiBBcHBsaWVkIHBhcnQgMyBvZiB0aGUgcGF0Y2ggLSB1c2UKCSAgdGhlIHNhbWUgYWxnb3JpdGhtIHRvIGRldGVybWluZSB3aGF0IHRvIHVucmVnaXN0ZXIgYXMgaXMgdXNlZCB0bwoJICBkZXRlcm1pbmUgd2hhdCB0byByZWdzdGVyCgoyMDA3LTA1LTExIDE2OjMyICBtYWdmcgoKCSogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgkgIERvbid0IGxvZyBob3N0L2hyX3Byb2MgZXZlbnRzIGluIHRoZSBzbm1wZCBkb21haW4KCjIwMDctMDUtMTEgMTY6MjcgIG1hZ2ZyCgoJKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCSAgRGVjb3JhdGUgbW9yZSBkZWJ1ZyBsaW5lcyB3aXRoIHRoZSB0YWcgdGhhdCBjb250cm9scyB0aGUgbG9nCgoyMDA3LTA1LTExIDE1OjA3ICBkdHMxMgoKCSogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9zb2xhcmlzLmM6CgkgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2Mjg2MTM6IFJlc3RvcmUgbWVtVG90YWxGcmVlLjAgb24gU29sYXJpcwoKMjAwNy0wNS0xMCAyMTo1MiAgdGFuZGVycwoKCSogTWFrZWZpbGUuaW4sIHB5dGhvbi9zZXR1cC5weToKCSAgTkVXUzogcHl0aG9uOiBQQVRDSDogMTcxNjExNDogTGV0IHB5dGhvbiBidWlsZCBpbiBzb3VyY2UgdHJlZQoJICBQYXRjaCBwcm92aWRlZCBieSBKb2NoZW4gRnJpZWRyaWNoIChEZWJpYW4gcGF0Y2ggIzM4KS4KCjIwMDctMDUtMTAgMDU6MTggIG1hZ2ZyCgoJKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgkgIFBBVENIIDE2ODczMjk6IEFwcGxpZWQgcGFydCAxIG9mIHRoZSBwYXRjaCAtIGxlc3NlbnMgdGhlIHNjb3BlIG9mCgkgIHRoZSBsdG1wMiB2YXJpYWJsZQoKMjAwNy0wNS0wOSAyMzo1NyAgdGFuZGVycwoKCSogUkVBRE1FLmlyaXg6CgkgIGRvY3VtZW50IG9wdGltaXplZCBJUklYIGNwdSBzdGF0cwoKMjAwNy0wNS0wOSAyMzo0OSAgdGFuZGVycwoKCSogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsCgkgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzaW5mby5jLAoJICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2luZm8uaDoKCSAgTkVXUzogaXJpeDogUEFUQ0g6IDE3MDk3NDg6IE9wdGltaXplZCBJUklYIGNwdSBzdGF0cwoKMjAwNy0wNS0wOSAyMjoxNiAgdGFuZGVycwoKCSogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgkgIEZpeCBwcm9ibGVtcyB3aXRoIHNpbmdsZS1saW5lIGV4dGVuZCBzY3JpcHRzLgoJICAoZml4IHR5cG8gaW4gcjE2MzMyIGZvciA1LjQueCkKCjIwMDctMDUtMDkgMDE6MTAgIGFsZXhfYgoKCSogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoJICBXaW4zMiBidWlsZCBmaXhlcy4KCjIwMDctMDUtMDggMTk6NDggIG1hZ2ZyCgoJKiBhZ2VudC9zbm1wX2FnZW50LmM6CgkgIFJldmVydCBtaXN0YWtlbmx5IGNvbW1pdHRlZCBleHRyYSB0cmFjZSBsb2dzCgoyMDA3LTA1LTA3IDIwOjQ2ICBoYXJkYWtlcgoKCSogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCgkgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzLAoJICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvdGVzdC5wbDoKCSAgdXBkYXRlIGFnZW50OjpkZWZhdWx0X3N0b3JlIHBlcmwgbW9kdWxlIGZvciBuZXcgZGVmcwoKMjAwNy0wNS0wNyAyMDoyMyAgaGFyZGFrZXIKCgkqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfYWdlbnQuYywKCSAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCSAgTkVXUzogc25tcGQ6IEJVRzogMTcxMjk4ODogZGVmYXVsdCBhbmQgY29uZmlndXJhYmxlIG1heGltdW0KCSAgbnVtYmVyIG9mIHZhcmJpbmRzIHJldHVybmFibGUgdG8gYSBHRVRCVUxLIHJlcXVlc3QKCjIwMDctMDUtMDQgMjA6MjcgIHRhbmRlcnMKCgkqIHBlcmwvU05NUC9TTk1QLnhzOgoJICBDSEFOR0VTOiBwZXJsOiBmaXggU05NUCBTRVQgZm9yIElQIGFkZHJlc3NlcyBvbiA2NC1iaXQKCjIwMDctMDUtMDQgMTA6MjIgIHRhbmRlcnMKCgkqIE1ha2VmaWxlLmluOgoJICBpbnN0YWxsIGRyYWdvbmZseS5oCgoyMDA3LTA1LTAzIDIzOjAxICB0YW5kZXJzCgoJKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kcmFnb25mbHkuaDoKCSAgQ0hBTkdFUzogQlVHOiAxNzEwOTEwOiBpbml0aWFsIHN1cHBvcnQgZm9yIERyYWdvbkZseSBCU0QKCjIwMDctMDUtMDMgMjI6MTAgIHRhbmRlcnMKCgkqIHBlcmwvU05NUC9TTk1QLnhzOgoJICBDSEFOR0VTOiBwZXJsOiBmaXggU05NUCBTRVQgZm9yIElQIGFkZHJlc3NlcyBvbiA2NC1iaXQKCSAgUGF0Y2ggcHJvcG9zZWQgYnkgSmVmZiBMYW5nZS4KCjIwMDctMDUtMDIgMTM6MTMgIGR0czEyCgoJKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCSAgRml4IHByb2JsZW1zIHdpdGggc2luZ2xlLWxpbmUgZXh0ZW5kIHNjcmlwdHMuCgoyMDA3LTA1LTAxIDExOjM0ICBkdHMxMgoKCSogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCSAgQ0hBTkdFUzogc25tcHRyYXBkOiBTdXBwb3J0IGZvciBmb3J3YXJkaW5nIHRyYXBzIGJ5IE9JRCBzdWJ0cmVlLgoJICAoQ29uc2lzdGVudCB3aXRoIHN1YnRyZWUtYmFzZWQgc2NyaXB0IHByb2Nlc3NpbmcpLgoKMjAwNy0wNC0zMCAxMzoyNiAgZHRzMTIKCgkqIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5jLAoJICBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5oOgoJICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3MDA3Mzc6IFRpZHkgdXAgc2V0U2VyaWFsTm8KCSAgaW1wbGVtZW50YXRpb25zLgoKMjAwNy0wNC0zMCAxMzowNiAgZHRzMTIKCgkqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoJICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3MDA3MzI6IEZpeCBkZWJ1ZyBvdXRwdXQgc3RhdGVtZW50cy4KCjIwMDctMDQtMzAgMTM6MDIgIGR0czEyCgoJKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgkgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTcwMDczMDogUmVtb3ZlIHVudXNlZCBleHRlcm4gZGVjbGFyYXRpb24uCgoyMDA3LTA0LTMwIDExOjMyICBkdHMxMgoKCSogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoJICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2OTgxODQ6IFJlZ2lzdGVyIG5vbi1kZWZhdWx0IGNvbnRleHQKCSAgaW50ZWdlcnMgYXMgd3JpdGFibGUuCgkgIFBhdGNoIHByb3ZpZGVkIGJ5IE1hcmsgTmF5bG9yLgoKMjAwNy0wNC0zMCAxMTowNCAgZHRzMTIKCgkqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmM6CgkgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY5Mjc2ODogRml4IGNvcHlpbmcgb2Ygbm9uLW9jdGV0LWFsaWduZWQKCSAgSVAgYWRkcmVzcyBwcmVmaXhlcy4KCjIwMDctMDQtMzAgMTA6MjUgIGR0czEyCgoJKiBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYzoKCSAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODczMjU6IEZpeCBwcm9ibGVtIHdpdGggb3BlcmF0b3IKCSAgcHJlY2VkZW5jZS4KCjIwMDctMDQtMzAgMTA6MDcgIGR0czEyCgoJKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCSAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODczMTY6IERvbid0IGRyb3AgY29uc3QgZnJvbSBjYXN0cy4KCjIwMDctMDQtMjQgMTI6MzUgIGR0czEyCgoJKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCSAgRml4IGluY29tcGxldGUgT0lEIGhhbmRsaW5nIG9mIHNpbmdsZS1saW5lIGV4dGVuZCBzY3JpcHRzLgoJICBSZXBvcnRlZCBieSBNYXggb24gY29kZXJzIGxpc3QsIDd0aCBBcHJpbC4gU2VlIHRocmVhZAoJICAiLi4uIHNlZ2ZhdWx0IC4uIHdoZW4gYXR0ZW1wdGluZyBTTk1QIEdFVCBvbiBleHRlbmQgb3IgZXhlYyBpdGVtIgoKMjAwNy0wNC0yMCAwODozMCAgZHRzMTIKCgkqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoJICBEb2N1bWVudCB0aGUgYmVoYXZpb3VyIG9mIGEgbG9hZCB0aHJlc2hvbGQgb2YgMC4KCSAgUmVwb3J0ZWQgYnkgRm9uZyBUc3VpLgoKMjAwNy0wNC0yMCAwODoyMSAgZHRzMTIKCgkqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCSAgTG9uZy10ZXJtIGxvYWQgYXZlcmFnZSBpcyBjYWxjdWxhdGVkIG92ZXIgMTUgbWludXRlcywgbm90IDEwLgoJICBSZXBvcnRlZCBieSBGb25nIFRzdWkKCjIwMDctMDQtMTAgMTQ6MTYgIGR0czEyCgoJKiBwZXJsL1NOTVAvU05NUC54czoKCSAgRGV0ZWN0IE9JRCByZXRyYWNraW5nIChhcyB3ZWxsIGFzIHNpbXBsZSByZXBldGl0aW9ucykgd2hlbgoJICBidWxrd2Fsa2luZyBhbiBPSUQgdHJlZS4KCSAgU2VlIHVzZXJzIHRocmVhZCAibWlzc2luZyBpbmRpY2VzIGluIGJ1bGt3YWxrIHJlc3VsdCIuCgoyMDA3LTA0LTEwIDExOjQ5ICBkdHMxMgoKCSogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oOgoJICBDbGFyaWZ5IGNvcHlyaWdodCBzdGF0dXMgb2YgV2luMzIgQVBJIGRlZmluaXRpb25zLgoKMjAwNy0wNC0xMCAxMToyNyAgZHRzMTIKCgkqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2R5bml4Lmg6CgkgIENsYXJpZnkgY29weXJpZ2h0IHN0YXR1cyBvZiBCU0QtZGVyaXZlZCBUQ1BUViogZGVmaW5pdGlvbnMuCgoyMDA3LTA0LTAzIDA4OjU5ICB0YW5kZXJzCgoJKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCSAgZml4IHN5bnRheCBlcnJvciBpbnRyb2R1Y2VkIGJ5IGxhc3QgcGF0Y2gKCjIwMDctMDQtMDMgMDg6NTQgIGR0czEyCgoJKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCSAgRW1waGFzaXNlIHRoZSB1c2Ugb2YgU05NUHYzIGluIERpc01hbiBtb25pdG9yaW5nLgoJICBGaXggdGhlIHN5bnRheCBvZiBub24tZXhpc3RhbmNlL3ZhbHVlLWNoYW5nZSB0ZXN0cy4KCjIwMDctMDQtMDIgMTQ6NTUgIGR0czEyCgoJKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgkgIENIQU5HRVM6IHNubXBkOiBCVUc6IDEwNDYzMjc6IFJlc2V0ICJpbmNsdWRlQWxsRGlza3MiIGZsYWcgd2hlbgoJICByZWxvYWRpbmcuCgoyMDA3LTA0LTAyIDE0OjQ1ICBkdHMxMgoKCSogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoJICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNjAyMjg2OiBEb24ndCBsZXQgdGFibGUgaG9sZXMgYmxvY2sgbGF0ZXIKCSAgcm93cy4KCjIwMDctMDQtMDIgMTM6NTEgIGR0czEyCgoJKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgkgIENIQU5HRVM6IHNubXBkOiBCVUc6IDEwNzM3ODI6IFJlc3RvcmUgUGVyZlN0YXQgdmFsdWVzIGZvciBGcmVlQlNECgkgIDUueCBzeXN0ZW1zLgoJICBJdCdzIHVuY2xlYXIgd2h5IHRoZSAibmV3IiBjYWxjdWxhdGlvbiB3YXMgYSkgcHJvcG9zZWQsIGIpCgkgIHdpdGhkcmF3biwKCSAgYW5kIGMpIHdoYXQgd2FzIHdyb25nIHdpdGggdGhlIHByZXZpb3VzIGNhbGN1bGF0aW9uICh3aGljaCBzZWVtcwoJICB0bwoJICBtYXRjaCB0aGUgb3V0cHV0IG9mICdwcycpCgoyMDA3LTA0LTAyIDEzOjA2ICBkdHMxMgoKCSogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgkgIENIQU5HRVM6IHNubXBkOiBCVUc6IDkwMjYxMDogRG9uJ3QgZGlzY2FyZCBwZW5kaW5nIGRhdGEgZm9sbG93aW5nCgkgIGEgVFJBUC4KCjIwMDctMDQtMDIgMTI6NTYgIGR0czEyCgoJKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCSAgQ0hBTkdFUzogc25tcGQ6IEJVRzogOTAyODAxOiBGaXggb3JkZXJpbmcgb2YgU01VWC1yZWdpc3RlcmVkCgkgIHN1YnRyZWVzLgoKMjAwNy0wNC0wMiAxMjozNSAgZHRzMTIKCgkqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoJICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNjg1MDY3OiBNb3JlIHByZWNpc2UgaGFuZGxpbmcgb2YKCSAgU05NUHYzLWFkbWluIE1JQiB0YWJsZXMuCgkgIFRoaXMgYWN0dWFsbHkgZml4ZXMgdGhyZWUgc2VwYXJhdGUgcHJvYmxlbXM6CgkgICogQSBHRVQgcmVxdWVzdCBmb3IgJ3ZhY21Hcm91cE5hbWUue2dyb3VwfS4wLnthbnl0aGluZ30nIHdpbGwKCSAgc3VjY2VlZAoJICAoc2luY2UgdGhlIDAgc3ViaWQgYWN0cyBhcyBhIG51bGwtdGVybWluYXRvciBmb3IgdGhlIGdyb3VwIG5hbWUpLgoJICAqIEEgR0VUIHJlcXVlc3QgZm9yICd2YWNtVmlld1RyZWVGYW1pbHlUeXBlLiJfbm9uZSIuMScgd2lsbAoJICBzdWNjZWVkCgkgIChpbXBsaWNpdGx5IGFkZGluZyB0aGUgc3ViaWQgMCB0byB0aGUgaW5jb21wbGV0ZSBPSUQgaW5kZXggdmFsdWUpCgkgICogQSBHRVQgcmVxdWVzdCBmb3IgJ3ZhY21BY2Nlc3NTdGF0dXMuImdyb3VwIi4iIi4zLjQnIHdpbGwKCSAgc3VjY2VlZAoJICAoc2luY2UgVkFDTSBjaGVja3MgYWNjZXB0IHRoZSBnaXZlbiBzZWN1cml0eSBsZXZlbCAqb3IqaGlnaGVyKikKCjIwMDctMDQtMDIgMTI6MjYgIGR0czEyCgoJKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCSAgQ2hlY2sgdGhhdCBHRVQgcmVxdWVzdHMgbWF0Y2ggYSB2YWxpZCBPSUQuCgkgIChPdGhlcndpc2UgYSByZXF1ZXN0IGZvciBoclN0b3JhZ2V7Q29sdW1ufS57aW5kZXh9Lnthbnl0aGluZ30KCSAgd2lsbCBpZ25vcmUgdGhlIGV4dHJhIHN1YmlkcywgYW5kIHJldHVybiBzdWNjZXNzKQoKMjAwNy0wNC0wMiAxMjoyMSAgZHRzMTIKCgkqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYzoKCSAgUHJldmVudCBjcmFzaCB3aGVuIHdhbGtpbmcgKGludmFsaWQ/KSBFdmVudC1NSUIgT2JqZWN0cyBUYWJsZS4KCjIwMDctMDQtMDIgMTE6MzAgIGR0czEyCgoJKiBkaXN0L21ha2VyZWxlYXNlOgoJICBGaXggYSBjb3VwbGUgb2YgdHlwb3MgaW4gdGhlIHJlLXdvcmtlZCBtYWtlcmVsZWFzZSBzY3JpcHQuCgoyMDA3LTAzLTI5IDEyOjE0ICB0YW5kZXJzCgoJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCSAgZml4IHN5bnRheCBlcnJvciAoIj09IiBpcyBiYWQpCgoyMDA3LTAzLTI3IDA4OjM4ICBkdHMxMgoKCSogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgkgIEFjY2VwdCAnMmMnIGFzIGEgdmFsaWQgcmVzcG9uc2Ugd2hlbiBjaG9vc2luZyB0aGUgZGVmYXVsdCB2ZXJzaW9uCgoyMDA3LTAzLTI3IDA4OjI5ICBkdHMxMgoKCSogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgkgIENIQU5HRVM6IGNvbmZpZ3VyZTogQlVHOiAxNTY3MzI0OiBDbGFyaWZ5IHByb21wdGluZyBmb3IKCSAgdXNlci1zdXBwbGllZCB2YWx1ZXMuCgkgIE5vdyBvbmx5IHJlbWVtYmVycyAoYW5kIHVzZXMpIHByZXZpb3VzIHZhbHVlcyB3aGVuIGV4cGxpY2l0bHkKCSAgdG9sZCB0byBkbyBzbywKCSAgZS5nLiBjb25maWd1cmUgLUMKCjIwMDctMDMtMjUgMjI6MzIgIGR0czEyCgoJKiBsb2NhbC9taWIyYy5jb250YWluZXIuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLAoJICBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgkgIFZhcmlhYmxlLWxlbmd0aCBzdHJpbmcgdmFsdWVzIGFyZSBtb3JlIGxpa2VseSB0aGFuIGZpeGVkIGxlbmd0aC4KCjIwMDctMDMtMjUgMjI6MjggIGR0czEyCgoJKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgkgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDgzMzY3MzogTW9yZSBmb2N1c2VkIHNpemUgY2hlY2tzLgoKMjAwNy0wMy0yNSAyMToyNSAgZHRzMTIKCgkqIGFnZW50L3NubXBfYWdlbnQuYzoKCSAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTY3NzA2MzogQ2hlY2sgZm9yIGZhaWxlZCBtYWxsb2MgY2FsbHMuCgoyMDA3LTAzLTI1IDE5OjAzICBkdHMxMgoKCSogYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYzoKCSAgQ2hlY2sgU0VUIHJlcXVlc3RzIGFnYWluc3QgdGhlIGNvcnJlY3QgdHlwZSAoSVAgQWRkcmVzcyAhPSBPY3RldAoJICBTdHIpCgoyMDA3LTAzLTI1IDE4OjU4ICBkdHMxMgoKCSogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCSAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTY4NTA4MTogQ2hlY2sgZm9yIHZhbGlkIE9JRCBvbiBGcmVlL1VuZG8KCSAgcGFzc2VzLgoKMjAwNy0wMy0yMyAwOTo0NCAgZHRzMTIKCgkqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoJICBDSEFORUdTOiBzbm1wbGliOiBCVUc6IDE2ODYzODQ6IERvY3VtZW50IG5vbi11c2Ugb2YgJ3JlbW90ZV9wb3J0JwoJICBmaWVsZC4KCjIwMDctMDMtMjMgMDk6MTkgIGR0czEyCgoJKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaToKCSAgQWxsb3cgc3BhY2UgZm9yIGV4dGVybmFsIGluZGV4ZXMgd2hlbiBzYXZpbmcgdGFibGUgZW50cmllcy4KCSAgKFNlZSBwYXRjaCAjMTY0MjI1NSkKCjIwMDctMDMtMjMgMDk6MTUgIGR0czEyCgoJKiBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYzoKCSAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjQyMjU1OiBIYW5kbGUgc2F2aW5nIGxvbmcKCSAgc25tcE5vdGlmeUZpbHRlclRhYmxlIGVudHJpZXMuCgoyMDA3LTAzLTIzIDA5OjA2ICBkdHMxMgoKCSogYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYzoKCSAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjc2NDc4OiBmaXggdWRwRW5kcG9pbnRSZW1vdGVBZGRyZXNzCgkgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2NzY0NzY6IGZpeCB1ZHBFbmRwb2ludFJlbW90ZUFkZHJlc3MKCjIwMDctMDMtMjMgMDk6MDEgIGR0czEyCgoJKiBzbm1wbGliL3NubXBfYXBpLmM6CgkgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjUzNjcwOiBDb25zaXN0ZW50IFNOTVB2MyBiZWhhdmlvdXIKCSAgd2hlbiBvcGVuaW5nIHNlc3Npb25zLgoKMjAwNy0wMy0yMiAxOToxNCAgZHRzMTIKCgkqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCSAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODEwMzA6IEJldHRlciBoYW5kbGluZyBvZiBlbXB0eQoJICBhcHB0eXBlIGNvbmZpZ3MuCgoyMDA3LTAzLTIyIDE5OjEyICBkdHMxMgoKCSogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oLAoJICBhZ2VudC9zbm1wZC5jOgoJICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2Nzg3ODg6IEJldHRlciBoYW5kbGluZyBvZiBTTVVYIHNvY2tldAoJICBkZXNjcmlwdG9ycy4KCjIwMDctMDMtMjIgMTk6MDkgIGR0czEyCgoJKiBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jOgoJICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2ODMwNTQ6IHNldCB1ZHBFbmRwb2ludEluc3RhbmNlIHRvCgkgIGlkZW50aWZ5IGRpZmZlcmVudCBwcm9jZXNzZXMuCgoyMDA3LTAzLTIxIDEyOjM1ICBkdHMxMgoKCSogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoJICBEZWNsYXJlIE9JRCBjb25zdGFudHMgYXMgc3VjaCAocmF0aGVyIHRoYW4gQVBJIGNhbGxzKS4KCSAgUHJvcG9zZWQgYnkgQWxleCBCdXJnZXIKCjIwMDctMDMtMjAgMjA6MDggIHJzdG9yeQoKCSogYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmM6CgkgIE5FV1M6IHNubXBkOiBQQVRDSDogMTY2NjczNzogaW5jbHVkZSBpcHY2IGNvdW50cyBpbgoJICB1ZHBJbkRhdGFncmFtcywgdWRwTm9Qb3J0cywgdWRwSW5FcnJvcnMsIHVkcE91dERhdGFncmFtcwoKMjAwNy0wMy0xOSAyMjowOSAgdGFuZGVycwoKCSogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wY3AuYzoKCSAgdXNlIHBtRnJlZVJlc3VsdCgpIGluc3RlYWQgb2YgZnJlZSgpCgoyMDA3LTAzLTE3IDAwOjI1ICB0YW5kZXJzCgoJKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaCwKCSAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLAoJICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoJICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE2ODEwNzM6ICNpZmRlZiBiYXNlZCBjb25maWdfZXJyb3IgaW5zdGVhZAoJICBvZiBzcGVjaWFsIGNhc2VzIGluIGNvbmZpZ3VyZQoJICBCYWNrcG9ydCBmcm9tIE1BSU4uCgoyMDA3LTAzLTE2IDE0OjA0ICBkdHMxMgoKCSogZGlzdC9jaGFuZ2Vsb2dmaXgsIGRpc3QvbWFrZXJlbGVhc2UsIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgkgIENvbnZlcnQgYnVpbGQgc3lzdGVtIHRvIFNWTiB2ZXJzaW9uLgoKMjAwNy0wMy0xNCAyMzozMSAgdGFuZGVycwoKCSogUkVBRE1FLmlyaXgsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLAoJICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BjcC5jLAoJICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BjcC5oOgoJICBORVdTOiBJUklYOiBQQVRDSDogMTY3NTg2OTogZnJvbSBiYmljZTogQ1BVIHN0YXRpc3RpY3MgZm9yIElSSVgKCSAgYmFzZWQgb24gUENQCgoyMDA3LTAzLTE0IDE2OjEyICBkdHMxMgoKCSogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoJICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY0NDI4MDogRG9uJ3QgYXV0b21hdGljYWxseSBwcm9iZSBmb3IKCSAgdjMgRW5naW5lSURzLgoKMjAwNy0wMy0xMyAxMDoyNiAgZHRzMTIKCgkqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCSAgQ2hlY2sgZm9yIHplcm8tc2l6ZSBwc2V1ZG8tZmlsZXN5c3RlbXMuIFJlcG9ydCB0aGVtIGFzIGVtcHR5CgkgIHJhdGhlciB0aGFuIGZ1bGwsIHNvIHRoZXkgd29uJ3QgYmUgdHJlYXRlZCBhcyBhbiBlcnJvci4KCjIwMDctMDMtMTMgMDk6MTEgIHRhbmRlcnMKCgkqIHNubXBsaWIvbWliLmM6CgkgIEJhY2sgb3V0IGNoYW5nZXMgdG8gYnJhbmNoZXMgZG9uZSBpbiBTVk4gMTU5NTMgKHBhdGNoIDE2NzgzMDIpCgkgIGJlY2F1c2UgdGhleSBhcmUgb25seSBhcHByb3ByaWF0ZSBmb3IgTUFJTgoKMjAwNy0wMy0xMyAwNTo1OSAgdGFuZGVycwoKCSogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5oOgoJICBDSEFOR0VTOiBQQVRDSDogMTY3ODMwNTogZnJvbSBtYWdmcjogRGVhbGxvY2F0ZSB0aGUgY2FjaGUgaW4KCSAgaGFyZHdhcmUvY3B1L2NwdSBvbiBzaHV0ZG93biAoaGVhZGVyIHBhcnQpCgoyMDA3LTAzLTEyIDIzOjA5ICB0YW5kZXJzCgoJKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsCgkgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuaDoKCSAgQ0hBTkdFUzogUEFUQ0g6IDE2NzgzMDY6IGZyb20gbWFnZnI6IERlYWxsb2NhdGUgdGhlIGxvZyBpbgoJICBub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nCgoyMDA3LTAzLTEyIDIzOjA0ICB0YW5kZXJzCgoJKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmM6CgkgIENIQU5HRVM6IFBBVENIOiAxNjc4MzA1OiBmcm9tIG1hZ2ZyOiBEZWFsbG9jYXRlIHRoZSBjYWNoZSBpbgoJICBoYXJkd2FyZS9jcHUvY3B1IG9uIHNodXRkb3duCgoyMDA3LTAzLTEyIDIyOjU3ICB0YW5kZXJzCgoJKiBzbm1wbGliL21pYi5jOgoJICBDSEFOR0VTOiBQQVRDSDogMTY3ODMwMjogZnJvbSBtYWdmcjogbmV0c25tcF9taWJpbmRleF9sb2FkIGxlYWtzCgkgIG1lbW9yeQoKMjAwNy0wMy0xMiAyMjo1MCAgdGFuZGVycwoKCSogc25tcGxpYi9zbm1wX2FwaS5jOgoJICBDSEFOR0VTOiBQQVRDSDogMTY3ODMwMTogZnJvbSBtYWdmcjogZGVhbGxvY2F0ZSBkb21haW4gcmVnaXN0cnkKCSAgYXQgc2h1dGRvd24KCjIwMDctMDMtMTIgMjI6MzEgIHRhbmRlcnMKCgkqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCSAgQ0hBTkdFUzogUEFUQ0g6IDE2NzgyOTg6IGZyb20gbWFnZnI6IGNvbXBpbGUtc3ViYWdlbnQgY2hlY2tzIGZvcgoJICBiYWQgSEFWRV9TSUdOQUxfSAoKMjAwNy0wMy0xMiAyMTozNyAgZHRzMTIKCgkqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCSAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTQxMzcyODogUmVmZXJlbmNlIGluZGV4IHZhbHVlcyBpbiBkZWJ1ZwoJICBvdXRwdXQgY29ycmVjdGx5LgoKMjAwNy0wMy0xMiAyMTozNCAgZHRzMTIKCgkqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCSAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTEwMjA1ODogU2tpcCBub24tbW91bnRlZCBkaXNrcyAoZS5nLiBzd2FwCgkgIHBhcnRpdGlvbnMpCgoyMDA3LTAzLTEyIDIxOjMwICBkdHMxMgoKCSogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAoJICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsCgkgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmM6CgkgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjY4MTkzOiBVcGRhdGUgcmVnaXN0cmF0aW9uIG9mCgkgIFJlYXNtTWF4U2l6ZSBzdXBwb3J0LgoKMjAwNy0wMy0xMiAyMToyOCAgZHRzMTIKCgkqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmM6CgkgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjY4MTkzOiBGaXggY2hlY2sgZm9yIHY2IFJlYXNtTWF4U2l6ZQoJICBzdXBwb3J0LgoKMjAwNy0wMy0xMiAxOTo1NiAgZHRzMTIKCgkqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCSAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2Njg5NTI6IElnbm9yZSB6b21iaWUgcHJvY2Vzc2VzLgoKMjAwNy0wMy0xMiAxOTo1NCAgZHRzMTIKCgkqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmM6CgkgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjY1OTg1OiBJbXBsZW1lbnQgaXBSZWFzbVRpbWVvdXQKCSAgVGhvdWdoIHRoaXMgcmVnaXN0ZXJzIGFuIGluc3RhbmNlLCByYXRoZXIgdGhhbiB0aGUgZnVsbCBzY2FsYXIKCSAgb2JqZWN0CgoyMDA3LTAzLTEyIDE5OjUxICBkdHMxMgoKCSogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jOgoJICBDSEFOR0VTOiBsaWJyYXJ5OiBQQVRDSEVTOiAxNjY1NTQzOiBIYW5kbGUgVkFDTSBjaGVja3MgY29ycmVjdGx5LgoJICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY2NTU0OTogSGFuZGxlIGNyZWF0aW5nIFZBQ00gZW50cmllcwoJICBjb3JyZWN0bHkuCgkgIFtCb3RoIHBhdGNoZXMgYXJlIHJlcXVpcmVkIGZvciBjb3JyZWN0IG9wZXJhdGlvbl0KCjIwMDctMDMtMTIgMTk6NDcgIGR0czEyCgoJKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCSAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2NTk2MjM6IEhhbmRsZSBTTVVYIHBlZXJzIHdpdGggYW4gZW1wdHkKCSAgcGFzc3dvcmQuCgoyMDA3LTAzLTEyIDE5OjQwICBkdHMxMgoKCSogYWdlbnQvYWdlbnRfdHJhcC5jOgoJICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY0NDI4MDogVXNlIHRoZSBjb3JyZWN0IGVuZ2luZUlEIHdoZW4KCSAgc2VuZGluZyB2MyB0cmFwcy4KCjIwMDctMDMtMTIgMTk6MzIgIGR0czEyCgoJKiBzbm1wbGliL3NubXBfYXBpLmM6CgkgIENIQU5HRVM6IGxpYnJhcnk6IFBBVENIRVM6IDE2NDIwNzE6IERvbid0IGZpZGRsZSB3aXRoIHRoZSBzdG9yYWdlCgkgIG9mIHByZS1leGlzdGluZyB1c2Vycy4KCjIwMDctMDMtMTIgMTk6MzAgIGR0czEyCgoJKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgkgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjQxODY1OiBEb24ndCBkb3VibGUgY2hlY2sgc25tcFRyYXBPSUQKCSAgaW4gdGhlIGZpbHRlciB0YWJsZS4KCjIwMDctMDMtMTIgMTk6MjUgIGR0czEyCgoJKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKCSAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYzoKCSAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2Mzk3MjY6IFJlcG9ydCBwaHlzaWNhbCBtZW1vcnkKCSAgY29ycmVjdGx5IG9uICpCU0QKCjIwMDctMDMtMDggMTU6NTIgIGR0czEyCgoJKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaCwKCSAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oOgoJICBJbmNsdWRlIEhvc3QgUmVzb3VyY2VzIE1JQiBvbiBOZXRCU0QgYW5kIE9wZW5CU0QKCjIwMDctMDMtMDYgMTM6NTEgIGR0czEyCgoJKiBhZ2VudC9zbm1wX2FnZW50LmM6CgkgIENIQU5HRVM6IHNubXBkOiBCVUc6IDExNTk5MDg6IEZpeCBtZW1vcnkgbGVhawoKMjAwNy0wMy0wMiAyMjo1OCAgdGFuZGVycwoKCSogc25tcGxpYi9NU0cwMDAwMS5iaW46CgkgIGRlLW1hbmdlIGJpbmFyeSBmaWxlCgoyMDA3LTAzLTAyIDEyOjQ0ICB0YW5kZXJzCgoJKiBDb2RpbmdTdHlsZToKCSAgZml4IHR5cG8KCjIwMDctMDItMjggMTU6MjcgIGR0czEyCgoJKiBDSEFOR0VTLCBDaGFuZ2VMb2csIE5FV1M6CgkgIENoZWNrcG9pbnQgc3VtbWFyeSBvZiBDVlMgY2hhbmdlcywgcHJlcGFyYXRvcnkgZm9yIHRoZSBTVk4KCSAgc3dpdGNoLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNCAtPiBTVk4gY2hlY2twb2ludCAoVjUtNC1wYXRjaGVzIGJyYW5jaCkKCjIwMDctMDItMjcgMTM6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIENIQU5HRVM6IExpbnV4OiBCVUc6IDE2NjYwMDU6IEZhaWwgdG8gd2FsayBpcHY2SW50ZXJmYWNlVGFibGUgb24gTGludXgKCjIwMDctMDItMjcgMTM6MDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBDSEFOR0VTOiBtaWIyYzogUEFUQ0g6IDE2NjgxNzE6IHNraXAgdW5rbm93biBjb2xzIGluIG1pbi9tYXggcmFuZ2UgZm9yIHRhYmxlcywgaW5zdGVhZCBvZiBlcnJvcgoKMjAwNy0wMi0yNyAxMjozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS5oOgoKICAgYWRkIGhlYWRlciBmb3IgZWFzaWVyIGNvbmZpZ3VyZSAtLXdpdGgtbWliLW1vZHVsZQoKMjAwNy0wMi0yNyAxMjozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS5oOgoKICAgZmlsZSBpcEFkZHJlc3NQcmVmaXhUYWJsZS5oIHdhcyBhZGRlZCBvbiBicmFuY2ggVjUtNC1wYXRjaGVzIG9uIDIwMDctMDItMjcgMTI6MzQ6NTkgKzAwMDAKCjIwMDctMDItMjYgMTQ6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgUmUtY29ycmVjdCBpbnRlcnByZXRhdGlvbiBvZiAibnVsbCBPSUQiIGluIHRoZSBBZ2VudFggc3BlY3MuCgoyMDA3LTAyLTI2IDE0OjM3ICBkdHMxMgoKICAgKiBpbmNsdWRlL3VjZC1zbm1wL3V0aWxfZnVuY3MuaDoKCiAgIEZpeCByZWZlcmVuY2UgdG8gTmV0LVNOTVAgaW5jbHVkZSBsb2NhdGlvbnMKCjIwMDctMDItMjYgMTI6NDcgIGR0czEyCgogICAqIHBlcmwvOiBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgICBTTk1QL01ha2VmaWxlLlBMLCBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvTWFrZWZpbGUuUEwsIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgUHJvbXB0aW5nIGZvciBhIHNpbmdsZSBkaXJlY3RvcnksIG5vdCBhbiBhcnJheS4KCjIwMDctMDItMjYgMTE6MzIgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuY29udGFpbmVyLmNvbmYsIG1pYjJjLml0ZXJhdGUuY29uZgosIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDE0Mjk0NzI6IFByb3RlY3QgYWdhaW5zdCBtaXNzaW5nIGluc3RhbmNlcyAoYW5kIGludmFsaWQgb2JqZWN0cykKCjIwMDctMDItMjYgMTE6MjkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm1mZC5jb25mOgoKICAgRml4IGludmFsaWQgbWliMmMgZGlyZWN0aXZlLgoKMjAwNy0wMi0yNiAxMToxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTQxNjI3NjogSGFuZGxlIGRlcGVuZGVuY3kgb24gTUlCIHBhcnNpbmcgQVBJLgoKMjAwNy0wMi0yMyAyMTo1MyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBxdW90ZXMgdG8gZml4IHNoZWxsIHN5bnRheCBlcnJvciB3aGVuIGVtcHR5CgoyMDA3LTAyLTIyIDIyOjQ3ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTGFzdCBjb21taXQgYnJva2UgdGhlIGJ1aWxkLiBOb3cgZXNjYXBlIGJhY2tzbGFzaGVzIHByb3Blcmx5LiBQbGVhc2UgcmVtZW1iZXIgdG8gdXNlIGF1dG9jb25mIDIuNTkgZm9yIHRoZSBwYXRjaGVzIGJyYW5jaGVzIQoKMjAwNy0wMi0yMiAxNTozOCAgZHRzMTIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBDSEFOR0VTOiBkb2N1bWVudGF0aW9uOiBCVUc6IDEyNDcxNjQ6IERvY3VtZW50IHVzZSBvZiBPSUQgbWFjcm9zCgoyMDA3LTAyLTIyIDAwOjI4ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzogaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jLAogICAgIHVjZC1zbm1wL3Byb2MuYzoKCiAgIENIQU5HRVM6IEFJWDogUEFUQ0g6IDE2NjUwNzk6IGZyb20gIk1pY2hhZWwgS3VrYXQiOiBBSVggcGF0Y2hlcyBmb3IgY3B1IHN0YXRzIGFuZCBwcm9jZXNzIG1vbml0b3JpbmcKCjIwMDctMDItMjEgMTY6MzYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IGxhbWUtbWFrZSBzeXN0ZW1zIHRoYXQgY2FuJ3QgaGFuZGxlIHdoaXRlc3BhY2UgdGVybWluYXRpbmcgd3JhcHBlZCBsaW5lcwoKMjAwNy0wMi0yMSAxNTozMyAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS50b3A6CgogICBDSEFOR0VTOiBXaW4zMjogQlVHOiAxNjYyOTg3OiBjb21waWxlIGVycm9yIG9uIEN5Z3dpbgoKMjAwNy0wMi0yMSAxMzo1NiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfcGFyc2VfYXJncy5jLCB0b29scy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAxNjYwMDYxOiBWYWxpZGF0ZSBlbmdpbmVJRHMgbW9yZSBzdHJpY3RseS4KCjIwMDctMDItMjEgMTM6NDkgIGR0czEyCgogICAqIG1hbi86IHNubXBjbWQuMS5kZWYsIHNubXAuY29uZi41LmRlZjoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IEJVRzogMTQwNzQ3NjogQ2xhcmlmeSBNSUIgcGFyc2luZyB0b2dnbGUgb3B0aW9ucyBhbmQgTUlCIGNvbW1lbnQgaGFuZGxpbmcuCgoyMDA3LTAyLTIxIDEzOjM3ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIENIQU5HRVM6IGJ1aWxkOiBCVUc6IDEwOTYxNjY6IEhhbmRsZSAtLXdpdGhvdXQtbG9nZmlsZSBjb3JyZWN0bHkuCgoyMDA3LTAyLTE5IDE2OjM2ICBkdHMxMgoKICAgKiBkaXN0LzogTWFrZWZpbGUsIG5zYi1jb25maWcsIG5zYi1mdW5jdGlvbnMKLCBuc2ItbmlnaHRseSwgbnNiLXBhY2thZ2UsCiAgICAgbnNiLXBsYXRmb3JtLCBwYXRtZSwgUkVBRE1FLmJ1aWxkLXNjcmlwdHMKOgoKICAgcmVtb3ZlZCBkaXN0IGZpbGVzIG9ubHkgdG8gYmUgZGlzdHJpYnV0ZWQgaW4gdGhlIG1haW4gQ1ZTIGJyYW5jaAoKMjAwNy0wMi0xOSAxNjozMCAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIFJlbGVhc2UgSW5zdHJ1Y3Rpb25zIG9ubHkgdG8gYmUgZGlzdHJpYnV0ZWQgaW4gdGhlIG1haW4gQ1ZTIGJyYW5jaAoKMjAwNy0wMi0xOSAxMDo0OSAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIERvbid0IGFzc3VtZSBsb2NhbCB1c2VybmFtZXMgbWF0Y2ggQ1ZTIGFjY291bnQgbmFtZXMuCgoyMDA3LTAyLTE5IDEwOjQxICBkdHMxMgoKICAgKiBkaXN0L2V4dHJhY3RuZXdzOgoKICAgSW1wcm92ZSBsYXlvdXQgb2YgQ0hBTkdFUyBpbmZvcm1hdGlvbi4KCjIwMDctMDItMTkgMTA6MDYgIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgRG9uJ3QgaW52b2tlICd2ZXJzaW9udGFnJyBmb3IgdGFnZ2luZyB0aGUgQ1ZTIHRyZWUuCiAgIEl0IGRvZXNuJ3QgaGFuZGxlIHRoaXMgYW55IG1vcmUuIChVc2UgJ21ha2VyZWxlYXNlJyBpbnN0ZWFkKQoKMjAwNy0wMi0xOSAxMDowMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIERvbid0IGZhaWwgc2lsZW50bHkgd2hlbiBjYWxsZWQgdG8gdGFnIHRoZSBDVlMgdHJlZS4KICAgUmV0dXJuIGluZGljYXRpb24gb2YgZmFpbHVyZSB0byB0aGUgY2FsbGluZyBhcHBsaWNhdGlvbiAoZS5nLiBtYWtlKQoKMjAwNy0wMi0xNiAxMjowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBSZXZlcnQgdG8gcHJldmlvdXMgIm51bGwgT0lEIiBpbnRlcnByZXRhdGlvbiAoYnV0IHdpdGggdGhlIGNvcnJlY3QgZW5jb2RpbmcpLgoKMjAwNy0wMi0xNSAxMTowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTYwMDI2MTogSGFuZGxlIG5vbi14ODYgL3Byb2MvY3B1aW5mbyBmb3JtYXQKICAgKEEgd29ya2Fyb3VuZCwgcmF0aGVyIHRoYW4gYSBmaXggLSB3ZSByZWFsbHkgbmVlZCB0byBwYXJzZSB0aGVzZQogICAgb3RoZXIgZm9ybWF0cyBwcm9wZXJseSBpbiB0aGUgaW5pdCByb3V0aW5lKQoKMjAwNy0wMi0xNSAxMDowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBDb3JyZWN0IG1pc2ludGVycHJldGF0aW9uIG9mICJudWxsIE9JRCIgaW4gQWdlbnRYIHNwZWNzLgoKMjAwNy0wMi0xNSAwOTo0NyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgUmVqZWN0IG92ZXJseS1zaG9ydCBUcmFwIE9JRHMuCiAgIERvbid0IGNyYXNoIG91dCBjb21wbGV0ZWx5IG9uIGZhaWxlZCB2MTwtPnYyIHRyYXAgY29udmVyc2lvbnMuCgoyMDA3LTAyLTEyIDEyOjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2MzM1OTU6IEZpeCBBZ2VudFggaGFuZGxpbmcgb2YgQ291bnRlcjY0IHZhbHVlcwoKMjAwNy0wMi0wOSAyMToxNSAgZHRzMTIKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDEzOTc4OTU6IGluY2x1ZGUgbWlzc2luZyBpbnRlcmZhY2UgZGVjbGFyYXRpb25zCgoyMDA3LTAyLTA4IDE3OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIE5FV1M6IHNubXBkOiBwYXRjaCBmcm9tIFdvanRlayBKYXdvciB0byBoYW5kbGUgcm93IGRlbGV0aW9uIGlzc3VlcyBpbiBkYXRhc2V0IHRhYmxlcwoKMjAwNy0wMi0wNyAxNzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsLmgsIG1pYnMvSVBWNi1GTE9XLUxBQkVMLU1JQi50eHQKOgoKICAgYWRkZWQgdGhlIGZsb3cgbGFibGUgbWliLCB3aGljaCB0aGUgdHVubmVsLW1pYiByZWZlcnMgdG8KCjIwMDctMDItMDcgMTc6MTcgIGhhcmRha2VyCgogICAqIG1pYnMvSVBWNi1GTE9XLUxBQkVMLU1JQi50eHQ6CgogICBmaWxlIElQVjYtRkxPVy1MQUJFTC1NSUIudHh0IHdhcyBhZGRlZCBvbiBicmFuY2ggVjUtNC1wYXRjaGVzIG9uIDIwMDctMDItMDcgMTc6MTk6MTAgKzAwMDAKCjIwMDctMDItMDUgMTU6MTYgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2NDE4OTU6IEV4dGVuZCBzaG9ydCB2aWV3IG1hc2tzIChhcyBwZXIgUkZDIHNwZWNzKQogICBQYXRjaCBzdXBwbGllZCBieSBNaWNoYWVsIEtpcmtoYW0uCgoyMDA3LTAyLTA1IDE1OjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgbW92ZSBmdW5jdGlvbiBjYWxsIG91dCBvZiBhc3NlcnQKCjIwMDctMDItMDUgMTQ6MzggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMKOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjM5MzYwOiBGaXggc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZSByb3cgY3JlYXRpb24uCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IE1pY2hhZWwgS2lya2hhbS4KCjIwMDctMDItMDUgMTE6MDEgIGR0czEyCgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIEZpeCBjb21waWxhdGlvbiBpZiBMT0NLX1BFUl9DQUxMQkFDS19TVUJJRCBub3QgZGVmaW5lZC4KICAgUmVwb3J0ZWQgYnkgRW1pIFlhbmFnaQoKMjAwNy0wMS0zMSAxMzo1MSAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS50b3A6CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAxNjQ3OTc2OiBDeWd3aW4vTWluR1cgV2luZG93cyBidWlsZCBmYWlscyBkdWUgdG8gbGlidG9vbCBlcnJvcgoKMjAwNy0wMS0zMCAxMzo0MyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBidWlsZDogeWV0IGFub3RoZXIgZml4IHRvIGFkZHJlc3MgYnVpbGQgaXNzdWVzIHdpdGggZXRodG9vbCAob24gUkg5KS4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWFnbnVzIEZyb21yZWlkZS4KCjIwMDctMDEtMjkgMTE6MDMgIHRhbmRlcnMKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIGdldCByaWQgb2YgQysrIGNvbW1lbnRzCgoyMDA3LTAxLTI1IDIyOjQ1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogRnJlZUJTRDogZml4IGNvbmZpZ3VyZSB3YXJuaW5nIGZvciBzeXMvY29uZi5oCgoyMDA3LTAxLTI1IDIyOjIyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvLmN2c2lnbm9yZToKCiAgIHJlcGxhY2UgYnkgbW9yZSByZWFzb25hYmxlIGNvbnRlbnQKCjIwMDctMDEtMjUgMjI6MDUgIHRhbmRlcnMKCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfc3ViYWdlbnQuYwosIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmM6CgogICBmaXggdHlwbwoKMjAwNy0wMS0yNSAyMTozMSAgdGFuZGVycwoKICAgKiBSRUFETUUuaXJpeDoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IFBBVENIOiAxNjQ0NzM1OiBmcm9tICJCcmVudCBCaWNlIjogYWRkIGdjYyBidWlsZCBpbnN0cnVjdGlvbnMgZm9yIElSSVgKCjIwMDctMDEtMjUgMjE6MTEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjQ0NzE0OiBmcm9tICJMZWxhbmQgV2FsbGFjZSI6IHJlcGxhY2UgbGFzdCByZW1haW5pbmcgaW5zdGFuY2Ugb2YgZGVwcmVjYXRlZCBjb3B5X3dvcmQgYnkgY29weV9ud29yZAoKMjAwNy0wMS0yNCAxNDowMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgVHdlYWsgZGVidWcgb3V0cHV0CgoyMDA3LTAxLTI0IDEyOjI3ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIFN1cHByZXNzIGFzc29ydGVkIHdhcm5pbmdzLgoKMjAwNy0wMS0yNCAxMjoxOCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBtYWtlIHN1cmUgdWludHB0cl90IGlzIGFsd2F5cyBkZWZpbmVkIGFzIHVuc2lnbmVkLiBTcG90dGVkIGJ5IERhdmlkIEZvcmQuCgoyMDA3LTAxLTIzIDIyOjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOgogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMKLCBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgZG9uJ3QgdHJ5IHRvIHJlbW92ZSBhIHJvdyB0aGF0IHdhcyBuZXZlciBpbnNlcnRlZAoKMjAwNy0wMS0yMyAyMjozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGRvbid0IHRyeSB0byByZW1vdmUgYSByb3cgdGhhdCB3YXMgbmV2ZXIgaW5zZXJ0ZWQKCjIwMDctMDEtMjMgMTY6MjIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTYzOTI4MjogU2F2ZSBwZXJzaXN0ZW50IHNubXBUYXJnZXRQYXJhbXNUYWJsZSBzZXR0aW5ncyBjb3JyZWN0bHkuCiAgIEZpeCBwcm92aWRlZCBieSBNaWNoYWVsIEtpcmtoYW0uCgoyMDA3LTAxLTIzIDE2OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjM3Mjg3OiBIYW5kbGUgbXVsdGlwbGUgdGFyZ2V0IHRhZ3MgY29ycmVjdGx5LgogICBGaXggcHJvdmlkZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0yMyAxNjoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNjM3Mjg3OiBIYW5kbGUgbXVsdGlwbGUgdGFyZ2V0IHRhZ3MgY29ycmVjdGx5LgogICBGaXggcHJvdmlkZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0yMyAxNTo0NCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2MzQ2MjA6IEZpeCBsZWFrcyBmcm9tIGNyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbiBmYWlsdXJlLgogICBQYXRjaCBwcm92aWRlZCBieSBNaWNoYWVsIEtpcmtoYW0uCgoyMDA3LTAxLTIzIDE0OjUxICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogQlVHOiAxNjM4MjI1OiBGaXggaW50ZXJwcmV0YXRpb24gb2YgdHJhbnNwb3J0IGFkZHJlc3MgZGF0YS4KICAgKEtlZXAgdGhpcyBjb25zaXN0ZW50IHdpdGggc25tcFVEUERvbWFpbi5jKQoKMjAwNy0wMS0yMyAxNDoxMCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgQnJpbmcgdHJhcCBoYW5kbGluZyBpbiBsaW5lIHdpdGggUkZDIDI1NzYvMzU4NCAtIGRyb3AgU05NUHYxIHRyYXBzCiAgIGNvbnRhaW5pbmcgQ291bnRlcjY0IHZhcmJpbmRzLiAgUmVxdWVzdGVkIGJ5IE1hZ251cyBGcm9tcmVpZGUuCgoyMDA3LTAxLTIyIDIyOjMwICB0YW5kZXJzCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjQxOTcyOiBmcm9tIG1hZ2ZyOiBhZGQgbWlzc2luZyBjb25zdAoKMjAwNy0wMS0yMiAxNjo0MCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjQxMzMyOiBJbmNsdWRlIG1pc3NpbmcgYWdlbnQgY29uZmlnIGRlZmluaXRpb25zLgoKMjAwNy0wMS0yMiAxNjoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYzoKCiAgIGZpeCB0eXBvIG92ZXJ3cml0aW5nIGNvbnRhaW5lciBuYW1lCgoyMDA3LTAxLTIyIDE2OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfYWRtaW4uYywgbWFzdGVyLmMKOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjQxNjg1OiBIYW5kbGUgdW5yZXNwb25zaXZlIEFnZW50WCBzdWJhZ2VudHMgbW9yZSByZWxpYWJseS4KICAgRml4IHByb3ZpZGVkIGJ5IEpvc2VmIE1vZWxsZXJzCgoyMDA3LTAxLTIyIDE1OjUxICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjQwMTE0OiBEb24ndCBzdG9yZSB0cmFpbGluZyBudWxsIGNoYXJhY3Rlci4KICAgUmVwb3J0ZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0xOSAxNjo1MyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X25saXN0LmM6CgogICBORVdTOiBCVUdTIDE2MzM0ODM6IFN1cHBvcnQgQ1BVIEhBTCBvbiBGcmVlQlNENC54CiAgIChiZWZvcmUgQ1BVIGRlZmluaXRpb25zIHdlcmUgbW92ZWQgdG8gPHN5cy9yZXNvdXJjZS5oPikKCjIwMDctMDEtMTkgMTY6NTMgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogRnJlZUJTRDogQlVHOiAxNjMzNDgzOiBTdXBwb3J0IENQVSBIQUwgb24gRnJlZUJTRDQueAogICAoYmVmb3JlIENQVSBkZWZpbml0aW9ucyB3ZXJlIG1vdmVkIHRvIDxzeXMvcmVzb3VyY2UuaD4pCgoyMDA3LTAxLTE5IDE0OjIyICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIENIQU5HRVM6IExpbnV4OiBmaXggZXRodG9vbCBjb25maWd1cmUgY2hlY2sgZm9yIHJlY2VudCBzeXN0ZW1zIChlLmcuIEZDNiwgUkhFTDUpLgogICBQYXRjaCBwcm92aWRlZCBieSBNYWdudXMgRnJvbXJlaWRlLgoKMjAwNy0wMS0xOSAxMToyNSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IGFkZCBjb25maWd1cmUgY2hlY2sgZm9yIGhhc21udG9wdCB0byBmaXggdGhlIGJ1aWxkIG9uIHN5c3RlbXMgdGhhdCBsYWNrIGl0CgoyMDA3LTAxLTE2IDEwOjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBSZXNldCAnc2VuZCcgZmxhZyB0byBjb25zaWRlciBlYWNoIHNpbmsgaW5kaXZpZHVhbGx5LgogICBSZXBvcnRlZCBieSBNaWNoYWVsIEtpcmtoYW0uCgoyMDA3LTAxLTE2IDEwOjAyICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBQcm90ZWN0IGFnYWluc3Qgc2VuZGluZyBtaXNtYXRjaGVkIHRyYXBzICh2MSB0cmFwIG9uIHYyIHNpbmspLgogICBSZXBvcnRlZCBieSBNaWNoYWVsIEtpcmtoYW0uCgoyMDA3LTAxLTE2IDA5OjUzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIERvbid0IGhhcmRjb2RlIHRoZSBzaXplIG9mIGNvdW50ZXI2NCBzdHJ1Y3R1cmUgKG1heSBiZSB3cm9uZyBvbiA2NC1iaXQgYm94ZXMpCgoyMDA3LTAxLTExIDIyOjEzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zeXN0ZW0uYwo6CgogICBDSEFOR0VTOiBzbm1wbGliOiBsaWJyYXJ5IGxheWVyaW5nIGltcHJvdmVtZW50czogaW50cm9kdWNlIG5ldHNubXBfbWt0ZW1wIHRvIHByZXZlbnQgbGlibmV0c25tcGFnZW50IGZyb20gZGVwZW5kaW5nIG9uIGxpYm5ldHNubXBtaWJzCgoyMDA3LTAxLTExIDIxOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYywgc25tcElQWERvbWFpbi5jCiwgc25tcFNURERvbWFpbi5jLCBzbm1wVENQRG9tYWluLmMsCiAgICAgc25tcFRDUElQdjZEb21haW4uYywgc25tcFVEUERvbWFpbi5jLAogICAgIHNubXBVRFBJUHY2RG9tYWluLmMsIHNubXBfc2VydmljZS5jLAogICAgIHNubXBfdHJhbnNwb3J0LmM6CgogICBQYXRjaCBmcm9tIE1hZ251cyBGcm9tcmVpZGUgdG8gbWFrZSB0aGUgdHJhbnNwb3J0IHN5c3RlbXMgQysrIGNvbXBhdGlibGUKCjIwMDctMDEtMTEgMDk6MTcgIGR0czEyCgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBGaXggc29tZSBtYW5nbGVkIHRleHQuCgoyMDA3LTAxLTEwIDIwOjU4ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC44LmRlZjoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IEJVRzogMTYxNDEwNDogYnJva2VuIHNubXBkKDgpIG1hbnVhbCBwYWdlIGluIDUuNAoKMjAwNy0wMS0wOSAyMTo1MCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBJRi1NSUIgZml4OiBhZGQgbWlzc2luZyByZXR1cm4gYXQgZW5kIG9mIGdldF9pZl9zdGF0cwoKMjAwNy0wMS0wNyAxOTo0NyAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmg6CgogICBhZGQgbWlzc2luZyBkZWNsYXJhdGlvbiBmb3IgbmV0c25tcF9yZWdpc3Rlcl9zZXJ2aWNlX2hhbmRsZXJzIChmcm9tIG1hZ2ZyKQoKMjAwNy0wMS0wNiAwMDo1NCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBCVUc6IDE2MjYxNTM6IG5vIGhyU1dSdW4gaW5mb3JtYXRpb25zIG9uIFNvbGFyaXMgem9uZXMKICAgUGF0Y2ggcHJvdmlkZWQgYnkgS2xhdXMgTXVlaGxmZWxkCgoyMDA3LTAxLTA2IDAwOjM0ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOiBCVUc6IDE0NTA2Njk6IFBBVENIOiAxNjI3OTQ5OiBmcm9tIG1hcnRpbjk4NzogYSBwZXJsIGFnZW50eCBjb25zdW1lcyBtZW1vcnkKCjIwMDctMDEtMDMgMjI6NDIgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBnZXQgcmlkIG9mIEMrKyBjb21tZW50cwoKMjAwNy0wMS0wMyAyMjoyMyAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnhzLCB0L2NvbmYudDoKCiAgIGNsZWFuIHVwIGNvbXBpbGUgYW5kIGZpeCB0ZXN0cy4KICAgQmFja3BvcnQgZnJvbSA1LjUuZGV2CgoyMDA3LTAxLTAyIDIyOjUzICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQlVHOiBDb3Zlcml0eSAjMTc4OiBuZXZlciBwYXNzIGEgTlVMTCBvaWRfYXJyX2xlbiBwb2ludGVyIHRvIF9fY29uY2F0X29pZF9zdHIgKHdoaWNoIGRlcmVmZXJlbmNlcyBpdCkKCjIwMDctMDEtMDIgMjI6MDggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgQlVHOiBDb3Zlcml0eSAjMTkzOiBwcm9wZXJseSBpbml0aWFsaXplIHNlc3Npb24gcG9pbnRlciBiZWZvcmUgdXNlCgoyMDA3LTAxLTAyIDE2OjQ4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDE1ODI5NzI6IEhhbmRsZSBAd2hpbGVAL0BlbmRAIHByb3Blcmx5LgogICBQYXRjaCBwcm92aWRlZCBieSBEb3VnbGFzIERlYW4KCjIwMDctMDEtMDIgMTY6MDAgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMKLCBzbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAxNjAwMTcxOiBTdXBwb3J0IGxvbmdlciBjb21tdW5pdHkgc3RyaW5ncyBpbiBWQUNNIGNvbmZpZy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgUm9iZXJ0IFdpbGNveAoKMjAwNy0wMS0wMiAxMToyNCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTU0NjgxNzogRml4IHNubXBFbnRlcnByaXNlIHZhcmJpbmQgd2hlbiBmb3J3YXJkaW5nIHYxIHRyYXBzLgogICBQYXRjaCBwcm92aWRlZCBieSBQYWJsbyBQYXNzZXJhLgoKMjAwNy0wMS0wMiAxMDozOCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE2MjUxMzU6IGNvbmZpZ3VyZSBsb2NhdGlvbiBvZiBweXRob24gaW50ZXJwcmV0ZXIKICAgUHJvdmlkZWQgYnkgQW5kcmV3IExhbmdtZWFkCgoyMDA3LTAxLTAyIDEwOjM4ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wOgoKICAgTkVXUzogY29uZmlndXJlOiBQQVRDSCAxNjI1MTM1OiBjb25maWd1cmUgbG9jYXRpb24gb2YgcHl0aG9uIGludGVycHJldGVyCiAgIFByb3ZpZGVkIGJ5IEFuZHJldyBMYW5nbWVhZAoKMjAwNy0wMS0wMSAxNzo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjAxMTg4LCBCVUc6IDE2MDA0MzI6IEhhbmRsZSBzaWduYWxzIHByb3Blcmx5IHdoZW4gcmVzdGFydGluZyB0aGUgYWdlbnQuCiAgIEZpeCBwcm92aWRlZCBieSBMb2ljIERvbWFpZ25lLgoKMjAwNy0wMS0wMSAxNjoxMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgTkVXUzogc25tcGxpYjogUEFUQ0hFUyAxNTkyNzA2OiBGaXggbWVtb3J5IGxlYWsgd2hlbiBjbG9uaW5nIHZhcmJpbmRzLgogICBQYXRjaCBieSBTdGV2ZW4gRG9yaWdvdHRpLgoKMjAwNy0wMS0wMSAxNToyOSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNTQ4NjcwOiBGaXggcmFuZ2UgY2hlY2tzIGZvciB1bnNpZ25lZCBpbnRlZ2VycwogICBGcm9tIEtldmluIEh1bXBocmllcy4gU2VlIGh0dHA6Ly9idWdzLmRlYmlhbi5vcmcvY2dpLWJpbi9idWdyZXBvcnQuY2dpP2J1Zz0zODMzODAKCjIwMDctMDEtMDEgMTU6MTYgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wZGYuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jCiwgc25tcHNldC5jOgoKICAgTW92ZSBnbG9iYWwgJ2ZhaWx1cmVzJyB2YXJpYWJsZSBjbG9zZXIgdG8gd2hlcmUgaXQgaXMgdXNlZC4KICAgQ0hBTkdFUzogYXBwczogUEFUQ0g6IDE1Mjk1MjM6IENsb3NlIFNOTVAgc2Vzc2lvbiBvbiBmYWlsdXJlLgoKMjAwNy0wMS0wMSAxNDozOCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3NlcnZpY2UuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBwb3RlbnRpYWwgZG91YmxlIGRlbGV0ZS4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWFnbnVzIEZyb21yZWlkZS4KCjIwMDctMDEtMDEgMTE6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIEVuc3VyZSBzeXNPUkRlc2NyaXB0aW9ucyBhcmUgbnVsbC10ZXJtaW5hdGVkLCBzbyB0aGV5IGNhbiBiZQogICBzYWZlbHkgcGFzc2VkIHRvICdzdHJkdXAoKScuICBSZXBvcnRlZCBieSBXb2xmZ2FuZyBQZWRvdC4KCjIwMDYtMTItMjggMjM6MjkgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTYxNjkxMjogZnJvbSAiTWFnbnVzIEZyb21yZWlkZSI6IGZpeCBtZW1vcnkgbGVhayBpbiBzbm1wX3VkcF90cmFuc3BvcnQKCjIwMDYtMTItMjggMjM6MDAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ0hBTkdFUzogU29sYXJpczogUEFUQ0g6IDE2MjM0NDc6IGZyb20gIkhydm9qZSBIYWJqYW5pYyI6IGhyU1dSdW4gZml4OiA8ZXhpdGVkPiBpbnN0ZWFkIG9mIGVuZE9mVGFibGUgZm9yIHRlcm1pbmF0ZWQgcHJvY2Vzc2VzCgoyMDA2LTEyLTI3IDE5OjE3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIGZpeCBleHRlcm5hbCByZWZlcmVuY2UgdG8gTkVUU05NUF9LTE9PS1VQIG9uIEhQLVVYIDEwLjIwIChtYXliZSBvdGhlcnMpCgoyMDA2LTEyLTI2IDE2OjUyICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwosIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBXaW4zMjogUEFUQ0g6IDE2MjIwODA6IGZyb20gR3J1ZW5pbmdlciBBOiBwYXNzIFdpbjMyIGhhbmRsZXMgcmVtYWluIG9wZW4uCgoyMDA2LTEyLTE3IDE4OjAxICBhbGV4X2IKCiAgICogd2luMzIvOiBNYWtlZmlsZS1hcHBzLmluLCBsaWJzbm1wX2RsbC9NYWtlZmlsZS5pbgosIHNubXBkL01ha2VmaWxlLmluLCBzbm1wZHNkay9NYWtlZmlsZS5pbgosIHNubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICAgIHNubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIEFkZCBnZGkzMi5saWIgdG8gZml4IGxpbmtpbmcgcHJvYmxlbSB3aGVuIHVzaW5nIHRoZSBzdGF0aWMgdmVyc2lvbiBvZiB0aGUKICAgU1NMIGxpYnJhcmllcy4gIFRoYW5rcyB0byBTaW1vbiBFZHdhcmRzIGZvciB0aGUgZml4LgoKMjAwNi0xMi0xNyAxNjo1MSAgYWxleF9iCgogICAqIEZBUToKCiAgIFVwZGF0ZSBXaW5kb3dzIGluZm8gaW4gdGhlIEZBUQoKMjAwNi0xMi0xMiAyMzo1MyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMKLCBocl9zd2luc3QuYzoKCiAgIENIQU5HRVM6IExpbnV4OiBQQVRDSDogMTU4MTI5NDogZnJvbSAiTWljaGFlbCBUYXRhcmlub3YiOiBob3N0LXJlc291cmNlcyBpbXByb3ZlbWVudHMKCjIwMDYtMTItMTIgMjE6MjcgIHRhbmRlcnMKCiAgICogd2luMzIvbmV0LXNubXAvOiBuZXQtc25tcC1jb25maWcuaCwKICAgICBuZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJlLWFkZCBVRFBfQUREUkVTU0VTX0lOX0hPU1RfT1JERVIKCjIwMDYtMTItMTIgMjE6MDEgIHRhbmRlcnMKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBzeW5jIHdpdGggd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKCjIwMDYtMTItMTIgMjA6MzEgIHRhbmRlcnMKCiAgICogd2luMzIvQ29uZmlndXJlOgoKICAgQ0hBTkdFUzogV2luMzI6IGZpeCB3aW4zMi9Db25maWd1cmUgLS13aXRoLWlwdjYKCjIwMDYtMTItMTIgMTg6MjEgIHRhbmRlcnMKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBORVdTOiBXaW4zMjogZml4IEFFUyBzdXBwb3J0CgoyMDA2LTEyLTEyIDAzOjAxICBhbGV4X2IKCiAgICogbG9jYWwvRkFRMkhUTUw6CgogICBBZGQgdmVyc2lvbiB0byBGQVEuaHRtbC4KCjIwMDYtMTItMDkgMDA6MTYgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBkYXJ3aW44LmgsIGRhcndpbjkuaAo6CgogICBDSEFOR0VTOiBNYWNPU1g6IFBBVENIOiAxNjAwNDUzOiBmcm9tICJDaHJpcyBKYWxiZXJ0IjogT1MgWCBjb21waWxlLXRpbWUgZW5kaWFuIGRldGVybWluYXRpb24KCjIwMDYtMTItMDggMjI6MjAgIHRhbmRlcnMKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIGZpeCBkaXN0L01ha2VmaWxlIG11bmdpbmcKCjIwMDYtMTItMDggMTQ6MzAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYzoKCiAgIE5FV1M6IEJVRzogMTYxMTUyNDogZml4IHRjcCBjb25uZWN0aW9uIHRhYmxlIGZkIGxlYWsKCjIwMDYtMTItMDcgMTU6NTYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvOiBjcHUuaCwgY3B1L2NwdV9tYWNoLmMKLCBjcHUvY3B1X21hY2guaDoKCiAgIE5FV1M6IE1hY09TWDogUEFUQ0g6IDE2MDA1MjI6IGZyb20gIkJpbGwgRmVubmVyIjogQ1BVIEhBTCBpbXBsZW1lbnRhdGlvbiBmb3IgbWFjaC9kYXJ3aW4KCjIwMDYtMTItMDcgMTU6NTQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9tYWNoLmM6CgogICBmaWxlIGNwdV9tYWNoLmMgd2FzIGFkZGVkIG9uIGJyYW5jaCBWNS00LXBhdGNoZXMgb24gMjAwNi0xMi0wNyAxNTo1NjozOCArMDAwMAoKMjAwNi0xMi0wNyAxNTo1NCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X21hY2guaDoKCiAgIGZpbGUgY3B1X21hY2guaCB3YXMgYWRkZWQgb24gYnJhbmNoIFY1LTQtcGF0Y2hlcyBvbiAyMDA2LTEyLTA3IDE1OjU2OjM4ICswMDAwCgoyMDA2LTEyLTA3IDEzOjEwICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogUEFUQ0g6IDE2MDQ1ODA6IFNOTVAoMykgbWFudWFsIHBhZ2UgY29ycmVjdGlvbnMgKHNwb3R0ZWQgYnkgdGVrLW9wcykKCjIwMDYtMTItMDYgMTU6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBhZGQgbmVlZGVkIGhlYWRlcgoKMjAwNi0xMi0wNiAxNToxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgTkVXUzogc25tcGQ6IEJVRzogMTU1ODgyMzogZml4IGlwQWRkcmVzc1RhYmxlIG1lbW9yeSBsZWFrCgoyMDA2LTEyLTA2IDE1OjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYywKICAgICBpcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYzoKCiAgIE5FV1M6IEJVRzogMTU5NjYzODogbWVtb3J5IGxlYWsgaW4gaXBDaWRyUm91dGVUYWJsZSwgaW5ldENpZHJSb3V0ZVRhYmxlCgoyMDA2LTEyLTA2IDE0OjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgdHdlYWsvYWRkIGRlYnVnIG1zZ3MgaW4gbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2lvY3RsX2lmaW5kZXhfZ2V0CgoyMDA2LTEyLTA1IDIzOjQ3ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzoKCiAgIGZpeCBkZWJ1ZyBtZXNzYWdlCgoyMDA2LTEyLTA1IDIzOjI4ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogQlVHOiAxNjAwMDkzOiBhdXRvY29uZiAyLjYwIGJyZWFrcyB0aGUgYnVpbGQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjQucmMzIC0+IFY1LjQKCjIwMDYtMTEtMjQgMDk6NDQgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG5ldHNubXBfYWdlbnRfdHJhcC4zLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY2FsbGJhY2suMywKICAgICBuZXRzbm1wX2NvbnRhaW5lci4zLCBuZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBuZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBuZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMKLCBuZXRzbm1wX3RhYmxlX3Jvd3MuMywgbmV0c25tcF90ZGF0YS4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTExLTI0IDA5OjQzICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40ICkKCjIwMDYtMTEtMjQgMDk6MTkgIGhhcmRha2VyCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIHBhdGNoIGZyb20gQWxleCBCdXJnZXIgdG8gZml4IE1TVkMgaXNzdWVzCgoyMDA2LTExLTI0IDA4OjA5ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIHRoZSBDT0RJTkcgc2VjdGlvbi4KICAgSSdtIHN1cmUgdGhlcmUgYXJlIG1vcmUgY2hhbmdlcyB0aGF0IGNvdWxkIHVzZWZ1bGx5IGJlIG1hZGUsCiAgIGJ1dCBMaWZlJ3MgVG9vIFNob3J0LiAgIE9LLCBXZXMgLSBpdCdzIGFsbCB5b3Vycy4uLi4KCjIwMDYtMTEtMjQgMDc6MzggIGR0czEyCgogICAqIFJFQURNRToKCiAgIFR3ZWFrIHdlYiBsaW5rcyBzbGlnaHRseSwgYW5kIG1lbnRpb24gdGhlIFdpa2kuCgoyMDA2LTExLTI0IDA3OjA5ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgZG9jIHVwZGF0ZSBiYXNlZCBvbiBwZXJsIGNoYW5nZXMKCjIwMDYtMTEtMjQgMDY6MjYgIGR0czEyCgogICAqIEZBUToKCiAgIERyb3Agb2Jzb2xldGUgZW50cmllcy4KCjIwMDYtMTEtMjQgMDY6MjMgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gdGhlIENPTVBJTElORyBzZWN0aW9uLgoKMjAwNi0xMS0yNCAwNjowMiAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byB0aGUgcmVzdCBvZiB0aGUgQUdFTlRTIHNlY3Rpb24uCgoyMDA2LTExLTI0IDA1OjQxICBkdHMxMgoKICAgKiBGQVE6CgogICBDb21taXQgcmV2aXNpb25zIHRvIHRoZSBNSUJTIGFuZCAobW9zdCBvZikgdGhlIEFHRU5UUyBzZWN0aW9ucy4KICAgNDMgcGFnZXMgZG93biwgMTggdG8gZ28uLi4uCgoyMDA2LTExLTI0IDA1OjEzICB0YW5kZXJzCgogICAqIEZBUToKCiAgIGFkZCBzb21lIG1vcmUgd29ya2luZyBwbGF0Zm9ybXM7IHBlcmwgLT4gUGVybAoKMjAwNi0xMS0yNCAwMzoyMSAgZHRzMTIKCiAgICogRkFROgoKICAgUmV2aXNpb24gb2YgdGhlIGZpcnN0IHRocmVlIHNlY3Rpb25zIChHRU5FUkFMLCBBUFBMSUNBVElPTlMsIFBFUkwpLgogICBQcm9iYWJseSByYWNpbmcgYSBsb3NpbmcgYmF0dGxlIGFnYWluc3QgcGFja2FnaW5nIHRoZSB1cGNvbWluZyByZWxlYXNlIQoKMjAwNi0xMS0yMyAxOTozMCAgdGFuZGVycwoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIHVwZGF0ZXMgYW5kIGNsZWFudXAgZm9yIDUuNAoKMjAwNi0xMS0yMyAxNzoxMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUUuc211eDoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IFBBVENIOiAxNjAxMjYxOiBmcm9tICJTdGVwaGVuIEouIEZyaWVkbCI6IHVwZGF0ZSBSRUFETUUuc211eAoKMjAwNi0xMS0yMyAxNjozOCAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBDSEFOR0VTOiBtaXNjOiBSUE0gc3BlYyBmaWxlIGZpeGVzIGZvciA2NC1iaXQgcGxhdGZvcm1zCgoyMDA2LTExLTIzIDAxOjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIFJlbW92ZSBpcnJlbGV2YW50IGNvbW1lbnRzIChsZWZ0IG92ZXIgZnJvbSB0aGUgZGV2ZWxvcG1lbnQgcGhhc2UpLgoKMjAwNi0xMS0yMiAxNjowNiAgaGFyZGFrZXIKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIHVzZSAtLXdpdGhvdXQgZm9yIHBlcmwgbm93IGlmIG9mZgoKMjAwNi0xMS0yMiAxNTo1NCAgaGFyZGFrZXIKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIGZpbmFsIHZlcmlzb24gY2hhbmdlCgoyMDA2LTExLTIyIDE1OjI1ICB0YW5kZXJzCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIHJldmVydCB0byBjb3JyZWN0IHZlcnNpb24KCjIwMDYtMTEtMjIgMTU6MjMgIHRhbmRlcnMKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSByZW1vdmUgYmFkIHBhdGNoIHJlZmVyZW5jZQogICAtIGVuYWJsZSBQZXJsIGJ5IGRlZmF1bHQsIGJ1dCBhbGxvdyBmb3IgLS13aXRob3V0IHBlcmxfbW9kdWxlc3xlbWJlZGRlZF9wZXJsCiAgIC0gYWRkIG5ldHNubXBfIHByZWZpeCBmb3IgbG9jYWwgZGVmaW5lcwoKMjAwNi0xMS0yMiAwODo0OSAgZHRzMTIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgQ2xhcmlmaWNhdGlvbiBvZiB0aGUgYmVoYXZpb3VyIG9mIG9iamVjdHMgaW4gdGhlIG1lbW9yeSAmIHN5c3RlbVN0YXRzIGdyb3VwcywKICAgYW5kIG9iamVjdHMgdXNlZCBmb3IgcmVwb3J0aW5nL2ZpeGluZyBlcnJvcnMuCgoyMDA2LTExLTIyIDA3OjA3ICBoYXJkYWtlcgoKICAgKiBtYW4vOiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbjoKCiAgIG1hbmFsaWFzIGFsd2F5cy1tYWRlIGZpeDsgbm93IHRvdWNoZXMgYSB0ZW1wIGZpbGUgKGFuZCBjbGVhbnMgbGF0ZXIpCgoyMDA2LTExLTIyIDA1OjI1ICB0YW5kZXJzCgogICAqIC5jdnNpZ25vcmU6CgogICBhZGQgbmV3ICdtaycgc3ViZGlyCgoyMDA2LTExLTIyIDA1OjI0ICB0YW5kZXJzCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgYWRkIG5ldyBtYW51YWwgcGFnZXMKCjIwMDYtMTEtMjIgMDU6MDMgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTU5ODk2NjogZnJvbSAiUGV0ZXIgRWNrZWwiOiBGaXggYnVnICMxNTk4OTI3OiAjZWxpZiBidWlsZCBmaXgKCjIwMDYtMTEtMjIgMDQ6NTggIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0g6IDE1OTg5Njg6IGZyb20gIlBldGVyIEVja2VsIjogRml4IGJ1ZyAjMTU4Nzc1OTogc25tcHRyYXBkIGRvZXNuJ3QgcmVjb2duaXplIC1BIG9wdGlvbgoKMjAwNi0xMS0xOCAwOTo1NiAgbWFyegoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgZml4ZXMgZm9yIE5vbmUgcmV0dXJuIHRweWUgYW5kIG9jdGV0IHZhbCBoYW5kbGluZwoKMjAwNi0xMS0xOCAwNzoyOCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCiwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucmMzICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjQucmMyIC0+IFY1LjQucmMzCgoyMDA2LTExLTE4IDA3OjE0ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBuZXRzbm1wX2FnZW50X3RyYXAuMywgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBuZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbmV0c25tcF9jb250YWluZXIuMywgbmV0c25tcF9kYXRhX2xpc3QuMywKICAgICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLAogICAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3N0YXNoX3RvX25leHQuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9nZW5lcmljLjMsCiAgICAgbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zCiwgbmV0c25tcF90YWJsZV9yb3dzLjMsIG5ldHNubXBfdGRhdGEuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNi0xMS0xOCAwNzoxMyAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5yYzMgKQoKMjAwNi0xMS0xOCAwNjozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBmaXggbWlzc2luZyBtZW1DYWNoZWQuMCBwYXRjaCBmcm9tIFRob21hcyBBbmRlcnMKCjIwMDYtMTEtMTYgMjA6NDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHBhdGNoIGZyb20gVGhvbWFzIEFuZGVycyB0byBmaXggcGVybCBDQyBleHRyYWN0aW9uIHRvIGFsbG93IGZvciBwYXRocwoKMjAwNi0xMS0xNiAyMDo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgcGF0Y2ggZnJvbSBUaG9tYXMgQW5kZXJzIHRvIGZpeCBwZXJsIENDIGV4dHJhY3Rpb24gdG8gYWxsb3cgZm9yIHBhdGhzCgoyMDA2LTExLTE2IDEzOjM4ICB0YW5kZXJzCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGFkZCBuZXcgbWFudWFsIHBhZ2VzIHRvIHRoZSBidWlsZCBwcm9jZXNzCgoyMDA2LTExLTE2IDAxOjM2ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBwcm9wZXJseSBwcm90ZWN0IG5saXN0IGNvZGUgdG8gZml4IGJ1aWxkIGlzc3VlcyB3LyAtLXdpdGhvdXQta21lbS11c2FnZQoKMjAwNi0xMS0xNSAxNjoyMiAgdGFuZGVycwoKICAgKiBtYW4vOiBlbmNvZGVfa2V5Y2hhbmdlLjEuZGVmLCBmaXhwcm9jLjEuZGVmLAogICAgIG1pYjJjLXVwZGF0ZS4xLmRlZiwgbmV0LXNubXAtY29uZmlnLjEuZGVmLAogICAgIHRrbWliLjEuZGVmLCB0cmFwdG9lbWFpbC4xLmRlZjoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IEJVRzogMTU3NzkxMzogYWRkIG1pc3NpbmcgbWFudWFsIHBhZ2VzIGZvciBleGVjdXRhYmxlcywgc3VwcGxpZWQgYnkgRGViaWFuCgoyMDA2LTExLTE1IDE1OjM1ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wbmV0c3RhdC4xLmRlZjoKCiAgIFVwZGF0ZSB0byB0aGUgbmV3IHN5bnRheCBvZiB0aGUgc25tcG5ldHN0YXQgcmV3cml0ZS4gSW5zcGlyZWQgYnkgRGViaWFuLgoKMjAwNi0xMS0xNSAxNDo0NSAgdGFuZGVycwoKICAgKiBtYW4vc25tcHNldC4xLmRlZjoKCiAgIGZvcm1hdCBmaXggKGZyb20gRGViaWFuIHBhdGNoIDA3X2RvY2ZpbGVzLnBhdGNoKQoKMjAwNi0xMS0xNSAxMTozNSAgdGFuZGVycwoKICAgKiBtYW4vc25tcF90cmFwX2FwaS4zLmRlZjoKCiAgIFB1dCBkZXNjcmlwdGlvbiBvbiBhIHNpbmdsZSBsaW5lLiBUYWtlbiBmcm9tIERlYmlhbiBwYXRjaCAwN19kb2NmaWxlcy5wYXRjaAoKMjAwNi0xMS0xNCAxNjowMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9ubGlzdC5jOgoKICAgRml4IGluaXRpYWxpc2F0aW9uIHByb2JsZW0gKHdoaWNoIHJlc3VsdHMgaW4gdGhlIGFnZW50IGZhaWxpbmcKICAgdG8gc3RhcnQgb24gRnJlZUJTRCBzeXN0ZW1zLCB3aGVuIHJ1biBhcyBhbiB1bnByaXZpbGVnZWQgdXNlcikuCgoyMDA2LTExLTE0IDE1OjQ0ICB0YW5kZXJzCgogICAqIGRvYy9yZmMvc21pVjIvcmZjMjU3OS5lcnJhdGF+OgoKICAgZG8gd2UgYWdyZWUgdG8gbm90IHNoaXAgZWRpdG9yIGJhY2t1cCBjb3BpZXM/CgoyMDA2LTExLTE0IDAzOjE4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgdWRwVGFibGUgcmVxdWlyZXMgL2Rldi9rbWVtIGFjY2VzcyBvbiBJUklYIGFuZCBUcnU2NCBVbml4CgoyMDA2LTExLTE0IDAxOjU2ICB0YW5kZXJzCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE1OTYwMjg6IGZyb20gIlN0ZXBoZW4gSi4gRnJpZWRsIjogY29uc3QgZml4ZXMgZm9yIHRoZSBtaWJfYXBpKDMpIG1hbnVhbCBwYWdlCgoyMDA2LTExLTEzIDE2OjE3ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvdGVzdC5wbDoKCiAgIENIQU5HRVM6IHBlcmw6IG1ha2UgcGVybHRlc3QgZml4ZXMgZm9yIFNvbGFyaXMgMi42IGFuZCBlYXJsaWVyCgoyMDA2LTExLTEzIDE1OjU0ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgTkVXUzogcGVybDogU05NUC5wbSBmaXhlcyBmb3IgNjQtYml0IHBsYXRmb3JtcwoKMjAwNi0xMS0xMyAxNTo0OSAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvdC9idWxrd2Fsay50OgoKICAgQ0hBTkdFUzogcGVybDogbWFrZSBwZXJsdGVzdCBmaXhlcyBmb3IgSFAtVVgKCjIwMDYtMTEtMTMgMTU6MjYgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC90ZXN0LnBsOgoKICAgRHJvcCBEYXRhOjpEdW1wZXIgc2luY2UgUGVybCA1LjAwNDA1IGFzIHNoaXBwZWQgd2l0aCBJUklYIDYuNSBkb2Vzbid0IGluY2x1ZGUgaXQuCgoyMDA2LTExLTEzIDE0OjUxICB0YW5kZXJzCgogICAqIHBlcmwvT0lEL3Rlc3QucGw6CgogICBEcm9wIHVubmVlZGVkIGRlcGVuZGVuY3kgb24gRGF0YTo6RHVtcGVyLgoKMjAwNi0xMS0xMyAxNDo0NiAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvdC9idWxrd2Fsay50OgoKICAgQ0hBTkdFUzogcGVybDogbWFrZSBwZXJsdGVzdCBmaXhlcyBmb3IgSVJJWAoKMjAwNi0xMS0xMiAxNzo1MyAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvTWFrZWZpbGUtYXBwcy5pbiwKICAgICB3aW4zMi9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvc25tcGRzZGsvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiwgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlIHdhcm5pbmdzIGFib3V0IGNvbXBpbGluZyB3aXRoIHRoZSBTTk1QIGxpYnJhcnkgRExMLgoKMjAwNi0xMS0xMCAwMzoyNCAgdGFuZGVycwoKICAgKiBSRUFETUUub3NYOgoKICAgcmVtb3ZlIC0tZW5hYmxlLW1pbmktYWdlbnQgcmVjb21tZW5kYXRpb24gYmVjYXVzZSAtLXdpdGhvdXQta21lbS11c2FnZSBubyBsb25nZXIgcmVxdWlyZXMgaXQKCjIwMDYtMTEtMTAgMDE6MjEgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIFJlZmVyZW5jZSB0aGUgY29ycmVjdCBtYW4gcGFnZSBmb3Igc25tcF90cmFwX2FwaSBhbGlhc2VzLgogICBSZXBvcnRlZCBhbmQgZml4ZWQgYnkgQ2hyaXMgSmFsYmVydC4KCjIwMDYtMTEtMDggMDg6MjQgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4sCiAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5yYzIgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC5yYzEgLT4gVjUuNC5yYzIKCjIwMDYtMTEtMDggMDc6NTYgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG5ldHNubXBfYWdlbnRfdHJhcC4zLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY2FsbGJhY2suMywKICAgICBuZXRzbm1wX2NvbnRhaW5lci4zLCBuZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBuZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBuZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMKLCBuZXRzbm1wX3RhYmxlX3Jvd3MuMywgbmV0c25tcF90ZGF0YS4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTExLTA4IDA3OjU1ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40LnJjMiApCgoyMDA2LTExLTA4IDA3OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgUGF0Y2ggZnJvbSBSb2JlcnQgdG8gY2hlY2sgcHJvY2Vzc2VkIGZsYWcgYmVmb3JlIHByb2NlZWRpbmcKCjIwMDYtMTEtMDcgMTU6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgRml4IGR1cGxpY2F0ZSBjYXNlIHN0YXRlbWVudHMgKGFuZCBpbmRpY2F0ZSB3aGljaCBhcmUgdGhlIGRlcHJlY2F0ZWQgb2JqZWN0cykKCjIwMDYtMTEtMDcgMTQ6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgQ2xhcmlmeSBtZWFuaW5nIG9mIG1lbSpUZXh0IG9iamVjdHMgKGFuZCBkZWZpbmUgbmV3IGNvbnNpc3RlbnQgdmVyc2lvbnMpLgoKMjAwNi0xMS0wNyAwNjo1NCAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1UQy50eHQ6CgogICBhZGQgYSBtaXNzaW5nIHBhcmVuIHRvIGEgZGVzY3JpcHRpb24gZmllbGQKCjIwMDYtMTEtMDcgMDY6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLCBNYWtlZmlsZS5pbiwKICAgICBuZXQtc25tcC1jb25maWcuaW4sIGFnZW50L01ha2VmaWxlLmluOgoKICAgcGF0Y2ggdG8gZml4IHNlZCB1c2FnZSBvbiBzeXN0ZW1zIHdpdGggYSB2ZXJ5IG9sZCBzZWQKCjIwMDYtMTEtMDYgMTU6NTAgIHRhbmRlcnMKCiAgICogUkVBRE1FLmlyaXg6CgogICBtZW50aW9uIC0td2l0aG91dC1rbWVtLXVzYWdlCgoyMDA2LTExLTA2IDE1OjQzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaW50ZXJmYWNlcy5jLCBpcEFkZHIuYwosIGlwdjYuYywgdGNwVGFibGUuYywgdWRwVGFibGUuYywKICAgICB2YXJfcm91dGUuYzoKCiAgIGltcHJvdmVkIGtsb29rdXAgZXJyb3IgaGFuZGxpbmcKCjIwMDYtMTEtMDYgMTU6NDEgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBSRUFETUUuYWl4LCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQva2VybmVsLmg6CgogICBDSEFOR0VTOiBzbm1wZDogYnVpbGQgZml4IGZvciAtLXdpdGhvdXQta21lbS11c2FnZQoKMjAwNi0xMS0wNiAwNzoxNiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQsCiAgICAgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIHNoIGRvZXNuJ3QgbGlrZSAiPT0iLCBvZiBjb3Vyc2UuCgoyMDA2LTExLTA2IDAzOjE2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldCwKICAgICBUMTIycHJveHlzZXRmYWlsOgoKICAgc2tpcCBwcm94eSB0ZXN0cyBmb3IgVENQIGJlY2F1c2UgdGhlIHByb3h5IGNvZGUgZG9lc24ndCBzdXBwb3J0IFRDUCB5ZXQKCjIwMDYtMTEtMDMgMTc6MzkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNThhZ2VudGF1dGh0cmFwLCBUMDY1YWdlbnRleHRlbmQsCiAgICAgVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgQ0hBTkdFUzogbWlzYzogIm1ha2UgdGVzdCIgZml4ZXMgZm9yIG5vbi1VRFAgdHJhbnNwb3J0cwoKMjAwNi0xMS0wMyAwODo0MCAgbWFyegoKICAgKiBweXRob24vbmV0c25tcC86IGNsaWVudC5weSwgY2xpZW50X2ludGYuYzoKCiAgIG1lbW9yeSBsZWFrIGZpeGVzIGZvciBweXRob24gaW50ZXJmYWNlCgoyMDA2LTExLTAyIDE1OjMwICB0YW5kZXJzCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgYWRkIG5ldyBtYW4gcGFnZSBhbGlhc2VzCgoyMDA2LTExLTAxIDE1OjUzICB0YW5kZXJzCgogICAqIENoYW5nZUxvZzoKCiAgIENoYW5nZUxvZyBzaGFsbCBvbmx5IGRvY3VtZW50IGNoYW5nZXMgb2YgdGhlIGJyYW5jaCBpdCdzIGNvbnRhaW5lZCBpbgoKMjAwNi0xMS0wMSAwODozNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIENIQU5HRVM6IEJVRzogMTU4NTgxNTogZml4IG1mZCBiaXRzIGxlbmd0aCBjYWxjdWxhdGlvbgoKMjAwNi0xMC0zMSAxNDoyOSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCiwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucmMxICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjQucHJlNCAtPiBWNS40LnJjMQoKMjAwNi0xMC0zMSAxMjo1MSAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMTAtMzEgMTI6NTEgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucmMxICkKCjIwMDYtMTAtMzEgMTI6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbC5oOgoKICAgcmVtb3ZlIHRoZSBrbG9va3VwIGRlZmluZSBhcyAoMCkgc2luY2UgRGF2ZSBmb3VuZCBkZWZpbml0ZSBzcG90cyB3aGVyZSB0aGlzIHdhcyB1bnNhZmUKCjIwMDYtMTAtMzEgMDc6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbC5oOgoKICAgUGF0Y2ggZnJvbSBUaG9tYXMgQW5kZXJzIHRvIGF0dGVtcHQgdG8gZml4IGxhY2sgb2Yga21lbSBzdXBwb3J0IGZvciB2YXJpb3VzIHBsYXRmb3JtcyB3aGVuIGttZW0gaXNuJ3QgYXZhaWxhYmxlCgoyMDA2LTEwLTMxIDA3OjI3ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBmaXggYSBwcm9ibGVtIHdpdGggdGhlIG1hbiBnZW5lcmF0aW9uIHBhdGNoIGFzIHBvaW50ZWQgb3V0IGJ5IENocmlzIEphbGJlcnQKCjIwMDYtMTAtMzEgMDc6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgbWlub3IgcGF0Y2ggZnJvbSBCcnVjZSBTaGF3IHRvIGZpeCBsbXNlbnNvcnMgMjQwIGNsYXNzIG1hY2hpbmVzCgoyMDA2LTEwLTMwIDEzOjQzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IG1lbVRvdGFsRnJlZSBzaG91bGQgcmVwb3J0IHRvdGFsIHZpcnR1YWwgaW5zdGVhZCBvZiBwaHlzaWNhbCBtZW1vcnkKCjIwMDYtMTAtMzAgMDk6NTIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9pcml4LmM6CgogICBtZW0gSEFMIGZpeGVzIGZvciBJUklYCgoyMDA2LTEwLTMwIDA3OjQwICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICB1c2UgZ2VuZXJhdGVkIGFsaWFzIG1hbiBwYWdlcwoKMjAwNi0xMC0yOCAxODoyMyAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEFkZGVkIC0tZGlzYWJsZS1lbWJlZGRlZC1wZXJsIC0td2l0aG91dC1wZXJsLW1vZHVsZXMgZm9yIE1pbkdXIC8gQ3lnd2luLgoKMjAwNi0xMC0yNyAxMzoxOSAgYWxleF9iCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgICB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLCB3aW4zMi9idWlsZC5wbCwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbiwgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4KLCB3aW4zMi9zbm1wZHNkay9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluCjoKCiAgIC1BbGxvdyBidWlsZGluZyBvZiBhcHBsaWNhdGlvbnMgd2l0aCBsaWJyYXJ5IERMTCBpbiBidWlsZC5iYXQgYnVpbGQgc3lzdGVtLgogICAtRml4IERMTCBleHBvcnQvaW1wb3J0IHZhcmlhYmxlcyBmb3IgbGlicmFyeSBETEwKCjIwMDYtMTAtMjcgMDc6NDcgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBmaXggd2Fsa2luZyBvZmYgb2YgYSBjbGlmZgoKMjAwNi0xMC0yNyAwNzozMiAgbWFyegoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnQucHk6CgogICBjbGllbnQucHkKCjIwMDYtMTAtMjcgMDI6MDQgIHRhbmRlcnMKCiAgICogbG9jYWwvc25tcC11Y2Quc2g6CgogICBDSEFOR0VTOiBtaXNjOiBCVUdTOiAxNTg1MjUwOiBkb24ndCB1c2UgZGVwcmVjYXRlZCBvcHRpb25zIGluIHN0YXJ0IHNjcmlwdAoKMjAwNi0xMC0yNiAxNzo1MCAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6ICBBZGQgYSBjb3VwbGUgREVCVUcgbGluZXMuCgoyMDA2LTEwLTI2IDE3OjE1ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBXaW4zMjogUkVBRE1FIHVwZGF0ZSwgYnVpbGQgc3RlcHMgdXBkYXRlLgoKMjAwNi0xMC0yNiAwOToyMSAgdGFuZGVycwoKICAgKiBDb2RpbmdTdHlsZToKCiAgIG1pbm9yIHVwZGF0ZXMKCjIwMDYtMTAtMjYgMDQ6MTQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtaW5vciBmaXhlcyBmb3IgImNvbmZpZ3VyZSAtLWhlbHAiIG91dHB1dCwgZXNwZWNpYWxseSBmb3IgTUlCIG1vZHVsZXMKCjIwMDYtMTAtMjYgMDM6MjQgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBkYXJ3aW44LmgsIGRhcndpbjkuaDoKCiAgIENIQU5HRVM6IE1hY09TWDogYnVpbGQgZml4IGZvciBtaWJJSS91ZHBUYWJsZQoKMjAwNi0xMC0yNSAxMTo1MSAgYWxleF9iCgogICAqIHdpbjMyL25ldC1zbm1wLzogbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIE5FVFNOTVBfIHByZWZpeCBtaXNzaW5nIGZvciBPUEVOU1NMLgoKMjAwNi0xMC0yNSAwOToxNiAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHBlcmwvT0lEL09JRC54cywKICAgICBwZXJsL1NOTVAvUkVBRE1FLCBwZXJsL1NOTVAvU05NUC54cywKICAgICBwZXJsL2FnZW50L2FnZW50LnhzLCBzbm1wbGliL21pYi5jLAogICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogcmVuYW1lIGluaXRfbWliIHRvIG5ldHNubXBfaW5pdF9taWIgdG8gYXZvaWQgc3ltYm9sIGNsYXNoIHdpdGggSFAtVVgncyBsaWJubQoKMjAwNi0xMC0yMyAxNDowMCAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgQUlYIHNoaXBzIGhvc3QgYnkgZGVmYXVsdAoKMjAwNi0xMC0yMiAxODowMSAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIGh0bWxoZWxwL0RldmVsb3Blcl9GQVEuaHRtbCwgaHRtbGhlbHAvRkFRLmh0bWwsCiAgICAgaHRtbGhlbHAvc25tcC5jb25mLndpbjMyLmh0bWwsCiAgICAgaHRtbGhlbHAvc25tcGQuY29uZi53aW4zMi5odG1sLAogICAgIGh0bWxoZWxwL3NubXB0cmFwZC5jb25mLndpbjMyLmh0bWwsIGluc3RhbGxlci9uZXQtc25tcC5uc2kKOgoKICAgVXBkYXRlIFdpbmRvd3MgYmluYXJ5IGJ1aWxkIGZpbGVzLgoKMjAwNi0xMC0yMSAwOTo0MiAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMjoKCiAgIHdpbkV4dERMTCB1cGRhdGUuCgoyMDA2LTEwLTIxIDA5OjM2ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBSZWFkbWUgdXBkYXRlIGZvciB3aW5FeHRETEwsIGNoYW5nZSBjb21tYW5kIGxpbmUgZm9yIHdpbkV4dERMTC4KCjIwMDYtMTAtMjEgMDc6MDcgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIENvZGUgY2xlYW51cC4gIEFkZCBzdXBwb3J0IGZvciB4U25tcEV4dGVuc2lvblF1ZXJ5RXggZm9yIFNFVC9HRVRORVhULgoKMjAwNi0xMC0yMSAwNTo0NSAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6IHdpbkV4dERMTDogc25tcHNldCBzdHJpbmcsIERMTCBsb2FkaW5nIGFuZCBzbm1wd2FsayBmaXhlcy4KCjIwMDYtMTAtMjEgMDU6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS90ZXN0LnBsOgoKICAgcmVtb3ZlIG5vdC1leGlzdGVudCBTQlNNIGRlZmluaXRpb24gZnJvbSB0ZXN0IGNhc2VzCgoyMDA2LTEwLTIwIDE3OjE3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIHZlcnNpb24gdGFnICggNS40LnByZTQgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC5wcmUzIC0+IFY1LjQucHJlNAoKMjAwNi0xMC0yMCAxNjo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgUGF0Y2ggZnJvbSBBbmRlcnMgUGVyc3NvbiB0byBjaGFuZ2UgdF91c2NhbGFyX3QgdG8gc29tZXRoaW5nIG1vcmUgcG9ydGFibGUgKHVpbnQzMl90KQoKMjAwNi0xMC0yMCAxMzo0MyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGFnZW50L2RzX2FnZW50LmgsCiAgICAgbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CgogICBEb2N1bWVudCB0aGUgbmVlZCB0byB1cGRhdGUgdGhlIGNvcnJlc3BvbmRpbmcgcGVybCBpbnRlcmZhY2VzCiAgIHdoZW4gY2hhbmdlcyBhcmUgbWFkZS4KCjIwMDYtMTAtMjAgMDg6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIHVzZSBjcHVfbnVsbCBmb3IgYWxsIGRhcndpbiwgdW50aWwgY29kZSB3b3JrcwoKMjAwNi0xMC0yMCAwODoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1X25saXN0LmMsIGNwdV9zeXNjdGwuYwo6CgogICBDbGFyaWZ5IGNvbW1lbnRzIHRvIHJlZmxlY3QgcmVhbGl0eS4KCjIwMDYtMTAtMjAgMDg6MTMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1Lmg6CgogICBmaXggc3ludGF4IGVycm9yOyBtYWtlIHN1cmUgd2UgZ2V0IGNwdV9udWxsIGZvciBkYXJ3aW42LzcsIGNwdV9zeXNjdGwgZm9yIGRhcndpbjgrCgoyMDA2LTEwLTIwIDA3OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1Lmg6CgogICB1c2UgY3B1X251bGwgZm9yIGRhcndpbjcgYW5kIGRhcndpbjYKCjIwMDYtMTAtMjAgMDE6NDQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1Lmg6CgogICBvcGVuYnNkNCBhbmQgZGFyd2luIHNob3VsZCB1c2UgY3B1X3N5c2N0bAoKMjAwNi0xMC0xOSAyMjoxMCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMTAtMTkgMjI6MTAgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlNCApCgoyMDA2LTEwLTE5IDE2OjQ0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbmxpc3QuYzoKCiAgIGZpeCB1cCBoZWFkZXIgaW5jbHVzaW9uIGEgYml0CgoyMDA2LTEwLTE5IDE1OjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5Lmg6CgogICB0ZXN0IGZvciBkYXJ3aW5nIGJlZm9yZSBmcmVlYnNkLCBzaW5jZSBkYXJ3aW4gZGVmaW5lcyBmcmVlYnNkCgoyMDA2LTEwLTE5IDE0OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvOiBpZlhUYWJsZS5jLAogICAgIGlmWFRhYmxlX2RhdGFfYWNjZXNzLmMsIGlmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgZml4IGJyb2tlbiBiYWQgZXZpbCBpZlRhYmxlLmggdXNhZ2UKCjIwMDYtMTAtMTkgMTM6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLCBpZlRhYmxlLmgKLCBpZlRhYmxlX2RhdGFfYWNjZXNzLmMsIGlmVGFibGVfZGVmcy5oLAogICAgIGlmVGFibGVfaW50ZXJmYWNlLmM6CgogICBkb24ndCBsZXQgaWZUYWJsZS5oIHJlZGVmaW5lIHJhbmRvbSBzeW1ib2xzIGFmZmVjdGluZyBvdGhlciBjb2RlCgoyMDA2LTEwLTE5IDA4OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBsaWJoZWxwZXJzIGZyb20gdGhlIGxpbmsgbGluZSBvZiBsaWJhZ2VudHMKCjIwMDYtMTAtMTkgMDg6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeCB0cmFuc3BvcnQgc29jayBwYXRjaAoKMjAwNi0xMC0xOSAwNzoxNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBkYXJ3aW44LmgsIGRhcndpbjkuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTU3OTM2NDogZnJvbSBqYWxiZXJ0OiBVcGRhdGVkIGRhcndpbiBwYXRjaCB0byBmaXggY29tcGlsYXRpb24gb24gVGlnZXIgYW5kIExlYXBvcmQKCjIwMDYtMTAtMTggMTY6NTIgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiB3aW5FeHRETEw6ICBGaW5pc2ggYWRkaW5nIHN1cHBvcnQgZm9yIERMTHMgdGhhdCBzdXBwb3J0IG11bHRpcGxlCiAgIHJhbmdlcy4KCjIwMDYtMTAtMTggMTQ6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZUV2ZW50Q29uZi5jLAogICAgIG10ZUV2ZW50Q29uZi5oLCBtdGVPYmplY3RzQ29uZi5jLCBtdGVPYmplY3RzQ29uZi5oCiwgbXRlVHJpZ2dlckNvbmYuYywgbXRlVHJpZ2dlckNvbmYuaDoKCiAgIENsZWFubHkgaGFuZGxlIHJlLWxvYWRpbmcgIm1vbml0b3IiIChhbmQgcmVsYXRlZCkgZGlyZWN0aXZlcy4KCjIwMDYtMTAtMTggMTQ6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgSGFuZGxlIGludmFsaWQgcGF5bG9hZCBvYmplY3QgT0lEcy4KCjIwMDYtMTAtMTggMTI6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgQ2xlYW5seSBoYW5kbGUgcmUtbG9hZGluZyAiZXh0ZW5kIiBkaXJlY3RpdmVzLgoKMjAwNi0xMC0xOCAwNzo0NSAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICAtIHVzZXIgL3Vzci9iaW4vZW52IGZvciBwb3J0YWJpbGl0eQogICAtIG9ubHkgdGVzdCBmb3IgdGFyIGlmIHdlJ3JlIGdvaW5nIHRvIHVzZSBpdAoKMjAwNi0xMC0xOCAwMzoyOSAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IG5ldyBwYXNzX3BlcnNpc3QgZXJyb3IgbWVzc2FnZXMgaW50cm9kdWNlZCBieSBwYXRjaCAxNTY4MTUwCgoyMDA2LTEwLTE3IDIxOjE0ICBoYXJkYWtlcgoKICAgKiBSRUFETUUub3NYOgoKICAgdXBkYXRlIGZyb20gQ2hyaXMgSmFsYmVydAoKMjAwNi0xMC0xNyAyMDoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMsIGFnZW50X3JlZ2lzdHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMTU2NTcwMzogcGF0Y2ggdG8gZml4IHJhcGlkIHJlZ2lzdHJhdGlvbnMvZGVyZWdpc3RyYXRpb24gaXNzdWVzCgoyMDA2LTEwLTE3IDIwOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSCAxNTYyNjg4OiBmaXggcGluZy9yZWF0dGFjaCBhZ2VudHggY29kZQoKMjAwNi0xMC0xNyAyMDowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0ggMTU2MjE2ODogY2hlY2sgZm9yIGEgc29jayBmZCBsZXNzIHRoYW4gMC4KCjIwMDYtMTAtMTcgMTk6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwo6CgogICB1c2luZyB2Zm9yayBhbmQgbmFtZWQgcGlwZXM6IE5FV1M6IHNubXBkOiBQQVRDSDogMTU1MTk0ODogZnJvbSBhcHJvZW1lbDogTWFrZSBwYXNzX3BlcnNpc3QgdXNhYmxlIG9uIHVDbGludXgKCjIwMDYtMTAtMTcgMTk6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNTY4MTUwOiBmcm9tIGdhdmluX2hhbjogRXh0ZW5kIHBhc3NfcGVyc2lzdCBlcnJvciBtZXNzYWdlcyB0aGF0IGNhbiBiZSBwYXNzZWQgYmFjayBmcm9tIHRoZSBzY3JpcHQKCjIwMDYtMTAtMTcgMTk6MTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTU3MDY1MDogZnJvbSAiQmVub2l0IEFtaWF1eCI6IGNyZWF0ZSBhIGxvZ2dpbmcgc2h1dGRvd24gZnVuY3Rpb24gdG8gcHJvcGVybHkgY2xlYW4gdXAgbG9nIHJlZ2lzdHJhdGlvbnMgaWYgbmVlZGVkLgoKMjAwNi0xMC0xNyAxOTowNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNTcwNjUwOiBmcm9tICJCZW5vaXQgQW1pYXV4IjogbWFrZSBkZWxldGUgdGFibGUgZnVuY3Rpb24gcHVibGljCgoyMDA2LTEwLTE3IDE4OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAxNTc1OTM3OiBmcm9tIG1hcnRpbjk4NzogZml4IHVzZW51bWVyaWMgb3V0cHV0IGluIGFzeW5jIHZhcmJpbmRzIHNvIHRoZXkgcmV0dXJuIE9JRHMgaW5zdGVhZCBvZiBlbXB0eSBzdHJpbmdzLgoKMjAwNi0xMC0xNyAxODo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTU3NTk4NDogZnJvbSBydHlsZTogYmxvY2sgU0lHSFVQIGR1cmluZyByZWNvbmZpZwoKMjAwNi0xMC0xNyAxODozNCAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2dlbjoKCiAgIHJlbW92ZSBjb3JyZWN0IHN1YiBkaXJlY3RvcnkKCjIwMDYtMTAtMTcgMTg6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sCiAgICAgZGVmYXVsdF9zdG9yZS54cywgZ2VuLCB0ZXN0LnBsOgoKICAgdXBkYXRlIHRvIGxhdGVzdCBkc19hZ2VudC5oIGRlZmluZXMKCjIwMDYtMTAtMTcgMTY6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sIGRlZmF1bHRfc3RvcmUueHMKLCBnZW4sIHRlc3QucGw6CgogICBzdXBwb3J0IGxhdGVzdCBoMnhzOyBORVdTOiBwZXJsOiB1cGRhdGUgZGVmYXVsdF9zdG9yZSBtb2R1bGUgdG8gbGF0ZXN0IGRlZmF1bHRfc3RvcmUgYy1iaW5kaW5nIHRva2VucwoKMjAwNi0xMC0xNyAxNjowNSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICByZW1vdmUgY29uZmlnIGdlbmVyYXRlZCBmaWxlcyBvbiBhIG1ha2UgZGlzdGNsZWFuCgoyMDA2LTEwLTE3IDE1OjU1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KOgoKICAgcHJvcGVybHkgZml4IHRoZSBzZWQgaXNzdWVzIHdpdGhvdXQgcmVtb3ZpbmcgZnVuY3Rpb25hbGl0eSBieSB1c2luZyBmaWxlcyBpbnN0ZWFkIG9mIHNlZCBleHByZXNzaW9ucwoKMjAwNi0xMC0xNyAxNDowOCAgdGFuZGVycwoKICAgKiBhZ2VudC9rZXJuZWwuYzoKCiAgIG1ha2Uga2xvb2t1cCBkZWJ1Z2dpbmcgbGVzcyB2ZXJib3NlCgoyMDA2LTEwLTE3IDEzOjMyICB0YW5kZXJzCgogICAqIGFnZW50L2tlcm5lbC5jOgoKICAgYWRkIGtsb29rdXAgZGVidWdnaW5nCgoyMDA2LTEwLTE3IDEwOjM5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHN0aWxsIGJ1aWxkIGlmIGtlcm5lbCBzeW1ib2xzIHVuZGVmaW5lZAoKMjAwNi0xMC0xNyAwOToxNiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICBBc3NvY2lhdGUgZXJyb3JzIGZyb20gZGVsZWdhdGVkIHJlcXVlc3RzIHdpdGggdGhlIGNvcnJlY3QgdmFyYmluZCwKICAgYW5kIGZpeCBwcm9ibGVtcyB3aXRoIGZhaWxlZCBwcm94aWVkIHJlcXVlc3RzIHRpbWluZyBvdXQuCiAgIFJlcG9ydGVkIGJ5IFBhYmxvIFBhc3NlcmEgIChTZWUgY29kZXJzIGxpc3QgLSA1dGggT2N0IGZmKQoKMjAwNi0xMC0xNyAwOToxMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBORVdTOiBidWlsZDogLS1lbmFibGUtYXMtbmVlZGVkIHdpbGwgdHJ5IHRvIGxpbmsgYnVpbHQgbGlicmFyaWVzIGFnYWluc3QgbmVlZGVkIGxpYnJhcmllcyBhdCBsaWJyYXJ5IGxpbmsgdGltZSwgcmF0aGVyIHRoYW4gYXBwbGljYXRpb24gbGluayB0aW1lLgoKMjAwNi0xMC0xNyAwNzo1NSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSAnY29tcGlsZXIgb3B0aW9ucycgaGVhZGVyIGluIGhlbHAgb3V0cHV0CgoyMDA2LTEwLTE3IDA3OjI2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIGJhY2sgb3V0IGhvc3QvaHJfc3dydW4gcGFydCBvZiB0aGUgQUlYIGp1bWJvIHBhdGNoIHNpbmNlIGl0IG92ZXJ3cm90ZSBhIG1vcmUgY29tcGxldGUsIHdvcmtpbmcgaW1wbGVtZW50YXRpb24gd2l0aCBhIHNlZ2ZhdWx0aW5nIG9uZQoKMjAwNi0xMC0xNiAxNjozNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBDSEFOR0VTOiBJUklYOiBwcm9wZXIgaW1wbGVtZW50YXRpb24gZm9yIFVDRC1TTk1QLU1JQjo6bGFUYWJsZSAoYXZvaWRpbmcgbmxpc3QpCgoyMDA2LTEwLTE2IDExOjQzICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wLzogY2xpZW50LnB5LCB0ZXN0cy90ZXN0LnB5OgoKICAgbnVtZXJpYyBhbmQgT0lEIHNldHMgd2l0aCB0ZXN0aW5nCgoyMDA2LTEwLTE2IDA4OjU0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIGRpc2FibGluZyBubGlzdCBzaG91bGRuJ3QgZGlzYWJsZSBwZXJmc3RhdAoKMjAwNi0xMC0xNiAwODoyMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgZGVhbCB3aXRoIG1pc3NpbmcgQVJQVEFCX1NJWkVfU1lNQk9MCgoyMDA2LTEwLTE2IDA3OjU0ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29zZjUuaDoKCiAgIENIQU5HRVM6IFRydTY0OiAtIGZpeCAiYXV0b19ubGlzdCBmYWlsZWQgb24gYXJwdGFiX3NpemUgYXQgbG9jYXRpb24gMCIgZXJyb3JzCgoyMDA2LTEwLTE1IDE3OjIzICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogd2luRXh0RExMIGZpeGVzIGZvciBzbm1wd2FsayAvIHNubXBnZXRuZXh0LgoKMjAwNi0xMC0xNSAxNDo0NCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIERvbid0IG1vYW4gYWJvdXQgbm9ybWFsIGNvbm5lY3Rpb24tYmFzZWQgdHJhbnNwb3J0IGFjdGl2aXR5CiAgIChhbmQgKmRvKiBtb2FuIHNlbnNpYmx5IGFib3V0IGZhaWxlZCBzZW5kcykuCgoyMDA2LTEwLTE1IDE0OjQzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIFN0b3JlIFRDUC9JUHY0IGFkZHJlc3MgaW5mb3JtYXRpb24gaW4gdGhlIHNhbWUgZm9ybWF0IGFzIFVEUC9JUHY0LgogICBUaGlzIGFsbG93cyB0aGUgY29tbXVuaXR5IC0+IHNlY3VyaXR5IG5hbWUgbWFwcGluZyB0byB3b3JrIGNvcnJlY3RseS4KICAgRml4ZXMgQnVnICMxNTcxOTQ1LgogICAgICBBIGJldHRlciAobW9yZSBtb2R1bGFyKSBzb2x1dGlvbiB3b3VsZCBiZSBwcmVmZXJhYmxlIChzZWUgZGlzY3Vzc2lvbnMKICAgb24gdGhlIG1haWxpbmcgbGlzdHMpLCBidXQgdGhpcyBzaG91bGQgYXQgbGVhc3QgYWxsb3cgNS40IHRvIHByb2NlZWQuCgoyMDA2LTEwLTE1IDEwOjAzICB0YW5kZXJzCgogICAqIGFnZW50L2tlcm5lbC5oOgoKICAga2xvb2t1cCB0YWtlcyB0aHJlZSBhcmd1bWVudHMsIG5vdCBvbmUKCjIwMDYtMTAtMTQgMTQ6MjggIHRhbmRlcnMKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIGtlcm5lbC5oLAogICAgIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgbWliZ3JvdXAvbWliSUkvYXQuYywKICAgICBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL21pYklJL2lwQWRkci5jCiwgbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBtaWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgICBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIHByZXBhcmUgZm9yIDY0LWJpdCBubGlzdCBjaGFuZ2VzCgoyMDA2LTEwLTE0IDEwOjM3ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogd2luRXh0RExMOiAgRml4IE9JRCBzZXRzLCBtZW1vcnkgbGVha3MuCgoyMDA2LTEwLTE0IDA2OjQ5ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogd2luRXh0RExMOiBVc2UgYWxhcm0gaW5zdGVhZCBvZiB0aHJlYWQgZm9yIHRyYXBzLiAgVmFyaW91cyB0cmFwCiAgIGZpeGVzLgoKMjAwNi0xMC0xMyAxNjoxMyAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6IHdpbkV4dERMTDogIEFkZCB0cmFwIHN1cHBvcnQgZm9yIHJlbWFpbmluZyB0eXBlcywgZml4CiAgIEFTTl9JUEFERFJFU1MgR0VUIHN1cHBvcnQuCgoyMDA2LTEwLTEzIDE1OjE2ICB0YW5kZXJzCgogICAqIG1hbi86IHNubXBkLmNvbmYuNS5kZWYsIHNubXBkLmV4YW1wbGVzLjUuZGVmOgoKICAgc211eHNvY2tldCBuZWVkcyB0byBiZSBhbiBJUHY0IGFkZHJlc3MKCjIwMDYtMTAtMTMgMTQ6NDkgIGR0czEyCgogICAqIFJFQURNRS5vc1g6CgogICBVcGRhdGUgd2l0aCByZWNlbnQgYnVpbGQgcmVwb3J0cyBmcm9tIENocmlzIEphbGJlcnQuCgoyMDA2LTEwLTEzIDE0OjQ1ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNjb25maWcsIFN2M3VzbWNvbmZpZ2FnZW50LAogICAgIFN2YW55Y29uZmlnOgoKICAgc211eHNvY2tldCBuZWVkcyB0byBiZSBhbiBJUHY0IGFkZHJlc3MKCjIwMDYtMTAtMTMgMTQ6MzYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgSGFuZGxlIGVycm9ycyBmcm9tIHJlY3YoKSAtIHNlZSBCdWcgIzE1Mjc5MzAKCjIwMDYtMTAtMTMgMTQ6MjUgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRXhwbGljaXRseSByZWZlcmVuY2VkIFZOQU1FIHRva2VuIHdoZW4gZGVzY3JpYmluZyAidmlldyIgdG9rZW4gdXNhZ2UuCiAgIChTdWdnZXN0ZWQgYnkgSm9obiBSb3VpbGxhcmQpCgoyMDA2LTEwLTEzIDEzOjUwICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sCiAgICAgZGVmYXVsdF9zdG9yZS54czoKCiAgIHJlbW92ZSBORVRTTk1QX0RTX0FHRU5UX0ggd2hpY2ggaXNuJ3QgYSBkZWZhdWx0IHN0b3JlIHZhcmlhYmxlCgoyMDA2LTEwLTEzIDA3OjE0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGZpeCBzeW50YXggdHlwbwoKMjAwNi0xMC0xMyAwMjoxNyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIGRvbid0IGNvbW1pdCBib29sZWFuIGxvZ2ljIGxhdGUgYXQgbmlnaHQKCjIwMDYtMTAtMTMgMDE6MjggIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQ2xhcmlmeSB0aGUgcGFyc2luZyBvZiBib29sZWFuICJtb25pdG9yIiBleHByZXNzaW9ucy4KCjIwMDYtMTAtMTIgMTU6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaDoKCiAgIHVzZSBtZW1vcnlfZGFyd2luIGZvciBkYXJ3aW43CgoyMDA2LTEwLTEyIDE1OjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBFbnN1cmUgaW50ZXJuYWwgcXVlcnkgY29uZmlndXJhdGlvbiBpcyBhdmFpbGFibGUgKGFuZCBhY3RpdmUpCiAgICpiZWZvcmUqIG1vbml0b3IgZGlyZWN0aXZlcyBhdHRlbXB0IHRvIHVzZSBpdC4KCjIwMDYtMTAtMTIgMTU6MTkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBidWlsZCBmaXggZm9yIHN5c3RlbXMgd2l0aCBubyBSVEhPU1RfU1lNQk9MIG9yIG5vIFJUTkVUX1NZTUJPTCAobGlrZSBBSVgpCgoyMDA2LTEwLTEyIDA5OjEyICB0YW5kZXJzCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIGZpeCB0eXBvCgoyMDA2LTEwLTEyIDA5OjAzICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oOgoKICAgQ0hBTkdFUzogQUlYOiB1c2UgY29ycmVjdCBBUlBUQUJfU1lNQk9MIGFuZCBBUlBUQUJfU0laRV9TWU1CT0wKCjIwMDYtMTAtMTIgMDg6MTMgIHRhbmRlcnMKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaDoKCiAgIENIQU5HRVM6IEFJWDogQlVHIDEyMDUzMDA6IG5saXN0IGVycjogbmVpdGhlciBucHJvYyBub3IgX25wcm9jIGZvdW5kIChzYW1lIGZvciBydF90YWJsZSwgcnRoYXNoc2l6ZSwgcnRob3N0LCBydG5ldCkKCjIwMDYtMTAtMTIgMDQ6NTQgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLCBhZ2VudC9NYWtlZmlsZS5pbgo6CgogICBTdXBwcmVzcyB0aGUgc3Vic3RpdHV0aW9uIG9mIHRoZSBsaXN0IG9mIG1vZHVsZSBoZWFkZXIgZmlsZXMuCiAgIFRoaXMgaXMgcHVyZWx5IGEgdGVtcG9yYXJ5IHN0b3AtZ2FwIGZpeCwgdG8gaGFuZGxlIHNlZCBjb21tYW5kcyB3aGljaAogICBjaG9rZSBvbiBvdmVyLWxvbmcgc3Vic3RpdHV0aW9ucy4gIEEgYmV0dGVyIGFwcHJvYWNoIGlzIG5lZWRlZC4KCjIwMDYtMTAtMTIgMDQ6NDAgIGR0czEyCgogICAqIE5FV1M6CgogICBEb2N1bWVudCBIYXJkd2FyZSBBYnN0cmFjdGlvbiBMYXllciAoaW5jbHVkaW5nIGJlaGF2aW91ciBjaGFuZ2VzKS4KCjIwMDYtMTAtMTIgMDM6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIEZpeCBoYW5kbGluZyBvZiBhc3NpZ25tZW50cyB0byBtdGVUcmlnZ2VyVmFsdWVJRAogICAgICAgW0J1ZyAjMTU3NDcxMywgUGF0Y2ggIzE1NzQ3NDMsIGZyb20gUm9zcyBUeWxlcl0KCjIwMDYtMTAtMTIgMDI6NTQgIGR0czEyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oOgoKICAgVHdlYWtzIGZvciBEYXJ3aW4gOSBzdXBwb3J0IC0gW1BhdGNoICMxNTc1NDMzLCBmcm9tIENocmlzIEphbGJlcnRdCgoyMDA2LTEwLTEyIDAyOjQ0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW44Lmg6CgogICBVcGRhdGVkIHN5c3RlbSBoZWFkZXIgZmlsZSBmb3IgRGFyd2luOCAtIFtQYXRjaCAxNTc1NDMwLCBieSBDaHJpcyBKYWxiZXJ0XQoKMjAwNi0xMC0xMiAwMjoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvOiBjcHUuaCwgbWVtb3J5Lmg6CgogICBJbmNsdWRlIHRoZSBhcHByb3ByaWF0ZSBIQUwgbW9kdWxlcyBmb3IgRGFyd2luIChEYXJ3aW45KSBzeXN0ZW1zLgogICBTdXBwbGllZCBieSBDaHJpcyBKYWxiZXJ0LgoKMjAwNi0xMC0xMSAwOToyMSAgcnN0b3J5CgogICAqIE5FV1M6CgogICAtIGFkZCBub3RlIHRoYXQgLS1lbmFibGUtbWZkLXJld3JpdGVzIGlzIG5lZWRlZCBmb3IgZXhwZXJpbWVudGFsIGlmLW1pYiBwb3J0cwogICAtIHJlbW92ZSBsaW5lIG9uIHBhdGNoIHRvIHByZXZpb3VzbHkgdW5yZWxlYXNlIGNvZGUKCjIwMDYtMTAtMTEgMDk6MTQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGZyZWVic2QuaCwgb3BlbmJzZC5oOgoKICAgaW5jbHVkZSBpZi1taWIgcmV3cml0ZXMgaWYgbWZkIHJld3JpdGVzIGlzIGRlZmluZWQKCjIwMDYtMTAtMTEgMDg6MDIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmg6CgogICBpbmNsdWRlIGlmLW1pYiByZXdyaXRlcyBpZiBtZmQgcmV3cml0ZXMgaXMgZGVmaW5lZAoKMjAwNi0xMC0xMCAxNzoxMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBQcml2b3h5V2luZG93T3Blbj8gTXVzdCBoYXZlIGJlZW4gbWlzc2luZyBhIG1ham9yIGZlYXR1cmUgYWRkaXRpb246LSkKCjIwMDYtMTAtMTAgMTU6MzIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgZml4IHR5cG9zCgoyMDA2LTEwLTEwIDE0OjEzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLCBrZXJuZWxfc3Vub3M1LmgsCiAgICAgdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmgsCiAgICAgdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX3NvbGFyaXMyLmMsCiAgICAgdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaCwKICAgICB1ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9zb2xhcmlzMi5jOgoKICAgTkVXUzogU29sYXJpczogUEFUQ0g6IDE1Njk1MzcsMTU2OTUzOTogbmV3IFVEUC1NSUIgYW5kIFRDUC1NSUIgaW1wbGVtZW50YXRpb24gKGVuYWJsZSB0aHJvdWdoIC0td2l0aC1taWItbW9kdWxlcz11ZHAtbWliLHRjcC1taWIpCgoyMDA2LTEwLTEwIDEzOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNTcwOTgyIFNvbGFyaXMgSUYtTUlCOiBTdXBwb3J0IGZvciBJUHY2LW9ubHkgaW50ZXJmYWNlcwoKMjAwNi0xMC0xMCAwNzozMiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY2hlY2sgZm9yIHByZWFkNjQgKEFJWCkgYW5kIG5saXN0NjQgKElSSVgpCgoyMDA2LTEwLTEwIDA2OjE2ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBhZGQgbWlzc2luZyBTVFJVQ1RfTkxJU1Q2NF9IQVNfTl9WQUxVRSB2YXJpYWJsZSBzbyB0aGF0IHRoZSB0ZXN0IHJlc3VsdCBpcyBhY3R1YWxseSBzYXZlZAoKMjAwNi0xMC0xMCAwMzo1MiAgdGFuZGVycwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBmaXggc2hlbGwgc3ludGF4IGVycm9ycyByZXBvcnRlZCBieSBSaWNoYXJkIENob25hawoKMjAwNi0xMC0wOSAwNjoxMCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTBzb2xhcmlzaG9zdGNwdToKCiAgIG1vcmUgcm9idXN0IFNvbGFyaXMgQ1BVIHRlc3Rpbmc6IHRoZSBpbmRleCBmb3IgdGhlIGZpcnN0IENQVSBtYXkgdmFyeSBhY3Jvc3Mgc3lzdGVtcyAoQ1BVIDAgPSBpbmRleCA3NjgsIENQVSAxID0gaW5kZXggNzY5IGV0Yy4pCgoyMDA2LTEwLTA5IDA0OjIxICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IGZhaWwgb24gREVCVUdNU0cqCgoyMDA2LTEwLTA4IDEzOjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS86IGNwdS5oLCBjcHUvY3B1X3BzdGF0LmM6CgogICBBY3RpdmF0ZSBwc3RhdC1iYXNlZCBDUFUgaGFuZGxpbmcgb24gSFAtVVggc3lzdGVtcy4KCjIwMDYtMTAtMDggMTM6MjQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaDoKCiAgIERvbid0IHJlZGVmaW5lIGFuIGV4aXN0aW5nIHRva2VuIHdpdGhvdXQgdW5kZWZpbmluZyBpdCBmaXJzdC4KCjIwMDYtMTAtMDggMTM6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgRW5zdXJlIHRoYXQgaGlzdG9yaWNhbCBkYXRhIGlzIGF2YWlsYWJsZSBiZWZvcmUgd2UgYXR0ZW1wdCB0byB1c2UgaXQuCgoyMDA2LTEwLTA3IDE0OjU0ICBkdHMxMgoKICAgKiBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIEZpeCBzaXplIGNoZWNrIGZvciBzcGVjaWFsaXNlZCBpbnRlZ2VyLWJhc2VkIGFzc2lnbm1lbnRzLgogICAoQnVnICMxNTcyMzk0IC0gcGF0Y2ggcHJvdmlkZWQgYnkgUGhpbCBXaWxzb24pCgoyMDA2LTEwLTA3IDA2OjQ5ICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDE1MHNvbGFyaXNob3N0Y3B1LCBUMTUzc29sYXJpc3N3YXA6CgogICBBZGp1c3QgdG8gY2hhbmdlcyBpbiBjZXJ0YWluIEhvc3RSZXMgaW5kZXhpbmcuCgoyMDA2LTEwLTA1IDE1OjQ0ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIFdoYXQncyBhIHN0cmF5IHVuZGVyc2NvcmUgaGVyZSBvciB0aGVyZSBiZXR3ZWVuIGZyaWVuZHM/CgoyMDA2LTEwLTA1IDA4OjUzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHUuYywgY3B1X2tzdGF0LmM6CgogICBEZWJ1Z2dpbmcgY29kZS4KCjIwMDYtMTAtMDUgMDg6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa3N0YXQuYzoKCiAgIEJlIGNvbnNpc3RlbnQgaW4gdGhlIHVzZSBvZiBDUFUgaW5kZXhpbmcuCgoyMDA2LTEwLTA0IDE1OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS86IG1lbW9yeS5oLCBtZW1vcnkvbWVtb3J5X251bGwuYwo6CgogICBBbGxvdyBzeXN0ZW1zIHdpdGhvdXQgYW4gZXhwbGljaXQgSEFMIG1lbW9yeSBtb2R1bGUgdG8gY29tcGlsZQogICAoZXZlbiBpZiB0aGUgYWdlbnQgY2FuJ3QgcmVwb3J0IHRoZSByZWxldmFudCBzdGF0aXN0aWNzKS4KCjIwMDYtMTAtMDQgMTQ6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlLzogY3B1LmgsIGNwdS9jcHVfa3N0YXQuYzoKCiAgIEluY2x1ZGUga3N0YXQtYmFzZWQgQ1BVIHByb2Nlc3Npbmcgb24gU29sYXJpcyBzeXN0ZW1zLCBhbmQgYW1lbmQgdGhpcyBjb2RlCiAgIHRvIGFjdHVhbGx5IGNvbXBpbGUvd29yay4gIChNdWNoIG9mIHRoaXMgc3VwcGxpZWQgYnkgQnJ1Y2UgU2hhdykKCjIwMDYtMTAtMDMgMTE6MzAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgVGVzdCBmb3IgdGhlIGFjdHVhbCBiZWhhdmlvdXIgb2YgLVV4IC1EeD14LCBhbmQgb25seSB1c2UgdGhpcyBpZiBpdCB3b3JrcyBhcyBleHBlY3RlZC4KCjIwMDYtMTAtMDEgMDg6NDMgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBXaW4zMjogIEFkZCBOU0lTIGluc3RhbGxlciBvcHRpb24gZm9yIGluc3RhbGxpbmcgd2luRXh0RExMIHZlcnNpb24gb2YKICAgc25tcGQuZXhlCgoyMDA2LTEwLTAxIDA2OjQyICBhbGV4X2IKCiAgICogTkVXUywgUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYwo6CgogICBXaW4zMjogIEFkZCB0cmFwIHN1cHBvcnQgdG8gd2luRXh0RExMIGFuZCBjbGVhbiB1cCBkZWJ1Z2dpbmcgb3V0cHV0LgoKMjAwNi0wOS0yOSAxOTowMCAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogIFJlbW92ZSB3aW5FeHRETEwgc25tcGQuY29uZiBvcHRpb24sIGFkZCBTTk1QIHYyIHN1cHBvcnQuCgoyMDA2LTA5LTI5IDEzOjI4ICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wLzogY2xpZW50X2ludGYuYywgdGVzdHMvdGVzdC5weToKCiAgIHRlc3QgZml4CgoyMDA2LTA5LTI5IDEzOjE4ICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC86IGNsaWVudF9pbnRmLmMsIGNsaWVudF9pbnRmLmM6CgogICByZW1vdmUgZGVidWdnaW5nIHN0YXRlbWVudHMKCjIwMDYtMDktMjkgMTM6MTggIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICB0ZXN0aW5nIHVwZGF0ZXMKCjIwMDYtMDktMjkgMTM6MDMgIGhhcmRha2VyCgogICAqIHB5dGhvbi86IFJFQURNRSwgbmV0c25tcC9jbGllbnQucHksCiAgICAgbmV0c25tcC9jbGllbnRfaW50Zi5jLCBuZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICBzdXBwb3J0IGZvciBhIGdlbmVyaWMgd2FsayB3cmFwcGVyCgoyMDA2LTA5LTI5IDEyOjMxICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wLzogY2xpZW50X2ludGYuYywgdGVzdHMvdGVzdC5weToKCiAgIGNsZWFudXAKCjIwMDYtMDktMjggMTg6NTAgIG1hcnoKCiAgICogcHl0aG9uLzogUkVBRE1FLCBuZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBhZGRlZCAnc2V0JyBtZXRob2QsIGZpeGVzL2FkZGl0aW9ucyB0byByZWFkbWUKCjIwMDYtMDktMjcgMjM6MDIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9kYXJ3aW4uYzoKCiAgIENIQU5HRVM6IE1hY09TWDogUEFUQ0g6IDE1NjY3Nzc6IGZyb20gamFsYmVydDogYnVpbGQgZml4ZXMgZm9yIG1lbW9yeV9kYXJ3aW4uYwoKMjAwNi0wOS0yNyAxNToyMSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1pbm9yIHJld29yZGluZwoKMjAwNi0wOS0yNyAxNDozMiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCiwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlMyApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS40LnByZTIgLT4gVjUuNC5wcmUzCgkKMjAwNi0wOS0yNyAxNDoyOCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMDktMjcgMTQ6MjggIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlMyApCgoyMDA2LTA5LTI3IDE0OjE2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeDpjZmxhZ3MgLT46Y2NmbGFncwoKMjAwNi0wOS0yNyAxMzozNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE1NjY1MjM6IGZyb20gYXBlcnNzb246IE1lbW9yeSBsZWFrIGluIGlmLW1pYiAoU29sYXJpcykKICAgLSB0YWtlIGFkdmFudGFnZSBvZiBpZl9uYW1ldG9pbmRleCgpIHdoZW4gcG9zc2libGUKICAgLSBncmFiIHRoZSBJUHY2IGludGVyZmFjZSBJZGVudGlmaWVyIGlmIGF2YWlsYWJsZQoKMjAwNi0wOS0yNyAxMDo1NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmM6CgogICAtIHVwZGF0ZSBmb3IgbmV3IHJlYXNtX21heCB2NC92NiBzcGxpdAogICAtIGFkZCAnbCcgdG8gcHJpbnRmIHNwZWMgZm9yIHNpemVfdCBwYXJhbQoKMjAwNi0wOS0yNyAxMDo0OCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3IgbGFyZ2VmaWxlIHN1cHBvcnQgb24gc29sYXJpcyBhbmQgZGlzYWJsZSBlbWJlZGRlZCBwZXJsIHdoZW4gb24KCjIwMDYtMDktMjcgMDk6NTEgIHRhbmRlcnMKCiAgICogRkFROgoKICAgdXBkYXRlIHBsYXRmb3JtIGxpc3QKCjIwMDYtMDktMjcgMDY6NTYgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggLS13aXRob3V0LXB5dGhvbi1tb2R1bGVzCgoyMDA2LTA5LTI2IDE2OjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgYWRkIG9wZW5ic2Q0IHRvIHN5c2N0bCBpbnRlcmZhY2UgbGlzdAoKMjAwNi0wOS0yNiAxNTo0NCAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgYWRkIHN1cHBvcnQgZm9yIG9wZW5ic2Q0CgoyMDA2LTA5LTI2IDE1OjM5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oOgoKICAgYWRkIHN1cHBvcnQgZm9yIG9wZW5ic2Q0CgoyMDA2LTA5LTI2IDE0OjQwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ29uc2lzdGVudGx5IHNheSAiUGVybCIsIG5vdCAicGVybCIuCgoyMDA2LTA5LTI2IDE0OjIxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGRvbid0IG5lZWQgdG8gZG91YmxlIGNsZWFuIHB5dGhvbgoKMjAwNi0wOS0yNiAxNDoxOSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCAtLXdpdGhvdXQtcGVybC1tb2R1bGVzCgoyMDA2LTA5LTI2IDEyOjQzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2Rhcndpbi5jOgoKICAgSW5jbHVkZSBzb21lIChwcm9iYWJseSBub3QgYWxsKSBuZWNlc3NhcnkgaGVhZGVyIGZpbGVzLgoKMjAwNi0wOS0yNiAxMjoyMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4ZWQgcHl0aG9uIG1ha2UgY2xlYW4gd2hlbiBubyBweXRob24gc3VwcG9ydCB3YXMgcmVxdWVzdGVkCgoyMDA2LTA5LTI2IDA5OjM5ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHNldCB1cCBzeW1saW5rcyBiZWZvcmUgcnVubmluZyBjb25maWd1cmUgdG8gc3Vydml2ZSB0aGUgbmV3IHBlcmwgdGVzdHMKCjIwMDYtMDktMjYgMDk6MzQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY2hhbmdlIHRoZSBwZXJsIHRlc3RzIHRvIGFsbG93IGZvciBzeW1saW5rcwoKMjAwNi0wOS0yNiAwOTowOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBmaXhlZCBycG0gY2hlY2tzLi4uICBvcHBwcwoKMjAwNi0wOS0yNiAwOTowOSAgdGFuZGVycwoKICAgKiBSRUFETUUuYWl4OgoKICAgZG9jdW1lbnRlZCBBSVggc2VkIGlzc3VlcwoKMjAwNi0wOS0yNiAwNzo0OSAgbWFyegoKICAgKiBweXRob24vOiBSRUFETUUsIG5ldHNubXAvY2xpZW50LnB5LAogICAgIG5ldHNubXAvY2xpZW50X2ludGYuYywgbmV0c25tcC90ZXN0cy90ZXN0LnB5OgoKICAgY2xlYW51cCwgd2VpcmQgbGVhZiBvYmogaGFuZGxpbmcsIGFkZGVkIHNubXBnZXRidWxrCgoyMDA2LTA5LTI1IDIxOjU4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KLCBzZWRzY3JpcHQuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywKICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5wcmUyICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjQucHJlMSAtPiBWNS40LnByZTIKCjIwMDYtMDktMjUgMjE6NDkgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG5ldHNubXBfYWdlbnRfdHJhcC4zLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY2FsbGJhY2suMywKICAgICBuZXRzbm1wX2NvbnRhaW5lci4zLCBuZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBuZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBuZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMKLCBuZXRzbm1wX3RhYmxlX3Jvd3MuMywgbmV0c25tcF90ZGF0YS4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTA5LTI1IDIxOjQ5ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40LnByZTIgKQoKMjAwNi0wOS0yNSAyMTozNyAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGZpeGVkIHN5bnRheCBlcnJvcgoKMjAwNi0wOS0yNSAxNzozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJhbiBhdXRvaGVhZGVyCgoyMDA2LTA5LTI1IDE3OjI2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBVcGRhdGUgZm9yIGEgLS13aXRoLXB5dGhvbi1tb2R1bGVzIGZsYWc7IHdpbGwgcnVuIGludG8gc29tZSBvZiB0aGUgc2FtZSBidWlsZC1pbi1wbGFjZSBpc3N1ZXMgdGhhdCBwZXJsIGhhcyBidXQgaXQncyBhIHN0YXJ0CgoyMDA2LTA5LTI1IDE3OjA0ICBoYXJkYWtlcgoKICAgKiBweXRob24vUkVBRE1FOgoKICAgbWlub3Igd29yZGluZyBjaGFuZ2VzCgoyMDA2LTA5LTI1IDE2OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE1NTkzNTg6IGZyb20gdHJhbWtlcjogY2hlY2sgc2NhbmYgcmVzdWx0cyBmb3IgZGlza2lvIHNjYW5uaW5nCgoyMDA2LTA5LTI1IDE2OjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAxNTY0MjMzOiBIYXZlIGNvbmZpZ3VyZSB0ZXN0IGZvciBycG0gaGVhZGVycyBub3QganVzdCB0aGUgbGlicmFyaWVzCgoyMDA2LTA5LTI1IDE0OjU1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGRvbid0IHdhcm4gYWJvdXQgZXhjbHVkaW5nIHJlcXVpcmVkIG1vZHVsZXMgd2hlbiB0aGUgY3VycmVudCBmaWxlIGlzIGRlZmF1bHRfbWlicwoKMjAwNi0wOS0yNSAxNDozMyAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTU2NTI5MzogZnJvbSBhZHA6IFVEUElQdjYgdHJhbnNwb3J0IHJlcG9ydHMgd3JvbmcgcG9ydCBudW1iZXIKCjIwMDYtMDktMjUgMTA6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdGVzdHMgdG8gc2VlIGlmIHdlJ3JlIGluIHRoZSBtYWluIHNvdXJjZSB0cmVlIHNvIHdlIGNhbiBpbnN0YWxsIHRoZSBwZXJsIG1vZHVsZXMgb3Igbm90CgoyMDA2LTA5LTI1IDA5OjI1ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC90LzogYXN5bmMudCwgYnVsa3dhbGsudCwgY29uZi50LAogICAgIGdldC50LCBnZXRuZXh0LnQsIG1pYi50LCBtaWJsb2FkLnQsCiAgICAgbm90aWZ5LnQsIHNlc3Npb24udCwgc2V0LnQ6CgogICBNYWtlIHBlcmwgdGVzdCBzdWl0ZSB3b3JrIGV2ZW4gaWYgbmV0LXNubXAgaXNuJ3QgaW5zdGFsbGVkIHlldC4KCjIwMDYtMDktMjUgMDg6NDggIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC90ZXN0LnBsOgoKICAgTmV0U05NUDo6YWdlbnQgdGVzdHMgbmVpdGhlciBuZWVkIGNvbmZpZyBub3IgTUlCcwoKMjAwNi0wOS0yNSAwODoyMSAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBleGNsdWRlIENWUyBmaWxlcyBmcm9tIG5pZ2hseSB0YXJiYWxscwoKMjAwNi0wOS0yNSAwNzozMCAgbWFyegoKICAgKiBweXRob24vbmV0c25tcC86IGNsaWVudC5weSwgY2xpZW50X2ludGYuYywKICAgICB0ZXN0cy90ZXN0LnB5OgoKICAgYWRkaW5nIGdldGJ1bGssIHJlbW92aW5nIHNvbWUgZGVidWcKCjIwMDYtMDktMjUgMDU6MzUgIHRhbmRlcnMKCiAgICogTkVXUzoKCiAgIERvbid0IG1peCB0YWJzIGFuZCBzcGFjZXMgZm9yIGluZGVudGF0aW9uLiBDb252ZXJ0IGFsbCAocmFyZWx5IHVzZWQpIHRhYnMgdG8gc3BhY2VzLgoKMjAwNi0wOS0yNSAwMTo0MiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaAosIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIERpc3Rpbmd1aXNoIGJldHdlZW4gIk9JRC4qIiBhbmQgIk9JRCoiIHdpbGRjYXJkIHN5bnRheCAoZXhjbHVzaXZlIGFuZAogICBpbmNsdXNpdmUgc3VidHJlZSBtYXRjaGVzIHJlc3BlY3RpdmVseSkuCgoyMDA2LTA5LTI1IDAxOjM4ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYKOgoKICAgSW1wbGVtZW50IChhbmQgZG9jdW1lbnQpICJPSUQuKiIgc3ludGF4IGZvciBzdWJ0cmVlIG1hdGNoaW5nLgoKMjAwNi0wOS0yNCAxNToyOCAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6IHdpbkV4dERMTCAtIEZpeCBidWcgd2l0aCBzZXQgcmVxdWVzdHMsIHN0YXJ0IHRvIGFkZCBTTk1QdjIgc3VwcG9ydC4KCjIwMDYtMDktMjMgMDA6MTMgIHRhbmRlcnMKCiAgICogcGVybC9PSUQvdGVzdC5wbDoKCiAgIE9JRC5wbSB0ZXN0cyBzaG91bGRuJ3QgZGVwZW5kIG9uICppbnN0YWxsZWQqIE1JQnMKCjIwMDYtMDktMjIgMTQ6MTggIHRhbmRlcnMKCiAgICogcHl0aG9uL1JFQURNRToKCiAgIHNvbWUgbml0LXBpY2tpbmcKCjIwMDYtMDktMjIgMTM6NTYgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIFNOTVAucG0gcGVybCB0ZXN0cyBzaG91bGRuJ3QgZGVwZW5kIG9uICppbnN0YWxsZWQqIE1JQnMKCjIwMDYtMDktMjIgMTI6NDcgIG1hcnoKCiAgICogcHl0aG9uL1JFQURNRToKCiAgIFJFQURNRSBlZGl0cwoKMjAwNi0wOS0yMiAxMjowMyAgbWFyegoKICAgKiBweXRob24vUkVBRE1FOgoKICAgbW9kcyB0byBSRUFETUUgd2l0aCBzb21lIHVzYWdlIGluZm8KCjIwMDYtMDktMjIgMTA6MjUgIGhhcmRha2VyCgogICAqIHB5dGhvbi9SRUFETUU6CgogICBwcm9wZXIgbmFtaW5nCgoyMDA2LTA5LTIyIDEwOjI1ICBoYXJkYWtlcgoKICAgKiBweXRob24vOiBMSUNFTlNFLCBSRUFETUU6CgogICBhZGRlZCBhIHJlYWRtZSBhbmQgbGljZW5zZSBmaWxlCgoyMDA2LTA5LTIyIDEwOjIwICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgZGF0ZSB1cGRhdGUKCjIwMDYtMDktMjIgMDc6NTggIG1hcnoKCiAgICogcHl0aG9uLzogc2V0dXAucHksIG5ldHNubXAvX19pbml0X18ucHksCiAgICAgbmV0c25tcC9jbGllbnQucHksIG5ldHNubXAvY2xpZW50X2ludGYuYywKICAgICBuZXRzbm1wL3Rlc3RzL19faW5pdF9fLnB5LCBuZXRzbm1wL3Rlc3RzL3NubXBkLmNvbmYsCiAgICAgbmV0c25tcC90ZXN0cy90ZXN0LnB5OgoKICAgQWRkaW5nIGluaXRpYWwgYWxwaGEgc3VwcG9ydCBmb3IgbmV0LXNubXAgcHl0aG9uIGJpbmRpbmcKCjIwMDYtMDktMjIgMDQ6NDcgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgRG9uJ3QgZmFpbCBvbiAiTE9HX0VSUiIuCgoyMDA2LTA5LTIyIDAzOjI5ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC90Lzogbm90aWZ5LnQsIHN0YXJ0YWdlbnQucGw6CgogICBmaXggU05NUC5wbSBub3RpZnkgdGVzdCAoc3RhcnQgc25tcHRyYXBkIHdpdGggdmFsaWQgb3B0aW9ucykKCjIwMDYtMDktMjEgMDk6MTUgIGFsZXhfYgoKICAgKiB3aW4zMi86IGxpYnNubXAvTWFrZWZpbGUuaW4sIGxpYnNubXAvbGlic25tcC5kc3AsCiAgICAgbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKOgoKICAgV2luZG93cyBidWlsZCBmaXhlcy4KCjIwMDYtMDktMjEgMDc6NDMgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvcGVybF9zbm1wdHJhcGQuaDoKCiAgIFN5bmMgc3RydWN0IG5ldHNubXBfdHJhcGRfaGFuZGxlcl9zIHdpdGggdGhlIGxpYnJhcnkgY29kZSBhZ2FpbiAoYWRkICJmbGFncyIpLgoKMjAwNi0wOS0yMSAwNjowOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBmaXggcG90ZW50aWFsIHNlZ2ZhdWx0IGludHJvZHVjZWQgYnkgcGF0Y2ggMTU2MTI3NwoKMjAwNi0wOS0yMSAwNToyMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg+IGZvciBTTk1QX1NUUk9STlVMTAoKMjAwNi0wOS0yMSAwMzo0OSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgICpyZWFsbHkqIGtlZXAgcHJlWC9yY1ggaW4gdmVyc2lvbiBzdHJpbmdzCgoyMDA2LTA5LTIwIDE5OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgY2hhbmdlIGFnZW50eCBzb2NrZXQgZGVmaW5lIHRvIE5FVFNOTVBfIHByZWZpeGVkCgoyMDA2LTA5LTIwIDEzOjI2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgQ2hlY2sgaW5jb21pbmcgdHJhcCBPSURzIGFzIGFuIGV4dGVuc2lvbiBvZiB0aGUgdHJhcGhhbmRsZSBPSUQKICAgKGJ1dCBub3QgdGhlIG90aGVyIHdheSByb3VuZCEpCgoyMDA2LTA5LTIwIDA5OjQ4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGRvbid0IGNoYW5nZSBwcmUgdGFncyB0byAwLiB0byBhdm9pZCBiYWRseSBnZW5lcmF0ZWQgdmVyc2lvbiBudW1iZXJzCgoyMDA2LTA5LTIwIDA3OjQ1ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgYXV0b21hdHRlZCB0ZXN0aW5nIG9mIHRoZSBwcm9kdWNlZCB0YXItYmFsbAoKMjAwNi0wOS0xOSAyMjoyMyAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGZpeCBwYXRoIHRvIGV4dHJhY3RuZXdzCgoyMDA2LTA5LTE5IDIyOjE4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBjb25maWd1cmUsCiAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5wcmUxICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjMgLT4gVjUuNC5wcmUxCgoyMDA2LTA5LTE5IDE3OjI5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMKLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zCiwgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMwosIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBuZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBuZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMKLCBuZXRzbm1wX3RhYmxlX3Jvd3MuMywgbmV0c25tcF90ZGF0YS4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTA5LTE5IDE3OjI5ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40LnByZTEgKQoKMjAwNi0wOS0xOSAxNzoxMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgY2F2ZSB0byBwdXR0aW5nIGluIHNvbWUgYnVmZmVyIHNwYWNlIGZvciBsaWJjdXJyZW50OyA1LjMgd2FzIDEwIGFuZCBpbmNyZW1lbnRzIG9mIDUgbWFrZSBpdCBlYXN5LCBzbyA1IGl0IGlzLgoKMjAwNi0wOS0xOSAxNzowOCAgaGFyZGFrZXIKCiAgICogZGlzdC86IGV4dHJhY3RuZXdzLCBtYWtlcmVsZWFzZToKCiAgIHlldCBtb3JlIHVwZGF0ZXMgZm9yIG1ha2luZyByZWxlYXNlcwoKMjAwNi0wOS0xOSAxNjo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3JlIGZpeGVzIGZvciB1ZHAgZG9tYWluczogcmVtb3ZlIHJlcXVpcmVtZW50IGZvciBpbmV0X2F0b24gd2hpY2ggb24gc29tZSBzeXN0ZW1zIGV4aXN0cyBpbiBsaWJyZXNvbHYKCjIwMDYtMDktMTkgMTY6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgdWRwIGRvbWFpbiBmaXhlcwoKMjAwNi0wOS0xOSAxNjowNCAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGJ1aWxkIGZpeCBmb3IgSVJJWCB3aXRoIFNHSSdzIGNjCgoyMDA2LTA5LTE5IDE1OjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oCiwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgTkVXUzogc25tcHRyYXBkOiB0aGUgdHJhcGhhbmRsZSBkaXJlY3RpdmUgbm93IHN1cHBvcnRzIGEgLXQgc3dpdGNoIHRvIGluZGljYXRlIG1hdGNoaW5nIGFueSBPSUQgaW4gdGhlIHRyZWUgYmVsb3cgdGhlIHNwZWNpZmllZCBPSUQKCjIwMDYtMDktMTkgMTU6MTggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtOgoKICAgY2xlYW5lZCB1cCBwZXJsIHZhcnMgZm9yIHN1cHBvcnQgb24gb2xkZXIgcGVybCB2ZXJzaW9ucwoKMjAwNi0wOS0xOSAxNDo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggZXJyb3IgbG9naWMgaW4gcGVybCB0ZXN0cwoKMjAwNi0wOS0xOSAxNDo0NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBzbWFydCBkZXRlY3Rpb24gb2YgYXZhaWxhYmxlIHBlcmwgc3VwcG9ydAoKMjAwNi0wOS0xOSAxMToyNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggcGVybCBjYyB0ZXN0IHRvIGFsbG93IGZvciBkYXNoIG9wdGlvbnMKCjIwMDYtMDktMTkgMTA6NTggIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlcG9ydCB0aGUgYXBwcm9wcmlhdGUgcHJlZml4IG1hdGNoIHdoZW4gb25lIE9JRCBpcyBhIHByZWZpeCBvZiB0aGUgb3RoZXIuCiAgIFRoZSBwcmV2aW91cyBjb2RlIHRyZWF0ZWQgdGhpcyBhcyBhIG5vbi1tYXRjaCAocmV0dXJuaW5nIDApLgogICBJJ20gbm90IGF0IGFsbCBjb252aW5jZWQgYnkgdGhlICIrMSIgaGFuZGxpbmcgZWl0aGVyLgoKMjAwNi0wOS0xOSAxMDoyNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBhbm90aGVyIGF0dGVtcHQgdG8gZml4IHRoZSBpdGVtcyBjYWxjdWxhdGlvbiB3aXRob3V0IHBvcHBpbmcgYSBtYXJrCgoyMDA2LTA5LTE5IDA5OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNTUwNzI1OiBmcm9tICdXYXluZSBHbGFudHonOiBBIG5ldyB1aW50IGluc3RhbmNlIGhlbHBlciB0byBtYXRjaCB0aGUgZXhpc3RpbmcgaW50LCBsb25nIGFuZCB1bG9uZyBoZWxwZXJzCgoyMDA2LTA5LTE5IDA5OjM0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgTkVXUzogc25tcGQ6IEJVRzogMTUyNzkzMDogZml4IHNtdXggYXV0aGVudGljYXRpb24KCjIwMDYtMDktMTkgMDk6MTcgIGhhcmRha2VyCgogICAqIGRpc3QvOiBSRUxFQVNFLUlOU1RSVUNUSU9OUywgZXh0cmFjdG5ld3M6CgogICByZW1vdmUgZnJvbSB1c2VyIHN0cmluZ3MgaW4gTkVXUyBhbmQgQ0hBTkdFUyBsaW5lcwoKMjAwNi0wOS0xOSAwODowOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIHJlbW92ZSByb2JlcnQncyBzZWxmLWNhbGxlZCBoYWNrIGZvciBtYWtpbmcgc25tcHRyYXBkIGhhbmRsZSBwYXJ0aWFsIE9JRHMuICBBcyBhZ3JlZWQgdG8gb24gY29kZXJzIHRoaXMgY2FuJ3QgYmUgZG9uZSBhcyBpcyBiZWNhdXNlIGl0IGNvbXBsZXRlbHkgY2hhbmdlcyBleGlzdGluZyB1c2FnZS4gIEEgbmV3IG1lY2hhbmlzbSBpcyBuZWVkZWQgdG8gc3VwcG9ydCB0aGlzIGJlaGF2aW91ciBzbyBpdCBkb2Vzbid0IGJyZWFrIGJhY2t3YXJkcyBjb21wYXRpYml0eSB3aXRoIHBvdGVudGlhbCBzZWN1cml0eSByYW1pZmljYXRpb25zCgoyMDA2LTA5LTE5IDA3OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTVEREb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsCiAgICAgbWFuL3NubXAuY29uZi41LmRlZiwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcElQWERvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFNURERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywKICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICAgIHNubXBsaWIvc25tcF9zZXJ2aWNlLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIE5FV1M6IHNubXBsaWI6IFBBVENIOiAxMjgyNTY2OiBmcm9tIG1hZ2ZyIHRvIHJld29yayB0cmFuc3BvcnQgY3JlYXRpb24gdG8gYWxsb3cgZm9yIGFsdGVybmF0aXZlIGludGVycHJldGF0aW9ucyBvZiB0aGUgYWRkcmVzcyBhbmQgYSBtb3JlIGZsZXhpYmxlIHRyYW5zcG9ydCByZWdpc3RyYXRpb24gc3lzdGVtCgoyMDA2LTA5LTE5IDA2OjE3ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTU2MTI3NzogdXNlIG5ldC5pcHY2Lm5laWdoLmxvLmJhc2VfcmVhY2hhYmxlX3RpbWVfbXMgaW5zdGVhZCBvZiBkZXByZWNhdGVkIGJhc2VfcmVhY2hhYmxlX3RpbWUKCjIwMDYtMDktMTkgMDQ6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZUV2ZW50LmMsIG10ZU9iamVjdHMuYwo6CgogICBEb24ndCByZS1pbml0aWFsaXNlIGJ1aWx0LWluIEV2ZW50LU1JQiBldmVudHMsIGV0Yy4KCjIwMDYtMDktMTkgMDM6MjQgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBGaXJzdCBzdGVwcyBpbiBzdXBwb3J0aW5nIHNpbmdsZS1pbnN0YW5jZSByZWdpc3RyYXRpb25zLgoKMjAwNi0wOS0xOCAyMTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmgsIGlmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMTQ3NDQ2ODogaWZDb25uZWN0b3JQcmVzZW50IGFsd2F5cyByZXR1cm5zIDAKCjIwMDYtMDktMTggMjA6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgbW9kaWZpZWQgdGhlIGhvc3QgcmVzb3VyY2VzIHNraXAgTkZTIHBhdGNoIHRvIGZpeCBhIGJ1ZyBhbmQgdG8gdXNlIHRoZSBkZWZhdWx0IHN0b3JhZ2UgY29uZmlnIGluc3RlYWQKCjIwMDYtMDktMTggMjA6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYwosIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50Lmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE1MjQ3NTU6IGZyb20gYXBlcnNzb24gdG8gYmV0dGVyIHN1cHBvcnQgdGhlIFVEUFRhYmxlIGZvciB1bmtub3duIGFkZHJlc3MgdHlwZXMKCjIwMDYtMDktMTggMjA6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE1MzQ4Nzc6IGZyb20gYnVja2ggdG8gYWRkIHN1cHBvcnQgZm9yIHNraXBwaW5nIE5GUyBlbnRyaWVzIGluIHRoZSBob3N0IHJlc291cmNlcyBoclN0b3JhZ2VUYWJsZS4gIFNlZSB0aGUgc2tpcE5GU0luSG9zdFJlc291cmNlcyB0b2tlbiBpbiB0aGUgc25tcGQuY29uZiBmaWxlIGZvciBkZXRhaWxzLgoKMjAwNi0wOS0xOCAyMDowMCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGRvY3VtZW50IGFjY2VwdGlsZSBORVdTIHRva2VucwoKMjAwNi0wOS0xOCAxNzozMCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGRvY3VtZW50IHRoZSBuZXcgQ1ZTIE5FV1MgdGFnIHN5c3RlbQoKMjAwNi0wOS0xOCAxNjowNSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgTkVXUzogc25tcHRyYXBkOiAtIFBBVENIOiAxNTM2NzczOiBzdXBwb3J0IHBhcnRpYWwgb2lkIG1hdGNoaW5nCgogICBXZSBjYW4gc3RpbGwgYWRkL3JlcXVpcmUgYSBzcGVjaWFsIHRva2VuL3N5bnRheCBmb3IgdGhpcyBhZnRlciBwcmUxCiAgIGlmIHRoaXMgd2FzIHRoZSBjb25zZW5zdXMuCgoyMDA2LTA5LTE4IDE1OjI0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLCBrZXJuZWxfc3Vub3M1LmgsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jOgoKICAgZml4IHJlY2VudCBidWlsZCBpc3N1ZXMgb24gU29sYXJpcyA3IChwYXRjaCBwcm92aWRlZCBieSBBbmRlcnMgUGVyc3NvbikKCjIwMDYtMDktMTggMDc6MTkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9pcml4LmM6CgogICBhZGQgZGVidWdnaW5nLCBmaXggc29tZSBmaWd1cmVzCgoyMDA2LTA5LTE4IDAyOjA4ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvTUFOSUZFU1Q6CgogICBhZGQgTmV0U05NUDo6YWdlbnQ6OlN1cHBvcnQgZmlsZXMKCjIwMDYtMDktMTggMDE6MTcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oOgoKICAgTW92ZSB1cCBhbmQgcmVuYW1lIHRoZSAjaWZuZGVmIHRvIHByZXZlbnQgZHVwbGljYXRlIGluY2x1ZGUuIEZpeGVzIGNvbXBpbGUgZXJyb3JzIHdydC4gQ291bnRlcjY0IG9uIFNvbGFyaXMgNyBhbmQgZWFybGllci4KCjIwMDYtMDktMTYgMTY6MzMgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzI6CgogICBSRUFETUUgdXBkYXRlIGZvciB3aW5FeHRETEwuCgoyMDA2LTA5LTE2IDE1OjIyICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW5kb3dzIHdpbkV4dERMTDogVXNlIHJlZ2lzdHJ5IGVudHJpZXMgZm9yIFdpbmRvd3MgU05NUCBleHRlbnNpb24gdG8gZ2V0CiAgIHRoZSBsaXN0IG9mIERMTHMgdG8gbG9hZC4KCjIwMDYtMDktMTYgMTM6NDkgIGFsZXhfYgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FVFNOTVBfIGRlZmluZSBmaXhlcy4KCjIwMDYtMDktMTYgMTI6NTYgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBjaGVjayBmb3IgPHN5cy9zeXN0ZW1jZmcuaD4gKEFJWCkKCjIwMDYtMDktMTYgMTE6MDEgIHRhbmRlcnMKCiAgICogd2luMzIvOiBjb25maWcuaC5ib3JsYW5kLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAo6CgogICBmaXggc29tZSBORVRTTk1QX05FVFNOTVBfKiAiZG91YmxlIHJlbmFtZSIgZXJyb3JzIGZvciBXaW5kb3dzCgoyMDA2LTA5LTE2IDEwOjU2ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgcmV2ZXJ0IHRvIChsb2NhbCkgT0xEX0hFSU1EQUwgZGVmaW5lCgoyMDA2LTA5LTE2IDEwOjIzICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICByZW5hbWUgbGFzdCBvY2N1cmVuY2Ugb2YgRE9OVF9VU0VfTkxJU1QKCjIwMDYtMDktMTYgMTA6MTAgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJ1biBhdXRvaGVhZGVyCgoyMDA2LTA5LTE2IDA4OjQ0ICBhbGV4X2IKCiAgICogd2luMzIvbGlic25tcF9kbGwvOiBsaWJzbm1wLmRlZiwgbGlic25tcC5kZWYuaW46CgogICBXaW5kb3dzIE1TVkMgUGVybCBjb21waWxlIGZpeGVzLgoKMjAwNi0wOS0xNiAwODoxOSAgYWxleF9iCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTDoKCiAgIEZpeCBmb3IgYnVpbGRpbmcgdW5kZXIgV2luZG93cyAoTVNWQykuCgoyMDA2LTA5LTE1IDA5OjEyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oOgoKICAgYWN0aXZhdGUgbWVtb3J5IEhBTCBjb2RlIGZvciBJUklYCgoyMDA2LTA5LTE1IDA5OjA5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfaXJpeC5jOgoKICAgaW5pdGlhbCBJUklYIHZlcnNpb24gb2YgbWVtb3J5IEhBTCBpbnRlcmZhY2UKCjIwMDYtMDktMTUgMDc6NDggIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3IgPHN5cy9zeXNnZXQuaD4gKElSSVgpCgoyMDA2LTA5LTE1IDA3OjE0ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zeXN0ZW0uYwo6CgogICBpbnRyb2R1Y2UgbmV0c25tcF9vc19rZXJuZWxfd2lkdGgoKSB0byBiZSBhYmxlIHRvIGRldGVjdCA2NGJpdCBrZXJuZWxzIGF0IHJ1bnRpbWUKCjIwMDYtMDktMTUgMDY6MTAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3Igc3lzL3N5c3RlbWNmZy5oIChBSVgpIGFuZCBzeXMvc3lzdGVtaW5mby5oIChJUklYKQoKMjAwNi0wOS0xNSAwNTo0NiAgdGFuZGVycwoKICAgKiBSRUFETUUud2luMzIsIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwKICAgICBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KLCBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsIHNubXBsaWIva2V5dG9vbHMuYywKICAgICBzbm1wbGliL3NjYXBpLmMsIHRlc3RpbmcvZXZhbF90b29scy5zaCwKICAgICB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZywgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdiYXNlCiwgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1QUVTLAogICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjRzbm1wdjNnZXRTSEExLAogICAgIHRlc3RpbmcvdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjZzbm1wdjNnZXRTSEFBRVMsCiAgICAgdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uLAogICAgIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQsCiAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtcHJpdiwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwLCB3aW4zMi9Db25maWd1cmU6CgogICBtb3JlIHJlbmFtZXMgYW5kIGZpeGVzCgoyMDA2LTA5LTE1IDA0OjE1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIGZpeCBzeW50YXggZXJyb3IgdGhhdCBicm9rZSB0aGUgU29sYXJpcyBidWlsZAoKMjAwNi0wOS0xNSAwMzo0NCAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCB3cm9uZyByZW5hbWVzCgoyMDA2LTA5LTE1IDAzOjMwICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgcmVzdHJpY3QgSVBfUEtUSU5GTyBjb2RlIHRvIExpbnV4CgoyMDA2LTA5LTE1IDAyOjE2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBmaXggc3ludGF4IGVycm9ycyB3aGljaCBicm9rZSB0aGUgYnVpbGQgb24gU29sYXJpcwoKMjAwNi0wOS0xNCAyMTowMyAgYWxleF9iCgogICAqIHdpbjMyLzogY29uZmlnLmguYm9ybGFuZCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENoYW5nZSBOZXQtU05NUCBkZWZpbmVzIHRvIHVzZSBORVRTTk1QXyBwcmVmaXguCgoyMDA2LTA5LTE0IDE3OjQ4ICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9hdXRvX25saXN0LmMsCiAgICAgYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oLCBhZ2VudC9zbm1wX2FnZW50LmMKLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5oLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VudC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2RhcndpbjcuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfaHB1eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9kYXJ3aW43LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2hwdXguYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywKICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9hdXRoLmMsCiAgICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGFwcHMvc25tcHVzbS5jLAogICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAosIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNURERvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgICBwZXJsL1NOTVAvU05NUC54cywgc25tcGxpYi9hc24xLmMsCiAgICAgc25tcGxpYi9pbmV0X250b3AuYywgc25tcGxpYi9pbmV0X3B0b24uYywKICAgICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYwosIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbXRfc3VwcG9ydC5jLAogICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wa2NzLmMsCiAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywKICAgICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywKICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYwosIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMKLCB0ZXN0aW5nL2V0aW1ldGVzdC5jLCB0ZXN0aW5nL21pc2N0ZXN0LmMsCiAgICAgd2luMzIvbWliX21vZHVsZV9pbml0cy5oOgoKICAgQWx3YXlzIHVzZSB0aGUgbmV3IG5ldC1zbm1wLWNvbmZpZy5oIGRlZmluaXRpb25zIGZyb20gd2l0aGluIHRoZSBORVRTTk1QXwogICBuYW1lc3BhY2UuCgoyMDA2LTA5LTE0IDE2OjU1ICBoYXJkYWtlcgoKICAgKiBkaXN0L2V4dHJhY3RuZXdzOgoKICAgZmlyc3QgcGFzcyBhdCBleHRyYWN0aW5nIE5FV1MvQ0hBTkdFUyBmaWxlcyBmcm9tIGN2cyBsb2dzCgoyMDA2LTA5LTE0IDE2OjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgZGV0ZWN0IHNvbGFyaXMgaWJkL2lwLnR1bi9hdGggaW50ZXJmYWNlIHR5cGVzIHByb3Blcmx5CgoyMDA2LTA5LTE0IDE1OjI4ICB0YW5kZXJzCgogICAqIE5FV1M6CgogICBtZW50aW9uIFNvbGFyaXMgaWYtbWliIHJld3JpdGUKCjIwMDYtMDktMTQgMTU6MTQgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIFtubyBsb2cgbWVzc2FnZV0KCjIwMDYtMDktMTQgMTU6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgTkVXUzogUEFUQ0hFUzogMTUwOTk0MzogcmVzcG9uc2VzIHdpbGwgZ2V0IHNlbnQgZnJvbSB0aGUgb3JpZ2luYWwgZGVzdCBJUCBhZGRyZXNzIHdoZW4gcG9zc2libGUuCgoyMDA2LTA5LTE0IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgQ0hBTkdFUzogUEFUQ0hFUzogMTU1NDgyNzogZnJvbSBydHlsZTogZml4IGhhbmRsaW5nIG9mIGZhaWxlZCBwcm94eSBTRVQgcmVxdWVzdHMKCjIwMDYtMDktMTQgMTM6NTcgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jCjoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNTU3NTE0IGZyb20gcnR5bGU6IERvIG5vdCBhdHRlbXB0IHRvIGNvbGxlY3QgZGF0YSBkdXJpbmcgU0VUIHByb2Nlc3NpbmcuCgoyMDA2LTA5LTE0IDEzOjQyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHBhc3MgMiBhdCBnZXR0aW5nIGF1dG8tYnVpbGQgc3VwcG9ydCBmb3IgLnNvIGZpbGVzLiAgSSdtIG5vdyBjb252aWVuY2VkIGl0J3MgY2xvc2UgdG8gaW1wb3NzaWJsZSB0byBkbyBjb3JyZWN0bHkgd2l0aCBkZXBlbmRlbmN5IGlzc3VlcyBhbmQgbm8gc3VwcG9ydCBmb3IgcmVjdXJzaXZlIGZ1bmN0aW9ucyBpbiBzaAoKMjAwNi0wOS0xNCAxMjoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYzoKCiAgIHNvbGFyaXMgc3VwcG9ydCBmb3IgaWYtbWliIDY0Yml0IGNvdW50ZXJzCgoyMDA2LTA5LTE0IDEwOjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCBpcEFkZHIuYywgdmFyX3JvdXRlLmMKOgoKICAgdXNlIG5ldyBkYXRhIGFjY2VzcyByb3V0aW5lIGZvciBzb2xhcmlzLCBpZiByZXdyaXRlIGluIGVmZmVjdAoKMjAwNi0wOS0xNCAxMDozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICB1c2UgTkVUU05NUF9JTkNMVURFX0lGVEFCTEVfUkVXUklURVMgdG8gZGVjaWRlIGFib3V0IGlmLW1pYiBzdXBwb3J0CgoyMDA2LTA5LTE0IDEwOjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIGtlcm5lbF9zdW5vczUuaCwKICAgICBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBzb2xhcmlzIHN1cHBvcnQgZm9yIGlmLW1pYiA2NGJpdCBjb3VudGVycwoKMjAwNi0wOS0xNCAxMDoyMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJ1biBhdXRvY29uZiAmJiBhdXRvaGVhZGVyCgoyMDA2LTA5LTE0IDEwOjIxICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgdHlwZSBjaGVjayBmb3Igc29sYXJpcyBDb3VudGVyNjQKCjIwMDYtMDktMTQgMTA6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMKLCBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgc3BsaXQgcmVhc21fbWF4IGludCB0d28gdmFycyAodjYvdjYpCgoyMDA2LTA5LTE0IDA3OjUxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaDoKCiAgIGRlZmluZSBORVRTTk1QX0lOQ0xVREVfSUZUQUJMRV9SRVdSSVRFUwoKMjAwNi0wOS0xNCAwNzo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLAogICAgIG1pYklJL2lmVGFibGUuaDoKCiAgIE9ubHkgdHJ5IHRvIHVzZSBtZmQgY29kZSBpZmYgTkVUU05NUF9JTkNMVURFX0lGVEFCTEVfUkVXUklURVMgaXMgZGVmaW5lZAoKMjAwNi0wOS0xNCAwNzo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBhZGQgZGVmaW5lZCBmb3IgbmV3IGlmT3BlclN0YXR1cyB2YWx1ZXMKCjIwMDYtMDktMTQgMDI6NTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmMKLCBsb2NhbC9taWIyYy5yb3cuY29uZjoKCiAgIFByZWxpbWluYXJ5IGltcGxlbWVudGF0aW9uIG9mIGEgc2luZ2xlLXJvdyBoZWxwZXIuCgoyMDA2LTA5LTEzIDEwOjAwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIHBhc3Mgb25lIGF0IHNwZWNpZnlpbmcgZGxscyB0byBidWlsZCB2aWEgbW9kdWxlcy4gIERvIG5vdCB1c2UgdGhpcyB5ZXQgYXMgdGhlcmUgYXJlIGNvbmZsaWN0IGlzc3VlcyB0aGF0IG5lZWQgdG8gYmUgd29ya2VkIG91dAoKMjAwNi0wOS0xMiAxODozMiAgYWxleF9iCgogICAqIE5FV1MsIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMKLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuaCwKICAgICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaAosIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbmRvd3M6IG5ldyB3aW5FeHRETEwgZXh0ZW5zaW9uIG1vZHVsZSB0byBhbGxvdyBzbm1wZCB0byBsb2FkIFdpbmRvd3MKICAgU05NUCBzZXJ2aWNlIGV4dGVuc2lvbiBETExzIHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgSE9TVC1SRVNPVVJDRVMtTUlCCiAgIGFuZCBvdGhlciBNSUJzIHByb3ZpZGVkIHdpdGggV2luZG93cy4KCjIwMDYtMDktMTIgMTY6MTUgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENBTl9VU0VfU1lTQ1RMIC0+IE5FVFNOTVBfQ0FOX1VTRV9TWVNDVEwKCjIwMDYtMDktMTIgMTU6NDIgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtaW5vciBmaXhlcwoKMjAwNi0wOS0xMiAxNTozNSAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBzZWRzY3JpcHQuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taXBzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi42Lmg6CgogICBORVdTOiBtaXNjOiAtIE1vc3QgbmV0LXNubXAgc3BlY2lmaWMgZGVmaW5lcyBhcmUgbm93IChhbHNvKSBhdmFpbGFibGUgdW5kZXIgYSBwcm9wZXIgTkVUU05NUF8gcHJlZml4LiBUaGUgb2xkZXIsIHBvdGVudGlhbGx5IGNvbmZsaWN0aW5nIG5hbWVzIGFzIHdlbGwgYXMgdGhlIGF1dG9jb25mIHZhcmlhYmxlcyBjYW4gbm93IGJlIHR1cm5lZCBvZmYgYnkgYSBzcGVjaWFsIGRlZmluZS4KCjIwMDYtMDktMTIgMTA6MzMgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIE5FV1M6IGFnZW50OiAtIFtCVUdTOiAxNDI3NDEwXSBTZXQgYXV0aCBlbmdpbmVJRCBmb3IgU05NUHYzIHRyYXBzLgogICAocmF0aGVyIHRoYW4gc2VuZGluZyBhIHRyYXAgd2l0aCBubyBhdXRoIGVuZ2luZUlEKQoKMjAwNi0wOS0xMiAxMDozMCAgZHRzMTIKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE5FV1M6IGJ1aWxkOiAtIFtCVUdTIDE0MTY0ODFdIFN1cHBvcnQgc3BlY2lmeWluZyBhbiBleHBsaWNpdCBsaW5rZXIuCiAgIERlZmF1bHRzIHRvICRDQyBpZiBub3QgZXhwbGljaXRseSBzZXQuCgoyMDA2LTA5LTEyIDEwOjI3ICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIE5FV1M6IGFnZW50OiAtIFtCVUdTIDE1MDIyNjddIEJ1aWxkIGFjY2VzcyBsaXN0IGluIHRoZSBjb3JyZWN0IG9yZGVyLgoKMjAwNi0wOS0xMiAwNjowNiAgdGFuZGVycwoKICAgKiBORVdTLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGVuYWJsZSBlbWJlZGRlZCBQZXJsIGFuZCB0aGUgUGVybCBtb2R1bGVzIGJ5IGRlZmF1bHQKCjIwMDYtMDktMDggMDg6NDMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICBORVdTOiBtaWIyYzogLSBbQlVHUzogMTQ3OTkxNl0gUmVzdG9yZSBjb25zaXN0ZW5jeSBpbiByb3cgY3JlYXRpb24gY29kZS4KCjIwMDYtMDktMDggMDU6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgTkVXUzogc25tcGQ6IC0gW0JVR1M6IDE1MzU5MDNdIFN1cHBvcnQgc3BhY2VzIHdpdGhpbiBzZWN1cml0eSBuYW1lcwoKMjAwNi0wOS0wNyAyMDo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXgsIEkgdGhpbmssIHRoZSBidWxrd2FsayBwcm9ibGVtczsgYWxsIHRlc3RzIHBhc3MuICBJIGJlbGlldmUgdGhlIHBhdGNoIGlzIHRoZSBjb3JyZWN0IGNvbWJpbmF0aW9uIGJldHdlZW4gdGhlIHR3byBkaWZmZXJlbnQgcGF0Y2hlcyAodGhlIG9sZCBvbmUgYW5kIHRoZSBuZXcgb25lKSB0aGF0IHNob3VsZCBmaXggYm90aCBwcm9ibGVtcy4gIE5FV1M6IHBlcmwgLSBGaXhlZCB0aGUgcGVybCBidWxrd2FsayBmdW5jdGlvbgoKMjAwNi0wOS0wNyAwOToyOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGZpeCB0eXBvIHdoaWNoIGJyb2tlIHBlcnNpc3RlbmNlCgoyMDA2LTA5LTA3IDA5OjE3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBVc2UgdGhlIGNvcnJlY3QgQVBJIGNhbGwgZm9yIHJlbWVtYmVyaW5nIGEgbmV3bHktY3JlYXRlZCByb3cuCiAgIChTcG90dGVkIGJ5IFpoYW5nIENodWFuKS4KCjIwMDYtMDktMDcgMDQ6MzcgIGR0czEyCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBORVdTOiBzbm1wZGY6IC0gW0JVR1M6IDE1MTU1MDddIEhhbmRsZSBmYWlsZWQgcmVxdWVzdHMgYmV0dGVyCiAgIChEb24ndCBnbyBpbnRvIGFuIGluZmluaXRlIGxvb3AhKQoKMjAwNi0wOS0wNyAwNDozMCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYywKICAgICBzbm1wbGliL21pYi5jOgoKICAgTkVXUzogc25tcGxpYiAtIFtCVUdTOiAxNTM3NDU5LCBCVUdTOiAxNTQwNzQ1XSBGaXggbWlzc2luZyBNSUIgcGFyc2luZyB0b2tlbnMKCjIwMDYtMDktMDcgMDQ6MjQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCBORVdTLAogICAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2FnZW50CjoKCiAgIFJldmVydCBkZWZhdWx0IGJlaGF2aW91ciBvZiBjb252ZW5pZW5jZSBhY2Nlc3MgY29udHJvbCBkaXJlY3RpdmVzCiAgIHRvIG1hdGNoaW5nIGFsbCBjb250ZXh0LiAgQW4gZXhwbGljaXQgY29udGV4dCBmaWVsZCB3aWxsIGJlIHRha2VuCiAgIGFzIGFuIGV4YWN0IG1hdGNoLCB1bmxlc3MgaXQgZW5kcyBpbiAnKicuCgoyMDA2LTA5LTA2IDEwOjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmg6CgogICBmaXggc29tZSBtaXNzaW5nIHN0YXRzIGluIGlmVGFibGUvaWZYVGFibGUKCjIwMDYtMDktMDYgMDY6NDUgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgYWRkIG5vdGUgb24gZXhwZXJpbWVudCBGcmVlQlNEL09wZW5CU0QgaWZYVGFibGUgc3VwcG9ydAoKMjAwNi0wOS0wNiAwNjo0MiAgcnN0b3J5CgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgYWRkIEZyZWVCRFMgYW5kIE9wZW5CU0QgZm9yIGlmLW1pYgoKMjAwNi0wOS0wNSAxMjozNCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICBkZWFsIHcvcHJldiBwdHJzIHRvbwoKMjAwNi0wOS0wNSAwNzo1OCAgZHRzMTIKCiAgICogTkVXUywgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCBuZXcgYWNjZXNzIGNvbnRyb2wgKGFuZCBjb250ZXh0KSBiZWhhdmlvdXIuCgoyMDA2LTA5LTA1IDA1OjQ5ICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2FnZW50OgoKICAgRXhwbGljaXRseSBhdXRob3Jpc2UgYWxsIGNvbnRleHRzLgogICAoVGhpcyByZXN1bHRzIGZyb20gYSBtaW5vciBhbHRlcmF0aW9uIGluIGJlaGF2aW91ciBmb2xsb3dpbmcgYW5vdGhlciBjb2RlCiAgICBjaGFuZ2UsIGJ1dCBmZWVscyBtb3JlIHNlY3VyZSB0aGFuIGF1dG9tYXRpY2FsbHkgb3BlbmluZyB1cCBhbGwgY29udGV4dHMKICAgIGJ5IGRlZmF1bHQuICBUaG91Z2ggSSdtIGhhcHB5IHRvIGJlIHBlcnN1YWRlZCBvdGhlcndpc2UuLi4pCgoyMDA2LTA5LTA1IDAyOjQ0ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MgKGFnYWluKQoKMjAwNi0wOS0wNSAwMTozNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudF9taWJzLmgsIGFnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmgKOgoKICAgSW5jbHVkZSBOZXQtU05NUCBleHRlbnNpb24gYWNjZXNzIHRhYmxlIChhbmQgTUlCKSBpbiB0aGUgZGVmYXVsdCBidWlsZC4KCjIwMDYtMDktMDUgMDE6MzUgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdGhlIG5zVmFjbUFjY2Vzc1RhYmxlIG5vdCBiZWluZyBpbmNsdWRlZC4KICAgKGFuZCBzaW1pbGFyIGZvciB1c21Vc2VyVGFibGUgLSBhIGNsZWFuZXIgY2hlY2sgdGhhbiBiZWZvcmUpCgoyMDA2LTA5LTA1IDAxOjI4ICBkdHMxMgoKICAgKiBhcHBzL3NubXB2YWNtLmMsIG1hbi9zbm1wdmFjbS4xLmRlZjoKCiAgIFN1cHBvcnQgbWFuaXB1bGF0aW9uIG9mIHRoZSBOZXQtU05NUCBleHRlbnNpb24gYWNjZXNzIHRhYmxlLgoKMjAwNi0wOS0wNSAwMToyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBTdXBwb3J0IGJvdGggZXhhY3QgYW5kIGNvbnRleHQgcHJlZml4IG1hdGNoZXMgZm9yIHRoZSBjb252ZW5pZW5jZSBkaXJlY3RpdmVzCiAgIChhcyB3ZWxsIGFzICdhdXRoYWNjZXNzJykuCgoyMDA2LTA5LTA1IDAxOjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jOgoKICAgQmV0dGVyIGhhbmRsaW5nIG9mIHJvdyBjcmVhdGlvbi9kZWxldGlvbi4KICAgU3VwcHJlc3MgdmFyaW91cyBtaW5vciB0eXBlIG1pc21hdGNoZXMuCgoyMDA2LTA5LTA0IDE2OjA3ICB0YW5kZXJzCgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgYWRkIChwcmVsaW1pbmFyeSkgaW5mb3JtYXRpb24gb24gbmV3IE5FVC1TTk1QLVZBQ00tTUlCCgoyMDA2LTA5LTA0IDE2OjAwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzogdGNwLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLAogICAgIHRjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLy5jdnNpZ25vcmUsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlLy5jdnNpZ25vcmUsCiAgICAgdWRwLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLAogICAgIHVkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS8uY3ZzaWdub3JlOgoKICAgdHdlYWsgLmN2c2lnbm9yZSBmaWxlcyBmb3IgbmV3IHVkcC1taWIvdGNwLW1pYgoKMjAwNi0wOS0wNCAxNTo1NSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDA2LTA5LTA0IDA3OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmM6CgogICBUZWxsIGEgZnVzc3kgY29tcGlsZXIgKFMvVywgbm90IGh1bWFuKSB0byBzaHV0IHVwLgoKMjAwNi0wOS0wNCAwNjozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCBhZ2VudC9leHRlbmQuYywKICAgICB1Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBEcm9wIHRoZSBvbGQgVUNEIGV4dGVuc2libGUgbW9kdWxlIGZyb20gdGhlIGRlZmF1bHQgYnVpbGQuCiAgIFJlbHkgb24gdGhlIHJld29ya2VkIChjYWNoZWQsIHZhbGlkIHN5bnRheCkgImV4dGVuZCIgbW9kdWxlIGluc3RlYWQuCgoyMDA2LTA5LTA0IDA0OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jLCBhcHBzL3NubXB0cmFwZC5jCjoKCiAgIFN1cHBvcnQgcmVnaXN0ZXJpbmcgVkFDTSBleHRlbnNpb25zIGluIGEgbm9uLWRlZmF1bHQgY29udGV4dAogICAoc3VjaCBhcyB1c2VkIGJ5ICdzbm1wdHJhcGQnKQoKMjAwNi0wOS0wNCAwNDowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIFN1cHBvcnQgbm9uLWRlZmF1bHQgY29udGV4dHMgd2l0aCB0aGUgYXV0aCogY29udmVuaWVuY2UgZGlyZWN0aXZlcy4KCjIwMDYtMDktMDQgMDQ6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgVHdlYWsgdmFyaWFibGUgbmFtZXMgdG8gYmUgbGVzcyBjb25mdXNpbmcuCiAgICgiYXV0aHR5cGUiIG5vdyBoYXMgYSBzcGVjaWZpYyBtZWFuaW5nLCBjb250cmFyeSB0byB0aGUgdXNlIGhlcmUpLgoKMjAwNi0wOS0wMSAxNzozNCAgcnN0b3J5CgogICAqIGRpc3QvTWFrZWZpbGU6CgogICBmaXggY3Zzcm9vdAoKMjAwNi0wOS0wMSAxNjoxOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBkb2N1bWVudCAtWQoKMjAwNi0wOS0wMSAxNjoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIG1ha2Ugc25tcGQgc3VwcG9ydCB0aGUgLVkgY29uZmlnIGZsYWcgbGlrZSB0aGUgb3RoZXIgY29tbWFuZHMgZG8KCjIwMDYtMDktMDEgMTU6MzEgIHRhbmRlcnMKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSBVcGRhdGUgdG8gNS40LmRldgogICAtIGludHJvZHVjZSAle2xpYmN1cnJlbnR9CiAgIC0gdXNlIG5ldyBkaXNtYW4vZXZlbnQgbmFtZQogICAtIGFkZDogUkVBRE1FLmFpeCBSRUFETUUub3NYIFJFQURNRS50cnU2NCBSRUFETUUuaXJpeCBSRUFETUUuYWdlbnQtbWlicwogICAgIFJFQURNRS5QYW5hc29uaWNfQU0zWC50eHQKICAgLSBhZGQgbmV3IE5ldFNOTVA6OmFnZW50OjpTdXBwb3J0CgoyMDA2LTA5LTAxIDEwOjU4ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIC0gbm90ZSBuZXcgbWliMmMuZW11bGF0aW9uLmNvbmYKICAgLSBub3RlIG5ldyBsaW51eCBpcHY2IGF3YXJlIGRlZmF1bHQgbWlicwogICAtIGV4cGFuZCBzY29weSBvZiBub3RlIG9uIGZpeGVzIHRvIG5vbi1saW51eCBpcGFkZHJlc3Mgc2l6ZQoKMjAwNi0wOS0wMSAxMDo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICBhZGQgdGNwIGFuZCB1ZHAgbWliIHRhYmxlcyB0byBsaW51eCBtaWJJSSBtb2R1bGUgbGlzdAoKMjAwNi0wOS0wMSAxMDo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jOgoKICAgZml4IGJ5dGVvcmRlciBwcm9ibGVtcwoKMjAwNi0wOS0wMSAxMDo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oOgoKICAgLSBvbmx5IGxvZyBlcnJvciBvbmNlIGlmIHdlIGNhbid0IG9wZW4gL3Byb2MvbmV0L3RjcDYKICAgLSBhZGQgYWJpbGl0eSB0byBvbmx5IGxvYWQgaXB2NCBkYXRhCgoyMDA2LTA5LTAxIDEwOjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYzoKCiAgIGZpeCBieXRlb3JkZXIgcHJvYmxlbXMKCjIwMDYtMDktMDEgMTA6MzggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgbmV3IGZ1bmN0aW9uIHRvICdieXRlc3dhcCcgaGV4LXN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiBhZGRyZXNzCgoyMDA2LTA5LTAxIDA3OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCB1ZHBUYWJsZS5jLAogICAgIHZhcl9yb3V0ZS5jOgoKICAgbW9yZSBpcCBhZGRyZXNzIHNpemUgZml4ZXMKCjIwMDYtMDktMDEgMDU6NDEgIHRhbmRlcnMKCiAgICogcGVybC86IFRyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIGFnZW50L2FnZW50LnhzCjoKCiAgIGFsaWduIHRoZSBuZXRzbm1wX29pZCBzdHJ1Y3QgZGVmaW5pdGlvbiAob2lkLCBzaXplX3QhKSB3aXRoIHRoZSBvbmUgZnJvbSBOZXRTTk1QOjpPSUQKCjIwMDYtMDktMDEgMDI6NDQgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFpeCwgUkVBRE1FLnNvbGFyaXMsIFJFQURNRS50cnU2NDoKCiAgIGFkZCBub3RlcyBvbiBJUHY2CgoyMDA2LTA4LTMxIDE3OjQzICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmaXggdHlwbwoKMjAwNi0wOC0zMSAxNzoxNSAgdGFuZGVycwoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBPSUQgbGVuIHNob3VsZCBiZSBhIHNpemVfdAoKMjAwNi0wOC0zMSAxNTo0NyAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBVc2UgY29ycmVjdCBzb2NrYWRkcl9zdG9yYWdlLltfX11zc19mYW1pbHkgZGVwZW5kaW5nIG9uIHRoZSByZXN1bHQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlndXJlIHRlc3QuIE1ha2VzIHRoZSBVRFBJUHY2IHRyYW5zcG9ydCBjb2RlIHdvcmsgb24gYXQgbGVhc3QgQUlYIGFuZCBUcnU2NCBVbml4LgoKMjAwNi0wOC0zMSAxNTo0NCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWNjb25maWcuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY2hlY2sgZm9yIHNvY2thZGRyX3N0b3JhZ2UuW19fXXNzX2ZhbWlseSB1c2VkIGluIHRoZSBVRFBJUHY2IHRyYW5zcG9ydCBjb2RlCgoyMDA2LTA4LTMxIDEyOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBmaXggSXBBZGRyZXNzIGxlbmd0aHMgb24gbm9uLUxpbnV4IDY0Yml0IHBsYXRmb3JtcwoKMjAwNi0wOC0zMSAwMTozNCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19saW51eC5jOgoKICAgYWRkIG1pc3Npbmcgc2VtaWNvbG9uIChldmVuIG9uZS1saW5lIHBhdGNoZXMgY2FuIGVhc2lseSBicmVhayB0aGUgYnVpbGQgOy0pKQoKMjAwNi0wOC0zMCAxNzozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIGNvdmVydGl5IGJ1ZyAxMjc6IGRvdWJsZSBjaGVjayBuYW1lX3AgcG9pbnRlciBhY3R1YWxseSBnb3QgZmlsbGVkIGJlZm9yZSAgdXNpbmcgaXQKCjIwMDYtMDgtMzAgMTc6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBtYWtlIHN1cmUgc25tcF9sb2dfb3B0aW9ucyBjaGVja3MgZm9yIE5VTExzIG9mIGFyZ3YgaW4gaWxsZWdhbCBjYWxscyAoc2hvdWxkIG5ldmVyIGhhcHBlbikKCjIwMDYtMDgtMzAgMTc6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIGNvdmVydHkgYnVnIDU5OiBkb3VibGUgY2hlY2sgc3lzdGVtIGhhbmRsZXMgaW50L3VpbnQgY29udmVyc2lvbnMgcHJvcGVybHkKCjIwMDYtMDgtMzAgMTc6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmM6CgogICBjb3ZlcnR5IGJ1ZyAxNTU6IGZyZWUgZmlsZSBwb2ludGVyIGR1cmluZyBpcHY2IGZvcndhcmRpbmcKCjIwMDYtMDgtMzAgMTc6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGNvdmVydHkgYnVnIDE1NjogZnJlZSByZXNvdXJjZXMgZHVyaW5nIG1pYiBwYXJzaW5nIGZhaWx1cmVzCgoyMDA2LTA4LTMwIDE3OjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICBjb3ZlcnR5IGJ1ZyA2MDogZG91YmxlIGNoZWNrIHRoYXQgc3lzdGVtcyBoYW5kbGUgbmVnYXRpdmUgcmV0dXJucyB0byB1bnNpZ25lZCB2YXJpYWJsZXMgcHJvcGVybHkKCjIwMDYtMDgtMzAgMDg6MzUgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggcHJpbnRpbmcgb2Ygb3BhcXVlIGZsb2F0IGFuZCBkb3VibGUgY29tcGlsZSB3YXJuaW5ncwoKMjAwNi0wOC0zMCAwODozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYzoKCiAgIFNpbXBsZSBTRVQgc3VwcG9ydCBmb3IgdGhlIE5ldC1TTk1QIFZBQ00gZXh0ZW5zaW9ucy4KCjIwMDYtMDgtMzAgMDg6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIHNubXBsaWIvdmFjbS5jOgoKICAgUGVyc2lzdGVudCBzdG9yYWdlIGZvciBOZXQtU05NUCBWQUNNIGV4dGVuc2lvbiBhdXRodHlwZXMuCgoyMDA2LTA4LTI5IDE3OjU5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkIGdlbmVyaWMgSVB2NiBzdGFjayBkZXRlY3Rpb24sIGUuZy4gZm9yIFNvbGFyaXMKCjIwMDYtMDgtMjkgMDk6MDUgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtVkFDTS1NSUIudHh0OgoKICAgRml4IGluY29uc2lzdGVudCBuYW1pbmcuCgoyMDA2LTA4LTI5IDA2OjQwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIEd1YXJkIGFnYWluc3QgbWlzc2luZyAob3IgaW5jb21wbGV0ZSkgQ1BVIGhpc3Rvcnkgc3RhdHMuCgoyMDA2LTA4LTI5IDA2OjE5ICB0YW5kZXJzCgogICAqIG1pYnMvTkVULVNOTVAtVkFDTS1NSUIudHh0OgoKICAgZml4IHNvbWUgYmFzaWMgc21pbGludCBjb21wbGFpbnRzCgoyMDA2LTA4LTI5IDA1OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmgsCiAgICAgbWlicy9ORVQtU05NUC1WQUNNLU1JQi50eHQ6CgogICBQcm92aXNpb25hbCAocmVhZC1vbmx5KSBpbXBsZW1lbnRhdGlvbiBvZiBhIE1JQiBmb3IgdGhlIE5ldC1TTk1QCiAgIGFjY2VzcyBjb250cm9sIGV4dGVuc2lvbnMuCgoyMDA2LTA4LTI5IDAzOjExICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBHZXQtTmV4dCBwcm9jZXNzaW5nIGRpZG4ndCBoYW5kbGUgdXBkYXRpbmcgdGhlIGluZGV4IGxpc3QgZm9yIG11bHRpLWluZGV4ZWQKICAgdGFibGVzIHByb3Blcmx5LiAgSXQgd29ya2VkIE9LIGZvciB0aGUgZmlyc3QgY2FuZGlkYXRlIGZvdW5kLCBidXQgc3Vic2VxdWVudAogICAoYmV0dGVyKSBjYW5kaWRhdGVzIG9ubHkgdXBkYXRlZCB0aGUgZmlyc3QgaW5kZXggdmFsdWUuCiAgICAgVGhpcyBjb2RlIGlzIHNsaWdodGx5IGxlc3MgZWZmaWNpZW50LCBidXQgd29ya3MgYXMgZXhwZWN0ZWQuCgoyMDA2LTA4LTI5IDAzOjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdF9saW51eC5jLCB2bXN0YXRfbGludXguaAo6CgogICBTaGlwIG9sZGVyIHZtc3RhdCBpbXBsZW1lbnRhdGlvbiBjb2RlIC0gYWxsb3cgYWRtaW5zIHRoZSBvcHRpb24gb2YgcmV2ZXJ0aW5nLgoKMjAwNi0wOC0yOSAwMzowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1X25saXN0LmMsIGNwdV9zeXNjdGwuYwo6CgogICBCZXR0ZXIgaGFuZGxpbmcgb2Ygc2luZ2xlLUNQVSBzeXN0ZW1zLgogICBEb24ndCBjcmVhdGUgbmV3IENQVSBlbnRyaWVzIHdoZW4gbG9hZGluZyBzdGF0cy4KICAgW0Rvbid0IGNvbW1pdCBmcm9tIG1vcmUgdGhhbiBvbmUgd29ya2luZyBzeXN0ZW0sIERhdmUhXQoKMjAwNi0wOC0yOSAwMjozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBLZWVwIGJyYWNlcyBiYWxhbmNlZCAtIGl0IG1ha2VzIHRyYWNpbmcgY29kZSAqc28qIG11Y2ggZWFzaWVyIQoKMjAwNi0wOC0yNyAxNDozNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIHVkcFRhYmxlIHJlcXVpcmVzIC9kZXYva21lbSBhY2Nlc3MgKHJvb3Q6c3lzdGVtKSBvbiBBSVgKCjIwMDYtMDgtMjcgMTA6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgaG9zdC9ocl9wcm9jLmMsCiAgICAgaG9zdC9ocl9wcm9jLmg6CgogICBVc2UgSEFMIENQVSBpbnRlcmZhY2UgZm9yIGJvdGggVUNELXNwZWNpZmljIGFuZCBIb3N0UmVzIHByb2Nlc3NvciBtb2R1bGVzLgoKMjAwNi0wOC0yNyAxMDowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1Lmg6CgogICBFbnN1cmUgdGhhdCBzb21lIGZvcm0gb2YgSEFMIENQVSBtb2R1bGUgaXMgaW5jbHVkZWQgZm9yIGFsbCBzeXN0ZW1zLgoKMjAwNi0wOC0yNyAxMDowMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1X251bGwuYywgY3B1X251bGwuaDoKCiAgIER1bW15IEhBTCBDUFUgbW9kdWxlLCBmb3Igc3lzdGVtcyB0aGF0IGRvbid0IHVzZSBhbnkgb2YgdGhlCiAgIHN1cHBvcnRlZCBpbnRlcmZhY2VzLgoKMjAwNi0wOC0yNyAwOTo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYzoKCiAgIEhhbmRsZSBob2xlcyBpbiB0aGUgdGFibGUgcHJvcGVybHkuCgoyMDA2LTA4LTI3IDA5OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHUuYywgY3B1X2tlcm5kYXRhLmMsCiAgICAgY3B1X3BlcmZzdGF0LmMsIGNwdV9wc3RhdC5jOgoKICAgQmV0dGVyIGhhbmRsaW5nIG9mIHNpbmdsZS1DUFUgc3lzdGVtcy4KICAgRG9uJ3QgY3JlYXRlIG5ldyBDUFUgZW50cmllcyB3aGVuIGxvYWRpbmcgc3RhdHMuCgoyMDA2LTA4LTI3IDA5OjQzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2NwdS5oLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa3N0YXQuYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmM6CgogICBSZXBvcnQgcHJvY2Vzc29yIHN0YXR1cwoKMjAwNi0wOC0yNiAxNjoyMyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgbWFrZSBhdXRvaGVhZGVyIHByb3RlY3QgUEFDS0FHRV8qIHZhcmlhYmxlcwoKMjAwNi0wOC0yNSAxNjoyMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzY29uZmlnLCBTdjN1c21jb25maWdhZ2VudCwKICAgICBTdmFueWNvbmZpZzoKCiAgIEZpeCBzbXV4c29ja2V0IGNvbmZpZyB0byBwb2ludCB0byAvc211eF9zb2NrZXQgaW5zdGVhZCBvZiAvZGV2L251bGwgdG8gYXZvaWQgcmVtb3ZpbmcgL2Rldi9udWxsIHdoZW4gcnVubmluZyBhcyByb290LgoKMjAwNi0wOC0yNSAwOTo0MyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDbGFyaWZ5IGRpc2N1c3Npb24gb2YgdmlldyBtYXNrcy4gIFRoYW5rcyB0byBEb21pbmlxdWUgQmFzdGllbi4KCjIwMDYtMDgtMjUgMDc6MjAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBhbGxvdyBmb3Igd2hpdGVzcGFjZSBpbiBQZXJsIGNjIChlLmcuIG9uIElSSVggNi41KQoKMjAwNi0wOC0yNSAwNjo1NSAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBwcm9wZXJseSBjYXN0IHdoZW4gcHJpbnRpbmcgcG9pbnRlcnMKCjIwMDYtMDgtMjUgMDY6MzUgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIG5ldHNubXBfdHJhcGRfY2hlY2tfYXV0aCgpIG9ubHkgdGFrZXMgYSBzaW5nbGUgYXJndW1lbnQKCjIwMDYtMDgtMjUgMDU6MTMgIHRhbmRlcnMKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgZml4OiAncmV0dXJuJyB3aXRoIG5vIHZhbHVlLCBpbiBmdW5jdGlvbiByZXR1cm5pbmcgbm9uLXZvaWQKCjIwMDYtMDgtMjUgMDQ6NTEgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5oOgoKICAgYWRkIHByb3RvdHlwZSBmb3IgbmV0c25tcF90cmFwZF9jaGVja19hdXRoKCkKCjIwMDYtMDgtMjUgMDQ6NDYgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICNpbmNsdWRlICJtaWJJSS92YWNtX2NvbmYuaCIgZm9yIHZhY21fc3RhbmRhcmRfdmlld3MKCjIwMDYtMDgtMjUgMDQ6MzggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBwcmludCBvaWQgYXMgdW5zaWduZWQgbG9uZwoKMjAwNi0wOC0yNSAwMjo1NyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsOgoKICAgbWFrZSBzdXJlIHdlIGNhbiBmdWxmaWxsIGV4dGVybmFsIGxpYnJhcnkgZGVwZW5kZW5jaWVzCgoyMDA2LTA4LTI1IDAyOjQxICB0YW5kZXJzCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgc25tcGxpYi9jb250YWluZXIuYwosIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICAgIHNubXBsaWIvc3lzdGVtLmM6CgogICBpbml0aWFsaXplIHZhcmlhYmxlcwoKMjAwNi0wOC0yNSAwMjozMyAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBwcm9wZXIgdHlwZXMgaW4gZm9ybWF0IHN0cmluZwoKMjAwNi0wOC0yNSAwMTo0OSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCAiLVV4IiBiZWZvcmUgIi1EeD14IiBmb3IgZ2NjIHRvIGF2b2lkIGFubm95aW5nIGNvbXBpbGVyIHdhcm5pbmdzCiAgIG9uIHBsYXRmb3JtcyB0aGF0IGFscmVhZHkgZGVmaW5lIHggKHRvIDEpLgoKMjAwNi0wOC0yNCAxNzo0MSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIHVzZSBuZXcgc25tcF9jc3RyY2F0CgoyMDA2LTA4LTI0IDE3OjM2ICB0YW5kZXJzCgogICAqIHNubXBsaWIvbWliLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgSW50cm9kdWNlIHNubXBfY3N0cmNhdCB0aGF0IHRha2VzIGEgKGNoYXIgKikgYXMgdGhlIGxhc3QgYXJndW1lbnQsCiAgIGNhc3RzIGl0IHRvIGEgKGNvbnN0IHVfY2hhciAqKSBhbmQgY2FsbHMgc25tcF9zdHJjYXQuIFNpbXBsaWZpZXMgY29kZQogICBhbmQgZml4ZXMgYSAqbG90KiBvZiBjb21waWxlciB3YXJuaW5ncy4KCjIwMDYtMDgtMjQgMTY6MDQgIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsIHBlcmwvU05NUC9TTk1QLnhzLAogICAgIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3RleHRfdXRpbHMuYzoKCiAgIC0gcG9pbnRlciBzaXplIGZpeGVzIGZyb20gZGFyaXgKICAgLSBpbml0aWFsaXplIHZhcmlhYmxlcwogICAtIHByaW50IHNpemVfdCBhcyB1bnNpZ25lZCBsb25nCgoyMDA2LTA4LTI0IDE1OjQ1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgSVNPIEM5MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZQoKMjAwNi0wOC0yNCAxMzoyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBydW4gYXV0b2hlYWRlcgoKMjAwNi0wOC0yNCAxMzoyMSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBhZGQgSEFWRV9QRVJMX0VWQUxfUFYgdW5kZWYgZm9yIHdob2V2ZXIgZm9yZ290IHRvIGFkZCBpdAoKMjAwNi0wOC0yNCAxMzoxOSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBhZGQgY29uZmlnX2Vycm9yIGFuZCBjb25maWdfd2FybmluZyBlbXB0eSBtYWNyb3MKCjIwMDYtMDgtMjQgMDk6MTQgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBQcmludCBzaXplX3QgYXMgdW5zaWduZWQgbG9uZy4KCjIwMDYtMDgtMjQgMDg6NDEgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgS2VlcCBwcmludGluZyBzb21lIGtub3ctdG8tYmUtc21hbGwgc2l6ZV90IHZhbHVlcyBhcyBpbnRlZ2VycywgYnV0IHByb3Blcmx5CiAgIGNhc3QgdGhlbSB0byBxdWlldCB0aGUgY29tcGlsZXIuCgoyMDA2LTA4LTI0IDA3OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgdXNlIG5ldyBpbnRlcmZhY2Vfc3lzY3RsIGZvciBPcGVuQlNEIDIsIEZyZWVCU0QgNC02CgoyMDA2LTA4LTI0IDA3OjMwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlX29wZW5ic2QuYywKICAgICBpbnRlcmZhY2Vfc3lzY3RsLmMsIGludGVyZmFjZV9zeXNjdGwuaDoKCiAgIHJlbW92ZSBPUyBzcGVjaWZpYyBmaWxlIGluIGZhdm9yIG9mIG1ldGhvZCBzcGVjaWZpYyBmaWxlcwoKMjAwNi0wOC0yNCAwNTo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1X2tzdGF0LmMsIGNwdV9ubGlzdC5jCiwgY3B1X3BzdGF0LmMsIGNwdV9zeXNjdGwuYzoKCiAgIEluY2x1ZGUgZGVzY3JpcHRpb25zIGZvciBpbmRpdmlkdWFsIENQVSBlbnRyaWVzLgoKMjAwNi0wOC0yNCAwNTo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1X2tlcm5kYXRhLmgsCiAgICAgY3B1X2tlcm5kYXRhLmM6CgogICBJbXBsZW1lbnRhdGlvbiBmb3IgRHluaXggKGFuZCBzaW1pbGFyKSBzeXN0ZW1zLgoKMjAwNi0wOC0yNCAwNTo0OCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9jcHUuaCwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYzoKCiAgIFJlbWVtYmVyIHRoZSBudW1iZXIgb2YgQ1BVcyBkZXRlY3RlZC4KICAgKFE6IHdoYXQgdG8gZG8gaWYgdGhpcyBjaGFuZ2VzPykKCjIwMDYtMDgtMjMgMTc6MzMgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUHJpbnQgc2l6ZV90IGFzIHVuc2lnbmVkIGxvbmcuIEZpeGVzIDY0LWJpdCBjb21waWxlciB3YXJuaW5ncy4KCjIwMDYtMDgtMjMgMTc6MTIgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgQUNfUFJPR19FR1JFUCBhbmQgdXNlICRFR1JFUCBpbnN0ZWFkIG9mIGVncmVwCgoyMDA2LTA4LTIzIDE2OjQzICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIGZpeCBzdHJ1Y3QgdHlwZSBpbiBjYXNlCgoyMDA2LTA4LTIzIDE2OjM1ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDYtMDgtMjMgMTY6MzQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgYmFjayBjaGVjayBmb3Igc2VkCgoyMDA2LTA4LTIzIDEzOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBza2lwIGlmQ29ubmVjdG9yUHJlc2VudC9pZkxpbmtVcERvd25UcmFwRW5hYmxlIGlmIG5vIGRhdGEKCjIwMDYtMDgtMjMgMTI6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIGNvcnJlY3Qgc2NhbGUgd2hlbiB1c2luZyBpZlNwZWVkIGFzIGlmSGlnaFNwZWVkCgoyMDA2LTA4LTIzIDExOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICB1c2UgaWZTcGVlZCBpZiBpZkhpZ2hTcGVlZD09MAoKMjAwNi0wOC0yMyAwODo1MyAgdGFuZGVycwoKICAgKiBzbm1wbGliLzogY29udGFpbmVyLmMsIGNvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywKICAgICBkYXRhX2xpc3QuYywga2V5dG9vbHMuYywgbWliLmMsIG9pZF9zdGFzaC5jCiwgc2NhcGkuYywgc25tcENhbGxiYWNrRG9tYWluLmMsCiAgICAgc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKLCBzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsCiAgICAgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB2My5jLCB0ZXh0X3V0aWxzLmMsCiAgICAgdG9vbHMuYzoKCiAgIENhc3QgYXdheSBjb21waWxlciB3YXJuaW5ncy9lcnJvcnMgYXQgYSBsb3Qgb2YgcGxhY2VzLgoKMjAwNi0wOC0yMyAwNjowMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIGFjdGl2YXRlIGNwdSBIQUwgY29kZSBmb3IgQUlYIDQueAoKMjAwNi0wOC0yMyAwMzoyMyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIERvbid0IGNoZWNrIHR3aWNlIGZvciBzZWQuCgoyMDA2LTA4LTIzIDAzOjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIE1vcmUgcG9ydGFibGUgaGFuZGxpbmcgb2Ygc3RyaW5nIGFzc2lnbm1lbnRzLgogICBSZW1vdmUgQysrLXN0eWxlIGNvbW1lbnRzLgoKMjAwNi0wOC0yMyAwMzowNyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBtb3JlIHdoaXRlc3BhY2UgaXNzdWVzIGluIG1pYiBtb2R1bGUgY29uZmlnCgoyMDA2LTA4LTIyIDE0OjQ4ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgaGFyZHdhcmUvY3B1Lmg6CgogICBhY3RpdmF0ZSBtZW0vY3B1IEhBTCBjb2RlIGZvciBBSVgKCjIwMDYtMDgtMjIgMDk6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYzoKCiAgIFVzZSBjb3JyZWN0IEFQSSBjYWxscy4KCjIwMDYtMDgtMjIgMDc6MDAgIHRhbmRlcnMKCiAgICogUkVBRE1FLnRydTY0OgoKICAgVXBkYXRlIGZvciA1LjQgYW5kIGVtYmVkZGVkIFBlcmwuCgoyMDA2LTA4LTIyIDA2OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHVfa3N0YXQuaCwgY3B1X3BlcmZzdGF0LmgKLCBjcHVfcHN0YXQuaDoKCiAgIE1pc3NpbmcgSEFMIENQVSBBUEktc3BlY2lmaWMgaGVhZGVyIGZpbGVzCgoyMDA2LTA4LTIyIDA2OjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jOgoKICAgSGFuZGxlIGNoYW5nZSBpbnRyb2R1Y2VkIHdpdGggTmV0QlNEIDMuMC4KICAgc3lzY3RsKCBLRVJOX0NQX1RJTUUgKSBub3cgcmV0dXJucyA2NC1iaXQgdmFsdWVzLgoKMjAwNi0wOC0yMiAwNToxNSAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmg6CgogICBCZSBjb25zaXN0ZW50IGluIHVzZSBvZiBFdmVudC1NSUIgbW9kdWxlIHRlcm1pbm9sb2d5LgoKMjAwNi0wOC0yMiAwMzozNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIEltcHJvdmUgcm9idXN0bmVzcyBvZiB0aGUgZW1iZWRkZWQgcGVybCBjaGVja3MuCgoyMDA2LTA4LTIyIDAyOjI2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgQ2hhbmdlICIjaWYgZnJlZWJzZDQiIHRvICIjaWZkZWYgZnJlZWJzZDQiIHRvIG1hdGNoIGN1cnJlbnQgLURmcmVlYnNkND1mcmVlYnNkNC4KCjIwMDYtMDgtMjIgMDI6MjIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N0b3JhZ2UuYywgaG9zdC9ocl9zd3J1bi5jCiwgbWliSUkvcm91dGVfaGVhZGVycy5oOgoKICAgQ2hhbmdlICIjaWYgc29sYXJpczIiIHRvICIjaWZkZWYgc29sYXJpczIiIHRvIG1hdGNoIGN1cnJlbnQgLURzb2xhcmlzMj1zb2xhcmlzMi4KCjIwMDYtMDgtMjEgMTc6NDcgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAiLVUiIGRvZXNuJ3Qgd29yayBhcyBleHBlY3RlZCB3aXRoIFN1bidzIGNjLgoKMjAwNi0wOC0yMSAxNzoyNiAgdGFuZGVycwoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIFBlcmxfZXZhbF9wdiAodGhlIHVwcGVyLWNhc2UgdmFyaWFudCkgbmVlZHMgdGhyZWUgYXJndW1lbnRzIGluc3RlYWQgb2YgdHdvLgoKMjAwNi0wOC0yMSAxNzowNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFlldCBhbm90aGVyIGF0dGVtcHQgdG8gZml4IHRoZSBQQVJUSUFMVEFSR0VUT1MgKGUuZy4gc29sYXJpczIpIGRlZmluaXRpb25zLgoKMjAwNi0wOC0yMSAxNjozMyAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHJlcGxhY2VtZW50IGZvciBuZXdTVnV2KCkgYmVjYXVzZSBwZXJsIGRpZG4ndCBoYXZlIGl0IHVudGlsIDUuNi4wCgoyMDA2LTA4LTIxIDE1OjQwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUmV3b3JkaW5nIG9mIHBlcmwgY2MgY2hlY2sgZXJyb3JzLgoKMjAwNi0wOC0yMSAxNDowNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgY2hhbmdlIHRoZSBPUyBkZWZpbmUgdG8gcmVkZWZpbmUgYXMgdGhlIHNhbWUgbmFtZQoKMjAwNi0wOC0yMSAwOTo0NCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW46CgogICAtIGFkZCBwZXJsIGNjIGNoZWNrcyBmb3IgZW1iZWRkZWQgcGVybAogICAtIGludHJvZHVjZSAtLWRpc2FibGUtcGVybC1jYy1jaGVja3MgdG8gZGlzYWJsZSB0aGVzZSB0ZXN0cwoKMjAwNi0wOC0yMSAwOTo0MiAgdGFuZGVycwoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUuaW4KCjIwMDYtMDgtMjEgMDM6NTMgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIGZpeCBjb25maWdfYXJjaF9yZXF1aXJlCiAgIC0gcmVtb3ZlIG9ic29sZXRlIEFDX0VYRUVYVAoKMjAwNi0wOC0yMSAwMjoyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1Lmg6CgogICBBY3RpdmUgSEFMIENQVSBtb2R1bGUgZm9yICpCU0Qgc3lzdGVtcy4KCjIwMDYtMDgtMjEgMDI6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBSZXRyaWV2ZSBhbmQgcmVwb3J0IG1lbW9yeS1yZWxhdGVkIHN0YXRpc3RpY3MuCiAgIChTdGlsbCBub3QgY29udmluY2VkIHRoZXNlIHJlYWxseSBiZWxvbmcgaGVyZS4uLi4pCgoyMDA2LTA4LTIxIDAyOjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jOgoKICAgUmV0cmlldmUgQ1BVIHN0YXRzIGNvcnJlY3RseS4KCjIwMDYtMDgtMTggMTU6MjggIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggcGVybCAtVjpjYwoKMjAwNi0wOC0xOCAwOTowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXQuYywgdm1zdGF0Lmg6CgogICBVc2UgdGhlIEhBTCBDUFUgbW9kdWxlcyB0byBpbXBsZW1lbnQgVUNELVNOTVAtTUlCOjpzeXN0ZW1TdGF0cy4KICAgSW5pdGlhbGx5IG9ubHkgdXNlZCBieSBMaW51eCBzeXN0ZW1zLCBidXQgdGhpcyBjb2RlIGlzIG5vdwogICBmdW5kYW1lbnRhbGx5IGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudC4KCjIwMDYtMDgtMTggMDg6NTggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1Lmg6CgogICBBZGRpdGlvbmFsIGZpZWxkcyBmb3IgQ1BVLXJlbGF0ZWQgKHNvcnQtb2YpIGhpc3RvcnksIGV0Yy4KCjIwMDYtMDgtMTggMDg6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS86IGNwdS5jLCBjcHVfa2VybmRhdGEuYywKICAgICBjcHVfa3N0YXQuYywgY3B1X2xpbnV4LmMsIGNwdV9ubGlzdC5jLAogICAgIGNwdV9ubGlzdC5oLCBjcHVfcGVyZnN0YXQuYywgY3B1X3BzdGF0LmMsCiAgICAgY3B1X3N5c2N0bC5jLCBjcHVfc3lzY3RsLmg6CgogICBQcm92aXNpb25hbCBoYXJkd2FyZS1hYnN0cmFjdGlvbiBtb2R1bGVzIGZvciBhc3NvcnRlZCBDUFUgc3RhdGlzdGljcy4KICAgKGluY2x1ZGluZyBtdWx0aS1DUFUgaW5mb3JtYXRpb24pCgoyMDA2LTA4LTE4IDA4OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIHlldCBtb3JlIHBvdGVudGlhbCBwZXJsIGZpeGVzCgoyMDA2LTA4LTE4IDA4OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIG1vcmUgcG90ZW50aWFsIHBlcmwgZml4ZXMKCjIwMDYtMDgtMTggMDc6NDQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICB1c2UgInBlcmwgLVY6Y2MiIHRvIGZpbmQgUGVybCdzIGNjCgoyMDA2LTA4LTE4IDA3OjM3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNvbW1lbnRpbmcgYW5kIGEgYml0IG9mIHNwYWNpbmcgaW4gdGhlIG1vZHVsZSBsaXN0IGNvZGUKCjIwMDYtMDgtMTcgMTc6MTkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhY2NvbmZpZy5oLAogICAgIGFnZW50L3NubXBfcGVybC5jLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIG1ha2UgY29uZmlndXJlIGJhaWwgd2hlbiBlbWJlZGRlZCBwZXJsIGZ1bmN0aW9uIGNhbiBub3QgYmUgZm91bmQgOyBmaXggdGhlIGZhY3QgdGhhdCAzIGZ1bmN0aW9ucyBhcmUgbmVlZGVkIG5vdCAyIGFuZCB3b3JrIGFyb3VuZCBhdXRvY29uZiB1cHBlci1jYXNlIG9ubHkgZGVmaW5lcyB0aGF0IGNhdXNlcyB0aGUgZXhpc3RpbmcgYnJva2VuLXBlcmwgcHJvYmxlbTsgTkVXUyAtIHBlcmw6IGZpeCB0aGUgJ2Jyb2tlbiBwZXJsJyBpc3N1ZSB3aXRoIGVtYmVkZGVkIHBlcmwKCjIwMDYtMDgtMTcgMTY6MTQgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBic2RpMy5oLCBic2RpNC5oLCBkYXJ3aW4uaAosIGRhcndpbjcuaCwgZHluaXguaCwgZnJlZWJzZDMuaCwKICAgICBmcmVlYnNkNC5oLCBmcmVlYnNkNS5oLCBmcmVlYnNkNi5oLCBnZW5lcmljLmgKLCBocHV4LmgsIG1pbmd3MzJtc3ZjLmgsIG5ldGJzZC5oLAogICAgIG9wZW5ic2QuaCwgb3NmNS5oOgoKICAgIiNkZWZpbmUgeCB4IiBpbnN0ZWFkIG9mICIjZGVmaW5lIHggMSIgZm9yIGFsbCBwbGF0Zm9ybSBuYW1lcwoKMjAwNi0wOC0xNyAwODo0NCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgQlVHOiBDb3Zlcml0eSAjMTQ5OiBwb3RlbnRpYWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlCgoyMDA2LTA4LTE3IDA4OjQxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQtbWliLmg6CgogICBEcm9wIERpc01hbiBFdmVudCBNSUIgcmUtd3JpdGUgd2FybmluZy4KCjIwMDYtMDgtMTcgMDg6MTYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEJVRzogQ292ZXJpdHkgIzE1OTogcG90ZW50aWFsIHJlc291cmNlIGxlYWsgYWZ0ZXIgbWFsbG9jIGZhaWx1cmUKCjIwMDYtMDgtMTcgMDg6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmMKLCBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCiwgdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jCiwgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMKLCB1ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBCVUc6IENvdmVyaXR5ICM1NjogZG9uJ3QgY29udGludWUgaWYgbWFsbG9jIGZhaWxzCgoyMDA2LTA4LTE3IDA3OjUwICByc3RvcnkKCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYwosIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIEJVRzogQ292ZXJpdHkgIzU2OiBkb24ndCBjb250aW51ZSBhZnRlciBmYWlsZWQgbWFsbG9jCgoyMDA2LTA4LTE3IDA3OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYzoKCiAgIEJVRzogQ292ZXJpdHkgIzE3NDogZG9uJ3QgcmV0dXJuIHB0ciB0byBmcmVlZCBtZW1vcnkKCjIwMDYtMDgtMTcgMDE6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jOgoKICAgRml4IHZhcmlhYmxlIHR5cGVzIHRvIG1hdGNoIHBhcmFtZXRlciB1c2FnZS4gIFNwb3R0ZWQgYnkgU2NvdHQgTW95bmVzLgoKMjAwNi0wOC0xNiAxOToyOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggaXNzdWUgd2l0aCBPUyBuYW1lIGJlaW5nIGRlZmluZWQgYXMgMQoKMjAwNi0wOC0xNiAxNjowOCAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHVwZGF0ZSBmb3IgcmV3b3JrZWQgU29sYXJpcyBoZWFkZXJzCgoyMDA2LTA4LTE1IDIyOjU0ICB0YW5kZXJzCgogICAqIG1hbi86IHNubXBkLjguZGVmLCBzbm1wZC5jb25mLjUuZGVmLAogICAgIHNubXBkLmV4YW1wbGVzLjUuZGVmOgoKICAgZml4IHR5cG8KCjIwMDYtMDgtMTUgMTQ6MjAgIG1hcnoKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIEZpeCBlbWFpbCBhZGRyZXNzCgoyMDA2LTA4LTE1IDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNsZWFuIHVwIHRoZSB0bXAgY3JlYXRlZCBmaWxlCgoyMDA2LTA4LTE1IDA3OjI3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeGVkIGNvbmZpZ19hcmNoX3JlcXVpcmUKCjIwMDYtMDgtMTUgMDc6MjYgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDUuaDoKCiAgIGZvcmNlICIjdW5kZWYgSUZORVRfTkVFRFNfS0VSTkVMIiBvbiBGcmVlQlNEIDUueCBvbmx5CgoyMDA2LTA4LTE1IDA3OjA3ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogc29sYXJpczIuMTAuaCwgc29sYXJpczIuNy5oCiwgc29sYXJpczIuOC5oLCBzb2xhcmlzMi45Lmg6CgogICByZW1vdmUgb2Jzb2xldGUgaGVhZGVyIGZpbGVzCgoyMDA2LTA4LTE1IDA1OjE2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oOgoKICAgYXZvaWQgY29tbWVudCBpbnNpZGUgY29tbWVudAoKMjAwNi0wOC0xNSAwMTo0OCAgdGFuZGVycwoKICAgKiBSRUFETUUuc29sYXJpcywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIG1pbm9yIHdvcmRpbmcgY2hhbmdlcwoKMjAwNi0wOC0xNCAyMDoyNSAgaGFyZGFrZXIKCiAgICogYWNpbmNsdWRlLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gQ2xlYW5lZCB1cCB0aGUgZGVidWdnaW5nIGNvZGUgZm9yIHRoZSBtb2R1bGUgc2VjdGlvbgogICAgIC0gQWRkZWQgYSBBQ19NU0dfTU9EVUxFX0RCRyBtYWNybyB0byBjbGVhbiB1cCB0aGUgemlsbGlvbnMgb2YgaWZzCiAgIC0gUmV3b3JrZWQgdGhlIG00IHF1b3Rpbmcgb2YgdGhlIHNlY3Rpb24gdG8gb25seSBjaGFuZ2VxdW90ZSB3aGVuCiAgICAgYWN0dWFsbHkgbmVlZGVkLCByYXRoZXIgdGhhbiBkb2luZyB0aGUgcmV2ZXJzZSBhbmQgaGF2aW5nIHRvIGNoYW5nZQogICAgIHRvICJub3JtYWwiIHF1b3Rpbmcgd2hlbiBhIG1hY3JvIGNhbGwgaXMgbmVlZGVkLgoKMjAwNi0wOC0xNCAxNjoyOSAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGZyZWVic2Q0LmgsIGZyZWVic2Q1LmgsCiAgICAgZnJlZWJzZDYuaDoKCiAgIHNpbXBsaWZ5L2FnZ3JlZ2F0ZSBGcmVlQlNEIGhlYWRlcnMKCjIwMDYtMDgtMTQgMTU6NTcgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBzb2xhcmlzLmgsIHNvbGFyaXMyLjMuaCwKICAgICBzb2xhcmlzMi40LmgsIHNvbGFyaXMyLjUuaCwgc29sYXJpczIuNi5oOgoKICAgUmV3b3JrIG9mIGhlYWRlciBmaWxlcyBmb3IgU29sYXJpcy4gc29sYXJpcy5oIG5vdyBjb3ZlcnMgU29sYXJpcyA3IGFuZCB1cCAoaW5jbHVkaW5nIGFueSBmdXR1cmUgdmVyc2lvbnMpIHdoaWxlIHNvbGFyaXMyLlszLTZdLmggY292ZXJzIGxlZ2FjeSBzdXBwb3J0LgoKMjAwNi0wOC0xNCAxMzoyNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlCgoyMDA2LTA4LTE0IDEzOjI0ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgdXBkYXRlZCBVQ0QgcmVmZXJlbmNlcyB0byBOZXQtU05NUCwgdXBkYXRlZCBjb250YWN0IGluZm8KCjIwMDYtMDgtMTQgMTM6MjMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2R5bml4LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaDoKCiAgIE5ldyBjb25maWd1cmUgYmFzZWQgZGVmYXVsdF9tb2R1bGVzLmggZmlsZSB0byBkZWNpZGUgd2hpY2ggbW9kdWxlcyB0bwogICBidWlsZCBpbnRvIHRoZSBhZ2VudC4KICAgTkVXUzogc25tcGQgLS0gQWdlbnQgYnVpbGRzIGRlZmF1bHQgbW9kdWxlIGxpc3QgZnJvbSBhIGRlZmF1bHRfbWlicy5oIHJhdGhlciB0aGFuIGEgaGFyZCBjb2RlZCBjb25maWd1cmUgbGlzdAoKMjAwNi0wOC0xNCAxMzoyMCAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHVwZGF0ZWQgcmVmZXJlbmNlcyB0byBVQ0QgdG8gTmV0LVNOTVAsIHVwZGF0ZWQgY29udGFjdCBpbmZvCgoyMDA2LTA4LTExIDE4OjE1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfc3ViYWdlbnQuYwosIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgbWFuL3NubXBkLjguZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZiwKICAgICBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgSW50cm9kdWNlIC0td2l0aC1hZ2VudHgtc29ja2V0PUZJTEUgY29uZmlndXJlIG9wdGlvbi4gSGVscHMgcGFja2FnZXJzIHRvICpwcm9wZXJseSogY3VzdG9taXplIHRoYXQgcGF0aCAobm90IGVuY291cmFnZWQsIGJ1dCBxdWl0ZSBjb21tb24pLgoKMjAwNi0wOC0xMSAwNzo1NiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgdnNucHJpbnRmKCkgbmVlZHMgdG8gYmUgZm9sbG93ZWQgYnkgdmFfZW5kCgoyMDA2LTA4LTExIDA2OjQ1ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBkb24ndCBjYWxsIHZhX2VuZCgpIGlmIHdlJ3ZlIG9ubHkgbWVtY3B5KCllZAoKMjAwNi0wOC0xMSAwMjo1OSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgc2ltcGxlIGF0dGVtcHQgdG8gZml4IHJlY2VudGx5IGludHJvZHVjZWQgdmFfY29weSgpIGJ1aWxkIGlzc3VlcwoKMjAwNi0wOC0xMCAwNzoxMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVwb3J0IGEgZmFpbHVyZSB0byBidWlsZCB0aGUgUERVLiAgKFJlZiBCdWcgIzEzOTkzNzApCgoyMDA2LTA4LTEwIDAxOjU4ICBkdHMxMgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgV2l0aCBmZWFyIGFuZCB0cmVwaWRhdGlvbiwgcmVtb3ZlIHRoZSB3YXJuaW5ncyBhZ2FpbnN0IHVzZSBvZiBBZ2VudFguCiAgIERvb21lZCwgd2UncmUgYWFhYWxsIGRvb29vb21lZC4uLi4KCjIwMDYtMDgtMDkgMTA6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvTUFOSUZFU1Q6CgogICB1cGRhdGVkIHRvIGNvcnJlY3QgbGlzdAoKMjAwNi0wOC0wOSAxMDoxMyAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5zdWJzLnBsLAogICAgIEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMCiwgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTAosIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgICAgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIGFub3RoZXIgcGFzcyBhdCBwZXJsL0NQQU4gc3BlY2lmaWMgdmVyc2lvbmluZyBjaGVja3MKCjIwMDYtMDgtMDkgMDk6NTcgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUuc3Vicy5wbCwKICAgICBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTAosIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwKLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBhbGxvdyBmb3IgdmVyeSBtaW5vciBkZXZpYXRpb25zIGluIHBlcmwgQ1BBTiBzb3VyY2UgdmVyc2lvbnMgZnJvbSBuZXQtc25tcCB2ZXJzaW9ucwoKMjAwNi0wOC0wOSAwOTo0NiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1JFQURNRToKCiAgIG1ham9yIHVwZGF0ZSBmb3IgQ1BBTiByZWxlYXNlCgoyMDA2LTA4LTA5IDA5OjQzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTUFOSUZFU1Q6CgogICBtYXRjaCA1LjMgdHJlZSBmb3Igb3JkZXJpbmcKCjIwMDYtMDgtMDkgMDk6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NQU5JRkVTVDoKCiAgIHVwZGF0ZSBmb3IgcmVjZW50IG5lZWRlZCB0ZXN0aW5nIGZpbGVzCgoyMDA2LTA4LTA4IDE3OjUxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgYnVpbGQgZml4CgoyMDA2LTA4LTA4IDE1OjE2ICB0YW5kZXJzCgogICAqIGFjaW5jbHVkZS5tNDoKCiAgIE1vdmUgb3VyIG93biBtNCBtYWNyb3MgZnJvbSBhY2xvY2FsLm00IGludG8gYWNpbmNsdWRlLm00IGFuZCBwcm9wZXJseSBxdW90ZSB0aGVtLiBGb2xsb3dzIGxpYnRvb2wvYXV0b21ha2UgcmVjb21tZW5kYXRpb25zIGFuZCBhbGxvd3MgdG8gcmVnZW5lcmF0ZSBhY2xvY2FsLm00IChjb250YWluaW5nIGxpYnRvb2wubTQpIGJ5IGNhbGxpbmcgYWNsb2NhbCB3aGljaCBJJ3ZlIGp1c3QgZG9uZS4gSW5zcGlyZWQgYnkgRGViaWFuIHBhdGNoICMyMS4KCjIwMDYtMDgtMDggMTU6MDcgIGJzaGF3NjY2CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgbWlub3IgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMDgtMDggMTU6MDIgIHRhbmRlcnMKCiAgICogYWNsb2NhbC5tNDoKCiAgIE1vdmUgb3VyIG93biBtNCBtYWNyb3MgZnJvbSBhY2xvY2FsLm00IGludG8gYWNpbmNsdWRlLm00IGFuZCBwcm9wZXJseSBxdW90ZSB0aGVtLiBGb2xsb3dzIGxpYnRvb2wvYXV0b21ha2UgcmVjb21tZW5kYXRpb25zIGFuZCBhbGxvd3MgdG8gcmVnZW5lcmF0ZSBhY2xvY2FsLm00IChjb250YWluaW5nIGxpYnRvb2wubTQpIGJ5IGNhbGxpbmcgYWNsb2NhbCB3aGljaCBJJ3ZlIGp1c3QgZG9uZS4gSW5zcGlyZWQgYnkgRGViaWFuIHBhdGNoICMyMS5hY2luY2x1ZGUubTQKCjIwMDYtMDgtMDggMDY6MTggIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJ1biBhdXRvaGVhZGVyCgoyMDA2LTA4LTA4IDA2OjE4ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmg6CgogICBhZGQgSEFWRV9MSUJOTSBpbiBvcmRlciB0byBtYWtlIGF1dG9oZWFkZXIgd29yayBhZ2FpbgoKMjAwNi0wOC0wNyAxNTo1MyAgdGFuZGVycwoKICAgKiBhY2xvY2FsLm00LCBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZQosIE5FV1MsIGx0bWFpbi5zaDoKCiAgIGxpYnRvb2wgdXBkYXRlIHRvIDEuNS4yMiAoZnJvbSAxLjQpLiBTdXBlcnNlZGVzIHBhdGNoIDE0OTY5NDUgYW5kIGZpeGVzIGJ1ZyAxNTE4MTE3IChwcm9iYWJseSBwbHVzIGEgZmV3IG1vcmUpLgoKMjAwNi0wOC0wNyAwODozMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgQWxyZWFkeSByYW5kb21pemUgdGhlIGluaXRpYWwgcG9ydCB3ZSB0cnkuIExvd2VycyB0aGUgY2hhbmNlIG9mIGNvbGxpc2lvbnMgaWYgbXVsdGlwbGUgdGVzdCBzdWl0ZXMgcnVuIGluIHBhcmFsbGVsLgoKMjAwNi0wOC0wNyAwNTo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgZXhwbGljaXQgY2FzdCB0byBrZWVwIGNvbXBpbGVyIGhhcHB5CgoyMDA2LTA4LTA3IDAzOjAzICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEZpeCB0eXBvLiAgU3BvdHRlZCBieSBMZW8gTGVpCgoyMDA2LTA4LTA1IDE3OjAxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMsIGhyX3N3cnVuLmM6CgogICBCdWlsZCBmaXhlcyBmb3IgQUlYIEhPU1QtUkVTT1VSQ0VTLU1JQiBzdXBwb3J0CgoyMDA2LTA4LTA1IDEyOjE3ICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIGRpcmVjdG9yeSBjb250YWluaW5nIGxpYnBlcmwuc28gdG8gTERfUlVOX1BBVEgKCjIwMDYtMDgtMDQgMTU6MzYgIGJzaGF3NjY2CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgRTQ1MCByZXBvcnRpbmcgUFMgdGVtcHMgYXMgdm9sdGFnZSwgb3RoZXIgcHJvYmxlbXMKCjIwMDYtMDgtMDMgMTg6MDIgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW46CgogICBvdmVycmlkZSBMRF9SVU5fUEFUSCBmb3IgdGhlIHBlcmwgbW9kdWxlcyB0byBhdm9pZCBkZXBlbmRlbmNpZXMgb24gdGhlIGJ1aWxkIGRpcmVjdG9yeSAocGF0Y2ggZnJvbSBkYXJpeCkKCjIwMDYtMDgtMDEgMDQ6NDMgIHRhbmRlcnMKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG9uZSBtb3JlIGNvcnJlY3Rpb24KCjIwMDYtMDctMzEgMjI6NTIgIHRhbmRlcnMKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1pbm9yIHVwZGF0ZXMKCjIwMDYtMDctMzEgMTY6NDIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L21pYmxvYWQudDoKCiAgIGZpeCBhIHRlc3QgdGhhdCBtYXkgc3VjY2VlZCB3aGVuIGl0IHNob3VsZG4ndAoKMjAwNi0wNy0zMSAxNjowNSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gZ2V0dGFibGUgcGF0Y2gKCjIwMDYtMDctMzEgMTY6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZml4IGdldGJ1bGsgYXQgZW5kLW9mLW1pYnZpZXcgYm91bmRhcmllcwoKMjAwNi0wNy0zMSAxNTo0NCAgaGFyZGFrZXIKCiAgICogbWlicy9UVU5ORUwtTUlCLnR4dDoKCiAgIHVwZGF0ZSBhZ2FpbiB0byBtb3N0IHJlY2VudAoKMjAwNi0wNy0zMSAxNTo0MyAgaGFyZGFrZXIKCiAgICogbWlicy9UVU5ORUwtTUlCLnR4dDoKCiAgIHVwZGF0ZSBmcm9tIHRoZSBsYXRlc3QgdmVyc2lvbi4KCjIwMDYtMDctMzEgMTU6NDAgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICB2ZXJzaW9uIHRhZyBkb3h5Z2VuIGZpbGVzCgoyMDA2LTA3LTMxIDE1OjM5ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbWlub3IgdXBkYXRlcwoKMjAwNi0wNy0zMSAxMzozMSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgaW5pdGlhbGl6ZSBzbm1wdHJhcGQgYXV0aG9yaXphdGlvbiB1bmNvbmRpdGlvbmFsbHkgb2YgdXNpbmcgQWdlbnRYIChmaXhlcyBidWcgMTUyNzY2MSkKCjIwMDYtMDctMzEgMDc6MjUgIG1hcnoKCiAgICogZG9jL3JmYy86IGFnZW50eC9yZmMyNzQxLnR4dCwgbWlzYy9yZmMzNTEyLnR4dCwKICAgICBtaXNjL3JmYzM1ODQudHh0LCBzbWlWMi9yZmMyNTc4LnR4dCwKICAgICBzbWlWMi9yZmMyNTc5LmVycmF0YSwgc21pVjIvcmZjMjU3OS5lcnJhdGF+LAogICAgIHNtaVYyL3JmYzI1NzkudHh0LCBzbWlWMi9yZmMyNTgwLnR4dCwKICAgICBzbm1wVjEvcmZjMTE1NS50eHQsIHNubXBWMS9yZmMxMTU3LnR4dCwKICAgICBzbm1wVjEvcmZjMTIxMi50eHQsIHNubXBWMS9yZmMxMjEzLnR4dCwKICAgICBzbm1wVjIvcmZjMTkwMS50eHQsIHNubXBWMi9yZmMxOTAyLnR4dCwKICAgICBzbm1wVjIvcmZjMTkwMy50eHQsIHNubXBWMi9yZmMxOTA0LnR4dCwKICAgICBzbm1wVjIvcmZjMTkwNS50eHQsIHNubXBWMi9yZmMxOTA2LnR4dCwKICAgICBzbm1wVjIvcmZjMTkwNy50eHQsIHNubXBWMi9yZmMxOTA4LnR4dCwKICAgICBzbm1wVjIvcmZjMjA4OS50eHQsIHNubXBWMy9yZmMzNDEwLmVycmF0YSwKICAgICBzbm1wVjMvcmZjMzQxMC50eHQsIHNubXBWMy9yZmMzNDExLnR4dCwKICAgICBzbm1wVjMvcmZjMzQxMi50eHQsIHNubXBWMy9yZmMzNDEzLmVycmF0YSwKICAgICBzbm1wVjMvcmZjMzQxMy50eHQsIHNubXBWMy9yZmMzNDE0LmVycmF0YSwKICAgICBzbm1wVjMvcmZjMzQxNC50eHQsIHNubXBWMy9yZmMzNDE1LmVycmF0YSwKICAgICBzbm1wVjMvcmZjMzQxNS50eHQsIHNubXBWMy9yZmMzNDE2LnR4dCwKICAgICBzbm1wVjMvcmZjMzQxNy50eHQsIHNubXBWMy9yZmMzNDE4LmVycmF0YSwKICAgICBzbm1wVjMvcmZjMzQxOC50eHQ6CgogICBhZGRpbmcgcmZjcyBhbmQgZXJyYXRhIHRvIGRpc3RyaWJ1dGlvbgoKMjAwNi0wNy0zMSAwNTo0MyAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBEb24ndCBjYXRjaCAiLi4uIHNubXBuZXRzdGF0IGZpbmRzIC4uLiIgKHRlc3QgNTgpIGFzIGFuIGVycm9yLgoKMjAwNi0wNy0zMCAxNzoyOCAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBDYXRjaCAiUGVybWlzc2lvbiBkZW5pZWQiIGVycm9ycywgZS5nLiBkdXJpbmcgIm1ha2UgaW5zdGFsbCIuCgoyMDA2LTA3LTMwIDE2OjA4ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNhdGNoICJDYW4ndCBmaW5kIC4uLiIgZXJyb3JzLCBlLmcuIGZyb20gbGQKCjIwMDYtMDctMzAgMTU6NDEgIHRhbmRlcnMKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHBhc3MgTERGTEFHUyB0byBhbGxvdyBmb3Igbm9uLXN0YW5kYXJkIGxpYmNyeXB0byBsb2NhdGlvbgoKMjAwNi0wNy0yOSAxNjo1OCAgdGFuZGVycwoKICAgKiBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYzoKCiAgIChjb3JyZWN0bHkpIG1ha2UgdXNlIG9mIHJlY2VudGx5IGludHJvZHVjZWQgU05NUF9TVFJPUk5VTEwoeCkKCjIwMDYtMDctMjkgMTY6MTggIHRhbmRlcnMKCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICBtYWtlIHVzZSBvZiByZWNlbnRseSBpbnRyb2R1Y2VkIFNOTVBfU1RST1JOVUxMKHgpCgoyMDA2LTA3LTI4IDA1OjIzICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFN1cHBvcnQgc2V0dGluZyB0aGUgcGVyc2lzdGVudCBtYXNrIHZpYSBjb25maWd1cmUuICAoYmFzZWQgb24gUGF0Y2ggIzE0MzczODUpCgoyMDA2LTA3LTI4IDA0OjU0ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgJy1hcy1uZWVkZWQnIHN1cHBvcnQgZm9yIGxpbmtpbmcgbGlicmFyaWVzLiAgKFBhdGNoZXMgIzEzOTg4NzMgJiAxNDkzNTIyKQoKMjAwNi0wNy0yOCAwMjozOSAgZHRzMTIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIHNubXBsaWIva2V5dG9vbHMuYwosIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEp1bWJvIHBhdGNoIGZvciBpbXByb3ZlZCBBSVggNS54IHN1cHBvcnQuICAoUGF0Y2ggIzE0ODYzMDcpCiAgIE5vdGUgdGhhdCB0aGUgbWVtb3J5LXJlbGF0ZWQgcHJvY2Vzc2luZyAoaG9zdC9ocl9mc3RvcmFnZS5jKQogICBpcyBub3cgbW9zdGx5IGhhbmRsZWQgYnkgaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9haXguYwoKMjAwNi0wNy0yNyAxMjo0OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBwYXRjaCBmcm9tIEp1bGllbiBQaW5vbiB0byBmaXggYSBmZXcgdGttaWIgcHJvYmxlbXMKCjIwMDYtMDctMjcgMDg6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgU3VwcG9ydCBmb3IgSEZTIHN5c3RlbXMsIHBsdXMgTkZTIGZpeGVzIGZvciBEYXJ3aW4uICAoUGF0Y2ggIzE1MjAyODkpCgoyMDA2LTA3LTI3IDA2OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFByZXZlbnQgcG90ZW50aWFsIGNyYXNoIGluIERhcndpbi4gIChQYXRjaCAjMTUyMDI4NikKCjIwMDYtMDctMjcgMDY6MTcgIGR0czEyCgogICAqIGFnZW50L2tlcm5lbC5oOgoKICAgU3VwcG9ydCAnLS13aXRob3V0LWttZW0tdXNhZ2UnIG9uIG5vbi1MaW51eCBzeXN0ZW1zLiAgKFBhdGNoICMxNTIwMjc4KQoKMjAwNi0wNy0yNyAwNToyNSAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEluY2x1ZGUgJ3BrY3MnIGluIHRoZSBsaXN0IG9mIGZpbGVzIHRvIGNvbXBpbGUuICAoUGF0Y2ggIzE1MTQ4NjcpCgoyMDA2LTA3LTI3IDA1OjEyICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXB2My5jOgoKICAgQWNjZXB0IC1aIDAgdmFsdWVzIGZvciBlbmdpbmVCb290L2VuZ2luZVRpbWUuICAoUGF0Y2ggIzE1MTAwMzIpCgoyMDA2LTA3LTI3IDA0OjM3ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgU3VwcG9ydCBydW5uaW5nIHRyYXAgcmVjZWl2ZXIgYXMgbm9uLXJvb3QgdXNlci9ncm91cC4gIChQYXRjaCAjMTQ5NzQ2NykKCjIwMDYtMDctMjcgMDM6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIEF0dGVtcHQgdG8gdXNlIHRoZSBtb3N0IHVwLXRvLWRhdGUgc3lzY3RsIEFQSXMuICAoUGF0Y2ggIzE0ODIxNjkpCgoyMDA2LTA3LTI2IDA4OjU4ICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmNvbnRhaW5lci5jb25mLCBtaWIyYy5pdGVyYXRlLmNvbmYsCiAgICAgbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgR2VuZXJhdGUgcHJvcGVyIGNvZGUgZm9yIG5vbi1pbnRlZ2VyIHZhbHVlIG9iamVjdHMsIGFuZCBkZXRlcm1pbmUKICAgdGhlIGZpcnN0IGFuZCBsYXN0IGFjY2Vzc2libGUgY29sdW1uIG9iamVjdHMuICAoUGF0Y2ggIzE0Mjc3MTIpCgogICBROiBJcyBpdCB3b3J0aCBwdWxsaW5nIHNvbWUgb2YgdGhpcyBjb2RlIG91dCBpbnRvIGEgc2VwYXJhdGUgbWliMmMKICAgICAgdXRpbGl0eSBmaWxlLCBzaW5jZSBtdWNoIG9mIHRoZSBwcm9jZXNzaW5nIGlzIGVmZmVjdGl2ZWx5IGlkZW50aWNhbAogICAgICBpbiBhbGwgdGhyZWUgY2FzZXM/CgoyMDA2LTA3LTI2IDA0OjU2ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgSGFuZGxlIGxvbmcgKGR5bmFtaWMtYnVmZmVyZWQpIG1lc3NhZ2VzIGNvcnJlY3RseS4gIChCdWcgIzE1MTYwNDUpCgoyMDA2LTA3LTI2IDA0OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBFbnN1cmUgdGhlIHNlY01vZGVsIGlzIGluaXRpYWxpc2VkIGZvciBTTk1QdjMgbm90aWZpY2F0aW9ucy4gKEJ1ZyAjMTUxNzQ1NCkKCjIwMDYtMDctMjYgMDQ6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIE9ubHkgc29ydCByZWxvY2F0YWJsZSBleHRlbnNpb24gZW50cmllcy4gIFRob3NlIGluIHRoZSBtYWluIGV4dFRhYmxlCiAgIGRvbid0IGhhdmUgYW4gT0lEIHRvIHNvcnQgb24sIHNvIGF0dGVtcHRpbmcgdG8gZG8gc28gbWF5IHNjcmFtYmxlCiAgIHRoZW0gaW50byBhIHJhbmRvbSBvcmRlci4gIChCdWcgIzE1MDY3MDcpCgoyMDA2LTA3LTI1IDA4OjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZGlzay5oLCBocl9uZXR3b3JrLmgsCiAgICAgaHJfb3RoZXIuaCwgaHJfcGFydGl0aW9uLmgsIGhyX3ByaW50LmgsCiAgICAgaHJfcHJvYy5oLCBocl9zdG9yYWdlLmg6CgogICBJbmRpY2F0ZSBkZXBlbmRlbmNpZXMgYmV0d2VlbiBIb3N0UmVzIG1vZHVsZXMuICAoQnVnICMxNTA1MzI1KQoKMjAwNi0wNy0yNSAwODoyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBFbnN1cmUgdGhhdCBJUCBBZGRyZXNzIHZhbHVlcyBhcmUgcmVwb3J0ZWQgYXMgNC1vY3RldAogICB2YWx1ZXMgb24gNjQtYml0IGFyY2hpdGVjdHVyZXMuICAoQnVnICMxNTA0NTAxKQoKMjAwNi0wNy0yNSAwNjo0OCAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEhhbmRsZSBtYWxmb3JtZWQgRGlzcGxheSBIaW50cyBzZW5zaWJseSwgcmF0aGVyIHRoYW4KICAgZ29pbmcgaW50byBhbiBpbmZpbml0ZSBsb29wLiAgKEJ1ZyAjMTQ1OTY2NSkKCjIwMDYtMDctMjUgMDU6NDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIERvbid0IGFzc3VtZSB0aGF0IGFsbCByZXF1ZXN0cyBhcmUgbmVjZXNzYXJpbHkgdmFsaWQuIChCdWcgIzE0NDUxMTYpCgoyMDA2LTA3LTI1IDA1OjAwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBVc2UgdGhlIGRlZmluZWQgZGVmYXVsdCBwb3J0IChpZiBzcGVjaWZpZWQpIGZvciBudW1lcmljIElQdjYKICAgYWRkcmVzc2VzLCByYXRoZXIgdGhhbiBoYXJkd2lyaW5nIFNOTVBfUE9SVC4gIChCdWcgIzE0NDUwODkpCgoyMDA2LTA3LTI1IDAzOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYzoKCiAgIERvbid0IGNob2tlIG9uIG1pc3NpbmcgbGFiZWxzIChCdWcgIzE0Mjk0NjkpCgoyMDA2LTA3LTI1IDAyOjI5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBJbmNsdWRlIG1pc3NpbmcgZmxhZ3MgcGFyYW1ldGVyIChCdWcgIzE0MjI3MDgpCgoyMDA2LTA3LTI1IDAxOjMxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZW1vdmUgYnJva2VuIGFzc2VydGlvbiAoQnVnICMxMzk5MzcwKQoKMjAwNi0wNy0yNSAwMToxMSAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXB2My5jOgoKICAgUmUtZml4IHVuc2lnbmVkIGNvbXBhcmlzb25zIGFnYWluc3QgMCAoQnVnICMxMzk3ODkxKQogICBpbmNsdWRpbmcgZml4IGZvciB0ZXN0ICMyNAoKMjAwNi0wNy0yNSAwMTowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgRml4IHNpZ25lZG5lc3Mgb2YgcmV0dXJuIHZhbHVlcyAoQnVnICMxMzk3OTA2KQoKMjAwNi0wNy0xOCAwNzowMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29udGFpbmVyLmNvbmY6CgogICBTTk1QX1RZUEVERUZfTUFMTE9DIC0+IFNOTVBfTUFMTE9DX1RZUEVERUYKCjIwMDYtMDctMTMgMTQ6MzAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBuZXdzIHVwZGF0ZSBmb3IgcmVjZW50IGZlYXR1cmVzCgoyMDA2LTA3LTEzIDA4OjIyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGNhbGxiYWNrIHN1cHBvcnQgZm9yIGdldHRhYmxlKCkuCiAgICAgLSBub3QgZXh0ZW5zaXZlbHkgd2VsbCB0ZXN0ZWQsIGJ1dCBpdCBkb2VzIHdvcmsKCjIwMDYtMDctMTIgMDI6NDAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgZml4IGlmSW5PY3RldHMgc3RhdGlzdGljcyBvbiBTb2xhcmlzIChwYXRjaCAxNTIwNjAzIGZyb20gSm9obiBHcmVlbikKCjIwMDYtMDctMDcgMTU6MDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdHlwbyBmaXgKCjIwMDYtMDctMDcgMTQ6NTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRGF2ZSdzIHBhdGNoIHRvIHJlbW92ZSBob3N0IG1pYiBzdXBwb3J0IGZvciB3aW5kb3dzIGJ5IGRlZmF1bHQKCjIwMDYtMDctMDcgMTQ6NTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIERhdmUncyBwYXRjaCBmb3IgY29tcGlsYXRpb24gZml4ZXMgZm9yIHdpbmRvd3MKCjIwMDYtMDctMDcgMTQ6NDggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLCBzbm1wbGliL2xjZF90aW1lLmMKLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQYXRjaCBmcm9tIE1hdGhldyBCaWVsZWplc2tpIHRvIGZyZWUgdXNlciBsaXN0IGFuZCBlbmdpbmUgdGltZSBjYWNoZSBhdCBzaHV0ZG93bgoKMjAwNi0wNy0wNyAxNDozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIGZpeCBwb3NzYmlsZSBudWxsIGRlcmVmZW5jZSwgbm90ZWQgb24gY29kZXJzCgoyMDA2LTA3LTA2IDE1OjE4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1M3NvbGFyaXNzd2FwOgoKICAgYWRqdXN0IE9JRCBmb3IgU29sYXJpcyBzd2FwIHNwYWNlIHNpemUKCjIwMDYtMDctMDYgMTU6MDEgIHRhbmRlcnMKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IGFzc2lnbm1lbnQgaW4gcmVhZF9jb25maWdfc3RvcmVfZGF0YV9wcmVmaXgoKSBmb3IgQVNOX0lQQUREUkVTUwoKMjAwNi0wNy0wNSAxNTo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmVtdWxhdGlvbi5jb25mOgoKICAgLSBhZGQgd2FybmluZyBjb21tZW50IGZvciBkZXByZWNhdGVkIG9iamVjdHMKICAgLSBzaG9ydGVuIHNjYWxhciBub2RlIGNvbW1lbnRzIGJ5IGEgbGluZQogICAtIHNob3J0ZW4gY29sdW1uIG5vZGUgY29tbWVudHMKCjIwMDYtMDctMDUgMTQ6NDQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGQgdW5zaWduZWQgdG8gYXNudHlwZXMKCjIwMDYtMDctMDUgMTQ6MjMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5lbXVsYXRpb24uY29uZjoKCiAgIGFkZCAqIG5leHQgdG8gc2NhbGFyIGVudW0gZGVmdmFsCgoyMDA2LTA3LTA1IDE0OjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuZW11bGF0aW9uLmNvbmY6CgogICAtICdvdmVycmlkZScgYW5kICdhZGRfcm93JyBkZWZhdWx0IHRvIGNvbW1lbnRlZCBvdXQKICAgLSBhZGQgbWlzc2luZyB0eXBlIGluZm8gdG8gb3ZlcnJpZGUKICAgLSBtYWtlIGNvbmYgZmlsZSBoZWFkZXIgbWliMmMgY29tbWVudHMgc28gaXQncyBub3QgaW5jbHVkZWQgaW4gb3V0cHV0CgoyMDA2LTA3LTA1IDA3OjQyICByc3RvcnkKCiAgICogbWlicy86IERJU01BTi1OU0xPT0tVUC1NSUIudHh0LCBESVNNQU4tUElORy1NSUIudHh0LAogICAgIERJU01BTi1UUkFDRVJPVVRFLU1JQi50eHQ6CgogICB1cGRhdGUgZnJvbSBSRkMgNDU2MAoKMjAwNi0wNy0wMyAyMTowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgUHJvcGVybHkgaGFuZGxlIHNubXAgZW51bXMgdXNpbmcgdGhlIHdvcmQgImRlcHJlY2F0ZWQiCgoyMDA2LTA3LTAzIDIwOjQ3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBhcHByb3ByaWF0ZWx5IG1hcmsgZGVwcmVjYXRlZCB0YWJsZSBvYmplY3RzCgoyMDA2LTA2LTMwIDIyOjEyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgc3VwcG9ydCBmb3Igb3B0aW9uYWwgZmlsZXMgKGRvbid0IGV4aXN0IGluIGV2ZXJ5IGJyYW5jaCkKCjIwMDYtMDYtMzAgMjE6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBkb3h5Z2VuLmNvbmYgc3VwcG9ydAoKMjAwNi0wNi0zMCAyMToyNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIGNoZWNrIGZvciBmaWxlIGV4aXN0ZW5jZQoKMjAwNi0wNi0zMCAyMTowNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIGV4aXQgd2l0aCB0aGUgY3ZzIGNvbW1pdCBzdGF0dXMgaWYgcnVuCgoyMDA2LTA2LTMwIDE1OjUzICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLnN1YnMucGwsCiAgICAgQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwKLCBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMCiwgYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIGJldHRlciBlbnYgbmFtZSBmb3Igbm90IGNoZWNraW5nIHRoZSB2ZXJzaW9uCgoyMDA2LTA2LTMwIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSB2ZXJzaW9uIGNoYW5naW5nIHN1cHBvcnQ7IG5vdyBpbiBtYWtlcmVsZWFzZQoKMjAwNi0wNi0zMCAxNToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHJlbW92ZSB0YWcgc3VwcG9ydCBmcm9tIHZlcnNpb250YWc7IG5vdyBpbiBtYWtlcmVsZWFzZQoKMjAwNi0wNi0zMCAxNToxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIG11Y2ggYmV0dGVyIHN1cHBvcnQgZm9yIGN2cyBjb21taXQsIHZlcnNpb24gbnVtYmVyaW5nLCBldGMKCjIwMDYtMDYtMzAgMTU6MTUgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICB2YXJpb3VzIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMKCjIwMDYtMDYtMzAgMTU6MTMgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgQVNOL0FTTi5wbSwgQVNOL01ha2VmaWxlLlBMCiwgQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIE9JRC9NYWtlZmlsZS5QTCwKICAgICBPSUQvT0lELnBtLCBTTk1QL01ha2VmaWxlLlBMLCBTTk1QL1NOTVAucG0sCiAgICAgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBUcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtCiwgYWdlbnQvTWFrZWZpbGUuUEwsIGFnZW50L2FnZW50LnBtLAogICAgIGFnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsIGFnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0KOgoKICAgcGVybCB2ZXJzaW9uIG51bWJlcmluZyBjaGFuZ2VzCgoyMDA2LTA2LTMwIDE1OjEyICBoYXJkYWtlcgoKICAgKiBwZXJsL01ha2VmaWxlLnN1YnMucGw6CgogICBVcGRhdGUgdG8gY2hlY2sgZm9yIENQQU4gcmVxdWlyZWQgcGVybCB2ZXJzaW9uIG51bWJlcnMKCjIwMDYtMDYtMjkgMTY6NTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5lbXVsYXRpb24uY29uZjoKCiAgIGZpcnN0IHBhc3MgYXQgYXV0b2dlbmVyYXRpbmcgb3ZlcnJpZGUvdGFibGUvYWRkX3JvdyBlbnRyaWVzIGZvciBhIE1JQgoKMjAwNi0wNi0yNyAxMTo0MCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA2MWFnZW50cGVybCwgVDExNWFnZW50eHBlcmw6CgogICBzZXQgRFlMRF9MSUJSQVJZX1BBVEggZm9yIE9TWCBhbmQgU0hMSUJfUEFUSCBmb3IgSFAtVVgKCjIwMDYtMDYtMjcgMTE6MDkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIGZpeCBtb3JlIHVkcFRhYmxlIGJ5dGUtb3JkZXIgaXNzdWVzIChpbmRpY2VzKSBvbiAqQlNEIGFuZCBTb2xhcmlzL3g4NgoKMjAwNi0wNi0yNyAwOTo0MiAgcnN0b3J5CgogICAqIFJFQURNRS5vc1g6CgogICByZW1vdmUgZW1iZWRlZCBwZXJsIGluZm87IGFkZCBwZXJsIGFnZW50eCBpbmZvCgoyMDA2LTA2LTI2IDE1OjI4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBhZGQgbmV0c3RhdCBwYXRoIGZvciBJUklYCgoyMDA2LTA2LTI2IDA4OjMzICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oOgoKICAgdWRwVGFibGUgYnl0ZS1vcmRlciBmaXggKHZhbHVlcyBvbmx5KSBmb3IgTmV0QlNEIGFuZCBPcGVuQlNECgoyMDA2LTA2LTI1IDE0OjQzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybDoKCiAgIHByZXBlbmQgKGluc3RlYWQgb2YgcmVwbGFjZSkgYSBub24tZW1wdHkgTERfTElCUkFSWV9QQVRIOyBmaXhlcyB0ZXN0IGVycm9ycyBvbiBzeXN0ZW1zIHRoYXQgcmVseSBvbiBpdAoKMjAwNi0wNi0yNSAxNDoyNSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIGZpeCB0ZXN0IGVycm9yIG9uIFNvbGFyaXMgZXRjLjogb25seSB1c2UgImlkIC11IiBvbiBzeXN0ZW1zIHRoYXQgc3VwcG9ydCBpdAoKMjAwNi0wNi0yNSAwODo0MyAgYWxleF9iCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUubWFrZWZpbGVzLAogICAgIE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMCiwgU05NUC9NYWtlZmlsZS5QTCwgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLAogICAgIGFnZW50L01ha2VmaWxlLlBMLCBhZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgLSdwZXJsIE1ha2VmaWxlLlBMIC1ORVQtU05NUC1JTi1TT1VSQ0U9dHJ1ZScgd2FzIG5vdCB3b3JraW5nLiAgRml4OiBjYWxsCiAgICAnbnNjb25maWcnIC0tdmVyc2lvbiBpbnNpZGUgb2YgSW5pdE1ha2VQYXJhbXMgaW5zdGVhZCBvZiBDaGVja19WZXJzaW9uCiAgIC1TdXBwb3J0IG1vZHVsZTogTmV0U05NUEdldE9wdHMgY2FsbCBzaG91bGQgcGFzcyBwYXJlbnQgZm9sZGVyIHNvIG5ldC1zbm1wLWNvbmZpZwogICAgY2FuIGJlIGZvdW5kCiAgIC1TdXBwb3J0L01ha2VmaWxlLlBMIHdhcyBtaXNzaW5nIGZyb20gTWFrZWZpbGUubWFrZWZpbGVzCgoyMDA2LTA2LTI0IDA5OjAwICBhbGV4X2IKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5tYWtlZmlsZXMsCiAgICAgTWFrZWZpbGUuc3Vicy5wbCwgbWFrZS1wZXJsLW1ha2VmaWxlcywKICAgICBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTAosIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICAtU2tpcCB2ZXJzaW9uIGNoZWNrIGZvciBXaW4zMiBNU1ZDCiAgIC1hZGQgVHJhcFJlY2VpdmVyIHRvIE1ha2VmaWxlLm1ha2VmaWxlcwogICAtbWFrZS1wZXJsLW1ha2VmaWxlczogIHJlbmFtZSBmaWxlcyBBRlRFUiBjbG9zaW5nIHRoZW0sIG5vdCBiZWZvcmUKCjIwMDYtMDYtMjMgMTI6NTAgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBjaGVjayBmb3IgMTI3LjAuMC4xLiwgbm90IGp1c3QgLCB0byBpZGVudGlmeSBieXRlLW9yZGVyIGlzc3VlcwoKMjAwNi0wNi0yMyAwOTowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9jeWd3aW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oOgoKICAgQ2xlYW4gZml4aW5nIG9mIG9yZGVyaW5nIHByb2JsZW1zIHdpdGgga2VybmVsIHN0b3JhZ2Ugb2YgVURQIHZhbHVlcwoKMjAwNi0wNi0yMyAwODo1MiAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIERvY3VtZW50IGN1cnJlbnQgYmVzdC1wcmFjdGlzZSBmb3IgYW5ub3VuY2luZyBuZXcgcmVsZWFzZXMKICAgKGluY2x1ZGluZyBwcmUtcmVsZWFzZXMgYW5kIHJlbGVhc2UgY2FuZGlkYXRlcykuCiAgIFNheSB3aGF0IHdlIGRvLCByYXRoZXIgdGhhbiBkbyB3aGF0IHdlIHNheS4KCjIwMDYtMDYtMjMgMDU6MTkgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIGZpeCB0eXBvcwoKMjAwNi0wNi0yMyAwMjo0NyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgZml4IGVhcmxpZXIgImRvbid0IHJldmVyc2UgYWRkcmVzcyBieXRlIG9yZGVyIGZvciBzb2xhcmlzIChzcGVjaWZpY2FsbHkgeDg2KSBmb3IgbG9jYWwgYWRkcmVzc2VzIiBwYXRjaCB0aGF0IGJyb2tlIGJ5dGUgb3JkZXIgZm9yIGFsbCBwbGF0Zm9ybXMKCjIwMDYtMDYtMjAgMTU6MzUgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgaW50cm9kdWNlIE5TQl9QUkVGSVggYW5kIHN3aXRjaCB0byAtLXByZWZpeD0vdXNyIG5vdyB0aGF0IHdlIHN1cHBvcnQgREVTVERJUiBmb3IgZXZlcnl0aGluZzsgZS5nLiB0byBhdm9pZCB0aGF0IHRoZSBpbnN0YWxsYXRpb24gZW5kcyBpbiAvZGVzdGRpci9kZXN0ZGlyCgoyMDA2LTA2LTIwIDE0OjQ2ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGludHJvZHVjZSBOU0JfRVhUUkFfSU5TVEFMTCB0byBiZSBhYmxlIHRvIHBhc3MgZXh0cmEgYXJncyB0byAibWFrZSBpbnN0YWxsIgoKMjAwNi0wNi0yMCAxMjoxMiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmw6CgogICBtb3JlIHBvcnRhYmxlIHdheSBvZiBleHBvcnRpbmcKCjIwMDYtMDYtMjAgMDU6NDEgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsOgoKICAgc2V0IExEX0xJQlJBUllfUEFUSCB0byBtYWtlIHN1cmUgdGhhdCBOZXRTTk1QOjphZ2VudCdzIGFnZW50LnNvIGNhbiBsb2FkICh1bmluc3RhbGxlZCkgbGlibmV0c25tcCouc287IG90aGVyd2lzZSB0ZXN0IGZhaWxzIGF0IGxlYXN0IG9uIEZyZWVCU0QKCjIwMDYtMDYtMTUgMTU6MTAgIHRhbmRlcnMKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgc3VwcHJlc3Mgc3RkZXJyIHdhcm5pbmdzIGZvciAicHMgLWUiIGluIG9yZGVyIHRvIGZpeCBbZmFsc2VdIG5pZ2h0bHkgYnVpbGQgZXJyb3IgbWVzc2FnZXMgb24gU0YgQ0YgaG9zdCBhbHBoYS1saW51eDEKCjIwMDYtMDYtMTUgMDY6NTIgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBhZGQgT3BlbkJTRCBhbmQgTmV0QlNEIHRvIHRoZSBsaXN0IG9mIHN5c3RlbXMgdGhhdCByZXF1aXJlIHJvb3QgcHJpdmlsZWdlcyBmb3IgdWRwVGFibGUgKGFjY29yZGluZyB0byBEYXZlJ3MgdGVzdGluZykKCjIwMDYtMDYtMTMgMTQ6NTkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybDoKCiAgIHNldCBORVRTTk1QX0RTX0FHRU5UX05PX1JPT1RfQUNDRVNTIChuZWVkZWQgZm9yIGUuZy4gU29sYXJpcyAyLjYpCgoyMDA2LTA2LTEzIDA1OjQyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi9jYWxsYmFjay5jCiwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGZpeCBidWcgMTUwNTM0MTogYWdlbnQgc2VnZmF1bHRzIG9uIFNvbGFyaXMgd2l0aCAtREFMTAoKMjAwNi0wNi0xMiAxNjo1NSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGNvbW1pdCB0aGUgZG94eWdlbi5jb25mIGZpbGUKCjIwMDYtMDYtMTIgMTY6NDIgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGludHJvZHVjZSAibmV0LXNubXAtY29uZmlnIC0tcGVybHByb2ciIGFuZCB1c2UgaXQgaW4gdGhlICJBZ2VudFggc3ViYWdlbnQgaW4gcGVybCIgdGVzdAoKMjAwNi0wNi0xMiAxNjowMCAgdGFuZGVycwoKICAgKiBuZXQtc25tcC1jb25maWcuaW4sIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBpbnRyb2R1Y2UgIm5ldC1zbm1wLWNvbmZpZyAtLXBlcmxwcm9nIiBhbmQgdXNlIGl0IGluIHRoZSAiQWdlbnRYIHN1YmFnZW50IGluIHBlcmwiIHRlc3QKCjIwMDYtMDYtMTIgMTU6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBkZWZpbmUgbWZkXypfcm93cmVxX2Zyb21faW5kZXggaWYgcGVyc2lzdGVudCBlbmFibGVkCgoyMDA2LTA2LTEyIDE1OjQwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6CgogICBpbmNsdWRlIGlwYWRkciBpbnN0ZWFkIG9mIHJlZGVmaW5pbmcgY29uc3RhbnRzCgoyMDA2LTA2LTEyIDE1OjM5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaDoKCiAgIGFkZCBjb21tZW50IHcvaW50ZWdlciB2YWx1ZSBmb3IgZWFzeSBncmVwcGluZwoKMjAwNi0wNi0xMiAxMzoyMyAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpbmV0Ni5jLCByb3V0ZS5jOgoKICAgYWRkIHN5cy90eXBlcy5oIHRvIGZpeCBPUyBYIGJ1aWxkCgoyMDA2LTA2LTEyIDEzOjA1ICByc3RvcnkKCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jCjoKCiAgIC0gZml4IGJhZCBwYXJhbWV0ZXIgaW4gc2NhbGFyIHJlZ2lzdHJhdGlvbgogICAtIGtlZXAgc2NhbGFyIHZhbHVlIGZyZXNoIHVzaW5nIHRhYmxlIGNhY2hlICsgY2FjaGUgaGVscGVyCgoyMDA2LTA2LTEyIDEzOjAzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgYWRkIGFjY2VzcyB0byB0YWJsZSBjYWNoZQoKMjAwNi0wNi0xMiAxMDozMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsOgoKICAgZml4IGZvciBuZXcgZmFpbHVyZSBlcnJvciBjb2RlCgoyMDA2LTA2LTEyIDEwOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBGaXggYnVnIHJlcG9ydGVkIGJ5IFJvYmVydCBXaWxjb3g6IHJldHVybiBubyBhY2Nlc3MgaW5zdGVhZCBvZiBub3Qgd3JpdGFibGUgb24gVkFDTSBkZW5pYWxzCgoyMDA2LTA2LTEyIDA5OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMLAogICAgIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgICBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICAgIGFnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgZmluYWxseSBhIHdvcmtpbmcgdmVyc2lvbiBvZiB0aGUgdmVyc2lvbiB3b3JraW5nIGNoZWNrCgoyMDA2LTA2LTEyIDA4OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMLAogICAgIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgICBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICAgIGFnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgZml4IHByZVggdmVyc2lvbiBudW1iZXJzIGJlZm9yZSBjaGVja2luZwoKMjAwNi0wNi0xMiAwODo0NiAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTCwKICAgICBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsCiAgICAgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCBhZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIGNoZWNrIHRoZSBwZXJsIG1vZHVsZSB2ZXJzaW9uIG51bWJlciBhZ2FpbnN0IHRoZSBuZXQtc25tcCB2ZXJzaW9uIG51bWJlcgoKMjAwNi0wNi0xMiAwMToxOSAgdGFuZGVycwoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgYWRkIG1hbnVhbCBzdGVwIHRvIHVwZGF0ZSB2ZXJzaW9uIG51bWJlciBpbiBkb3h5Z2VuLmNvbmYKCjIwMDYtMDYtMTIgMDE6MTYgIHRhbmRlcnMKCiAgICogZG94eWdlbi5jb25mOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDYtMDYtMTAgMDU6NTcgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgZml4IHN5bnRheCBlcnJvciBpbnRyb2R1Y2VkIGluIGxhc3QgY29tbWl0CgoyMDA2LTA2LTA5IDEzOjQyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgZml4IHR5cG8KCjIwMDYtMDYtMDkgMDU6NTYgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICAtIGRvbid0IGZyZWUgcGR1IGlmIGl0J3Mgbm90IGEgY2xvbmUKICAgLSBpZmRlZiBtb3JlIGNvZGUgbm90IHVzZWQgaWYgc25tcHYxIGRpc2FibGVkCgoyMDA2LTA2LTA3IDA1OjI0ICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBwYXRjaCBmcm9tIERhdmUgdG8gcHJldmVudCBjcmFzaCB3aXRoIC1EcmVnaXN0ZXJfbWliCgoyMDA2LTA2LTA3IDA1OjEzICB0YW5kZXJzCgogICAqIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIGluY2x1ZGUgbmV0aW5ldC9pbi5oIGFuZCBhcnBhL2luZXQuaCB0byBwaWNrIHVwIG50b2hsIG9uIGhwdXgxMC4yMAoKMjAwNi0wNi0wNSAxNTozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBmaXggZG91YmxlLWZyZWUgb2YgZGVsZWdhdGVkIGNhY2hlCgoyMDA2LTA2LTA1IDE0OjI3ICByc3RvcnkKCiAgICogdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsOgoKICAgYWRkIHZhY20gc2V0IHRlc3RzCgoyMDA2LTA2LTA1IDE0OjIxICByc3RvcnkKCiAgICogdGVzdGluZy90ZXN0cy9TdmFjbWNvbmZpZzoKCiAgIGFkZCAocm98cncpY29tbXVuaXR5IGNvbmZpZyBmb3IgcncgdmFjbSB0ZXN0CgoyMDA2LTA2LTA1IDExOjA2ICByc3RvcnkKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBhZGQgc29tZSB2YWNtIG1hdGNoaW5nIGRlYnVnIG1zZ3MKCjIwMDYtMDYtMDUgMTA6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgLSB1c2UgbmV3IGFiaWxpdHkgdG8gc2NoZWR1bGUgYWxhcm0gaW4gMCBzZWMgdG8gcnVuIG10ZSB0aXJnZ2VycyBhc2FwIGFmdGVyCiAgICAgc3RhcnR1cCwgaW5zdGVhZCBvZiBkdXJpbmcgY29uZmlnIGZpbGUgcGFyc2luZwogICAtIGFkZCBtaXNzaW5nIFxuIHRvIGxvZyBtc2cKCjIwMDYtMDYtMDUgMTA6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIC0gYWxsb3cgYSAwIHRpbWUgaW4gc25tcF9hbGFybV9yZWdpc3RlciwgdG8gbWVhbiBydW4gQVNBUCAoaS5lLiAxIHVzZWMpCiAgIC0gYWxsb3cgc2VjL3VzZWMgb2YgMCBpbiBzYV91cGRhdGVfZW50cnksIGV4Y2VwdCBmb3IgU0FfUkVQRUFUIGNhc2UKCjIwMDYtMDYtMDUgMTA6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIC0gbG9nIGVycm9yIChhbmQgZG9uJ3QgY3JlYXRlIGVudHJ5KSBpZiBzZXNzIHVzZXIgbm90IGZvdW5kCiAgIC0gbG9nIGVycm9yIGlmIGFnZW50U2VjTmFtZSAoZGVmYXVsdCB1c2VyKSBub3Qgc3BlY2lmaWVkCiAgIC0gYWRkIG1pc3NpbmcgXG4gdG8gZGVidWcgbXNnCgoyMDA2LTA2LTA1IDA5OjUzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgY2hhbmdlIGxlbiB0eXBlIHRvIHNpemVfdAoKMjAwNi0wNi0wNSAwOTozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGRhdGFfYWNjZXNzL2ludGVyZmFjZS5jLAogICAgIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIGFkZCBjb250YWluZXIgbmFtZXMKCjIwMDYtMDYtMDEgMDY6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBlbmZvcmNlIE1JQiBvYmplY3QgbGVuZ3RocwoKMjAwNi0wNS0yOSAwMjo0MCAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmdXJ0aGVyIHR3ZWFrIHRoZSBlcnJvciByZWdleAoKMjAwNi0wNS0yOSAwMTozNSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjB0cmFwZHBlcmw6CgogICByZS1maXggbmV3bGluZSBpc3N1ZXMKCjIwMDYtMDUtMjggMTM6MTMgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgdGVtcG9yYXJ5IHdvcmthcm91bmQgdG8gcHJldmVudCBzbm1wdHJhcGQgZW1iZWRkZWQgcGVybCBjcmFzaCBvbiB4ODZfNjQgKGJ1ZyAxNDk0ODgyKQoKMjAwNi0wNS0yNyAyMzo1OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTl0cmFwZHRyYXBoYW5kbGUsIFQwNjB0cmFwZHBlcmw6CgogICB1c2UgQ0hFQ0tPUkRJRSBpbnN0ZWFkIG9mIENIRUNLRklMRSB3aGVuIGRvaW5nIG11bHRpcGxlIGNoZWNrcyAod2FzIHN1Y2NlZWRpbmcgd2hlbiBpdCBzaG91bGRuJ3QgaGF2ZSkuICBBbHNvLCBvcGVuIGVtYmVkZGVkIHBlcmwgTE9HIGluIGFwcGVuZCBtb2RlIHNvIHNlY29uZCByb3V0aW5lIGRvZXNuJ3QgdHJ1bXAgdGhlIGZpcnN0CgoyMDA2LTA1LTI3IDIyOjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICBpbmNsdWRlIG5ldGluZXQvaW4uaCBhbmQgYXJwYS9pbmV0LmggdG8gcGljayB1cCBodG9ubCwgZXRjLCBvbiBocHV4MTAuMjAKCjIwMDYtMDUtMjcgMjI6MTYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHdheSBzaW1wbGUgREVTVERJUiBzdXBwb3J0CgoyMDA2LTA1LTI3IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGRlZCBhIGZldyBwZW9wbGUgZnJvbSBwcmV2aW91cyBwYXRjaGVzCgoyMDA2LTA1LTI3IDA3OjQxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBzZXQgbGlidG9vbC1saWtlIExEX0xJQlJBUllfUEFUSCB0byBtYWtlIHN1cmUgdGhlIHBlcmwgYWdlbnQgc3RhcnRzIHByb3Blcmx5IChmaXhlcyBidWcgMTQ5NTQzMykKCjIwMDYtMDUtMjYgMTU6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBkb24ndCByZXZlcnNlIGFkZHJlc3MgYnl0ZSBvcmRlciBmb3Igc29sYXJpcyAoc3BlY2lmaWNhbGx5IHg4NikgZm9yIGxvY2FsIGFkZHJlc3NlcwoKMjAwNi0wNS0yNiAxNToyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmg6CgogICByZW1vdmUgZG91YmxlIGVudHJ5IGNvbW1lbnQKCjIwMDYtMDUtMjYgMDk6NTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgb25lIGludHB0cl90IGNhc3QgZnJvbSBhIHBvaW50ZXIKCjIwMDYtMDUtMjYgMDk6MzMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgY29uZmlndXJlOgoKICAgY2hlY2sgZm9yIHVpbnRwdHJfdCBhbmQgaW50cHRyX3QKCjIwMDYtMDUtMjYgMDY6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIEFub3RoZXIgcHJvcGVyIHBvaW50ZXIgY2FzdAoKMjAwNi0wNS0yNiAwNjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC86IFNOTVAvU05NUC54cywgVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywKICAgICBhZ2VudC9hZ2VudC54czoKCiAgIFBhdGNoIGZyb20gZGFyaXggdG8gcHJvcGVybHkgY2FzdCBwb2ludGVycyB0byBhbiBJViBpbnN0ZWFkIG9mIGFuIGludCB0byBmaXggNjRiaXQgaXNzdWVzCgoyMDA2LTA1LTI2IDAxOjUyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIG1ha2UgZGFlbW9ucyBiaW5kIHRvIGxvY2FsaG9zdCBieSBkZWZhdWx0IG9ubHkgKGZpeGVzIGJ1ZyAxNDI0MjkzKQoKMjAwNi0wNS0yNSAxNToxMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgc2V0IFNOTVBfUEVSU0lTVEVOVF9ESVIgZm9yIGFsbCBhcHBzL2RhZW1vbnMKCjIwMDYtMDUtMjUgMTU6MDcgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIHNldCBTTk1QQ09ORlBBVEggZm9yIGFsbCBhcHBzL2RhZW1vbnMKCjIwMDYtMDUtMjUgMDk6MTQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9TdjNjb25maWc6CgogICBkb24ndCBvcGVuIGRlZmF1bHQgc211eCBwb3J0L3NvY2tldAoKMjAwNi0wNS0yNSAwODowNSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzdXNtY29uZmlnYWdlbnQsIFN2YW55Y29uZmlnOgoKICAgZG9uJ3Qgb3BlbiBkZWZhdWx0IHNtdXggcG9ydC9zb2NrZXQKCjIwMDYtMDUtMjQgMDg6MzIgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsOgoKICAgbW9yZSBwb3J0YWJsZSB3YXkgb2YgY2FsbGluZyBwZXJsCgoyMDA2LTA1LTI0IDA4OjI2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBkb3VibGUtZm9yayB0aGUgcGVybCBzdWJhZ2VudCB0byBhdm9pZCBzaGVsbCBvdXRwdXQgZnJvbSBqb2IgaGFuZGxpbmcKCjIwMDYtMDUtMjQgMDY6NDIgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGludHJvZHVjZSBhZGRpdGlvbmFsIHZhcmlhYmxlcyBmb3Igc3ViYWdlbnQgdGVzdHM6IEFHRU5UWF9DT05GSUdfRklMRSwgU05NUF9BR0VOVFhfUElEX0ZJTEUsIFNOTVBfQUdFTlRYX0xPR19GSUxFCgoyMDA2LTA1LTI0IDA2OjM5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBuZXcgdGVzdDogJ0FnZW50WCBzdWJhZ2VudCBpbiBQZXJsICh1c2luZyBOZXRTTk1QOjphZ2VudCknCgoyMDA2LTA1LTIyIDE1OjQ4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1MXNvbGFyaXNob3N0ZGlzazoKCiAgIHRoaXMgdGVzdCByZXF1aXJlcyBob3N0L2hyX3N5c3RlbSBpbiBwYXJ0aWN1bGFyIGFuZCB1c2VzIHYxLCBub3QgdjJjCgoyMDA2LTA1LTIyIDE1OjQyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1MHNvbGFyaXNob3N0Y3B1OgoKICAgdGhpcyB0ZXN0IHJlcXVpcmVzIGhvc3QvaHJfZGV2aWNlIGluIHBhcnRpY3VsYXIgYW5kIHVzZXMgdjEsIG5vdCB2MmMKCjIwMDYtMDUtMjIgMTU6MzYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXA6CgogICB0aGlzIHRlc3QgdXNlcyB2MSwgbm90IHYyYwoKMjAwNi0wNS0yMiAxNToxOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTJob3N0dXB0aW1lOgoKICAgdGhpcyB0ZXN0IHJlcXVpcmVzIGhvc3QvaHJfc3lzdGVtIGluIHBhcnRpY3VsYXIKCjIwMDYtMDUtMjIgMDM6MDggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXA6CgogICB0aGlzIHRlc3QgcmVxdWlyZXMgaG9zdC9ocl9zdG9yYWdlIGluIHBhcnRpY3VsYXIKCjIwMDYtMDUtMTkgMTE6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIGZpeCBmb3IgYnVnIDEzMTM2NjcgcmVtb3ZlZCBzeW5jaCBzZW5kLCBhbGxvd2luZyB1cyB0byB1bmNvbW1lbnQgdGhlCiAgICAgY29tbWVudGVkIG91dCBwZHUgZnJlZSBvbiBlcnJvciwgcGx1Z2dpbmcgYSBtZW1vcnkgbGVhayBpZGVudGlmaWVkCiAgICAgb24gY29kZXJzIGJ5IGRlcmVrbCBhdCBibHVleW9uZGVyIGNvIHVrCgoyMDA2LTA1LTE5IDEwOjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICAtIHVzZSBucnByb2NzLTEgYXMgaW5kZXggaW5zdGVhZCBvZiBpLCB3aGljaCB3aWxsIGJlIG5lZ2F0aXZlIGlmIGNwdWluZm8KICAgICBkb2Vzbid0IGNvbnRhaW4gYSAncHJvY2Vzc29yJyBsaW5lCgoyMDA2LTA1LTE3IDE1OjExICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgbmVlZCBzeXMvdHlwZXMuaCBiZWZvcmUgbmV0aW5ldC9pbi5oIG9uIHNvbWUgcGxhdGZvcm1zCgoyMDA2LTA1LTEzIDAwOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgdXBkYXRlIENWUyBob3N0IG5hbWUKCjIwMDYtMDUtMTIgMTU6MDcgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgICBTTk1QL01ha2VmaWxlLlBMLCBTTk1QL1NOTVAucG0sIFNOTVAvU05NUC54cwosIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAosIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBjaGFuZ2UgLVcgZmxhZyBzdWJzdGl0aW9uIHRvIGJlIGV4YWN0IG1hdGNoIG9mIGZsYWdzIHRvIHJlbW92ZSwgcmF0aGVyIHRoYW4gcmVtb3ZpbmcgYW55IC1XIGZsYWcgZm9yIHBvcnRhYmlsaXR5IHJlYXNvbnMKCjIwMDYtMDUtMTIgMDk6MTAgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbWlzYy4gYWRkaXRpb25zIGZvciBtb3JlIGNvbmZpZ3VyYXRpb24gY29udHJvbCBvbiBidWlsZCBmYXJtcywgaW5jbHVkaW5nIGVtYmVkZGVkIHBlcmwgYnVpbGRpbmcKCjIwMDYtMDUtMTIgMDg6MTYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNjB0cmFwZHBlcmwsIFQwNjFhZ2VudHBlcmw6CgogICBmaXggbmV3bGluZSBpc3N1ZXMKCjIwMDYtMDUtMTIgMDg6MTMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTNhZ2VudHYxdHJhcCwgVDA1NGFnZW50djJjdHJhcCwKICAgICBUMDU1YWdlbnR2MW1pbnRyYXAsIFQwNTZhZ2VudHYyY21pbnRyYXAsCiAgICAgVDExM2FnZW50eHRyYXA6CgogICBlbnN1cmUgdGhlIHRlc3RzIHdvcmsgZXZlbiBpZiBVQ0QtU05NUC1NSUIgaXNuJ3QgaW4gZGVmYXVsdHMgTUlCUyBsaXN0CgoyMDA2LTA1LTEyIDA4OjEwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXA6CgogICBpbnRyb2R1Y2UgZGVsYXlzIHRvIG5vdCBsb3NlIHRyYXBzCgoyMDA2LTA1LTEyIDA3OjU0ICB0YW5kZXJzCgogICAqIFJFQURNRS5haXg6CgogICB1cGRhdGUgUkVBRE1FIGZvciBBSVggYmFzZWQgb24gYnVpbGQgdGVzdCBleHBlcmllbmNlIG9uIEFJWCA0LjMuMy81LjEvNS4yLzUuMwoKMjAwNi0wNS0wOCAwMzowNyAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBpbnRyb2R1Y2UgTlNCX0xJQldSQVAgdG8gYmUgYWJsZSB0byBzcGVjaWZ5IC0td2l0aFtvdXRdLWxpYndyYXA9eHh4CgoyMDA2LTA1LTA4IDAxOjExICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHJlbW92ZSBzbXV4IGZyb20gTlNCX0RJU1RfTU9EVUxFUyAoaXQncyBhbHJlYWR5IGluIE5TQl9FWFRSQV9NT0RVTEVTKQoKMjAwNi0wNS0wOCAwMDo0NyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL3Jvd19hcGkuaDoKCiAgIGJ1aWxkIGZpeCBmb3IgQzg5IGNvbXBpbGVycyAoZS5nLiB4bGMgb24gQUlYIDQuMy4zKTogbm8gdHJhaWxpbmcgY29tbWEgYWZ0ZXIgbGFzdCBlbnRyeSBvZiBhICJ0eXBlZGVmIGVudW0iCgoyMDA2LTA1LTA1IDE2OjAzICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZ1cnRoZXIgdHdlYWtpbmcgb2YgdGhlIGV4Y2VwdGlvbiByZWdleAoKMjAwNi0wNS0wNSAxNToyOCAgdGFuZGVycwoKICAgKiBSRUFETUUuaXJpeDoKCiAgIEluaXRpYWwgUkVBRE1FIGZvciBJUklYCgoyMDA2LTA1LTA1IDE0OjUxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIHB1dCB0aGUgc25wcmludGYgbGVuZ3RoIGludG8gYSBkZXJlZmVyZW5jZWQgcG9pbnRlcgoKMjAwNi0wNS0wNCAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY292ZXJ0aXkgMTM1OiBkb3VibGUgY2hlY2sgbmV0c25tcF9vaWRfZmluZF9wcmVmaXggcmV0dXJucyBhIHBvc2l0aXZlIHJlc3VsdCAoc2hvdWxkIG9ubHkgaGFwcGVuIGluIGJyb2tlbi10cmVlIGNhc2VzKQoKMjAwNi0wNS0wNCAxNDozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBjb3Zlcml0eSAjMTM2OiBmcmVlIG1lbSBsZWFrIGluIHJhcmUgYmFkLWFnZW50eCBwYWNrZXQgY2FzZQoKMjAwNi0wNS0wMyAxMzo1OSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgTkVXUzoKCiAgIFsgMTQ4MTAxMiBdIEhQLVVYIDExLjAvMTFpOiBpcEFkRW50QmNhc3RBZGRyIHdyb25nIChwYXRjaCBzdWJtaXR0ZWQgYnkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyKQoKMjAwNi0wNC0zMCAyMjowNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBbIDE0Nzg2MTYgXSBzbm1wdXNtIG91dHB1dHMgdG8gc3RkZXJyIG9uIHN1Y2Nlc3MKCjIwMDYtMDQtMzAgMjI6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgWyAxNDc5MDcxIF0gNjQgYml0cyBjb3VudGVyIG9uIExpbnV4ICYgZ29vZCBwYXJzaW5nIG9mIGRpc2tzdGF0cyAoYWdhaW4pIFttb2RpZmllZF0gZnJvbSBGYWJyaWNlIEJhY2NoZWxsYQoKMjAwNi0wNC0yNSAxMDozMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgWyAxNDY2NDUwIF0gZml4IGNvbXBpbGF0aW9uIHdpdGggbGludXgvZXRodG9vbC4gIEluIG90aGVyIHdvcmRzOiB1Z2ggbmFzdHkgYnV0IG5lZWRlZCBwYXRjaAoKMjAwNi0wNC0yNSAxMDoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBtb2RpZmllZCB2ZXJzaW9uIG9mIFsgMTQ2NjQ1MSBdIGlwQWRkcmVzcyBzaXplIHdpdGggNjRiaXQgdG8gdXNlIHNpemVvZigpIGZvciB0aGUgZGF0YXR5cGUgaW4gcXVlc3Rpb24KCjIwMDYtMDQtMjEgMDU6MzAgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBTa2lwIG1pc3NpbmcgZW50cmllcyAocmF0aGVyIHRoYW4gY3Jhc2hpbmcgb3V0IGNvbXBsZXRlbHkpCgoyMDA2LTA0LTIwIDE3OjI0ICB0YW5kZXJzCgogICAqIHNubXBsaWIvOiBjb250YWluZXIuYywgc25tcHVzbS5jOgoKICAgZml4IHR5cG9zCgoyMDA2LTA0LTIwIDE3OjEzICB0YW5kZXJzCgogICAqIE5FV1M6CgogICByZXBocmFzZWQKCjIwMDYtMDQtMjAgMTY6NTUgIHRhbmRlcnMKCiAgICogTkVXUzoKCiAgIGRvY3VtZW50IGNoYW5nZXMgc2luY2UgNS4zLjAuMQoKMjAwNi0wNC0yMCAxNjoxOSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmw6CgogICBhZGQgU0lHSFVQIHRlc3QKCjIwMDYtMDQtMjAgMTY6MDMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTl0cmFwZHRyYXBoYW5kbGUsIFQwNjB0cmFwZHBlcmw6CgogICBhZGQgU0lHSFVQIHRlc3QKCjIwMDYtMDQtMjAgMTU6MjcgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBmaXggYnVnIDE0NzMyODk6IFJlLWluaXQgb2YgNS4zLjAuMSBkYWVtb25zIGZhaWwgYWZ0ZXIgU0lHSFVQCgoyMDA2LTA0LTIwIDE1OjI0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQ6CgogICBhZGQgU0lHSFVQIHRlc3QKCjIwMDYtMDQtMjAgMTU6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgLSBmaXggYnVnIDE0NzMyODk6IFJlLWluaXQgb2YgNS4zLjAuMSBhZ2VudCBmYWlscyBhZnRlciBTSUdIVVAKCjIwMDYtMDQtMjAgMTU6MTUgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgYWRkIFNJR0hVUCB0ZXN0CgoyMDA2LTA0LTIwIDE1OjA5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGludHJvZHVjZSBIVVBQUk9HKCksIEhVUEFHRU5UKCkgYW5kIEhVUFRSQVBEKCkgZm9yIHVwY29taW5nIFNJR0hVUCB0ZXN0cwoKMjAwNi0wNC0xOCAxMjoxNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBCdWcgIzE0MzIxNjU6IHR5cG9zIGluIHRoZSBmaWxlbmFtZXMKCjIwMDYtMDQtMTggMTE6MDEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZml4IGJ1ZyAxNDU4Njg1OiBtYW4gcGFnZSBmb3Igc2V0YWNjZXNzIHdhcyBtaXNzaW5nIGEgdG9rZW4gaW4gdGhlIHN1bW1hcnkgbGluZQoKMjAwNi0wNC0xOCAxMDo1OCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBmaXggYnVnIDE0NTg4MTg6IGF1dGhjb21tdW5pdHkgYW5kIGZyaWVuZHMgdXNlIC1WIG5vdCAtdiB0byBzcGVjaWZ5IGEgdmlldwoKMjAwNi0wNC0xOCAxMDozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgWyAxMzQxMDk4IF0gRml4IG1pYjJjLm9sZC1hcGkuY29uZiBvaWQgc3VmZml4ZXMsIHN1ZmZpeCBsZW5ndGhzIGZyb20gbnNodWxtYW4KCjIwMDYtMDQtMTggMTA6MzIgIGhhcmRha2VyCgogICAqIE5FV1MsIFJFQURNRToKCiAgIFN1cHBvcnQgZnVuY3Rpb25zIGZvciBlYXNpZXIgZW1iZWRkZWQgcGVybCBpbnRlZ3JhdGlvbjogWyAxMzY5OTk2IF0gbWliIHRvIHBlcmwgc3VwcG9ydCBieSBQZXRlciBNYXJ0aW4KCjIwMDYtMDQtMTggMTA6MjggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC8uY3ZzaWdub3JlLAogICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwKICAgICBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgbG9jYWwvbWliMmMucGVybC5jb25mOgoKICAgU3VwcG9ydCBmdW5jdGlvbnMgZm9yIGVhc2llciBlbWJlZGRlZCBwZXJsIGludGVncmF0aW9uOiBbIDEzNjk5OTYgXSBtaWIgdG8gcGVybCBzdXBwb3J0IGJ5IFBldGVyIE1hcnRpbgoKMjAwNi0wNC0xOCAxMDoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgWyAxNDY1NDg1IF0gbmV0c25tcF9jb25maWdfcmVtZW1iZXJfZnJlZV9saXN0IG1lbSBsZWFrIGZyb20gUm9iZXJ0IFdpbGNveAoKMjAwNi0wNC0xOCAwNjo1OCAgaGFyZGFrZXIKCiAgICogbWlicy86IElQLUZPUldBUkQtTUlCLnR4dCwgSVAtTUlCLnR4dCwgcmZjbGlzdAo6CgogICB1cGRhdGUgZnJvbSBuZXdseSBwdWJsaXNoZWQgUkZDcwoKMjAwNi0wNC0xMyAxMzoyNyAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgWyAxMzY0MjQ4IF0gQWRkIG5ldC1zbm1wLWNvbmZpZyAtLWNvbXBpbGUtc3ViYWdlbnQgcGFyYW1ldGVyczogZ2VuZXJhbCByZXdvcmsgb2YgdGhlIG1haW4gd3JhcHBlciBmb3IgYXV0by1zdWJhZ2VudHMgZnJvbSBtYWdmcgoKMjAwNi0wNC0xMyAxMzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBbIDEzNzE3NzggXSBkaXNrSU9UYWJsZSBjb250YWlucyBpbnZhbGlkIGRhdGEgZm9yIHNvbWUgZGV2aWNlcyBvbiBMaW51eAoKMjAwNi0wNC0xMyAxMToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBbIDEzODYyNjQgXSA1LjIuMiAtIGZpeCBMaW51eCBDUFUgY291bnRlcnMgb24gU01QIG1hY2hpbmVzCgoyMDA2LTA0LTEyIDEyOjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBmaXggcGFyc2luZyBvZiBhZGRyZXNzZXMgdGhhdCBJIGJyb2tlIHdoZW4gaW1wbGVtZW50aW5nIHBhcnNpbmcgb2YgZml4ZWQtd2lkdGggc3RyaW5ncwoKMjAwNi0wNC0xMiAxMDowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBmaXggYSBidWcgcmVwb3J0ZWQgaW4gMTExODgxNCB3aGVyZSBpbml0IGxlbmd0aCB3YXNuJ3QgZ2V0dGluZyBpbml0aWFsaXplZCBwcm9wZXJseQoKMjAwNi0wNC0xMiAwOTo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgZml4ZXMgZm9yIGZpeGVkIGxlbmd0aCBzdHJpbmcgcGFyc2luZwoKMjAwNi0wNC0xMiAwOToyMiAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgcmVtb3ZlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzCgoyMDA2LTA0LTEyIDA5OjE5ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBmaXhlZCBsZW5ndGggc3RyaW5nIHBhcnNpbmcKCjIwMDYtMDQtMTEgMDQ6MDkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgQnVpbGQgZml4IGZvciAiY29uZmlndXJlIC0td2l0aC1vdXQtdHJhbnNwb3J0cz1DYWxsYmFjayIgKGZpeGVzIGZpcnN0IHBhcnQKICAgb2YgYnVnIDE0Njc3MjQpLgogICBXaHkgZG8gdGVzdHMgMjEtMjUgYW5kIDM0LTM1IChhbGwgaW52b2x2aW5nIHNubXB0cmFwZCkgZmFpbCBpbiA1LjMrICh1bmxpa2UKICAgNS4yLngpIGlmIHRoZSBjYWxsYmFjayB0cmFuc3BvcnQgaXNuJ3QgYXZhaWxhYmxlPwoKMjAwNi0wNC0xMCAwNzoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBbIDEzNjQ2NDggXSBGaXggc2VnZmF1bHQgb24gcGVybCBhc3luYyBidWxrd2FsayBmcm9tIE9sZSBCam9ybgoKMjAwNi0wNC0xMCAwNzoxOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgWyAxNDE1NTg2IF0gNS4zLjAuMSBob3N0L2hyX3N3cnVuLmMgcGF0Y2hlcyBmb3IgQUlYIDQsMy81LjIgZnJvbSBKb2UgQnVlaGxlcgoKMjAwNi0wNC0wOSAyMTo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLCBtaWJJSS9pZlRhYmxlLmgKOgoKICAgWyAxNDI3NzkzIF0gaWYoWClUYWJsZSBpbXBsZW1lbnRhdGlvbiBmb3IgT3BlbkJTRCAzLnggZnJvbSBOb3J0aHRyb04KCjIwMDYtMDQtMDkgMjE6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFsgMTQyOTQ1NSBdIGVuZGxlc3MgbG9vcCwgdGFibGVfaXRlcmF0b3IsIDUuMyBmcm9tIEtyaXMgKHRpbmtlcjEwNSkKCjIwMDYtMDQtMDkgMjE6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jOgoKICAgWyAxNDYwMDgyIF0gW1BBVENIXTogRml4IGV4dGVybmFsIGZkIGhhbmRsaW5nIChhbm9uKQoKMjAwNi0wMy0yNyAxNjo1MiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QyMDBzbm1wdjJjd2Fsa2FsbDoKCiAgIHJlbW92ZSAodXNlZnVsKSAiLUNwIC1DdCIgc3RkZXJyIG91dHB1dCBzaW5jZSBpdCBoYXMgYmVlbiBzZWVuIHRvIGludGVyZmVyZSB3aXRoIHRoZSBzdGRvdXQgbWVzc2FnZXMgdG8gYmUgY2hlY2tlZAoKMjAwNi0wMy0yNCAwODo0NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBSZWNvZ25pc2UgZmFpbGVkL2R1cGxpY2F0ZSByZWdpc3RyYXRpb25zLCBhbmQgZG9uJ3QgcGxvdWdoIG9uIHJlZ2FyZGxlc3MKCjIwMDYtMDMtMjQgMDg6NDMgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgRG9uJ3QgY2hva2Ugb24gU05NUHYyIGV4Y2VwdGlvbnMKICAgKFN0aWxsIG5lZWQgdG8gaGFuZGxlIFNOTVB2MSBlcnJvcnMpCiAgIEZpeCBhIGNvdXBsZSBvZiBtaW5vciBvdXRwdXQgdHlwb3MuCgoyMDA2LTAzLTIzIDE2OjAwICB0YW5kZXJzCgogICAqIG1hbi9taWIyYy5jb25mLjUuaW46CgogICBGaXggc2VjdGlvbiBvZiBtaWIyYy5jb25mLjUgKERlYmlhbiBwYXRjaCAjMTYgZnJvbSA1LjIuMi0zKQoKMjAwNi0wMy0yMyAxMToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgUGF0Y2ggZnJvbSBkYXJpeCB0byBvcHRpb25hbGx5IHR1cm4gb2ZmIGNvbm5lY3Rpb24gbG9nZ2luZyBmb3IgdGNwX3dyYXBwZXJzCgoyMDA2LTAzLTE2IDAxOjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIFJvb3Qgc2Vjb25kIG91dHB1dCB0YWJsZSBjb3JyZWN0bHkKCjIwMDYtMDMtMTYgMDE6NTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmM6CgogICBDb3JyZWN0IGxvZ2ljIG9mIHN0YXJ0dXAgdGVzdHMKCjIwMDYtMDMtMTUgMDg6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfc29sYXJpcy5jOgoKICAgRml4IFNDX0FJTkZPIHN3YXBjdGwoKSBjYWxsLgoKMjAwNi0wMy0xNSAwNTo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBSZWNvZ25pc2UgYnVpbHQtaW4gdmVyc3VzIGNvbmZpZy1kZWZpbmVkIG5vdGlmaWNhdGlvbnMsCiAgIGFuZCBzZXQgb3duZXIgYWNjb3JkaW5nbHkuCgoyMDA2LTAzLTEwIDA3OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIGRvbid0IHVzZSBwZXJmZWN0bHkgbGVnYWwgcGVybCBzdHJ1Y3R1cmVzIGluIEMgY29kZQoKMjAwNi0wMy0wOSAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBmaXggdHlwb3MKCjIwMDYtMDMtMDkgMTY6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIGZpeCBzY2hlZHVsZSB0eXBvCgoyMDA2LTAzLTA5IDE0OjAwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmcmVlIG1hbGxvYyBpbiBlcnJvciBjb25kaXRpb24gd2hlbiBkZWNvZGUgZnVuY3Rpb24gbm90IHNwZWNpZmllZAoKMjAwNi0wMy0wOSAxMzo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfY2xpZW50LmMsIHNubXB2My5jOgoKICAgZW5zdXJlIHRoYXQgaWYgb3AgPT0gcmVjZWl2ZWQgbWVzc2FnZSB0aGF0IHdlIGhhdmUgYSBQRFUgdG9vIChhbHdheXMgd2lsbCBiZSB0aGUgY2FzZSkKCjIwMDYtMDMtMDkgMTM6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRvbnQgZGVsdmUgaW50byBmdXR1cmUgaWYgc3RhdGVtZW50IHdoZW4gc2Vzc2lvbiBmYWlscyB0byBwcm9iZQoKMjAwNi0wMy0wOSAxMzozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgZnJlZSBhIHBkdSBvbiB0aGUgZXJyb3IgY2FzZSBvZiBubyBzZXNzaW9uLi4uCgoyMDA2LTAzLTA5IDEzOjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIHJldmVyc2UgYSBwYXRjaCB0aGF0IHdhcyB0cnlpbmcgdG8gZnJlZSBhbiBhcnJheQoKMjAwNi0wMy0wOSAxMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGNvdmVyaXR5IDc1OiBlbnN1cmUgZnJlZSBpbiByYXJlIGNhc2Ugd2hlcmUgb3RoZXIgc2lkZSBvZiB0cmFuc3BvcnQgbm90IGZvdW5kIChzaG91bGRuJ3QgZXZlciBoYXBwZW4pCgoyMDA2LTAzLTA5IDEzOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgbWlzYyBlcnJvciBjaGVja2luZyAodW5uZWVkZWQgYnkgb3RoZXIgbG9naWMsIGJ1dC4uLiAgd2h5IG5vdCkKCjIwMDYtMDMtMDkgMTM6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgY292ZXJpdHkgMzQ6IGNoZWNrIHRoYXQgdXNtIHdhc24ndCBhY3R1YWxseSBpbGxlZ2FsbHkgcGFzc2VkIGEgbnVsbCBzZXNzaW9uIChzaG91bGQgaGF2ZSBiZWVuIHN0b3BwZWQgbG9uZyBiZWZvcmUgbm93KQoKMjAwNi0wMy0wOSAxMzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBjb3Zlcml0eSBtdWx0aXBsZTogY2hlY2sgYSBmZXcgcG9pbnRlcnMgZm9yIG51bGwgcmVmcyBqdXN0IGluIGNhc2UKCjIwMDYtMDMtMDkgMTI6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiB0ZXh0X3V0aWxzLmMsIHZhY20uYzoKCiAgIGNvdmVyaXR5IDc5OiBmcmVlIG1lbW9yeSBpbiBlcnJvciBjb25kaXRpb24gc3BvdHMKCjIwMDYtMDMtMDkgMTI6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgYWxsb3cgZm9yIHF1ZXN0aW9uYWJseSBsZWdhbCBudWxsIGNvbW11bml0eSBzdHJpbmdzCgoyMDA2LTAzLTA5IDEyOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBjb3Zlcml0eSA2MTogY2hlY2sgcmV0dXJuIHZhbHVlIGZyb20gaW4gdHJlZSB0byBlbnN1cmUgaXQncyBub3QgbmVnYXRpdmUKCjIwMDYtMDMtMDkgMTI6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGNvdmVyaXR5IDgwOiBmcmVlIHZibGlzdCBpbiBzb21lIGZhaWx1cmUgY2FzZXMKCjIwMDYtMDMtMDkgMTA6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYzoKCiAgIGNvdmVyaXR5IDgzOiBmcmVlIG1lbSBvbiBzaG91bGQtbmV2ZXItZ2V0LWhlcmUgc3BvdAoKMjAwNi0wMy0wOSAxMDozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgZnJlZSBtZW1vcnkgb24gb3RoZXIgbWFsbG9jIGZhaWx1cmVzCgoyMDA2LTAzLTA5IDEwOjI2ICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgbW9yZSBjb21tYW5kIGxpbmUgZmxhZ3MgZm9yIGZhc3RlciBwYXRjaCBhcHBsaWNhdGlvbgoKMjAwNi0wMy0wOSAxMDoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jOgoKICAgY2hlY2sgZm9yIG51bGwgb3duZXIgaW4gMiBvdGhlciBzcG90cwoKMjAwNi0wMy0wOSAxMDoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgY292ZXJpdHkgOTcvNDg6IGZyZWUgbG9zdCBtZW1vcnkgb24gaWxsZWdhbCB0YWJsZTsgY2hlY2sgZm9yIG51bGwgdGhhdCBzaG91bGRuJ3QgZXZlciBiZQoKMjAwNi0wMy0wOSAxMDowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgY292ZXJpdHkgOTY6IGZpeCBwb3RlbnRpYWwgbGVhayB3aGVuIG1hbGxvYyBmYWlscwoKMjAwNi0wMy0wOSAxMDowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jOgoKICAgZnJlZSBhIGhhbmRsZXIgaWYgYSBzdWJzZXF1ZW5jZSBtYWxsb2MgZmFpbHMKCjIwMDYtMDMtMDkgMDk6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIGNvdmVyaXR5IDk4LTEwMDogZnJlZSBzdWNjZXNzIG1hbGxvY3Mgd2hlbiBvbmUgZmFpbHMKCjIwMDYtMDMtMDkgMDk6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jOgoKICAgY292ZXJpdHkgMTAyLzEwMTogaW4gY2FzZSBvZiBtYWxsb2MgZmFpbHVyZXMgZnJlZSB3aGF0IHlvdSBoYXZlIHN1Y2NlZWQgaW4gbWFsbG9jaW5nCgoyMDA2LTAzLTA5IDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jOgoKICAgZG91YmxlIGNoZWNrIHRoYXQgbmV2ZXItc2hvdWxkLWJlLW51bGwgY29uZGl0aW9ucyBhcmUgdHJ1ZQoKMjAwNi0wMy0wOSAwOTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBjb3Zlcml0eSA5MTogZnJlZSB2YXJpb3VzIG1lbW9yeSBhbGxvY2F0aW9ucyB3aGVuIHN1YnNlcXVlbnQgYWxsb2NhdGlvbnMgZmFpbAoKMjAwNi0wMy0wOSAwOTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIGNvdmVyaXR5ICM0MTogbm90IGxpa2VseSBhIHJlYWwgbnVsbCBkZXJlZiBmb3IgdmFsaWQgdXNlIGNhc2VzOyBjYXNlcy4gIGRvdWJsZSBjaGVjayBmb3IgaXNzdWVzIGFueXdheQoKMjAwNi0wMy0wOSAwOToyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9zb2xhcmlzLmM6CgogICBGdWxsZXIgaW1wbGVtZW50YXRpb24gb2YgbWVtb3J5IEhBTCBmb3IgU29sYXJpcyAoMTAgYXQgbGVhc3QpCgoyMDA2LTAzLTA5IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIGNvdmVyaXR5IDUwOiBkb3VibGUgY2hlY2sgd2UgY291bGQgZmluZCB0aGUgZXh0ZW5zaW9uIHRvIHJlbW92ZQoKMjAwNi0wMy0wOSAwODozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBjb3Zlcml0eSA1MTogZG91YmxlIGNoZWNrIHdlIGNvdWxkIGZpbmQgdGhlIGV4dGVuc2lvbiB0byByZW1vdmUKCjIwMDYtMDMtMDkgMDg6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgZW5zdXJlIGlsbGVnYWwgY29uZmlndXJhdGlvbiBvZiB0b28gbG9uZyBPSURzIGRvZXNuJ3Qgb2NjdXIKCjIwMDYtMDMtMDkgMDg6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBjb3Zlcml0eSA2NjogY2hlY2sgdGhhdCBudWxsIGlzbid0IHdyaXR0ZW4gYmV5b25kIGVuZAoKMjAwNi0wMy0wOSAwODoxNSAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgY292ZXJpdHkgNjc6IGVuc3VyZSB3ZSBkb24ndCB3cml0ZSB0aGUgbnVsbCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyCgoyMDA2LTAzLTA5IDA4OjA3ICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgYSBzY3JpcHQgdG8gaGVscCBhdXRvbWF0dGVkIHBhdGNoIG1hbmFnZW1lbnQgYW5kIGFwcGx5IHBhdGNoZXMgdG8gbXVsdGlwbGUgYnJhY2hlcyBvZiB0aGUgbmV0LXNubXAgdHJlZQoKMjAwNi0wMy0wOSAwODowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBjb3Zlcml0eSA5MjogZnJlZSBkYXRhIHN0cnVjdHVyZSBpbiBldmVudCBzb21laG93IGFuIHVuc3VwcG9ydGVkIGRhdGEgdHlwZSBpcyBwYXNzZWQgaW4gKGNhbid0IGFjdHVhbGx5IGhhcHBlbiB3aXRoIGN1cnJlbnQgY29kZSkKCjIwMDYtMDMtMDkgMDg6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgY292ZXJpdHkgOTM6IGZyZWUgcG9pbnRlcnMgd2hlcmUgbWFsbG9jIHN1Y2NlZWRlZCBpZiBpdCBzdWRkZW5seSBzdG9wcGVkIHN1Y2NlZWRpbmcKCjIwMDYtMDMtMDkgMDc6MzMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICB0eXBvCgoyMDA2LTAzLTA5IDA3OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgY292ZXJpdHkgIzEwNTogZnJlZSBzdG9yYWdlIGluIGVycm9yIGxvb3AKCjIwMDYtMDMtMDggMjE6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGNvdmVyaXR5IDUyOiByYXJlIChuZXZlcikgZGVyZWZlcmVuY2UgaW4gaWxsZWdhbCBjb2RlIGNhc2VzLgoKMjAwNi0wMy0wOCAyMTo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBjb3Zlcml0eSAxMDY6IHJhcmUgbWVtb3J5IGxlYWsgb24gaWxsZWdhbCBhZ2VudHggcGR1J3MgYmVpbmcgcGFzc2VkIHRvIHRoZSBjbGllbnQKCjIwMDYtMDMtMDggMjE6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIGNvdmVyaXR5IDExMjogY2xvc2UgZmlsZSBoYW5kbGUgZm9yIC9wcm9jL25ldC9hcnAKCjIwMDYtMDMtMDggMjE6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgY292ZXJpdHkgYnVnICMxMTM6IGZjbG9zZSBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvciBpbiBlcnJvciBsb29wCgoyMDA2LTAzLTA4IDE2OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICBjb3Zlcml0eSBidWcgIzUzOiBjaGVjayB0aGF0IGNsb3NlX2FnZW50eF9zZXNzaW9uIHdhc24ndCBwYXNzZWQgYSBOVUxMIHNlc3Npb24KCjIwMDYtMDMtMDggMTY6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGNvdmVyaXR5ICMxMDc6IGZpeCByYXJlIHBkdSBtZW1vcnkgbGVhayB3aGVuIGZ1bmN0aW9uIGNhbGxlZCBpbGxlZ2FseQoKMjAwNi0wMy0wOCAxNjowMyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgKmF0IGxlYXN0KiBpc3N1ZSBhIFdBUk5JTkcgaWYgd2UnbGwgY3JlYXRlIG5vbi1wb3J0YWJsZSB0YXIgYXJjaGl2ZXMganVzdCBiZWNhdXNlIHRoZSByZWxlYXNlIG1hbmFnZXIgZmFpbGVkIHRvIGluc3RhbGwgc3Rhci4KCjIwMDYtMDMtMDggMTU6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTA4OiBzdGlsbCBzaG91bGQgZnJlZSBtZW1vcnkgaW4gdGhlIG5ldmVyLXNob3VsZC1oYXBwZW4gY2FzZQoKMjAwNi0wMy0wOCAxNTo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBjb3Zlcml0eSAjMTA5OiBjbG9zZSBmaWxlIHBvaW50ZXIgaW4gZXJyb3IgY29uZHRpb25zIHRvIGF2b2lkIHBvdGVudGlhbCByYXJlIGxlYWtzCgoyMDA2LTAzLTA4IDE1OjEwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgY292ZXJpdHkgYnVnIDg1LCByMTU6IGZpeCBwb3RlbnRpYWwgbWVtb3J5IGxlYWsKCjIwMDYtMDMtMDggMTQ6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICAtIGNvdmVyaXR5IGJ1ZyA0MCwgcnVuIDE1OiBmaXggcG90ZW50aWFsIG51bGwgZGVyZWZlcmVuY2UKICAgLSBtaXNjIG90aGVyIGNsZWFudXAvZXJyb3IgaGFuZGxpbmcKICAgICAtIHJlbGVhc2UgbWVtb3J5IHRoYXQgd29uJ3QgYmUgdXNlZCBiZWZvcmUgcmV0dXJuaW5nIGVycm9ycwogICAgIC0gY2hlY2sgZm9yIHBvdGVudGlhbCBudWxsIHJldHVybiBmcm9tIGZ1bmN0aW9uCiAgICAgLSBhc3NpZ24gdmFsdWVzIHRvIGNvcnJlY3QgdmFyaWFibGUKCjIwMDYtMDMtMDggMTQ6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBjb3Zlcml0eSBidWcgIyAxMjk6IGNoZWNrIHNlc3Npb24gb3BlbiByZXN1bHRzIHdoZW4gZm9yd2FyZGluZyBhbmQgYmFpbCBpZiBmYWlsZWQgdG8gb3BlbgoKMjAwNi0wMy0wOCAxNDoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjIGNoZWNrIGZvciBudWxsIGJlZm9yZSBkZXJlZmVyZW5jaW5nCgoyMDA2LTAzLTA4IDE0OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjIDExNTogY2hlY2sgZm9yIG1hbGxvYyBmYWlsdXJlIGJlZm9yZSB1c2luZyB0aGUgcmVzdWx0cwoKMjAwNi0wMy0wOCAxMzo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjIDExNjogY2hlY2sgKGFueXdheSkgZm9yIG51bGwgaW4gdmFyaWFibGVzIHRoYXQgc2hvdWxkIG5ldmVyIGJlIG51bGwKCjIwMDYtMDMtMDggMTM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTE3OiBkb3VibGUgY2hlY2sgdGhhdCBwb2ludGVyIGlzbid0IG51bGwgZm9yIHNhZmUgcHJvZ3JhbW1pbmcgKHNob3VsZCBuZXZlciBoYXBwZW4pCgoyMDA2LTAzLTA4IDEzOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBjb3Zlcml0eSBidWcgIzExODogZG91YmxlIGNoZWNrIHRoYXQgcG9pbnRlciBpc24ndCBudWxsIGZvciBzYWZlIHByb2dyYW1taW5nIChzaG91bGQgbmV2ZXIgaGFwcGVuKQoKMjAwNi0wMy0wOCAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTIwOiBhdm9pZCBhIHBvc3NpYmxlIGRlZmVyZW5jZSB0byBhIGZyZWVkIHZhcmlhYmxlCgoyMDA2LTAzLTA4IDEzOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBjb3Zlcml0eSBidWcgIzEyMjogcmV0dXJuIE5VTEwgYWZ0ZXIgZmFpbGluZyB0byBvcGVuIHRyYW5zcG9ydC4KCjIwMDYtMDMtMDggMTI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTIzOiBhdm9pZCBkb3VibGUgZnJlZSBmb3IgbG9uZyBPSUQgY2FzZXMgZHVyaW5nIGdldG5leHQKCjIwMDYtMDMtMDggMTA6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgY2hlY2sgZm9yIHN0YXIgYmVmb3JlIHVzaW5nCgoyMDA2LTAzLTA4IDEwOjQ4ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIHVzZSBzdGFyIGlmIGF2YWlsYWJsZQoKMjAwNi0wMy0wOCAwNjo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBhIHZlcnkgcmFyZSBvaWQgcGFyc2luZyBidWcgZm9yIHN0cmluZ3MgaW4gdHJ1bmNhdGVkIE9JRHMKCjIwMDYtMDMtMDggMDY6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfd2luLmM6CgogICBXaW5kb3dzIHZlcnNpb24gb2YgbWVtb3J5IEhBTCBpbnRlcmZhY2UKCjIwMDYtMDMtMDggMDY6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgRXh0cmEgcHJvdGVjdGlvbiB3aGVuIGNvbXBpbGluZyB1bmRlciBXaW5kb3dzCgoyMDA2LTAzLTA3IDIyOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTA0OiByYXJlIGNhc2UgbWVtb3J5IGxlYWsgaWYgeW91J3JlIG91dCBvZiBtZW1vcnkgaW4gdGhlIGZpcnN0IHBsYWNlCgoyMDA2LTAzLTA3IDIyOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIGNvdmVyaXR5IGJ1Z3MgIzExOSBpbml0aWFsaXplIDIgcG9pbnRlcnMgdG8gMAoKMjAwNi0wMy0wNyAyMjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBjb3Zlcml0eSBidWcgIzEzMjogZnJlZSB2YXJpb3VzIHBvaW50ZXJzIGluIGVycm9yIGxvb3BzCgoyMDA2LTAzLTA3IDIyOjI0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTMzOiBmcmVlIGtleSBhZnRlciBtYWxsb2MgaW4gZXhpdCBsb29wIGFmdGVyIG9wZW5zc2wgZmFpbGVkCgoyMDA2LTAzLTA3IDIyOjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICBjb3Zlcml0eSBidWcgIzEzNDogZnJlZSBuZXdwZHUgZHVyaW5nIGEgdmFjbS1ub3QtY29uZmlndXJlZCBiYWlsLW91dAoKMjAwNi0wMy0wNiAwODoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfYWl4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9kYXJ3aW4uYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2R5bml4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9ocHV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbmV0YnNkLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9zb2xhcmlzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9tZW1vcnkuaDoKCiAgIFVwZGF0ZSBNZW1vcnkgSEFMIGZyYW1ld29yayB0byBzdXBwb3J0IEhvc3RSZXMgc3RvcmFnZQogICBpbmZvcm1hdGlvbiwgYW5kIHR3ZWFrIGhyU3RvcmFnZVRhYmxlIGltcGxlbWVudGF0aW9uIHRvIHVzZSBpdC4KICAgVGhpcyBoYXMgYmVlbiB0ZXN0ZWQgb24ge0ZyZWUsTmV0LE9wZW59QlNELCBMaW51eCBhbmQgSFAtVVguCiAgIEl0J3MgcHJvYmFibHkgc3RpbGwgYnJva2VuIG9uIEFJWCwgRGFyd2luLCBEeW5peCBhbmQgU29sYXJpcwogICAoYW5kIGFueSBzeXN0ZW0gbm90IGV4cGxpY2l0bHkgbWVudGlvbmVkPykKCjIwMDYtMDMtMDYgMDM6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgRml4IHJldHJpZXZhbCBvZiBmaWxlc3lzdGVtIGluZm9ybWF0aW9uIG9uIE5ldEJTRAoKMjAwNi0wMy0wNiAwMzozMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIFN1cHBvcnQgVUNEIG1lbW9yeS9jcHUgTUlCcyBvbiBPcGVuQlNEIDMueAoKMjAwNi0wMi0yNyAwNDoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIFR3ZWFrIFVDRCBtZW1vcnkgY29uZmlndXJlIHByb2Nlc3NpbmcgdG8gd29yayB3aXRoIHRoZSBtb3N0IHJlY2VudAogICBPcGVuQlNEIGFuZCBOZXRCU0QgcmVsZWFzZXMsIGFuZCB0byB1c2UgdGhlIG1lbW9yeSBIQUwKCjIwMDYtMDItMjcgMDQ6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oOgoKICAgVHdlYWsgbWVtb3J5IEhBTCBjb25maWd1cmUgcHJvY2Vzc2luZyB0byB3b3JrIHdpdGggdGhlIG1vc3QgcmVjZW50CiAgIE9wZW5CU0QgYW5kIE5ldEJTRCByZWxlYXNlcwoKMjAwNi0wMi0yNyAwNDoxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5LzogbWVtb3J5X2ZyZWVic2QuYywKICAgICBtZW1vcnlfbmV0YnNkLmM6CgogICBGaXggcHJvYmxlbXMgd2l0aCBtZW1vcnkgSEFMIGNvZGUgb24gKkJTRCBzeXN0ZW1zCgoyMDA2LTAyLTI3IDA0OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jLCBtZW1vcnkuaDoKCiAgIFVwZGF0ZSBVQ0QgbWVtb3J5IGdyb3VwIHRvIG1ha2UgcHJvcGVyIHVzZSBvZiBtZW1vcnkgSEFMIHJvdXRpbmVzCgoyMDA2LTAyLTI3IDA0OjA0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL21lbW9yeS5oOgoKICAgVXBkYXRlIGRlZmluaXRpb25zIHRvIG1hdGNoIG5ldyBtZW1vcnkgSEFMIGNvZGUKCjIwMDYtMDItMjQgMDg6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgdWNkLXNubXAvbWVtb3J5Lmg6CgogICBVc2UgbWVtb3J5IEhBTCBmb3IgdGhlIFVDRCBtZW1vcnkgZ3JvdXAgKGFsbCBhcmNoaXRlY3R1cmVzKS4KICAgVGhpcyB3aWxsIHByb2JhYmx5IGJyZWFrIHRoZSBhZ2VudCBvbiBhbGwgYmFyIExpbnV4IHN5c3RlbXMKICAgYW5kIG1ha2UgZXZlcnlvbmUgKGluY2x1ZGluZyBUaG9tYXMpIHVuaGFwcHkuCiAgIFNvIHRoZSBjeWNsZSBvZiBsaWZlIGNvbnRpbnVlcy4gIE9oIEZvcnR1bmEuLi4uCgoyMDA2LTAyLTI0IDA4OjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS86IG1lbW9yeS5oLCBtZW1vcnkvbWVtb3J5X2FpeC5jCiwgbWVtb3J5L21lbW9yeV9kYXJ3aW4uYywgbWVtb3J5L21lbW9yeV9keW5peC5jLAogICAgIG1lbW9yeS9tZW1vcnlfZnJlZWJzZC5jLCBtZW1vcnkvbWVtb3J5X2hwdXguYywKICAgICBtZW1vcnkvbWVtb3J5X2xpbnV4LmMsIG1lbW9yeS9tZW1vcnlfbmV0YnNkLmMsCiAgICAgbWVtb3J5L21lbW9yeV9zb2xhcmlzLmM6CgogICBFeHRlbmQgbWVtb3J5IEhBTCB0byBjb3ZlciBhbGwgKHdlbGwsIG1vc3QpIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmVzLgogICBOb3QgeWV0IHRlc3RlZCBvbiBtb3N0IG9mIHRoZXNlIHN5c3RlbXMsIHNvIHRoZXJlIG1heSBlYXNpbHkgYmUgcHJvYmxlbXMuCiAgIEJ1dCBhdCBsZWFzdCB0aGlzIHNob3VsZCBzZXJ2ZSB0byBrZWVwIFRob21hcyBoYXBweS4uLi4KCjIwMDYtMDItMjIgMDg6NTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByLzogZXhwRXJyb3JUYWJsZS5jLAogICAgIGV4cEV4cHJlc3Npb24uYywgZXhwRXhwcmVzc2lvbi5oLCBleHBFeHByZXNzaW9uQ29uZi5jCiwgZXhwRXhwcmVzc2lvbkNvbmYuaCwgZXhwRXhwcmVzc2lvblRhYmxlLmMsCiAgICAgZXhwT2JqZWN0LmMsIGV4cFZhbHVlLmMsIGV4cFZhbHVlLmgsCiAgICAgZXhwVmFsdWVUYWJsZS5jLCBleHBfZW51bS5oOgoKICAgSW1wcm92ZWQgZXhwcmVzc2lvbiBwYXJzaW5nLCBhbmQgcHJlbGltaW5hcnkgZXZhbHVhdGlvbiBvZiBleHByZXNzaW9ucy4KCjIwMDYtMDItMjAgMTU6NDQgIHRhbmRlcnMKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBSZW1vdmUgaGlzdG9yaWMgcmVmZXJlbmNlcyB0byB0YXIgcHJvYmxlbXMgKGF0IGV2ZW4gbW9yZSBwbGFjZXMpCgoyMDA2LTAyLTIwIDE1OjM4ICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgUmVtb3ZlIGhpc3RvcmljIHBhcmFncmFwaCBvbiB0YXIgcHJvYmxlbXM6LSkKCjIwMDYtMDItMjAgMTU6MjIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIChmdXJ0aGVyKSBjbGFyaWZ5IHRoZSBvcmlnaW5hbCBHTlUgdGFyIHByb2JsZW1zCgoyMDA2LTAyLTIwIDA5OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgdXNlIHN0YXIgaW5zdGVhZCBvZiB0YXIgZm9yIGNyZWF0aW5nIGFyY2hpdmVzIHRvIGdldCBhcm91bmQgZ251IHRhciBpbmNvbXBhdGliaWxpdGllcwoKMjAwNi0wMi0xNyAwNzoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIC1maXggYnVnIDEzOTk0MjE6IDUuMis6IHR1bm5lbCBtaWIgZmFpbHMgdG8gYnVpbGQgdy8gaWYtbWliIHJld3JpdGUKCjIwMDYtMDItMTYgMTU6MTkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMzVzbm1wdjN0cmFwZHVzZXJtZ210LCBUMDQ5c25tcHYzaW5mb3JtCiwgVDA0OXNubXB2M2luZm9ybWF1dGgsIFQwNDlzbm1wdjNpbmZvcm1wcml2LAogICAgIFQwNTJzbm1wdjJjaW5mb3JtLCBUMDU3dHJhcGRhdXRodGVzdCwKICAgICBUMDU3dHJhcGRhdXRodGVzdDIsIFQwNTd0cmFwZGF1dGh0ZXN0MywKICAgICBUMDU5dHJhcGR0cmFwaGFuZGxlLCBUMDYwdHJhcGRwZXJsOgoKICAgYWRkICItdCAkU05NUF9TTEVFUCIgdG8gc25tcGluZm9ybSBpbiBvcmRlciB0byBhdm9pZCB0ZXN0IGZhaWx1cmVzIG9uIHNsb3cgbWFjaGluZXMgZXZlbiB3aXRoIGFuIGluY3JlYXNlZCBTTk1QX1NMRUVQIChmaXhlcyBidWcgMTQwMzY4OCkKCjIwMDYtMDItMTUgMTY6MjcgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTRhZ2VudHYyY3RyYXAsIFQwNTVhZ2VudHYxbWludHJhcCwKICAgICBUMDU2YWdlbnR2MmNtaW50cmFwOgoKICAgZG9uJ3QgbGV0IHNubXB0cmFwZCBvcGVuIHN5c3RlbSBhZ2VudHggc29ja2V0IGR1cmluZyB0ZXN0aW5nIChzZWUgYnVnIDE0MjQyOTMpCgoyMDA2LTAyLTE1IDE2OjAyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDQ5c25tcHYzaW5mb3JtLCBUMDQ5c25tcHYzaW5mb3JtYXV0aAosIFQwNDlzbm1wdjNpbmZvcm1wcml2LCBUMDUwc25tcHYzdHJhcCwKICAgICBUMDUxc25tcHYyY3RyYXAsIFQwNTJzbm1wdjJjaW5mb3JtLCBUMDUzYWdlbnR2MXRyYXAKLCBUMDU0YWdlbnR2MmN0cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwLAogICAgIFQwNTd0cmFwZGF1dGh0ZXN0LCBUMDU3dHJhcGRhdXRodGVzdDIsCiAgICAgVDA1N3RyYXBkYXV0aHRlc3QzLCBUMDU4YWdlbnRhdXRodHJhcCwKICAgICBUMDU5dHJhcGR0cmFwaGFuZGxlLCBUMDYwdHJhcGRwZXJsOgoKICAgZG9uJ3QgbGV0IHNubXB0cmFwZCBvcGVuIHN5c3RlbSBhZ2VudHggc29ja2V0IGR1cmluZyB0ZXN0aW5nIChzZWUgYnVnIDE0MjQyOTMpCgoyMDA2LTAyLTE1IDEwOjMwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGdldHRhYmxlOiAgZml4IHJlcGVhdCBjb3VudCBmb3IgU05NUHYxICYgZml4IC1jb2x1bW5zIHRvIGFjdHVhbGx5IHdvcmsKCjIwMDYtMDItMTQgMDY6NDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLAogICAgIGlmVGFibGVfY29uc3RhbnRzLmg6CgogICBSZWdpc3RlciBpZk51bWJlciBhcyBhIHNjYWxhciBvYmplY3QsIG5vdCBhbiBpbnN0YW5jZSwgc28gdGhhdAogICBpdCBoYW5kbGVzIGludmFsaWQgaW5zdGFuY2VzIHByb3Blcmx5LCBhbmQgZml4IE9JRCByZWdpc3RyYXRpb24uCgoyMDA2LTAyLTEzIDE3OjQyICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlIFBTREsgZG93bmxvYWQgaW5zdHJ1Y3Rpb25zLgoKMjAwNi0wMi0xMyAxNTo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLAogICAgIGlmVGFibGVfY29uc3RhbnRzLmg6CgogICBmaXggYnVnIDEzOTkzNjk6IGlmTnVtYmVyIGJyb2tlbgoKMjAwNi0wMi0xMyAxMDo0OSAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgYWRkIDUuMy4wLjEgc2VjdXJpdHkgZml4IGFuZCBzbXV4IHRyYXAgcGF0Y2gKCjIwMDYtMDItMTMgMTA6MzIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBmaXggdHJhcCBwcm9jZXNzaW5nIGZyb20gU01VWCBwZWVycyAocGF0Y2ggMTQzMDgyNCBmcm9tIERlbGwsIHN1Ym1pdHRlZCBieSBTdVNFKQoKMjAwNi0wMi0xMyAwNzo0MSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgaW5jcmVhc2UgbnVtYmVyIG9mIHJldHJpZXMgZm9yIHBvcnQgcHJvYmluZyB0byBsb3dlciB0aGUgY2hhbmNlIGZvciBzcHVyaW91cyB0ZXN0IGZhaWx1cmVzCgoyMDA2LTAyLTExIDE1OjM0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZToKCiAgIHNldCBwZXJzaXN0ZW50RGlyIGZvciBzbm1wdHJhcGQgaW4gb3JkZXIgdG8gYXZvaWQgYmVpbmcgaW52YXNpdmUgKHNlZSBidWdzIDE0MDM2ODgsIDE0MjQyOTMpCgoyMDA2LTAyLTEwIDE1OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIGhlbHBlcnMvYnVsa190b19uZXh0LmMsCiAgICAgaGVscGVycy9pbnN0YW5jZS5jOgoKICAgLSBhIHRhbmdsZWQgd2ViIG9mIGZpeGVzIGZvciBvdmVycmlkZQogICAgIC0gYmFjayBvdXQgZml4IGZvciA3MTE0NjU6IG92ZXJyaWRlIGRpcmVjdGl2ZSBpZ25vcmVkIHdpdGggc25tcGJ1bGtnZXQKICAgICAtIGFwcGx5IG5ldyBmaXhlcyBmb3IgNzExNDY1IChzZWUgYnVnIHJlcG9ydCBmb3IgZ29yeSBkZXRhaWxzKQogICAgIC0gYWxzbyBmaXggb3ZlcnJpZGUgb2YgdGFibGUgaW5zdGFuY2UsIHJlcG9ydGVkIG9uIGNvZGVycwogICAtIGFuZCwgcXVvdGluZyBEYXZlOgoKICAgSSdtIG5vdCBhdCBhbGwgc3VyZSB0aGF0IHRoaXMgaXMgbmVjZXNzYXJpbHkgdGhlIGNvcnJlY3QgZml4LCBidXQKICAgaXQgd2Fzbid0IHZlcnkgY2xlYXIgYXMgdG8gZXhhY3RseSB3aGF0IGlzIGJlaW5nIGhhbmRsZWQgaGVyZS4KICAgVGhpcyBjaGFuZ2UgY2VydGFpbmx5IGFkZHJlc3NlcyB0aGUgYWJvdmUgYnVnIHJlcG9ydCwgd2l0aG91dAogICBzZWVtaW5nIHRvIGJyZWFrIGFueXRoaW5nIGVsc2UuCgogICBMZXQncyBnaXZlIHRoaXMgcGF0Y2ggdGltZSB0byBzZXR0bGUgaW50byB0aGUgbWFpbiBkZXZlbG9wbWVudCBjb2RlLAogICBhbmQgdGhlbiBjb25zaWRlciBiYWNrLXBvcnRpbmcgaXQgdG8gZWFybGllciBsaW5lcy4uLi4uCgoyMDA2LTAyLTA2IDE1OjM2ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkIGNoZWNrcyBmb3IgInN0cnVjdCBubGlzdDY0Iiwgb2ZmNjRfdCBhbmQgbHNlZWs2NCAoZm9yIElSSVggYW5kIGZyaWVuZHMpCgoyMDA2LTAyLTA0IDE0OjMyICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IGZhaWwgIm1ha2UiIG9uIFNOTVBfRVJSX05PRVJST1IKCjIwMDYtMDItMDMgMTc6MzIgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIGJhY2tpbmcgb3V0IHByZXZpb3VzIHBhdGNoICh3aGljaCBicmVha3MgdGVzdCAjMjQgIlNOTVB2MyB0cmFwcyByZWNlaXZlZCBhbmQgc2VudCBieSB0b29scyIpIHVudGlsIHNvbWVvbmUgZmluZHMgdGhlIHRpbWUgdG8gcmV2aWV3IGl0IGFnYWluCgoyMDA2LTAyLTAzIDE2OjM2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlndHJhcGQ6CgogICBmaXggdHlwbwoKMjAwNi0wMi0wMiAxOTozMSAgYWxleF9iCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBGaXggZm9yIGJ1ZyAxNDIwNzU4LiAgTWlzc2luZyBjYWxsICh0eXBvPykgZm9yIEZEX1pFUk8oJmV4Y2VwdGZkcykuCgoyMDA2LTAyLTAyIDE0OjA4ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gdXNlIHRyZWVfaGVhZCBpZiB0cmVlX3RvcCB3YXMgTlVMTC4gaGFuZGxlcyBib3RoIE9JRCBhbmQgbmFtZSBsb29rdXBzCgoyMDA2LTAyLTAxIDE4OjU4ICBic2hhdzY2NgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGxtU2Vuc29ycy5jLCBsbVNlbnNvcnMuaDoKCiAgIGluY29ycG9yYXRlIG1ham9yIHBhdGNoZXMgYnkgTWlrZSBGaXNoZXIgYW5kIFRvbSBFLiBMYWNrbGV5CgoyMDA2LTAyLTAxIDA5OjM5ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gcmV2ZXJ0IGNoYW5nZXMgZnJvbSB2ZXJzaW9uIDUuODgsIHdoaWNoIGJyb2tlIHBhcnNpbmcgZnVsbHkgcXVhbGlmaWVkCiAgICAgbmFtZWQgT0lEcyAoZWcgLmlzby5vcmcpLiBBbm90aGVyIGZpeCBmb3IgcGFyc2luZyBudW1lcmljIE9JRHMgYmVmb3JlCiAgICAgTUlCIGZpbGVzIGFyZSBsb2FkZWQgbmVlZHMgdG8gYmUgaW52ZXN0aWdhdGVkLgoKMjAwNi0wMS0zMSAxMDozMSAgdGFuZGVycwoKICAgKiBtYW4vOiBtaWIyYy5leHRyYWN0LnBsLCBzbm1wbmV0c3RhdC4xLmRlZjoKCiAgIGZpeCBtYW51YWwgcGFnZSBmb3JtYXR0aW5nIGVycm9ycyAoRGViaWFuIHBhdGNoICMxNywgb3JpZ2luYWwgYXV0aG9yIE5pY29sYXMgRnJhbmNvaXMpCgoyMDA2LTAxLTMxIDA5OjI3ICBhbGV4X2IKCiAgICogd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgRml4IEJlZ2luIHNvdXJjZSAvIGVuZCBzb3VyY2UgbGluZXMuICBCdWcgMTQwNDQwMi4KCjIwMDYtMDEtMzEgMDQ6NTEgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcHRhYmxlLmMsCiAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXB0cmFwZF9sb2cuYywgc25tcHVzbS5jCjoKCiAgIEZpeCBhc3NvcnRlZCBzaWduZWRuZXNzIG1pc21hdGNoZXMuCgoyMDA2LTAxLTMxIDA0OjEwICBkdHMxMgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgc25tcENhbGxiYWNrRG9tYWluLmMsCiAgICAgc25tcFVEUERvbWFpbi5jLCBzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsCiAgICAgdG9vbHMuYzoKCiAgIEZpeCBhc3NvcnRlZCBzaWduZWRuZXNzIG1pc21hdGNoZXMuCgoyMDA2LTAxLTMwIDA0OjA3ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc2NhcGkuYywgc25tcHYzLmM6CgogICBGaXggYXNzb3J0ZWQgdW5zaWduZWQgY29tcGFyaXNvbnMgYWdhaW5zdCAwLiAgKFNlZSBCdWcgIzEzOTc4OTEpCgoyMDA2LTAxLTMwIDAzOjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBDb3JyZWN0IGltcHJvcGVyIHVzZSBvZiAnbmV0c25tcF9oZXhfdG9fYmluYXJ5JwogICAoTXkgbWlzdGFrZSwgbm90IFJhZGVrJ3MpCgoyMDA2LTAxLTMwIDAzOjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBIYW5kbGUgZnVsbC1sZW5ndGggSVB2NiBhZGRyZXNzZXMuICBGaXggc3VwcGxpZWQgYnkgUmFkZWsgVm9rw6FsCgoyMDA2LTAxLTMwIDAxOjUyICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgRG9uJ3Qgc2F2ZSBwZXJzaXN0ZW50IGNvbmZpZ3VyYXRpb24gdW50aWwgcnVubmluZyB1c2VyL2dyb3VwIGhhdmUgYmVlbgogICByZXNldC4gIEJhc2VkIG9uIHBhdGNoICMxMzcxMDc4LgoKMjAwNi0wMS0zMCAwMTo0NSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgVXBkYXRlIGhhbmRsaW5nIG9mIGVuZE9mTWliVmlldyBleGNlcHRpb25zLiAgUGF0Y2ggIzEwNDc3MDYKCjIwMDYtMDEtMzAgMDE6MzUgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFN1cHBvcnQgZm9yIHJlYWRpbmcvc3RvcmluZyBJUCBhZGRyZXNzIHZhbHVlcy4gIEV4cGFuZGVkIGZyb20gcGF0Y2ggIzEwNzcwMAoKMjAwNi0wMS0zMCAwMToyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgRG9uJ3QgcmVsZWFzZSB0aGUgcmVzcG9uc2UgUERVIHByZW1hdHVyZWx5LCBiZWZvcmUgdHJ5aW5nIHRvCiAgIGV4dHJhY3QgT0lEcyBmcm9tIGl0LiAgUGF0Y2ggIzEyNzc1MDguCgoyMDA2LTAxLTMwIDAxOjI2ICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgZml4IFBBVEggdHlwbwoKMjAwNi0wMS0yNyAxMTo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5oLAogICAgIGlmVGFibGVfaW50ZXJmYWNlLmM6CgogICBkbyB1bmRvIHJlZiBjb3VudCB2aWEgcm93cmVxX2N0eCwgbm90IGRhdGFfbGlzdAoKMjAwNi0wMS0yNyAwOToyNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHBlcmwvU05NUC9TTk1QLnhzCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIEhhbmRsZSBub24taW5jcmVhc2luZyBPSURzIGR1cmluZyBhIChwZXJsKSBidWxrd2Fsay4KICAgUGF0Y2ggIzEzNjQ2NTAgZnJvbSBPbGUgQmrDuHJuIEhlc3NlbgoKMjAwNi0wMS0yNyAwMzowNyAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgSGFuZGxlIG1pc3NpbmcgdmFsdWVzIG1vcmUgZ3JhY2VmdWxseS4KCjIwMDYtMDEtMjYgMDk6MDIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpLAogICAgIG1mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaSwKICAgICBtZmQtZGF0YS1hY2Nlc3MubTJjLCBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMKOgoKICAgQXBwbHkgUGF0Y2ggIzEzOTQwNjggdG8gTWZEIGdlbmVyYXRlZCB0ZW1wbGF0ZXMuCgoyMDA2LTAxLTI1IDA4OjI1ICBkdHMxMgoKICAgKiBkb3h5Z2VuLmNvbmYsIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgICAgYWdlbnQvb2JqZWN0X21vbml0b3IuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywKICAgICBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYwosIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLAogICAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMKLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsCiAgICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYwosIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsCiAgICAgYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYywgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYwosIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywKICAgICBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsCiAgICAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMuYywKICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zuc19sb2NhbC5jLAogICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCiwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5oCiwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMKLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaAosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5oCiwgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuYwosIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5oCiwgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYwosIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmMKLCBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuaAosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2JqZWN0X21vbml0b3IuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvY2FsbGJhY2suYwosIHNubXBsaWIvY29udGFpbmVyX251bGwuYywgc25tcGxpYi9kYXRhX2xpc3QuYwosIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL2ludDY0LmMsCiAgICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9vaWRfc3Rhc2guYywKICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3RleHRfdXRpbHMuYywKICAgICBzbm1wbGliL3Rvb2xzLmM6CgogICBDb21wcmVoZW5zaXZlIHJldmlldyBvZiBpbi1saW5lIGRvY3VtZW50YXRpb24uCiAgIEEgbW9zdCBpbXByZXNzaXZlIGVmZm9ydCBieSAgTmF6aW0gQmFpemlkICAoUGF0Y2ggIzEzOTQwNjgpCgoyMDA2LTAxLTI1IDA3OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgRG9uJ3QgYmUgaW4gc3VjaCBhIHJ1c2ggdG8gcmVsZWFzZSBNSUIgcmVnaXN0cmF0aW9uIHN0cnVjdHVyZS4KICAgU2VlIFBhdGNoICMxMzg2NTI4CgoyMDA2LTAxLTI1IDA3OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgQWRkaXRpb25hbCBkZWJ1Z2dpbmcgaW5mbwoKMjAwNi0wMS0yNCAwODoyMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVsZWFzZSBtZW1vcnkgYmVmb3JlIHJlLWFsbG9jYXRpbmcgaXQuICBTZWUgUGF0Y2ggIzE0MDcxNzMKCjIwMDYtMDEtMjQgMDg6MDIgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgSW1wcm92ZWQvZml4ZWQgcGVybCB3YXJuaW5ncy4gIFNlZSBQYXRjaCAjMTMzNDU5OAoKMjAwNi0wMS0yNCAwNjo0MCAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDaGVjayAiVGltZVN0YW1wIiByZWZlcmVuY2UgYmVmb3JlIHVzZSAoaW4gbGluZSB3aXRoCiAgIHRoZSBvdGhlciBvY2N1cmFuY2VzIGluIHRoaXMgZmlsZSkuICBTZWUgQnVnICMxMzc1MjgyCgoyMDA2LTAxLTI0IDA2OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgQ2hlY2sgZm9yIG1pc3NpbmcgbW9uaXRvcmVkIHZhbHVlcyAoc2VlIEJ1ZyAjMTQwNDYwNSkKCjIwMDYtMDEtMjQgMDU6NDcgIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnOgoKICAgRG9uJ3Qgb3ZlcnJpZGUgYW4gZXhwbGljaXQgREVGUFJJVlRZUEUgc2V0dGluZywKICAgZXZlbiBpZiB0aGUgbGlicmFyeSBkb2Vzbid0IHN1cHBvcnQgZW5jcnlwdGlvbi4KCjIwMDYtMDEtMjQgMDE6NTEgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICByZXBsYWNlICI9PSIgYnkgIj0iIHdoZW4gdXNpbmcgInRlc3QiIChyZXBvcnRlZCBieSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNi0wMS0yMyAwNzowNSAgZHRzMTIKCiAgICogYXBwcy86IHNubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIE5ldyBoYW5kbGVyIHRvIGZvcndhcmQgdHJhcHMgdmlhIHRoZSBBZ2VudFggbWFzdGVyIGFnZW50LgoKMjAwNi0wMS0yMCAxNToxNiAgdGFuZGVycwoKICAgKiBORVdTLCBhcHBzL3NubXB1c20uYywgbWFuL3NubXB1c20uMS5kZWY6CgogICBpbnRyb2R1Y2UgbmV3IHNubXB1c20gb3B0aW9uIC1DcCB0byBzZXQgdXNtVXNlclB1YmxpYyB2YWx1ZQoKMjAwNi0wMS0yMCAwOTowMSAgZHRzMTIKCiAgICogdGVzdGluZy86IFRFU1RDT05GLnNoLCB0ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdAosIHRlc3RzL1QxMTBhZ2VudHhnZXQsIHRlc3RzL1QxMTFhZ2VudHhzZXQsCiAgICAgdGVzdHMvVDExMmFnZW50eHNldGZhaWwsIHRlc3RzL1QxMTNhZ2VudHh0cmFwLAogICAgIHRlc3RzL1QxMjBwcm94eWdldCwgdGVzdHMvVDEyMXByb3h5c2V0LAogICAgIHRlc3RzL1QxMjJwcm94eXNldGZhaWw6CgogICBNb2R1bGFyIGFwcHJvYWNoIGZvciBwcm9iaW5nIHRvIGRldGVjdCBmcmVlIHBvcnRzLiAgU2VlIEJ1ZyAjMTMzNTc2NwoKMjAwNi0wMS0xOCAxNjowNiAgdGFuZGVycwoKICAgKiBORVdTLCBhcHBzL3NubXB1c20uYzoKCiAgIEF2b2lkIGV4cGVuc2l2ZSBnZW5lcmF0ZV9LdSgpIGlmIG5ld3Bhc3MgaXMgYSBsb2NhbGl6ZWQga2V5IChpbnN0ZWFkIG9mIGEgcGFzc3BocmFzZSkuIE1ha2VzIGEgaHVnZSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCB0aGVuLgoKMjAwNi0wMS0xOCAxMTozNCAgcnN0b3J5CgogICAqIGRpc3QvTWFrZWZpbGU6CgogICB1c2UgYmFzZSBhcmNoIChlZyBpMzg2LCBub3QgaTY4Nik7IHVzZSBSUE1fQkFTRSBmb3IgdG9wZGlyCgoyMDA2LTAxLTE4IDA4OjI3ICBkdHMxMgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBSZWdpc3RlciBSUE1zIGFzIGJlaW5nIGJ1aWx0IGJ5IHRoZSBOZXQtU05NUCBwcm9qZWN0LgoKMjAwNi0wMS0xOCAwODoyMSAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIGFkZCBiZWVjcnlwdC1kZXZlbCwgZWxmdXRpbHMtbGliZWxmLWRldmVsIHRvIEJ1aWxkUmVxdWlyZXMKCjIwMDYtMDEtMTggMDc6MzUgIHJzdG9yeQoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgcmVzdG9yZSBmaWxlIChsb29rcyBsaWtlIFZlcnNpb25NdW5nZSBudWtlZCBpdD8pOyBidW1wIHZlcnNpb24gdG8gNS40LmRldgoKMjAwNi0wMS0xOCAwNzoxOCAgdGFuZGVycwoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYzoKCiAgIGZpeCB0eXBvCgoyMDA2LTAxLTE3IDA3OjU1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmM6CgogICBSZW1vdmUgcmVmZXJlbmNlcyB0byBvYnNvbGV0ZSAoYW5kIG1pc3NpbmcpIHJvdXRpbmUuICBTZWUgQnVnICMxMDExMDUxCgoyMDA2LTAxLTE3IDA2OjI2ICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBSZWNvZ25pc2UgcmFuZ2UgcGFyc2luZyBlcnJvcnMgcHJvcGVybHkuCgoyMDA2LTAxLTE1IDExOjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLzoKICAgICBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIGJldHRlciBjb29wZXJhdGlvbiBmb3IgaW50ZXJmYWNlIHRhYmxlcyB1c2luZyBzaGFyZWQgY29udGFpbmVyCiAgICAgLSB1c2Ugb25lIGRpcnR5IHZhcmlhYmxlCiAgICAgLSB1c2UgbmV3IHJlZiBjb3VudGluZyB1bmRvIGFsbG9jL2ZyZWUgZnVuY3Rpb24gZnJvbSBpZlRhYmxlCgoyMDA2LTAxLTE1IDA2OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICByZW1vdmUgdW5kbyBpZmVudHJ5IGhhbmRsaW5nIChkb25lIGVsc2V3aGVyZSkKCjIwMDYtMDEtMTUgMDY6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSBtb3ZlIHVuZG8gaWZlbnRyeSBoYW5kbGluZyBoZXJlCiAgIC0gYWRkIHJlZmVyZW5jZSBjb3VudGluZyBmb3IgdW5kbwoKMjAwNi0wMS0xNSAwNjowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIG1vdmUgdW5kbyBpZmVudHJ5IGhhbmRsaW5nIGludG8gaW50ZXJmYWNlCgoyMDA2LTAxLTEzIDE3OjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBhbGxvdyB3cml0ZSBzdXBwb3J0IGZvciBuZXcgdXNlciB0byB0ZXN0IHBhc3dvcmQgY2hhbmdlcwoKMjAwNi0wMS0xMyAxNToyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgZml4IGJpdHdpc2UgdGVzdCB0byB1c2UgYml0d2lzZSBtYWNyb3MKCjIwMDYtMDEtMTMgMDg6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICBkb24ndCBkb3VibGUgYWxsb2NhdGUgdW5kbyBpZmVudHJ5CgoyMDA2LTAxLTEzIDA4OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICAtIG1vdmUgYWxsIHJlZnMgdG8gdW5kbyBwcm9taXNjIG1vZGUgaW5zaWRlIHByb21pc2Mgc2V0IGVuYWJsZSBpZmRlZnMKICAgLSBpZiBwcm9taXNjIG1vZGUgc2V0IGVuYWJsZWQsIG1ha2Ugc3VyZSB0byBhbGxvY2F0ZSB1bmRvIGlmZW50cnkKCjIwMDYtMDEtMTMgMDc6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtIGNvcnJlY3QgcHJvYyBwYXRoIGZvciBiYXNlIHJlYWNoYWJsZSB0aW1lCiAgIC0gdXNlIGNvcnJlY3QgZmxhZyBmb3IgYmFzZSByZWFjaGFibGUgYXZhaWxhYmlsaXR5CiAgIC0gYWN0dWFsbHkgcHV0IGJhc2UgcmVhY2hhYmxlIHRpbWUgaW4gaWZlbnRyeSBhZnRlciByZWFkaW5nIGl0CgoyMDA2LTAxLTExIDE1OjI2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaAo6CgogICBJUklYIGF0VGFibGUgZml4OiB1c2Ugc3lzY3RsKCkgaW5zdGVhZCBvZiBubGlzdCgpIHRvIHN1cHBvcnQKICAgSVJJWCAqYW5kKiBJUklYNjQga2VybmVscyBhdCBvbmNlIGFuZCBub3QgcmVxdWlyZSAvZGV2L2ttZW0gYWNjZXNzCiAgIChwcm9wb3NlZCBieSBIZXJ2ZSBCb3Vsb3VpcykKCjIwMDYtMDEtMTEgMTQ6MDkgIHRhbmRlcnMKCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIHMvdGhlIGFnZW50L3NubXB0cmFwZC8KCjIwMDYtMDEtMTEgMTQ6MDUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGF1dG9jb25mCgoyMDA2LTAxLTExIDEzOjM3ICB0YW5kZXJzCgogICAqIEZBUToKCiAgIGZpeCBhY2NpZGVudGFsIG1hbmdsaW5nCgoyMDA2LTAxLTExIDEyOjQwICB0YW5kZXJzCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gYnVpbGQgZml4OiAjaW5jbHVkZSA8bGltaXRzLmg+IHRvIGNvdmVyIHJlY2VudGx5IGludHJvZHVjZWQgTE9OR19NQVgKICAgLSB3cmFwICIjaWYgSEFWRV9TWVNfU1RBVF9IIiBhcm91bmQgIiNpbmNsdWRlIDxzeXMvc3RhdC5oPiIKICAgLSByZW1vdmUgb2xkIGNoYW5nZWxvZyBmcm9tIHRoZSB0b3Agb2YgdGhlIGZpbGUKCjIwMDYtMDEtMTEgMDg6MzggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgU0VUIHN1cHBvcnQgZm9yIG1hbmlwdWxhdGluZyB0aGUgcm91dGluZyB0YWJsZSBpc24ndCByZWFsbHkgaW1wbGVtZW50ZWQKICAgcHJvcGVybHkgKGV4Y2VwdCBvbiBDeWd3aW4pLCBzbyB3ZSBzaG91bGRuJ3QgcHJldGVuZCBpdCBpcy4KCjIwMDYtMDEtMTEgMDg6MzIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgUmVkdWNlIHJlbGlhbmNlIG9uIChub24tdGhyZWFkLXNhZmUpIGdldGhvc3RieW5hbWUuICBTZWUgQnVnICM4Mzk2NzUKCjIwMDYtMDEtMTEgMDg6MDAgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIERvd25ncmFkZSB1cHBlci1ib3VuZCBwYXJzaW5nIHByb2JsZW1zIHRvIGEgd2FybmluZyAtIGtlZXAgVHJvZ0wgaGFwcHk6LSkKICAgRG9uJ3QgdGhpbmsgdGhlIGNoZWNrIGlzIHF1aXRlIHJpZ2h0IHlldCB0aG91Z2g6LSgKCjIwMDYtMDEtMTEgMDc6MTcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEJyaW5nIGNvZGUgdGVtcGxhdGUgaW50byBsaW5lIHdpdGggZmluYWwgaGVscGVyIEFQSS4KCjIwMDYtMDEtMTEgMDc6MDkgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIENvcnJlY3QgYSBtaXNsZWFkaW5nIGNvbW1lbnQuCgoyMDA2LTAxLTExIDA3OjAyICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBBc3NvY2lhdGUgTUlCIG5vZGUgdHlwZXMgd2l0aCB0aGUgKmxhc3QqIGVudHJ5IHBhcnNlZCBmcm9tIHRoZQogICBkZWZpbml0aW9uIHZhbHVlLCBub3QgdGhlIGZpcnN0LiAgRml4ZXMgcHJvYmxlbSB3aXRoIE1JQiBkZWZpbml0aW9ucwogICB0aGF0IHVzZSBpbnRlcm1lZGlhdGUgc3ViaWRlbnRpZmllcnMgKHNlZSBidWcgIzc1OTQxMikKCjIwMDYtMDEtMTEgMDY6NTQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgQ2xhcmlmeSB0aGUgYmVoYXZpb3VyIG9mIG5ldHNubXBfdGFibGVfZGF0YXNldF9yZW1vdmVfcm93KCkKCjIwMDYtMDEtMTAgMTM6NDUgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgZml4IGZvcm1hdCBzdHJpbmcgYnVnIChyZXBvcnRlZCBieSBkYXJpeCBvbiBJUkMpCgoyMDA2LTAxLTEwIDA4OjM1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBEb24ndCByZXRyeSAib3V0IG9mIHJhbmdlIiByZXNwb25zZXMgdW5sZXNzIHRoZXJlJ3MgYWN0dWFsbHkgYSB2YWx1ZQogICB0byBiZSBvdXQgb2YgcmFuZ2UuICBUaGlzIHByb3ZlZCB0byBiZSB0aGUgdW5kZXJseWluZyBjYXVzZSBvZiBHZXRCdWxrCiAgIHJlcXVlc3RzIGZhaWxpbmcgdG8gaGFuZGxlIGluc3RhbmNlLWJhc2VkIHJlZ2lzdHJhdGlvbnMsIHN1Y2ggYXMKICAgIm92ZXJyaWRlIiBkaXJlY3RpdmVzIChTZWUgQnVnICM3MTE0NjUpCgogICBJJ20gbm90IGF0IGFsbCBzdXJlIHRoYXQgdGhpcyBpcyBuZWNlc3NhcmlseSB0aGUgY29ycmVjdCBmaXgsIGJ1dAogICBpdCB3YXNuJ3QgdmVyeSBjbGVhciBhcyB0byBleGFjdGx5IHdoYXQgaXMgYmVpbmcgaGFuZGxlZCBoZXJlLgogICBUaGlzIGNoYW5nZSBjZXJ0YWlubHkgYWRkcmVzc2VzIHRoZSBhYm92ZSBidWcgcmVwb3J0LCB3aXRob3V0CiAgIHNlZW1pbmcgdG8gYnJlYWsgYW55dGhpbmcgZWxzZS4KCiAgIExldCdzIGdpdmUgdGhpcyBwYXRjaCB0aW1lIHRvIHNldHRsZSBpbnRvIHRoZSBtYWluIGRldmVsb3BtZW50IGNvZGUsCiAgIGFuZCB0aGVuIGNvbnNpZGVyIGJhY2stcG9ydGluZyBpdCB0byBlYXJsaWVyIGxpbmVzLi4uLi4KCjIwMDYtMDEtMTAgMDM6MDcgIHRhbmRlcnMKCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBDODkgY29tcGlsZXIgYnVpbGQgZml4IChidWcgMTM5ODU0NSkgcGFydCAyOiAiQSBkZWNsYXJhdGlvbiBjYW5ub3QgYXBwZWFyIGFmdGVyIGFuIGV4ZWN1dGFibGUgc3RhdGVtZW50IGluIGEgYmxvY2suIgoKMjAwNi0wMS0wOSAxNzo0MSAgdGFuZGVycwoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIEM4OSBjb21waWxlciBidWlsZCBmaXggKGJ1ZyAxMzk4NTQ1KQoKMjAwNi0wMS0wOSAxNzoxMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9taWJJSV9jb21tb24uaDoKCiAgIElSSVggNi41IGJ1aWxkIGZpeDogZG9uJ3QgaW5jbHVkZSBzeXMvc29ja2V0dmFyLmggYmVjYXVzZSBpdCdzIG5vdCBuZWVkZWQgYW5kIF9LTUVNVVNFUiBicmVha3MgdGhlIGJ1aWxkCgoyMDA2LTAxLTA5IDE3OjA1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBJUklYIDYuNSAicHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiB3YXJuaW5nIGZvciBzeXMvdm5vZGUuaCBhbmQgc3lzL2hhc2hpbmcuaAoKMjAwNi0wMS0wOSAxMzo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvdWNkLXNubXAvLmN2c2lnbm9yZToKCiAgIGRvbid0IGlnbm9yZSB1Y2Qtc25tcC1jb25maWcuaCwgc2luY2UgaXQncyBubyBsb25nZXIgYSBnZW5lcmF0ZWQgZmlsZQoKMjAwNi0wMS0wOSAxMzozOCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHJldmVydCB0byAtLWRpc2FibGUtdWNkLXNubXAtY29tcGF0aWJpbGl0eSBiZWluZyB0aGUgZGVmYXVsdCBhZ2FpbgoKMjAwNi0wMS0wOSAxMTowNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBpbmNsdWRlIGFsbCBlcnIgbG9ncyBpbiByZXN1bHRzCgoyMDA2LTAxLTA5IDA5OjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgcmVzdG9yZSBsb3N0IGlmTGFzdENoYW5nZSB0cmFja2luZwoKMjAwNi0wMS0wOSAwNzowNiAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMKLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMwosIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywKICAgICBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbWFuL25ldHNubXBfY2FsbGJhY2suMywgbWFuL25ldHNubXBfY29udGFpbmVyLjMKLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgbWFuL25ldHNubXBfZGVidWcuMwosIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbWFuL25ldHNubXBfaGFuZGxlci4zCiwgbWFuL25ldHNubXBfaW5zdGFuY2UuMywKICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLAogICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgc25tcGxpYi9jb250YWluZXJfbnVsbC5jLAogICAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMKLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLAogICAgIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMKLCBhZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYywKICAgICBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jCiwgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywKICAgICBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCBhZ2VudC9oZWxwZXJzL3NjYWxhci5jLAogICAgIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMKLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsCiAgICAgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZ2VuZXJpYy5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jCiwgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCiAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMKLCBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLAogICAgIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywKICAgICBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMKLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMwosIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMKLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMKLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMKLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMKLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMwosIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zCiwgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgQWRqdXN0IGRveHlnZW4gImRlZmdyb3VwIiBjb21tZW50cyB0byBpbXByb3ZlIGF1dG8tZ2VuZXJhdGVkIG1hbiBwYWdlIGZvcm1hdC4KICAgU2VlIGJ1ZyAjODM1MzIxCgoyMDA2LTAxLTA5IDA1OjAxICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBSZXBvcnQgZmFpbHVyZSB0byBwYXJzZSByYW5nZXMgY29ycmVjdGx5IChCdWcgIzQxMTU5NC83NTcxMjEpCgoyMDA2LTAxLTA2IDE1OjE1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBmaXggdWRwVGFibGUgb24gU29sYXJpcy94ODY6IGhvc3QgYnl0ZSBvcmRlciBmb3IgdWRwTG9jYWxQb3J0IChidWcgMTM5MzE5NykKCjIwMDYtMDEtMDYgMTM6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZS5jLCBpbmV0Q2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgKOgoKICAgLSBhZGQgaW5zdGFuY2UgaGFuZGxlciBmb3IgaW5ldENpZHJSb3V0ZU51bWJlcgoKMjAwNi0wMS0wNiAwOTo0MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIC0gc3VidHJhY3QgbXVsdGljYXN0IHBhY2tldHMgZnJvbSB0b3RhbCBwYWNrZXRzIGZvciB1bmljYXN0IHBhY2tldHMKICAgICAodGhlcmUgaXMgbm8gYnJvYWRjYXN0IHBhY2tldCBjb3VudGVyIHRvIHN1YnRyYWN0KQoKMjAwNi0wMS0wNSAxNjoyMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIGZpeCBtdWx0aXBsZSA8bmV0aW5ldC90Y3BfdmFyLmg+IGluY2x1c2lvbiAoYnVnIDEzOTY2MzksIElSSVggYnVpbGQgZml4KQoKMjAwNi0wMS0wNSAxNTo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIC0gZG9uJ3Qgc2F2ZS9yZXN0b3JlIHByb21pc2N1b3VzIG1vZGUKCjIwMDYtMDEtMDUgMTU6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIC0gdXBkYXRlIHRvIHJlcG9ydCBwcm9wZXIgdmFsdWUgZnJvbSBwcm9taXNjdW91cyBtb2RlCgoyMDA2LTAxLTA1IDE1OjQ4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oOgoKICAgLSBjbGVhciBwcm9taXNjdW91cyBtb2RlIGZyb20gc2V0dGFibGUgZmxhZ3MKCjIwMDYtMDEtMDUgMTU6NDEgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBidW1wIGxpYnJhcnkgdmVyc2lvbiBudW1iZXIgaW4gcHJvdmlkZXMKCjIwMDYtMDEtMDUgMTU6MzcgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNyAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzcgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNyAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM3ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM3ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM2ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNiAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNiAgcnN0b3J5CgogICAqIGRpc3QvTWFrZWZpbGU6CgogICAtIChkaXN0L01ha2VmaWxlKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzYgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNiAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM2ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzUgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MjggIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBidW1wIExJQkNVUlJFTlQgdmVyc2lvbgoKMjAwNi0wMS0wNSAxNToyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIC0gZGVsZXRlIHVudXNlZCBkdW1teSB2YXIgKHN0cnVjdCBzaXplIGNoYW5nZSBvayBpbiB1bnJlbGVhc2VkIGJyYW5jaGVzKQoKMjAwNi0wMS0wNSAxNToyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIC0gcG9pbnQgcHJvbWlzY3VvdXMgbW9kZSByZWZzIHRvIGludGVyZmFjZSBlbnRyeSB2YWx1ZQogICAtIHJlbmFtZSBvbGQgdmFyIChkb24ndCBkZWxldGUsIHNvIHN0cnVjdCBzaXplIGRvZXNuJ3QgY2hhbmdlKQoKMjAwNi0wMS0wNSAxNToxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIHNldCBwcm9taXNjdW91cyBmbGFnIGZvciBpbnRlcmZhY2VzCgoyMDA2LTAxLTA1IDE1OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1wZXJzaXN0ZW5jZS5tMmk6CgogICBhZGQgbWlzc2luZyBcbiB0byBsb2cgbXNncwoKMjAwNi0wMS0wNSAwODozMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgRGlzcGxheSBjb3JyZWN0IE1JQiBncm91cCBuYW1lcyBpbiBjb21tZW50cy4gIChCdWcgIzEwNzY2NTUpCgoyMDA2LTAxLTA0IDE1OjA2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZUV2ZW50Q29uZi5jLAogICAgIG10ZU9iamVjdHNDb25mLmMsIG10ZVRyaWdnZXIuYywgbXRlVHJpZ2dlckNvbmYuYwo6CgogICBnZXQgcmlkIG9mIEMrKyBjb21tZW50cwoKMjAwNi0wMS0wMiAxNjowNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGZpeCBtaW5vciB0eXBvcwoKMjAwNi0wMS0wMiAxNTo0MCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0tZGlzYWJsZS11Y2Qtc25tcC1jb21wYXRpYmlsaXR5IGFuZCAtLWVuYWJsZS11Y2Qtc25tcC1jb21wYXRpYmlsaXR5PW5vIG5vdyBhY3R1YWxseSAqZGlzYWJsZSogVUNELVNOTVAgY29tcGF0aWJpbGl0eSBpbnN0ZWFkIG9mIGVuYWJsaW5nIGl0CgoyMDA1LTEyLTMwIDIwOjM2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICAtIHNldCB1cCBsZW4gZm9yIHBhcnNlIGluZGV4IGhhY2sgZm9yIGZpeGVkIGxlbmd0aCBzdHIvb2lkIGluZGV4ZXMKCjIwMDUtMTItMzAgMjA6MzUgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBwYXJzZSBpbmRleCBoYWNrIGZvciBtdWx0aXBsZSBmaXhlZCBsZW5ndGggc3RyL29pZCBpbmRleGVzCgoyMDA1LTEyLTMwIDE4OjA1ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGFkZCBzdGVwIGZvciBjcmVhdGluZyBwYXRjaGVzIGJyYW5jaCBmb3IgbmV3IHJlbGVhc2VzCgoyMDA1LTEyLTMwIDExOjQyICBhbGV4X2IKCiAgICogTWFrZWZpbGUuaW46CgogICBSZW1vdmUgZG9jc211bmdlIGFzIGl0IGlzIG5vIGxvbmdlciBuZWVkZWQgYnkgdGhlIHdlYiBzaXRlLgoKMjAwNS0xMi0yOSAyMTozOCAgYWxleF9iCgogICAqIGxvY2FsL2h0bWwtdGV4dGZpbGUtZml4LnBsOgoKICAgQWRkcyBzb21lIEhUTUwgZW50aXRpZXMgdG8gdGhlIHRleHQgZmlsZXMgdG8gcHJldmVudCBtaXNzaW5nIGNoYXJhY3RlcnMKICAgd2hlbiBpbmNsdWRpbmcgaW4gSFRNTC4KCjIwMDUtMTItMjggMTE6MTAgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjIgLT4gVjUuMwoKMjAwNS0xMi0yOCAxMjo0OSAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDkgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDkgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ5ICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OCAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ4ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDggIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDggIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OCAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDggIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ3ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0NyAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDEgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMKLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zCiwgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMwosIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfdGFibGUuMywKICAgICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbmV0c25tcF91dGlsLjMsCiAgICAgbmV0c25tcF91dGlsaXRpZXMuMywgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsCiAgICAgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNS0xMi0yOCAxMjoyMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTItMjcgMTc6MDYgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBMYXN0LW1pbnV0ZSB1cGRhdGUgZm9yIDUuMzoKICAgLSB1Y2Qtc25tcC9sbVNlbnNvcnMgaW1wbGVtZW50cyBMTS1TRU5TT1JTLU1JQiwgbm90IFVDRC1TTk1QLU1JQiEKICAgLSBkaXNtYW4vc2NoZWR1bGUgbm93IHNoaXBzIHdpdGggNS4zCgoyMDA1LTEyLTI3IDE2OjQ1ICB0YW5kZXJzCgogICAqIEZBUToKCiAgIExhc3QtbWludXRlIHVwZGF0ZXMgZm9yIDUuMzoKICAgLSByZW1vdmUgdHdvIG1pcnJvciBzZXJ2ZXJzIHRoYXQgZG9uJ3QgZXhpc3QgYW55bW9yZQogICAtIHR3ZWFrIGxpc3Qgb2Ygc3VwcG9ydGVkIHBsYXRmb3JtcyB0byBsaXN0IHRoZSBiZXR0ZXIgc3VwcG9ydGVkIG9uZXMgZmlyc3QKICAgLSBmaXggc25tcHRyYXBkIGV4YW1wbGVzIHRvIG5vdCB1c2UgZGVwcmVjYXRlZCBvcHRpb25zCiAgIC0gbWVudGlvbiB0aGUgNS4zIHNubXB0cmFwZCBhdXRob3JpemF0aW9uIGNoYW5nZQogICAtIG1lbnRpb24gdGhhdCBkaXNtYW4vZXZlbnQgYW5kIGhvc3QgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCBpbiA1LjMKICAgLSBtZW50aW9uIGRpc21hbi9zY2hlZHVsZSBNSUIKCjIwMDUtMTItMjEgMDY6MDggIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgTWlub3IgdHdlYWtzLgoKMjAwNS0xMi0yMSAwNDozMSAgZHRzMTIKCiAgICogTkVXUzoKCiAgIENvcnJlY3QgdGhlIGRlc2NyaXB0aW9uIG9mICdzbm1wbmV0c3RhdCcgY2hhbmdlcy4KICAgVGhlIHN0YXR1cyBvZiB0aGUgNS4zIGxpbmUgaXMgKm5vdCogdGhlIHNhbWUgYXMgdGhlIDUuMiB2ZXJzaW9uLgoKMjAwNS0xMi0yMSAwMDowNyAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA2ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNiAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA2ICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDYgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA1ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA1ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDUgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNSAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA0ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA0ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTItMjAgMjM6NTggIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMKLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zCiwgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMwosIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfdGFibGUuMywKICAgICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbmV0c25tcF91dGlsLjMsCiAgICAgbmV0c25tcF91dGlsaXRpZXMuMywgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsCiAgICAgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNS0xMi0yMCAyMzo0MCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDUtMTItMjAgMjM6MTUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTEyLTIwIDEwOjMzICB0YW5kZXJzCgogICAqIGxvY2FsL21pYjJjLmludF93YXRjaC5jb25mOgoKICAgZml4IGJ1ZyAxMzg2MDg4OiB1c2UgTE9HX0VSUiBpbnN0ZWFkIG9mIExPR19FUlJPUgoKMjAwNS0xMi0xOSAyMDo0NiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIHRyYXBzIC0+IG5vdGlmaWNhdGlvbnMKCjIwMDUtMTItMTkgMjA6MzcgIHRhbmRlcnMKCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIGZpeCB0eXBvCgoyMDA1LTEyLTE5IDIwOjMzICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgc25tcF9wZXJsLnBsICppcyogaW5zdGFsbGVkIGF1dG9tYXRpY2FsbHkgKGF0IGxlYXN0IGZvciBtZSkuCgoyMDA1LTEyLTE5IDIwOjE2ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBnZXQgcmlkIG9mICJkZWZhdWx0IGRlZmF1bHQiCgoyMDA1LTEyLTE5IDE4OjU5ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBiZXR0ZXIgaGVscCBvdXRwdXQgZm9yIGRlcHJlY2F0ZWQgIi1QIgoKMjAwNS0xMi0xOSAwNTozNSAgZHRzMTIKCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmLCBzbm1wY21kLjEuZGVmLCBzbm1wZC44LmRlZgosIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0cmFwZC44LmRlZiwKICAgICBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIEdlbmVyYWwgcmV2aXNpb24gb2YgY29tbWFuZCBhbmQgY29uZmlndXJhdGlvbiBmaWxlIGRvY3VtZW50YXRpb24uCgoyMDA1LTEyLTE4IDE2OjM2ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGV4ZWN1dGUgYWxzbyBjb3ZlcnMgZW1iZWRkZWQgcGVybAoKMjAwNS0xMi0xOCAxNjozMCAgdGFuZGVycwoKICAgKiBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBkb05vdFJldGFpblRyYXBMb2dzIC0+IGRvTm90UmV0YWluTm90aWZpY2F0aW9uTG9ncwoKMjAwNS0xMi0xNCAxMTo0MCAgZHRzMTIKCiAgICogbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgUmV3b3JraW5nIG9mIHRoZSB0cmFwZCBjb25maWd1cmF0aW9uIGRvY3VtZW50YXRpb24uCgoyMDA1LTEyLTE0IDA1OjM5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICBXaXRoZHJhdyBhbHRlcm5hdGl2ZSAiYWNjZXB0QWxsVHJhcHMiIGRpcmVjdGl2ZS4KICAgKEtlZXAgaXQgc2FmZSBmb3IgYW5vdGhlciBkYXkpLgoKMjAwNS0xMi0xMyAwNzo1MCAgdGFuZGVycwoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgb3VyIGJpbmFyeSByZWxlYXNlcyAqZG8qIHN1cHBvcnQgZW5jcnlwdGlvbgoKMjAwNS0xMi0xMyAwNzoyOSAgdGFuZGVycwoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgYWRkIEFFUwoKMjAwNS0xMi0xMSAxNToxNSAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjE1ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxNSAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjE0ICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTQgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTQgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTQgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjE0ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjEzICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTMgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxMyAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjEyICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjEyICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTItMTEgMTU6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L01ha2VmaWxlLmRlcGVuZAosIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMi0xMSAxNTowMCAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3V0aWwuMywKICAgICBuZXRzbm1wX3V0aWxpdGllcy4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTEyLTExIDE0OjEzICBuYmEKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jCiwgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmgsIGFwcHMvc25tcHRyYXBkX2F1dGguYwosIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgQWRkIGNvbnN0IGFuZCAjaW5jbHVkZSB0byBmaXggd2FybmluZ3MKCjIwMDUtMTItMTEgMTM6NTQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTEyLTExIDEzOjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGRvbid0IHVzZSBDVlNVU0VSIGlmIGFscmVhZHkgaW4gYSBjdnMgZGlyCgoyMDA1LTEyLTExIDEzOjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYzoKCiAgIGFkdmFuY2UgbmV4dCBwb2ludGVyIGJlZm9yZSBjb250aW51ZQoKMjAwNS0xMi0xMSAxMjo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywKICAgICBpcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLAogICAgIHRjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYywKICAgICB1ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9jb21tb24uYzoKCiAgIGRvbid0IGZyZWUgdGhlIGNvbnRhaW5lciBpZiBhc2tlZCBub3QgdG8KCjIwMDUtMTItMTEgMTI6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAtIGZpeCAxMzYyMzI0OiB0ZXN0aGFuZGxlciBtb2R1bGUgY2F1c2VzIGluZmluaXRlIGxvb3AKICAgICAtICBkb24ndCByZXRyeSBmb3IgQVNOX05VTEw7IHRoaXMgcmV0cmllcyB3aGVuIHRoZSBoYW5kbGVyIGRvZXMgbm90aGluZywKICAgICAgICB3aGljaCBpcyB3aGF0IHdlIHRlbGwgcGVvcGxlIHRvIGRvIGF0IHRoZSBlbmQgb2YgYSB0YWJsZS4KICAgLSBhZGQgY29tbWVudHMKCjIwMDUtMTItMTEgMTA6MzcgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBjaGFuZ2UgbmVzdGVkIGNvbW1lbnQgdG8gaWZkZWYgMAoKMjAwNS0xMi0xMCAyMDowNyAgdGFuZGVycwoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgZml4IHR5cG8KCjIwMDUtMTItMTAgMjA6MDIgIHRhbmRlcnMKCiAgICogZGlzdC9uZXQtc25tcC1zb2xhcmlzLWJ1aWxkL0RFVkVOVjoKCiAgIGNsZWFudXAKCjIwMDUtMTItMTAgMTk6NTAgIHRhbmRlcnMKCiAgICogZGlzdC9uZXQtc25tcC1zb2xhcmlzLWJ1aWxkL25ldC1zbm1wLTUuMC42LWJ1aWxkOgoKICAgcmVwbGFjZWQgYnkgdXBkYXRlZCBidWlsZHBhY2thZ2Utc29sYXJpcwoKMjAwNS0xMi0xMCAxOTo0MSAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLXNvbGFyaXMtYnVpbGQvOiBSRUFETUUsIGJ1aWxkcGFja2FnZS1zb2xhcmlzCjoKCiAgIHNjcmlwdCB0byBjcmVhdGUgbmF0aXZlIFNvbGFyaXMgcGFja2FnZXMsIHJlcGxhY2VzIG5ldC1zbm1wLTUuMC42LWJ1aWxkCgoyMDA1LTEyLTEwIDE4OjUwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZnVydGhlciBpbXByb3ZlIG1pYiBtb2R1bGUgZGVzY3JpcHRpb25zCgoyMDA1LTEyLTEwIDE4OjI5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCAtLXdpdGgtZW50ZXJwcmlzZS1ub3RpZmljYXRpb24tb2lkIGRlc2NyaXB0aW9uCgoyMDA1LTEyLTEwIDE4OjE3ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgaW1wcm92ZSB0ZXh0IGFsaWdubWVudCBpbiAiY29uZmlndXJlIC0taGVscCIgb3V0cHV0CgoyMDA1LTEyLTEwIDEyOjMwICBhbGV4X2IKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBXaW4zMjogTVNWQyBidWlsZCBmaXhlcwoKMjAwNS0xMi0xMCAxMjoyOCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHB1dCBwcml2L2F1dGggcmVsYXRlZCBvcHRpb25zIGNsb3NlciB0byBlYWNoIG90aGVyCgoyMDA1LTEyLTEwIDExOjM3ICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgQysrIGNvbW1lbnRzIG9yIGNvbnZlcnQgdG8gQyBjb21tZW50cwoKMjAwNS0xMi0xMCAxMTozNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLAogICAgIHRjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLAogICAgIHVkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmM6CgogICBjaGFuZ2UgY3BwIHdhcm5pbmdzIHRvIGNvbW1lbnRzCgoyMDA1LTEyLTEwIDExOjI1ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTItMTAgMTE6MjMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBuZXcgJ29zIHNwZWNpZmljJyBzZWN0aW9uIGluIG1pYiBtb2R1bGUgaGVscAoKMjAwNS0xMi0wOSAyMToyMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZUV2ZW50Q29uZi5oLAogICAgIG10ZVRyaWdnZXJDb25mLmgsIG10ZVRyaWdnZXJUYWJsZS5oOgoKICAgY29uZmlnX3JlcXVpcmUgaXF1ZXJ5CgoyMDA1LTEyLTA5IDIxOjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmUKLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBtaXNjIGdlbmVyYXRlZCBmaWxlcwoKMjAwNS0xMi0wOSAyMDo1OCAgcnN0b3J5CgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgdXBkYXRlIHJlbmFtZWQgdmFyaWFibGUKCjIwMDUtMTItMDkgMjA6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5oCjoKCiAgIGZpeCBjb25maWdfcmVxdWlyZSBwYXRoCgoyMDA1LTEyLTA5IDIwOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS86CiAgICAgaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVtb3ZlIGV4cGVyaW1lbnRhbCBjb25maWdfbm9pbmNsdWRlIGRpcmVjdGl2ZXMKCjIwMDUtMTItMDkgMjA6NTcgIHJzdG9yeQoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBmaXggY3V0LW4tcGFzdGUKCjIwMDUtMTItMDkgMjA6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOgogICAgIGlwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmM6CgogICBhZGQgbWlzc2luZyByZWdpc3RyYXRpb24gb2YgbGFzdCBjaGFuZ2Ugb2JqZWN0CgoyMDA1LTEyLTA5IDIwOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLzogaXB2NEludGVyZmFjZVRhYmxlLmgsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlLmg6CgogICBhZGQgbWlzc2luZyBpbnRlcm1lZGlhdGUgY29uZmlnX3JlcSBoZWFkZXJzCgoyMDA1LTEyLTA5IDIwOjMyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgdXBkYXRlIGNvbXBhdCBtYXBwaW5nIHRvbwoKMjAwNS0xMi0wOSAxOTo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIHByb3BlciBuYW1pbmcgY29udmVudGlvbnMgc3RhbmRhcmRpemVkIGFuZCB3aWRlbHkgYWRvcHRlZCBieSB0aGUgSW50ZXJuZXQgRW5naW5lZXJpbmcgVGFzayBGb3JjZQoKMjAwNS0xMi0wOSAxNzo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICAtIGRlZmluZSBuZXcgYWdlbnQgZHMgaWQgZm9yIHJldGFpbmluZyB0cmFwcwoKMjAwNS0xMi0wOSAxMDo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgdHJhcCAtPiBub3RpZmljYXRpb24KCjIwMDUtMTItMDkgMTA6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICAtIHJlc3RvcmUgZG9udFJldGFpbkxvZ3MKICAgLSBuZXcsIGNsZWFyZXIgZG9Ob3RSZXRhaW5UcmFwTG9ncyB1c2Ugc2FtZSBkcyBpZAoKMjAwNS0xMi0wOSAwODo0NCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFVzZSB0aGUgY29tbW9uIGJvb2xlYW4gcGFyc2luZyByb3V0aW5lICh0byByZWNvZ25pc2UKICAgdGhlIGZ1bGwgbGlzdCBvZiBkb2N1bWVudGVkIHZhbHVlcywgbm90IHNpbXBseSAnMSchKQoKMjAwNS0xMi0wOSAwODo0MyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIFB1bGwgcGFyc2luZyBvZiBib29sZWFuIGNvbmZpZyB2YWx1ZXMgb3V0IGludG8gYSBzZXBhcmF0ZSByb3V0aW5lLgoKMjAwNS0xMi0wOSAwNzowMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgRXhwYW5kIHRoZSBzb3VyY2UgYnVmZmVyIHNvIGl0IGNhbiBob2xkIGEgbWF4aW11bS1sZW5ndGggSVB2NiBzcGVjaWZpY2F0aW9uLgogICBQYXRjaCBwcm92aWRlZCBieSBTaHVraSBTYXNzb24uCgoyMDA1LTEyLTA4IDA4OjEwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgYXBwcy9zbm1wdHJhcGRfYXV0aC5jCjoKCiAgIElzc3VlIHdhcm5pbmdzIHdoZW4gJ3NubXB0cmFwZCcgaXMgcnVuIHdpdGhvdXQgYW55IGFjY2VzcyBjb25maWd1cmF0aW9uLgogICBCb3RoIGF0IHN0YXJ0dXAsIGFuZCB3aGVuIGluY29taW5nIHRyYXBzIGFyZSByZWNlaXZlZCAoYW5kIGRyb3BwZWQpLgoKICAgQWxzbyBkZWZpbmUgYW4gYWx0ZXJuYXRpdmUgbmFtZSBmb3IgdGhlICdkaXNhYmxlQXV0aG9yaXphdGlvbicgZGlyZWN0aXZlLAogICB0aGF0IGlzIChJTU8pIG1vcmUgZGVzY3JpcHRpdmUgb2Ygd2hhdCBhIG5ldHdvcmsgYWRtaW5pc3RyYXRvciBtaWdodCB3YW50IHRvIGRvLgoKMjAwNS0xMi0wOCAwODowNyAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBQcm9wZXJseSByZWNvZ25pc2Ugd2hlbiBubyBhY2Nlc3Mgc2V0dGluZ3MgaGF2ZSBiZWVuIGNvbmZpZ3VyZWQuCiAgIChUaGUgbmV3IGJ1aWx0LWluIHZpZXdzIGJyb2tlIHRoZSBwcmV2aW91cyB0ZXN0KS4KCjIwMDUtMTItMDggMDY6MDggIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgSW5jbHVkZSAoYW5kIGNoZWNrIGZvcikgYW5vdGhlciBoZWFkZXIgZmlsZSAtIG5lZWRlZCBvbiBSZWRIYXQgOSBzeXN0ZW1zLgoKMjAwNS0xMi0wNyAxNzo1NSAgdGFuZGVycwoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGZpeCB0eXBvCgoyMDA1LTEyLTA3IDA3OjI5ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTItMDcgMDc6MjcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIGZpeCBtaW5pLWFnZW50IHRlc3RzIHNvIHRoYXQgLS1kaXNhYmxlIGRvZXNuJ3QgYWN0dWFsbHkgZW5hYmxlIGl0CgoyMDA1LTEyLTA2IDE3OjUwICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgUkZDIGlzc3VlcwoKMjAwNS0xMi0wNiAxMjo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmVGFibGVfZGF0YV9hY2Nlc3MuaDoKCiAgIHJlZHVjZSBjYWNoZSByZWxvYWQgdGltZW91dCBiZWxvdyB3cmFwIHRocmVzaG9sZCBmb3IgZ2lnYWJpdCBpbnRlcmZhY2VzCgoyMDA1LTEyLTA2IDA4OjUwICBkdHMxMgoKICAgKiBtYW4vc25tcGQuaW50ZXJuYWwuNS5kZWY6CgogICBCcmllZiAoYW5kIHNvbWV3aGF0IHJlcGV0YXRpdmUpIGRvY3VtZW50YXRpb24gb2YgaW50ZXJuYWwgZGlyZWN0aXZlcy4KCjIwMDUtMTItMDYgMDg6MTEgIGR0czEyCgogICAqIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZjoKCiAgIEZsZXNoIG91dCBFdmVudCBNSUIsIFNjaGVkdWxlIE1JQiBhbmQgcHJveHkgZXhhbXBsZXMKICAgKHBsdXMgdmFyaW91cyBtaW5vciB0d2Vha3MpLgoKMjAwNS0xMi0wNiAwNTo0OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlRXZlbnQuYywgbXRlT2JqZWN0cy5jCiwgbXRlVHJpZ2dlckNvbmYuYywgbXRlVHJpZ2dlckNvbmYuaDoKCiAgIEltcGxlbWVudCBtaXNzaW5nICJsaW5rVXBEb3duTm90aWZpY2F0aW9ucyIgZGlyZWN0aXZlCiAgICh0b2dldGhlciB3aXRoIHN1aXRhYmxlIHN0YW5kYXJkIGVudHJpZXMpCgoyMDA1LTEyLTA1IDExOjQ0ICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXM6CgogICBkb24ndCByZW1vdmUgZGlzdAoKMjAwNS0xMi0wNSAxMDo1NSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeCBtaXNzZWQgdmFyIHJlbmFtZSBpbiBjb25kaXRpb25hbAoKMjAwNS0xMi0wNSAwNzo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGNvbmZpZ19hZGRfbWliIGluIGhlYWRlcgoKMjAwNS0xMi0wNSAwNzo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgdHdlYWtzIHBlciBjb21tZW50cyBmcm9tIHdlczsgc2VlIGNvZGVycyBub3RlCgoyMDA1LTEyLTA1IDA3OjIyICBkdHMxMgoKICAgKiBtYW4vc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBGbGVzaCBvdXQgQWdlbnRYIGV4YW1wbGVzLgoKMjAwNS0xMi0wNSAwNzoyMSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmOgoKICAgRmxlc2ggb3V0IHRyYXAgaGFuZGxpbmcgYW5kIGVtYmVkZGVkIHBlcmwgZXhhbXBsZXMuCgoyMDA1LTEyLTA1IDA3OjIwICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wZC5jb25mLjUuZGVmLCBzbm1wZC5leGFtcGxlcy41LmRlZjoKCiAgIEFzc29ydGVkIHdvcmRzbWl0aGluZywgYW5kIHBpY2sgdXAgYSBjb3VwbGUgb2YgdW5kb2N1bWVudGVkIG9wdGlvbnMuCgoyMDA1LTEyLTA1IDA3OjE1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBJbXBsZW1lbnQgJ2dldF9leGVjX291dHB1dCcgYXMgYSB3cmFwcGVyIHJvdW5kICdydW5fZXhlY19jb21tYW5kJwogICB0byBnaXZlIHByb3BlciBoYW5kbGluZyBvZiBjb21tYW5kIHRva2VuaXphdGlvbi4gIChTZWUgQnVnICMxMzI0MDU3KQogICBOb3RlIHRoaXMgZG9lc24ndCBhcHBseSB0byBXaW5kb3dzIHN5c3RlbXMgLSB0aGF0IGV4ZWMgaGFuZGxpbmcKICAgcHJvYmFibHkgbmVlZHMgdG8gYmUgbW92ZWQgdG8gJ3J1bl9leGVjX2NvbW1hbmQnIGFzIHdlbGwuCgoyMDA1LTEyLTA0IDE4OjAzICByc3RvcnkKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgYWRkIC1SIGZvciBkaXN0IGRpcgoKMjAwNS0xMi0wNCAxNzo1NCAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1NCAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUzICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUzICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUzICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MyAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTMgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MyAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTIgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTIgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTIgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTIgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MSAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTEyLTA0IDE3OjQzICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMi0wNCAxNzoyNiAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3V0aWwuMywKICAgICBuZXRzbm1wX3V0aWxpdGllcy4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTEyLTA0IDE3OjIzICByc3RvcnkKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgcmVtb3ZlIGRpc3QgYW5kIHdpbjMyL2Rpc3QKCjIwMDUtMTItMDQgMTc6MTQgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgZG8gZGlzdGNsZWFuIGJlZm9yZSBjb25maWd1cmUgaWYgTWFrZWZpbGUgZXhpc3RzCgoyMDA1LTEyLTA0IDE2OjQ5ICByc3RvcnkKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIG5vdGUgdGhhdCBNYWtlZmlsZS50b3AgdXN1YWxseSBvbmx5IGNoYW5nZSBmb3IgZmlyc3QgcHJlcmVsZWFzZQoKMjAwNS0xMi0wNCAxNjo0OCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTItMDQgMTY6NDcgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgYWRkIC1xIHRvIHVwZGF0ZSBzbyBwb3RlbnRpYWwgY2hhbmdlcyBkb24ndCBzY3JvbGwgb2ZmIHNjcmVlbgoKMjAwNS0xMi0wNCAxNjoyOSAgcnN0b3J5CgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgZml4IHN5bnRheCBlcnJvcnMKCjIwMDUtMTItMDQgMTM6NDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgbG9nIHJjIHcvZXJyb3IgbXNnCgoyMDA1LTEyLTA0IDEzOjQzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGxvZyBjb250YWluZXIgbmFtZSwgaWYgYXZhaWwsIGluIGxvZyBtc2cKCjIwMDUtMTItMDQgMTM6MzggIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBhZGQgbG9nIGZpbGUgYXBwZW5kICgtQSkgb3B0aW9uCiAgIC0gcmVtb3ZlIExvZy9QcmludC9TeXNsb2cgZGlzdGluY3Rpb24KICAgLSBicmluZyBzdGFydHVwL3JlY29uZmlnIGxvZyBtZXNzYWdlIGluIGxpbmUgdy9zbm1wZAoKMjAwNS0xMi0wNCAxMzoyNCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSBmaXggYnVnIDEyOTc4Nzg6IGhlYWRlcl9nZW5lcmljIGFuZCBoZWFkZXJfc2ltcGxlX3RhYmxlIHByb3RvdHlwZXMKICAgICAtIGV4dHJhIGhlYWRlciBsaXN0L2luc3RhbGwgdGFyZ2V0CiAgIC0gZ3JvdXAgcGVybCBpbnN0YWxsL3VuaW5zdGFsbCB0b2dldGhlcgoKMjAwNS0xMi0wNCAxMzoxOSAgcnN0b3J5CgogICAqIE5FV1M6CgogICBpbXBvcnRhbnQgbm90ZXMgZm9yIDUuMwoKMjAwNS0xMi0wNCAwOTo0MiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTEyLTA0IDA5OjQwICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBmaXggYnVnICAxMzY1MTI4OiBzbm1wZCBxdWlldGx5IGRpZXMgb24gaHB1eCAxMS4xMQogICAgIC0gYWRkIGNvbmZpZ3VyZSBjaGVjayBmb3IgLWxubQoKMjAwNS0xMi0wNCAwOToyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgLSBhZGRpdGlvbmFsIGZpeCBmb3IgYnVnIDExMDM2NDQsIEZyZWVCU0QgbWVtb3J5IGxlYWsKICAgICAtIHByb2JsZW0gcG9pbnRlZCBvdXQgYnkgcm9qZXIgb24gaXJjCiAgICAgLSB1c2UgY2FsbG9jIGluc3RlYWQgb2YgbWFsbG9jL21lbXNldAoKMjAwNS0xMi0wMiAxOToxMyAgcnN0b3J5CgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgdXBkYXRlIHRvIDIwMDUxMDEwMDAwMFogdmVyc2lvbgoKMjAwNS0xMi0wMiAxODo0OCAgcnN0b3J5CgogICAqIG1pYnMvSVAtTUlCLnR4dDoKCiAgIC0gdXBkYXRlIGZyb20gZHJhZnQtaWV0Zi1pcHY2LXJmYzIwMTEtdXBkYXRlLTEwLnR4dCwgY3VycmVudGx5IGluIHRoZSBSRkMKICAgICBlZGl0b3IncyBxdWV1ZQoKMjAwNS0xMi0wMiAxNzo0NyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gYnVnIDEzMzc1MzQ6IFJlYWQgcHJvYmxlbSBvbiBzdHJlYW0gc29ja2V0cwogICAgIC0gcHJvcGVybHkgc2F2ZSBwYXJ0aWFsIHBhY2tldCB3aGljaCBpc24ndCBhdCBzdGFydCBvZiBidWZmZXIKCjIwMDUtMTItMDIgMTc6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIGJ1ZyAxMzcwODU2OiBpcCBhZGRyZXNzIGVuY29kaW5nIG9uIDY0Yml0CiAgICAgLSB1c2UgaW5ldF9hZGRyX3QgZm9yIGluZXQgYWRkcgoKMjAwNS0xMi0wMiAxNzowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gYnVnIDEzNzA4NTY6IGlwIGFkZHJlc3MgZW5jb2Rpbmcgb24gNjRiaXQKICAgICAtIHN5bmMgc25tcF9zZXRfdmFyX3ZhbHVlIHcvc25tcF9idWlsZF92YXJfb3A6IEFTTl9JUEFERFJFU1MgYXMgYSBzdHJpbmcKCjIwMDUtMTItMDIgMTM6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IHVkcC1taWIuaCwgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlLmgKLCB1ZHAtbWliL3VkcEVuZHBvaW50VGFibGUuaDoKCiAgIGFkZCBtaXNzaW5nIGNvbmZpZ19yZXEgZmlsZXMKCjIwMDUtMTItMDIgMTM6MTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1ub2RlLm0yaToKCiAgIG9ubHkgcHJpbnQgcmFuZ2VzIGlmIHRoZXkgZXhpc3QKCjIwMDUtMTItMDIgMTM6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliLmg6CgogICByZW1vdmUgZXh0cmEgOwoKMjAwNS0xMi0wMiAxMzowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS86IHVkcEVuZHBvaW50VGFibGUuYwosIHVkcEVuZHBvaW50VGFibGUuaCwgdWRwRW5kcG9pbnRUYWJsZV9jb25zdGFudHMuaAosIHVkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB1ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYywgdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuaAo6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAyIDEzOjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlLzogdGNwTGlzdGVuZXJUYWJsZS5jCiwgdGNwTGlzdGVuZXJUYWJsZS5oLCB0Y3BMaXN0ZW5lclRhYmxlX2NvbnN0YW50cy5oCiwgdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHRjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB0Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLCB0Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDIgMTE6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IGNvdW50ZXI2NCdzIHdoZW4gZGVmaW5lZCB3aXRoIDY0Yml0IGxvbmcgdmFyaWFibGVzIGluIHRoZSBDNjQgc3RydWN0dXJlCgoyMDA1LTEyLTAyIDEwOjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgVXNlICdjb3B5X253b3JkJyB0byB0b2tlbml6ZSBleHRlcm5hbCBjb21tYW5kcy4KICAgVGhpcyBtZWFucyB0aGF0IHF1b3RlZCBzdHJpbmdzIGFyZSBoYW5kbGVkIGluIHRoZSBuYXR1cmFsIG1hbm5lci4KCjIwMDUtMTItMDIgMTA6MzMgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIEl0IGhlbHBzIGlmIHlvdSBhY3R1YWxseSBjcmVhdGUgdGhlIG1hbiBwYWdlIGFzIHdlbGwsIERhdmUhCgoyMDA1LTEyLTAyIDA5OjU1ICB0YW5kZXJzCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgYWRkIHRoZSByZWNlbnRseSBpbnRyb2R1Y2VkIG1hbnVhbCBwYWdlcwoKMjAwNS0xMi0wMiAwOTo1MCAgZHRzMTIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXBkLmludGVybmFsLjUuZGVmOgoKICAgVGVtcGxhdGUgZm9yIGRvY3VtZW50aW5nIGludGVybmFsIHNubXBkIGNvbmZpZyBkaXJlY3RpdmVzLgogICAoSSd2ZSBpZGVudGlmaWVkIGFuZCBsaXN0ZWQgdGhlIGRpcmVjdGl2ZXMgY29uY2VybmVkLAogICAgYnV0IGhhdmVuJ3QgcHJvdmlkZWQgYW55IGRlc2NyaXB0aW9ucyBvZiB3aGF0IHRoZXkgZG8hKQoKMjAwNS0xMi0wMiAwNTozNiAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jLCBpbmV0LmMsIGluZXQ2LmMsCiAgICAgbWFpbi5jLCBtYWluLmgsIG5ldHN0YXQuaCwgcm91dGUuYzoKCiAgIEFsaWduIHdpdGggd2FybmluZyBmaXhlcyBmb3IgNS4yLjIKCjIwMDUtMTItMDIgMDU6MzMgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IHNubXB0cmFuc2xhdGUgLVRkIGRpc3BsYXkgb2YgVU5JVFMKCjIwMDUtMTItMDIgMDA6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgYWRkZWQgbWZkLXBlcnNpc3RlbmNlLm0yaQoKMjAwNS0xMi0wMSAxNjo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLzogdGNwQ29ubmVjdGlvblRhYmxlLmMKLCB0Y3BDb25uZWN0aW9uVGFibGUuaCwgdGNwQ29ubmVjdGlvblRhYmxlX2NvbnN0YW50cy5oCiwgdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDEgMTY6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS86CiAgICAgdXNtREhVc2VyS2V5VGFibGUuYywgdXNtREhVc2VyS2V5VGFibGUuaCwKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYywgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuaAosIHVzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuaCwgdXNtREhVc2VyS2V5VGFibGVfZW51bXMuaAosIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5oLCB1c21ESFVzZXJLZXlUYWJsZV9vaWRzLmgKOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMi0wMSAxNjowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvOgogICAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5RmlsdGVyVGFibGUuaCwKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGVfY29uc3RhbnRzLmgsCiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDEgMTU6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOiBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmMKLCBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmMsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5oLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAxIDE1OjEyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS86IGlwU3lzdGVtU3RhdHNUYWJsZS5jCiwgaXBTeXN0ZW1TdGF0c1RhYmxlLmgsIGlwU3lzdGVtU3RhdHNUYWJsZV9jb25zdGFudHMuaAosIGlwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAxIDEyOjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLzogaXBBZGRyZXNzVGFibGUuYywKICAgICBpcEFkZHJlc3NUYWJsZS5oLCBpcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oCiwgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAxIDExOjEzICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEFzc29ydGVkIG1pbm9yIHR3ZWFrcyBhbmQgd29yZHNtaXRoaW5nLgoKMjAwNS0xMi0wMSAxMDo1MCAgZHRzMTIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXBkLmNvbmYuNS5kZWYsCiAgICAgc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBNb3ZlIHNubXBkLmNvbmYgZXhhbXBsZXMgaW50byBhIHNlcGFyYXRlIG1hbiBwYWdlLAogICBhbmQgZXhhbXBsZSB0aGUgcmFuZ2Ugb2YgZXhhbXBsZXMgcHJvdmlkZWQuCiAgIChOb3QgZmluaXNoZWQgeWV0LCBidXQgaXQncyBwcm9iYWJseSB3b3J0aCBzdWJtaXR0aW5nCiAgIHRoaXMgd2hpbGUgd2UncmUgc3RpbGwgaW4gcHJlLXJlbGVhc2UgbW9kZSkKCjIwMDUtMTItMDEgMTA6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvOgogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlLmMsIGlwQWRkcmVzc1ByZWZpeFRhYmxlLmgsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMi0wMSAwODowOSAgZHRzMTIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBEcm9wIGJvZ3VzICItcCIgcG9ydCBvcHRpb24gKGFuZCBhcHBseSBjb25zaXN0ZW50IGluZGVudGF0aW9uKS4KICAgU2hvdWxkIHRoZSBvdGhlciBjaGFuZ2VzIHN1Z2dlc3RlZCBpbiBidWcgIzEyNDcxNjQgYmUgYXBwbGllZCwgdG9vPwoKMjAwNS0xMi0wMSAwNzo0NSAgZHRzMTIKCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICBEb24ndCBjcmFzaC1hbmQtYnVybiBvbiBTTk1QIGV4Y2VwdGlvbnMgKHNlZSBidWcgIzEyNzg4MDkpCgoyMDA1LTExLTMwIDE5OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvOiBpbmV0TmV0VG9NZWRpYVRhYmxlLmMKLCBpbmV0TmV0VG9NZWRpYVRhYmxlLmgsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdGFudHMuaCwKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGluZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTEtMzAgMTg6NDcgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcDoKCiAgIFJld3JpdHRlbiBmcm9tIHNjcmF0Y2ggdG8gdmVyaWZ5IG5vQXV0aE5vUHJpdiwgYXV0aE5vUHJpdiAqYW5kKiBhdXRoUHJpdiBTTk1QdjMgdHJhcHMuIExldCdzIG5ldmVyIGJyZWFrIHRoaXMgYWdhaW4uCgoyMDA1LTExLTMwIDE4OjQ0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlndHJhcGQ6CgogICBjcmVhdGUgbm9BdXRoTm9Qcml2IHVzZXIKCjIwMDUtMTEtMzAgMTg6NDMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdiYXNlOgoKICAgaW50cm9kdWNlICB0byBzcGVjaWZ5IHRoZSBlbmdpbmUgSUQgZm9yIGNyZWF0ZVVzZXIKCjIwMDUtMTEtMzAgMTc6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlLmMsIGlwQ2lkclJvdXRlVGFibGUuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAo6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTExLTMwIDE3OjI1ICByc3RvcnkKCiAgICogc25tcGxpYi9maWxlX3V0aWxzLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZzsgaW5pdCB2YXIKCjIwMDUtMTEtMzAgMTY6MDggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgZml4IGF1dG9tYXRpYyB1c2VyIGNyZWF0aW9uIGZvciBzZXNzaW9ucyB0aGF0IGhhdmUgcHJvYmluZyBvZmYgb3IgZGVsYXllZAoKMjAwNS0xMS0zMCAxNjowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMS0zMCAxNToxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGlmWFRhYmxlLmMsIGlmWFRhYmxlLmgKLCBpZlhUYWJsZV9jb25zdGFudHMuaCwgaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpZlhUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZlhUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTEtMzAgMTM6MTAgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC9SRUFETUU6CgogICBhZGRlZCBhIFJFQURNRSBmaWxlIHRoYXQgaGFzIGJlZW4gc2l0dGluZyBpbiBteSBkaXJlY3RvcnkgdW4tY2hlY2tlZC1pbgoKMjAwNS0xMS0yOSAxODozNiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW46CgogICByZWZlciB0byBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL1JFQURNRSByYXRoZXIgdGhhbiAidGhlIHVjZC1zbm1wIGZ0cCBzaXRlIiBmb3IgaXBmd2NoYWlucwoKMjAwNS0xMS0yOSAxNzoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLCBpZlRhYmxlLmgKLCBpZlRhYmxlX2NvbnN0YW50cy5oLCBpZlRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTExLTI5IDE0OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQo6CgogICB0eXBvIGluIGxvZyBtc2cKCjIwMDUtMTEtMjUgMDk6MTYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQxNjBzbm1wbmV0c3RhdCwgVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgdXNlIFNLSVAKCjIwMDUtMTEtMjUgMDU6MTIgIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTYwc25tcG5ldHN0YXQsIFQyMDBzbm1wdjJjd2Fsa2FsbDoKCiAgIFNraXAgdGVzdHMgdGhhdCBhcmUga25vd24gdG8gZmFpbCB3aGVuIG5vdCBydW4gYXMgcm9vdC4KICAgKE1heSBuZWVkIHRvIGJlIGV4dGVuZGVkIHRvIG90aGVyIE8vUydzIGFzIHdlbGwpLgoKMjAwNS0xMS0yNCAxODoyNCAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGZpeCB0eXBvIGFuZCBsYXlvdXQKCjIwMDUtMTEtMjQgMTg6MTQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMzBzbm1wdjN1c2VyY3JlYXRpb24sCiAgICAgVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQsIFQwNDlzbm1wdjNpbmZvcm1wcml2OgoKICAgZml4IHRlc3RzIHRvIHdvcmsgd2l0aCAtLWRpc2FibGUtcHJpdmFjeQoKMjAwNS0xMS0yMyAxOTo1NiAgdGFuZGVycwoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKCjIwMDUtMTEtMjMgMTk6MjIgIHRhbmRlcnMKCiAgICogTkVXUywgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgImNvbmZpZ3VyZSAtLWRpc2FibGUtYWdlbnQiIGZpbmFsbHkgd29yayAoZml4ZXMgYnVncyAxMDA2NDE1LCA5MDg1NzEpCgoyMDA1LTExLTIzIDA4OjE0ICBhbGV4X2IKCiAgICogd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgV2luMzI6IE1TVkMgYnVpbGQgZml4IGZvciBuZXRzbm1wbWlicy5kc3AKCjIwMDUtMTEtMjMgMDQ6MTEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBNb3ZlIG9wZW5pbmcgYnJhY2Ugb3V0IG9mIGFsdGVybmF0ZSAjaWZkZWYgY2xhdXNlcwogICAoY29uZnVzZXMgYnJhY2UtbWF0Y2hpbmcgZWRpdG9ycyEpCgoyMDA1LTExLTIyIDE2OjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kOgoKICAgdXBkYXRlIGRlcHMgZm9yIGRlbGV0ZWQgZmlsZQoKMjAwNS0xMS0yMiAwNTo0MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgQmVlZiB1cCB0aGUgInJlbG9jYXRhYmxlIGV4ZWMiIHdhcm5pbmcgbWVzc2FnZS4KCjIwMDUtMTEtMjIgMDU6MzcgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgU2NoZWR1bGUgTUlCIGNvbmZpZ3VyYXRpb24uCgoyMDA1LTExLTIxIDIwOjQwICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsIHdpbjMyL2FnZW50X21vZHVsZV9pbml0cy5oCiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyOiAgTVNWQyBhbmQgQ3lnd2luIGNvbXBpbGUgZml4ZXMKCjIwMDUtMTEtMjEgMTk6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuaDoKCiAgIHJlbW92ZSB1bnVzZWQgZmlsZXM7IHJlaW1wbGVtZW50ZWQgaW4gc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZQoKMjAwNS0xMS0yMSAwNjoyNyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpc2UgdGhlIERpc01hbiBFdmVudC1NSUIgZG9jdW1lbnRhdGlvbiB0byBtYXRjaCB0aGUgbmV3IGltcGxlbWVudGF0aW9uLgoKMjAwNS0xMS0yMSAwNjoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBQcm9wZXJseSBkZXRlY3QgYWxsIHRocmVlIHN0eWxlcyBvZiBtb25pdG9yIGV4cHJlc3Npb24gYXV0b21hdGljYWxseS4KICAgKFRoaXMgbWFrZXMgdGhlICctdCcgb3B0aW9uIHJlZHVuZGFudCwgdGhvdWdoIGl0J3Mgc3RpbGwgYWNjZXB0ZWQpCgoyMDA1LTExLTIwIDE4OjUxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIENIRUNLQU5ERElFKCkgc2hvdWxkIEVYUEVDVFJFU1VMVCAwCgoyMDA1LTExLTIwIDE4OjMwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgbWFrZSB0aGUgdGVzdCBhbHNvIEZBSUwgb24gIldyb25nIFR5cGUgKHNob3VsZCBiZSAuLi4pIgoKMjAwNS0xMS0yMCAxODoyOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBpbnRyb2R1Y2UgQ0hFQ0tBTkRESUUoKSB0byBGQUlMIGlmIGEgcGF0dGVybiAqaXMqIGZvdW5kCgoyMDA1LTExLTIwIDE4OjAwICB0YW5kZXJzCgogICAqIG1pYnMvTkVULVNOTVAtVEMudHh0OgoKICAgdXBkYXRlIExBU1QtVVBEQVRFRCBmaWVsZCB0byByZWZsZWN0IHJlY2VudCBjaGFuZ2VzCgoyMDA1LTExLTIwIDE3OjQ4ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgY2xhcmlmeSB0aGF0ICJob3N0IiBpcyBvbmx5IGVuYWJsZWQgYnkgZGVmYXVsdCBvbiB0aGUgbWFqb3Igc3VwcG9ydGVkIHBsYXRmb3JtcwoKMjAwNS0xMS0yMCAxNzozNSAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGZpeCBkZXNjcmlwdGlvbiBmb3IgZW5naW5lSUQKCjIwMDUtMTEtMjAgMTc6MjcgIHRhbmRlcnMKCiAgICogTkVXUywgbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IG5vUGVyc2lzdGVudExvYWQgYW5kIG5vUGVyc2lzdGVudFNhdmUKCjIwMDUtMTEtMjAgMTY6MzAgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgdXNlIC1xIG9uIGZpbmFsIGN2c3VwZGF0ZTsgYWRkIHNwYWNpbmcKCjIwMDUtMTEtMjAgMTY6MTcgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTcgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNyAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNiAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNiAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE2ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTYgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTMgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0yMCAxNjowNyAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMS0yMCAxNjowNSAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3V0aWwuMywKICAgICBuZXRzbm1wX3V0aWxpdGllcy4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTExLTIwIDE1OjU1ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIC0gcmVtb3ZlIGhvd3RvIG9uIGxpYnRvb2wgdmVyc2lvbmluZyBtYXRjaCByZWxlYXNlIG51bWJlcnMKICAgLSB1cGRhdGUgc3VnZ2VzdGVkIGNvbmZpZ3VyZSB0ZXN0IG9wdGlvbnMKCjIwMDUtMTEtMjAgMTU6MzggIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgdXNlIGVuYWJsZS1pcHY2IGluc3RlYWQgb2Ygc3BlY2lmeWluZyB0cmFuc3BvcnRzCgoyMDA1LTExLTIwIDE1OjM3ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0yMCAxNTozNSAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBhZGQgbWlzc2luZyA7CgoyMDA1LTExLTIwIDE0OjQyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gYnVnIDEzNDc3MDk6IHNubXBkIGRvZXNudCBoYW5kbGUgbGFyZ2UgbG9nIGZpbGVzICg+PSAyR0IpIGdyYWNlZnVsbHkKICAgICAtIHBhcnRpYWwgZml4OiBvcGVuL3RydW5jYXRlIGxvZyBmaWxlcyBhdCBzdGFydHVwCgoyMDA1LTExLTIwIDE0OjM5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHVzZSBuZXcgZHMgYm9vbGVhbiBmb3IgYXBwZW5kIGxvZ2ZpbGVzLCBpbnN0ZWFkIG9mIGxvY2FsIHZhcgoKMjAwNS0xMS0yMCAxNDozOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CgogICBuZXcgbGliIGJvb2xlYW4gZm9yIGFwcGVuZCBsb2dmaWxlcwoKMjAwNS0xMS0xOCAxNjo1NyAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHN1cHBvcnQgZm9yIGNvdW50ZXJzIGluIHJlYWRfY29uZmlnX3JlYWRfbWVtb3J5CgoyMDA1LTExLTE4IDE0OjIxICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgYWxsb3cgc2Vzc2lvbiBwYXJhbXMgdG8gb3ZlcnJpZGUgZ2xvYmFsIGRlZmF1bHRzCgoyMDA1LTExLTE4IDEwOjUxICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlzZSB0aGUgaW50cm9kdWN0aW9uIHRvIHNubXBkIGNvbmZpZyBmaWxlcy4KCjIwMDUtMTEtMTggMTA6MzYgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgdGhlIERpc01hbiBFdmVudCBNSUIgZG9jdW1lbnRhdGlvbi4KCjIwMDUtMTEtMTcgMjA6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jOgoKICAgYWNjb3VudCBmb3IgcG9zc2libGUgTlVMTCB2YWx1ZSBmcm9tIGZ1bmN0aW9uCgoyMDA1LTExLTE3IDE3OjQ1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGluY2x1ZGUgQ09ORklHVVJFX09QVElPTlMgaW4gcmVzdWx0cyBlbWFpbAoKMjAwNS0xMS0xNyAxNzowMyAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBpZmRlZiBfX2FwbGhhLCBpZmRlZiBvdXQgb3B0aW1pemF0aW9uIGNhdXNpbmcgYWxwaGEtbGludXgxIHRvIHNlZ2ZhdWx0CgoyMDA1LTExLTE3IDE0OjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIGFkZCBtZW1vcnkvdm1zdGF0cyBmb3IgZnJlZWJzZDYKCjIwMDUtMTEtMTcgMTI6NTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBleHBsaWN0bHkgY29uZmlnIGlwdjYgdHJhbnNwb3J0czsgZW5hYmxlLWlwdjYgaW5zdGVhZAoKMjAwNS0xMS0xNyAxMjo0MSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICAtIHVzZSBzZW5kbWFpbCBvbiBmcmVlYnNkIHRvbwogICAtIGFkZCBFcnJvcnMtVG8gaGVhZGVyIHRvIG1haWwKICAgLSBlY2hvIHRvL3N1YmplY3QgdG8gc3Rkb3V0CgoyMDA1LTExLTE3IDExOjQ1ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIHRyYXAgZGVzdGluYXRpb24gaGFuZGxpbmcuCgoyMDA1LTExLTE3IDExOjE2ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIE1pbm9yIHdvcmRzbWl0aGluZyBhbmQgZm9ybWF0dGluZyBjb3JyZWN0aW9ucy4KCjIwMDUtMTEtMTcgMTE6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICBleGNsdWRlIGludGVyZmFjZSBnZXQvbmV4dCBwcm90b3R5cGVzIGlmIHVzaW5nIG1mZCByZXdyaXRlcwoKMjAwNS0xMS0xNyAxMTowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGV4cGxpY2l0IGNhc3QgdG8gbWF0Y2ggcHJvdG90eXBlCgoyMDA1LTExLTE3IDExOjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oOgoKICAgYWRkIG1pc3NpbmcgcHJvdG90eXBlOyBhZGQgQysrIGV4dGVybiB3cmFwcGVycwoKMjAwNS0xMS0xNyAxMTowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLAogICAgIGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICBxdWl0ZSBjb21waWxlcjogYWRkIGhlYWRlcnMgZm9yIG1pc3NpbmcgcHJvdG90eXBlcwoKMjAwNS0xMS0xNyAxMDo1OSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBzcGVjaWFsIGNhc2UgZm9yIG9wZW5ic2QgbWFpbAoKMjAwNS0xMS0xNyAwOTo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LW1pYi5oOgoKICAgQ2xhcmlmeSB0aGF0IHRoZSAiZXZlbnQtbWliLmgiIHdhcm5pbmcgKmlzKiBhIHdhcm5pbmcgcmF0aGVyIHRoYW4KICAgc2ltcGx5IGEgbm90ZSAod2hpY2ggd291bGQgYmVsb25nIGluIHRoZSBkb2N1bWVudGF0aW9uKQoKMjAwNS0xMS0xNiAxNjozNiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTExLTE2IDE2OjMzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgbmV0YnNkIHdhbnRzIG5ldGluZXQvaXA2LmggYmVmb3JlIG5ldGluZXQ2L2luNl9wY2IuaAoKMjAwNS0xMS0xNiAxNjoyNiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTExLTE2IDE2OjI2ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZGlzYWxsb3cgaXB2NiB0cmFuc3BvcnRzIGlmIGlwdjYgbm90IGVuYWJsZWQKCjIwMDUtMTEtMTYgMTU6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86CiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBrZWVwIGNvbXBpbGVyIGhhcHB5OiBleHBsaWNpdCBhcmd1bWVudCBjYXN0CgoyMDA1LTExLTE2IDE1OjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYwosIHRjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYwosIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIEMrKyBjbGVhbnVwOiBkb24ndCB1c2UgbmV3IGFzIHZhcmlhYmxlIG5hbWUKCjIwMDUtMTEtMTYgMTU6MjAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICBhZGQgbWlzc2luZyBwcm90b3R5cGUKCjIwMDUtMTEtMTYgMTU6MTggIHJzdG9yeQoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIGtlZXAgY29tcGlsZXIgaGFwcHk6IGV4cGxpY2l0IGFyZ3VtZW50IGNhc3QKCjIwMDUtMTEtMTYgMTU6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvOiBpZlhUYWJsZS5jLCBpZlhUYWJsZS5oCjoKCiAgIG1vdmUgaW5pdGlhbGl6ZV90YWJsZV9pZlhUYWJsZSBwcm90b3R5cGUgdG8gaGVhZGVyCgoyMDA1LTExLTE2IDE1OjExICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIGFkZCBwcm90b3R5cGVzIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBpbnRlcmZhY2UgZnVuY3Rpb25zCgoyMDA1LTExLTE2IDE1OjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgQysrIGV4dGVybiAiQyIgd3JhcHBlcnMKCjIwMDUtMTEtMTYgMTU6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBpbmNsdWRlIGhlYWRlciB3L25lZWRlZCBwcm90b3R5cGUKCjIwMDUtMTEtMTYgMTQ6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuaAosIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oOgoKICAgQysrIGNsZWFudXA6IGRvbid0IHVzZSBuZXcgYXMgdmFyaWFibGUgbmFtZQoKMjAwNS0xMS0xNiAxNDo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIC0gQysrIGNsZWFudXAKICAgICAtIGRvbid0IHVzZSBfX1AoKSAobm93aGVyZSBlbHNlIGluIHRoZSBjb2RlIHVzZXMgaXQpCiAgICAgLSBkb24ndCB1c2UgbmV3IGFzIGEgdmFyaWFibGUgbmFtZQoKMjAwNS0xMS0xNiAxMjoxNyAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgLy8gLT4gLyogKi8KCjIwMDUtMTEtMTYgMTA6NDIgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5oOgoKICAgUHJvdmlkZSBhIGRlZmluaXRpb24gZm9yIE5JX01BWEhPU1QgaWYgbWlzc2luZy4KCjIwMDUtMTEtMTYgMTA6MTAgIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYwosIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCwgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAKLCB0ZXN0aW5nL3Rlc3RzL1QxNTJob3N0dXB0aW1lOgoKICAgYnVpbGQgZml4ZXMgZm9yIHNvbGUgLS1kaXNhYmxlLXNubXB2MSAoKndpdGhvdXQqIC0tZGlzYWJsZS1zbm1wdjJjKQoKMjAwNS0xMS0xNiAwODowNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsIGFwcHMvc25tcHRyYXBkX2F1dGguYwo6CgogICBidWlsZCBmaXggZm9yIC0tZGlzYWJsZS1zbm1wdjEvLS1kaXNhYmxlLXNubXB2MmMKCjIwMDUtMTEtMTYgMDY6MjAgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGJ1aWxkIGZpeCBmb3IgLS1kaXNhYmxlLXNubXB2MS8tLWRpc2FibGUtc25tcHYyYwoKMjAwNS0xMS0xNiAwNTo1OCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBCZXR0ZXIgbGF5b3V0IG9mICdpbmplY3RfaGFuZGxlcicgZG9jdW1lbnRhdGlvbi4KCjIwMDUtMTEtMTYgMDU6MDkgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgbG9hZCBhdmVyYWdlIGFuZCBmaWxlIG1vbml0b3JpbmcgY29uZmlndXJhdGlvbi4KICAgKHBsdXMgYXNzb3J0ZWQgdGlkeWluZyB1cCkuCgoyMDA1LTExLTE2IDA0OjU4ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIHRoZSBkaXNrIG1vbml0b3JpbmcgY29uZmlndXJhdGlvbgoKMjAwNS0xMS0xNiAwNDo1NyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSB0aGUgcHJvY2VzcyBtb25pdG9yaW5nIGNvbmZpZ3VyYXRpb24KCjIwMDUtMTEtMTYgMDQ6NTcgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgdGhlIEhvc3QgUmVzb3VyY2VzIGNvbmZpZ3VyYXRpb24KCjIwMDUtMTEtMTYgMDQ6NTYgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgdGhlIHN5c3RlbSBncm91cCBjb25maWd1cmF0aW9uLgoKMjAwNS0xMS0xNiAwNDo1NSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDb25zb2xpZGF0ZSB0aGUgInN5c3RlbSBpbmZvcm1hdGlvbiIsIGFuZCAiYWdlbnQgYmVoYXZpb3VyIiBjb25maWd1cmF0aW9uCiAgIGRpcmVjdGl2ZXMgdG8gYmUgZG9jdW1lbnRlZCB0b2dldGhlciAoYXMgdHdvIGRpc3RpbmN0IHNlY3Rpb25zKS4KCjIwMDUtMTEtMTUgMjE6MTQgIHJzdG9yeQoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYwo6CgogICB1bmNvbW1lbnQgb3V0IGNsZWFudXAgY29kZQoKMjAwNS0xMS0xNSAyMToxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgZXh0cmEgZXJyb3IgY2hlY2tpbmcgZm9yIGZyZWVic2QKCjIwMDUtMTEtMTUgMjE6MDggIHJzdG9yeQoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMKOgoKICAgcmVtb3ZlIGNwcCAjd2FybmluZyBsaW5lcwoKMjAwNS0xMS0xNSAyMTowNCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3A6CgogICAtIHVzZSBmaW5kIGZvdW5kIGJ5IGNvbmZpZ3VyZQogICAtIHR3ZWFrIGNvbW1lbnRjaGVjayByZWdleHAgdG8gbWlzcyByZWdleHAgaW4gcGVybCBoZWFkZXIKCjIwMDUtMTEtMTUgMjA6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgLSBzb2xhcmlzIGZpeGVzCiAgICAgLSBkb24ndCBzZXQgc29ydGVkIGZsYWcgZm9yIHNvbGFyaXMgKGRhdGEgb24gc2YgY2YgNS45IGlzIG5vdCBzb3J0ZWQpCiAgICAgLSByZXZlcnNlIGNvbmRpdGlvbiBvbiBpZGxlIHRlc3Qgc28gc29tZSBkYXRhIGdldHMgcmV0dXJuZWQKCjIwMDUtMTEtMTUgMTk6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMKOgoKICAgdXNlIHN0YXRlIGZyb20gYXJwIGVudHJ5IGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlCgoyMDA1LTExLTE1IDE5OjI0ICByc3RvcnkKCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIGRlZmF1bHQgcm93IHN0YXR1cyB0byBhY3RpdmUKCjIwMDUtMTEtMTUgMTk6MjQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDY1YWdlbnRleHRlbmQ6CgogICBpbnRyb2R1Y2Ugc25tcGQgdGVzdCBmb3IgZXh0ZW5kCgoyMDA1LTExLTE1IDE5OjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgLSBkb24ndCBpZ25vcmUgaW5jb21wbGV0ZSBlbnRyaWVzCiAgIC0gc2V0IHN0YXRlIHRvIHJlYWNoYWJsZSBpZiAhIGluY29tcGxldGUKCjIwMDUtMTEtMTUgMTk6MDIgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMjAwc25tcHYyY3dhbGthbGw6CgogICBmaXggdHlwbwoKMjAwNS0xMS0xNSAxODo0NiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmw6CgogICBzb21lIG9wdGltaXphdGlvbgoKMjAwNS0xMS0xNSAxODozMiAgcnN0b3J5CgogICAqIFJFQURNRS5hZ2VudHg6CgogICBkb2N1bWVudCBkZWZhdWx0IHBpbmcgaW50ZXJ2YWwKCjIwMDUtMTEtMTUgMTg6MTIgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtaW5vciB0d2Vha3MKCjIwMDUtMTEtMTUgMTc6NDYgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFnZW50eDoKCiAgIG1pbm9yIHR3ZWFrcwoKMjAwNS0xMS0xNSAxMTozNyAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLAogICAgIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBwaW5nLCBwb25nOyByZXN0b3JlIG5ldHNubXBfcnVubmluZyBjaGFuZ2VzCgoyMDA1LTExLTE1IDEwOjUxICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIEFnZW50WCBjb25maWcuCgoyMDA1LTExLTE1IDA5OjM1ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIGRsbW9kLCBwcm94eSBhbmQgU01VWCBkZXNjcmlwdGlvbnMKICAgKHBsdXMgYXNzb3J0ZWQgbWlub3IgdHdlYWtzKQoKMjAwNS0xMS0xNSAwNToyOCAgZHRzMTIKCiAgICogRkFROgoKICAgRXhwYW5kIGRpc2N1c3Npb24gb2YgbWliMmMgY29uZmlncy4KCjIwMDUtMTEtMTQgMjA6MTkgIGFsZXhfYgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICBXaW4zMjogIHNubXBuZXRzdGF0IElQdjYgYnVpbGQgZml4ZXMKCjIwMDUtMTEtMTQgMTk6MTEgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsOgoKICAgV2UgZmluYWxseSBoYXZlIHNubXBkIGVtYmVkZGVkIHBlcmwgdGVzdGluZy4gRmVlbCBmcmVlIHRvIHJldmlldy9zY3JlYW0vYmFjayBvdXQgLS0gb3IgYXBwbGF1ZC4KCjIwMDUtMTEtMTQgMTg6MTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2ZpbGVfdXRpbHMuYzoKCiAgIC0gcmVtb3ZlIEMrKyBzdHlsZSBjb21tZW50cwogICAtIGFkZCBhZGRpdGlvbmFsIGVycm9yIGhhbmRsaW5nL2xvZ2dpbmcKICAgLSBtb3JlIGNvbW1lbnRzCiAgIC0gZG94eWdlbiBkb2NzCgoyMDA1LTExLTE0IDE4OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFNURERvbWFpbi5jLCBzbm1wbG9jYWxzbS5jOgoKICAgcmVtb3ZlIEMrKyByZWxhdGVkIGNvbW1lbnRzCgoyMDA1LTExLTE0IDE3OjU5ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgZG9uJ3QgbWFudWFsIHVwZGF0ZSB0byBTRiBzZXJ2ZXJzCgoyMDA1LTExLTE0IDE3OjQ2ICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgLSB1bmRlZmluZSAgTkVUU05NUF9QQVJBTk9JRF9MRVZFTF9ISUdILCBkb2N1bWVudCB3aGF0IGl0IGRvZXMKICAgLSB1cGRhdGUgbG9jayBhc3NlcnQvd2FybiBjYXNlcyBmb3IgbG9jayBwZXIgY2FsbGJhY2sgZXhwZWN0YXRpb25zCgoyMDA1LTExLTE0IDE3OjI4ICByc3RvcnkKCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgcmVtb3ZlIGNvbW1lbnRlZCBvdXQgY29kZQoKMjAwNS0xMS0xNCAxNzoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2lvY3RsLmM6CgogICByZW1vdmUgY29tbWVudGVkIG91dCBpbmNsdWRlcwoKMjAwNS0xMS0xNCAxNzoyNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIHJlbW92ZSBjKysgc3R5bGUgY29tbWVudGVkIG91dCBjb2RlCgoyMDA1LTExLTE0IDE3OjIzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIHJlbW92ZSB0ZW1wb3JhcnkgY29tbWVudHMKCjIwMDUtMTEtMTQgMTM6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgZml4IGJ1ZyAxMzUyNTU0OiBTZWcgZmF1bHQgaW4gbmV0c25tcF9jb250YWluZXJfdGFibGVfcm93X2luc2VydAoKMjAwNS0xMS0xNCAxMzoxMiAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLAogICAgIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIG1vdmUgcnVubmluZyBmbGFnIGJhY2sgaW50byBhcHBsaWNhdGlvbnMKICAgLSByZXN0b3JlIGluZmluaXRlIGxvb3AgaW4gZ2V0LW5leHQgbG9vcCBoYW5kbGluZwoKMjAwNS0xMS0xNCAxMTozMiAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHNtdXhzb2NrZXQgYW5kIGVuaGFuY2UgQWdlbnRYKgoKMjAwNS0xMS0xNCAxMDo1NCAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1pbm9yIGZpeGVzIGFmdGVyIHJldmlld2luZyBEYXZlJ3MgY2hhbmdlcwoKMjAwNS0xMS0xNCAxMDo0MyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSBlbWJlZGRlZCBwZXJsIGRvY3VtZW50YXRpb24uCgoyMDA1LTExLTE0IDA2OjM1ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEZpeCBhIGNvdXBsZSBvZiB0eXBvcywgYW5kIHNwZWNpZnkgYSBtb3JlIGRlZmluaXRlIFNFVAogICBwcm90b2NvbCBmb3IgJ3Bhc3NfcGVyc2lzdCcgLSBjb21wYXRpYmxlIHdpdGggdGhlCiAgIGN1cnJlbnQgYmVoYXZpb3VyLCBidXQgb3BlbmluZyB0aGUgZG9vciBmb3IgbW9yZQogICBmbGV4aWJsZSBoYW5kbGluZyBpbiB0aGUgZnV0dXJlLgoKMjAwNS0xMS0xNCAwNjoyOSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSBwYXNzLXRocm91Z2ggc3VwcG9ydC4KCjIwMDUtMTEtMTQgMDY6MjIgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgImV4ZWMiLyJleHRlbmQiIGRvY3VtZW50aW9uCgoyMDA1LTExLTE0IDA1OjU1ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIENvbnNvbGlkYXRlIGFsbCB0aGUgZXh0ZW5zaW9uIG1lY2hhbmlzbXMgdG8gYmUgZG9jdW1lbnRlZCB0b2dldGhlci4KCjIwMDUtMTEtMTQgMDU6NTMgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IHRoZSBBY2Nlc3MgQ29udHJvbCBzZWN0aW9uLCBpbmNsdWRpbmcgc2VwYXJhdGlvbiBpbnRvCiAgIGRpc3RpbmN0IHN1YnNlY3Rpb25zLgoKMjAwNS0xMS0xNCAwNTo1MiAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBTaW1wbGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGF1dGgqIGRpcmVjdGl2ZXMuCgoyMDA1LTExLTE0IDA0OjQxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBmaXggdHlwbwoKMjAwNS0xMS0xNCAwMTo1MiAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBjaGVjayBmb3IgZ3BnIGtleSBpbnN0ZWFkIG9mIHVzZXJpZAoKMjAwNS0xMS0xNCAwMTo0NyAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBhZGQgb3B0aW9uIHRvIHJlcGVhdCBmYWlsZWQgc3RlcHMKCjIwMDUtMTEtMTQgMDE6NDQgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgcGVybC9PSUQvT0lELnBtLAogICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTEtMTQgMDE6MzkgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzkgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTMgKQoKMjAwNS0xMS0xNCAwMTozOSAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTMgKQoKMjAwNS0xMS0xNCAwMTozOCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzggIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTMgKQoKMjAwNS0xMS0xNCAwMTozOCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzggIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzggIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4zLnByZTMgKQoKMjAwNS0xMS0xNCAwMTozNyAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTE0IDAxOjM2ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIG5vdGUgYWdlbnR4IHN1YmFnZW50IGNvbm5lY3QgYWZ0ZXIgY29uZmlncyBmaXgKCjIwMDUtMTEtMTQgMDE6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCgoyMDA1LTExLTE0IDAxOjI1ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdXRpbC4zLAogICAgIG5ldHNubXBfdXRpbGl0aWVzLjMsIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLAogICAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTEtMTQgMDE6MTkgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0xNCAwMToxMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTEtMTQgMDA6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgcmVtb3ZlIHVubmVlZGVkIHJlcG9zaXRvcnkgc3BlYwoKMjAwNS0xMS0xMyAyMjoxMCAgYWxleF9iCgogICAqIHdpbjMyLzogTWFrZWZpbGUuaW4sIGluc3RhbGwtbmV0LXNubXAuYmF0LAogICAgIGRpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIC1XaW4zMjogQWRkIG1pc3NpbmcgbWliMmMtZGF0YSB0byBpbnN0YWxsZXIKICAgLVdpbjMyOiBVc2Ugd2lsZGNhcmRzIGluIGluc3RhbGxlciBmb3IgaW5zdGFsbGluZyBmaWxlcyB0byBoZWxwIHByZXZlbnQKICAgIG1pc3NpbmcgZmlsZXMuCgoyMDA1LTExLTEzIDIyOjAwICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgICAgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gbmV3IG5ldHNubXBfcnVubmluZyBnbG9iYWwgaW4gYWdlbnQgbGliCiAgICAgLSB1c2VkIGluIHBsYWNlIG9mIHdoaWxlKDEpIGluIGdldCBuZXh0IHByb2Nlc3NpbmcgbG9vcAogICAgIC0gZGFlbW9ucyB3L3NpZ2hhbmRsZXIgdXBkYXRlZCB0byBjbGVhciBmbGFnIG9uIHNpZ3Rlcm0KCjIwMDUtMTEtMTEgMjE6NTUgIGFsZXhfYgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBXaW4zMjogIEZpeCBOSV9NQVhIT1NUIGRlZmluZS4KCjIwMDUtMTEtMTEgMjE6MTEgIGFsZXhfYgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIFdpbjMyOiBXb3JrIGFyb3VuZCBmb3IgYnVnIDEyNzg3NDM6ICBJZiB0cnlpbmcgdG8gcmV2ZXJzZSBsb29rdXAKICAgMTI3LjAuMC4xLCByZXR1cm4gJ2xvY2FsaG9zdCcgdG8gcHJldmVudCBXaW5kb3dzIGZyb20gcmV0dXJuaW5nIHRoZQogICBsb2NhbCBjb21wdXRlciBuYW1lIGJlY2F1c2UgaXQgaWdub3JlcyB0aGUgaG9zdHMgZmlsZS4KCjIwMDUtMTEtMTAgMTk6NDggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDE2MHNubXB2MmNidWxrZ2V0OgoKICAgZml4IHR5cG8KCjIwMDUtMTEtMTAgMTk6MTggIHRhbmRlcnMKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBmaXggc3ludGF4IHR5cG8KCjIwMDUtMTEtMTAgMTg6NTUgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBjbGFyaWZ5IHRoYXQgdGhpcyB0ZXN0IHJlcXVpcmVzIGEgd29ya2luZyB1ZHBUYWJsZQoKMjAwNS0xMS0xMCAxODoyMiAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmg6CgogICBidWlsZCBmaXggZm9yIE9wZW5CU0QvU1BBUkMgMy43CgoyMDA1LTExLTEwIDE0OjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIGFnZW50eCBpbml0IHJld29yawogICAgIC0gcHJvdGVjdCBhZ2FpbnN0IG11bHRpcGxlIGNhbGxzIHRvIHN1YmFnZW50X2luaXQKICAgICAtIGRvbid0IGNvbm5lY3QgdG8gbWFzdGVyIGluIHN1YmFnZW50X2luaXQsIGluc3RlYWQgcmVnaXN0ZXIgUE9TVF9DT05GSUcKICAgICAgIGNhbGxiYWNrIHRvIGRvIHNvCgoyMDA1LTExLTEwIDE0OjI3ICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgLSBmaW5lciBncmFpbmVkIGxvY2tpbmcgb2YgY2FsbGJhY2tzIChwZXIgc3ViaWQpLCBhbGxvd2luZyBhIGNhbGxiYWNrIHRvCiAgICAgbWFuaXB1bGF0ZSAocmVnL3VucmVnKSBvdGhlciBjYWxsYmFja3MKICAgLSBtb3JlIGRlYnVnZ2luZwogICAtIGFkZCBzdGF0aWMgZmxhZyBmb3IgaW5pdAogICAgIC0gbWVtc2V0IGFuZCBpbml0IHZhcmlhYmxlcyBpbiBpbml0X2NhbGxiYWNrIGlmIG5vdCBkb25lIHlldAogICAgIC0gY2FsbCBpbml0X2NhbGxiYWNrLCBpZiBuZWVkZWQsIGZyb20gYWxsIGZ1bmN0aW9ucwoKMjAwNS0xMS0xMCAxNDoxNSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gYWdlbnR4IGluaXQgcmV3b3JrCiAgICAgcmVzdG9yZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAobm8gc3ViYWdlbnQgaW5pdCBpbiBpbml0X21hc3Rlcl9hZ2VudCgpKQoKMjAwNS0xMS0xMCAxNDoxMiAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBhZ2VudHggaW5pdCByZXdvcms6CiAgICAgcmVzdG9yZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAoY2FsbCBzdWJhZ2VudCBpbiBpbiBpbml0X2FnZW50KQoKMjAwNS0xMS0xMCAwNToxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQuaCwgZXZlbnQtbWliLmgsCiAgICAgb2xkLWV2ZW50LW1pYi5oOgoKICAgU3BsaXQgb3JpZ2luYWwgYW5kIG5ldyBFdmVudCBNSUIgaW1wbGVtZW50YXRpb25zIGludG8gZGlzdGluY3QKICAgIm1vZHVsZSBncm91cCIgaGVhZGVycywgYW5kIHVzZSB0aGUgb3JpZ2luYWwgbmFtZSB0byB3YXJuIG9mIHRoZSBjaGFuZ2VzLgoKMjAwNS0xMS0xMCAwNToxMCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgc3VwcG9ydCBmb3IgTUlCIG1vZHVsZXMgdG8gZ2VuZXJhdGUgY29uZmlndXJlIHdhcm5pbmdzIG9yIGVycm9ycwoKMjAwNS0xMS0xMCAwNDo0NiAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IG1haW4uYywgbmV0c3RhdC5oLCByb3V0ZS5jOgoKICAgU2lsZW5jZSBhIGNvdXBsZSBvZiBjb21waWxlciB3YXJuaW5ncwoKMjAwNS0xMS0xMCAwNDo0NSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgRG9uJ3QgY2hva2Ugb24gbWlzc2luZyBpbnRlcmZhY2VzIChhbmQgc2lsZW5jZSBhIGNvdXBsZSBvZiBjb21waWxlciB3YXJuaW5ncykKCjIwMDUtMTEtMTAgMDQ6NDQgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpbmV0LmMsIGluZXQ2LmM6CgogICBTdXBwcmVzcyBoZWFkZXJzIGZvciBlbXB0eSBUQ1AgZGlzcGxheXMgKGFuZCBmaXggYSBtaW5vciB0eXBvKQoKMjAwNS0xMS0wOSAyMTozMyAgYWxleF9iCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgICAgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICAtV2luMzI6IEZvcmNlIEV2ZW50IExvZywgU0NNLCByZWdpc3RyeSBldGMgdG8gdXNlIGxvbmcKICAgIG5hbWUgZm9yIHNlcnZpY2UgKE5ldC1TTk1QIEFnZW50IGluc3RlYWQgb2Ygc25tcGQpLiAgTmVlZGVkCiAgICBiZWNhdXNlIG9mIG5ldyAtbiBvcHRpb24gaW4gc25tcGQuICBOb3RlOiAgVGhlIHNubXBkIC1uIG9wdGlvbgogICAgZG9lcyBub3QgY2hhbmdlIHRoZSBXaW5kb3dzIHNlcnZpY2UgbmFtZSBldGMsIG9ubHkgdGhlIGNvbmZpZwogICAgZmlsZSBsb2FkZWQuCgoyMDA1LTExLTA5IDE5OjM0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAibWFrZSB0ZXN0LW1pYnMiIHN0aWxsIHdvbid0IHdvcmsgaWYgYnVpbGQgZGlyICE9IHNvdXJjZSBkaXIsIGJ1dCBpdCdzIGNsb3NlciBub3cKCjIwMDUtMTEtMDkgMTg6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBhZ2VudHhfY29uZmlnLmgsIHN1YmFnZW50Lmg6CgogICBhZ2VudHggaW5pdCByZXdvcms6IHVwZGF0ZSBwcm90b3R5cGVzIGZvciByZW5hbWVkIGZ1bmN0aW9ucwoKMjAwNS0xMS0wOSAxODoyNCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGRlYnVnIG1lc3NhZ2Ugc2hvdWxkIG1hdGNoIGNvZGUKCjIwMDUtMTEtMDkgMTc6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaXB2NkludGVyZmFjZVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgZXhlY3V0YWJsZXMsIG1ha2VmaWxlcywgdHh0IGZpbGVzLCBzdWJhZ2VudCBmaWxlcwoKMjAwNS0xMS0wOSAxNzozMSAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIHJlbW92ZSBkdXBsaWNhdGUgaW5jbHVkZQoKMjAwNS0xMS0wOSAxNzoyOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG1vcmUgc3BlY2lmaWMgZXJyb3IgcmVnZXhwCgoyMDA1LTExLTA5IDE3OjI2ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGFnZW50eCBpbml0IHJld29yazogdXBkYXRlIGZvciBmdW5jdGlvbiBuYW1lIGNoYW5nZXMKCjIwMDUtMTEtMDkgMTc6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gYWdlbnR4IGluaXQgcmV3b3JrCiAgICAgLSBpZmRlZiBlbnRpcmUgbW9kdWxlIGJhc2VkIG9uIHVzaW5nIGFnZW50eCBzdWJhZ2VudCBtb2R1bGUKICAgICAtIHJlbmFtZSBpbml0IGZ1Y250aW9uIHNvIHdlIGNhbiBjb250cm9sIHdoZW4gaXQgaXMgY2FsbGVkCiAgICAgLSByZW1vdmUgc3ViYWdlbnRfcHJlX2luaXQKICAgICAgIC0gY29uZmlnIHN0dWZmIG1vdmVkIGludG8gYWdlbnR4X2NvbmZpZy5jCiAgICAgICAtIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCBtb3ZlZCB0byBzdWJhZ2VudF9pbml0LCBub3cgdGhhdCBpdCdzIGNhbGxlZAogICAgICAgICBhZnRlciBjb25maWdzIGhhdmUgYmVlbiByZWFkCgoyMDA1LTExLTA5IDE3OjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIC0gY29uc29saWRhdGUgbWFzdGVyIGFuZCBzdWJhZ2VudCBjb25maWdzIGluIHRoaXMgZmlsZQogICAgIC0gc2xpZ2h0IGNvZGUgcmUtb3JnIChubyBjaGFuZ2VzOyBtb3ZlIGFnZW50eCBzb2NrZXQgcGFyc2luZyB0byB0b3ApCiAgICAgLSByZWdpc3RlciBwaW5nIGludGVydmFsIGNvbmZpZyBhbmQgc2V0IGRlZmF1bHQKICAgICAtIHJlbmFtZSBpbml0IGZ1bmN0aW9uIHNvIGNvbmZpZ3VyZSB3b24ndCBhZGQgaXQgdG8gbW9kdWxlcyBpbml0cywgc28gd2UKICAgICAgIGNhbiBjYWxsIGl0IHdoZW4gd2Ugd2FudCBpdCB0byBiZSBjYWxsZWQKCjIwMDUtMTEtMDkgMTc6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIGFnZW50eCBpbml0IHJld29yazogaW5pdCBzdWJhZ2VudCBpbiBpbml0X21hc3Rlcl9hZ2VudAogICAtIGFzc2VydCBpZiByb2xlIGlzbid0IG1hc3RlciBvciBzdWItYWdlbnQKCjIwMDUtMTEtMDkgMTc6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gYWdlbnR4IGluaXQgcmV3b3JrCiAgICAgLSBkb24ndCBpbml0IHN1YmFnZW50IGhlcmUgKGNvbmZpZ3MgaGF2ZW4ndCBiZWVuIHJlYWQgeWV0KQogICAgIC0gb25seSBpbml0IG1hc3Rlci9zdWIgY29uZmlncwoKMjAwNS0xMS0wOSAxNzoxMiAgcnN0b3J5CgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgdXBkYXRlIGZvciBuZXcgdGFibGVzCgoyMDA1LTExLTA4IDA3OjIxICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYywgbWFpbi5jLCBuZXRzdGF0Lmg6CgogICBJbXBsZW1lbnQgT3Blbi9OZXRCU0Qtc3R5bGUgb2N0ZXQgaW50ZXJmYWNlIGRpc3BsYXkuCgoyMDA1LTExLTA4IDA3OjE3ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBSaWdodC1qdXN0aWZ5IGhlYWRpbmdzIGZvciBjb3VudGVyIHZhbHVlcy4KICAgKGxvb2tzIG5lYXRlciB3aGVuIGluZGl2aWR1YWwgdmFsdWVzIGJlY29tZSByZWxhdGl2ZWx5IHdpZGUpCgoyMDA1LTExLTA4IDA3OjA0ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICBGaXggcHJvYmxlbXMgd2Fsa2luZyB0aGUgSVB2NiBjb25uZWN0aW9uIHRhYmxlcy4KCjIwMDUtMTEtMDggMDY6NTkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgT25seSBzY2hlZHVsZSBhdXRvbWF0aWMgbG9hZGluZyBvbmNlIGZvciBhbnkgZ2l2ZW4gY2FjaGUuCgoyMDA1LTExLTA3IDIyOjQ2ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgQ2hhbmdlTG9nIG5vdGUKCjIwMDUtMTEtMDcgMjE6NDUgIGFsZXhfYgoKICAgKiB3aW4zMi86IG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgosIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcDoKCiAgIFdpbjMyOiAgTVNWQyBidWlsZCBmaXhlcy4KCjIwMDUtMTEtMDcgMTk6NDkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYwdHJhcGRwZXJsOgoKICAgaW50cm9kdWNlIGVtYmVkZGVkIHBlcmwgdGVzdCBmb3Igc25tcHRyYXBkICh0b28gZmFuY3kgdG8gcmVzaXN0KQoKMjAwNS0xMS0wNyAxOTo0MiAgdGFuZGVycwoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgYnVpbGQgZml4OiBmc3MtPmZmcwoKMjAwNS0xMS0wNyAxODo1NCAgdGFuZGVycwoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICBmaXggdHlwbwoKMjAwNS0xMS0wNyAxODozNCAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICBmaXggdHlwb3MKCjIwMDUtMTEtMDcgMTM6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZHJvcCBkZWZhdWx0IHRpbWVvdXQgZG93biB0byBJTlRfTUFYLCBhbmQgZG9jdW1lbnQgd2h5CgoyMDA1LTExLTA3IDA5OjM5ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogTWFrZWZpbGUuaW4sIGZmcy5jLCBpZi5jLAogICAgIG1haW4uYywgbmV0c3RhdC5oLCByb3V0ZS5jOgoKICAgVHdlYWtzIHRvIHN1cHBvcnQgYnVpbGRpbmcgdW5kZXIgV2luZG93cwogICAgIChpbmNsdWRpbmcgcmVuYW1lZCAnZmZzKCknIHJvdXRpbmUsIHRha2VuIGZyb20gT3BlbkJTRCBzb3VyY2UgdHJlZSkKCjIwMDUtMTEtMDcgMDY6NDcgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIERpc3BsYXkgaW50ZXJmYWNlIGFkZHJlc3NpbmcgaW5mb3JtYXRpb24uCgoyMDA1LTExLTA3IDAxOjU3ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU3ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTYgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTYgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTYgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU2ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU2ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NSAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NSAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NSAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NCAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU0ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTEtMDcgMDE6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA1LTExLTA3IDAxOjQzICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9jb25maWcuMywKICAgICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3Jvd19tZXJnZS4zLAogICAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsCiAgICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF9zbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2FsYXJtLjMsIG5ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBuZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbmV0c25tcF9zdGFzaF9jYWNoZS4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTEtMDcgMDE6MzggIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTA3IDAxOjE0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgZG9uJ3QgdHJ5IHRvIHVzZSBhZ2VudCB2YXIgaW4gYmFzZSBsaWIgKGl0IHdhcyBsYXRlLCBvaz8pCgoyMDA1LTExLTA3IDAwOjE2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgYnJlYWsgb3V0IG9mIHdhaXRpbmcgbG9vcHMgaWYgISBydW5uaW5nCgoyMDA1LTExLTA2IDIyOjM0ICBhbGV4X2IKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAosIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzI6ICBNb3ZlIHVpbnQxNl90IGRlZmluaXRpb24gdG8gc3RhdGljIHdpbjMyIG5ldC1zbm1wLWNvbmZpZy5oCgoyMDA1LTExLTA2IDIxOjI3ICBhbGV4X2IKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLAogICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwKICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW4zMiBNU1ZDIGJ1aWxkIGZpeGVzCgoyMDA1LTExLTA1IDE4OjE5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgYnJlYWsgb3V0IG9mIGdldG5leHQgbG9vcCBpZiAhIHJ1bm5pbmcKCjIwMDUtMTEtMDUgMTc6NDYgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIG9ubHkgdXNlICJ1bGltaXQgLXYiIGluIGJhc2gKCjIwMDUtMTEtMDUgMTc6NDMgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMS0wNSAxNzoyNCAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGp1c3QgZXJyb3IgcmVnZXg6IGRvbid0IGZhaWwgb24gJmVudHJ5LT5zY2hlZExhc3RGYWlsZWQsICZmYWlsIGV0Yy4KCjIwMDUtMTEtMDUgMTc6MDkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICAtIGFsbG93IG92ZXItcmlkZSBvZiBOU0JfKERJU1R8RVhUUkEpX01PRFVMRVMKICAgLSByZW1vdmUgdGVzdGhhbmRsZXIgZnJvbSBFWFRSQSBtb2R1bGVzIChoYW5ncyBzbm1wd2FsaykKICAgLSBzZXQgU05NUF9UTVBESVJfQkFTRSAoZnV0dXJlIHVzZSkKCjIwMDUtMTEtMDUgMTc6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEknbGwgdGFrZSBteSBwb3J0IG51bWJlcnMgdW5zaWduZWQsIHBsZWFzZQoKMjAwNS0xMS0wNSAxNjo0MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgaW5jbHVkZSBuZXRpbmV0L3RjcF92YXIuaCwgaWYgYXZhaWxhYmxlCgoyMDA1LTExLTA1IDE2OjM4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBkZWxpYmVyYXRlbHkgaWdub3JlIHVsaW1pdCBmYWlsdXJlcwoKMjAwNS0xMS0wNSAxNjoxOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgcmVtb3ZlIHN5cy9zb2NrZXR2YXIuaCwgc2luY2UgbWliSUlfY29tbW9uLmggYWxyZWFkeSBoYXMgaXQKCjIwMDUtMTEtMDUgMTQ6NDMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIHN3aXRjaCBkaXNtYW4gbW9kdWxlIGxpc3QgYmFjayB0byBldmVudC1taWIgKHN0aWxsIHVzZXMgbmV3IGNvZGUpCiAgIC0gcmVtb3ZlIGV2ZW50IG1pYiBjb25mbGljdCBjaGVjayAoaGFuZGxlZCBieSBjb25maWdfZXhjbHVkZXMpCgoyMDA1LTExLTA1IDE0OjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LW1pYi5oOgoKICAgLSBjZW50cmFsaXplIGV2ZW50IG1pYiByZXF1aXJlcyBpbiBvcmlnaW5hbCBldmVudC1taWIuaAogICAtIGRlZmF1bHQgdG8gcmUtd3JpdGVzCiAgIC0gd2hpY2hldmVyIGltcGxlbWVudGF0aW9uIGlzIHNlbGVjdGVkLCBjb25maWdfZXhjbHVkZSB0aGUgb3RoZXIKCjIwMDUtMTEtMDUgMTQ6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQuaDoKCiAgIC0gY2VudHJhbGl6ZSBldmVudCBtaWIgcmVxdWlyZXMgaW4gb3JpZ2luYWwgZXZlbnQtbWliLmgKCjIwMDUtMTEtMDUgMTM6MTUgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICBmaXggb3B0UHJvYyBzaWduYXR1cmUKCjIwMDUtMTEtMDQgMTg6NDYgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgQnVpbGQgZml4OiBwcm90ZWN0ICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KCjIwMDUtMTEtMDQgMTM6MDUgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICByZW1vdmUgcmVkdW5kYW50IGluY2x1ZGUKCjIwMDUtMTEtMDQgMTM6MDUgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaDoKCiAgIGNoZWNrIGlmIHdlIGhhdmUgaGVhZGVyIGJlZm9yZSBpbmNsdWRpbmcgaXQKCjIwMDUtMTEtMDQgMTE6NTkgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBtYWluLmMsIG5ldHN0YXQuaDoKCiAgIE1vdmUgdGhlIG9wdGlvbiBmbGFnIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBpbnRvIGEgY29kZSBmaWxlLgoKMjAwNS0xMS0wNCAxMTo1MSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgUG9lcnRhYmlsaXR5IG9mICdzaW42X2xlbicgZmllbGQgaXMgdW5jbGVhcgogICAoYW5kIGl0IGRvZXNuJ3QgaW1tZWRpYXRlbHkgc2VlbSB0byBiZSBuZWVkZWQpCgoyMDA1LTExLTA0IDExOjQ0ICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0Lmg6CgogICBhZGQgdm9pZCB0byBlbXB0eSBwcm90b3R5cGUgcGFyYW0gbGlzdAoKMjAwNS0xMS0wNCAwOTo0NSAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBEZXRlY3QgKGFuZCByZWplY3QpIHVzZSBvZiBjb25mbGljdGluZyBFdmVudC1NSUIgaW1wbGVtZW50YXRpb25zLgoKMjAwNS0xMS0wNCAwNzo0MSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGluZXQ2LmMsIG1haW4uYywgbWFpbi5oLAogICAgIG5ldHN0YXQuaDoKCiAgIFByZWxpbWluYXJ5IGltcGxlbWVudGF0aW9uIG9mIElQdjYgc3VwcG9ydAoKMjAwNS0xMS0wNCAwNzozMSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICBQbHVnIG1pbm9yIG1lbW9yeSBsZWFrLgoKMjAwNS0xMS0wMyAyMDowMiAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvcGVybF9zbm1wdHJhcGQuaDoKCiAgIHVwZGF0ZSAuaCBmcm9tIHRoZSB0cmFwZC5oIGZpbGVzCgoyMDA1LTExLTAzIDE5OjU5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBtYWtlIHBlcmwgb25seSByZXF1aXJlIHRoZSBleGVjdXRlIGJpdAoKMjAwNS0xMS0wMyAxMTo1MiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIGFkanVzdCB0byBuZXcgc25tcG5ldHN0YXQgb3B0aW9ucwoKMjAwNS0xMS0wMyAxMTo0NyAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGluZXQ2LmMsIG1haW4uYywgcm91dGUuYzoKCiAgIEVuc3VyZSBJUHY2IGNvZGUgaXMgb21pdHRlZCAodW50aWwgaXQgY2FuIGJlIHByb3Blcmx5IHBvcnRlZC90ZXN0ZWQpCgoyMDA1LTExLTAzIDExOjQ2ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIE9taXQgcmVkdW5kZW50IGRlY2xhcmF0aW9ucy4KCjIwMDUtMTEtMDMgMTE6MjggIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgUmVtb3ZlIGNvZGUgZm9yIGRldGVybWluaW5nIFJQQyBzZXJ2aWNlIG5hbWVzCiAgIChub3QgcmVsZXZhbnQvYXBwcm9wcmlhdGUgZm9yIFNOTVAtYmFzZWQgcXVlcmllcykKCjIwMDUtMTEtMDMgMDg6NTggIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIEJldHRlciBoYW5kbGluZyBvZiBob3N0LXNwZWNpZmljIHJvdXRlcywgYW5kIGRpc3BsYXlpbmcgZ2F0ZXdheS9ob3N0IG5hbWVzLgoKMjAwNS0xMS0wMyAwNzoyMSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IG1haW4uYywgcm91dGUuYzoKCiAgIFJlLWltcGxlbWVudCByb3V0aW5nIHRhYmxlIGRpc3BsYXkgKGJhc2VkIG9uIE9wZW5CU0QgY29kZSkKCjIwMDUtMTEtMDMgMDc6MTkgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIEZpeCBwcm9ibGVtcyB3aXRoIHJlcGVhdGVkIGludGVyZmFjZSBkaXNwbGF5LgoKMjAwNS0xMS0wMiAxNjoyMSAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIG1vdmUgaW5jbHVkZSBhZnRlciBuZXQtc25tcC1pbmNsdWRlcy5oOyBmaXggZ2xvYmFsIHNlc3Npb24gbmFtZQoKMjAwNS0xMS0wMiAxMjowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguaDoKCiAgIHJlbW92ZSBib2d1cyBleHBlcmltZW50YWwgY29uZmlnIG1hY3JvCgoyMDA1LTExLTAyIDEyOjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd2F0Y2hlZC5oOgoKICAgYWRkIG1pc3Npbmcgc2VtaS1jb2xvbgoKMjAwNS0xMS0wMiAwOToyNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMsIGluZXQuYywgbWFpbi5jLAogICAgIG1haW4uaCwgbmV0c3RhdC5oOgoKICAgUHJlbGltaW5hcnkgcmUtaW1wbGVtZW50YXRpb24sIGJhc2VkIG9uIHJlLWRpc3RyaWJ1dGFibGUgT3BlbkJTRCBjb2RlLgogICAoTm90ZSB0aGF0IGlmLmMgZHJhd3MgaGVhdmlseSBvbiB0aGUgRnJlZUJTRCBpbnRlcmZhY2UgZGlzcGxheSBiZWhhdmlvdXIsCiAgICB3aGljaCBpcyBzb21ld2hhdCBkaWZmZXJlbnQgdG8gdGhlIE5ldC9PcGVuQlNEIGFwcHJvYWNoKQoKMjAwNS0xMS0wMiAwMTo1NiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1pbm9yIHdvcmQgdHdpZGRsZXMKCjIwMDUtMTEtMDIgMDE6NTAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIGZpeCBlbWJlZGRlZCBwZXJsIGFuZCBlbnN1cmUgY29tcGlsYXRpb24gZmFpbHVyZXMgaWYgdHVybmVkIG9uIGJ1dCBmdW5jdGlvbnMgbWlzc2luZwoKMjAwNS0xMS0wMSAxNToyNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBkb24ndCBhZGQgbm90aWZ5IG9iamVjdHMgdG8gdGhlIHNjYWxhciBsaXN0CgoyMDA1LTExLTAxIDA0OjAyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBtb3JlIHBvcnRhYmxlIHdheSBvZiBjYWxsaW5nIHVsaW1pdAoKMjAwNS0xMC0zMSAwNzo0MCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vc2Y1Lmg6CgogICBUcnU2NCBVbml4IDUuMSBidWlsZCBmaXg6IG1ha2Ugc3VyZSBVSU5UMzJfTUFYIGlzIGRlZmluZWQKCjIwMDUtMTAtMzEgMDY6MTEgIHRhbmRlcnMKCiAgICogZGlzdC86IG5zYi1uaWdodGx5LCBuc2ItcGFja2FnZToKCiAgIG1vcmUgcG9ydGFibGUgd2F5IG9mIGNhbGxpbmcgYmFzaAoKMjAwNS0xMC0zMSAwNTozNiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3RleHRfdXRpbHMuYzoKCiAgIFNvbGFyaXMgYnVpbGQgZml4OiBpbmNsdWRlIGxpbWl0cy5oIGZvciBbVV1MT05HX01BWCBhbmQgTE9OR19NSU4KCjIwMDUtMTAtMzEgMDQ6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDUtMTAtMzEgMDQ6MjcgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMKLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zCiwgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMwosIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX2NvbmZpZy4zLAogICAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfcm93X21lcmdlLjMsCiAgICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywKICAgICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3NubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX3NubXBfYWxhcm0uMywgbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsIG5ldHNubXBfc25tcF9wZHUuMywKICAgICBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNS0xMC0zMSAwNDoyNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTAtMzEgMDQ6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIHBhdGNoZXMgZnJvbSBhcHBsZQoKMjAwNS0xMC0zMSAwNDowMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjcuaCwKICAgICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgcGF0Y2hlcyBmcm9tIGFwcGxlCgoyMDA1LTEwLTMxIDA0OjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfZGFyd2luNy5jLAogICAgIG1lbW9yeV9kYXJ3aW43LmgsIHZtc3RhdF9kYXJ3aW43LmMsIHZtc3RhdF9kYXJ3aW43LmgKOgoKICAgbWVtb3J5L3Ztc3RhdHMgY29kZSBmcm9tIGFwcGxlCgoyMDA1LTEwLTMxIDAzOjQ4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2NvbnN0YW50cy5oCiwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmgKLCBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfcHJpdmF0ZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50Lmg6CgogICBmaXJzdCBwYXNzIGF0IHVkcEVuZHBvaW50VGFibGUKCjIwMDUtMTAtMzEgMDM6NDggIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIHNldCBjcHUgYW5kIG1lbW9yeSBsaW1pdHMgdG8gcHJldmVudCBtYWpvciBkYW1hZ2UsIGVzcGVjaWFsbHkgc2luY2Ugd2Ugbm93IGhhdmUgYSBmdWxsIHNubXB3YWxrIHRlc3QKCjIwMDUtMTAtMzAgMjM6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgcXVpZXQgY29tcGlsZXIKCjIwMDUtMTAtMzAgMjM6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOiBkYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXIKCjIwMDUtMTAtMzAgMjM6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIGNhbGN1bGF0ZSBwcmVmaXggb2lkIGFzIG5lZWRlZAoKMjAwNS0xMC0zMCAyMzoyNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIHJlbW92ZSBwcmVmaXggb2lkOyBhZGQgcHJlZml4IGxlbgoKMjAwNS0xMC0zMCAyMzoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmM6CgogICByZW1vdmUgcHJlZml4IG9pZAoKMjAwNS0xMC0zMCAyMzoyNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICAtIGdldCByaWQgb2YgcHJlZml4IG9pZAogICAtIGFkZCBwcmVmaXggbGVuCiAgIC0gYWRkIHByZWZpeCBmdW5jdGlvbiBwcm90b3R5cGVzCgoyMDA1LTEwLTMwIDIyOjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYzoKCiAgIC0gZG9uJ3QgdXNlIHRlc3QgY29ycmVjdCBmbGFnIGJpdAogICAtIGFkZCBwcmVmaXggdXRpbGl0eSByb3V0aW5lcwoKMjAwNS0xMC0zMCAyMjo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBhZGQgYWNjZXNzIHRvIGNvbnRhaW5lcgoKMjAwNS0xMC0zMCAyMjo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIGRvIG5vdCB1c2UgaW5pdCBmbGFnIHdpdGggbG9hZCByb3V0aW5lCgoyMDA1LTEwLTMwIDIyOjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgLSByZW1vdmUgaW5ldDYgY29kZSwgc2luY2UgdGhlcmUgd2UgYXJlbid0IHVzaW5nIGlwdjYgaW9jdGxzCiAgIC0gYWRkIHByZWZpeCBsZW4KCjIwMDUtMTAtMzAgMjI6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOiBpcEFkZHJlc3NUYWJsZS5oLAogICAgIGlwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmg6CgogICBtb3ZlIGRldGFpbGVkIGNvbmZpZ19yZXF1aXJlIG1hY3JvcyBkb3duIGEgbGV2ZWwKCjIwMDUtMTAtMzAgMjI6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jOgoKICAgdXNlIG5ldyB1dGlsIGZ1bmMgdG8gY2FsY3VsYXRlIHByZWZpeCBsZW4KCjIwMDUtMTAtMzAgMjI6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBvbmx5IGNoZWNrIGRpcnR5IGZsYWcgZm9yIHdyaXRhYmxlIHRhYmxlcwoKMjAwNS0xMC0zMCAyMjozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS86CiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGUuYywgaXBBZGRyZXNzUHJlZml4VGFibGUuaCwKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmg6CgogICBpbml0aWFsIHBhc3MgYXQgaXBBZGRyZXNzUHJlZml4VGFibGUKCjIwMDUtMTAtMzAgMTU6NDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBuZXcgbmV0c25tcF9jdmFsdWUgdW5pb24KCjIwMDUtMTAtMzAgMTU6NDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdGV4dF91dGlscy5oLCBzbm1wbGliL3RleHRfdXRpbHMuYwo6CgogICBtb3JlIG5ldyB1dGlsaXR5IGZ1bmN0aW9ucwoKMjAwNS0xMC0zMCAxNDowMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9maWxlX3V0aWxzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RleHRfdXRpbHMuaCwgc25tcGxpYi9NYWtlZmlsZS5pbgosIHNubXBsaWIvZmlsZV91dGlscy5jLCBzbm1wbGliL3RleHRfdXRpbHMuYzoKCiAgIG5ldyB1dGlsIGZpbGVzCgoyMDA1LTEwLTMwIDEzOjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgc3VwcG9ydCBmb3IgdW5zb3J0ZWQgZmxhZwoKMjAwNS0xMC0zMCAxMzo0OCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICAtIGFkZCBjb21wYXJlIGZ1bmN0aW9uIHB0ciB0byBjb250YWluZXIgdHlwZSBzdHJ1Y3QKICAgLSBzZXQgY29tcGFyZSBmdW5jIGZyb20gY29udGFpbmVyIHR5cGUgc3RydWN0CiAgIC0gcmVnaXN0ZXIgc29tZSBzdHJpbmcgY29tcGFyZSBiYXNlZCBiaW5hcnkgYXJyYXkgdHlwZXMKCjIwMDUtMTAtMzAgMTM6NDYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICAtIG5ldyBjb250YWluZXIgcmVnaXN0ZXIgd2l0aCBjb21wYXJlIHByb3RvdHlwZQogICAtIGFkZCB1bnNvcnRlZCBjb250YWluZXIgZmxhZwogICAtIGZpeCBjb250YWluZXIgb3B0aW9ucyBtYWNyb3MKICAgICAtIGFkZCByYyBwYXJhbQogICAgIC0gbWlzc2luZyB9CgoyMDA1LTEwLTI5IDE4OjEyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQ6CgogICB0ZXN0IGNoYW5nZSBhbmQgdXNhZ2Ugb2YgbG9jYWxpemVkIGtleXMKCjIwMDUtMTAtMjkgMTc6MjkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlOgoKICAgaW50cm9kdWNlIHNubXB0cmFwZCB0cmFwaGFuZGxlIHRlc3QKCjIwMDUtMTAtMjkgMTU6NTggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMjAwc25tcHYyY3dhbGthbGw6CgogICBJbnRyb2R1Y2UgZnVsbCBzbm1wd2FsayB0ZXN0LiBOZWVkcyBhIHNpZ25pZmljYW50IGFtb3VudCBvZiBDUFUgY3ljbGVzLCBidXQgd2lsbCBjYXRjaCBpbXBvcnRhbnQgaXNzdWVzIGxpa2Ugd2hlbiBhIHNpbXBsZSB3YWxrIGNyYXNoZXMvaGFuZ3MgdGhlIGFnZW50LgoKMjAwNS0xMC0yOSAwODoxNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogZGF0YV9zZXQuaCwgZGVsYXllZF9pbnN0YW5jZS5oCiwgZXhhbXBsZS5oLCBuZXRTbm1wSG9zdHNUYWJsZS5oLAogICAgIG5ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5oLCBuZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5oCiwgbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnNfbG9jYWwuaCwgbm90aWZpY2F0aW9uLmgKLCBzY2FsYXJfaW50LmgsIHVjZERlbW9QdWJsaWMuaDoKCiAgIGFkZCBtaXNzaW5nIGhlYWRlciBwcm90ZWN0IGFuZC9vciBjcGx1c3BsdXMgaWZkZWZzCgoyMDA1LTEwLTI5IDA4OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd2F0Y2hlZC5oOgoKICAgYWRkIG1pc3NpbmcgaGVhZGVyIGZvciB3YXRjaGVkLmgKCjIwMDUtMTAtMjggMjM6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwLmg6CgogICAtIHJlbW92ZSBleHRyYSA7CiAgIC0gZml4IHR5cG8gaW4gY29uZmlndXJlIG1hY3JvCgoyMDA1LTEwLTI4IDIzOjMwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgaW50ZXJmYWNlX2lvY3RsLmg6CgogICByZWR1Y2Ugc2NvcGUgb2YgaW9jdGwgdmVyc2lvbiBjaGVja2luZyB0byB2NCBvbmx5IChubyBpcHY2IGlvY3RscykKCjIwMDUtMTAtMjggMjM6MjcgIHJzdG9yeQoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaAo6CgogICBjb3JyZWN0IGN1dC1uLXBhc3RlIGVycm9yIGluIHByb3RvdHlwZQoKMjAwNS0xMC0yOCAyMzoyNiAgcnN0b3J5CgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIHlhbmsgbW9yZSBjb2RlIHdoaWNoIGlzIHVudXNlZCBkdWUgdG8gY29udGFpbmVyIHNoYXJpbmcKCjIwMDUtMTAtMjggMjM6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5oCjoKCiAgIHVwZGF0ZSBmb3IgY2hhbmdlZCBpZmVudHJ5IHZhciBuYW1lcwoKMjAwNS0xMC0yOCAyMzoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmMKOgoKICAgc2tpcCB2YXJzIHRoYXQgZG8gbm90IGhhdmUgaWZlbnRyeSBmbGFnIHNldAoKMjAwNS0xMC0yOCAyMzoyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIC0gYWRkIG1pc3NpbmcgZmxhZ3MgcGFyYW0gdG8gYXJjaCBjb250YWluZXIgbG9hZAogICAtIHN1cHBvcnQgZm9yIGlwdig0fDYpIG9ubHkgbG9hZCBmbGFnCiAgIC0gdHJ5IHRvIGxvYWQgaXB2NiBldmVuIGlmIGlwdjQgZmFpbHMKCjIwMDUtMTAtMjggMjM6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jOgoKICAgcGFzcyBjb3JyZWN0IGZsYWdzIHRvIGNvbnRhaW5lciBpbml0IGR1cmluZyBsb2FkCgoyMDA1LTEwLTI4IDIzOjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgdHdlYWtzIGFuZCBzdXBwb3J0IGZvciBpcHY2SW50ZXJmYWNlVGFibGUKCjIwMDUtMTAtMjggMjM6MTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oOgoKICAgbmV3IGxvYWQgZmxhZ3MKCjIwMDUtMTAtMjggMjM6MTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgYWRkIGluc2VydCBmaWx0ZXJpbmcKCjIwMDUtMTAtMjggMjM6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gcmVkdWNlIGRlcGVuZGVuY3kgbGlzdCBvbiBzbm1wX3ZhcnMubG8gdG8gYWdlbnRfbW9kdWxlX2xpc3RfaAogICAtIGFkZCBtaWJfbW9kdWxlX2xpc3RfaCBhcyBkZXAgZm9yIG1pYl9tb2R1bGVzLmxvCiAgIC0gZG9jdW1lbnQgd2h5IHJlYWRfY29uZi5sbyBkZXBzIGFyZSBoZXJlIGFuZCBub3QgaW4gc25tcGxpYi9NYWtlZmlsZS5pbgoKMjAwNS0xMC0yOCAyMzowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvOiBpcHY2SW50ZXJmYWNlVGFibGUuYwosIGlwdjZJbnRlcmZhY2VUYWJsZS5oLCBpcHY2SW50ZXJmYWNlVGFibGVfY29uc3RhbnRzLmgKLCBpcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgaW1wbGVtZW50IGlwdjZJbnRlcmZhY2VUYWJsZQoKMjAwNS0xMC0yOCAyMzowMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGFkZCBzaHV0ZG93biBwcm90b3R5cGUKCjIwMDUtMTAtMjggMTg6MzggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgcG9ydGFibGUgd2F5IG9mIGV4cG9ydGluZyBTTk1QQ09ORlBBVEgKCjIwMDUtMTAtMjggMTc6MjggIGJzaGF3NjY2CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIGxvZ2ljIGNoYW5nZSBvbiBnZXRLc3RhdEludAoKMjAwNS0xMC0yOCAxNjowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIHJlbW92ZSA7IGZyb20gY29uZmlnX3JlcXVpcmUgbWFjcm9zCgoyMDA1LTEwLTI4IDE1OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jOgoKICAgLSBtb3ZlIGxvY2FsIGluY2x1ZGUgd2l0aCBvdGhlciBsb2NhbCBpbmNsdWRlcwogICAtIGlmZGVmIHByb3B0eXBlcyB0aGF0IHdvbid0IGJlIGRlZmluZWQgZm9yIE5PQVJDSCBjYXNlCgoyMDA1LTEwLTI4IDE1OjQwICBic2hhdzY2NgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmM6CgogICBmb3Jnb3QgdGhlIGluY2x1ZGUgZm9yIHNvbWUgbmV0c25tcF9hcmNoX2ludGVyZmFjZSBzdHVmZgoKMjAwNS0xMC0yOCAxNDo0OSAgYnNoYXc2NjYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmM6CgogICB5b3UgY2FuJ3Qgbm90IGRlY2xhcmUgSFJOX2luZGV4IGZvciBzb2xhcmlzIHRoZW4gZXhwZWN0IGl0IHRvIHJldHVybiBhIGZldyBsaW5lcyBsYXRlcgoKMjAwNS0xMC0yOCAxNDoyMCAgYnNoYXc2NjYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIGl0J3MgdWludDE2X3Qgbm90IHVfaW50MTZfdAoKMjAwNS0xMC0yOCAxMjo1NSAgdGFuZGVycwoKICAgKiBtYW4vc25tcHVzbS4xLmRlZjoKCiAgIHVwZGF0ZSBvbiAtQ0UgYW5kIC1DawoKMjAwNS0xMC0yOCAxMjozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaDoKCiAgIHJlbW92ZSBhY2NpZGVudGFsIGNoZWNraW4gb2YgdW5pbXBsZW1lbnRlZCBjb25maWcgbWFjcm8KCjIwMDUtMTAtMjggMTI6MzEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMC0yOCAxMjozMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBuZXcgYXJndW1lbnQgdG8gdHVybiBvbiBkZWJ1ZyBkdXJpbmcgbWliIG1vZHVsZSBwcm9jZXNzaW5nCgoyMDA1LTEwLTI4IDEyOjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5oOgoKICAgcmVxdWlyZSBtaWJJSS9pZlRhYmxlIGluc3RlYWQgb2YgbWliSUkvaW50ZXJmYWNlcwoKMjAwNS0xMC0yOCAxMjoxMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIC0gcmVuYW1lL3JldmFtcCBpbnRlcmZhY2UgY291bnQgZnVuY3Rpb24KICAgICAtIGFsbG9jYXRlIGxvY2FsIGlmY29uZiBpZiBjYWxsZWQgZGlkbid0IHBhc3Mgb24KICAgICAtIGRvY3VtZW50IHRoYXQgZnVuY3Rpb24gYWxsb2NhdGVzIG1lbW9yeSB0aGF0IGNhbGxlciBtdXN0IHJlbGVhc2UgaWYKICAgICAgIHRoZXkgcGFzcyBpbiB0aGVpciBvd24gaWZjb25mIHBvaW50ZXIKCjIwMDUtMTAtMjggMTI6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaDoKCiAgIC0gcmVtb3ZlICc7JyBmb3JtIGNvbmZpZ18qIG1hY3JvcwogICAtIGNvbmZpZ19yZXF1aXJlIGlmVGFibGUsIGluY2x1ZGUgaWZUYWJsZSBoZWFkZXIKCjIwMDUtMTAtMjggMTI6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIGNhbGwgaWZUYWJsZSBpbml0IHRvIG1hbmFnZSBpZlhUYWJsZSBpbml0CgoyMDA1LTEwLTI4IDEyOjAzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSBhZGQgY2FsbHMgdG8gaXB2KDR8NikgaW50ZXJmYWNlIHRhYmxlcyB3aGVuIHVwZGF0aW5nIHJvd3MKICAgLSBjb3JyZWN0IGlmVGFibGVMYXN0Q2hhbmdlIGJlaGF2aW91ciB0byBjb21wbHkgd2l0aCBvYmplY3QgZGVmaW5pdGlvbgogICAtIGNsYXJpZnkgc29tZSBjb21tZW50cwogICAtIGFkZCBhc3NlcnQgdG8gbm90aWZ5IHVzIHdoZW4vaWYgYW5kIG9zIHRyYWNrcyBsYXN0IGNoYW5nZWQgb24gaXQncyBvd24KCjIwMDUtMTAtMjggMTI6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmg6CgogICAtIGZpeCBjb25maWdfcmVxdWlyZSBtYWNyb3MKICAgLSBhZGQgcmVxdWlyZSBmb3IgZGF0YV9hY2Nlc3MvaW50ZXJmYWNlCiAgIC0gcmVtb3ZlIGxhc3QgY2hhbmdlIGZyb20gZGF0YSBjb250ZXh0LCB1c2UgaWZlbnRyeSB2ZXJzaW9uIGluc3RlYWQKCjIwMDUtMTAtMjggMTE6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICAtIG1ha2UgaW5pdF9pZlRhYmxlIHRoZSBjb21tb24gaW5pdCBmdW5jdGlvbiBmb3IgaW50ZXJmYWNlIG1vZHVsZXMKICAgICAtIHByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZSBjYWxscwogICAgIC0gcHJvcGVyIGluaXQgZnVuY3Rpb24gY2FsbHMgZm9yIGlwdig0fDYpSW50ZXJmYWNlVGFibGUvaWZYVGFibGUKCjIwMDUtMTAtMjggMTE6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtIG1vdmUgc3RhdHMgcGFyc2luZyB0byBpdCdzIG93biBmdW5jdGlvbgogICAtIHN1cHBvcnQgbmV3IGxvYWQgZmxhZ3M6IGlwdjQgb25seSwgbm8gc3RhdHMKICAgLSBhZGQgKGhhcmRjb2RlZCByZWFzbV9tYXgpCiAgIC0gZ2V0IGFycCByZXRyYW5zbWl0IHRpbWUgZnJvbSAvcHJvYwoKMjAwNS0xMC0yOCAxMTo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuaDoKCiAgIGFkZCBjb25maWdfcmVxdWlyZSBvZiBkYXRhX2FjY2Vzcy9pcGFkZHJlc3MKCjIwMDUtMTAtMjggMTE6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6CgogICBuZXcgZnVuY3Rpb24gdG8gY2hlY2sgYW4gaW50ZXJmYWNlIGZvciBpcHYoNHw2KSBpcCBhZGRyZXNzZXMKCjIwMDUtMTAtMjggMTE6NDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSBhZGQgd2FybmluZ3MgdG8gdXBkYXRlIGZ1bmN0aW9ucyB3aGVuIGFkZGluZy9kZWxldGluZyBzdHVjdCBtZW1iZXJzCiAgIC0gbWFrZSBmbGFncyBmaWVsZCB1bnNpZ25lZAogICAtIHVuc2lnbmVkIGludCAtPiB1X2ludAogICAtIGFkZCBmaWVsZHMgZm9yIGlwdjRJbnRlcmZhY2VUYWJsZQogICAtIGZpeCBvc19mbGFncyBjb21tZW50CiAgIC0gbmV3IG5zX2ZsYWdzIGRlZmluZXMgZm9yIGlwdig0fDYpSW50ZXJmYWNlVGFibGUKICAgLSBuZXcgbG9hZCBmbGFncyBkZWZpbmVzCgoyMDA1LTEwLTI4IDExOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIHJlbmFtZSB0byBpbnRlcmZhY2UuYwoKMjAwNS0xMC0yOCAxMTozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYzoKCiAgIHJlbmFtZSBpbnRlcmZhY2VfY29tbW9uLmMgdG8gaW50ZXJmYWNlLmMgdG8gZWFzeSBjb25maWd1cmUgcHJvY2Vzc2luZwoKMjAwNS0xMC0yOCAxMTozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICAtIHJldmVydCB0byBwcmV2aW91cyBiZWhhdmlvciBvZiBpZkRlc2NyID0gaW50ZXJmYWNlIG5hbWUKICAgLSBhZGQgbmV3L21pc3Npbmcgc3RydWN0dXJlIG1lbWJlcnMgdG8gaW50ZXJmYWNlIGNvcHkgcm91dGluZQogICAtIHJlbmFtZSBpbml0IGZ1bmN0aW9uIGZvciBwZW5kaW5nIGZpbGUgcmVuYW1lCgoyMDA1LTEwLTI4IDExOjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS5oLCBpZi1taWIvaWZYVGFibGUuaCwKICAgICBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5oLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS5oLCBpcC1taWIvaXBBZGRyZXNzVGFibGUuaAosIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUuaCwgaXAtbWliL2lwX3NjYWxhcnMuaAosIGlwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwKICAgICBpcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmgsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5oLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2NvbW1vbi5oLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmgKLCB0Y3AtbWliL3RjcENvbm5UYWJsZS5oLCB0Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS5oCiwgdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmgsCiAgICAgdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmgsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuaDoKCiAgIC0gbW9zdGx5IHJlbW92aW5nIGV4dHJhbmVvdXMgJzsnIG9uIGNvbmZpZ18qIG1hY3JvcwogICAtIGEgZmV3IHR3ZWFrIGNvbmZpZ18qIG1hY3JvcwoKMjAwNS0xMC0yOCAxMToxOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTEwLTI4IDExOjE3ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBjaGVjayBmb3IgcHJvZ3JhbSAnZmluZCcKICAgLSBvbmx5IGFkZCBoZWFkZXIgdG8gKGFnZW50fG1pYilfbW9kdWxlX2luY2x1ZGVzLmggaWYgaW5pdC9zaHV0ZG93biBmb3VuZAoKMjAwNS0xMC0yOCAxMDoyNiAgdGFuZGVycwoKICAgKiBkaXN0LzogUkVBRE1FLmJ1aWxkLXNjcmlwdHMsIG5zYi1uaWdodGx5LAogICAgIG5zYi1wYWNrYWdlOgoKICAgZml4IHR5cG8KCjIwMDUtMTAtMjggMDk6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlLzogaXB2NEludGVyZmFjZVRhYmxlLmMKLCBpcHY0SW50ZXJmYWNlVGFibGUuaCwgaXB2NEludGVyZmFjZVRhYmxlX2NvbnN0YW50cy5oCiwgaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBpcHY0SW50ZXJmYWNlVGFibGVfc3ViYWdlbnQuYzoKCiAgIGltcGxlbWVudCBpcHY0SW50ZXJmYWNlVGFibGUKCjIwMDUtMTAtMjggMDg6MTMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBtYWtlIHN1cmUgc25tcG5ldHN0YXQgY2FuIGJlIGV4ZWN1dGVkOyBza2lwIG90aGVyd2lzZQoKMjAwNS0xMC0yNyAwNTo0MiAgZHRzMTIKCiAgICogc25tcGxpYi86IGdldG9wdC5jLCBzdHJ0b2wuYywgc3RydG91bC5jOgoKICAgUmVtb3ZlIFVDQiBhZHZlcnRpc2luZyBjbGF1c2UgKHJlc2NpbmRlZCAyMiBKdWx5IDE5OTkpCgoyMDA1LTEwLTI3IDA1OjM4ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBtYW4vc25tcG5ldHN0YXQuMS5kZWY6CgogICBVcGRhdGUgQlNEIGNvcHlyaWdodCBsaWNlbnNlIHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbi4KCjIwMDUtMTAtMjYgMTg6NTQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBhZGQgc2ltcGxlIHRlc3QgZm9yIHNubXBuZXRzdGF0IHRvIHZlcmlmeSB0aGUgdXBjb21pbmcgcmV3cml0ZQoKMjAwNS0xMC0yNiAxODozNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBza2lwIG9uIERJU0FCTEVfU0VUX1NVUFBPUlQKCjIwMDUtMTAtMjYgMTc6NDcgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLjguZGVmOgoKICAgZG9jdW1lbnQgZ2VuZXJpYyAtLTxuYW1lPj08dmFsdWU+IGNvbW1hbmQtbGluZSBvcHRpb24KCjIwMDUtMTAtMjYgMTc6MjIgIHRhbmRlcnMKCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIGRvY3VtZW50IGdlbmVyaWMgLS08bmFtZT49PHZhbHVlPiBjb21tYW5kLWxpbmUgb3B0aW9uCgoyMDA1LTEwLTI2IDEzOjE1ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgYWxsb3dzIHRvIHVzZSBvbGQgYW5kL29yIG5ldyBsb2NhbGl6ZWQga2V5IGluc3RlYWQgb2YgcGFzcy1waHJhc2Ugd2l0aCAtQ2sKCjIwMDUtMTAtMjYgMTI6MjYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgbWFqb3IgcmV3cml0ZTogYWRkcyBtb3JlIHRlc3RzIGFuZCB1c2VzIG5ldyBTdjN1c21jb25maWcqCgoyMDA1LTEwLTI2IDEyOjIzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYmFzZToKCiAgIGZpeCBzb21lIHZhcmlhYmxlIG5hbWVzCgoyMDA1LTEwLTI2IDA4OjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgcmVtb3ZlIHBhdGNoIGZsdWIKCjIwMDUtMTAtMjYgMDc6MDcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgRXh0cmEgZGVidWdnaW5nIHRvIGhlbHAgZGlzdGluZ3Vpc2ggYmV0d2VlbiBkaWZmZXJlbnQgY2FjaGUgdGltZXJzLgoKMjAwNS0xMC0yNiAwNzowMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9nZW5lcmljLmM6CgogICBTbGlnaHQgcmV0aGluayBhYm91dCBob3cgdG8gaGFuZGxlIHRoZSByZW1vdmFsIG9mIGEgTUlCIHJlZ2lzdHJhdGlvbi4KICAgKFRoaXMgaXMgZGVmaW5pdGVseSBvbmUgZm9yIDUuNCwgbWV0aGlua3MhKQoKMjAwNS0xMC0yNiAwNjo1NyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9nZW5lcmljLmM6CgogICBNaW5vciB0d2Vha3MgdG8gZ2VuZXJpYyB0YWJsZSBBUEkgcm91dGluZSBuYW1lcy4KCjIwMDUtMTAtMjYgMDY6NTYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c0NvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEVycm9yVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbkNvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3QuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBWYWx1ZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX3RkYXRhLmg6CgogICBCcmluZyAndGRhdGEnIHJvdXRpbmUgbmFtZXMgaW50byBsaW5lIHdpdGggdGhlIHByb3Bvc2VkIHRhYmxlIEFQSQoKMjAwNS0xMC0yNiAwNjoyMCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYzoKCiAgIGZpeCBjb21waWxlIGVycm9yIGR1ZSB0byB3cm9uZyBocHV4MTEgdGVzdAoKMjAwNS0xMC0yNiAwNTo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBNb3ZlIHJlZ2lzdHJhdGlvbiBvZiBzdGFuZGFyZCB2aWV3cyBzbyB0aGF0IHRoZXkncmUgcGlja2VkIHVwCiAgIGJ5IGJvdGggYWdlbnQgYW5kIHRyYXAgaGFuZGxlciBpbml0aWFsaXNhdGlvbi4KICAgQ2xhcmlmeSB3aGljaCBpbml0aWFsaXNhdGlvbiByb3V0aW5lcyBhcmUgY2FsbGVkIGJ5IHdoaWNoIGFwcHMuCgoyMDA1LTEwLTI1IDE5OjA4ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgdGVtcG9yYXJ5IHdvcmthcm91bmQgYXMgc3VnZ2VzdGVkIGJ5IERhdmUgdG8gZ2V0IHNubXB0cmFwZCB3b3JraW5nIGFnYWluCgoyMDA1LTEwLTI1IDE5OjA1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIC0gbmFycm93IHNjb3BlIG9mIGFzc2VydCB0ZXN0CiAgIC0gZml4IG1pbm9yIG1lbW9yeSBsZWFrCgoyMDA1LTEwLTI1IDE2OjU2ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTAtMjUgMTY6NTUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggdGVzdHMgZm9yIGVtcHR5IHZhciBjYXNlCgoyMDA1LTEwLTI1IDEyOjQxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybToKCiAgIC4uLiBhbmQgc2F5IHNvLgoKMjAwNS0xMC0yNSAxMjo0MCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm06CgogICBjbGFyaWZ5IGFzIGJlaW5nIGEgbm9BdXRoTm9Qcml2IHRlc3QKCjIwMDUtMTAtMjUgMTE6NTkgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggT3BlbkJTRCAzLjQgInByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgd2FybmluZzogc3lzL3N3YXAuaCBuZWVkcyBzeXMvcGFyYW0uaCBmb3IgTUFYUEFUSExFTgoKMjAwNS0xMC0yNSAxMTo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHJlbW92ZSBNRkRfUkVXUklURSBkZWZpbmUgdGVzdHMKCjIwMDUtMTAtMjUgMTE6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICAtIGNvbW1lbnQgZm9ybWF0dGluZwogICAtIGNvbmZpZ19leGNsdWRlIGlmLW1pYi9pZlRhYmxlL2lmVGFibGUKCjIwMDUtMTAtMjUgMTE6NDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBhZGQgSVRFUkFUT1JfUkVMRUFTRSBtYWNybwoKMjAwNS0xMC0yNSAwODozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX2NvbmYuYywgdmFjbV9jb25mLmg6CgogICBBbHRlcm5hdGl2ZSB2aWV3dHlwZS1iYXNlZCBhY2Nlc3MgY29uZmlndXJhdGlvbiBkaXJlY3RpdmUgKCJhdXRoYWNjZXNzIikuCiAgIFNpbWlsYXIgdG8gInNldGFjY2VzcyIsIGJ1dCBjbG9zZXIgaW4gZmVlbCB0byB0aGUgb3RoZXIgYXV0aCogZGlyZWN0aXZlcy4KICAgVGhpcyBhbHNvIGFsbG93cyB0aGUgc2VjdXJpdHkgbW9kZWwsIGxldmVsIGFuZCBjb250ZXh0IGluZm9ybWF0aW9uIHRvIGJlCiAgIG9taXR0ZWQgKGRlZmF1bHRpbmcgdG8gc2Vuc2libGUgdmFsdWVzKS4KCjIwMDUtMTAtMjUgMDg6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgQXJnZ2doaGhoISEhICBJZiB5b3UndmUgZ290IGNvZGUgdGhhdCB3b3JrcywgZG9uJ3QgY2hhbmdlIGl0IGJlZm9yZSBjb21taXR0aW5nIGl0LgogICBJZiB5b3UgKm11c3QqIGNoYW5nZSBpdCwgdGhlbiBhdCBsZWFzdCBoYXZlIHRoZSBndW1wdGlvbiB0byB0ZXN0IGl0IGFnYWluIGZpcnN0IQogICA8aGVhdnkgc2lnaD4KCjIwMDUtMTAtMjUgMDg6MDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgVGVsbCB5b3Ugd2hhdCwgRGF2ZS4gIFdoeSBkb24ndCB5b3UgdHJ5IGNvbW1pdHRpbmcgdGhlIGNvZGUgZm9yIHRoZQogICAiYXV0aGdyb3VwIiBkaXJlY3RpdmUgLSByYXRoZXIgdGhhbiBqdXN0IHRoZSBoZWFkZXIgZmlsZT8KICAgPHNpZ2g+CiAgIFlvdSBqdXN0IGNhbid0IGdldCB0aGUgc3RhZmYgdGhlc2UgZGF5cy4KCjIwMDUtMTAtMjUgMDc6NTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5oOgoKICAgRGlyZWN0aXZlIHRvIHN1cHBvcnQgdmlld3R5cGUtYmFzZWQgY29uZmlndXJhdGlvbiBvZiBncm91cHMgKCJhdXRoZ3JvdXAiKQoKMjAwNS0xMC0yNSAwNzo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBBbGxvdyBjb21tdW5pdHktYmFzZWQgZGlyZWN0aXZlcyAoYXV0aGNvbW11bml0eSwgZXRjKSB0byBzcGVjaWZ5CiAgIGEgcGFydGljdWxhciBTTk1QIHZlcnNpb24gKHYxLW9ubHkgb3IgdjJjLW9ubHkpCgoyMDA1LTEwLTI1IDA3OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIFN1cHBvcnQgc2ltcGxlIGFjY2VzcyBkaXJlY3RpdmVzIGNvbmZpZ3VyZWQgd2l0aCBuYW1lZCB2aWV3cyAoLVYpCiAgIGFzIHdlbGwgYXMgT0lEIHN1YnRyZWVzLgoKMjAwNS0xMC0yNSAwNzo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX2NvbmYuYywgdmFjbV9jb25mLmg6CgogICBEZWZpbmUgInN0YW5kYXJkIiB2aWV3cyAoYWxsIG9yIG5vdGhpbmcpCgoyMDA1LTEwLTI1IDA3OjM5ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgV29yayB3aXRoIHRoZSBhY3RpdmUgcm9vdCBvZiB0aGUgTUlCIHRyZWUgKHJhdGhlciB0aGFuIHRoZSBiYWNrd2FyZAogICBjb21wYXRpYmlsaXR5IHZlcnNpb24pLiAgVGhpcyBhbGxvd3MgJ3JlYWRfb2JqaWQnIHRvIHdvcmsgY29ycmVjdGx5CiAgICh3aXRoIG51bWVyaWMgT0lEcykgYmVmb3JlIHRoZSBNSUIgZmlsZXMgYXJlIGxvYWRlZC4KCjIwMDUtMTAtMjQgMTk6MzEgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdDoKCiAgIHJld29ya2VkIHRvIHVzZSBuZXcgU3YzdXNtY29uZmlnKiBmcmFtZXdvcmsKCjIwMDUtMTAtMjQgMTk6MzAgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNDlzbm1wdjNpbmZvcm1hdXRoLCBUMDQ5c25tcHYzaW5mb3JtcHJpdgo6CgogICBTTk1QdjMgYXV0aE5vUHJpdi9hdXRoUHJpdiBJTkZPUk0gdGVzdHMgYmFzZWQgb24gbmV3IFN2M3VzbWNvbmZpZyoKCjIwMDUtMTAtMjQgMTk6MjcgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M3VzbWNvbmZpZ2FnZW50LCBTdjN1c21jb25maWdiYXNlLAogICAgIFN2M3VzbWNvbmZpZ3RyYXBkOgoKICAgcmV3cml0dGVuIFNOTVB2MyBVU00gY29uZmlnOiBiYXNpYywgYWdlbnQsIHRyYXBkCgoyMDA1LTEwLTI0IDE5OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIEZpeCBmb3IgY29tcGlsYXRpb24gaXNzdWVzOgogICAgIC0gcmVhcnJhbmdlIGZ1bmN0aW9uIG9yZGVyIHRvIGdldCBwcm9wZXIgcHJvdG90eXBlIG9yZGVyaW5nIHdpdGhvdXQKICAgICAgIHByb3RvdHlwZXMuCiAgICAgLSBSZW1vdmVkIGRhdGEgdHlwZSBmb3IgYSB2YXJpYWJsZSBuYW1lIHRoYXQgd2FzIGdldHRpbmcgcGFzc2VkIGluCiAgICAgICBhcyB3ZWxsLgoKMjAwNS0xMC0yNCAxODo0MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICB1c2UgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2luZGV4X2ZpbmQgaW5zdGVhZCBvZiBJbnRlcmZhY2VfSW5kZXhfQnlfTmFtZQoKMjAwNS0xMC0yNCAxODozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmM6CgogICByZW1vdmUgTUZEX1JFV1JJVEUgY2hlY2ssIHVzZSBVU0lOR19NSUJJSV9JTlRFUkZBQ0VTX01PRFVMRSBpbnN0ZWFkCgoyMDA1LTEwLTI0IDE4OjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oOgoKICAgY29uZmlnX2V4Y2x1ZGUgbWliSUkvaW50ZXJmYWNlcwoKMjAwNS0xMC0yNCAxODozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICAtIHJlcXVpcmUgbmV3IG1pYklJL2lmVGFibGUgaW5zdGVhZCBvZiBtaWJJSS9pbnRlcmZhY2VzCiAgIC0gcmVtb3ZlIE1GRF9SRVdSSVRFIGNoZWNrCiAgIC0gY29uc29saWRhdGUgbGludXggcmVxdWlyZXMgdG8gb25lIGxpbmUKCjIwMDUtMTAtMjQgMTg6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYzoKCiAgIGZpeCBpZkluZGV4IG1pcy1tYXRjaCAoYWRkIHN1cHBvcnQgZm9yIG5ldHNubXBfaW50ZXJmYWNlX2VudHJ5KQoKMjAwNS0xMC0yNCAxODozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5oOgoKICAgLSByZXF1aXJlIG5ldyBtaWJJSS9pZlRhYmxlIGluc3RlYWQgb2YgbWliSUkvaW50ZXJmYWNlcwogICAtIHJlcXVpcmUgaG9zdC9ocl9kZXZpY2UgdG9vLCBzaW5jZSBpdCBkZWNsYXJlcyBnbG9iYWxzIHdlIG5lZWQKCjIwMDUtMTAtMjQgMTg6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgLSBpbXBsZW1lbnQgYmFja3dhcmRzIGNvbXBhdGFiaWxpdHkgZnVuY3Rpb25zIEludGVyZmFjZV9TY2FuXyhJbml0fE5leHQpIHNvCiAgICAgYWxsIG1vZHVsZXMgY2FuIGFncmVlIG9uIGlmSW5kZXggdmFsdWVzCgoyMDA1LTEwLTI0IDE3OjUyICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmaXggY3V0LW4tcGFzdGUgYnVnIGluIGl0ZXJhdG9yOyByZXNldCBwdHIgb3ZlcndyaXR0ZW4gYnkgcmVsZWFzZQoKMjAwNS0xMC0yNCAxNjoyOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIGRyb3AgcGFja2V0cyB3aXRoIHNlc3Npb24gZXJybm9zIGF0dGFjaGVkIHRvIHRoZW0KCjIwMDUtMTAtMjQgMTM6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaDoKCiAgIHJlbW92ZSBNRkQgcmV3cml0ZSBneXJhdGlvbnMKCjIwMDUtMTAtMjQgMTM6NDQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMC0yNCAxMzo0MyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCB0ZXN0cyBmb3IgaW52YWxpZCBvcHRpb25zIChtaW5pYWdlbnQpCgoyMDA1LTEwLTI0IDEzOjQyICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgYWRkIGRldGFpbHMgdG8gbG9nL2RlYnVnIG1lc3NhZ2UKCjIwMDUtMTAtMjQgMTM6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5oOgoKICAgdXNlIG5ldyBtaWJJSS9pZlRhYmxlIGluIHBsYWNlIG9mIG1pYklJL2ludGVyZmFjZXMKCjIwMDUtMTAtMjQgMTM6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pZlRhYmxlLmg6CgogICBuZXcgbW9kdWxlIGZvciBvdGhlciBtb2R1bGVzIHRvIHJlZmVyZW5jZSwgaW4gcGxhY2Ugb2YgbWliSUkvaW50ZXJmYWNlcwoKMjAwNS0xMC0yNCAxMzoyOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgZml4IGlmSW5kZXggbG9va3VwIG9uIGxpbnV4ICh1c2UgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2luZGV4X2ZpbmQpCgoyMDA1LTEwLTI0IDExOjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgR2VuZXJpYyB0YWJsZSBBUEk6ICJSb3cgb3BlcmF0aW9ucyIgICAoZXhwZXJpbWVudGFsIGltcGxlbWVudGF0aW9uKQoKMjAwNS0xMC0yNCAxMToxNiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBpbnRyb2R1Y2UgU0tJUCgpCgoyMDA1LTEwLTI0IDEwOjE5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNERVNjb25maWcsIFN2M1NIQURFU2NvbmZpZzoKCiAgIHJlbW92ZSBvYnNvbGV0ZSBTTk1QdjMgY29uZmlnIGZpbGVzCgoyMDA1LTEwLTI0IDA3OjAyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIEdlbmVyaWMgdGFibGUgQVBJOiBSb3cgb3BlcmF0aW9ucwoKMjAwNS0xMC0yNCAwNjo1OCAgZHRzMTIKCiAgICogbG9jYWwvc25tcGR1bXAucGw6CgogICBGb3IgVGhvbWFzCgoyMDA1LTEwLTI0IDA2OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBQcm92aXNpb25hbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgIlRhYmxlIG1haW50ZW5hbmNlIiBnZW5lcmljIEFQSS4KICAgTW9zdCBvZiB0aGlzIGlzIG5vdCByZWFsbHkgYXBwbGljYWJsZSB0byB0aGUgaXRlcmF0b3IgaGVscGVyLCBidXQKICAgaGF2aW5nIGEgc3RhbmRhcmQgbWVjaGFuaXNtIGZvciBjb25zdHJ1Y3RpbmcgKGFuZCBmcmVlaW5nKSB0aGUKICAgbWFpbiBpdGVyYXRvciBzdHJ1Y3R1cmUgbWlnaHQgYmUgdXNlZnVsLgoKMjAwNS0xMC0yNCAwNjoyMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgQ291bnQgdGhlIG51bWJlciBvZiByb3dzIGluIGFuIGl0ZXJhdG9yLWJhc2VkIHRhYmxlLgoKMjAwNS0xMC0yNCAwNjoxOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIEFzc29jaWF0ZSB0YWJsZSBpbmRleCBpbmZvcm1hdGlvbiB3aXRoIHRoZSBpdGVyYXRvciBzdHJ1Y3R1cmUuCiAgIChFeHBlcmltZW50YWwgY29kZSAtIGludHJvZHVjZXMgYSBtaW5vciBvbmUtb2ZmIG1lbW9yeSBsZWFrLAogICAgYnV0IHNob3VsZG4ndCBvdGhlcndpc2UgYWZmZWN0IGV4aXN0aW5nIGNvZGUpCgoyMDA1LTEwLTIzIDIwOjExICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQ6CgogICBpbml0aWFsIHRlc3QgZm9yIFNOTVB2MyBzbm1wdHJhcGQgVVNNIHVzZXIgbWFuYWdlbWVudCB3aXRoIHNubXB1c20KCjIwMDUtMTAtMjMgMTk6NTcgIHRhbmRlcnMKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgZml4IENIRUNLQUdFTlQoKSBhbmQgaW50cm9kdWNlIENIRUNLVFJBUERPUkRJRSgpCgoyMDA1LTEwLTIzIDE5OjQ1ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBmaXggdHlwbwoKMjAwNS0xMC0yMyAxNToxNSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZmxhZ3Mgc3VwcG9ydDsgZGVmYXVsdCB0byBubyBkdXBsaWNhdGUga2V5cwoKMjAwNS0xMC0yMyAxNToxMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIHR3ZWFrIG9wdGlvbnMgZnVuY3Rpb24gdG8gYWxsb3cgdGVzdCBhbmQgc2V0CgoyMDA1LTEwLTIzIDE1OjA0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgYWRkIGZ1bmN0aW9uIHRvIHNldCBjb250YWluZXIgb3B0aW9ucwoKMjAwNS0xMC0yMiAxODoyNiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIHRlc3RzL1N2M2NvbmZpZywKICAgICB0ZXN0cy9TdjN2YWNtY29uZmlnLCB0ZXN0cy9TdmFjbWNvbmZpZywKICAgICB0ZXN0cy9TdmFueWNvbmZpZzoKCiAgIGZpeCB0eXBvIGluIHZhcmlhYmxlIG5hbWUKCjIwMDUtMTAtMjIgMTg6MTQgIHRhbmRlcnMKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcmVwbGFjZSBvYnNvbGV0ZSBzbm1wdHJhcGQgIi11IiBmbGFnIGJ5ICItcCIKCjIwMDUtMTAtMjIgMTg6MTIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLy5jdnNpZ25vcmU6CgogICBpcC1taWIgY2hhbmdlcyBub3cgcmVxdWlyZSAuY3ZzaWdub3JlCgoyMDA1LTEwLTIyIDE4OjA0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnc2hhOgoKICAgb2Jzb2xldGVkIGJ5IFN2M2NvbmZpZwoKMjAwNS0xMC0yMiAwMDo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTd0cmFwZGF1dGh0ZXN0LCBUMDU3dHJhcGRhdXRodGVzdDIKLCBUMDU3dHJhcGRhdXRodGVzdDM6CgogICBwcm9wZXIgY2hlY2tzIGZvciBmYWlsdXJlIG9mIHVuYXV0aG9yaXplZCB0cmFwcwoKMjAwNS0xMC0yMiAwMDo1MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdDI6CgogICB0ZXN0IGZvciB3cm9uZyB0cmFwIG9pZHMKCjIwMDUtMTAtMjIgMDA6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDQ5c25tcHYzaW5mb3JtLCBUMDUwc25tcHYzdHJhcCwKICAgICBUMDUxc25tcHYyY3RyYXAsIFQwNTJzbm1wdjJjaW5mb3JtLCBUMDUzYWdlbnR2MXRyYXAKLCBUMDU0YWdlbnR2MmN0cmFwLCBUMDU1YWdlbnR2MW1pbnRyYXAsCiAgICAgVDA1NmFnZW50djJjbWludHJhcCwgVDA1OGFnZW50YXV0aHRyYXAsCiAgICAgVDExM2FnZW50eHRyYXA6CgogICBuZXcgY29uZmlnIHRva2VucyByb3VuZCAyCgoyMDA1LTEwLTIyIDAwOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuaCwgYXBwcy9zbm1wdHJhcGRfYXV0aC5jCjoKCiAgIERvIHRyYXAgYXV0aCBwYXJzaW5nIHRoZSB3YXkgRGF2ZSB3YW50cy4KCjIwMDUtMTAtMjEgMjA6MzAgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgbm90ZSBuZXcgaGVscGVyIGFuZCBzY2FsYXJzCgoyMDA1LTEwLTIxIDIwOjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLmg6CgogICBhZGQgbmV3IElQLU1JQiBzY2FsYXJzCgoyMDA1LTEwLTIxIDIwOjI2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcF9zY2FsYXJzLmg6CgogICBkYXRhIGFjY2VzcyBmb3Igc29tZSBJUC1NSUIgc2NhbGFycwoKMjAwNS0xMC0yMSAyMDoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy86IHNjYWxhcnNfY29tbW9uLmgsCiAgICAgc2NhbGFyc19saW51eC5jOgoKICAgZGF0YSBhY2Nlc3MgZm9yIGxpbnV4IHNjYWxhcnMKCjIwMDUtMTAtMjEgMjA6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOiBpcF9zY2FsYXJzLmMsIGlwX3NjYWxhcnMuaDoKCiAgIHNvbWUgbmV3IHNjYWxhcnMgaW4gdGhlIElQLU1JQgoKMjAwNS0xMC0yMSAyMDoyMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmg6CgogICAtIG5ldyBoZWxwZXIgZm9yIHJ3IGFjY2VzcyB0byBhbiBpbnRlZ2VyIGJhc2VkIHZhcmlhYmxlIHdoaWNoIGlzIHN0b3JlZAogICAgIGFzIGFzY2lpIGluIGEgZmlsZQoKMjAwNS0xMC0yMSAxODozMSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB1c20uYywgbWFuL3NubXB1c20uMS5kZWY6CgogICBBZGQgIi1DRSBFTkdJTkUtSUQiIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSB1c21Vc2VyRW5naW5lSUQuIEVuYWJsZXMgc25tcHVzbSB0byBtYW5hZ2Ugc25tcHRyYXBkJ3MgdXNtVXNlclRhYmxlIChmaXhlcyBidWcgIzEzMzM2NTUpLgoKMjAwNS0xMC0yMSAxODowNCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIC0gZml4IGZ1biBjb21tZW50IGhlYWRlciBmb3IgZG94eWdlbiAoa2VlcCB3ZXMgaGFwcHkpCiAgIC0gZG9jdW1lbnQgc2xpZ2h0bHkgbm9uLW9idmlvdXMgaW5kZXggdXNlIChrZWVwIGRhdmUgaGFwcHkpCgoyMDA1LTEwLTIxIDEyOjI5ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgQXBwbHkgcGF0Y2ggMTI5OTU1NCBmcm9tIFRhbyB0byBmaXggc2VnZmF1bHQgaW4gdmFyX2lmRW50cnkoKQoKMjAwNS0xMC0yMSAwNjo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jOgoKICAgTW9yZSBwb3J0YWJsZSBoYW5kbGluZyBvZiAnb3ZlcnNob290JyBkZWNsYXJhdGlvbi4KCjIwMDUtMTAtMjEgMDY6NTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9jb250YWluZXIuYywgdGFibGVfZGF0YS5jLAogICAgIHRhYmxlX2l0ZXJhdG9yLmM6CgogICBQcmVsaW1pbmFyeSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgIlRhYmxlIG1haW50ZW5hbmNlIiBzZWN0aW9uCiAgIG9mIHRoZSBnZW5lcmljIHRhYmxlIEFQSS4KCjIwMDUtMTAtMjEgMDY6NDkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZ2VuZXJpYy5jOgoKICAgTWlub3IgdHdlYWtzIHRvIGdlbmVyaWMgdGFibGUgQVBJIG5hbWVzLAogICBhbmQgY29ycmVjdCBhIGNvdXBsZSBvZiBmbGF3ZWQgZnVuY3Rpb24gcHJvdG90eXBlcy4KCjIwMDUtMTAtMjEgMDU6MjIgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbW9yZSBnZW5lcmFsaXplZCBleGNlcHRpb24gcmVnZXggdG8gbGV0IGFueSAidGVzdGluZyAuLi4gZmFpbHVyZSAuLi4iIGdvIHRocm91Z2gsIGUuZy4gdGhlIG5ldyBzbm1wdHJhcGQgdGVzdCByZWNlbnRseSBpbnRyb2R1Y2VkCgoyMDA1LTEwLTIxIDAxOjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBpbml0IHZhY20KCjIwMDUtMTAtMjEgMDE6NDIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5oOgoKICAgaW5jbHVkZSB0aGUgbmV3IHNubXB0cmFwZF9kcy5oIGZpbGUKCjIwMDUtMTAtMjEgMDE6NDEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIEFkZGVkIGEgd2FybmluZyBub3RlIGFib3V0IHBvdGVudGlhbCBjb25mbGljdHMgd2l0aCBzbm1wdHJhcGQsIHdoaWNoCiAgIGhhZCBhY3R1YWxseSBiZWVuIGJ5cGFzc2VkIHJlY2VudGx5IGFuZCBubyBvbmUgbm90aWNlZC4KCjIwMDUtMTAtMjEgMDE6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1N3RyYXBkYXV0aHRlc3Q6CgogICB0ZXN0IHRyYXBkIGF1dGhvcml6YXRpb24gZmFpbHVyZXMKCjIwMDUtMTAtMjEgMDE6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDQ5c25tcHYzaW5mb3JtLCBUMDUwc25tcHYzdHJhcCwKICAgICBUMDUxc25tcHYyY3RyYXAsIFQwNTJzbm1wdjJjaW5mb3JtLCBUMDUzYWdlbnR2MXRyYXAKLCBUMDU0YWdlbnR2MmN0cmFwLCBUMDU1YWdlbnR2MW1pbnRyYXAsCiAgICAgVDA1NmFnZW50djJjbWludHJhcCwgVDA1OGFnZW50YXV0aHRyYXAsCiAgICAgVDExM2FnZW50eHRyYXA6CgogICBNb2RpZmllZCB0aGUgdGVzdHMgdG8gYWNjb21tb2RhdGUgdGhlIG5ldyB0cmFwZCBhdXRoIHNjaGVtZQoKMjAwNS0xMC0yMSAwMTozOCAgaGFyZGFrZXIKCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2F1dGguYwosIHNubXB0cmFwZF9hdXRoLmgsIHNubXB0cmFwZF9kcy5oLAogICAgIHNubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIEFkZGVkIGEgbmV3IGF1dGhvcml6YXRpb24gaGFuZGxlciBhbmQgcmVsYXRlZCBjb25maWd1cmF0aW9uIHRva2VucyB0bwogICBhbGxvdyBzbm1wdHJhcGQgdG8gYWNjZXB0IG9yIGRyb3Agbm90aWZpY2F0aW9ucyBiYXNlZCBvbiB0aGUKICAgYXV0aG9yaXphdGlvbiBhc3NpZ25lZCB0byBhIGNvbW11bml0eS91c2VyIHBhaXJlZCB3aXRoIHRoZSBhY3Rpb24gdG8KICAgYmUgdGFrZW4gKGxvZywgZm9yd2FyZCwgZXhlY3V0ZSkuICBUaGVyZSBhcmUgYSBudW1iZXIgb2YgY29uZmlndXJhdGlvbgogICB0b2tlbnMgdGhhdCB3ZXJlIGFkZGVkIHRvIGFjaGlldmUgdGhpcy4gIDMgb2YgdGhlIFZBQ00gb25lcyBjYW4gYmUKICAgdXNlZCBhcyBub3JtYWwgKHZpZXcsIGNvbTJzZWMsIGdyb3VwKSBhbmQgb25lIGFkZGl0aW9uYWwgb25lCiAgIChzZXRhY2Nlc3MpIG5lZWRzIHRvIGJlIHVzZWQgdG8gc2V0IGluZGl2aWR1YWwgdmlld3MgZm9yIGFjY2VzcyB0bwogICBiaW5kIGV2ZXJ5dGhpbmcgdG9nZXRoZXIuICBUaGVyZSBhcmUgYSBudW1iZXIgb2YgY29udmVuaWVuY2Ugd3JhcHBlcnMKICAgYXMgd2VsbCBmb3IgdGhlc2UgdG9rZW4gc2V0cy4gIEZpbmFsbHksIHRoZXJlIGlzIGEKICAgZGlzYWJsZUF1dGhvcml6YXRpb24gdG9rZW4gdGhhdCBjYW4gYmUgc2V0IHRvIHRydWUgdG8gc2ltcGx5IGFsbG93CiAgIGV2ZXJ5dGhpbmcgdGhyb3VnaC4KCjIwMDUtMTAtMjEgMDE6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIHNubXBsaWIvdmFjbS5jOgoKICAgLSByZXN0cnVjdHVyZWQgdGhlIFZBQ00gY29kZSB0byBwcm92aWRlIGZvciB0aGUgbm90aW9uIG9mIGFkZGl0aW9uYWwKICAgICB2aWV3cyBiZXNpZGVzIHRoZSBzdGFuZGFyZCByZWFkL3dyaXRlL25vdGlmeSB2aWV3cwogICAgIC0gbXVjaCBvZiB0aGUgY2hlY2tpbmcgY29kZSB3YXMgcmVzdHJ1Y3R1cmVkIHRvIGJlIG1vcmUgbW9kdWxhcgogICAgIC0gYWRkZWQgYSBuZXcgc2V0YWNjZXNzIGNvbmZpZyB0b2tlbiB0aGF0IGNhbiBzZXQgdGhlIHZpZXcgbmFtZSBmb3IKICAgICAgIGEgcGFydGljdWxhciBhY2Nlc3MgbGV2ZWwKICAgICAtIGFkZGVkIDMgbmV3IGFjY2VzcyBsZXZlbHM6IGxvZywgZXhlY3V0ZSwgbmV0CiAgICAgICAtIGFkZGVkIGVudW0gc3RydWN0dXJlIGZvciB0aGVzZQoKMjAwNS0xMC0yMCAxMzoyMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgZml4IHJlbWFpbmluZyBJUCBhZGRyZXNzIGJ5dGUgb3JkZXIgYnVnCgoyMDA1LTEwLTIwIDA4OjI2ICBkdHMxMgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgRXZlbnQgTUlCLgoKICAgKFFuOiB3aGVyZSBkb2VzICdkZWZhdWx0X21pYnNfaW5zdGFsbCcgZ2V0IHNldD8pCgoyMDA1LTEwLTIwIDA4OjI1ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCBzY2hlZHVsZSBNSUIgaW1wbGVtZW50YXRpb24gdG8gdGhlIGRlZmF1bHQgbGlzdC4KCiAgIFRoaXMgcXVhbGlmaWVzIGZvciBib3RoOgogICAgICAgJ1RyYWRpdGlvbmFsbHkgaXQncyBiZWVuICJ0dXJuIGl0IG9uIGlmIGl0IGNvbXBpbGVzIDEwMCUKICAgICAgICBvZiB0aGUgdGltZS4uLi4nCiAgIHNpbmNlIGl0J3MgYWxsIG5vbi1hcmNoaXRlY3R1cmUtc3BlY2lmaWMgY29kZSwgYW5kOgogICAgICAgJy4uLiBhbmQgaWYgaXQgcmVxdWlyZXMgcnVuIHRpbWUgZW5hYmxpbmcgYXMgd2VsbCIKCjIwMDUtMTAtMjAgMDg6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC5oOgoKICAgQWRkIHRoZSBFdmVudCBNSUIgdG8gdGhlIGxpc3Qgb2YgTUlCcyB0byBsb2FkLgoKMjAwNS0xMC0yMCAwNzozMyAgcnN0b3J5CgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICAtIHJtZGlyIC0+IHJtIC1mUiwgc2luY2UgZGlyZWN0b3J5IGlzbid0IGVtcHR5CiAgIC0gYWRkIC1wL1NOTVBfVEVTVF9QUkVGSVggdG8gYWxsb3cgbm9uLXN0YW5kYXJkIHRlc3RzIHRvIGJlIHJ1bgoKMjAwNS0xMC0yMCAwNTozMSAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHByb3BhZ2F0ZSB0ZXN0LW1pYnMgdGFyZ2V0CgoyMDA1LTEwLTIwIDA0OjMxICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZ1cnRoZXIgdHdlYWsgZXhjZXB0aW9uIHJlZ2V4CgoyMDA1LTEwLTE5IDIzOjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlmVGFibGVfZGF0YV9hY2Nlc3MuYywgaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZlRhYmxlX2ludGVyZmFjZS5oOgoKICAgYWRkIGlmVGFibGVMYXN0Q2hhbmdlIHNjYWxhcgoKMjAwNS0xMC0xOSAxNzo1OSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW46CgogICBkb2N1bWVudCB0aGF0IC0tZW5hYmxlLWVtYmVkZGVkLXBlcmwgYWZmZWN0cyBzbm1wdHJhcGQgYWxzbwoKMjAwNS0xMC0xOSAxMTowMSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHR3ZWFrIGVycm9yIHJlZ2V4cCBleGNlcHRpb25zCgoyMDA1LTEwLTE5IDA3OjA0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmM6CgogICBXaXRoZHJhdyAndGFibGVfZGF0YXNldDInIGhlbHBlcgoKMjAwNS0xMC0xOSAwMToxNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgYWRkICdkZWZhdWx0JyBhcyB0aGUgb2lkIGZvciBleGVjaW5nIHRoZSBleGFtcGxlIHRyYXBoYW5kbGUKCjIwMDUtMTAtMTkgMDE6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIEZpeCBidWcgIzEzMTM2Njc6IGluZm9ybXMgYXJlIHNlbnQgYXN5Y2hyb25vdXNseSB0byBhdm9pZCBjcmFzaGluZyB0aGUgYWdlbnQgd2hlbiB0aGUgcmVjZWl2ZXIgaXMgZG93bgoKMjAwNS0xMC0xOCAyMjoyNCAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUuYnVpbGQud2luMzIudHh0LCBSRUFETUUudHh0LAogICAgIGluc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBXaW4zMjogUmVuYW1lIE5ldC1TTk1QLnBwZCB0byBOZXRTTk1QLnBwZCwgYWRkIGEgY291cGxlCiAgIGhlYWRlciBmaWxlcyB0byBXaW4zMiB1bmluc3RhbGxlci4KCjIwMDUtMTAtMTggMTg6MjIgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGFkZCAjaWZkZWZzIGZvciBNSUIgbW9kdWxlIGRlcGVuZGVudCBjb2RlCgoyMDA1LTEwLTE4IDE3OjExICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBmaXggaW5kZXggZ2VuZXJhdGlvbiBmb3IgZml4ZWQgbGVuZ3RoIG9jdGV0IHN0cmluZ3MKCjIwMDUtMTAtMTggMTI6MDAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldDIuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQyLmgsCiAgICAgd2luMzIvbGliaGVscGVycy9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwOgoKICAgV2l0aGRyYXcgJ3RhYmxlX2RhdGFzZXQyJyBoZWxwZXIuCgoyMDA1LTEwLTE4IDExOjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsCiAgICAgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oLCBtdGVFdmVudFRhYmxlLmM6CgogICBSZXZlcnQgdG8gb3JpZ2luYWwgJ3RhYmxlX2RhdGFzZXQnIGhlbHBlci4KCjIwMDUtMTAtMTggMTE6NDMgIHJzdG9yeQoKICAgKiBSRUFETUUub3NYOgoKICAgc3luYyByZWFkbWUgaW4gYWxsIGJyYW5jaGVzCgoyMDA1LTEwLTE4IDExOjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBSZXZlcnQgdG8gdXNpbmcgdGhlIG9yaWdpbmFsICd0YWJsZV9kYXRhc2V0JyBoZWxwZXIuCgoyMDA1LTEwLTE4IDExOjMyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIFByb3ZpZGUgbWlzc2luZyB0YWJsZS10cmF2ZXJzYWwgcm91dGluZXMuCgoyMDA1LTEwLTE4IDEwOjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmg6CgogICBPb3BzISAgT25lIGxvY2F0aW9uIGNoYW5nZSBnb3Qgb3Zlcmxvb2tlZCEKCjIwMDUtMTAtMTggMTA6NDMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtYWtlIGdyZXBzIGZvciBlcnJvciBjYXNlIGluc2Vuc2l0aXZlCgoyMDA1LTEwLTE4IDEwOjMwICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGRvIG5vdCBpbnN0YWxsIHJlbW92ZWQvcmVkdW5kYW50IGhlYWRlcgoKMjAwNS0xMC0xOCAxMDoyMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jCiwgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV90ZGF0YS5oLAogICAgIHdpbjMyL2xpYmhlbHBlcnMvTWFrZWZpbGUuaW46CgogICBSZW5hbWUgJ3RhYmxlX2RhdGEyJyBoZWxwZXIgYXMgJ3RhYmxlX3RkYXRhJwoKMjAwNS0xMC0xOCAwNzo0MSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQyLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEyLmg6CgogICBQcmVwYXJlIHRoZSB3YXkgZm9yIHJlbmFtaW5nICd0YWJsZV9kYXRhMicgbW9yZSBzZW5zaWJseS4KCjIwMDUtMTAtMTggMDc6MzggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaDoKCiAgIFJlbW92ZSB1bndhbnRlZCB2ZXN0aWdhdGVzIG9mICd0YWJsZV9kYXRhJyBzdHJ1Y3R1cmVzLCBhbmQgYnJpbmcKICAgdGFibGUgY3JlYXRpb24gbW9yZSBjbG9zZWx5IGludG8gbGluZSB3aXRoIHRoZSBnZW5lcmljIEFQSSB0ZW1wbGF0ZS4KCjIwMDUtMTAtMTggMDc6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIE1pc3NpbmcgcmV0dXJuIHZhbHVlLgoKMjAwNS0xMC0xOCAwNzoyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuYzoKCiAgIE1pc3NpbmcgcmV0dXJuIHZhbHVlcy4KCjIwMDUtMTAtMTggMDc6MjAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jOgoKICAgSWYgbm8gaXF1ZXJ5IHNlc3Npb24gaXMgY29uZmlndXJlZCBmb3IgYSBwYXJ0aWN1bGFyIGV2ZW50LAogICB0cnkgdGhlIHNldHRpbmdzIGZyb20gdGhlIHRyaWdnZXIsIGJlZm9yZSBmYWxsaW5nIGJhY2sgdG8KICAgdGhlIGRlZmF1bHQgaW50ZXJuYWwgcXVlcnkgc2Vzc2lvbi4KCjIwMDUtMTAtMTggMDc6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgVXNlICdpcXVlcnlTZWNOYW1lJyBzZXR0aW5ncyBhdCBjb25maWd1cmUgdGltZSwgcmF0aGVyIHRoYW4gd2hlbgogICB0aGUgdHJpZ2dlciBpcyBhY3R1YWxseSBpbnZva2VkLiAgVGhpcyBhbGxvd3M6CiAgICAgICAgaXF1ZXJ5U2VjTmFtZSBtZQogICAgICAgIG1vbml0b3IgbXlNb25pdG9yIC4uLi4uCiAgICAgICAgbW9uaXRvciBteU90aGVyTW9uaXRvciAuLi4uLgogICAgICAgIGlxdWVyeVNlY05hbWUgeW91CiAgICAgICAgbW9uaXRvciB5b3VyTW9uaXRvciAuLi4uLgogICB0byB3b3JrIGluIHRoZSBtb3N0IG5hdHVyYWwgbWFubmVyLgogICBJZiBubyBpcXVlcnkgc2VjdXJpdHkgbmFtZSBpcyBhdmFpbGFibGUgYXQgY29uZmlndXJlIHRpbWUsCiAgIHRoaXMgd2lsbCBiZSBldmFsdWF0ZWQgYXQgcnVuIHRpbWUgaW5zdGVhZC4KCjIwMDUtMTAtMTggMDc6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IHNjaGVkQ29uZi5jLCBzY2hlZENvbmYuaCwKICAgICBzY2hlZENvcmUuYywgc2NoZWRDb3JlLmgsIHNjaGVkVGFibGUuYywKICAgICBzY2hlZFRhYmxlLmg6CgogICBSZW1vdmUgcHJldmlvdXMgU2NoZWR1bGUgTUlCIGltcGxlbWVudGF0aW9uLgoKMjAwNS0xMC0xOCAwNzowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogc2NoZWR1bGUuaCwgc2NoZWR1bGUvLmN2c2lnbm9yZQosIHNjaGVkdWxlL3NjaGVkQ29uZi5jLCBzY2hlZHVsZS9zY2hlZENvbmYuaCwKICAgICBzY2hlZHVsZS9zY2hlZENvcmUuYywgc2NoZWR1bGUvc2NoZWRDb3JlLmgsCiAgICAgc2NoZWR1bGUvc2NoZWRUYWJsZS5jLCBzY2hlZHVsZS9zY2hlZFRhYmxlLmg6CgogICBSZS13b3JrZWQgU2NoZWR1bGUgTUlCIGltcGxlbWVudGF0aW9uLgogICBDbGVhbmVyLCBsZWFuZXIsIGFuZCBtb3JlIGNvbXBsZXRlLgogICBOb3cgd2l0aCBhZGRlZCB2aXRhbWlucy4KCjIwMDUtMTAtMTcgMTg6MjQgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBhZGQgbW92ZSB2ZXJib3NlIGRlYnVnZ2luZzsgaW5pdCBpbm5lciBsb29wIGNvdW50ZXIgYWZ0ZXIgZWFjaCBpdGVyYXRpb24KCjIwMDUtMTAtMTcgMTc6MDIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgcG9ydGFibGUgZXhwb3J0IG9mIGVudiB2YXIKCjIwMDUtMTAtMTcgMTY6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBGaXggYSBmbGlwcGluZyBsbyBpbnRlcmZhY2UgYnkgZml4aW5nIGdldEtzdGF0SW50IHRvIGRvIGFzIGRvY3VtZW50ZWQKCjIwMDUtMTAtMTcgMTQ6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgYWRkIHByb3RvdHlwZSBiZWZvcmUgdXNlOyBjaGVjayBzdGF0dXMgb2YgY29ycmVjdCBzdHJ1Y3QgbWVtYmVyCgoyMDA1LTEwLTE3IDEyOjUyICByc3RvcnkKCiAgICogUkVBRE1FLm9zWDoKCiAgIC0gbm90ZSBsZCBmbGFncyBmb3IgMTAuNC54IGJ1aWxkaW5nIHcvcGVybAoKMjAwNS0xMC0xNyAxMTozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBFbnN1cmUgdGhlIGV2ZW50IG5hbWUgYnVmZmVyIGlzIHByb3Blcmx5IGNsZWFyZWQgYmVmb3JlIHVzZS4KCjIwMDUtMTAtMTcgMDc6MzYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBNb2RpZnkgZXhpc3RpbmcgdGFibGUgaGVscGVycyBpbiBsaW5lIHdpdGggdGhlIHByb3Bvc2VkIGdlbmVyaWMgQVBJLgoKICAgVGhpcyBkb2VzICpOT1QqIGNoYW5nZSBhbnkgZXhpc3RpbmcgY29kZSAoYXQgbGVhc3Qgbm90IGludGVudGlvbmFsbHkpLAogICBvciBhZGQgYW55IG9mIHRoZSAibWlzc2luZyIgQVBJIHJvdXRpbmVzLiAgSSd2ZSBzaW1wbHkgcmUtc2h1ZmZsZWQKICAgdGhlIG9yZGVyIG9mIHRoZSBleGlzdGluZyByb3V0aW5lcyB0byBtYXRjaCB0aGUgZ2VuZXJpYyB0ZW1wbGF0ZS4KCjIwMDUtMTAtMTcgMDc6MjkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZ2VuZXJpYy5jOgoKICAgUHJvcGVyIGRlZmluaXRpb24vZG9jdW1lbnRhdGlvbiBvZiBhIGdlbmVyaWMgdGFibGUgQVBJIGZyYW1ld29yay4KICAgVGhlIGV4YWN0IGRldGFpbHMgbWF5IG5vdCBiZSBkaXJlY3RseSBhcHByb3ByaWF0ZSBpbiBmdWxsIGZvciBldmVyeQogICB0YWJsZSBoZWxwZXIsIGJ1dCB0aGlzIHNob3VsZCBwcm92ZGUgYSB1c2VmdWwgYmFzaWMgZGVzaWduIHRlbXBsYXRlLgoKMjAwNS0xMC0xNyAwMDowOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICByZW1vdmVkIGZvcmNlZCBkZWJ1Z2dpbmcgb3V0cHV0CgoyMDA1LTEwLTE0IDE5OjM3ICBic2hhdzY2NgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGF1dG9jb25mIHJlY29nbml0aW9uCgoyMDA1LTEwLTE0IDE4OjQ1ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgbWlicy9ORVQtU05NUC1UQy50eHQ6CgogICBzdXBwb3J0IE5ldEJTRCAxLnggYW5kIDIueCB1bmRlciB0aGUgKGNvbW1vbikgIm5ldGJzZCIgc3lzT2JqZWN0SUQuMAoKMjAwNS0xMC0xNCAxNzoyMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIC0gdXBkYXRlIGNvbW1lbnRzIGFuZCBkZWJ1ZyBtZXNzYWdlcwogICAtIGRvbid0IHJlbGVhc2Ugcm93IG9uIGVyciAoaXQncyBzdGlsbCBpbiB0aGUgY29udGFpbmVyISkKICAgLSBkb24ndCBpbnNlcnQgcm93IG9uIHN1Y2Nlc3MgKGl0J3MgYWxyZWFkeSBpbiB0aGUgY29udGFpbmVyISkKCjIwMDUtMTAtMTQgMTc6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICAgIG1pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIHJlcGxhY2UgaGFyZGNvZGVkICJzbm1wZCIgdy9ORVRTTk1QX0RTX0xJQl9BUFBUWVBFCgoyMDA1LTEwLTE0IDExOjI1ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICByZWdpc3RlciB0aGUgc25tcEVuZ2luZSBNSUIgZ3JvdXAgdW5kZXIgdGhlICJzbm1wdHJhcGQiIGNvbnRleHQgdG8gYWxsb3cgZm9yIGVuZ2luZUlEIHByb2JlcyB2aWEgdGhlIG1hc3RlciBhZ2VudCwgZS5nLiBieSBzbm1wdXNtCgoyMDA1LTEwLTE0IDExOjI1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My86IHNubXBFbmdpbmUuYywgc25tcEVuZ2luZS5oOgoKICAgYWxsb3cgc3ViYWdlbnRzIChsaWtlIHNubXB0cmFwZCkgdG8gcmVnaXN0ZXIgdGhlIHNubXBFbmdpbmUgTUlCIGdyb3VwIHVuZGVyIGEgY29udGV4dCBieSBpbnRyb2R1Y2luZyByZWdpc3Rlcl9zbm1wRW5naW5lX3NjYWxhcnNfY29udGV4dCgpCgoyMDA1LTEwLTE0IDA5OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBleHByZXNzaW9uLmgsIGV4cHIvLmN2c2lnbm9yZQosIGV4cHIvZXhwRXJyb3JUYWJsZS5jLCBleHByL2V4cEVycm9yVGFibGUuaCwKICAgICBleHByL2V4cEV4cHJlc3Npb24uYywgZXhwci9leHBFeHByZXNzaW9uLmgsCiAgICAgZXhwci9leHBFeHByZXNzaW9uQ29uZi5jLCBleHByL2V4cEV4cHJlc3Npb25Db25mLmgsCiAgICAgZXhwci9leHBFeHByZXNzaW9uVGFibGUuYywgZXhwci9leHBFeHByZXNzaW9uVGFibGUuaCwKICAgICBleHByL2V4cE9iamVjdC5jLCBleHByL2V4cE9iamVjdC5oLAogICAgIGV4cHIvZXhwT2JqZWN0Q29uZi5jLCBleHByL2V4cE9iamVjdENvbmYuaCwKICAgICBleHByL2V4cE9iamVjdFRhYmxlLmMsIGV4cHIvZXhwT2JqZWN0VGFibGUuaCwKICAgICBleHByL2V4cFNjYWxhcnMuYywgZXhwci9leHBTY2FsYXJzLmgsIGV4cHIvZXhwVmFsdWUuYwosIGV4cHIvZXhwVmFsdWUuaCwgZXhwci9leHBWYWx1ZVRhYmxlLmMsCiAgICAgZXhwci9leHBWYWx1ZVRhYmxlLmg6CgogICBQcmVsaW1pbmFyeSAocmUtKWltcGxlbWVudGF0aW9uIG9mIHRoZSBFeHByZXNzaW9uIE1JQi4KICAgVGhlIGV4cEV4cHJlc3Npb25UYWJsZSBhbmQgZXhwT2JqZWN0VGFibGUgYXJlIHJlYXNvbmFibHkgY29tcGxldGUuCiAgIFRoZSBleHBWYWx1ZVRhYmxlIChhbmQgZXhwcmVzc2lvbiBldmFsdWF0aW9uKSBpcyBzdGlsbCBqdXN0IGEKICAgYmFzaWMgZnJhbWV3b3JrIC0gZXhwcmVzc2lvbnMgYXJlIGRpc3BsYXllZCByYXRoZXIgdGhhbiBldmFsdWF0ZWQuCiAgIEFuZCB0aGVyZSdzIG5vIHVzZXItbGV2ZWwgY29uZmlndXJhdGlvbiBvZiBleHByZXNzaW9ucyB5ZXQuCgogICBCdXQgdGhlcmUncyBlbm91Z2ggd29ya2luZyBjb2RlIHRvIGJlIHdvcnRoIGNvbW1pdHRpbmcgLSBldmVuIGlmCiAgIG9ubHkgYXMgYSBzYWZldHkgbWVjaGFuaXNtLgoKMjAwNS0xMC0xMyAxNzowNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGZpeCBzcGFyc2UgaGFuZGxlciBjYXNlOiBubyBtb3JlIHJvd3MsIGxhc3QgY29sdW1uCgoyMDA1LTEwLTEzIDEyOjQ5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICAtIGZpeCB0YWJsZSB0b2tlbiB0YWJsZSBpbmRleGVzIGZvciBhdWdtZW50ZWQgdGFibGUKICAgLSB0d2VhayBkZWJ1ZwogICAtIGFkZCB3YXJuaW5nIGlmIHRvbyBtdWNoIGRhdGEgc3BlY2lmaWVkIGZvciBhZGRfcm93CgoyMDA1LTEwLTEzIDExOjI4ICByc3RvcnkKCiAgICogZG90Z2RiaW5pdDoKCiAgIGFkZCBwcmludGluZGV4IGZvciBuZXRzbm1wX2luZGV4IHN0cnVjdHMKCjIwMDUtMTAtMTMgMTA6MTIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjb25maWd1cmUgcHJlZml4IChpbnN0ZWFkIG9mIHVzaW5nIGluc3RhbGwgcHJlZml4PSkKCjIwMDUtMTAtMTMgMDU6MTUgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgU3dpdGNoIHRvIHVzaW5nIHRoZSBuZXcgRXZlbnQtTUlCIGltcGxlbWVudGF0aW9uIGJ5IGRlZmF1bHQuCgogICBUaGUgcHJldmlvdXMgdmVyc2lvbiBpcyBzdGlsbCBhdmFpbGFibGUgZm9yIHRob3NlIHRoYXQgcHJlZmVyCiAgIHRvIHVzZSB0aGF0LCBidXQgSSdtIHN1cmUgc29tZW9uZSB3aWxsIGNvbXBsYWluIGFueXdheTotKAoKMjAwNS0xMC0xMiAxODo1OSAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oOgoKICAgb3BlbmJzZCBzeXNPYmplY3RJRC4wIGZvciBPcGVuQlNEIDMueAoKMjAwNS0xMC0xMiAxODoxNiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbmV0LXNubXAtY29uZmlnLmluCjoKCiAgIGVuaGFuY2UgcmVjZW50bHkgaW50cm9kdWNlZCAibmV0LXNubXAtY29uZmlnIC0tc25tcGNvbmZwYXRoIiB0byBvdXRwdXQgZnVsbCBjb25maWcgcGF0aAoKMjAwNS0xMC0xMiAxMDo0NiAgcnN0b3J5CgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGRlZiBmaWxlcyBhcmUgaW4gc3JjZGlyCgoyMDA1LTEwLTEyIDA2OjI4ICByc3RvcnkKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBjaGFuZ2Ugbm8tb3AgbWFjcm8gZGVmIHRvIGVtcHR5IGlzbnRlYWQgb2YgKHZvaWQpCgoyMDA1LTEwLTExIDE5OjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9hc24xLmM6CgogICByZXdvcmsgNjQgYml0IG92ZXJmbG93IGNoZWNraW5nLCBhY2NvdW50aW5nIGZvciBzaWduZWRlZG5lc3MKCjIwMDUtMTAtMTEgMTY6MzAgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggdmFyaWF0aW9ucyBpbiB0YWlsIHBhcmFtZXRlciBmb3JtYXQKCjIwMDUtMTAtMTEgMTQ6NTMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICByZW1vdmUgbGVmdG92ZXIgRU9GIGZyb20gcmV2IDEuMzE0CgoyMDA1LTEwLTExIDA3OjUyICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIG9rLCBsaW51eCBtYWlsIGRvZXNuJ3QgbGlrZSBbY2Vuc29yZWRdIHNvbGFyaXMgc3R5bGU7IGZpeAoKMjAwNS0xMC0xMSAwNzo0OSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgbWFrZSBzdXJlIG5ldC1zbm1wLWNvbmZpZyBpcyBleGVjdXRlYWJsZSBiZWZvcmUgYnVpbGRpbmcgcGVybCBtYWtlIGZpbGVzCgoyMDA1LTEwLTExIDA1OjI3ICBkdHMxMgoKICAgKiBwZXJsLzogU05NUC9leGFtcGxlcy9idWxrd2Fsay5wbCwKICAgICBTTk1QL2V4YW1wbGVzL3RyYXAtZXhhbXBsZS5wbCwgU05NUC90L2J1bGt3YWxrLnQsCiAgICAgbWFuYWdlci9tYW5hZ2VyLnBtOgoKICAgQmUgY29uc2lzdGVudCBpbiBob3cgdmFyaW91cyBwZXJsIHNjcmlwdHMgYXJlIGludm9rZWQuCgoyMDA1LTEwLTEwIDE5OjQyICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIG1pYnMvTkVULVNOTVAtVEMudHh0LCBvdi9vaWRfdG9fc3ltLmluCiwgb3Yvb2lkX3RvX3R5cGUuaW46CgogICBhZGQgc3lzT2JqZWN0SUQgdmFsdWUgZm9yIE1hYyBPUyBYCgoyMDA1LTEwLTEwIDE4OjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgdXBkYXRlIGxpbnV4IGdldF9pZl9zcGVlZCBmdW5jdGlvbiBuYW1lCgoyMDA1LTEwLTEwIDE4OjAxICB0YW5kZXJzCgogICAqIG92Lzogb2lkX3RvX3N5bS5pbiwgb2lkX3RvX3R5cGUuaW46CgogICBhZGQgc3lzT2JqZWN0SUQgdmFsdWUgZm9yIEFJWAoKMjAwNS0xMC0xMCAxNzo1NCAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gYnJlYWsgYXBhcnQgcmVhZGluZyBvZiBjb25maWcgZmlsZXMgYW5kIHBlcnNpc3RlbnQgY29uZmlnIGZpbGVzIChhbGxvd3MKICAgICBwcm9wZXIgaGFuZGxpbmcgb2YgcGVyc2lzdGVudERpciB0b2tlbiBpbiBjb25maWcgZmlsZXMpCiAgIC0gcmVtb3ZlIGNvbW1lbnRlZCBvdXQgY29kZQoKMjAwNS0xMC0xMCAxNzo1MSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluOgoKICAgcmVwYWxjZSBwZXJsIHcvICQoUEVSTCkKCjIwMDUtMTAtMTAgMTc6NDQgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgbWlicy9ORVQtU05NUC1UQy50eHQ6CgogICBhZGQgc3lzT2JqZWN0SUQgdmFsdWUgZm9yIEFJWAoKMjAwNS0xMC0xMCAxNzowOSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBmaXggZnJvbSBvcHRhcmcgcHJvY2Vzc2luZwoKMjAwNS0xMC0xMCAxNjoyOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBhZGQgb3B0aW9uIGZvciBmcm9tIGFkZHJlc3MgZm9yIGVtYWlsIHJlc3VsdHMKCjIwMDUtMTAtMTAgMTY6MjUgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgLSBhZGQgZGlzdGluY3QgZW1haWwgYWRkcmVzc2VzIGZvciBzdWNjZXNzL2Vycm9yIGNhc2VzCiAgIC0gZml4ZXMgZm9yICMlQCQqJiBzb2xhcmlzIG1haWwgZXhlCiAgIC0gZG9uJ3QgcmVtb3ZlIGRpcmVjdG9yeSB0aWwgdmVyeSBlbmQKCjIwMDUtMTAtMTAgMTY6MjQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBleGNsdWRlIGVycm9yIGxpbmVzIGZvciAnSW4gZnVuY3Rpb24nIChlZyBmdW5jIG5hbWUgY29udGFpbnMgd29yZCBlcnJvcikKCjIwMDUtMTAtMTAgMTQ6NTYgIHJzdG9yeQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIGJhc2UgbWliMmMuY29uZiBnZW5lcmF0aW9uIG9uICRQRVJMLCBub3QgLWQgQ1ZTCiAgIC0gaWYgbm8gcGVybCwgdG91Y2ggZmlsZSBzbyBpbnN0YWxsIGRvZXNuJ3QgZmFpbAoKMjAwNS0xMC0xMCAxNDo0NyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnJ1bGVzLCBNYWtlZmlsZS50b3AsIGxvY2FsL01ha2VmaWxlLmluCiwgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gZGVmaW5lIFBFUkwgaW4gYWxsIG1ha2VmaWxlcyAodmlhIE1ha2VmaWxlLnRvcCkKICAgLSByZXBsYWNlIGFsbCBjYWxscyB0byBwZXJsIHdpdGggJChQRVJMKQogICAtIHJlcGxhY2UgZXhpc3RpbmcgUEVSTFBST0cgd2l0aCBQRVJMIGluIG1ha2VmaWxlcwoKMjAwNS0xMC0xMCAxNDozOCAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBQRVJMTERPUFRTIHRvIGFnZW50IGxpYnMKCjIwMDUtMTAtMTAgMDk6MzcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBBbGxvdyB0aGUgYWRtaW5pc3RyYXRvciB0byBjaG9vc2UgYmV0d2VlbiBmb2xsb3dpbmcgdGhlIERpc01hbgogICBzcGVjaWZpY2F0aW9ucyBzdHJpY3RseSwgb3IgdXNpbmcgYW4gYXBwcm9hY2ggdGhhdCBhY3R1YWxseSB3b3JrcyEKICAgKFRoZSBvZmZpY2lhbCBvcmRlcmluZyBmb3IgYWRkaW5nIHZhcmJpbmRzIHRvIGEgbm90aWZpY2F0aW9uCiAgICBwYXlsb2FkIGxpc3QgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byB1c2Ugc3BlY2lmeSBUcmlnZ2VyIGFuZAogICAgRXZlbnQgb2JqZWN0cyBpbiBhIHNlbnNpYmxlIGZhc2hpb24pLgoKMjAwNS0xMC0xMCAwOTozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYzoKCiAgIERvbid0IHJlcG9ydCByb3dzIHRoYXQgaGF2ZW4ndCBmaW5pc2hlZCBiZWluZyBjcmVhdGVkLCBhbmQKICAgZG9uJ3Qga2VlcCBzY2hlZHVsaW5nIHNhbXBsZXMgZm9yIHJvd3MgdGhhdCBhcmUgZGlzYWJsZWQgb3IgcmVtb3ZlZC4KCjIwMDUtMTAtMTAgMDk6MjcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jOgoKICAgUmVkdW5kZW50IChhdXRvLSljb21tZW50LgoKMjAwNS0xMC0xMCAwOToyMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaDoKCiAgIENvbnZlcnRpbmcgYmV0d2VlbiBpbmRleCByZXByZXNlbnRhdGlvbnMgaXMgbm90IHBhcnQgb2YgdGhlIHB1YmxpYyBBUEkuCgoyMDA1LTEwLTEwIDA4OjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBDb3BlIHdpdGggYSBtaXNzaW5nIGludGVybmFsIHF1ZXJ5IHVzZXJuYW1lCiAgIChyYXRoZXIgdGhhbiBmb3JjaW5nIGEgaGFyZHdpcmVkIG9uZSkKCjIwMDUtMTAtMTAgMDc6NTQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFJldHVybiB0aGUgZnVsbCBsaXN0IG9mIHJlc3VsdHMgZnJvbSBhbiBpbnRlcm5hbCBxdWVyeSwKICAgcmF0aGVyIHRoYW4gdHJ1bmNhdGluZyBpdCBhZnRlciB0aGUgZmlyc3QgdmFyYmluZC4KICAgKFdoeSAnY2xvbmVfdmFyJyBzdG9tcHMgb24gdGhlIG5leHQgbGluayBpcyBhIG15c3RlcnkgdG8gbWUhKQoKMjAwNS0xMC0xMCAwNzo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgSW5kaWNhdGUgdGhhdCAnaWZfc3BlZWQnIEFQSXMgYXJlIExpbnV4LXNwZWNpZmljCiAgIChhbmQgbm90IHBhcnQgb2YgdGhlIGdlbmVyaWMgSUYtTUlCIGRhdGFfYWNjZXNzIGZyYW1ld29yaykKCjIwMDUtMTAtMDcgMTc6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmM6CgogICBpZmRlZiBvdXQgY29kZSBpZiBtb2R1bGUgbm90IGVuYWJsZWQKCjIwMDUtMTAtMDcgMTY6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIG1vdmUgbWlzYXBwbGllZCBwYXRjaCB0byBjb3JyZWN0IGxvY2F0aW9uCgoyMDA1LTEwLTA3IDE2OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgdHlwbwoKMjAwNS0xMC0wNyAxNjo0NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIG9ubHkgc2F2ZSBzZXR0YWJsZSBjb2xzCgoyMDA1LTEwLTA3IDE2OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oOgoKICAgZGVmaW5lIHNldHRhYmxlIGNvbHMKCjIwMDUtMTAtMDcgMTY6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIGdldCByaWQgb2Ygb2xkIHBlcnNpc3RlbnQgc2F2ZSBmdW5jcywgaW4gZmF2b3Igb2YgbmV3IGdlbmVyYXRlZCBzdHVmZgoKMjAwNS0xMC0wNyAxNjo0MiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICB0eXBvCgoyMDA1LTEwLTA3IDE2OjM4ICB0YW5kZXJzCgogICAqIEZBUToKCiAgIE1ham9yIG92ZXJoYXVsIG9mIGxpc3Qgb2Ygc3VwcG9ydGVkIHBsYXRmb3JtcyBiYXNlZCBvbiA1LjIuMi5wcmVYIHRlc3RpbmcKCjIwMDUtMTAtMDcgMTY6MjUgIHRhbmRlcnMKCiAgICogTkVXUzoKCiAgIGZpeCB0eXBvcyBpbiA1LjIgTkVXUwoKMjAwNS0xMC0wNyAxMDoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBIbW1tbS4uLi4gcmVtb3ZpbmcgdGhlIG9iamVjdCBlbnRyaWVzIGZvbGxvd2luZyBhIGR1cGxpY2F0ZSB0cmlnZ2VyCiAgIHNlZW1zIHRvIGJlIHByb2JsZW1hdGljYWwuICAoQXMgaW4gdGhlIGFnZW50IGNyYXNoZXMhKSAgSXQncyBub3QKICAgY2xlYXIgd2hldGhlciB0aGlzIGlzIGFwcHJvcHJpYXRlIGJlaGF2aW91ciBhbnl3YXkuCgogICBOZWVkIHRvIHRoaW5rIGFib3V0IHRoaXMgYSBiaXQgbW9yZS4KCjIwMDUtMTAtMDcgMDk6MjcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZVRyaWdnZXJDb25mLmMsCiAgICAgbXRlVHJpZ2dlckNvbmYuaDoKCiAgIENvbmZpZ3VyZSBtb25pdG9yaW5nIG9mIFVDRC1zcGVjaWZpYyB0YWJsZXMKICAgKGNvbXBhdGFiaWxpdHkgd2l0aCBwcmV2aW91cyBFdmVudC1NSUIgaW1wbGVtZW50YXRpb24pLgoKICAgTm90IHlldCBmdWxseSB0ZXN0ZWQsIGJ1dCBzZWVtcyB0byBiZSBPSy4KCjIwMDUtMTAtMDcgMDk6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LmgsIGV2ZW50L210ZVNjYWxhcnMuYywKICAgICBldmVudC9tdGVTY2FsYXJzLmg6CgogICBJbXBsZW1lbnQgdGhlIEV2ZW50LU1JQiBzY2FsYXIgb2JqZWN0cy4KCjIwMDUtMTAtMDcgMDk6MjAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZVRyaWdnZXIuYywgbXRlVHJpZ2dlci5oCjoKCiAgIEFQSSBmb3IgY291bnRpbmcgdGhlIG51bWJlciBvZiB2YWx1ZXMgYmVpbmcgbW9uaXRvcmVkLgoKMjAwNS0xMC0wNyAwODo0MiAgdGFuZGVycwoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBnZXQgcmlkIG9mIEMrKyBrZXl3b3JkICJuZXciLiBNZkQtYmFzZWQgY29kZSBzdGlsbCBuZWVkcyB0byBiZSByZWdlbmVyYXRlZC4KCjIwMDUtMTAtMDcgMDU6NTUgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgbWlzc2luZyBkYXJ3aW44LmggYW5kIHNvbGFyaXMyLjEwLmgKCjIwMDUtMTAtMDYgMjA6MzEgIHRhbmRlcnMKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgaW1wcm92ZSBoZWxwIG91dHB1dAoKMjAwNS0xMC0wNiAyMDoyMSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbmV0LXNubXAtY29uZmlnLmluCjoKCiAgIEFkZCBuZXQtc25tcC1jb25maWcgb3B0aW9ucyAtLWRlZmF1bHQtbWlicywgLS1kZWZhdWx0LW1pYmRpcnMsIC0tcGVyc2lzdGVudC1kaXJlY3RvcnkgYW5kIC0tc25tcGNvbmZwYXRoCgoyMDA1LTEwLTA2IDE5OjAxICByc3RvcnkKCiAgICogdGVzdGluZy86IFRFU1RDT05GLnNoLCB0ZXN0cy9TdjNjb25maWcsCiAgICAgdGVzdHMvU3YzdmFjbWNvbmZpZywgdGVzdHMvU3ZhY21jb25maWcsCiAgICAgdGVzdHMvU3Zhbnljb25maWc6CgogICAtIGNyZWF0ZSBhbmQgdXNlIHBlcnNpc3RlbnQgZGlyIGluIHRlc3QgZGlyZWN0b3J5IChzbyBtYWtlIHRlc3QgYXMgcm9vdAogICAgIGRvZXNuJ3QgbXVjayB3aXRoIHN5c3RlbSBwZXJzaXN0ZW50IGNvbmYpCgoyMDA1LTEwLTA2IDE4OjU4ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY291bnRlcjY0IHN1cHBvcnQgdG8gc25tcF9hZGRfdmFyIChzbyB0aGV5IGNhbiBiZSBzZW50IHcvc25tcHRyYXApCgoyMDA1LTEwLTA2IDE4OjU2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmM6CgogICBleHBsaWNpdCBicmFjZXMgdG8ga2VlcCBjb21waWxlciBoYXBweQoKMjAwNS0xMC0wNiAxODo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgaW5jbHVkZSB1dG1wL3V0bXB4IGhlYWRlciAoZml4IGZvciBvbmUgb2YgdGhlIEJTRHMpCgoyMDA1LTEwLTA2IDE4OjQ5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jOgoKICAgLSBpbmNyZWFzZSBkZWZhdWx0IGJ1ZmZlciBzaXplCiAgIC0gY2hlY2sgb3BlbiByYwogICAtIGxvZyBlcnIgaWYgbm8gZGF0YSBhdmFpbGFibGUKCjIwMDUtMTAtMDYgMTg6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS86IGNwdS9jcHUuYywgbWVtb3J5L2h3X21lbS5jOgoKICAgdGhpcyAoQysrIHJlc2VydmVkIHdvcmQpIC0+IHRoaXNfcHRyCgoyMDA1LTEwLTA2IDE4OjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBjYWxsIGluaXRfYWdlbnR4X2NvbmZpZyBpbnN0ZWFkIG9mIHJlZ2lzdGVyaW5nIGhhbmRsZXIgZGlyZWN0bHkKCjIwMDUtMTAtMDYgMTg6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgLSBzbGlnaHQgcmVvcmcgb2YgaW5pdF9hZ2VudHhfY29uZmlnKCkKICAgICAtIGlmZGVmIHNvbWUgc3R1ZmYgYmFzZWQgb24gbWFzdGVyIGFnZW50IHN1cHBvcnQKICAgICAtIG1vdmUgYWdlbnR4KHBlcm1zfHRpbWVvdXQpIGluIGNvbmRpdGlvbmFsIGZvciBhZ2VudCByb2xlID09IG1hc3RlcgoKMjAwNS0xMC0wNiAwODo0NSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNhdCBjb3JyZWN0IGZpbGUgb24gZXJyb3JzCgoyMDA1LTEwLTA2IDA4OjMyICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGFkZCBvcHRpb24gdG8gZW1haWwgcmVzdWx0cwoKMjAwNS0xMC0wNiAwNzozOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaDoKCiAgIElSSVggdGNwLW1pYiBjbGVhbnVwIHBhdGNoIChmcm9tIEFsYmVydCBDaGluKQoKMjAwNS0xMC0wNiAwNTozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYzoKCiAgIFByZWxpbWluYXJ5IGhhbmRsaW5nIG9mIGVycm9ycy4KCjIwMDUtMTAtMDYgMDU6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgQmxvY2sgY29uZmlndXJhdGlvbiBvZiBkZWx0YS10aHJlc2hvbGRzIG9uIGRlbHRhLXNhbXBsZXMuCgoyMDA1LTEwLTA2IDA1OjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVUcmlnZ2VyLmMsIG10ZVRyaWdnZXIuaAosIG10ZVRyaWdnZXJDb25mLmMsIG10ZVRyaWdnZXJEZWx0YVRhYmxlLmM6CgogICBDb25zb2xpZGF0ZSBoYW5kbGluZyBvZiBzeXNVcFRpbWUgaW5zdGFuY2UgZGlzY29udGludWl0eSBtYXJrZXIuCgoyMDA1LTEwLTA2IDA1OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIFN1cHBvcnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgKmp1c3QqIGRlbHRhIHRocmVzaG9sZCB0ZXN0cy4KCjIwMDUtMTAtMDYgMDU6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZVRyaWdnZXIuYywKICAgICBtdGVUcmlnZ2VyQ29uZi5jOgoKICAgSW1wbGVtZW50IGRlbHRhLXRocmVzaG9sZCB0ZXN0cy4KCjIwMDUtMTAtMDYgMDU6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgQWNjZXB0IG5lZ2F0aXZlIHZhbHVlcyAocmF0aGVyIHRoYW4gcmVqZWN0aW5nIHRoZW0gYXMgaW52YWxpZCBvcHRpb25zKQoKMjAwNS0xMC0wNiAwNTowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYzoKCiAgIERvbid0IGJvdGhlciB0cnlpbmcgdG8gZmlyZSBtaXNzaW5nIHRocmVzaG9sZCBldmVudHMuCgoyMDA1LTEwLTA1IDA4OjI2ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZ2V0IHJpZCBvZiBDKysga2V5d29yZCAiY2xhc3MiCgoyMDA1LTEwLTA1IDA0OjQzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYzoKCiAgIFNpZ2ggLSByZWFkIHRoZSB3aG9sZSBlbWFpbCBtZXNzYWdlLCBEYXZlIQoKMjAwNS0xMC0wNSAwNDo0MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmM6CgogICBSZW1vdmUgYm9ndXMgdHJhaWxpbmcgY29tbWEgKHJlcG9ydGVkIGJ5IEFsYmVydCBDaGluKQoKMjAwNS0xMC0wNCAxNzo1MSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGNoZWNrIHJlc3VsdHMgb2YgZXZlcnkgc3lzdGVtIGNhbGwgaW5zdGVhZCBvZiBqdXN0IHNwZWNpYWwgb25lcy4KCjIwMDUtMTAtMDQgMTA6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZVRyaWdnZXIuYywgbXRlVHJpZ2dlci5oCiwgbXRlVHJpZ2dlckNvbmYuYywgbXRlVHJpZ2dlckRlbHRhVGFibGUuYzoKCiAgIEltcGxlbWVudCBzdXBwb3J0IGZvciBkZWx0YS12YWx1ZWQgc2FtcGxlcy4KICAgT25seSB0ZXN0ZWQgd2l0aCBCb29sZWFuIGVudHJpZXMsIGFuZCBhIGJhc2ljIHN5c1VwVGltZS4wCiAgIGRpc2NvbnRpbnVpdHkgbWFya2VyLiAgVGhyZXNob2xkIGRlbHRhLXZhbHVlZCBzYW1wbGVzIGFuZAogICB3aWxkY2FyZGVkIGRpc2NvbnRpbnVpdHkgT0lEcyBvdWdodCB0byB3b3JrLCBidXQgc3RpbGwgbmVlZCB0ZXN0aW5nLgoKMjAwNS0xMC0wNCAxMDoyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYzoKCiAgIENhbm9uaWNhbGlzZSBwcmV2aW91cy9jdXJyZW50IHJlc3VsdHMgLSBtYXRjaGluZyBlbnRyaWVzIGxlYWRzIHRvCiAgIHNpbXBsZXIgdGVzdCBjb2RlLiAgQWRqdXN0IEV4aXN0ZW5jZSB0ZXN0cyB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGlzLgoKMjAwNS0xMC0wMyAxOTo0NyAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFdpbjMyIGluc3RhbGxlcjogIEZpeCB0eXBvIGluIHNjcmlwdCwgZml4ICV3aW5kaXIlIGVudiB2YXIgY2hlY2suCgoyMDA1LTEwLTAzIDA3OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIFJ1biBTRVQgYXNzaWdubWVudHMgZHVyaW5nIHRoZSBBQ1RJT04gcGFzcywgc28gZXJyb3JzIGNhbiBiZSByZXBvcnRlZC4KICAgKFNob3VsZCBmaXggQnVnICM4NjQyODEsIGFuZCBiZSBjb25zaXN0ZW50IHdpdGggcGFzcy5jIGJlaGF2aW91cikKCjIwMDUtMTAtMDEgMTY6NTEgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgYWRkIG9wdGlvbiBmb3IgZW1haWwgb2YgZXJyb3IgcmVzdWx0cwoKMjAwNS0xMC0wMSAxNTo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBmaXggdXRtcCBpbmNsdWRlIGlmZGVmIGxvZ2ljCgoyMDA1LTEwLTAxIDEyOjI1ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTAtMDEgMTI6MjMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgY2hlY2sgZm9yIG1ic3RhdC5tX21idWZzIGJlZm9yZSB1c2luZwoKMjAwNS0wOS0yOSAxODo1MSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIEZpeCBidWcgIzExNTAwMTg6IER5bmFtaWMgYWxsb2NhdGlvbiBvZiBkaXNrIHN0b3JhZ2UgYXJyYXkuCgoyMDA1LTA5LTI5IDE4OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZpeCBidWcgIzExNTAwMTg6IER5bmFtaWMgYWxsb2NhdGlvbiBvZiBkaXNrIHN0b3JhZ2UgYXJyYXkuCgoyMDA1LTA5LTI5IDE4OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgUGF0Y2ggZnJvbSBidWcjMTIzNDgzNDogZml4ZXMgdGFyZ2V0YWRkcnRpbWVvdXQgc28gaXRzIHdyaXRhYmxlCgoyMDA1LTA5LTI5IDE4OjE2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb2x1bW5fZW51bXMuY29uZjoKCiAgIGFkZGVkIGdlbmVyYXRpb24gb2YgZW51bXMgZm9yIHNjYWxhcnMKCjIwMDUtMDktMjkgMTM6MTYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBzZXQgc29jayBidWYgc2l6ZSBmb3IgdW5peCBkb21haW4gc29ja2V0cwoKMjAwNS0wOS0yOSAwNjowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlVHJpZ2dlci5jLAogICAgIG10ZVRyaWdnZXJDb25mLmM6CgogICBJbXBsZW1lbnQgc2luZ2xlLXZhbHVlZCB0aHJlc2hvbGQgdHJpZ2dlcnMuCgoyMDA1LTA5LTI4IDE4OjI4ICBhbGV4X2IKCiAgICogd2luMzIvbmV0LXNubXAvOiBuZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgV2luMzIgTVNWQzogIEVuYWJsZSBBRVMgZW5jcnlwdGlvbiB3aGVuIFNTTCBpcyBlbmFibGVkLgoKMjAwNS0wOS0yOCAxNzoyMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jOgoKICAgc3dhcCByZXZlcnNlZCBpZi9lbHNlIGNvZGUKCjIwMDUtMDktMjggMTU6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBwcm92aWRlIGRlZmF1bHQgZm9yIGludGVybmFsIHNlY25hbWUKCjIwMDUtMDktMjggMTI6MzggIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBGaXggbGFzdCByZW1haW5pbmcgInByZXNlbnQsIGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiIHdhcm5pbmcgb24gU29sYXJpcyA5CgoyMDA1LTA5LTI4IDExOjM2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBldmVudC5oLCBldmVudC8uY3ZzaWdub3JlLAogICAgIGV2ZW50L210ZUV2ZW50LmMsIGV2ZW50L210ZUV2ZW50LmgsCiAgICAgZXZlbnQvbXRlRXZlbnRDb25mLmMsIGV2ZW50L210ZUV2ZW50Q29uZi5oLAogICAgIGV2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywKICAgICBldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgsIGV2ZW50L210ZUV2ZW50U2V0VGFibGUuYwosIGV2ZW50L210ZUV2ZW50U2V0VGFibGUuaCwgZXZlbnQvbXRlRXZlbnRUYWJsZS5jCiwgZXZlbnQvbXRlRXZlbnRUYWJsZS5oLCBldmVudC9tdGVPYmplY3RzLmMsCiAgICAgZXZlbnQvbXRlT2JqZWN0cy5oLCBldmVudC9tdGVPYmplY3RzQ29uZi5jLAogICAgIGV2ZW50L210ZU9iamVjdHNDb25mLmgsIGV2ZW50L210ZU9iamVjdHNUYWJsZS5jLAogICAgIGV2ZW50L210ZU9iamVjdHNUYWJsZS5oLCBldmVudC9tdGVUcmlnZ2VyLmMsCiAgICAgZXZlbnQvbXRlVHJpZ2dlci5oLCBldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgICAgZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oLCBldmVudC9tdGVUcmlnZ2VyQ29uZi5jCiwgZXZlbnQvbXRlVHJpZ2dlckNvbmYuaCwgZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYwosIGV2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmgsCiAgICAgZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsCiAgICAgZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgsIGV2ZW50L210ZVRyaWdnZXJUYWJsZS5jCiwgZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmgsCiAgICAgZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsCiAgICAgZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmg6CgogICBOZXcgaW1wbGVtZW50YXRpb24gb2YgdGhlIERpc01hbiBFdmVudCBNSUIuCgoyMDA1LTA5LTI4IDEwOjI2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGFkZGVkIGRvY3VtZW50YXRpb24gZGVzY3JpYmluZyB0aGUgZXhlYygpIHBhdGggcmVxdWlyZW1lbnQKCjIwMDUtMDktMjggMTA6MjEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgVXBkYXRlZCBkb2NzIG9uIC1JYiB0byBkb2N1bWVudCBleHRyYSBsaW1pdGF0aW9ucwoKMjAwNS0wOS0yOCAwNjowOSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaDoKCiAgIEV4dGVuZCB0YWJsZSBpbnRlcmZhY2Ugd2l0aCByb3cgY29tcGFyaXNvbiBBUEkgcm91dGluZXMuCgoyMDA1LTA5LTI4IDA2OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvOiBpcXVlcnkuYywgaXF1ZXJ5Lmg6CgogICBVc2UgdGhlIGRlZmF1bHQgcXVlcnkgc2Vzc2lvbiBmcm9tIHRoZSBsaWJyYXJ5LgoKMjAwNS0wOS0yOCAwNjowMyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsCiAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgU3VwcG9ydCB0aGUgaWRlYSBvZiBhICJkZWZhdWx0IHNlc3Npb24iIGZvciB0aGUgcXVlcnkgY29udmVuaWVuY2Ugcm91dGluZXMuCgoyMDA1LTA5LTI4IDA1OjAwICB0YW5kZXJzCgogICAqIFJFQURNRToKCiAgIHJldmVhbCBteSBjb250aW51ZWQgcHJlc2VuY2UgYXJvdW5kIGhlcmUKCjIwMDUtMDktMjggMDQ6NTMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENhbGxiYWNrIHRvIHJlcG9ydCBlc3RhYmxpc2htZW50IG9mIGEgY29ubmVjdGlvbiAoZnJvbSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNS0wOS0yNyAyMjowMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICAtIGNvbnZlcnQgbWFzayB0byBuZXR3b3JrIGJ5dGUgb3JkZXIKICAgLSB1cGRhdGUgcGZ4X2xlbiBjb3VudGluZyBmb3IgbmV0d29yayBieXRlIG9yZGVyCiAgIC0gYWRkIGxpdHRsZSBlbmRpYW4gL3Byb2MvbmV0L3JvdXRlIGV4YW1wbGUgbGluZQogICAtIG9ubHkgc2V0IHJvdXRlIHBvbGljeSBmb3IgZGVmYXVsdCBnYXRld2F5IHJvdXRlcwogICAtIHVwZGF0ZSBmb3IgbmV3IHN0YXRpYyBwb2xpY3kgZmxhZwogICAtIG5ldyByb3V0ZSBjcmVhdGUvZGVsZXRlIGZ1bmN0aW9ucwoKMjAwNS0wOS0yNyAxOToyNSAgcnN0b3J5CgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYwo6CgogICAtIG1vdmUgYWN0aXZlIHJvdyBzZXQgcmVzdHJpY3Rpb24gdG8gZGVwZW5kZW5jeSBjaGVjayBmdW5jdGlvbgogICAtIHVwZGF0ZSBhc3NlcnQgdG8gdGVzdCBhZ2FpbnN0IG5ldyBleHBlY3RlZCB2YWx1ZQoKMjAwNS0wOS0yNyAxOToxMiAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi4xMC5oOgoKICAgYWRkIFNvbGFyaXMgMTAgc3VwcG9ydAoKMjAwNS0wOS0yNyAxOTowOCAgcnN0b3J5CgogICAqIE5FV1M6CgogICBtZW50aW9uIGR5bmFtaWMgaXB2NCByb3V0ZSBjcmVhdGlvbi9kZWxldGlvbgoKMjAwNS0wOS0yNyAxNzo0NSAgdGFuZGVycwoKICAgKiBSRUFETUUudHJ1NjQsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIFRydTY0IFVuaXggNS54IGJ1aWxkIGZpeGVzIChidWcgIzEyMTc1MDkpCgoyMDA1LTA5LTI3IDE0OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBwcmludCByYW5nZSBpbmZvcm1hdGlvbgoKMjAwNS0wOS0yNyAxMzoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSB1c2UgbmV3IHJvdXRlX2VudHJ5IGZ1bmN0aW9ucyBmb3IgZHluYW1pYyBpcHY0IHJvdXRlIGNyZWF0aW9uL2RlbGV0aW9uCiAgIC0gbnVrZSBnZW5lcmF0ZWQgY29sdW1uIHVuZG8gZnVuY3MsIHVzZSBuZXcgdGFibGUgbGV2ZWwgb25lIGluc3RlYWQKICAgLSBhZGQgc29tZSBkZXBlZGVuY3kgdmFsaWRhdGlvbiAoYWRkciB0eXBlICYgZXhwZWN0ZWQgYWRkciBsZW4pCgoyMDA1LTA5LTI3IDEzOjA1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6CgogICByZW1vdmUgZGVidWdnaW5nIGNvbW1lbnRzCgoyMDA1LTA5LTI3IDEyOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBwYXRjaCAjMTMwNDQwMDogYmV0dGVyIGhyU1dSdW5UeXBlIHN1cHBvcnQKCjIwMDUtMDktMjcgMTI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgcGF0Y2ggIzEyMjUzNjAgdG8gZml4IHRoZSBzbXV4IGVuY29kaW5nIG9mIHRoZSByZXF1ZXN0aWQgdG8gYSBzaWduZWQgaW50CgoyMDA1LTA5LTI3IDEyOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBrZXkgdmFjbSAibm8gYWNjZXNzIiB3YXJuaW5nIG9mZiBhZ2VudF9tb2RlIGluc3RlYWQgb2YgYXBwIHR5cGUKCjIwMDUtMDktMjcgMTI6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgcmVtb3ZlIHVubmVjZXNzYXJ5IHNvY2sgc3RhcnR1cAoKMjAwNS0wOS0yNyAxMjowNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIC0gZG9jdW1lbnQgdGhhdCBhZGRyZXNzZXMgYXJlIGluIG5ldHdvcmsgYnl0ZSBvcmRlcgogICAtIGJ1bXAgbWF4IHBvbGljeSBvaWQgbGVuZ3RoIHRvIDIsIHRvIGhhbmRsZSBkZWZhdWx0IG51bGwgb2lkIGNhc2UKICAgLSBtb3ZlIHBvbGljeSBzdGF0aWMgZmxhZyBkZWZpbml0aW9uIHdpdGggb3RoZXIgZmxhZ3MKICAgLSBjaGFuZ2UgcG9saWN5IHN0YXRpYyBmbGFnIHNvIGFzIG5vdCB0byBjb25mbGljdCB3aXRoIGl0ZW0gY2hhbmdlZCBmbGFncwogICAtIGFkZCBuZXcgcG9saWN5IGRlZXAgY29weSBmbGFnCiAgIC0gYWRkIG1hY3JvIG9mICdjaGFuZ2UgaXRlbScgZmxhZ3MgbWFzawoKMjAwNS0wOS0yNyAxMjowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIGFkZCAtLWZvcndhcmQgZmxhZyB0byBwYXRjaCBjb21tYW5kCgoyMDA1LTA5LTI3IDEyOjAwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6CgogICAtIHVzZSBuZXcgbWliMmMgbGVmdC9yaWdodCBoYW5kIGxlbmd0aCB1bml0cyBmb3IgcHJvcGVyIHNpemVzIHdoZW4gY29weWluZwogICAgIGFuZCBjb21wYXJpbmcgZGF0YQoKMjAwNS0wOS0yNyAxMTo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaToKCiAgIC0gb3ZlcnJpZGUgZGVmYXVsdCBsZWZ0L3JpZ2h0IGhhbmQgbGVuZ3RoIHVuaXRzOyBib3RoIGFyZSBlbGVtZW50cwogICAtIHVwZGF0ZSBpbml0aWFsIHNldCBvZiBtYXggbGVuIHRvIGJlIGVsZW1lbnRzCgoyMDA1LTA5LTI3IDExOjU4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIGRlZmluZSBkZWZhdWx0IGxlZnQvcmlnaHQgaGFuZCBsZW5naHQgdW5pdHMgKGJ5dGVzL2VsZW1lbnRzKQoKMjAwNS0wOS0yNyAxMTo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgLSBkZWZpbmUgc2VwYXJhdGUgc2V0dGFibGUgZmxhZ3MKICAgLSBkZWZpbmUgc2V0dGFibGUgY29sdW1uIG1hY3JvCgoyMDA1LTA5LTI3IDExOjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICBmaXggaW5jb3JyZWN0IHJldHVybiBkZWZpbmUgc3VnZ2VzdGlvbiBpbiBjb21tZW50CgoyMDA1LTA5LTI3IDExOjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBhbHdheXMgdHJhY2sgaWYgZGF0YSBjb250ZXh0IHdhcyBwcm92aWRlZCBieSB1c2VyCiAgIC0gZG9uJ3QgY2FsbCBkYXRhIGN0eCBpbml0IHJvdXRpbmUgZm9yIHVzZXIgcHJvdmlkZWQgZGF0YQogICAtIHJlbW92ZSBpbnRlcm5hbC92ZXJib3NlIHByZWZpeCBmcm9tIGFsbCBkZWJ1ZyBlcnJvciBjYXNlcwogICAtIGRvbid0IHRyeSB0byBjb3B5IGluZGV4ZXMgaWYgaW5kZXggY2hlY2sgZmFpbGVkIChhbmQgY3R4IHdhcyByZWxlYXNlZCEpCiAgIC0gY2FsbCByb3dfcHJlcCBmb3IgbmV3bHkgY3JlYXRlZCByb3dzIChkeW5hbWljIHJvdyBjcmVhdGlvbikKICAgLSBjYWxsIG5ldyB0YWJsZSB1bmRvIGJlZm9yZSBjb2x1bW4gdW5kbwoKMjAwNS0wOS0yNyAxMTo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcGVyc2lzdGVuY2UubTJpOgoKICAgLSBvbmx5IGluY2x1ZGUgc2V0dGFibGUgb2JqZWN0IHdoZW4gY2FsY3VsYXRpbmcgdG1wIHN0b3JhZ2Ugc2l6ZQogICAtIGRvbid0IGNhbGwgY29sX3NhdmUgcm91dGluZSBpZiBjb2x1bW4gaXNuJ3Qgc2V0dGFibGUKCjIwMDUtMDktMjcgMTE6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBhZGQgdGFibGUgbGV2ZWwgdW5kbyBiZWZvcmUgY29sdW1uIGxldmVsIHVuZG8KCjIwMDUtMDktMjcgMTE6NDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpOgoKICAgaGFuZGxlIG5ld2x5IGNyZWF0ZWQgcm93IHcvcm93IHN0YXR1cyBvZiBkZXN0cm95CgoyMDA1LTA5LTI3IDExOjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmM6CgogICAtIGRvbid0IGZyZWUgcnRfcG9saWN5IGlmIHN0YXRpYyBmbGFnIHNldAogICAtIG5ldyBmdW5jdGlvbiB0byBzZXQgcm91dGUgY2hhbmdlcwogICAtIG5ldyBmdW5jdGlvbiB0byBjb3B5IHJvdXRlX2VudHJpZXMKCjIwMDUtMDktMjcgMTE6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZS5oOgoKICAgcmVxdWlyZSBuZXcgcm91dGVfaW9jdGwgZm9yIGxpbnV4CgoyMDA1LTA5LTI3IDExOjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jOgoKICAgLSB1cGRhdGUgdGltZW91dCBmb3IgYXV0by11cGRhdGUgY2FjaGVzIHdoZW4gbWliIHZhbHVlIGNoYW5nZWQKCjIwMDUtMDktMjcgMTE6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBtb3ZlIGNvZGUgZm9yIGhlbHAgY2FzZSBhZnRlciBhbGwgY29tbWFuZCBsaW5lIGFyZ3MgaGF2ZSBiZWVuIHByb2Nlc3NlZAogICAtIGFkZCBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbiAoLW4pIGZvciAnYXBwbGljYXRpb24gbmFtZSc7IHZlcnkgdXNlZnVsIGZvcgogICAgIGhhdmluZyBtdWx0aXBsZSBjb25maWdzLCBhbmQgd29ya3Mgd2VsbCB3aXRoIHBlcnNpc3RlbnQgc3RvcmUgdG9vLiBPcGVuCiAgICAgZm9yIHN1Z2dlc3Rpb25zIG9uIGEgZGlmZmVyZW50IGNoYXIgKG9yIG1lcmdlIHcvc29tZSBleGlzdGluZyBtdWx0aS1jaGFyCiAgICAgc2V0OyBtYXliZSAtQykuCgoyMDA1LTA5LTI3IDExOjI2ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMDktMjcgMTE6MjYgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIGFkZCBkaXNtYW4vZXZlbnQtbWliIHRvIGRlZmF1bHQgbW9kdWxlIGxpc3QKICAgLSBhZGQgaG9zdCB0byBkZWZhdWx0IG1vZHVsZSBsaXN0IGZvcgogICAgIGxpbnV4KiB8IG1pbmd3MzIqIHwgY3lnd2luKiB8IGZyZWVic2QqIHwgZHluaXgqIHwgc29sYXJpczIqIHwgaHB1eCoKCjIwMDUtMDktMjcgMTA6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaWYtbWliL2lmWFRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBzb21lIG5vbi1zb3VyY2UgZmlsZXMgZ2VuZXJhdGVkIGJ5IE1GRAoKMjAwNS0wOS0yNyAxMDo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzLzogcm91dGVfaW9jdGwuYywKICAgICByb3V0ZV9pb2N0bC5oLCByb3V0ZV9saW51eC5oOgoKICAgY29weSByb3V0ZSBpb2N0bHMgZnJvbSBtaWJJSS9yb3V0ZV93cml0ZSAmIHVwZGF0ZSBmb3Igcm91dGVfZW50cnkKCjIwMDUtMDktMjYgMTk6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggYnVnIDEyOTI4OTYgY2hlY2tpbmcgZm9yIC0xIGJlZm9yZSBzZWFyY2hpbmcgZm9yIFRDIHR5cGUKCjIwMDUtMDktMjYgMTg6NTQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0wOS0yNiAxODo0MCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGRvbid0IG1ha2UgZGVjaXNpb25zIGJhc2VkIG9uIHRhcmdldF9vcyB1bnRpbCBhZnRlciBpdCdzIHNldCEKCjIwMDUtMDktMjYgMTg6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgQnVnIFBhdGNoICMxMjk2ODQyOiBkb24ndCByZXR1cm4gZnJvbSB2b2lkIGZ1bmN0aW9uCgoyMDA1LTA5LTI2IDE2OjIxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnOgoKICAgZml4IFNOTVB2MyBjb25maWcgaWYgQUVTIGlzbid0IGF2YWlsYWJsZQoKMjAwNS0wOS0yNiAxMzowMCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgRml4ICIteCIgb3B0aW9uCgoyMDA1LTA5LTI2IDA4OjI1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgT3BlbkJTRCBidWlsZCBmaXg6IGJyaW5nIGluIHN5cy90aW1lb3V0LmgKCjIwMDUtMDktMjQgMTU6MDIgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBXaW4zMiBpbnN0YWxsZXI6ICBQdXQgYmFjayBtaXNzaW5nICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29tcGxldGVseQogICByZW1vdmUnIG1lc3NhZ2Ugd2hlbiB1bmluc3RhbGxpbmcuCgoyMDA1LTA5LTIzIDIxOjQ1ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS5idWlsZC53aW4zMi50eHQsCiAgICAgaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFdpbjMyIGluc3RhbGxlcjogIEFkZCBvcHRpb25hbCBjaGVjayBmb3IgT3BlblNTTCBETEwgKGxpYmVheTMyLmRsbCkKCjIwMDUtMDktMjMgMTI6MjQgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgbm90ZSB0aGF0IHNubXBkIG5vdyBpbXBsZW1lbnRlZCBub3RpZmljYXRpb24gbG9nZ2luZyBhbmQgZmlsdGVyaW5nCgoyMDA1LTA5LTIzIDEwOjQxICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZToKCiAgIFJlcnVuIGF1dG9jb25mCgoyMDA1LTA5LTIzIDEwOjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIHNocmluayBidWZmZXIgc2l6ZSBzbyBNSUIgc2l6ZSBsaW1pdCBub3QgZXhjZWVkZWQKCjIwMDUtMDktMjIgMTk6MDIgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBtb3ZlIHNvY2tldHZhci5oIGFmdGVyIHNvY2tldC5oCgoyMDA1LTA5LTIyIDE3OjIxICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgV2luMzIgaW5zdGFsbGVyOiAgRGVmYXVsdCB0byBkaXNsYWJlZCBmb3IgZGV2ZWxvcG1lbnQgZmlsZXMuCgoyMDA1LTA5LTIyIDE1OjM1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgcHV0IHZhciBuYW1lIGluIGJyYWNlcyB0byBzZXBhcmF0ZSBmcm9tIGFwcGVuZGVkIHRleHQKCjIwMDUtMDktMjAgMDk6MjMgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFNpbmNlIHRoZSBsZW5ndGggcGFyYW1ldGVyIGlzbid0IGFsd2F5cyByZXF1aXJlZCB3aGVuIHN0b3JpbmcgZGF0YSwKICAgYWxsb3cgaXQgdG8gYmUgb21pdHRlZCAoYW5kIGNvcnJlY3QgdGhlIG1pc2xlYWRpbmcgY29tbWVudCBhcyB0bwogICBob3cgdGhpcyBpcyBhY3R1YWxseSB1c2VkISkKCjIwMDUtMDktMTYgMTU6MzAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUGF0Y2ggZnJvbSBQYXRyaWNrIFdlbGNoZSB0byBmaXggcXVvdGluZyBmb3IgbmV3ZXIgYXV0b2NvbmZzCgoyMDA1LTA5LTE2IDE1OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jOgoKICAgY29ycmVjdCBtaXNzaW5nIGZ1bmN0aW9uIGNhbGxzIG5vdyByZXBsYWNlZCBieSB0ZGF0YS4KCjIwMDUtMDktMTYgMTQ6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHN1cHBvcnQgZm9yIHN0cmluZyBwYXJzaW5nIG9mIGNvdW50ZXI2NHMKCjIwMDUtMDktMTYgMTQ6MzQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0wOS0xNiAxNDozMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgdXBkYXRlIG91dC1vZi1zeW5jIHZlcnNpb24gbnVtYmVycwoKMjAwNS0wOS0xNiAxMzowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmM6CgogICBkb24ndCB0cnkgdG8gdXNlIFNJT0MoQUREfERFTClSVCBpZiB0aGV5IGFyZW4ndCBkZWZpbmVkCgoyMDA1LTA5LTE2IDEyOjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgSFJTV1JVTlBFUkZfTUVNIGRvbid0IHdvcmsgb24gZGFyd2luOAoKMjAwNS0wOS0xNiAxMjo0MSAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgdXNlIG5ldyBjb25maWd1cmUgdmFyIFBFUkxMRE9QVFMKCjIwMDUtMDktMTYgMTI6MTAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBhZGQgbWlzc2luZyBzZWNvbmQgc2VtaWNvbG9uCgoyMDA1LTA5LTE2IDExOjUxICBkdHMxMgoKICAgKiBzbm1wbGliLzogY2hlY2tfdmFyYmluZC5jLCBzbm1wX2FwaS5jLAogICAgIHNubXBfbG9nZ2luZy5jOgoKICAgUGljayB1cCBhIGNvdXBsZSBvZiBzdHJheSAnc3RyaW5ncycgdGhhdCBzbGlwcGVkIHRocm91Z2guCiAgIChhbmQgYSBib2d1cyBBU04gdHlwZSBuYW1lKQoKMjAwNS0wOS0xNiAxMDo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIHJlZmluZSBjb25kaXRpb25hbCBpbmNsdWRlcyBsb2dpYwoKMjAwNS0wOS0xNiAxMDo0NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgaW5jbHVkZSBzeXMvc29ja2V0dmFyLmggaWZmIGF2YWlsYWJsZQoKMjAwNS0wOS0xNiAxMDo0MyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGJyZWFrIHBlcmwgbGQgb3B0cyBpbnRvIGl0cyBvd24gdmFyCgoyMDA1LTA5LTE2IDEwOjQxICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMDktMTYgMTA6MzEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBjb25maWd1cmUuaW4KCjIwMDUtMDktMTYgMDg6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIFR3ZWFrIHRvIHVzZSB0aGUgcmV2aXNlZCAndGRhdGEnIEFQSS4KCjIwMDUtMDktMTYgMDc6NDggIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuY29udGFpbmVyLmNvbmYsIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIFVzZSB0aGUgYXBwcm9wcmlhdGUgbGlicmFyeSB1dGlsaXR5IHJvdXRpbmVzIGZvciByZXR1cm5pbmcgYQogICBjb2x1bW4gdmFsdWUsIGFuZCBjaGVja2luZyB0aGUgdmFsaWRpdHkgb2YgYW4gYXNzaWdubWVudC4KCjIwMDUtMDktMTYgMDc6MzMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIFVzZSB0aGUgKHJldmlzZWQpIGNvbnRhaW5lci1iYXNlZCAndGFibGVfZGF0YTInIGhlbHBlci4KCjIwMDUtMDktMTYgMDc6MjEgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuY29udGFpbmVyLmNvbmYsIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEZpeCB0eXBvIHdoZW4gZGVmaW5pbmcgcmFuZ2Ugb2YgdmFsaWQgY29sdW1ucy4KCjIwMDUtMDktMTYgMDc6MTggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0Mi5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldDIuaDoKCiAgIEkndmUgbmV2ZXIgbGlrZSB0aGUgcmVuYW1pbmcgb2YgdGhlIGNvbnRhaW5lci1iYXNlZCB0YWJsZV9kYXRhCiAgIEFQSSBjYWxscyBhbmQgZGF0YSBzdHJ1Y3R1cmVzLiAgSWYgd2UncmUgc3RhcnRpbmcgdG8gdGhpbmsgYWJvdXQKICAgcmVsZWFzaW5nIHRoaXMgY29kZSwgdGhlbiBhbnkgYWx0ZXJhdGlvbnMgbXVzdCBiZSBtYWRlICpiZWZvcmUqCiAgIHRoaXMgZ29lcyBsaXZlLCBvciBlbHNlIGl0J2xsIGJlIHRvbyBsYXRlLgoKICAgSSd2ZSBmaW5hbGx5IGNvbWUgdXAgd2l0aCBhIGZvcm0gb2YgbmFtaW5nIGZvciB0aGUgdGFibGVfZGF0YTIKICAgY29kZSB0aGF0IEknbSByZWFzb25hYmx5IGhhcHB5IHdpdGggKGJhc2VkIGFyb3VuZCAndGRhdGEnKSwKICAgc28gdGhpcyBwYXRjaCByZXdyaXRlcyB0aGlzIGhlbHBlciB0byB1c2UgdGhhdCBzdHlsZSAoYXMgd2VsbAogICBhcyB0d2Vha2luZyB0aGUgZGF0YXNldDIgY29kZSB0byBtYXRjaCkuCiAgICAgVGhlIG1haW4gZGF0YXNldDIgQVBJIGhhc24ndCBiZWVuIHByb3Blcmx5IHVwZGF0ZWQsIGJ1dCB0aGlzCiAgIHNob3VsZCBwcm9iYWJseSBhbHNvIGJlIGFkZHJlc3NlZCBiZWZvcmUgNS4zIGdvZXMgb3V0IG9mIHRoZSBkb29yLgoKICAgVGhpcyB2ZXJzaW9uIGFsc28gaWxsdXN0cmF0ZXMgYSBzdWl0YWJsZSAiZ2VuZXJpYyB0YWJsZSBBUEkiLAogICB0aGF0IGNvdWxkIHVzZWZ1bGx5IGJlIGNvbnNpZGVyZWQgZm9yIG90aGVyIHRhYmxlIGhlbHBlcnMgYXMKICAgd2VsbC4gIFNvbWUgYXNwZWN0cyBvZiBpdCBtYXkgYmUgc3BlY2lmaWMgdG8gdGhlIHRhYmxlX2RhdGEKICAgZnJhbWV3b3JrLCBidXQgdGhlIGJhc2ljIGlkZWFzIGFyZSBtb3JlIHdpZGVseSByZWxldmFudC4KCjIwMDUtMDktMTYgMDY6NDQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldDIuYzoKCiAgIEEgY29udGFpbmVyLWJhc2VkICdkYXRhc2V0JyBpbXBsZW1lbnRhdGlvbiB3aWxsIGF1dG9tYXRpY2FsbHkgY29udmVydAogICBHRVRORVhUL0JVTEsgcmVxdWVzdHMgaW50byBhbiBlcXVpdmFsZW50IEdFVCByZXF1ZXN0IChpbmNsdWRpbmcgdXBkYXRpbmcKICAgdGhlIE9JRCkuICBTbyBhbGwgdGhhdCdzIHJlcXVpcmVkIGlzIHRvIHJldHVybiB0aGUgYXBwcm9wcmlhdGUgdmFsdWUuCiAgIFRoZSAnbmV0c25tcF90YWJsZV9kYXRhMl9idWlsZF9yZXN1bHQnIHJvdXRpbmUgaXMgdGhlcmVmb3JlIHJlZHVuZGVudC4KCjIwMDUtMDktMTYgMDY6MzcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgICAgc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBEZWZpbmUgYSBuZXcgY2hlY2sgdXRpbGl0eSByb3V0aW5lIGZvciB1bnNpZ25lZCBpbnRlZ2Vycy4KICAgSW50ZWdlcnMgYXJlIG1lYW50IHRvIGJlIHJlcHJlc2VudGVkIGFzICdsb25nJyByYXRoZXIgdGhhbiAnaW50JyB2YWx1ZXMuCgoyMDA1LTA5LTE2IDA2OjMwICBkdHMxMgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBpbnQ2NC5jLCBwYXJzZS5jLAogICAgIHJlYWRfY29uZmlnLmMsIHNubXAtdGMuYywgc25tcEFBTDVQVkNEb21haW4uYywKICAgICBzbm1wSVBYRG9tYWluLmMsIHNubXBUQ1BEb21haW4uYywKICAgICBzbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wVURQRG9tYWluLmMsCiAgICAgc25tcFVEUElQdjZEb21haW4uYywgc25tcF9hcGkuYywgc25tcF9sb2dnaW5nLmMKLCBzbm1wX3RyYW5zcG9ydC5jOgoKICAgQmxpdHogdXNlIG9mICdzdHJpbmcnIGFzIGEgdmFyaWFibGUgbmFtZS4KCjIwMDUtMDktMTYgMDU6NDkgIGR0czEyCgogICAqIGNvbmZpZ3VyZToKCiAgIFJlZ2VuZXJhdGUgdG8gbWF0Y2ggdXBkYXRlZCAnY29uZmlndXJlLmluJwoKMjAwNS0wOS0xNiAwMToxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICBVc2UgYSBzZWN1cml0eSBtb2RlbCBudW1iZXIgZGVmaW5lZCBpbiB0aGUgZ2xvYmFsIGhlYWRlciBpbnN0ZWFkIG9mIGEKICAgaGFyZC1jb2RlZCBudW1iZXIKCjIwMDUtMDktMTYgMDE6MTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oOgoKICAgZGVmaW5lIHNlY3VyaXR5IG1vZGVsIG51bWJlcnMgZm9yIG5ldC1zbm1wIHNwZWNpZmljIHNlY3VyaXR5IG1vZGVscwogICBoZXJlIHRvIGtlZXAgYSByZWdpc3RyeSBpbiBhIGNlbnRyYWwgcGxhY2UuCgoyMDA1LTA5LTE2IDAxOjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGxvY2Fsc20uaCwKICAgICBzbm1wbGliL3NubXBsb2NhbHNtLmM6CgogICAtIERlZmluZWQgYSBsb2NhbCBzZWN1cml0eSBtb2RlbCB0aGF0IGFzc3VtZXMgdGhlIHBlcnNvbiB0aGF0IGV4ZWN1dGVkCiAgICAgdGhlIGFnZW50IGlzIHRoZSBvbmUgd2hvIHNob3VsZCBiZSBhdXRob3JpemVkLiAgSXQgcmVxdWlyZXMgdGhhdCBhCiAgICAgdHJhbnNwb3J0IHdhcyB1c2VkIHRoYXQgd2FzIG5vdCBhIGRpcmVjdCBuZXR3b3JrIHRyYW5zcG9ydCAoRUcsCiAgICAgY3VycmVudGx5IHRoaXMgbWVhbnMgaXQgd2FzIHR1bm5lbGVkIG9yIHNlbnQgdGhyb3VnaCBzdGRpbi9vdXQKICAgICBjaGFubmVsKS4gIEF1dGhlbnRpY2F0aW9uIGFuZCBlbmNyeXB0aW9uIGxldmVsLCBiZWluZyB1bmtub3duLCBpcwogICAgIGxlZnQgYXQgbm9BdXRoTm9Qcml2LgoKICAgICBUaGlzIG1vZGVsIGlzIGV4cGVjdGVkIHRvIGJlIHVzZWQgZm9yIGV4cGVyaW1lbnRhbCBhbmQgcHVycG9zZXMgb25seQogICAgIGF0IHRoaXMgdGltZSBhbmQgc2hvdWxkIHByb2JhYmx5IG5vdCBiZSB1c2VkIGluIHByb2R1Y3Rpb24uCgoyMDA1LTA5LTE2IDAwOjQ1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oOgoKICAgZGVmaW5lIGEgUERVIHR1bm5lbGVkIGZsYWcKCjIwMDUtMDktMTUgMTE6NTggIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3IgbW50X2RpciBpbiBzdGF0dmZzCgoyMDA1LTA5LTE1IDA5OjUwICBoYXJkYWtlcgoKICAgKiBtaWJzL21ha2VodG1sLnBsOgoKICAgQWRkZWQgYSBsaW5rIHRvIHRoZSBjb25mb3JtYW5jZSBzdW1tYXJ5LgoKMjAwNS0wOS0xNSAwOTo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgLSBBZGRlZCBTVEQgaW5pdAoKMjAwNS0wOS0xNSAwOTo0NiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTVEREb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgICBzbm1wbGliL3NubXBTVEREb21haW4uYzoKCiAgIC0gQWRkZWQgYWJpbGl0eSBmb3IgU1REIGhhbmRsZXIgdG8gY2FsbCBleHRlcm5hbCB0aGluZ3MgdG8gcGlwZSB0by9mcm9tCiAgIC0gQmVnaW5uaW5nIHN1cHBvcnQgZm9yIGEgdHJhbnNwb3J0IGJlaW5nIGtub3duIGFzICJ0dW5uZWxlZCIuCgoyMDA1LTA5LTE1IDA5OjQ1ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgbWlub3IgZml4ZXMKCjIwMDUtMDktMTUgMDk6NDQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBEZWZpbml0aW9ucyBmb3IgbmV3IGZlYXR1cmVzIChzdGQgYW5kIGEgZnV0dXJlIFNNIG1vZGVsKQoKMjAwNS0wOS0xNCAyMzowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgY2hlY2sgZm9yIHN0cnVjdCBtZW1iZXIgYmVmb3JlIHVzaW5nCgoyMDA1LTA5LTE0IDIwOjI0ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBjaGVjayBmb3Igc3lzL3NvY2tldHZhci5oIGVhcmxpZXIKICAgLSBpbmNsdWRlIHN5cy9zb2NrZXR2YXIuaCBpbiBuZXR3b3JrIGhlYWRlciB0ZXN0cwogICAtIGZpeCB3aXRob3V0LWVsZiB0ZXN0CgoyMDA1LTA5LTE0IDIwOjA2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOC5oOgoKICAgbWlzc2luZyBkZWZpbmVzIGZvciBkYXJ3aW44IChPUyBYIDEwLjQuMikKCjIwMDUtMDktMTQgMTQ6MTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1RERG9tYWluLmgsCiAgICAgc25tcGxpYi9zbm1wU1RERG9tYWluLmM6CgogICBBZGRlZCBhIG9kZCB0cmFuc3BvcnQgdG8gZG8gc3R1ZmYgdGhyb3VnaCBzdGRpbi9vdXQKCjIwMDUtMDktMTMgMTQ6NDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2NraW5nLmg6CgogICByZW1vdmUgdW51c2VkIGZpbGUKCjIwMDUtMDktMTIgMTE6MzYgIGR0czEyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBQcm92aWRlIGEgbWFrZSB0YXJnZXQgZm9yIHRlc3RpbmcgdGhlIE1JQnMgaW1wbGVtZW50ZWQgYnkgYW4gYWdlbnQuCiAgIFRoZSBiZWhhdmlvdXIgb2YgdGhpcyB0YXJnZXQgbWF5IG5lZWQgc29tZSBhZGp1c3RtZW50LCBidXQgaXQncyBhIHN0YXJ0Li4uCgoyMDA1LTA5LTEyIDExOjI0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBEb2N1bWVudCB0aGF0ICdkZWxldGVfcm93JyBob29rIGRvZXNuJ3QgcmV0dXJuIGEgdXNlZnVsIHJlc3VsdC4KCjIwMDUtMDktMTIgMTE6MTYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaDoKCiAgIEluY2x1ZGUgdGhlIHRhYmxlX2FycmF5IGhlbHBlciAoYXMgdXNlZCBieSB0aGUgIm1pYjJjLmFycmF5LXVzZXIuY29uZiIKICAgdGVtcGxhdGUpIGluIHRoZSBjb21iaW5lZCBoZWxwZXIgaGVhZGVyIGZpbGUuCiAgICAgKE5vdyB3ZSdsbCBmaW5kIG91dCB3aHkgaXQgd2FzIG9taXR0ZWQuLi4uLikKCjIwMDUtMDktMTIgMTA6NTAgIGR0czEyCgogICAqIHNubXBsaWIvOiBjaGVja192YXJiaW5kLmMsIHNubXAtdGMuYzoKCiAgIEVuc3VyZSB0aGF0IGludmFsaWQgUm93U3RhdHVzIGFzc2lnbm1lbnRzIHJldHVybiBhICd3cm9uZ1ZhbHVlJyBlcnJvci4KCjIwMDUtMDktMTIgMTA6NDYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgICAgc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBBZGRpdGlvbmFsIFNFVCB2YWxpZGF0aW9uIHV0aWxpdHkgcm91dGluZXMKICAgKGZvciBPSUQgYW5kIGdlbmVyYWwgSU5URUdFUiBhc3NpZ25tZW50cykKCjIwMDUtMDktMTIgMTA6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbGl0aWVzLmgsIHV0aWxpdGllcy9pcXVlcnkuaDoKCiAgIEluY2x1ZGUgdGhlIG5ldyAiaW50ZXJuYWwgcXVlcnkiIG1vZHVsZQoKMjAwNS0wOS0wOSAwNzoxMSAgZHRzMTIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIG5ldyBtaWIyYyBjb25maWcgZmlsZXMuIChCdWcgIzEyODQzMTUpCgoyMDA1LTA5LTA5IDA2OjA5ICBkdHMxMgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBFbnN1cmUgdGhhdCB0aGUgTUlCIGludGVybmFscyBhcmUgaW5pdGlhbGlzZWQgYmVmb3JlIHVzaW5nIHRoZW0uICAoQnVnICM3MDU1MzYpCgoyMDA1LTA5LTA4IDE0OjU2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICByZW1vdmUgc2h1dGRvd24gY29kZSAoaGFuZGxlZCBieSBpZlRhYmxlKQoKMjAwNS0wOS0wNyAxMDozMCAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgRml4IGEgJ215JyBsaXN0IGRlY2xhcmF0aW9uIHRoYXQgc2xpcHBlZCB0aHJvdWdoIHRoZSBuZXQuCiAgIENhbiBmaW5hbGx5IGNsb3NlIGJ1Z3MgIzU3OTcwNSAmICM2MDExOTAuCgoyMDA1LTA5LTA3IDA3OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBSZXBvcnQgZXJyb3JzIGZvciBpbnZhbGlkIHRhYmxlIE9JRHMgYXBwcm9wcmlhdGVseSBmb3IgdGhlIHR5cGUgb2YgcmVxdWVzdC4KICAgKEJhc2VkIG9uIHBhdGNoICMxMjc2OTk5IGJ5IFJvYmVydCBXaWxjb3gpCgoyMDA1LTA5LTA3IDA1OjEzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIFR3ZWFrIHRvIFVTTSBkZWJ1Z2dpbmcgLSBoZWxwIGRldGVjdCBlbmdpbmVJRCBtaXNtYXRjaGVzCgoyMDA1LTA5LTA2IDIxOjQ4ICBhbGV4X2IKCiAgICogd2luMzIvOiBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbiwgbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sCiAgICAgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCBuZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbgosIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyIGJ1aWxkIGZpeGVzCgoyMDA1LTA5LTA2IDIwOjM3ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgV2luMzIgTVNWQyBjb21waWxlIGZpeCAtIGRlY2xhcmUgdmFyaWFibGVzIGF0IHRoZSB0b3Agb2YgdGhlIGZ1bmN0aW9uLgoKMjAwNS0wOS0wNiAyMDowNyAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIENoYW5nZSBkZWZhdWx0IHZlcnNpb24gZm9yIGJpbmFyeS4KCjIwMDUtMDktMDYgMjA6MDYgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL01ha2VmaWxlLmluLCB3aW4zMi9idWlsZC5wbAosIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIEFkZCAnRGV2ZWxvcG1lbnQgZmlsZXMnIHNlY3Rpb24gdG8gd2luMzIgYmluYXJ5CgoyMDA1LTA5LTA2IDE5OjI5ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9SRUFETUUudHh0OgoKICAgV2luMzI6IFVwZGF0ZSBiaW5hcnkgUkVBRE1FLnR4dCB0byByZWZlcmVuY2UgUkVBRE1FLndpbjMyCgoyMDA1LTA5LTA2IDE5OjE3ICB0YW5kZXJzCgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvLmN2c2lnbm9yZQo6CgogICBhZGQgLmxpYnMgYW5kICoubG8KCjIwMDUtMDktMDYgMTY6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86CiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwgbWliSUkvdWRwVGFibGUuYzoKCiAgIGZpeCByZXZlcnNlZCBpcEFkZHJlc3Mgb24gbGl0dGxlIGVuZGlhbiBhcmNoaXRlY3R1cmVzCgoyMDA1LTA5LTA2IDExOjE5ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgbW92ZSB0byBsaWJ0b29sIHJlY29tbWVuZGVkIHZlcnNpb25pbmcKCjIwMDUtMDktMDUgMTk6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBpZlRhYmxlL2lmVGFibGUuYywKICAgICBpZlRhYmxlL2lmVGFibGUuaCwgaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMKLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgsIGlmWFRhYmxlL2lmWFRhYmxlLmMKLCBpZlhUYWJsZS9pZlhUYWJsZS5oLCBpZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaAosIGlmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQoKMjAwNS0wOS0wNSAxNjoxNiAgcnN0b3J5CgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnOgoKICAgY2hlY2sgZm9yIE9wZW5TU0wgYmVmb3JlIHRyeWluZyB0byB1c2UgQUVTCgoyMDA1LTA5LTA0IDEyOjA4ICByc3RvcnkKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIHVzZSBleGlzdGluZyBTTk1QX1ZFUkJPU0UgZW52IHZhbHVlLCBpZiBzZXQKCjIwMDUtMDktMDQgMTE6NTYgIHJzdG9yeQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICB0ZXN0IGNvbmRpdGlvbmFsIGluc3RlYWQgb2YgaWdub3JpbmcgZXhlY3V0aW9uIGVycm9yCgoyMDA1LTA5LTAyIDIwOjMzICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRyYXBkX2F1dGguYywgc25tcHRyYXBkX2F1dGguaDoKCiAgIGFkZGVkIHRlbXBsYXRlIGZ1bmN0aW9ucyBmb3IgYXV0aG9yaXphdGlvbiBkZWNpc2lvbnMKCjIwMDUtMDktMDIgMTk6MzIgIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlczoKCiAgIHJlbW92ZSAuY3ZzaWdub3JlIGZpbGVzCgoyMDA1LTA5LTAxIDE3OjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1wZXJzaXN0ZW5jZS5tMmk6CgogICBleHRyYSBwYXJhbm9pZCBsZW5ndGggY2hlY2tzCgoyMDA1LTA5LTAxIDE2OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBhY2NvdW50IGZvciBoZXhpZmllZCB0ZXh0IGxlbiBvbiBwZXJzaXN0ZW50IHN0b3JlIHNhdmUKCjIwMDUtMDgtMzEgMjI6MjkgIGFsZXhfYgoKICAgKiBORVdTLCBwZXJsL1NOTVAvU05NUC54czoKCiAgIEFwcGx5IHBhdGNoIGZvciBidWcgMTIwNjcxMjogUGVybCBnZXRuZXh0IGRvZXNuJ3QgaG9ub3IgZXhwbGljaXQgcmVmZXJlbmNlCiAgIHRvIE1JQiBmaWxlCgoyMDA1LTA4LTMwIDExOjQwICByc3RvcnkKCiAgICogdGVzdGluZy90ZXN0cy86IFQxNjByZmMxMjEzLCBUMTYxcmZjMTIxMywgVDE2MnJmYzEyMTMKOgoKICAgcmVtb3ZlIG5vbi1jb25kaXRpb25hbCB0ZXN0cyBvZiBwb3RlbnRpYWxseSB1bmltcGxlbWVudGVkIG9iamVjdHMKCjIwMDUtMDgtMzAgMDg6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIGtlZXAgcnVubmluZyBjb3VudCBvZiB0cmFwcyBzZW50CgoyMDA1LTA4LTMwIDA4OjE5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgYWRkIG5vdGlmaWNhdGlvbiBmaWx0ZXJpbmcgcGVyIFJGQyAzNDEzLCBzZWN0aW9uIDYKCjIwMDUtMDgtMzAgMDg6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24uaDoKCiAgIHVzZSBuZXcgbWZkIHNubXBOb3RpZnlGaWx0ZXJUYWJsZQoKMjAwNS0wOC0zMCAwODowNiAgcnN0b3J5CgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2NvbnN0YW50cy5oCjoKCiAgIG5ldyBmaWxlCgoyMDA1LTA4LTI5IDIxOjAzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS8uY3ZzaWdub3JlLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvLmN2c2lnbm9yZSwKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSB0eHQgZmlsZXMKCjIwMDUtMDgtMjkgMjE6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IHNubXAtbm90aWZpY2F0aW9uLW1pYi5oLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuaCwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlLy5jdnNpZ25vcmUsCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYwosCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuaAosCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIC0gbmV3IE1GRCBzbm1wTm90aWZ5RmlsdGVyVGFibGUKCjIwMDUtMDgtMjkgMjA6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICAtIHJlbW92ZSBjb21tZW50ZWQgb3V0IG1pYjJjIGNvZGUKICAgLSBzZXQgcm93IGRpcnR5IGZsYWcgb24gc3VjY2VzZmZ1bCBjb21taXQKICAgLSBjbGVhciByb3cgZGlydHkgZmxhZyBvbiBzdWNjZXNzZnVsIHVuZG8gY29tbWl0CgoyMDA1LTA4LTI5IDIwOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBjaGFuZ2UgZGlydHkgZmxhZyB0byB1X2ludAogICAtIGFsd2F5cyBnZW5lcmF0ZWQgaW50ZXJmYWNlIGlycmV2ZXJzaWJsZV9jb21taXQKICAgICAtIG1vdmUgYXV0byByb3cgaW5zZXJ0L2RlbGV0ZSB0byBpcnJldmVyc2libGVfY29tbWl0CiAgIC0gcmVsZWFzZSBkZWxldGVkIHJvd3MgaW4gcG9zdF9yZXF1ZXN0LCBiZWZvcmUgY2FsbGluZyB1c2VyCiAgIC0gd2FybmluZyBpZiBkaXJ0eSBmbGFnIHNldCBvbiB1bnN1Y2Nlc3NmdWwgcGFja2V0CiAgIC0gbWVtc2V0IGxvY2FsIHN0cnVjdCB0byAweDAwIGJlZm9yZSB1c2UKICAgLSBjb3B5IGluZGV4ZXMgdG8gcm93cmVxIG9pZF9pZHggb24gY3JlYXRlCiAgIC0gc2V0IChpbmNyKSBnbG9iYWwgZGlydHkgaWYgdXNlciBzZXQgcm93IGRpcnR5CiAgIC0gY2xlYXIgKGRlY3IpIGdsb2JhbCBkaXJ0eSBpZiB1c2UgY2xlYXJlZCBmbGFnIG9uIHVuZG8KCjIwMDUtMDgtMjkgMjA6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBhdXRvY3JlYXRlIGN1cnJlbnQgZGlyLCBpZiBuZWVkZWQKCjIwMDUtMDgtMjkgMjA6NDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oOgoKICAgLSBmaXggY29tbWVudHMgb24gdXNlciBmbGFncwogICAtIGFkZCB1c2VyIGZsYWcgbWFzawogICAtIGFkZCBtZmQgcm93IG1hc2sKICAgLSBhZGQgTUZEX1JPV19ESVJUWSBmbGFnCgoyMDA1LTA4LTI5IDIwOjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1wZXJzaXN0ZW5jZS5tMmk6CgogICBhZGQgY29tbWVudHMKCjIwMDUtMDgtMjkgMjA6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtIGFkZCBjb21tZW50cwogICAtIG1vdmUgZmxhZyBjbGVhciBhIGxpdHRsZSBsYXRlcgoKMjAwNS0wOC0yOSAyMDozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICB0d2VhayBjb21tZW50CgoyMDA1LTA4LTI5IDIwOjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZGVwZW5kZW5jaWVzLm0yaToKCiAgIC0gZml4IHJlcXVpcmVkIGNvbHVtbnMgdGVzdCAodGhleSBhcmUgYSBtaW4sIG5vdCBleGFjdCByZXF1aXJlbWVudCkKICAgLSBhdXRvLXRyYW5zaXRpb24gY3JlYXRlQW5kR28gdG8gYWN0aXZlCiAgIC0gc2V0IE1GRF9ST1dfREVMRVRFRCBvbiBkZXN0cm95CiAgIC0gdHdlYWsgbG9nIG1lc3NhZ2Ugb24gY3JlYXRpb24gZXJyb3JzCgoyMDA1LTA4LTI5IDIwOjM2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgc25tcGxpYi92YWNtLmM6CgogICAtIHJld29yayB2aWV3IGxpc3QgZnVuY3Rpb25zIHRvIHRha2UgcG9pbnRlciB0byBoZWFkICh2cyBoYXJkY29kZWQgaGVhZCkKCjIwMDUtMDgtMjkgMjA6MzIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGFkZCBpdGVyYXRvciBzdXBwb3J0CgoyMDA1LTA4LTI5IDIwOjMxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgLSBmaXggc29tZSBjb21tZW50cwogICAtIHR3ZWFrcyBmb3IgaXRlcmF0b3Igc3VwcG9ydAogICAtIHJlbW92ZSB1bnVzZWQgc290ZWRfY29udGFpbmVyIHR5cGVkZWYKCjIwMDUtMDgtMjkgMjA6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXIKCjIwMDUtMDgtMjkgMjA6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAtIHNldCBuZXcgdGFyZ2V0IHBhcmFtTmFtZSBpbiBzZXNzaW9uCiAgIC0gZml4IGJ1Zzogc3RyZHVwIHNlY3VyaXR5TmFtZSwgc2luY2UgaXQgd2lsbCBiZSBmcmVlZCBvbiBzZXNzaW9uIGNsb3NlCgoyMDA1LTA4LTI5IDIwOjI0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBhZGQgdGFyZ2V0IHBhcmFtTmFtZQoKMjAwNS0wOC0yOSAyMDoyMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi86IHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYwosIHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaDoKCiAgIHJlbmFtZSBnZXRfRmlsdGVyTmFtZSAtPiBnZXRfRmlsZ2VyUHJvZmlsZU5hbWUKCjIwMDUtMDgtMjkgMjA6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jOgoKICAgbG9nIHdhcm5pbmcgb24gZHVwbGljYXRlIGFkZF9kYXRhCgoyMDA1LTA4LTI5IDIwOjE2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYzoKCiAgIGFkZCBkZWJ1ZwoKMjAwNS0wOC0yOSAyMDoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYl9tb2R1bGVzLmM6CgogICAtIG1vdmUgbWliIG1vZHVsZSBzaHV0ZG93bnMgdG8gYSBTSFVURE9XTiBjYWxsYmFjayBzbyB0aGV5IGFyZSBjYWxsZWQKICAgICBhZnRlciB0aGUgbGFzdCBzbm1wX3N0b3JlKCkgYW5kIGNhbiByZWxlYXNlIHRhYmxlIGRhdGEKICAgLSBhZGQgbG9naWMgZm9yIHRlc3RpbmcgZXh0cmEgaW5pdF9taWJfbW9kdWxlcygpIGNhbGxzCgoyMDA1LTA4LTI5IDIwOjEyICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gbW92ZSBtaWIgbW9kdWxlIHNodXRkb3ducyB0byBhIFNIVVRET1dOIGNhbGxiYWNrIHNvIHRoZXkgYXJlIGNhbGxlZAogICAgIGFmdGVyIHRoZSBsYXN0IHNubXBfc3RvcmUoKSwgYW5kIGNhbiByZWxlYXNlIHRhYmxlIGRhdGEKCjIwMDUtMDgtMjkgMjA6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBtb3ZlIGZpbmRfdmFyYmluZF9pbnRfbGlzdCB0byBzbm1wX2NsaWVudC5jCgoyMDA1LTA4LTI5IDIwOjA4ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBtb3ZlIGZpbmRfdmFyYmluZF9pbnRfbGlzdCB0byBzbm1wX2NsaWVudC5jCiAgIC0gcmVtb3ZlIGV4dHJhbmVvdXMgdGV4dCBpbiBkZWJ1ZyBtc2cKCjIwMDUtMDgtMjkgMjA6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBpZiBzaW5rIGNvbnRhaW5zICc6JywgcGFzcyB3aG9sZSB0aGluZyBhcyBwZWVybmFtZS4gKGFsbG93cyB0Y3Agc2lua3MpCgoyMDA1LTA4LTI5IDE4OjI1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBzbm1wbGliL2RhdGFfbGlzdC5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgaW50cm9kdWNlIGdyYW51bGFyIGNvbmZpZy9wZXJzaXN0ZW50IGZpbGUgZGlzYWJsZW1lbnQgKFBhdGNoICMxMjU5MjU3IGJ5IFN0ZXZlbiBGcmllZGwpCgoyMDA1LTA4LTI2IDA5OjE1ICBkdHMxMgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBBZHZlcnRpc2UgdGhlIG1haW4gUlBNIGFzIHByb3ZpZGluZyB0aGUgZXF1aXZhbGVudCBvZiB0aGUgUmVkSGF0L0ZlZG9yYQogICAnbmV0LXNubXAtdXRpbHMnIFJQTS4gIEJyaW5nIHRoZSBtYWluIGluZm9ybWF0aW9uIHNldHRpbmdzIGludG8gbGluZQogICB3aXRoIGN1cnJlbnQgcnBtYnVpbGQgZXhwZWN0YXRpb25zICgnTGljZW5zZScgcmF0aGVyIHRoYW4gJ0NvcHlyaWdodCcpCgoyMDA1LTA4LTI1IDA1OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fY29uZi5jLCB2YWNtX3ZhcnMuYzoKCiAgIFRoZSB2aWV3IG1hc2sgaXMgbm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGxlbmd0aCBhcyB0aGUgT0lEIGl0J3MKICAgbWFza2luZyBhZ2FpbnN0LiBDb25maWd1cmUgYW5kIHJlcG9ydCB0aGlzIHByb3Blcmx5LiAoQnVnICMxMjAyNjkyKQoKMjAwNS0wOC0yNSAwNTowNiAgZHRzMTIKCiAgICogc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBWYXJiaW5kIGNoZWNrcyBzaG91bGQgcmV0dXJuIGFuIFNOTVB2MiBlcnJvciAod3JvbmdWYWx1ZSkKICAgcmF0aGVyIHRoYW4gdGhlIGVxdWl2YWxlbnQgU05NUHYxIGVycm9yIChiYWRWYWx1ZSkuCgoyMDA1LTA4LTIzIDEwOjA1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgVXNlICdpcHNfZnJhZ21lbnRzJyBmaWVsZCBvZiBJUCBzdGF0aXN0aWNzIHN0cnVjdHVyZSwgaWYgYXZhaWxhYmxlCiAgIChTZWUgcGF0Y2ggIzExMDM3MzkpCgoyMDA1LTA4LTIzIDEwOjA0ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFRlc3QgZm9yICdpcHNfZnJhZ21lbnRzJyBmaWVsZCBpbiBJUCBzdGF0aXN0aWNzIHN0cnVjdHVyZS4KICAgKFNlZSBwYXRjaCAjMTEwMzczOSkKCjIwMDUtMDgtMjMgMDk6NTEgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBSZW1vdmUgJy1sJyBvcHRpb24gZnJvbSBvcHRhcmcgcHJvY2Vzc2luZwogICAoc2luY2UgdGhlIGNvcnJlc3BvbmRpbmcgY2FzZSBzdGF0ZW1lbnQgd2FzIGRlbGV0ZWQgbW9udGhzIGFnbyEpCiAgIFJlcG9ydGVkIGJ5IEpvaG4gUGZhZmYuCgoyMDA1LTA4LTIyIDIxOjE3ICBhbGV4X2IKCiAgICogTkVXUywgYXBwcy9zbm1wZGVsdGEuYzoKCiAgIHdpbjMyOiBGaXggZm9yICdzZWxlY3Q6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnknIGluIHNubXBkZWx0YQoKMjAwNS0wOC0yMiAxNDowOCAgdGFuZGVycwoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL2F1dGhvcHRzOgoKICAgYWRkIG1pc3NpbmcgQUVTIHN1cHBvcnQKCjIwMDUtMDgtMjIgMTM6NDkgIHRhbmRlcnMKCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmLCBzbm1wZC5jb25mLjUuZGVmLAogICAgIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgZnVsbHkgZG9jdW1lbnQgQUVTCgoyMDA1LTA4LTE5IDE5OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBncnJyOyAqcmVhbGx5KiBmaXggdHlwbwoKMjAwNS0wOC0xOSAxOTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgZml4IHR5cG8KCjIwMDUtMDgtMTkgMTA6MzUgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBlbXBoYXNpemUgdG8gdXNlICJwcm94eSAuLi4gLjEuMyIgKG5vdCBqdXN0IC4xKSB0byBwcm94eSB0aGUgZW50aXJlIE1JQiB0cmVlIChCdWcgIzEyNDk1OTQpCgoyMDA1LTA4LTE5IDEwOjA2ICB0YW5kZXJzCgogICAqIGFnZW50L3NubXBkLmM6CgogICBpbXByb3ZlIGhlbHAgb3V0cHV0IGZvciAiLUQiIChCdWcgIzEyNDk1NTYpIGFuZCAiLWMiCgoyMDA1LTA4LTE5IDA5OjI0ICB0YW5kZXJzCgogICAqIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgYWRkIG1pc3NpbmcgcmV0dXJuIHN0YXRlbWVudCB0byBuZXRzbm1wX2NoZWNrX3ZiX3NpemVfcmFuZ2UoKSAoQnVnICMxMjYzNTIzKQoKMjAwNS0wOC0xOSAwNzo1OSAgdGFuZGVycwoKICAgKiBtYW4vc25tcGRlbHRhLjEuZGVmOgoKICAgZml4IHR5cG8KCjIwMDUtMDgtMTkgMDU6NTUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvLmN2c2lnbm9yZToKCiAgIGluaXRpYWwgLmN2c2lnbm9yZQoKMjAwNS0wOC0xOSAwNTo0MyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC86IGhhcmR3YXJlL2NwdS8uY3ZzaWdub3JlLAogICAgIGhhcmR3YXJlL21lbW9yeS8uY3ZzaWdub3JlLCBpZi1taWIvaWZUYWJsZS8uY3ZzaWdub3JlCiwgaWYtbWliL2lmWFRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS8uY3ZzaWdub3JlOgoKICAgaWdub3JlIC5saWJzIGF0IG1vcmUgcGxhY2VzCgoyMDA1LTA4LTE5IDA1OjA4ICB0YW5kZXJzCgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgbGlzdCBjb250ZXh0IHN1cHBvcnQgYW5kIGZpeCB0eXBvCgoyMDA1LTA4LTE4IDE4OjUxICBhbGV4X2IKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgV2luMzIgTVNWQzogIFVzZSBfX2ludDY0IGluc3RlYWQgb2YgbG9uZyBsb25nLgoKMjAwNS0wOC0xOCAxODowNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gbW92ZSB0ZXN0IGFmdGVyIGZvcmVhY2ggbG9vcAogICAtIHNldCBpbnRlcmFjdGl2ZSBmbGF0IGFmdGVyIG92ZXJ3cml0ZQoKMjAwNS0wOC0xOCAxODowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgcmV0dXJuIGVycm9yIGlmIGFzbiBidWZmZXIgZXhjZWVkcyBvYmppZCBkZXN0IGJ1ZmZlcgoKMjAwNS0wOC0xOCAxNzo1MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYzoKCiAgIC0gcmVtb3ZlIHVudXNlZCBpbmRleF9vaWQvbGVuCiAgIC0gcmVzdG9yZSBuZXRzbm1wX3RhYmxlX2RhdGEyX2J1aWxkX3Jlc3VsdAoKMjAwNS0wOC0xOCAxNzo1MiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaDoKCiAgIHJlbW92ZSB1bnVzZWQgaW5kZXhfb2lkL2xlbgoKMjAwNS0wOC0xOCAxNzo1MCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBxdWlldCBjb21waWxlcgoKMjAwNS0wOC0xOCAxNzozNSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIC0gZG9uJ3Qgb3ZlcndyaXRlIGV4aXN0aW5nIGNvbmZpZ3VyZSBleHRyYXMKICAgLSBhZGQgbWFrZSBleHRyYXMKCjIwMDUtMDgtMTggMTc6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBicmluZyBocHV4IGZ1bmN0aW9uIGRlY2wgaW4gbGluZSB3L3Byb3R5cGUKCjIwMDUtMDgtMTggMTc6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMKOgoKICAgZml4IGJ1ZyAxMjU5MDQ5OiBzbm1wZCBzZWdmYXVsdHMgaW4gSVAtTUlCIGR1cmluZyBzbm1wd2FsawoKMjAwNS0wOC0xOCAwOTo0NCAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBhc24xLmMsIGludDY0LmMsIHNubXBfY2xpZW50LmM6CgogICAtIGxvdHMgb2YgNjQgYml0IGNoZWNrcyBhZGRlZCBpZmYgU0laRU9GX0xPTkcgIT0gNAogICAgIC0gY2hlY2sgY291bnRlcjY0IGhpZ2gvbG93IG92ZXJmbG93cyAoaW50NjQuYykKICAgICAtIHRydW5jYXRlIHJlY2VpdmVkIHZhbHVlcyB0byAzMiBiaXRzIChhc24xLmMpCiAgICAgLSB0cnVuY2F0ZSBzZW50IHZhbHVlcyB0byAzMiBiaXRzIGJlZm9yZSBlbmNvZGluZyAoYXNuMS5jKQogICAtIHVwZGF0ZSBzZXRfdmFyX3ZhbHVlIChzbm1wX2NsaWVudC5jKQogICAgIC0gdHJ1bmNhdGUgdmFyYmluZCB2YWx1ZSBzZXRzIHRvIDMyIGJpdHMKICAgICAtIGhhbmRsZSBzZXQgb2YgaW50ZWdlcnMgb2YgdmFyaW91cyBsZW5ndGhzICgxLCAyLCA0LCA4IGJ5dGVzKQoKMjAwNS0wOC0xOCAwNjowNSAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgRG9uJ3QgZ2VuZXJhdGUgYXV0aEZhaWwgdHJhcHMgaWYgdGhlc2UgYXJlIG5vdCByZXF1aXJlZC4KICAgKEJ1ZyAjMTIyNjc4OCwgcmVwb3J0ZWQgYnkgV2FuZyBUZWsgS2VlKQoKMjAwNS0wOC0xNyAyMDo0NCAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgICB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwCiwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgV2luMzIgTVNWQyBidWlsZCBmaXhlczogTE9OR19NSU4gbm90IGRlZmluZWQgKGxpbWl0cy5oKSBhbmQgYWRkZWQKICAgZmRfZXZlbnRfbWFuYWdlci5jIHRvIGJ1aWxkIGZpbGVzLgoKMjAwNS0wOC0xNyAyMDoyOSAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEFkZCAnQ28tZXhpc3RlbmNlIHdpdGggTWljcm9zb2Z0IFNOTVAgc2VydmljZXMnIHNlY3Rpb24gYW5kIHVwZGF0ZSB0aGUKICAgJ0ludGVyYWN0aW9ucyB3aXRoIE90aGVyIFZlbmRvcidzIFByb2R1Y3RzJyBzZWN0aW9uLgoKMjAwNS0wOC0xNyAxNzo1MCAgdGFuZGVycwoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgSW1wcm92ZSBkb2N1bWVudGF0aW9uIG9uIGNsaWVudEFkZHIgdG9rZW46IGFsc28gdXNlZCBieSBzbm1wZCB3aGVuIHNlbmRpbmcgbm90aWZpY2F0aW9ucwoKMjAwNS0wOC0xNyAwOTo0MSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgRml4IHByb2JsZW1zIHdpdGggMzIvNjQtYml0IHR5cGUgZGVmaW5pdGlvbnMgKEJ1ZyAjMTI1NDk5MCkKCjIwMDUtMDgtMTcgMDg6MzYgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLAogICAgIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvbWliX21vZHVsZXMuYywKICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLAogICAgIGFnZW50L3NubXBkLmMsIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLAogICAgIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jCiwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsCiAgICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYwosIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywgYWdlbnQvaGVscGVycy9udWxsLmMKLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYwosIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMKLCBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jLAogICAgIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYwosIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oLCBzbm1wbGliL2RhdGFfbGlzdC5jCiwgc25tcGxpYi9vaWRfc3Rhc2guYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV9oZWFkZXJzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9ocHV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgUmVtb3ZlIHJlZHVuZGFudCAnI2luY2x1ZGUgPGRtYWxsb2MuaD4nIHN0YXRlbWVudHMsIHNpbmNlIHRoaXMgaXMgaGFuZGxlZCBpbgogICB0aGUgaGVhZGVyIGZpbGUgd2hpY2ggaXMgaW5jbHVkZWQgYW55d2F5LiAgKFBhdGNoICMxMTA4MDUzIGJ5IEp1biBLdXJpeWFtYSkKCjIwMDUtMDgtMTcgMDc6NTAgIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTEwYWdlbnR4Z2V0LCBUMTExYWdlbnR4c2V0LAogICAgIFQxMTJhZ2VudHhzZXRmYWlsLCBUMTEzYWdlbnR4dHJhcDoKCiAgIFN1cHBvcnQgcnVubmluZyBBZ2VudFggdGVzdHMgd2hlbiBjb25maWd1cmVkIHVzaW5nIHNlcGFyYXRlCiAgICdhZ2VudHgvbWFzdGVyIGFnZW50eC9zdWJhZ2VudCcgbW9kdWxlcyAoUGF0Y2ggIzEwNDk3OTQgZnJvbSBtYWdmcikKCjIwMDUtMDgtMTcgMDU6NTQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgRXh0ZW5kIGxlbmd0aCBvZiBjb20yc2VjICJzb3VyY2UiIGJ1ZmZlciAoUGF0Y2ggIzEyMjUxMzAgZnJvbSBBbmRyZXcgU3RlZXRzKQoKMjAwNS0wOC0xNyAwNDo0NSAgZHRzMTIKCiAgICogc25tcGxpYi93aW5waXBlLmM6CgogICBGaXggdHlwbyAocGF0Y2ggIzEyNTU3MTMgYnkgQmVybmhhcmQgUGVueikKCjIwMDUtMDgtMTYgMjA6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBmaXggYnVnIDEyNTkwNTE6IHNubXBkIHNlZ2ZhdWx0cyBvbiBhbWQ2NAoKMjAwNS0wOC0xNiAxNzoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgYWxsb3cgaXB2NCBzdGF0cyB0byB3b3JrIGlmIHY2IHN0YXRzIGFyZSBub3QgYXZhaWxhYmxlCgoyMDA1LTA4LTE2IDE2OjU2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBmaXggYnVnIDEyNTkwNTQ6IHNubXBkOiBjYW5ub3Qgb3BlbiAvcHJvYy9uZXQvc25tcDYKCjIwMDUtMDgtMTYgMTI6MjkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgVHlwbyBpbiB0aGUgZGVzY3JpcHRpb24gb2YgLS1lbmFibGUtbWliLWNvbmZpZy1jaGVja2luZyAoYnVnICMxMjM4MzAxKQoKMjAwNS0wOC0xNiAxMTo1OSAgcnN0b3J5CgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgYWx3YXlzIHNwZWNpZnkgcGVybXMgdG8gbWtkaXIsIGFzIGl0IGlzIG5vdCBvcHRpb24gZm9yIG9sZGVyIHBlcmwgdmVyc2lvbnMKCjIwMDUtMDgtMTUgMTg6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBzZXQgdGltZW91dC9yZXRyaWVzIHRvIGRlZmF1bHQgZm9yIGluZm9ybSBzZXNzaW9ucwoKMjAwNS0wOC0xNSAxODozNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmM6CgogICBmaXggdHlwbwoKMjAwNS0wOC0xNSAxODoyMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvOiBpbnN0YW5jZS5jLCBzY2FsYXJfZ3JvdXAuYywgdGFibGUuYwo6CgogICB3YWl0IGZvciBkZWxlZ2F0ZWQgcmVxdWVzdHMgYmVmb3JlIHJldHJpZXMKCjIwMDUtMDgtMTQgMTc6MjIgIGFsZXhfYgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBGaXggc3BlbGxpbmcgbWlzdGFrZSBpbiBkZXNjcmlwdGlvbiBvZiBhIGRlZmluZS4KCjIwMDUtMDgtMTEgMTM6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBmaXggbGVuZ3RoIG9mIHN5c09iamVjdElECgoyMDA1LTA4LTAxIDA3OjM5ICBhbGV4X2IKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC1kb24ndCB1c2UgZ2V0ZHRhYmxlc2l6ZSgpIGZvciBXSU4zMgoKMjAwNS0wOC0wMSAwNzozOSAgYWxleF9iCgogICAqIHdpbjMyLzogbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwKICAgICBsaWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sCiAgICAgbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsIHNubXB0cmFwZC9NYWtlZmlsZS5pbgosIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwOgoKICAgLVdpbjMyOiAgVXBkYXRlIHByb2plY3QgZmlsZXMgd2l0aCBuZXcgbG9jYXRpb24gZm9yIG5vdGlmaWNhdGlvbl9sb2cuYyBhbmQKICAgIG1pc3NpbmcgdGFibGVfZGF0YTIuYyBmb3IgTVNWQyBHVUkKCjIwMDUtMDgtMDEgMDc6MzcgIGFsZXhfYgoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgLUZpeCB3aW4zMiBidWlsZCBwcm9ibGVtIC0gZGVjbGFyZSB2YXJpYWJsZXMgYmVmb3JlIHVzaW5nLgoKMjAwNS0wNy0yOCAwNzo0NyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBTaW1wbGUgJ3doaWxlJyBsb29wLCBhbmQgKG5vbi1lcnJvcikgcXVpdCBzdGF0ZW1lbnQuCgoyMDA1LTA3LTI2IDA4OjA2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIFByb2JlIGZvciBlbmdpbmVJRCBpbml0aWFsbHksIHNvIHRoYXQgaXQncyBhdmFpbGFibGUgZm9yIGNvbnN0cnVjdGluZwogICB0aGUgdXNtVXNlclRhYmxlIE9JRHMuCgoyMDA1LTA3LTI2IDA2OjE5ICB0YW5kZXJzCgogICAqIEZBUToKCiAgIFVwZGF0ZSBPUyBzdXBwb3J0IHNlY3Rpb24uIFN0aWxsIGxpa2VseSB0byBiZSBvdXRkYXRlZCBmb3Igc29tZSBwbGF0Zm9ybXMuCgoyMDA1LTA3LTI1IDE5OjUzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBmaXggYnVnIDEyMzAzNjY6IGFkZCAiLW4iIHRvICJuZXRzdGF0IC1hIiB0byBtYWtlIGl0IHdvcmsgZXZlbiBpZiBwb3J0IG51bWJlcnMgaGF2ZSBjb3JyZXNwb25kaW5nIHNlcnZpY2UgbmFtZXMKCjIwMDUtMDctMjUgMTk6MjggIHJzdG9yeQoKICAgKiBhZ2VudC86IG1pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywKICAgICBhdXRvX25saXN0LmM6CgogICBrZWVwIGNvbXBpbGVyIGhhcHB5OyBpbmNsdWRlIGhlYWRlciB3L3Byb3RvdHlwZQoKMjAwNS0wNy0yNSAxOToyNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAga2VlcCBjb21waWxlciBoYXBweTsgbW92ZSBwYXJhbSB0eXBlIGRlY2wgaW50byBwYXJhbSBkZWNsIGxpc3QKCjIwMDUtMDctMjUgMTk6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmk6CgogICAtIG1vdmUgY29tbWVudCBlbmQgb3V0IG9mIGNvbmRpdGlvbmFsIChzaW5jZSBzdGFydCBpcyBhcyB3ZWxsKQogICAtIGluY2x1ZGUgY3R4IHNldCBmb3Igbm9uLWVudW0gdHlwZXMKCjIwMDUtMDctMjUgMTk6MjUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWN0eC1nZXQubTJpLAogICAgIGdlbmVyaWMtY3R4LXNldC5tMmk6CgogICBkZWFsIHdpdGggb2lkIGxlbmd0aCB2cyBzaXplIGR1cmluZyBnZXQvc2V0CgoyMDA1LTA3LTI1IDE1OjU3ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGF1dG9jb25mCgoyMDA1LTA3LTI1IDE1OjU2ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYWRkIG5vdGlmaWNhdGlvbi1sb2ctbWliIHRvIGRlZmF1bHQgbWliIGxpc3QKCjIwMDUtMDctMjUgMTU6NTUgIHJzdG9yeQoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgLSBmaXggbm90aWZjYXRpb24gbG9nIGluY2x1ZGUgcGF0aAogICAtIG9ubHkgaW5jbHVkZSBub3RpZmljYXRpb24gbG9nIGNvZGUgaWYgbW9kdWxlIGluY2x1ZGVkCgoyMDA1LTA3LTI1IDE0OjM1ICBtYXJ6CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlLzogY3B1Ly5jdnNpZ25vcmUsIG1lbW9yeS8uY3ZzaWdub3JlCjoKCiAgIGZpeGluZyBjdnMgaWdub3JlIGZvciBzaGFyZWQgbGlicwoKMjAwNS0wNy0yNSAxMzoyMiAgcnN0b3J5CgogICAqIGFwcHMvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIGRlcGVuZGVuY2llcyBvbi9mb3Igbm90aWZpY2F0aW9uX2xvZwoKMjAwNS0wNy0yNSAxMTozOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICBHZW5lcmF0ZSBkaWZmZXJlbnQgY29kZSBmb3IgY2FjaGluZyBhbmQgbm9uLWNhY2hpbmcgY29udGFpbmVyIGZyYW1ld29ya3MKICAgKHJhdGhlciB0aGFuIGluY2x1ZGluZyBjYWNoaW5nIHN1cHBvcnQgcmVnYXJkbGVzcykKCjIwMDUtMDctMjUgMTE6MzcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRlZmF1bHQtbWZkLXRvcC5tMmMsCiAgICAgbTJjX3RhYmxlX3NhdmVfZGVmYXVsdHMubTJpLCBtZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjCiwgbWZkLW1ha2VmaWxlLm0ybSwgbWZkLXRvcC5tMmM6CgogICBBZ2VudFggbWFrZWZpbGUgYW5kIHN1YmFnZW50IGRyaXZlciBjb2RlIHdlcmVuJ3QgZ2V0dGluZyBnZW5lcmF0ZWQKICAgKGV2ZW4gaWYgdGhleSB3ZXJlIHJlcXVlc3RlZCkuICBGaXggdGhpcy4KCjIwMDUtMDctMjUgMTE6MzQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLAogICAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENvbnZlbmllbmNlIHJvdXRpbmUgZm9yIHNldHRpbmcgYW4gaW50ZWdlciB2YXJiaW5kIHZhbHVlLgoKMjAwNS0wNy0yMSAyMTo1NCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIGFkZCAgTkVUU05NUF9EU19OT1RJRl9MT0dfQ1RYIHN0cmluZwoKMjAwNS0wNy0yMSAyMTo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGxvZyBub3RpZmljYXRpb24gaWYgdXNpbmcgbm90aWZpY2F0aW9uIGxvZyBtaWIgbW9kdWxlCgoyMDA1LTA3LTIxIDIxOjUxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIGFkZCB0b2RvIGNvbW1lbgoKMjAwNS0wNy0yMSAyMTo0OSAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIHJlbW92ZSBjb21tZW50ZWQgb3V0IHZhciBkZWNsCiAgIC0gcmVtb3ZlIHVudXNlZCBudW1fcmVjZWl2ZWQKICAgLSBzZXQgc25tcHRyYXBkIGNvbnRleHQgZm9yIG5vdGlmaWNhdGlvbiBsb2cgbW9kdWxlCgoyMDA1LTA3LTIxIDIxOjQ3ICByc3RvcnkKCiAgICogYXBwcy86IHNubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIGFkZCBpbnRlcmZhY2UgdG8gbm90aWZpY2F0aW9uIGxvZyBhZ2VudCBtb2R1bGUKCjIwMDUtMDctMjEgMjE6NDcgIHJzdG9yeQoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIG5vdGlmaWNhdGlvbl9sb2cuYywKICAgICBub3RpZmljYXRpb25fbG9nLmg6CgogICByZW1vdmUgdW51c2VkIG5vdGlmaWNhdGlvbl9sb2cgZmlsZXMKCjIwMDUtMDctMjEgMjE6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICAtIG1ha2UgbnVtX3JlY2VpdmVkIHN0YXRpYwogICAtIGFkZCBsb2NhbCBlbmFibGVkIGZsYWcsIHNldCB3aGVuIG1vZHVsZSBpbml0IGNhbGxlZAogICAtIHJldHVybiBpbW1lZGlhdGVseSBmcm9tIGxvZ19ub3RpZmljYXRpb24gaWYgbm90IGVuYWJsZWQKICAgLSB1c2UgY29ycmVjdCBpbmRleCBpbiBjb21wYXJlLCBzbyB3ZSBoYXZlIGEgY2hhbmNlIGF0IGZpbmRpbmcgdGhlIHJpZ2h0IHJvdwogICAgICh0aGlzIGZpeGVzIHRoZSB2YXJiaW5kIG1lbW9yeSBsZWFrKQoKMjAwNS0wNy0yMSAyMDoxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIHN0cmR1cCB0bXAgZHMgc3RyaW5nIHRoYXQgd2lsbCBiZSByZWxlYXNlZAoKMjAwNS0wNy0yMSAxOTowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGFkZCBtaXNzaW5nIHNlbWktY29sb24KCjIwMDUtMDctMjEgMTk6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi86IG5vdGlmaWNhdGlvbl9sb2cuYywKICAgICBub3RpZmljYXRpb25fbG9nLmg6CgogICAtIHJlbW92ZSBhZ2VudHggY29uZGl0aW9uYWwgY29tcGlsZQogICAtIHJlbW92ZSBzbm1wdHJhcGQgaGVhZGVycwogICAtIHJlLXdvcmsgbG9nIHNpemUgbWFuYWdlbWVudAogICAtIGFkZCBjb250ZXh0IHBhcmFtZXRlciBmb3IgdGFibGUgaW5pdCByb3V0aW5lcwogICAtIG5ldyBkc19hcHAgZm9yIG1vZHVsZSBpbml0IHRvIGRldGVybWluZSBjb250ZXh0CiAgIC0gcmVtb3ZlIGRvbnRSZXRhaW5Mb2dzIGNvbmZpZyAodXNlIC1JIC1ub3RpZmljYXRpb25fbG9nKQogICAtIGNoZyBkZWJ1ZyBzeW1ib2wgKGxvZ19ub3RpZmljYXRpb24tPm5vdGlmaWNhdGlvbl9sb2cpCiAgIC0gcmVtb3ZlIGV4dHJhbmVvdXMgY29tbWVudHMKICAgLSBtYWtlIHN1cmUgdHJhbnNwb3J0IHB0ciBoYXMgdmFsdWUgYmVmb3JlIHVzaW5nCgoyMDA1LTA3LTIxIDE4OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsCiAgICAgbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5oLAogICAgIG5vdGlmaWNhdGlvbi1sb2ctbWliLmg6CgogICBvcmlnaW5hbCB2ZXJzaW9ucwoKMjAwNS0wNy0yMCAyMDozNCAgYWxleF9iCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLUFkZCB3cmFwcGVyIGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKG15X2dldGVudikgdG8gYWRkIFdpbmRvd3MgcmVnaXN0cnkKICAgIHN1cHBvcnQgZm9yIHBlcnNpc3RlbnQgZm9sZGVyL2ZpbGUgY2hlY2sKICAgLUZpeCBidWcgaW4gZ2V0X3BlcnNpc3RlbnREaXIgY2FsbCAoaXQgd2FzIG5vdCBwYXNzaW5nIHRoZSBmaWxlbmFtZSBvZgogICAgc25tcC5jb25mCgoyMDA1LTA3LTIwIDE4OjE5ICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIG1vdmUgaGVhZGVyIGluY2x1ZGUgdG8gdG9wIG9mIGZpbGUKCjIwMDUtMDctMjAgMTg6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBhZGQgbWlzc2luZyBoZWFkZXIKCjIwMDUtMDctMjAgMTg6MTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmM6CgogICBmaXggaW5jbHVkZSBvZiBvd24gaGVhZGVyIChjdXQtbi1wYXN0ZSBlcnJvcikKCjIwMDUtMDctMjAgMTg6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBtaWIuaCwgc25tcF9hcGkuaDoKCiAgIGFkZCBtaXNzaW5nIHByb3RvdHlwZQoKMjAwNS0wNy0yMCAxODowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaDoKCiAgIHJlbW92ZSBwcm90b3R5cGUgZm9yIG5vbi1leGlzdGVudCBmdW5jOyBhZGQgbWlzc2luZyBwcm90b3R5cGUKCjIwMDUtMDctMjAgMTg6MDggIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdHdlYWsgcGFyYW1ldGVycyBmb3IgbnNiLWNvbmZpZyBleGFtcGxlCgoyMDA1LTA3LTIwIDE4OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jOgoKICAga2VlcCBjb21waWxlciBoYXBweTsgcmVtb3ZlIHJlZHVuZGFudCBzZW1pY29sb24KCjIwMDUtMDctMjAgMTg6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmM6CgogICBrZWVwIGNvbXBpbGVyIGhhcHB5OyBhZGQgbWlzc2luZyBpbmNsdWRlcy9wcm90b3R5cGUKCjIwMDUtMDctMjAgMTg6MDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3IgYmFkIG9wdGlvbiBbd2l0aHxlbmFibGVdLXNzbAoKMjAwNS0wNy0yMCAxNzo1OSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgbWFrZSBzdXJlIGNoZWNrIHJ1biBmaW5kIG9uIHNyY2RpcgoKMjAwNS0wNy0yMCAxMTozMCAgZHRzMTIKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIEd1YXJkIGFnYWluc3QgdXNpbmcgbmFtZWxlc3MgZGF0YSBsaXN0cy4gIFRoaXMgc3RpbGwKICAgd29uJ3Qgd29yayBwcm9wZXJseSwgYnV0IGF0IGxlYXN0IHRoZSBhZ2VudCB3b24ndCBjcmFzaC4KICAgKFllcywgSSBrbm93IHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiAtIGJ1dCB5b3UgY2FuJ3QgdHJ1c3QKICAgc29tZSBwZW9wbGUgbm90IHRvIGRvIHNvbWV0aGluZyBzdHVwaWQgLSBuYW1pbmcgbm8gbmFtZXMpCgoyMDA1LTA3LTIwIDExOjI3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBJbmNsdWRlIHRoZSBoYW5kbGVyIG5hbWUgd2hlbiByZWdpc3RlcmluZyBhIHRhYmxlX2FycmF5LgoKMjAwNS0wNy0xOSAxMzo0NCAgcnN0b3J5CgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgZml4IGN1dC1uLXBhc3RlOyBuZXcgdGFibGVzIGFyZSBsaW51eCBvbmx5CgoyMDA1LTA3LTE5IDEwOjUyICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5jb250YWluZXIuY29uZjoKCiAgIEltcHJvdmUgaGFuZGxpbmcgb2YgdmFyaWFibGUtbGVuZ3RoIGluZGV4IGFuZCBjb2x1bW4gdmFsdWVzLgoKMjAwNS0wNy0xOSAxMDo1MiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgRml4IGhhbmRsaW5nIG9mIHZhcmlhYmxlLWxlbmd0aCBpbmRleGVzLgoKMjAwNS0wNy0xOSAxMDo0OSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIFByb3ZpZGUgYW5vdGhlciByZWdpc3RyYXRpb24gQVBJIHRvIGhpZGUgdGhlIGhlbHBlciBpbnRlcm5hbHMKICAgZnJvbSB1c2VyLWxldmVsIGNvZGUuCgoyMDA1LTA3LTE4IDE3OjU3ICByc3RvcnkKCiAgICogTkVXUywgUkVBRE1FLmFnZW50LW1pYnM6CgogICB1cGRhdGUgZm9yIG5ldyB0Y3BDb25uZWN0aW9uVGFibGUgYW5kIHRjcExpc3RlbmVyVGFibGUKCjIwMDUtMDctMTggMTc6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvOiB0Y3BMaXN0ZW5lclRhYmxlLmMKLCB0Y3BMaXN0ZW5lclRhYmxlLmgsIHRjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBpbml0aWFsIHdvcmtpbmcgdmVyc2lvbgoKMjAwNS0wNy0xOCAxNzozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogdGNwLW1pYi5oLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmMsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuaCwKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9jb25zdGFudHMuaCwKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmg6CgogICBpbml0aWFsIGNvZGUgZm9yIHRjcExpc3RlbmVyVGFibGUKCjIwMDUtMDctMTggMTc6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS86IHRjcENvbm5lY3Rpb25UYWJsZS5jCiwgdGNwQ29ubmVjdGlvblRhYmxlLmgsIHRjcENvbm5lY3Rpb25UYWJsZV9jb25zdGFudHMuaAosIHRjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICB0Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmg6CgogICAtIGxvYWQgY2FjaGUgZnJvbSBkYXRhIGFjY2VzcwogICAtIG1hcCBhZGRyZXNzIHR5cGUKICAgLSBzaHJpbmsgc3RvcmFnZSBmb3IgaW5kZXhlcwoKMjAwNS0wNy0xOCAxNzoyOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYzoKCiAgIC0gZml4IGluZGV4IG9pZCBwb2ludGVyCiAgIC0gYWRkIHVwZGF0ZSBvZiBwaWQKCjIwMDUtMDctMTggMTc6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYzoKCiAgIC0gdXNlIG5ldyBwcml2YXRlIGhlYWRlcgogICAtIGZpeCBsb2FkIHByb3RvdHlwZXMKICAgLSBjaGVjayBuZXcgbGlzdGVuIHN0YXRlIHJlcXVpcmUvZXhjbHVkZSBsb2FkIGZsYWcKICAgLSBmaXggY29weSBvZiByZW1vdGUgYWRkcmVzcwoKMjAwNS0wNy0xOCAxNjoyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgcHJpbnQgYmFkIGxpbmUgd2hlbiBiYWlsaW5nIG9uIGVycm9yCgoyMDA1LTA3LTE4IDE2OjI1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICBmaXggY3V0LW4tcGFzdGUgZmx1YgoKMjAwNS0wNy0xOCAxNjoyNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICByZW1vdmUgZHVwbGljYXRlIGNvbW1lbnQgYmxvY2sKCjIwMDUtMDctMTggMTY6MjMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3RjcENvbm4uaDoKCiAgIC0gcmVtb3ZlIHVudXNlZCBkZWZpbmVzL2NvbW1lbnRzCiAgIC0gYWRkIHBpZCB0byBzdHJ1Y3QKICAgLSBhZGQgbG9hZCBmbGFncyB0byByZXF1aXJlL2V4bHVkZSBsaXN0ZW4gc3RhdGUKCjIwMDUtMDctMTggMTY6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBhZGQgZGVidWcgdG8gZnJlZUJTRCAoZXNwIGVycm9yIGNhc2VzKQoKMjAwNS0wNy0xOCAxNTo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jCjoKCiAgIGNvcnJlY3QgZGF0YSBzdHJ1Y3QgbmFtZQoKMjAwNS0wNy0xOCAxNTo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvOiB0Y3BDb25uZWN0aW9uVGFibGUuaCwKICAgICB0Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmMsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5oLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfY29uc3RhbnRzLmgsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB0Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmg6CgogICBpbml0aWFsIHZlcnNpb25zCgoyMDA1LTA3LTE4IDE0OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX3ByaXZhdGUuaDoKCiAgIHByaXZhdGUgaW1wbGVtZW50YXRpb24gaGVhZGVyCgoyMDA1LTA3LTE1IDE4OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1jb25zdGFudHMubTJjLAogICAgIGdlbmVyaWMtdGFibGUtZW51bXMubTJjLCBnZW5lcmljLXRhYmxlLW9pZHMubTJjLAogICAgIG1mZC1pbnRlcmZhY2UubTJjOgoKICAgcXVvdGUgc3RyaW5nIGFyZ3VtZW50IGluIGFzc2lnbm1lbnQKCjIwMDUtMDctMTUgMTg6MjcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBjbGVhciBzZXNzaW9uIGZyb20gY2FsbGJhY2sgY2xpZW50IGFyZ3Mgb24gZnJlZQoKMjAwNS0wNy0xNCAxOTowMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgZml4IGludHIvY3R4IG92ZXJmbG93cwoKMjAwNS0wNy0xNCAxODo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy5oOgoKICAgY29uZmlnX3JlcXVpcmUgdXRpbGl0aWVzL2V4ZWN1dGUgKGZvciBzbm1wdHJhcGQpCgoyMDA1LTA3LTA3IDEyOjMwICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGRvIG5vdCBjbG9zZSBhbGwgbm9uLXN0ZCBmZHMgaW4gZGFlbW9uaXplIChhcyB3ZSBoYXZlIHByb2JhYmx5IG9wZW5lZCBzb21lKQoKMjAwNS0wNy0wNyAxMjoyNSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIGNsb3NlIGFsbCBub24tc3RhbmRhcmQgZmRzIGluaGVyaXRlZCBmcm9tIHNoZWxsIGltbWVkaWF0ZWx5CiAgIC0gcmVnaXN0ZXIgc2lnbmFsIGhhbmRsZXJzIG11Y2ggc29vbmVyLCBzbyBlYXJseSBzaWduYWwgZG9lc24ndCBjb3JlCgoyMDA1LTA3LTA2IDEyOjM0ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICB0d2VhayB0YXJnZXQgdG8gYnVpbGQgIChhbGwpIGxpYnMgdG8gdXNlIGV4aXN0aW5nIElOU1RBTExMSUJTCgoyMDA1LTA3LTAxIDE4OjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIC0gdXNlIHV0aWxpdHkgcm91dGluZSB0byBjbGVhciBkZWxlZ2F0ZWQgZmxhZwogICAtIGRvbid0IHNldCBlcnJvciBmb3IgdGltZW91dCBvbiBnZXQtbmV4dAogICAtIHJlbGVhc2UgZGVsZWdhdGVkIGNhY2hlIHdoZW4gdW5kZWxlZ2F0aW5nIHJlcXVlc3RzCgoyMDA1LTA2LTMwIDExOjQwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBpZmYgbm90IGFwcGxpZWQsIGZpeCBmcmVlIG9mIHBrdCB0byB1c2UgYWxsb2MnZCBwdHIsIG5vdCBvZmZzZXQgaW4gcGt0CiAgIC0gaWZmIGFwcGxpZWQsIHJlbW92ZSByZWR1bmRhbnQgcHJ0IGNsZWFyIGFmdGVyIFNOTVBfRlJFRQoKMjAwNS0wNi0zMCAwNToyNyAgdGFuZGVycwoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYsIHNubXBjbWQuMS5kZWYsIHNubXBkLjguZGVmCiwgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBQYXRjaCAxMjI2MTg3OiBkb2N1bWVudCBtaXNzaW5nIGNvbmZpZyBmaWxlIHRva2VucyBhbmQgY21kbGluZSBvcHRpb25zCgoyMDA1LTA2LTMwIDA0OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIENhbGN1bGF0ZSAiY29va2VkIiB2YWx1ZXMgZnJvbSBoaXN0b3JpY2FsIGRhdGEuCiAgIFRoaXMgY2hhbmdlcyB0aGUgbWVhbmluZyBvZiB0aGVzZSBmaWd1cmVzIGZyb20gYSBzeXN0ZW0KICAgbGlmZS10aW1lIGF2ZXJhZ2UgdG8gYSAobW9yZSB1c2VmdWwpIG9uZS1taW51dGUgYXZlcmFnZSwKICAgYW5kIGJyaW5ncyB0aGUgTGludXggaW1wbGVtZW50YXRpb24gaW50byBsaW5lIHdpdGggbW9zdAogICBvdGhlciBhcmNoaXRlY3R1cmVzLgoKMjAwNS0wNi0zMCAwNDozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1Lmg6CgogICBTdGFuZGFyZCAoc3lzdGVtLWluZGVwZW5kZW50KSBtZWNoYW5pc20gZm9yIHRyYWNraW5nIGhpc3RvcmljYWwgQ1BVCiAgIHN0YXRpc3RpY3MsIGluIG9yZGVyIHRvIGNhbGN1bGF0ZSByb2xsaW5nIGF2ZXJhZ2VzLgoKMjAwNS0wNi0yOSAxNzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRG8gcHJvcGVyIGNoZWNrcyBmb3IgemVybyByZXR1cm4gYW5kIHdhaXQgcmF0aGVyIHRoYW4gY2xvc2luZyB0aGUgY29ubmVjdGlvbgoKMjAwNS0wNi0yOSAxMzo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUGF0Y2ggZnJvbSBSb21hbiBUc2lyb3Vsbmlrb3YgdG8gY2F0Y2ggLTEgcmV0dXJuIGNvZGUgZnJvbSBjaGVja19wYWNrZXQgZnVuY3Rpb25zCgoyMDA1LTA2LTI4IDA4OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4Lmg6CgogICBUd2VhayB0aGUgbmFtZSBvZiB0aGUgY29yZSBIQUwgbWVtb3J5IG1vZHVsZS4KCjIwMDUtMDYtMjcgMTQ6MDggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAueHMsIGV4YW1wbGVzL3RyYXAtZXhhbXBsZS5wbDoKCiAgIFBhdGNoIGZyb20gRGF2aWQgQmVhdHRpZSB0byBmaXggdHJhcCByZWNlcHRpb24KCjIwMDUtMDYtMjcgMDU6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zdG9yYWdlLmMsIGhvc3QvaHJfc3RvcmFnZS5oCiwgdWNkLXNubXAvbWVtb3J5LmMsIHVjZC1zbm1wL21lbW9yeS5oOgoKICAgVXNlIEhhcmR3YXJlIEFic3RyYWN0aW9uIExheWVyIHRvIGltcGxlbWVudCBNZW1vcnkgbW9uaXRvcmluZyBvbiBMaW51eCBzeXN0ZW1zLgoKMjAwNS0wNi0yNyAwNTowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3Byb2MuYywgaG9zdC9ocl9wcm9jLmgsCiAgICAgdWNkLXNubXAvdm1zdGF0LmMsIHVjZC1zbm1wL3Ztc3RhdC5oOgoKICAgVXNlIEhhcmR3YXJlIEFic3RyYWN0aW9uIExheWVyIHRvIGltcGxlbWVudCBDUFUgbW9uaXRvcmluZyBvbiBMaW51eCBzeXN0ZW1zLgoKMjAwNS0wNi0yNyAwNDo1NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5LmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuaCwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5oLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2NwdS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvbWVtb3J5Lmg6CgogICBQcmVsaW1pbmFyeSBpbXBsZW1lbnRhdGlvbiBvZiBhIEhhcmR3YXJlIEFic3RyYWN0aW9uIExheWVyCiAgIChKdXN0IGNvdmVyaW5nIENQVSBhbmQgbWVtb3J5IGluZm9ybWF0aW9uIGZvciBub3csIGFuZAogICAgb25seSBpbXBsZW1lbnRlZCBvbiBMaW51eC1iYXNlZCBzeXN0ZW1zLiBCdXQgaXQncyBhIHN0YXJ0ISkKCjIwMDUtMDYtMjcgMDQ6NTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvcmUuYzoKCiAgIEhhbmRsZSB3ZWVrLWRheSBiaXQgc3BlY2lmaWNhdGlvbnMuCgoyMDA1LTA2LTI3IDA0OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb3JlLmM6CgogICBIYW5kbGUgcmV2ZXJzZS1kYXkgYml0IHNwZWNpZmljYXRpb25zLgoKMjAwNS0wNi0yNCAwNjoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29yZS5jOgoKICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBjYWxhbmRhci1iYXNlZCBzY2hlZHVsaW5nLgogICBUaGlzIGRvZXNuJ3QgaGFuZGxlIHJldmVyc2UtZGF5IG9yIHdlZWtkYXkgYml0cyB5ZXQsCiAgIGJ1dCBzaG91bGQgcHJvdmlkZSB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0eSBuZWVkZWQgZm9yCiAgIHRoZSAiY3JvbiIgYW5kICJhdCIgY29uZmlndXJlIGRpcmVjdGl2ZXMuCgoyMDA1LTA2LTIzIDA4OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb3JlLmM6CgogICBNb3JlIG1lYW5pbmdmdWwgZGVidWcgb3V0cHV0LgoKMjAwNS0wNi0yMiAyMDoxNiAgcnN0b3J5CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSBkb2N1bWVudCBsb2dtYXRjaCwgYWdlbnR4cGVybXMsIGNvbTJzZWN1bml4LCBlbmdpbmVJRFR5cGUsIGVuZ2luZUlETmljCiAgICAgYW5kIGxlYXZlX3BpZGZpbGUgdG9rZW5zCgoyMDA1LTA2LTIyIDIwOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICByZW1vdmUgc25tcGQgZGlza2lvIHRva2VuIGFuZCB0aGUgdW51c2VkIHN0YXRpYyB2YXJpYWJsZSBpdCBzZXRzCgoyMDA1LTA2LTIyIDE5OjQ4ICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIG9vcHMuIGRlY2xhcmUgdmFyaWFibGUgdXNlZCBpbiBuZXcgY29kZS4KCjIwMDUtMDYtMjIgMTk6MzUgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBhcHBseSBwYXRjaCBmcm9tIDEyMTk1NDg6IGRvbid0IHVzZSBkZXByZWNhdGVkIG9wdGlvbgoKMjAwNS0wNi0yMiAxOTozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIGFwcGx5IHBhdGNoIGZyb20gMTIxOTU0ODogZG9uJ3QgdW5saW5rIG51bGwgZmlsZW5hbWUKCjIwMDUtMDYtMjIgMTk6MDggIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgY2xvc2UgYWxsIGZkcyBhZnRlciBkYWVtb25pemluZwoKMjAwNS0wNi0yMiAxNzowMyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgbmV3IGNoZWNrIHRhcmdldCBmb3IgZnVsbCBwYXRocyBpbiBkZXBlbmRlbmN5IGZpbGVzCgoyMDA1LTA2LTIyIDE2OjA0ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGFwcGx5IHNsaWdodGx5IG1vZGlmaWVkIHZlcnNpb24gb2YgMTIyNTQ0MDogcmVnaXN0ZXIgc2luZ2FsIGhhbmRsZXJzIGVhcmxpZXIKCjIwMDUtMDYtMjIgMTU6NTcgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgYXBwbHkgc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZiAxMjI1NDQwOiByZWdpc3RlciBzaW5nbGEgaGFuZGxlcyBlYXJsaWVyCgoyMDA1LTA2LTIyIDEzOjIyICByc3RvcnkKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBtb3ZlIGlmZGVmIHRlc3QgYWZ0ZXIgaGVhZGVyIHdpdGggZGVmaW5lIGlzIGluY2x1ZGVkCgoyMDA1LTA2LTIyIDA2OjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBzY2hlZENvbmYuYywgc2NoZWRUYWJsZS5jOgoKICAgVXNlIHRoZSBuZXcgc2NoZWRUYWJsZSBlbnRyeSBjcmVhdGlvbiByb3V0aW5lcy4KCjIwMDUtMDYtMjIgMDY6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvcmUuYzoKCiAgIEVuc3VyZSBzZW5zaWJsZSBkZWZhdWx0IHNldHRpbmdzIGZvciBhbiBpbnRlcm5hbCBzZXNzaW9uLgoKMjAwNS0wNi0yMiAwNTo0MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIFN1cHBvcnQgY29uZmlndXJhdGlvbiBvZiB0aGUgdmVyc2lvbiBhbmQgc2VjdXJpdHkgbGV2ZWwKICAgdXNlZCB0byBtYWtlIGludGVybmFsIHF1ZXJpZXMuCiAgICAgVW5mb3J0dW5hdGVseSwgY29tbXVuaXR5LWJhc2VkIHJlcXVlc3RzIGRvbid0IGN1cnJlbnRseQogICB3b3JrIG92ZXIgdGhlIGNhbGxiYWNrIHRyYW5zcG9ydCwgYnV0IEknbSB3b3JraW5nIG9uIHRoYXQuCgoyMDA1LTA2LTIyIDA1OjM5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsIHNubXBsaWIvc25tcHYzLmM6CgogICBTZXBhcmF0ZSBvdXQgcGFyc2luZyBzZWN1cml0eSBsZXZlbCB0b2tlbnMgaW50byBhIHNlcGFyYXRlIHJvdXRpbmUuCgoyMDA1LTA2LTIxIDE3OjM5ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGF1dG9jb25mCgoyMDA1LTA2LTIxIDE3OjM2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVtb3ZlIHJlZHVuZGFudCBhc3NlcnQKCjIwMDUtMDYtMjEgMTc6MzQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmg6CgogICBwcm90b3R5cGUgZm9yIG5ldHNubXBfbG9nZ2luZ19yZXN0YXJ0CgoyMDA1LTA2LTIxIDE3OjMzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIHByb3RvdHlwZXMgZm9yIHNob3VsZF9pbml0IGFuZCBhZGRfdG9faW5pdF9saXN0CgoyMDA1LTA2LTIxIDE3OjMyICByc3RvcnkKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYwosIGFwcHMvc25tcHRyYXBkLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIC0gbmV3IC0tZGlzYWJsZS1zbm1wdHJhcGQtc3ViYWdlbnQgY29uZmlndXJlIG9wdGlvbgogICAtIGNoZWNrIG5ldyBvcHRpb24gdG8gZGlzYWJsZSBzdWItYWdlbnQgY29kZQogICAtIGFkZCAnSScgb3B0aW9uIHRvIGNvbW1hbmQgbGluZSBwcm9jZXNzaW5nLCB0byBkaXNhYmxlIG1vZHVsZXMKICAgLSB1c2Ugc2hvdWxkX2luaXQgdG8gZGV0ZXJtaW5lIGlmIG5vdGlmaWNhdGlvbiBsb2cgbWliIGlzIGRpc2FibGVkCiAgIC0gdXNlIG5ldyBzbm1wX2xvZ2dpbmdfcmVzdGFydCBvbiBIVVAKCjIwMDUtMDYtMjEgMTE6NDYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmg6CgogICBwcm90b3R5cGUgZm9yIHNubXBfc3RkZXJybG9nX3N0YXR1cwoKMjAwNS0wNi0yMSAxMTo0MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogc2NoZWRDb3JlLmMsIHNjaGVkQ29yZS5oOgoKICAgQSBjbGVhbmVyIGFwcHJvYWNoIHRvIGNyZWF0aW5nIGVudHJpZXMgaW4gdGhlIHNjaGVkVGFibGUKCjIwMDUtMDYtMjEgMTE6MzggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy86IGlxdWVyeS5jLCBpcXVlcnkuaDoKCiAgIENvbnNpc3RlbnRseSB3b3JrIHdpdGggU05NUCB2ZXJzaW9ucywgbm90ICJwcm9jZXNzaW5nIG1vZGVscyIuCgoyMDA1LTA2LTIxIDExOjMzICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBDb3JyZWN0IHRlbXBsYXRlIGZvciBjYWNoZWQgdGFibGVfZGF0YSByZWdpc3RyYXRpb24uCgoyMDA1LTA2LTIxIDEwOjQ1ICBkdHMxMgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgUmVmZXIgdG8gdGhlIGNvcnJlY3QgbG9jYXRpb24gZm9yIGNvbmZpZyBmaWxlcy4KICAgKFNwb3R0ZWQgYnkgTGVvIExlaSkKCjIwMDUtMDYtMjEgMTA6MDkgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBvbmx5IGFkZCBub3RpZmljYXRpb24gaGFuZGxlciBpZmYgd2UgYXJlIGFuIGFnZW50eCBzdWJhZ2VudAoKMjAwNS0wNi0yMCAxODowNyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gZml4IHNldHRpbmcgb2YgZXhwZWN0IHJlc3BvbnNlIHBkdSBmbGFnIChJIGJyb2tlIGl0IGZpeGluZyB0aGUgU05NUHYzCiAgICAgZGVsYXllZCBlbmdpbmVJRCBwcm9iZSkKCjIwMDUtMDYtMjAgMTg6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgZml4IHByb3h5IGhhbmRsaW5nIG9mIE5PU1VDSE5BTUUgb24gYSBnZXQtbmV4dCwgbm90ZWQgb24gdXNlcnMgYnkgSm9obiBIYXJkaW4KCjIwMDUtMDYtMjAgMTc6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSByZW1vdmUgdW51c2VkIGxvZyBmbGFncyBpbiBhZ2VudAogICAtIHNldCBubyBkZWZhdWx0IGxvZyBmbGFnIGZvciBzeXNsb2cgY2FzZXMKICAgLSBuZXcgc25tcF9zdGRlcnJsb2dfc3RhdHVzKCkgY2hlY2tzIGZvciBlbmFibGVkIHN0ZGVyciBsb2cgaGFuZGxlcnMKICAgLSBmaXggcmUtZW5hYmxlIG9mIHN5c2xvZyBpbiBsb2dnaW5nIHJlc3RhcnQgZnVuY3Rpb24KICAgLSB1c2UgY29ycmVjdCBmdW5jdGlvbiBuYW1lIHRvIHJlLWVuYWJlIGZpbGUgbG9ncwogICAtIEMrKyBjb21tZW50cyAtPiBDIGNvbW1lbnRzCgoyMDA1LTA2LTIwIDE2OjM4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gbmV3IG5ldHNubXBfbG9nZ2luZ19yZXN0YXJ0KCkgdG8gY2xvc2UvcmVvcGVuIGZpbGUgYmFzZWQgbG9ncwogICAtIHB1cmdlIGFnZW50IHNldHVwX2xvZwogICAtIG9ubHkgZW5hYmxlIGRlZmF1bHQgTE9HRklMRSBpZiBubyBvdGhlciBsb2cgb3B0aW9uIGRlZmluZWQKCjIwMDUtMDYtMTggMTE6MTQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKCjIwMDUtMDYtMTggMTA6NDQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtbW92ZSBzb21lIGFyZyBjaGVja3MgZWFybGllcgogICAtbW92ZSBsaWJ3cmFwL3JwbSBjaGVja3MgYmFjayBhZnRlciBzZXR0aW5nIE5PTkFHRU5UTElCUywgc28gdGhleSBhcmVuJ3QKICAgIGxpc3RlZCBpbiBhcHAgbGlicyBieSBuZXQtc25tcC1jb25maWcKCjIwMDUtMDYtMTYgMTM6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIG9vcHMtIHBhc3MgYWRkciBvZiB2YXIgdG8gc3NjYW5mCgoyMDA1LTA2LTE1IDE3OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgYWRkIHByb3RvdHlwZSBmb3IgZnVuYyB1c2VkIGJlZm9yZSBkZWZpbmVkCgoyMDA1LTA2LTE1IDA4OjA1ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRnJlZSB0aGUgc2FtZSBwb2ludGVyIHRoYXQgd2FzIHJldHVybmVkIGJ5ICdzdHJkdXAnCgoyMDA1LTA2LTE0IDE2OjI5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSByZXdvcmsgc25tcHYzIGVuZ2luZUlEIHByb2JlIGRlbGF5IHRvIGZpeCBwcm9ibGVtcyBub3RlZCBvbiBjb2RlcnMKICAgICAtIHNldCB1cC9jaGVjayBzZXNzL3BkdSB2ZXJzaW9uIGEgbGl0dGxlIGVhcmxpZXIKICAgICAtIHNldCBFWFBFQ1RfUkVTUE9OU0UgZmxhZyBjb3JyZWN0bHkgaW5pdGlhbGx5LCBpbnN0ZWFkIG9mIGdsb2JhbCBzZXQKICAgICAgIGFuZCB1bnNldCBmb3IgY2VydGFpbiBjYXNlcy4gYWxzbyBkbyBpdCBhIGxpdHRsZSBlYXJsaWVyCiAgICAgLSBtb3ZlIGNoZWNrIGZvciBwcm9iZSBoaWdoZXIgdXAgY2FsbCBzdGFjayAtIG5vdyB3aWxsIGJlIGRvbmUgdGhlIGZpcnN0CiAgICAgICB0aW1lIGEgc2Vzc2lvbiBzZW5kcyBhIHYzIHBkdSB0aGF0IGV4cGVjdHMgYSByZXNwb25zZQoKMjAwNS0wNi0xNCAxMjo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29uZi5jOgoKICAgVXNlICJhZ2VudFNlY05hbWUiIGZvciByZXRyaWV2aW5nIHNjaGVkdWxlIGluZm9ybWF0aW9uLgoKMjAwNS0wNi0xNCAxMjowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgZml4IGJ1ZyAxMTk3MTgzOiBzc1Jhd0NwdSogc3RheXMgb24gMl4zMi0xIGluc3RlYWQgb2Ygcm9sbGluZyBvdmVyCgoyMDA1LTA2LTE0IDExOjU0ICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgb29wcy0gbW92ZSB2YXIgZGVjbCB0byBmdW5jIHRoYXQgdmFyIHdhcyBtb3ZlZCB0bwoKMjAwNS0wNi0xNCAxMTowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGZpeCBidWcgMTIxNzI2MTogSUYtTUlCIHJlcG9ydHMgaW5jb3JyZWN0IHN0YXRzIG9uIEFNRDY0CgoyMDA1LTA2LTE0IDEwOjQxICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSBwcm9jZXNzIG9wdGlvbmFsIGNvbmZpZyBmaWxlcyBkdXJpbmcgcHJlLW1pYiBjb25maWcgdG9vCiAgIC0gaWYgb3B0aW9uYWwgY29uZmlncyBwcmVmaXhlZCB3aXRoICctJywgcHJvY2VzcyBiZWZvcmUgZGVmYXVsdCBjb25maWdzCgoyMDA1LTA2LTE0IDA3OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGRpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgICBkaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsIHV0aWxpdGllcy9pcXVlcnkuYzoKCiAgIE1vdmUgImFnZW50U2VjTmFtZSIgY29uZmlnIGRpcmVjdGl2ZSB0byB0aGUgaXF1ZXJ5IHV0aWxpdHkgbW9kdWxlLgoKMjAwNS0wNi0xNCAwNzozNyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgRGlzdGluZ3Vpc2ggc25tcF9zZW5kIGVycm9ycyBmcm9tIFNOTVAgZXJyU3RhdCBlcnJvcnMKCjIwMDUtMDYtMTQgMDc6MzcgIGR0czEyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBQb3B1bGF0ZSBjYWxsYmFjayBQRFUgd2l0aCBTTk1QdjMgZGVmYXVsdHMgZnJvbSB0aGUgc2Vzc2lvbiBzdHJ1Y3R1cmUuCgoyMDA1LTA2LTEzIDE5OjI1ICByc3RvcnkKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcnVuIGF1dG9oZWFkZXIsIGF1dG9jb25mCgoyMDA1LTA2LTEzIDE5OjIwICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIGFwcGx5IHBhdGNoIDExOTgyMTA6IHVzaW5nIGV0aHRvb2wgZm9yIGdpZ2FiaXQgTklDcwoKMjAwNS0wNi0xMyAxOTowMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYzoKCiAgIHVwZGF0ZSBmb3IgcHJldmlvdXMgY2FjaGVfaGludCBtZXRob2QKCjIwMDUtMDYtMTMgMTc6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIGFsd2F5IHBhc3MgaGludHMgdG8gbG93ZXIgaGFuZGxlcnMKCjIwMDUtMDYtMTMgMTc6MTUgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtYWtlIG1pYnMsIG1pYmRpcnMgYW5kIG1pYmZpbGVzIGhhbmRsaW5nIGNvbnNpc3RlbnQ6CiAgICAgLSAnLVhYWCcgYWRkcyBYWFggYmVmb3JlIGV4aXN0aW5nCiAgICAgLSAnK1hYWCcgYWRkcyBYWFggYWZ0ZXIgZXhpc3RpbmcKICAgICAgIE5PVEU6IHRoaXMgcmVzdG9yZXMgb3JpZ2luYWwgYmVoYXZpb3Igb2YgJysnIHRvIHRoYXQgb2YgNS4wLjEuIEFmdGVyCiAgICAgICAgICAgICA1LjAuMiwgaWYgSSByZWFkIHRoZSBjb2RlIHJpZ2h0LCAnKycgYmVoYXZpb3VyIG9uIHRoZSBjbWQgbGluZSBhbmQKICAgICAgICAgICAgIGluIE1JQkRJUlMgd2FzIHJldmVyc2VkIGFuZCBub3QgY29uc2lzdGVudCB3aXRoIGhhbmRsZV9taWJzX2NvbmYuCgoyMDA1LTA2LTEzIDE1OjM0ICByc3RvcnkKCiAgICogUkVBRE1FLnRydTY0OgoKICAgbmV3IHJlYWQgbWUgZm9yIFRydTY0CgoyMDA1LTA2LTEzIDEyOjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlmVGFibGUuYywgaWZUYWJsZS5oLAogICAgIGlmVGFibGVfY29sdW1ucy5oLCBpZlhUYWJsZV9jb2x1bW5zLmg6CgogICBSZW1vdmUgb2Jzb2xldGUgaWZUYWJsZSByZXdyaXRlLgoKMjAwNS0wNi0xMyAxMjoyNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIFJ1biB0cmFwIGhhbmRsZXJzIHVzaW5nICdzeXN0ZW0oKScgcmF0aGVyIHRoYW4gJ2V4ZWN2KCknLAogICB0byBzdXBwb3J0IHRyYXAgaGFuZGxlciBzaGVsbCBzY3JpcHRzLgoKMjAwNS0wNi0xMyAxMjoxNiAgZHRzMTIKCiAgICogc25tcGxpYi86IGNvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgcGFyc2UuYywKICAgICBzbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wX3BhcnNlX2FyZ3MuYywgc3lzdGVtLmMKLCB3aW5zZXJ2aWNlLmM6CgogICBHdWFyZCBhZ2FpbnN0IGFzc29ydGVkIG1hbGxvYyBmYWlsdXJlcy4KICAgUmVwb3J0ZWQgYnkgQW5kcmVhcyBNb3JvZGVyLgoKMjAwNS0wNi0xMyAxMTozOCAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJlbW92ZSBib2d1cyBoYW5kbGluZyBvZiB6ZXJvLXdpZHRoIGhpbnRzLgogICBUaGVzZSBtaWdodCBiZSBwb2ludGxlc3MsIGJ1dCB0aGV5IGFyZSBzdHJpY3RseSB2YWxpZC4KICAgKFNlZSBSRkMgMjU3OSwgU2VjdGlvbiAzLjEgKDEpKQoKMjAwNS0wNi0xMyAxMDo1MiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYywKICAgICBzbm1wbGliL21pYi5jOgoKICAgUG9zc2libGUgbWVjaGFuaXNtIGZvciBhZGRyZXNzaW5nIG5hbWVzcGFjZSBjbGFzaGVzCiAgIChpbiByZXNwb25zZSB0byBNYXR0aGV3IEJvZWhtJyBBc3RlcmlzayBwcm9ibGVtKQoKMjAwNS0wNi0xMCAxNjowNCAgaGFyZGFrZXIKCiAgICogbWlicy9VRFAtTUlCLnR4dDoKCiAgIHVwZGF0ZSBmcm9tIFJGQzQxMTMKCjIwMDUtMDYtMTAgMTY6MDIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL3JmYzEyMTMvcnVuOgoKICAgYXBwbHkgdGVzdGluZy1yZmMxMjEzLXJ1bi5kaWZmIGZyb20gcGF0Y2ggMTIxNzQ3NTogYnVpbGQgZml4ZXMKCjIwMDUtMDYtMTAgMTU6NTcgIGhhcmRha2VyCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIHVwZGF0ZSB0aGUgVURQLU1JQiB0byBqdXN0IHB1Ymxpc2hlZCBSRkM0MTEzCgoyMDA1LTA2LTEwIDE1OjU0ICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGFwcGx5IHRlc3RpbmctdGVzdGNvbmYuZGlmZiBmcm9tIHBhdGNoIDEyMTc0NzU6IGJ1aWxkIGZpeGVzCgoyMDA1LTA2LTEwIDE1OjUxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGFwcGx5IGFnZW50LWhlbHBlcnMtbWFrZWZpbGUuZGlmZiBmcm9tIHBhdGNoIDEyMTc0NzU6IGJ1aWxkIGZpeGVzCgoyMDA1LTA2LTEwIDEzOjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBpbml0IGhhbmRsZXIgZm9yIGFnZW50eHNvY2tldCBmb3Igc3ViYWdlbnRzIHRvbwoKMjAwNS0wNi0xMCAxMDo1NSAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBZZXQgQW5vdGhlciBBdHRlbXB0IHRvIGZpbmQgdGhlIGNvcnJlY3QgcXVvdGluZyBvZiBjb25maWd1cmUgb3B0aW9ucy4KCjIwMDUtMDYtMTAgMDc6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvcmUuYzoKCiAgIFVwZGF0ZSB0byB1c2UgdGhlIHJlbmFtZWQgaW50ZXJuYWwgYW5kIGxpYnJhcnkgcXVlcnkgQVBJIGNhbGxzLgoKMjAwNS0wNi0xMCAwNzozMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLzogaXF1ZXJ5LmMsIGlxdWVyeS5oOgoKICAgVHdlYWsgdGhlIHNwZWNpZmljYWxseSBhZ2VudC1pbnRlcm5hbCBxdWVyeSByb3V0aW5lcyB0byB1c2UgdGhlIFNOTVAKICAgbGlicmFyeSB2ZXJzaW9ucy4KCjIwMDUtMDYtMTAgMDc6MjkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLAogICAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE1vdmUgKGFuZCByZW5hbWUpIHNlc3Npb24tYmFzZWQgImludGVybmFsIHF1ZXJ5IiBBUEkgY2FsbHMgaW50byB0aGUgU05NUAogICBsaWJyYXJ5LCBzbyB0aGV5J3JlIGF2YWlsYWJsZSBhcyBhIGNvbnZlbmllbmNlIHRvIGFsbCBTTk1QIGFwcGxpY2F0aW9ucy4KCjIwMDUtMDYtMTAgMDU6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIE1vdmUgc3BlY2lhbCBoYW5kbGluZyBmb3IgImlwIiBpbnRlcmZhY2VzIHRvIFNVTlYzLW9ubHkgY29kZSBibG9jay4KICAgTm8tb25lIGNhbiByZW1lbWJlciB3aGF0IHRoaXMgd2FzIGludGVuZGVkIGZvciwgYW5kIGl0IGJyZWFrcwogICBMaW51eCBJUHY2IHR1bm5lbCBpbnRlcmZhY2VzLgoKMjAwNS0wNi0xMCAwNDoyMyAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgQnJpbmcgYXV0aGVudGljYXRpb24vZW5jcnlwdGlvbiBmbGFncyBpbnRvIGxpbmUgd2l0aCB0aGUgb3RoZXIgY29tbWFuZHMuCiAgIEluIGZhY3QsIHRyZWF0cyAnLUEvLWEnIGFzIGVxdWl2YWxlbnQsIGFuZCB1c2VzIHRoZSB2YWx1ZSB0byBkaXN0aW5ndWlzaAogICBiZXR3ZWVuIHByb3RvY29scyBhbmQgcGFzcyBwaHJhc2VzLiAgKEFuZCBzaW1pbGFybHkgZm9yIC1YLy14KQoKMjAwNS0wNi0wOSAxNzo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeCBidWcgMTIwNzAyMzogc25tcGQgY3Jhc2ggb24gdGNwIGRpc2Nvbm5lY3QKCjIwMDUtMDYtMDkgMTc6MTkgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9jbGllbnQuYzoKCiAgIC0gbW92ZSBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlIHNpemUgY2hlY2tzIHRvIHNubXBfc2V0X3Zhcl92YWx1ZQogICAgIC0gdXNlIHNubXBfc2V0X3Zhcl92YWx1ZSBpbiBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlCgoyMDA1LTA2LTA5IDExOjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jOgoKICAgYWRkIGlwdjYgc3VwcG9ydAoKMjAwNS0wNi0wOSAxMTo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICByZW5hbWUgcGFyYW0sIHVwZGF0ZSBkb2NzLCB0byByZWR1Y2UgY29uZnVzaW9uCgoyMDA1LTA2LTA5IDA1OjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb25mLmM6CgogICBJbXBsZW1lbnQgcGFyc2luZyBvZiB0aGUgImF0IiBhbmQgImNyb24iIGNvbmZpZyBkaXJlY3RpdmVzLgogICBUaGVzZSBzdGlsbCBkb24ndCBhY3R1YWxseSB3b3JrLCBidXQgeW91IGNhbid0IGhhdmUgZXZlcnl0aGluZy4uLi4KCjIwMDUtMDYtMDkgMDU6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvbmYuYzoKCiAgIEZpeCBwYXJzaW5nIG9mICJyZXBlYXQiIGRpcmVjdGl2ZS4KCjIwMDUtMDYtMDkgMDU6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IHNjaGVkQ29uZi5jLCBzY2hlZENvcmUuaDoKCiAgIEl0IHdvdWxkIGJlIHZhZ3VlbHkgaGVscGZ1bCBpZiBJIGtuZXcgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbgogICBob3VycyBhbmQgbW9udGhzLCBhbmQgaG93IG1hbnkgb2YgZWFjaCB0aGVyZSB3ZXJlIQoKMjAwNS0wNi0wOSAwNTowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29yZS5jOgoKICAgRGlzYWJsZSB0ZXN0aW5nIGNvZGUuCiAgIChpbml0aWFsaXNpbmcgdGhlIGxpYnJhcnkgdG9vIGVhcmx5IGJyZWFrcyBjb25maWcgZmlsZSBwcm9jZXNzaW5nOi0oKQoKMjAwNS0wNi0wOCAxNTo1NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgc2tpcCBpcHY2IGNvZGUgaWYgaXB2NiBub3QgZW5hYmxlZDsgbm90ZWQgb24gY29kZXJzIGJ5IGVpcmlrIG5vcmRicm9kZW4KCjIwMDUtMDYtMDcgMTA6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogZGlzbWFuLmgsIGRpc21hbi9zY2hlZENvbmYuYywKICAgICBkaXNtYW4vc2NoZWRDb25mLmgsIGRpc21hbi9zY2hlZENvcmUuYywKICAgICBkaXNtYW4vc2NoZWRDb3JlLmgsIGRpc21hbi9zY2hlZFRhYmxlLmMsCiAgICAgZGlzbWFuL3NjaGVkVGFibGUuaCwgZGlzbWFuL3NjaGVkdWxlLmg6CgogICBQcmVsaW1pbmFyeSAoYW5kIGluY29tcGxldGUpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBEaXNNYW4gU2NoZWR1bGUgTUlCLgoKMjAwNS0wNi0wNiAwNTozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLzogaXF1ZXJ5LmMsIGlxdWVyeS5oOgoKICAgVXRpbGl0eSByb3V0aW5lcyBmb3IgbWFraW5nICJpbnRlcm5hbCBxdWVyaWVzIiwgdG8gcmV0cmlldmUgb3IgYXNzaWduCiAgIHZhbHVlcyBmcm9tIGVsc2V3aGVyZSBpbiB0aGUgY3VycmVudCBhZ2VudC4KCjIwMDUtMDYtMDYgMDU6MjMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBQb3B1bGF0ZSBjYWxsYmFjayBQRFUgd2l0aCBkZWZhdWx0cyBmcm9tIHRoZSBzZXNzaW9uIHN0cnVjdHVyZS4KICAgVGhpcyBhbGxvd3MgY29tbXVuaXR5LWJhc2VkIFBEVXMgdG8gYmUgc2VudCBvdmVyIGEgY2FsbGJhY2sgdHJhbnNwb3J0LgoKMjAwNS0wNi0wMiAxOToxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRlbGF5IFNOTVB2MyBFbmdpbmVJRCBwcm9iZSB1bnRpbCBuZWVkZWQKCjIwMDUtMDYtMDIgMTk6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIGFwcGx5L3JlLWFwcGx5IGZpeCBmb3IgYnVnIDExMDM2NDQsIEZyZWVCU0QgbWVtb3J5IGxlYWsKCjIwMDUtMDYtMDIgMTg6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzLzogY2FjaGVfaGFuZGxlci5jLCBtdWx0aXBsZXhlci5jLAogICAgIG51bGwuYywgcmVhZF9vbmx5LmM6CgogICBhcHBseSBwYXRjaCAxMjEwNjMyOiBSZXBsYWNlIG5ldHNubXBfc2V0X2FsbF9yZXF1ZXN0c19lcnJvcgoKMjAwNS0wNS0zMCAxNzoyMSAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIFJGQyA0MDQ0OiBGQy1NR01ULU1JQgoKMjAwNS0wNS0zMCAxNzoxNyAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgQ3VycmVudCBJQU5BIHZlcnNpb24KCjIwMDUtMDUtMjcgMTQ6MDggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgY29tbWl0IG1pc3Npbmcgc3RydG9rX3IgY2hhbmdlcyAqY291Z2gqCgoyMDA1LTA1LTIzIDE4OjQ4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGVybF90cmFwZC5wbCwgcGVybC9BU04vQVNOLnBtLAogICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCBzbm1wbGliL3NubXBfZGVidWcuYwosIHNubXBsaWIvc25tcHYzLmM6CgogICBBcHBsaWVkIG1pbm9yIGJ1ZyBmaXgvZG9jIHBhdGNoZXMgZnJvbSBUaG9tYXMgQW5kZXJzIGluICMxMjA2OTgyCgoyMDA1LTA1LTIzIDE2OjQyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9maXhwcm9jOgoKICAgVXNlIG1rc3RlbXAgYXBwcm9wcmlhdGUgdG8gZ2VuZXJhdGUgdGVtcCBmaWxlcwoKMjAwNS0wNS0yMCAxMDowMyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEJyaW5nICctSCcgaW5pdGlhbGlzYXRpb24gaW50byBsaW5lIHdpdGggbm9ybWFsIHN0YXJ0dXAuCgoyMDA1LTA1LTE2IDE1OjUwICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBEb24ndCBhdXRvLWJ1aWxkIGRlcGVuZGVuY2llcy4gIFNwZWNpZnkgYSBsaXN0IGluc3RlYWQuCgoyMDA1LTA1LTE2IDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgQSBiaXQgb2YgcmVudW1iZXJpbmcuCgoyMDA1LTA1LTE2IDE1OjQzICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgYXV0b21hdHRlZCByZWxlYXNlIHByb2R1Y2VyIHNjcmlwdAoKMjAwNS0wNS0xMSAxOTo1MSAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlLmluOgoKICAgRml4IHR5cG8gaW4gY29tbWVudAoKMjAwNS0wNS0xMSAxMDowMiAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvOiBodG1saGVscC9OZXQtU05NUC5oaGMsIGh0bWxoZWxwL05ldC1TTk1QLmhocAosIHNjcmlwdHMvcmVhZG1lMmh0bWw6CgogICBBZGQgUkVBRE1FLmFnZW50LW1pYnMgdG8gV2luZG93cyBiaW5hcnkKCjIwMDUtMDUtMTEgMDU6MjAgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBNb3JlIFJGQ3Mgd2l0aCBNSUJzCgoyMDA1LTA1LTEwIDIxOjEzICBhbGV4X2IKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgc25tcGNvbmY6CgogICBzbm1wY29uZjogQWxsb3cgU05NUENPTkZQQVRIIHRvIGhhdmUgbXVsdGlwbGUgcGF0aHMgZGVmaW5lZCBzdWNoIGFzIHdoZW4gdGhlCiAgIHBlcnNpc3RlbnQgZm9sZGVyIGlzIGluY2x1ZGVkLiAgc25tcGNvbmYgd2lsbCBhbHNvIGRldGVybWluZSB0aGUgY29uZmlndXJlZAogICBwZXJzaXN0ZW50IGZvbGRlciBhbmQgcHJldmVudCBpdCBmcm9tIGJlaW5nIHRyZWF0ZWQgYXMgYSByZWd1bGFyIGNvbmZpZ3VyYXRpb24KICAgZmlsZS4KCjIwMDUtMDUtMTAgMjA6NDQgIGFsZXhfYgoKICAgKiBORVdTOgoKICAgQWRkIGZpeGVzIHRvIE5FV1MgZm9yIG5leHQgcmVsZWFzZQoKMjAwNS0wNS0wOSAyMTowNyAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlOgoKICAgQXV0b3VwZGF0ZQoKMjAwNS0wNS0wOSAyMDo1MyAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlLmluOgoKICAgVGhlIGtlcm5lbCBsaXZlcyBpbiAvYm9vdC9rZXJuZWwva2VybmVsIG9uIHJlY2VudCBGcmVlQlNEJ3MKCjIwMDUtMDUtMDkgMTk6MzUgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLnR4dCwKICAgICBodG1saGVscC9Db25maWd1cmF0aW9uX092ZXJ2aWV3Lmh0bWwsCiAgICAgaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFdpbjMyIGJpbmFyeTogQWRkIHBlcnNpc3QgZm9sZGVyIHRvIFNOTVBDT05GUEFUSAoKMjAwNS0wNS0wOSAxOTowMCAgYWxleF9iCgogICAqIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgbWFuL3NubXBkLjguZGVmLAogICAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC1QZXJzaXN0ZW50IGZpbGVzIHdlcmUgbm90IGJlaW5nIHJlYWQgYXQgc3RhcnR1cCB3aGVuIHVzaW5nCiAgIHNubXAuY29uZiBwZXJzaXN0ZW50RGlyCiAgIC1VcGRhdGUgcGVyc2lzdGVudCBzdG9yYWdlIHNlY3Rpb25zIG9mIHNubXBfY29uZmlnIGFuZCBzbm1wZAogICBtYW4gcGFnZXMKCjIwMDUtMDUtMDkgMTg6NTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmdlbmh0bWwuY29uZjoKCiAgIHVzZSBtb3JlIGZsZXhpYmxlIGNzcyBmb3IgbWFya3VwIGFuZCBhbGxvdyBhIHBhc3NlZCBpbiBmaWxlCgoyMDA1LTA1LTA5IDE4OjEyICBhbGV4X2IKCiAgICogQ09QWUlORzoKCiAgIEFkZCBGYWJhc29mdCBSJkQgU29mdHdhcmUgKGMpIG5vdGljZQoKMjAwNS0wNS0wOSAxNjozNyAgbmJhCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBkZXRlY3QgZXh0cmEgYXJndW1lbnRzCgoyMDA1LTA1LTA5IDE2OjMzICBuYmEKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIHNubXBnZXQgPT4gc25tcGRmCgoyMDA1LTA1LTA5IDE2OjIxICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgUkZDIDQwMDggaXMgTkFULU1JQgoKMjAwNS0wNS0wOSAxNjoyMCAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIEZpbmQgZGVjbGFyYXRpb25zIGZvciBzaWdob2xkL3NpZ3NldC9zaWdwYXVzZQoKMjAwNS0wNS0wOSAxNjoxOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgRW5zdXJlIDAtdGVybWluYXRpb24gb2YgcmVhZCBmaWxlIGRhdGEKCjIwMDUtMDUtMDkgMTY6MTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIERldGVjdCB0b28gbWFueSBkZWZpbmVkIHBlZXJzLiBQcm9wZXJseSBwYXJzZSBzeW1ib2xpYyBwZWVycwoKMjAwNS0wNS0wOSAxNjoxMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgTmVlZGVkIGV4dGVybmFsCgoyMDA1LTA1LTA5IDE2OjEwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgRml4IGZvcm1hdCB3YXJuaW5nCgoyMDA1LTA1LTA5IDE2OjA5ICBuYmEKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBGaXggZm9yIGluc3RhbGxpbmcgcmVtb3RlIGZyb20gc291cmNlIGRpcgoKMjAwNS0wNS0wOSAxNjowNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIEZpeCBmb3IgTmV0QlNECgoyMDA1LTA1LTA5IDE2OjAxICBuYmEKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgR2VuZXJhdGVkCgoyMDA1LTA1LTA5IDE1OjQ1ICBuYmEKCiAgICogY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oOgoKICAgRml4ZXMgZm9yIE5ldEJTRC9GcmVlQlNEIGZvciBzd2FwIGRhdGEKCjIwMDUtMDUtMDkgMTU6MTcgIG5iYQoKICAgKiBhY2NvbmZpZy5oOgoKICAgRml4IG1pbmd3IHRlc3QgdGhhdCB3YXMgb25seSBhcHBsaWVkIHRvIG5ldC1zbm1wLWNvbmZpZy5oLmluCgoyMDA1LTA1LTA5IDE1OjEzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBGaXggYm9ndXMgcHJlcHJvY2Vzc29yIGlmCgoyMDA1LTA1LTA5IDA0OjU5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBJbGx1c3RyYXRlIGhhbmRsaW5nIG9mIGNhY2hlZCB0YWJsZXMgdXNpbmcgdGhlIHRhYmxlX2RhdGEgaGVscGVyLgogICAoQWN0aXZhdGUgdXNpbmcgIm1pYjJjIC1TY2FjaGU9dHJ1ZSAuLi4iKQoKMjAwNS0wNS0wOSAwNDo1OCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgRXh0cmFjdCByZXF1aXJlZCB0YWJsZSBzdHJ1Y3R1cmVzIHdoZW4gcHJvY2Vzc2luZyBSb3dTdGF0dXMgYXNzaWdubWVudHMuCgoyMDA1LTA1LTA5IDA0OjEzICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBGaXggdGFibGUgbWF4L21pbiBjb2x1bW4gcmVnaXN0cmF0aW9uLgoKMjAwNS0wNS0wNiAxNToxNCAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlOgoKICAgQXV0b3VwZGF0ZQoKMjAwNS0wNS0wNiAxNToxMSAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlLmluOgoKICAgUGxhY2F0ZSBhdXRvY29uZjI1OSBieSB0ZXN0aW5nIGFuZCBpbmNsdWRpbmcgPHZtL3ZtLmg+IGJlZm9yZSB0ZXN0aW5nCiAgIDx2bS9zd2FwX3BhZ2VyLmg+CgoyMDA1LTA1LTA1IDIwOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBBcHBsaWVkIHBhdGNoICMxMTA2NDQzIGZyb20gdG9sZ2EgY2V5bGFuIHRvIHVzZSBhIHByb3BlciByZXR1cm4gY29kZSBjaGVjayBmb3IgZ2V0S3N0YXRJbnQKCjIwMDUtMDUtMDUgMjA6MDQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcCwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEFwcGxpZWQgcGF0Y2ggIzExMDk3MTIgdG8gZml4IFZQQVRIIGZvciByYyBmaWxlcyBvbiBjeWd3aW4KCjIwMDUtMDUtMDUgMTk6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgIFBhdGNoICMxMTEwNTcxIGZyb20gS2F0c3VoaXNhIEFCRSB0byBzZXQgaXB2NiB0Y3Agc29ja2V0cyB0byBpcHY2IG9ubHkgaWYgcG9zc2libGUKCjIwMDUtMDUtMDUgMTk6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIEFwcGxpZWQgcGFydCBvZiBwYXRjaCAjMTExMDYxMCBmcm9tIFBldGVyIEJyZWl0ZW5sb2huZXIgZm9yIGNvbXBpbGVyIHdhcm5pbmdzCgoyMDA1LTA1LTA1IDE5OjI5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgbWFuL3NubXB0cmFuc2xhdGUuMS5kZWYsCiAgICAgc25tcGxpYi9taWIuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzExMjMyNDIgZnJvbSBNaWtlIE1jSGVucnkgdG8gYWRkIG1pYjJzY2hlbWEgY29tcGxpYW50IG91dHB1dCB0byBzbm1wdHJhbnNsYXRlCgoyMDA1LTA1LTA1IDE5OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzExMjQ1NjkgZnJvbSBNYXJjdXMgTWVpc3NuZXIgdG8gZHluYW1pY2FsbHkgZGVjaWRlIGhvdwogICBtYW55IGNwdXMgdGhlcmUgb24gbGludXggYW5kIHRvIGJldHRlciBwYXJzZSBpbmZvcm1hdGlvbiBhYm91dCB0aGVtLgogICAgIC0gbW9kaWZpZWQgdG8gYmUgY29tcGxpYW50IHdpdGggQU5TSSBhbmQgdGhlIGNvZGluZyBzdHlsZS4KCjIwMDUtMDUtMDUgMTk6MTEgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBQYXRjaCAjMTA2MjExNCBieSAic25tcHBvcnRhbCIgdG8gY2xlYW4gdXAgYSBmZXcgbWVtb3J5IGxlYWtzLgoKMjAwNS0wNS0wNSAwNzoxOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwgc25tcGxpYi9taWIuYzoKCiAgIFBhdGNoICMxMTE3MjcxICh2YXJpYW50KSAtIGNoZWNrIHRoZSBidWZmZXIgbGVuZ3RoIHdoZW4gZm9ybWF0dGluZwogICBhbiB1cHRpbWUgc3RyaW5nICh0aG91Z2ggd2l0aG91dCBjaGFuZ2luZyB0aGUgZXhpc3RpbmcgQVBJIGNhbGwpLgoKMjAwNS0wNS0wNSAwNTowNyAgZHRzMTIKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBJZ25vcmUgYWRkaXRpb25hbCBnZW5lcmF0ZWQgY2xpZW50IG1hbiBwYWdlcwoKMjAwNS0wNS0wNCAyMDo1OCAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlOgoKICAgQXV0b3VwZGF0ZQoKMjAwNS0wNS0wNCAyMDo1NiAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlLmluOgoKICAgVXNlIHRoZSBhY2N1bXVsYXRlZCB3aXNkb20gb2YgdGhlIHByZXZpb3VzIEFDX0hFQURFUkNIRUNLUyBmb3IKICAgSEFWRV9ORVRJTkVUX0lQX0gsIEhBVkVfTkVUSU5FVF9JRl9ILCBIQVZFX05FVElORVRfSVBfSUNNUF9IIGFuZAogICBIQVZFX05FVElORVRfVURQX0ggKGluIGFkZGl0aW9uIHRvIHRoZSBvbmVzIGFscmVhZHkgcHJlc2VudCkuCiAgIFRoaXMgdW5icmVha3MgdGhlIGJ1aWxkIG9uIEZyZWVCU0QgNS4zIGFuZCA0LjEwIChidXQgdGhlIGxhdHRlcgogICBzdGlsbCBpc24ndCBwbGF5aW5nIHdpdGggdGhlIGZ1bGwgdm1fc3dhcCBkZWNrKS4KCjIwMDUtMDUtMDQgMjA6NDggIGRyaWVodWlzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q1Lmg6CgogICBGcmVlQlNEIDUuMyBpcyByZWFsbHkgdW5oYXBweSBhYm91dCBnZXR0aW5nIF9LRVJORUwgZGVmaW5lZC4gQnkgZm9yY2luZwogICBJRk5FVF9ORUVEU19LRVJORUwgb2ZmIHdlIGZpeCB0aGF0IChhZnRlciBhbGwsIGRlZmluaW5nIF9LRVJORUwgcmVhbGx5CiAgIGlzIGEgZ3Jvc3MgaGFjayBmb3IgcGxhdGZvcm1zIHRoYXQgZG9uJ3QgcHJvcGVybHkgZXhwb3J0IHN5c3RlbQogICBpbnRlcm5hbHMgLS0gZmFtb3VzIGxhc3Qgd29yZHM6LSkKCjIwMDUtMDUtMDQgMTE6NDggIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgUGF0Y2ggIzExMjQ2NTI6IG9wdGlvbnMgdG8gZXhwbGljaXRseSBpbmNsdWRlL2V4Y2x1ZGUgZWxmIGFuZCBiemlwIGxpYnJhcmllcwoKMjAwNS0wNS0wNCAxMToxMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgUGF0Y2ggIzEwNDI0NDcgLSBjbG9uZSB6ZXJvLWxlbmd0aCwgbm9uLU5VTEwtcG9pbnRlciBzdHJpbmdzLgoKMjAwNS0wNS0wNCAwODo1NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgUGF0Y2ggIzEwNTEwMDEgLSBza2lwIHVubmVjZXNzYXJ5IGNhbGwgdG8gJ2F1dG9fbmxpc3QnIHVuZGVyIE5ldEJTRAoKMjAwNS0wNS0wNCAwODo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5oOgoKICAgUGF0Y2ggIzEwOTY0NzkgLSBmaXggZGVjbGFyYXRpb24gb2YgaW5pdGlhbGlzYXRpb24gcm91dGluZS4KCjIwMDUtMDUtMDQgMDg6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgUGF0Y2ggIzEwOTY0ODMgLSBmaXggYSBtaW5vciBpbmNvbnN0aXN0ZW5jeQoKMjAwNS0wNS0wNCAwODoyMiAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgUGF0Y2ggIzExMDM3NTEgLSBza2lwIGVkaXRvciBiYWNrdXBzIHdoZW4gbG9hZGluZyBNSUIgZmlsZXMuCgoyMDA1LTA1LTA0IDA4OjA3ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoICMxMTA5NzE5OiBSZW1vdmUgKGFwcGFyZW50bHkpIHJlZHVuZGFudCBxdW90aW5nIG9mIGNvbmZpZ3VyZSBvcHRpb25zLgogICBUaGlzIHF1b3Rpbmcgd2FzIGludHJvZHVjZWQgZWFybHkgaW4gdGhlIHY1IGxpZmV0aW1lIHRvIHN1cHBvcnQgIm9wdGlvbnMKICAgY29udGFpbmluZyBzcGFjZXMiIChzZWUgcmV2aXNpb24gNS4yNikuICBTaW1wbGUgdGVzdGluZyBzZWVtcyB0byBpbmRpY2F0ZQogICB0aGF0IGl0J3Mgbm8gbG9uZ2VyIG5lZWRlZCwgYW5kIGl0IGJyZWFrcyBBSVggKHBvc3NpYmx5IGFtb25nIG90aGVycyksIHNvCiAgIGxldCdzIHRyeSB3aXRob3V0IGl0LgogICAgIElmIG5vLW9uZSBjb21wbGFpbnMsIHRoaXMgcGF0Y2ggbWF5IG5lZWQgdG8gYmUgYXBwbGllZCB0byB0aGUgb3RoZXIgYnJhbmNoZXMKICAgYXMgd2VsbC4KCjIwMDUtMDUtMDQgMDc6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIFBhdGNoICMxMTE4MTMyIC0gaGFuZGxlIGRpc2FwcGVhcmluZyBMaW51eCBwcm9jZXNzZXMuCgoyMDA1LTA1LTA0IDA2OjQyICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgRml4ZWQgI2lmZGVmIHR5cG8KCjIwMDUtMDUtMDQgMDY6MTMgIGR0czEyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIFBhdGNoICMxMTE3Mjc2IC0gdHdlYWsgRVZQX0RpZ2VzdEZpbmFsIHBhcmFtZXRlcnMgdG8gbWF0Y2ggZXhwZWN0ZWQgdHlwZXMuCgoyMDA1LTA1LTA0IDA2OjAwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jOgoKICAgUGF0Y2ggIzExMTcyNjUgLSBvcGVuIGRldmljZXMgd2l0aCBOREVMQVkgd2hlbiBwb3NzaWJsZS4KICAgQXZvaWRzIGFnZW50IGhhbmdpbmcgb24gbWlzc2luZyByZW1vdmFibGUgZGV2aWNlcy4KCjIwMDUtMDUtMDMgMTg6MjYgIGFsZXhfYgoKICAgKiBORVdTLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIFdpbjMyOiBBcHBseSBwYXRjaCAxMTUzMjcxIGJ5IEVra2VoYXJkIERvbW5pbmcgZm9yIHNubXBkIHBhc3NfcGVyc2lzdCBzdXBwb3J0CiAgIGZvciBNU1ZDLiAgQXBwbHkgcGF0Y2ggYmFzZWQgb24gMTE1MzI3MSBmb3IgcGFzcyBzdXBwb3J0IGZvciBNU1ZDIGFuZCBNaW5HVy4KCjIwMDUtMDUtMDMgMTA6MzggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmludF93YXRjaC5jb25mOgoKICAgVXNlIHRoZSB3YXRjaGVkIHNjYWxhciBoZWxwZXIgKHJhdGhlciB0aGFuIHNwZWNpYWxpc2VkIGluc3RhbmNlIGhlbHBlcnMpCiAgIGZvciBpbXBsZW1lbnRpbmcgaW50ZWdlci1iYXNlZCBzY2FsYXIgb2JqZWN0cy4gIFBpY2tzIHVwIG9uIHVuc2lnbmVkCiAgIGludGVnZXIgb2JqZWN0cywgYXMgd2VsbCBhcyBkaXN0aW5ndWlzaGluZyBiZXR3ZWVuIHJlYWQtb25seS9yZWFkLXdyaXRlCiAgIE1JQiBkZWZpbml0aW9ucy4KCjIwMDUtMDUtMDMgMTA6MjggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIElsbHVzdHJhdGUgaGFuZGxpbmcgb2YgY2FjaGVkIHRhYmxlcyB1c2luZyB0aGUgaXRlcmF0b3IgaGVscGVyLgogICAoQWN0aXZhdGUgdXNpbmcgIm1pYjJjIC1TY2FjaGU9dHJ1ZSAuLi4iKQoKMjAwNS0wNS0wMyAxMDoyMyAgZHRzMTIKCiAgICogc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIFN0YXNoIGxvb2t1cCBkZWJ1Z2dpbmcgY29kZS4KCjIwMDUtMDUtMDMgMTA6MTkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaAo6CgogICBDb252ZW5pZW5jZSBzaW5nbGUtY2FsbCBBUElzIGZvciBpbnRlZ2VyLWJhc2VkIHdhdGNoZWQgc2NhbGFycy4KICAgKE1vZGVsbGVkIG9uIHRoZSBleGlzdGluZyBpbnN0YW5jZS1iYXNlZCBjYWxscykuCgoyMDA1LTA1LTAzIDA5OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaDoKCiAgIFByb3ZpZGUgYSAodHJpdmlhbCkgZ2V0X3tmaXJzdCxuZXh0fSBBUEkuCiAgIE5vdCBzdHJpY3RseSBuZWNlc3NhcnkgaW4gaXRzZWxmLCBidXQgc2hvdWxkIGFpZCB0aGUKICAgdHJhbnNpdGlvbiB0byBhIGNvbnRhaW5lci1iYXNlZCB0YWJsZV9kYXRhIHN0eWxlLgoKMjAwNS0wNS0wMiAyMDo0MiAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIEFkZCBsaW1pdHMuaCBoZWFkZXIgZmlsZQoKMjAwNS0wNS0wMiAxODo0NiAgYWxleF9iCgogICAqIHdpbjMyLzogbGlic25tcC9NYWtlZmlsZS5pbiwgbGlic25tcC9saWJzbm1wLmRzcCwKICAgICBsaWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCjoKCiAgIFdpbjMyIE1TVkMgc3VwcG9ydCBmb3IgZmRfZXZlbnRfbWFuYWdlci5bY2hdCgoyMDA1LTA1LTAxIDEzOjQ3ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgRml4IHN5c0Rlc2NyIHN1cHBvcnQgZm9yIE1pbkdXCgoyMDA1LTA1LTAxIDA5OjIwICBhbGV4X2IKCiAgICogbG9jYWwvcGFzc3Rlc3QucGw6CgogICBBZGRlZCBQZXJsIHZlcnNpb24gb2YgL2xvY2FsL3Bhc3N0ZXN0IHNoZWxsIHNjcmlwdAoKMjAwNS0wNC0zMCAyMDozOCAgYWxleF9iCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIEN5Z3dpbjogQWRkIG1pc3NpbmcgcmVnaXN0cnkgc3VwcG9ydCBmb3IgU05NUENPTkZQQVRIIGV0Yy4KCjIwMDUtMDQtMzAgMjA6MzYgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYwosIGFnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgcGVybC9TTk1QL1JFQURNRToKCiAgIC1SZW1vdmUgJ2RlZmluZSBXSU4zMicgZm9yIEN5Z3dpbiBhbmQgY2hhbmdlIGlmZGVmcyB0byBjaGVjayBmb3IgZWl0aGVyCiAgIFdJTjMyIG9yIGN5Z3dpbi4KICAgLUFkZCBzZWN0aW9uIHRvIFJFQURNRS53aW4zMiBkZXNjcmliaW5nIHRoZSB2YXJpb3VzIFdpbmRvd3MgZGVmaW5lcy4KICAgLUFkZCBub3RlIHRvIFJFQURNRSBmaWxlcyBhYm91dCBzcGFjZXMgaW4gZm9sZGVyIG5hbWVzIHdoZW4gY29tcGlsaW5nLgoKMjAwNS0wNC0zMCAxODozNiAgYWxleF9iCgogICAqIHdpbjMyL2xpYmhlbHBlcnMvOiBNYWtlZmlsZS5pbiwgbGliaGVscGVycy5kc3A6CgogICBXaW4zMiBNU1ZDIGJ1aWxkIGZpeGVzCgoyMDA1LTA0LTI5IDEyOjE0ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUGF0Y2ggIzExNDk0MjAgLSB1c2UgbmV3IGV4dGVybmFsIGZkIGhhbmRsZXIgcm91dGluZXMsCiAgIHRvIHBhdmUgdGhlIHdheSBmb3IgbW9yZSBpbnRlZ3JhdGVkIHRyYXAgaGFuZGxlcnMuCgoyMDA1LTA0LTI5IDEyOjEyICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wZC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmRfZXZlbnRfbWFuYWdlci5oOgoKICAgUGF0Y2ggIzExNDk0MjAgLSBzZXBhcmF0ZSBleHRlcm5hbCBmZCBoYW5kbGluZyBvZmYgaW50bwogICBhIGRpc3RpbmN0IGxpYnJhcnkgbW9kdWxlLiAgU3VibWl0dGVkIGJ5IFN0ZW4gSi4gT2xzc29uCgoyMDA1LTA0LTI5IDExOjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBQYXRjaCAjMTE1NDQ4OCAtIG9wdGlvbiB0byBzcGVjaWZ5IHByaW9yaXR5IG9mICJwYXNzIiBwcm9jZXNzaW5nCgoyMDA1LTA0LTI5IDExOjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIEFwcGx5IHBhdGNoICMxMTU1MzM3IC0gZml4IGRpc2tJTyBhdmVyYWdlIHN1cHBvcnQgZm9yIEZyZWVCU0Q1CgoyMDA1LTA0LTI3IDIwOjIyICBhbGV4X2IKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5zdWJzLnBsLCBBU04vTWFrZWZpbGUuUEwKLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsCiAgICAgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIFdpbjMyIE1TVkM6IEFib3J0IGNvbXBpbGUgaWYgYSBzcGFjZSBpcyBkZXRlY3RlZCBpbiB0aGUgYmFzZSBmb2xkZXIKICAgd2hlbiBjb21waWxpbmcuCgoyMDA1LTA0LTI3IDIwOjEwICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBNYXNzaXZlIGRlYnVnZ2luZyBvZiBtZW1vcnkgbGVha3MuICBJdCBpcyBub3cgbWVtb3J5LWxlYWsgZnJlZSEKCjIwMDUtMDQtMjcgMjA6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIGZyZWUgdGhlIHN1Yi1uYW1lIGlmIG5vdCBhdHRhY2hlZCB0byB0aGUgcGFyZW50IHN0cnVjdHVyZS4KCjIwMDUtMDQtMjcgMTg6NTUgIGFsZXhfYgoKICAgKiBORVdTLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIEN5Z3dpbjogUmVwbGFjZSBQSURfWk9NQklFIHJlZmVyZW5jZXMgYXMgdGhlIGZsYWcgd2FzIHJlbW92ZWQgZnJvbQogICBDeWd3aW4gaW4gbWlkIEphbiAyMDA1LgoKMjAwNS0wNC0yNiAxODoxMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIC0gc3luYyBzb21lIGNvbW1lbnRzCiAgIC0gZml4IGhhbmRsaW5nIG9mIE9JRHMgaW4gcm93X2NvcHkgY29kZSwgbm90ZWQgb24gSVJDIGJ5IGRhdmVqXwoKMjAwNS0wNC0yNSAxMjozMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHVwZGF0ZSB0YWJsZV9pdGVyYXRvciB0byB1c2UgdmFsaWRfY29sdW1uIGluZm8KCjIwMDUtMDQtMjIgMTE6MTggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEltcHJvdmUgaGFuZGxpbmcgb2Ygbm9uLWludGVnZXItYmFzZWQgb2JqZWN0cyBpbiB0YWJsZV9kYXRhIHRlbXBsYXRlIGNvZGUuCgoyMDA1LTA0LTIyIDExOjExICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBJZiBhbiBpbnN0YW5jZS1iYXNlZCBoYW5kbGVyIHJldHVybnMgYW4gZXJyb3IgZm9yIGEgR2V0TmV4dCByZXF1ZXN0LAogICB3ZSBuZWVkIHRvIHNraXAgb24gdG8gdGhlIG5leHQgdmFsaWQgaW5zdGFuY2UuCgoyMDA1LTA0LTIyIDEwOjU0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBmYWlsdXJlIHRvIGNyZWF0ZSBpbml0aWFsIHVzZXIuCgoyMDA1LTA0LTIxIDEyOjUyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBkb24ndCB0cmFjayBkZWJ1ZyBzdGF0cyBieSBkZWZhdWx0OyBhZGQgc3RhdHMgcHJvdG90eXBlcwoKMjAwNS0wNC0yMSAxMDo1NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5oLCBtaWJzL1VDRC1ESVNLSU8tTUlCLnR4dAosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgYXBwbHkgcGF0Y2ggMTA4NTI0MzogQWRkIDY0LWJpdCBjb3VudGVycyB0byBkaXNrSU9UYWJsZQoKMjAwNS0wNC0yMSAxMDo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgaW5pdCBzdGF0IHB0ciB0byBudWxsCgoyMDA1LTA0LTIxIDEwOjI2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsIHNubXBsaWIvY2FsbGJhY2suYwo6CgogICAtIHN0YXRpYyBkZWxldGVfZHVwbGljYXRlcyAtPiBwdWJsaWMgbmV0c25tcF9jYWxsYmFja19jbGVhcl9jbGllbnRfYXJnCiAgIC0gdGFicyB0byBzcGFjZXMKCjIwMDUtMDQtMjEgMTA6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwgc25tcGxpYi9jYWxsYmFjay5jCjoKCiAgIGFkZC91c2UgY2FsbGJhY2sgcHJpb3JpdHkgbWFjcm9zCgoyMDA1LTA0LTIxIDEwOjA1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBhZGQgZGVidWcgdG9rZW4gZXhjbHVzaW9uCgoyMDA1LTA0LTIxIDA5OjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jOgoKICAgc2tpcCBleGNsdWRlZCB0b2tlbnMgKHRpbCBtaWIgaXMgdXBkYXRlZCkKCjIwMDUtMDQtMjAgMjM6MDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIHVwZGF0ZSBmb3IgY2hhbmdlIHRvIGN0eCBpbml0IGRlZmF1bHQKCjIwMDUtMDQtMjAgMjM6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBhZGQgY29kZSBmb3IgREVGVkFMcyBpbiBjdHggaW5pdAoKMjAwNS0wNC0yMCAyMzowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgZGVmYXVsdCB0byBnZW5lcmF0ZSBjdHggaW5pdAoKMjAwNS0wNC0yMCAxOToyMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgYWRkIG5vdGUgb24gaW5kZXggYXR0cmlidXRlcyBhbHJlYWR5IHRlc3RlZAoKMjAwNS0wNC0yMCAxODo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gZml4IGNvbW1lbnRzCiAgIC0gcmV2YW1wIGNoZWNrX2luZGV4ZXMgdG8gZG8gYmFzaWMgdmFsaWRhdGlvbiBiZWZvcmUgY2FsbGluZyB1c2VyIGZ1bmMKICAgLSBleHBsaWNpdCBub3Qgd3JpdGFibGUgY2FzZSBmb3IgaW5kZXgvcmVhZC1vbmx5IHZhcnMgaW4gc2V0IGNvbHMKCjIwMDUtMDQtMjAgMTg6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYzoKCiAgIGFkZCBjb21tZW50cyBpbiBpbmRleCBoYW5kbGluZyBmdW5jdGlvbiBoZWFkZXJzCgoyMDA1LTA0LTIwIDE4OjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQo6CgogICAtIHJlbW92ZSBoYXJkY29kZWQgdGFibGUgbmFtZQogICAtIHJlbW92ZSByZWR1bmRhbnQgcHJvdG90eXBlCiAgIC0gYWRkIHNvbWUgY29tbWVudHMKICAgLSBkZWZpbmUgcHJvdG90eXBlIGJlZm9yZSB1c2UKICAgLSBmaXggYmFjayBmdW5jdGlvbiBuYW1lCiAgIC0gZml4IHRvbyBtYW55IHBhcmFtcyBmb3IgZnVuY3Rpb24KCjIwMDUtMDQtMjAgMTg6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBub2RlLXZhbGlkYXRlLm0yaSwKICAgICBub2RlLXZhcmJpbmQtdmFsaWRhdGUubTJpOgoKICAgLSBicmVhayB2YWx1ZSB2YWxpZGF0aW9uIG91dCBvZiB2YXJiaW5kLXZhbGlkYXRlCiAgIC0gY29tcGFyZSB2YWx1ZXMvbGVuZ3RocyBkaXJlY3RseSwgaW5zdGVhZCBvZiBjYWxsaW5nIGZ1bmN0aW9uCiAgIC0gZGV0ZWN0L2hhbmRsZSByYW5nZXMgdGhhdCBhcmUgcmVhbGx5IHNpbmdsZSB2YWx1ZXMKCjIwMDUtMDQtMjAgMTg6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBmaXggZGlyZWN0b3J5IGNvcHkKCjIwMDUtMDQtMjAgMTU6MDggIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIGZyZWUgc3RyaW5nIHBhc3NlZCB0byBwZXJsIGFmdGVyIGl0J3MgcGFzc2VkCgoyMDA1LTA0LTIwIDE0OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMuaDoKCiAgIGFkZCB3YXRjaGVkIGV4YW1wbGUKCjIwMDUtMDQtMjAgMTQ6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy93YXRjaGVkLmMsCiAgICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgLSBhZGQgZXhhbXBsZSBzdHJpbmcgdG8gbWliCiAgIC0gYWRkIGV4YW1wbGUgb2YgYSB3YXRjaGVkIHN0cmluZwoKMjAwNS0wNC0xOSAxNjo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaToKCiAgIHF1aWV0IGNvbXBpbGVyICglZCAtPiAlbGQpCgoyMDA1LTA0LTE4IDE4OjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpOgoKICAgcXVpZXQgY29tcGlsZXIgKCVkIC0+ICVsZCkKCjIwMDUtMDQtMTggMTg6MTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIC0gZml4ZXMgZm9yIGNyZWF0ZV9mZXdlcl9maWxlcyBzZXR0aW5nCiAgIC0gZGVmaW5lIHRhYmxlIG5hbWUgb25jZSwgYXQgdG9wLCBmb3IgcXVpY2tlciB1cGRhdGluZwoKMjAwNS0wNC0xOCAxODoxMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gcmV2YW1wIGRlZmF1bHRzIGhhbmRsaW5nCiAgICAgLSBnZW5lcmF0ZSBkZWZhdWx0cyBpbiB0b3AsIGluc3RlYWQgb2Ygc2V0dXBfdGFibGUKICAgLSBhZGQgdG9wL3RhYmxlIGxldmVsIHNodXRkb3duIGZ1bmN0aW9ucwogICAtIGRlZmluZSB1c2VyIGNvbnRleHQKCjIwMDUtMDQtMTggMTg6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtaW50ZXJmYWNlLm0yYywKICAgICBtZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmk6CgogICAtIHVzZSBuZXcgbTJjX2RhdGFfY2FjaGUgdG8gZGV0ZXJtaW5lIGlmIHdlIHNob3VsZCBnZW5lcmF0ZSBjYWNoZSBjb2RlCiAgIC0gYWRkIGZ1bmN0aW9uIHRvIGdldCB0YWJsZSBjb250YWluZXIKICAgLSBtb3N0IGNhY2hlXyogZnVuY3Rpb25zIHJlbmFtZWQgdG8gY29udGFpbmVyXyo7IHJlbWFpbmluZyBjYWNoZSB2ZXJzaW9ucwogICAgIGNhbGwgY29udGFpbmVyIHZlcnNpb25zCiAgIC0gYWRkIHRhYmxlL2NvbnRhaW5lciBzaHV0ZG93biBmdW5jdGlvbnMKCjIwMDUtMDQtMTggMTg6MDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICBtb3ZlIGluZGV4ZXNfc2V0IHJlYWRtZSBoZXJlIChmcm9tIGNvbnRhaW5lci1jYWNoZWQpCgoyMDA1LTA0LTE4IDE4OjA0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaToKCiAgIC0gcXVpZXQgY29tcGlsZXIgKCVkIC0+ICVsZCkKICAgLSByZW1vdmUgaGFyZGNvZGVkIG5vZGUgbmFtZQoKMjAwNS0wNC0xOCAxODowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgLSByZXZhbXAgZGVmYXVsdHMgaGFuZGxpbmcKICAgICAtIGdlbmVyYXRlIGRlZmF1bHRzIGluIHRvcCwgaW5zdGVhZCBvZiBzZXR1cF90YWJsZQogICAgIC0gYWx3YXlzIHdyaXRlIGRlZmF1bHRzLCBzbyBuZXcgb3B0aW9ucyBhcHBlYXIgZm9yIHVzZXIKICAgICAtIG5ldyBvcHRpb25zOiBkYXRhX2NhY2hlLCBkYXRhX3NwYXJzZQogICAgIC0gbW9yZSBpbnRlcmFjdGl2ZSBxdWVzdGlvbnM6CiAgICAgICBza2lwIG1hcHBpbmcsIHNwYXJzZSwgdW5jYWNoZWQgY29udGFpbmVyLCBnZW5lcmF0ZSBtYWtlZmlsZS9hZ2VudHgKCjIwMDUtMDQtMTggMTc6NTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtZ2V0Lm0yYzoKCiAgIHR3ZWFrIGV4Y2x1c2lvbiBvZiBtYXBwaW5nIGZ1bmN0aW9ucwoKMjAwNS0wNC0xOCAxNzo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfdGFibGVfc2F2ZV9kZWZhdWx0cy5tMmk6CgogICBuZXcgbTJpIHRvIHNhdmUgYWxsIHRhYmxlIGRlZmF1bHRzCgoyMDA1LTA0LTE4IDE3OjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGVmYXVsdC1tZmQtdG9wLm0yYywKICAgICBtMmNfc2V0dXBfdGFibGUubTJpOgoKICAgLSByZXZhbXAgZGVmYXVsdHMgaGFuZGxpbmcKICAgICAtIGdlbmVyYXRlIGRlZmF1bHRzIGluIHRvcCwgaW5zdGVhZCBvZiBzZXR1cF90YWJsZQogICAgIC0gYWx3YXlzIHdyaXRlIGRlZmF1bHRzLCBzbyBuZXcgb3B0aW9ucyBhcHBlYXIgZm9yIHVzZXIKCjIwMDUtMDQtMTggMTc6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICAtIGNoZWNrIGZvciBiYWQgaGRyIGxlbgogICAtIGRvbid0IGZyZWUgTlVMTCBwdHIKCjIwMDUtMDQtMTggMTc6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICAtIHVzZSBuYW1lZCB2YXJzIGluc3RlYWQgb2YgcG9zaXRpb25hbCwgZm9yIGNsYXJpdHkKICAgLSB0d2Vha3MgdG8gY29weSB1cGRhdGVkIGRlZmF1bHRzIGZpbGVzCgoyMDA1LTA0LTE1IDE3OjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi5oOgoKICAgYWRkIGNvbmZpZ19hZGRfbWliCgoyMDA1LTA0LTE0IDE4OjE4ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA1LTA0LTE0IDE3OjE0ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgbW92ZSBnZW5lcmF0aW9uIG9mIGVtcHR5IGluY2x1ZGVzIG91dHNpZGUgb2YgYWdlbnQgZW5hYmxlZCBjb25kaXRpb25hbAoKMjAwNS0wNC0xMyAyMjo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yaToKCiAgIHVwZGF0ZSBwYXJhbWV0ZXIgbmFtZXMgdG8gYmUgaW5saW5lIHcvZXZlcnlvbmUgZWxzZQoKMjAwNS0wNC0xMyAyMjo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gZ2VuZXJhdGUgaW5kZXggY2hlY2sgcm91dGluZXMgaWYgdGFibGUgcGVyc2lzdGVudCBpcyBzZXQKICAgLSBkb24ndCByZWZlcm5jZSBzZXRfY29sdW1ucyB1bmxlc3MgdGFibGUgc2V0dGFibGUKICAgLSBkb24ndCBjaGVjay9pbnNlcnQgbmV3IHJvd3MgdW5ubGVzcyByb3cgY3JlYXRpb24gaXMgc2V0CgoyMDA1LTA0LTEzIDIyOjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRhdGEtYWNjZXNzLm0yYywgbWZkLWRhdGEtc2V0Lm0yYwosIHBhcmVudC1zZXQubTJpOgoKICAgLSBnZW5lcmF0ZSBpbmRleCBjaGVjayByb3V0aW5lcyBpZiB0YWJsZSBwZXJzaXN0ZW50IGlzIHNldAogICAtIG1vdmUgaW5kZXggY2hlY2sgZnVuY3Rpb25zIHRvIGRhdGEgYWNjZXNzIGZpbGUgc28gdGhleSBjYW4gYmUgdXNlZCBieQogICAgIHRoZSBwZXJzaXN0ZW5jZSByb3V0aW5lcwoKMjAwNS0wNC0xMyAwOTozMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliLmgsIGlwLWZvcndhcmQtbWliLmgsIGlwLW1pYi5oCjoKCiAgIGFkZCBhcHByb3ByaWF0ZSBtaWJzIHRvIGRlZmF1bHQgbG9hZCBsaXN0CgoyMDA1LTA0LTA4IDEwOjM4ICBhbGV4X2IKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENoYW5nZSBpbmRleCBhbmQgcmluZGV4IGRlZmluZXMgZm9yIE1pbkdXIHRvIGZpeCBjb21waWxlIHByb2JsZW0uCgoyMDA1LTA0LTA3IDE5OjI5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjCiwgc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpOgoKICAgLSBhZGQgYXBpIGZvciByZWZlcmVuY2UgY291bnRpbmcKICAgLSBhZGQgYXBpIHRvIGZpbmQgcm93IGZyb20gdGFibGUgbWliIGluZGV4IHN0cnVjdAoKMjAwNS0wNC0wNyAxODoyMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHBhc3MgaW4gaGludCB0byBnZXRfZmlyc3QgaWYgc29ydGVkIChzdWdnZXN0ZWQgYnkgTWlrZSBUaGF0Y2hlciBvbiBjb2RlcnMpCgoyMDA1LTA0LTA3IDEzOjAyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gZG9uJ3QgZGlzYWJsZSBhbGwgZmlsZWxvZ3Mgd2hlbiBhIG5ldyBvbmUgaXMgZW5hYmxlZC4KICAgLSBhZ2FpbiB3aXRoIHRoZSBDKysgY29tbWVudHMsIHNvIHRoaXMgaXMgcmUtdGhvdWdodCBiZWZvcmUgNS4zCgoyMDA1LTA0LTA2IDEyOjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgZXhjbHVkZSBjdnMgSWQgbGluZXMgZnJvbSBkaWZmCgoyMDA1LTA0LTA2IDExOjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgcmVtb3ZlIGV4dHJhbmVvdXMgOwoKMjAwNS0wNC0wNiAxMTo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIGFkZCBtaXNzaW5nIGNvbW1lbnQgY2xvc2UKCjIwMDUtMDQtMDYgMTE6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMKLCBwYXJlbnQtc2V0Lm0yaToKCiAgIC0gYWRkIGZ1bmN0aW9uIHRvIGdldCBjb250YWluZXIgc2l6ZQogICAtIHRyYWNrIHRhYmxlIGxldmVsIGRpcnR5IGZsYWcgZm9yIHNldHRhYmxlIHRhYmxlcwogICAtIGNoZWNrIGRpcnR5ICYgc3VjY2VzcyB0byBjYWxsIHNubXBfc3RvcmUgZm9yIHNldHRhYmxlIHBlcnNpc3RlbnQgdGFibGVzCgoyMDA1LTA0LTA1IDEyOjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICAtIHVwZGF0ZSBpbnRlcmFjdGl2ZSBzZXR1cCB0byBwcm9tcHQgZm9yIHBlcnNpc3RlbnQgc3RvcmUKCjIwMDUtMDQtMDUgMTI6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYzoKCiAgIHJlbW92ZSBvbGQgY29kZSBub3QgdXNlZCBmb3IgdGhlIGNvbnRhaW5lciB2ZXJzaW9uCgoyMDA1LTA0LTA1IDEyOjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbTJjX3NldHVwX3RhYmxlLm0yaSwKICAgICBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXBlcnNpc3RlbmNlLm0yaSwgbWZkLXRvcC5tMmMKOgoKICAgLSBtb3ZlIHBlcnNpc3RlbnQgc3RvcmUgY29kZSB0byBpdHMgb3duIGZpbGUKICAgLSB1cGRhdGUgaW50ZXJhY3RpdmUgc2V0dXAgdG8gcHJvbXB0IGZvciBwZXJzaXN0ZW50IHN0b3JlCiAgIC0gbW92ZSBzaG91bGRfc2F2ZSgpIG91dCBvZiBpbnRlcmZhY2UgY29kZSwgaW50byAqVGFibGUuYwogICAtIGxvZyBlcnJvciBpZiBubyBjb2x1bW5zIGZvdW5kIGR1cmluZyByZXN0b3JlCgoyMDA1LTA0LTA0IDE1OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAwNS0wNC0wNCAxNDo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIGNsZWFyIGR1cGxpY2F0ZXMgc28gdGhleSBhcmVuJ3QgZG91YmxlLWZyZWVkCgoyMDA1LTA0LTAxIDEzOjU4ICByc3RvcnkKCiAgICogZGlzdC9zbm1wdHJhcGQtaW5pdC5kOgoKICAgbmV3IHN0YXJ0dXAgc2NyaXB0CgoyMDA1LTA0LTAxIDAzOjA2ICBuYmEKCiAgICogbWFuL21pYjJjLmNvbmYuNToKCiAgIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZQoKMjAwNS0wMy0zMSAxOTowNiAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIHllYXIgdXBkYXRlCgoyMDA1LTAzLTMxIDE4OjIyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIG1lbnRpb24gQUVTIHRvbwoKMjAwNS0wMy0zMSAxNzo0MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgY2FsbCBzbm1wX3NodXRkb3duCgoyMDA1LTAzLTMxIDE3OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgYWRkIHJlc3VsdCBjb2RlIHRvIHNubXBfbG9nIG1lc3NhZ2UKCjIwMDUtMDMtMzEgMTc6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsCiAgICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQyLmg6CgogICBUaGUgbmV3IGRhdGEgYW5kIGRhdGFzZXQgaGVscGVyIGltcGxlbWVudGF0aW9ucyBicmVhayBvbGRlciBjb2RlIGFuZAogICB0aHVzIGJyZWFrIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgogICAgIC0gTWFyayB0aGUgb2xkIGRhdGEgYW5kIGRhdGFzZXQgaW1wbGVtZW50YXRpb25zIGFzIG9ic29sZXRlIGJ1dCByZXN0b3JlCiAgICAgICB0aGVtIGZyb20gcHJldmlvdXMgQ1ZTIHZlcnNpb25zLiAgUmVmZXJlbmNlIHRoZSBuZXcgb25lcyBpbiB0aGUgZG9jcwogICAgICAgZm9yIHRoZSBvbGQgb25lcy4KICAgICAtIENyZWF0ZSBuZXcgZGF0YTIgYW5kIGRhdGFzZXQyIHZlcnNpb25zIHdoaWNoIGFyZSB0aGUgbmV3IGNvbnRhaW5lcgogICAgICAgaW1wbGVtZW50YXRpb25zLgogICAgIC0gTWFrZSB0aGUgY3VycmVudCBkYXRhc2V0IGltcGxlbWVudGF0aW9ucyB1c2UgdGhlIG5ld2VyIHZlcnNpb24uCiAgICAgICAtIGV4Y2VwdCB0aGUgdGFibGUgYW5kIGFkZF9yb3cgaW1wbGVtZW50YXRpb25zIHdoaWNoIGJyb2tlCiAgICAgICAgIGVudGlyZWx5IHVuZGVyIHRoZSBuZXcgY29kZS4KCjIwMDUtMDMtMzAgMjM6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgRml4IHJvdyBjcmVhdGlvbiBmb3IgdmFjbSBmYW1pbHkgdHJlZSByb3dzIHRoYXQgYXJlIGJlbmVhdGggYSBwYXJlbnQgcm93LgoKMjAwNS0wMy0zMCAxODo0NSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICAtIGFkZCBkZWJ1ZwogICAtIGRvbid0IGFzc2VydCBvbiBjb25kaXRpb24gZm9yIG5leHQvYnVsawogICAgIC0gdGhlIHdob2xlIG1vZGUgY291bnRpbmcgaWRlYSBuZWVkcyByZS10aGlua2luZy4uCiAgIC0gdXNlIFNOTVBfRlJFRSBpbnN0ZWFkIG9mIGZyZWUsIG5vdyB0aGF0IG51bGwgcHRycyBhcmUgYSBwb3NzaWJpbGl0eQoKMjAwNS0wMy0zMCAxNToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMKOgoKICAgcnVuIGh0b25sIG9uIHRoZSBpbmRleCBhZGRycwoKMjAwNS0wMy0yOSAyMjozOCAgYWxleF9iCgogICAqIHdpbjMyL2xpYmhlbHBlcnMvOiBNYWtlZmlsZS5pbiwgbGliaGVscGVycy5kc3A6CgogICBBZGQgc3Rhc2hfdG9fbmV4dCB0byBXSU4zMiBNU1ZDIE1ha2VmaWxlIGFuZCB3b3Jrc3BhY2UuCgoyMDA1LTAzLTI5IDIwOjExICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gY29tbWVudCBvdXQgZGVmYXVsdCBkaXNhYmxlIG9mIHN0ZGVyciBsb2csIHNpbmNlIGl0IG1ha2VzIGl0IGltcG9zc2libGUKICAgICB0byB1c2Ugc3Rkb3V0L3N0ZGVyciBmb3IgbG9nZ2luZyAobm93IHRoYXQgbG9nLT5lbmFibGVkIGlzIGNoZWNrZWQpLiB1c2UKICAgICBDKysgY29tbWVudHMsIHNpbmNlIHRoZSB3aG9sZSBsb2cgc2V0dXAgbmVlZHMgcmUtdGhpbmtpbmcgYmVmb3JlIDUuMy4KCjIwMDUtMDMtMjkgMTY6MDQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmM6CgogICBGaXggYmFkIGZvcm1hdCBwYXJhbWV0ZXJzIHRvIHNubXBfbG9nCgoyMDA1LTAzLTI5IDE1OjA1ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9jbXVfY29tcGF0LmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIERldGVjdCBhbmQgcmVwb3J0IGludmFsaWQgUERVcyBzZW50IGFzIHJlc3BvbnNlCgoyMDA1LTAzLTI4IDE1OjI0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSB1c2UgbmV3IGNoZWNrX2FsbF9yZXF1ZXN0c19lcnJvciB0byBjaGVjayB0aGUgcmMgaW4gQUxMIHZhcmJpbmRzLCBub3QganVzdAogICAgIGN1cnJlbnQgcm93L2hhbmRsZXIgdmFyYmluZHMKCjIwMDUtMDMtMjggMTU6MTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSBmaXggYnVnIDExNzA2MDQgc25tcF9kaXNhYmxlX3N0ZGVycmxvZygpIGlzIGlnbm9yZWQKICAgLSBjaGVjIGZvciBudWxsIGJlZm9yZSBkZXJlZiAoZml4IHNubXB0cmFwZCBjcmFzaCBub3RlZCBvbiBpcmMpCgoyMDA1LTAzLTI4IDE0OjI5ICByc3RvcnkKCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIGZpeCBhZGRyZXNzIHR5cGUgaW4gaW5kZXggb2lkCgoyMDA1LTAzLTI4IDE0OjI3ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaAo6CgogICBuZXcgZnVuY3Rpb24gdG8gcmVhbGx5IHJlYWxseSBjaGVjayBlcnJvciBzdGF0dXMgb2YgYWxsIHJlcXVlc3RzCgoyMDA1LTAzLTI1IDIwOjU2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGNoZWNrIHNpemUgb2YgYXJyYXkgaW4gZ2V0dGFibGUgYmVmb3JlIGFzc3VtaW5nIGl0IGhhcyBzb21ldGhpbmcgaW4gaXQKCjIwMDUtMDMtMjUgMDk6NDkgIGFsZXhfYgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgQWRkIGhleE91dHB1dExlbmd0aCB0byBtYW4gcGFnZS4KCjIwMDUtMDMtMjQgMjI6MDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIHBhc3MgTlVMTCB0byBjb25maWcgaGFuZGxlciByZWcsIHRvIHVzZSBjdXJyZW50IGFwcHR5cGUKICAgLSBhZGQgc2VwZXJhdG9ycyBhbmQgaGVhZGVycyB3aGVuIHNhdmluZyBwZXJzaXN0ZW50IGRhdGEKICAgLSByZW1vdmUgZXh0cmFuZW91cyBuZXdsaW5lIGluIHBlcnNpc3RlbnQgZGF0YQoKMjAwNS0wMy0yNCAyMjowNiAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIG5ldyBlbnYgdmFyOiBTTk1QX1BFUlNJU1RFTlRfRElSCgoyMDA1LTAzLTI0IDE2OjQ4ICByc3RvcnkKCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBkb24ndCBkaXNhYmxlIGNhY2hlLCBqdXN0IGZvcmNlIHJlbG9hZCBmb3IgZXZlcnkgcmVxdWVzdAoKMjAwNS0wMy0yMyAxOTo0MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLXRhYmxlLm0yaToKCiAgIGFkZCBtb2R1bGUgbmFtZQoKMjAwNS0wMy0yMyAxOTo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gZml4IHR5cG8KICAgLSB1cGRhdGUgY29uZmlnX3JlcXVpcmUoKSBwYXRoIHRvIHNvbWV0aGluZyBiZXR0ZXIgZm9yIGNvbmZpZ3VyZQoKMjAwNS0wMy0yMyAxOTozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgcmVtb3ZlICogZnJvbSBkZWZhdWx0IGNvbnRleHQgcmVnIHR5cGUgKHR5cGVkZWYgaXMgZm9yIHN0cnVjdCwgbm90IHB0cikKCjIwMDUtMDMtMjIgMTc6MzAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgbWF0Y2ggdXAgdG9kbyB3aXRoIGFjdHVhbCBnZW5lcmF0ZWQgY29kZQoKMjAwNS0wMy0yMiAxNzoyNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaToKCiAgIGFkZCBtaXNzaW5nIHBhcmFtIHRvIHNubXBfbG9nCgoyMDA1LTAzLTE4IDE4OjA5ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIG1ha2Ugc2lnbmFsIGNhbGxzIGNvbmRpdGlvbmFsIGJhc2VkIG9uIGRlZmluaXRpb24gb2Ygc2lnbmFsIChsaWtlIHNubXBkKQoKMjAwNS0wMy0xOCAxODowOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgLSBhZGQgZGVmYXVsdCAoMCkgZm9yIHNwYXJzZSB0YWJsZXMKICAgLSBvbmx5IG1rZGlyIGlmIGl0IGRvZXNuJ3QgYWxyZWFkeSBleGlzdAogICAtIGRvbid0IGlnbm9yZSBta2RpciBlcnJvcnMKCjIwMDUtMDMtMTggMTg6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIG1vdmUgdGVtcCBzdG9yYWdlIGZvciBpbmRleGVzIG91dHNpZGUgb2YgZXhhbXBsZSBjb25kaXRpb25hbAoKMjAwNS0wMy0xOCAxODowNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgZml4IGRlZmF1bHQgZm9yIGRhdGEgdHJhbnNpZW50IChvZmYgYnkgMSkKCjIwMDUtMDMtMTggMTg6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBkb24ndCBnZW5lcmF0ZSBjb2x1bW5fZXhpc3RzX2ZsYWdzIGNvZGUgaWYgc3BhcnNlIHRhYmxlIG5vdCBzZXQKCjIwMDUtMDMtMTggMTg6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBmaXggZ2VuZXJhdGVkIHJvd3JlcV9jdHhfaW5pdCBwcm90b3R5cGUKCjIwMDUtMDMtMTggMTg6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZXRhaWxzLWVudW1zLm0yaSwKICAgICBnZW5lcmljLWdldC1jaGFyLm0yaSwgZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmksIHN5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaQo6CgogICBjaGFuZ2UgSU5URVJOQUxfKiBlbnVtIGRlZmluZXMgdG8gaW5jbHVkZSBjb250ZXh0ICh0YWJsZSkgbmFtZQoKMjAwNS0wMy0xOCAxNzo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIGZpeCBzb21lIHR5cG9zIG5vdGVkIG9uIG1haWxpbmcgbGlzdHMKCjIwMDUtMDMtMTggMTc6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICAtIGRldGVjdCBmaXJzdCBydW4gc28gd2Uga25vdyB0byBjb3B5IGdlbmVyYXRlIGRlZmF1bHRzIHRvIGN1cnIgZGlyCiAgIC0gZGlmZiBpbmRpdmlkdWFsIGZpbGVzIGluc3RlYWQgb2YgcmVjdXJzaXZlIGRpZmYgdy9leGNsdWRlcwogICAtIHVwZGF0ZXMgZm9yIG5ldyBkZWZhdWx0IGRpcmVjdG9yeSBzdHlsZSBkZWZhdWx0cwoKMjAwNS0wMy0xOCAxNzo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBhZGQgdGFibGUgdGVzdCBmb3IgbGFzdGNoYW5nZSBhbmQgc3RvcmFnZXR5cGUgdGMKICAgLSB0d2VhayBkb2MgY29tbWVudHMKICAgLSBkb2N1bWVudCBpZmNvbmYgYW5kIG5ldyBpZmRpcgoKMjAwNS0wMy0xOCAwNTozMSAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIFRDUC1NSUIudHh0LCByZmNsaXN0OgoKICAgVXBkYXRlIFRDUC1NSUIgdG8gUkZDIDQwMjIKCjIwMDUtMDMtMTggMDU6MzAgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIFVwZGF0ZWQgSUFOQS1pZlR5cGUtTUlCCgoyMDA1LTAzLTE4IDA1OjI2ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEZpeCBhIHdhcm5pbmcgZnJvbSBCU0Qgc3lzdGVtcwoKMjAwNS0wMy0xOCAwNDo1MiAgbmJhCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgbWliMmMuY29uZi41IGlzIGEgZ2VuZXJhdGVkIGZpbGUKCjIwMDUtMDMtMTcgMDU6MzIgIG5iYQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC1jLmluYzoKCiAgIFVwcywgdW5pbnRlbmRlZCBwYXRjaCB1bmRvbmUKCjIwMDUtMDMtMTcgMDQ6MzAgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIHBlcmwvVHJhcFJlY2VpdmVyL2NvbnN0LWMuaW5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wX3NlY21vZC5jOgoKICAgQWRkIGZvcm1hdCBjaGVja2luZyB0byBjYWxscyB0byBzbm1wX2xvZywgYW5kIGZpeCB0aGUgdW5jb3ZlcmVkIGVycm9ycwoKMjAwNS0wMy0xNSAwMToxMyAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICBJbmNsdWRlIHNtdXggaGVhZGVycyB3aGVuIG5lZWRlZAoKMjAwNS0wMy0xNCAxNjoxNCAgbmJhCgogICAqIGNvbmZpZ3VyZToKCiAgIFN5bmMgdG8gY29uZmlndXJlLmluCgoyMDA1LTAzLTE0IDE1OjUzICBuYmEKCiAgICogbWlicy86IElORVQtQUREUkVTUy1NSUIudHh0LCBNYWtlZmlsZS5taWIsIHJmY2xpc3QKOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgSU5FVC1BRERSRVNTLU1JQgoKMjAwNS0wMy0xNCAxNTo0OCAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCBjb25maWd1cmUgaGVhZGVyIGFsZXJ0cyBmb3IgU29sYXJpcyA4IGFuZCA5LCBOZXRCU0QgMiBhbmQgRnJlZUJTRCA1CgoyMDA1LTAzLTA0IDE1OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICAtIGRvbid0IG92ZXJ3cml0ZSBleGlzdGluZyBtYWtlZmlsZQogICAtIGluZGVudGlvbiBjaGFuZ2VzCiAgIC0gZXhwbGljaXQgY2xvc2Ugb2YgZmlsZQoKMjAwNS0wMy0wNCAxNToyNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gYWRkIGZ1bmN0aW9uIHRvIGdldC9zZXQgdXNlciBjb250ZXh0CiAgIC0gdXNlIG5ldyByb3dfbWVyZ2UgZmlyc3QvbGFzdCBhcGkgdG8gbWFrZSBzdXJlIHByZS9wb3N0IGNhbGxlZCAxL3BlciBoYW5kbGVyCiAgIC0gYWRkIHJjIHBhcmFtIHRvIHBvc3RfcmVxdWVzdCAoeXVtLCBteSBvd24gd29yZHMgd2VyZSBkZWxpY2lvdXMpCiAgIC0gdXNlIGFzcCBzdGF0dXMsIG5vdCBzdGF0dXMgb2YgaGFuZGxlcnMgcmVxdWVzdHMsIHdoZW4gY2hlY2tpbmcgZm9yCiAgICAgc3VjY2Vzc2Z1bCByZXF1ZXN0IGNvbXBsZXRpb24KICAgLSBhZGQgc3VwcG9ydCBmb3Igc2tpcHBpbmcgbm9uLWV4aXN0ZW50IHJvd3MgaW4gc3BhcnNlIHRhYmxlcwogICAtIGFkZCBtb3JlIGluZm8gdG8gc29tZSBkZWJ1ZyBtc2dzCiAgIC0gdXNlIFNOTVBfTk9TVUNISU5TVEFOQ0UgaW5zdGVhZCBvZiBBU05fUFJJVl9SRVRSWQogICAtIGFkZCBtb3JlIGRlYnVncyBtc2dzCiAgIC0gZG9uJ3QgY2xlYXIgc2V0IGZsYWdzIHRpbCBwb3N0IGNvbW1pdAogICAtIHJlbW92ZSByZWR1bmRhbnQgdmFyYmluZCBsZW5ndGggY2hlY2sKICAgLSB1cGRhdGUgZm9yIG5ldyBjb2x1bW4gZmxhZyBuYW1lcwoKMjAwNS0wMy0wNCAxNToxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgLSBmaXggdGVzdCBmb3IgZGVmYXVsdHMgaW4gb2xkIGxvY2F0aW9uCiAgIC0gYWRkIG9wdGlvbiB0byByZS1ydW4gaW50ZXJhY3RpdmUgc2V0dXAgaWYgZXhpc3RpbiBkZWZhdWx0cwoKMjAwNS0wMy0wNCAxNToxNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gYWRkIHN1cHBvcnQgZm9yIHNraXBwaW5nIG5vbi1leGlzdGVudCByb3dzIGluIHNwYXJzZSB0YWJsZXMKICAgLSBhZGQgcmMgcGFyYW0gdG8gcG9zdF9yZXF1ZXN0ICh5dW0sIG15IG93biB3b3JkcyB3ZXJlIGRlbGljaW91cykKICAgLSBjaGVjayBuZXcgdmFycyB0byBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgdG8gZ2VuZXJhdGUgc3VwcG9ydCBmaWxlcwogICAgIChkb3h5Z2VuLCBtYWtlZmlsZSwgc3ViYWdlbnQpCgoyMDA1LTAzLTA0IDE1OjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIC0gYWRkIGNvbW1lbnRzIG9uIG5vZGUgbGVuZ3RocwogICAtIHVwZGF0ZSBmb3IgY2hhbmdlcyBpbiB2YWx1ZSBtYXAgcmV2ZXJzZQoKMjAwNS0wMy0wNCAxNTowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZ2V0LWNoYXIubTJpLAogICAgIGdlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpOgoKICAgLSB1cGRhdGUgQklUUyBmaWVsZHMgdG8gdXNlIGRlZmluZSBJTlRFUk5BTF8qX0ZMQUcgZGVmaW5lcywgaW5zdGVhZCBvZiBJU19TRVRfKgogICAtIGFkZCBvYnZpb3VzIG5vdGUgb24gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBDIGJpdCBvcmRlciBhbmQgU05NUCBiaXQgb3JkZXIKICAgLSBhZGQgQklUUyBtYXBwaW5nIHRvIHJldmVyc2UgdmFsdWUgbWFwCgoyMDA1LTAzLTA0IDE1OjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1vaWRzLm0yYywKICAgICBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaSwgcGFyZW50LXNldC5tMmksCiAgICAgc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpOgoKICAgY2hhbmdlIGNvbHVtbiBmbGFnIG5hbWVzIHRvIHJlZHVjZSBjb25mdXNpb24gd2l0aCBvdGhlciBkZWZpbmVkIG5hbWVzCgoyMDA1LTAzLTA0IDE0OjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICBhZGQgbmV3IG0yY190YWJsZV9zcGFyc2UgdG8gZGVmYXVsdHMKCjIwMDUtMDMtMDQgMTQ6NTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX2VudW0ubTJpOgoKICAgdXNlIG5ldyB2YXIgZm9yIGVudW0gc3VmZml4CgoyMDA1LTAzLTA0IDE0OjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIG5ldyB2YXIgZm9yIGVudW0gc3VmZml4LCBzZXQgdG8gX2ZsYWcgZm9yIGJpdHMgb2JqZWN0cwoKMjAwNS0wMy0wNCAxMzoyNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIC0gbW92ZSBJTlRFUk5BTF8qIGVudW0gbWFjcm9zIGluc2lkZSBpZmRlZnMgZm9yIFRDCiAgIC0gZ2VuZXJhdGUgSU5URVJOQUxfKiBlbnVtcyBmbGFncyBmb3IgQklUUwoKMjAwNS0wMy0wMyAxOTo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgdXBkYXRlIGNvbW1lbnRzCgoyMDA1LTAzLTAzIDE5OjEzICByc3RvcnkKCiAgICogc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBmaXggbmV0c25tcF9jaGVja192Yl9yYW5nZSAoY2hlY2sgdmFsdWVzLCBub3Qgc2l6ZXMpCgoyMDA1LTAzLTAzIDE5OjExICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Jvd19tZXJnZS5oOgoKICAgLSBrZWVwIHNhdmVkIHN0YXR1cyBkYXRhIGJldHdlZW4gbW9kZSBjYWxscyAoaW4gcmVxaW5mbyksIHNvIHdlIGNhbi4uCiAgIC0gYnVpbGQgYWxsIHRlbXBvcmFyeSByZXF1ZXN0IGxpc3RzIGJlZm9yZSBjYWxsaW5nIG5leHQgaGFuZGxlciwgc28gd2UgY2FuLi4KICAgLSB0cmFjayBudW1iZXIgb2YgcmVxdWVzdHMgYW5kIG51bWJlciBvZiByb3dzLCBzbyB3ZSBjYW4uLgogICAtIHByb3ZpZGUgYXBpIGZvciBsb3dlciBoYW5kbGVyIHRvIGtub3cgaWYgY3VycmVudCBjYWxsIGlzIGZvciBmaXJzdC9sYXN0IHJvdwogICAtIGxvZyBhIHdhcm5pbmcgaWYgaGFuZGxlciBmb3Igcm93IHJldHVybnMgZXJyb3IsIGJ1dCBET05UIGV4aXQgbG9vcAogICAgIC0gaWYgbG93ZXIgaGFuZGxlciByZXR1cm5zIGVyciwgcGFzcyBpdCB0byBwYXJlbnQKICAgLSBhZGQgbW9yZSBkZWJ1Z2dpbmcKCjIwMDUtMDMtMDMgMTU6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgKOgoKICAgYWRkIG9wdGlvbiB0byB3YXRjaGVkIHRpbWVzdGFtcCB0byBoYXZlIGEgcG9pbnRlciB0byBhIGRpcmVjdCB2YWx1ZQoKMjAwNS0wMy0wMiAxODo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgLSBtb3ZlIGNvbHVtbiBiaXQgZmxhZyBtYWNyb3MgdXAgd2l0aCBjb2x1bW4gbnVtYmVyIG1hY3JvcwogICAtIGJhaWwgaWZmIG1vcmUgdGhhbiAzMiBjb2x1bW5zLiBmaXggdGhpcyBsYXRlci4uLgoKMjAwNS0wMy0wMiAxODo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLm1mZC5jb25mOgoKICAgLSBkb24ndCBydW4gZXh0cmEgZmlsZSBmcm9tIHRvcDsgbW92ZSBkb3duIHNvIGNhbiBiZSBjb250cm9sbGVkIGJ5IGRlZmF1bHRzCgoyMDA1LTAzLTAyIDE4OjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIC0gcmVtb3ZlIHVudXNlZCBzZXR1cCBvZiBtMmNfbnZ2X3NpemVvZgoKMjAwNS0wMy0wMiAxODo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXZhcmJpbmQtdmFsaWRhdGUubTJpOgoKICAgLSByZXdvcmsgaW5pdGlhbCBjaGVja192Yl8qIGxvZ2ljLCBjaGVja2luZyBtYXhfc2l6ZSBmb3Igb2N0ZXQgc3RyaW5ncwogICAtIGZpeCByYW5nZSBjaGVja3MgZm9yIG9jdGV0IHN0cmluZ3MKICAgLSB1c2UgbTJjIGRhdGFfaXRlbSBhbmQgbm9kZSBkaXJlY3RvcnksIGVsaW1pbmF0aW5nIGEgdmFyIGZyb20gbm9kZSBzZXR1cAogICAtIHJlbW92ZSBnZW5lcmF0ZWQgY29tbWVudCBhbmQgc29tZSBjb21tZW50ZWQgb3V0IGNvbmYgc3R1ZmYKCjIwMDUtMDMtMDIgMTg6MTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIHByb3BlciBpbXBsZW1lbnRhdGlvbiBmb3IgY2hlY2tfdmJfc2l6ZV9yYW5nZQoKMjAwNS0wMy0wMiAxNjo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICAtIG1vdmUgVE9ETyBjb21tZW50IGF3YXkgZnJvbSBsaW5rZSBsaWtlbHkgdG8gYmUgZGVsZXRlZAogICAtIGEgbG9nIG1lc3NhZ2UgaW5kaWNhdGluZyBhIG5vZGUgaXMgbm90IGltcGxlbWVudGVkCgoyMDA1LTAzLTAyIDE1OjAyICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSBhbGxvdyBvY3Rlc3Qgc3RyaW5nIHJlYWQgdG8gZmlsbCBidWZmZXIKICAgLSBkb24ndCBudWxsIHRlcm1pbmF0ZSBvY3RldCBzdHJpbmcgaWYgYnVmZmVyIGZ1bGwKICAgLSB3YXJuIGlmIGlucHV0IGlzIGxhcmdlciB0aGFuIGJ1ZmZlcgoKMjAwNS0wMy0wMiAxNDo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGNoYW5nZSBkZWZhdWx0IHJlZ2lzdHJhdGlvbiB0eXBlZGVmIHRvIHN0cnVjdCAobm90IGEgcHRyIHRvIHN0cnVjdCkKCjIwMDUtMDMtMDIgMTQ6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBjaGFuZ2UgZGVmYXVsdCByZWdpc3RyYXRpb24gdHlwZWRlZiB0byBzdHJ1Y3QgKG5vdCBhIHB0ciB0byBzdHJ1Y3QpCgoyMDA1LTAzLTAyIDE0OjM1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaQosIG1mZC1kYXRhLWFjY2Vzcy5tMmMsIG1mZC1yZWFkbWUubTJjLAogICAgIHBhcmVudC1zZXQubTJpOgoKICAgY2hhbmdlIGRlZmF1bHQgcmVnaXN0cmF0aW9uIHR5cGVkZWYgdG8gc3RydWN0IChub3QgYSBwdHIgdG8gc3RydWN0KQoKMjAwNS0wMy0wMiAxNDoyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgICAgc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBmaXggbWlzLW5hbWVkIGZ1bmN0aW9uOyBhZGQgcHJvdG8gZm9yIGNvcnJlY3QgbmFtZQoKMjAwNS0wMy0wMiAxNDoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgYWxsb3cgc25tcGQuY29uZiBzbXV4IE9JRHMgdG8gYmUgdGV4dCwgbm90IGp1c3QgbnVtZXJpYwoKMjAwNS0wMy0wMiAxNDowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gZml4IGxpYnJhcnkgZGVwZW5kZW5jaWVzCiAgICAgLSB1c2UgbmV3IHN5c09SIHJlZ2lzdHJhdGlvbiBjYWxsYmFjayBpbnN0ZWFkIG9mIGRpcmVjdCBmdW5jdGlvbiBjYWxscwoKMjAwNS0wMy0wMiAxMzo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIGFkZC9yZWdpc3RlciBjYWxsYmFja3MgZm9yIHJlZy91bnJlZyBzeXNPUiBlbnRyaWVzCgoyMDA1LTAzLTAyIDEzOjU2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaDoKCiAgIGFkZCBjYWxsYmFja3MgZm9yIHJlZy91bnJlZyBzeXNPUiBlbnRyaWVzCgoyMDA1LTAzLTAyIDEzOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIGxvZyBJTkZPIG1lc3NhZ2Ugb24gc3VjY2Vzc2Z1bCBjb25uZWN0IHRvIG1hc3RlcgogICAtIGFsd2F5cyBsb2cgcGVlcm5hbWUgb24gdW5zdWNjZXNzZnVsIGNvbm5lY3QgYXR0ZW1wdAoKMjAwNS0wMy0wMiAxMzo0OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGFsd2F5cyBsb2cgYWdlbnR4IHBlZXIgbmFtZSBvbiBjb25uZWN0IGZhaWx1cmUKCjIwMDUtMDMtMDIgMTM6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAtIGxvZyBtZXNzYWdlIG9uIGZhaWxlZCByZWdpc3RyYXRpb24KICAgLSB1cGRhdGUgZm9yIG5ldyB2ZXJzaW9uX3N5c29pZCBsb2NhdGlvbgoKMjAwNS0wMy0wMiAxMzo0MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIG1vcmUgZGVidWcvZXJyb3IgbG9nIGZvciBwcm9ibGVtcyB3aXRoIGNhY2hlIGZpbGUKCjIwMDUtMDMtMDIgMTM6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgLSBmaXggbGlicmFyeSBkZXBlbmRlbmNpZXMKICAgICAtIG1vdmUgdmVyc2lvbl9zeXNvaWQgaW50byB0aGUgYWdlbnQgKGZpeCBsaWJyYXJ5IGRlcGVuZGVuY2llcykKICAgICAtIHVwZGF0ZSBzeXN0ZW1fbWliIGZvciBuZXcgc3lzb2lkIGxvY2F0aW9uCiAgIC0gZG9uJ3QgY2FsbCBob3N0c19jdGwgZm9yIGNhbGxiYWNrIGNvbm5lY3Rpb24KICAgLSBsb2cgYWRkcl9zdHJpbmcgZm9yIFVOS05PV04gY29ubmVjdGlvbnMKCjIwMDUtMDMtMDIgMTI6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpOgoKICAgYWRkIGRlYnVnCgoyMDA1LTAzLTAyIDEyOjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYzoKCiAgIC0gYWRkIC14IHBhcmFtIGZvciBtYXN0ZXIgYWRkcmVzcwogICAtIGFkZCB3aW5kb3dzIFNPQ0tfKiBtYWNyb3MKCjIwMDUtMDMtMDIgMTI6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRveHlnZW4ubTJjOgoKICAgZG9uJ3Qgb3ZlcndyaXRlIGV4aXN0aW5nIGNvbmYgZmlsZQoKMjAwNS0wMy0wMiAxMTo1OCAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gZml4IHNwZWMgc28gcnBtYnVpbGQgdy9wYXJhbWV0ZXJzIHNob3VsZCB3b3JrIG9rCiAgICAgLSBtYWtlIHN1cmUgcGVybCB1c2VzIFJQTSBwcmVmaXgsIGluc3RlYSBvZiBoYXJkY29kZWQgL3VzciAoY29uZmlnLCBwYXRoc3ViKQogICAgIC0gbWFrZSBzdXJlIG1ha2VpbnN0YWxsIHVzZXMgcHJvcGVyIGluY2x1ZGUgZGlyIHBhdGgKCjIwMDUtMDItMjggMDc6NTIgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIEFkZGVkIFdJTjMyIGlmZGVmIGJsb2NrcyB0byBhY2NvbW9kYXRlIGNvbXBpbGluZyB0aGUgSE9TVC1SRVNPVVJDRSBtaWIgb24KICAgV2luZG93cy4KCjIwMDUtMDItMjggMDc6NTAgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIFdpbmRvd3MgSE9TVC1SRVNPVVJDRSBtaWIgaW1wbGVtZW50YXRpb24uIHN0cnVjdCB3aW5fc3RhdGZzIGhhcyBiZWVuIG1vdmVkCiAgIHRvIGhyX3N0b3JhZ2UuaC4KCjIwMDUtMDItMjggMDc6NDggIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaDoKCiAgIFdpbmRvd3MgSFIgbWliIGltcGxlbWVudGF0aW9uLgoKMjAwNS0wMi0yNyAyMjozNCAgYWxleF9iCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIHQvbWliLnQsIHQvc3RhcnRhZ2VudC5wbDoKCiAgIEFwcGx5IE1heCBCYWtlcidzIHBhdGNoIDExMTc2OTYgd2hpY2ggZml4ZXMgYSByZWdleCB0aGF0IHNwbGl0cyBhIHRhZyBmcm9tCiAgIGFuIGlpZC4gIEFsc28gYWRkZWQgYWRkaXRpb25hbCB0ZXN0cyB0byBtaWIudCB0ZXN0IHNjcmlwdC4KCjIwMDUtMDItMjYgMDc6MjEgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYzoKCiAgIFRoaXMgaXMgcGFydCBvZiB0aGUgSE9TVC1SRVNPVVJDRSBXaW5kb3dzIGltcGxlbWVudGF0aW9uLiBocl9uZXR3b3JrLmMgd2lsbAogICBub3cgY29tcGlsZSB3aXRoIE1pbkdXIGJ1dCBtdWNoIG9mIHRoZSBmdW5jdGlvbmFsaXR5IHN0aWxsIG5lZWRzIHRvIGJlIGltcGxlbWVudGVkLgoKMjAwNS0wMi0yNSAxNzo0NSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBzZXQgYSBnb29kIGV4YW1wbGUgYW5kIGNhbGwgU09DS19DTEVBTlVQIGJlZm9yZSBleGl0CgoyMDA1LTAyLTI1IDE3OjM2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwKICAgICBtMmNfc2V0dXBfdGFibGUubTJpLCBtZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGZpeCB0eXBvIGluIHZhcmlhYmxlIG5hbWUKCjIwMDUtMDItMjUgMTc6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtIGZpeCBwcm90b3R5cGVzLCBub3RlZCBieSBuaWVscwogICAtIGRvbid0IGdlbmVyYXRlIGRveHlnZW4gY29uZiBmaWxlCgoyMDA1LTAyLTI1IDE3OjAzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgaWdub3JlIGN2cyBJZCB0YWdzIHdoZW4gcGVyZm9ybWFpbmcgZGlmZgoKMjAwNS0wMi0yNSAxNjo0NiAgcnN0b3J5CgogICAqIGFnZW50LzogbWliZ3JvdXAvc211eC9zbXV4LmgsIG1pYl9tb2R1bGVzLmMsCiAgICAgc25tcF92YXJzLmM6CgogICAtIGVsaW1pbmF0ZSBsaWJuZXRzbm1wYWdlbnQgcmVmcyB0byBsaWJuZXRzbm1wbWlicwogICAgIC0gbW92ZSBtb2R1bGVfaW5pdF9saXN0IHN0dWZmIGludG8gYWdlbnQgbGlicwogICAgIC0gbW92ZSBzbXV4IGNvZGUgaW50byBhZ2VudCBsaWJzCgoyMDA1LTAyLTI1IDE2OjMxICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gYWRkIGNvbnRleHQgdG8gcmVnaXN0ZXJfbWliIGRlYnVnCiAgIC0gd2FybiBpZiBwYXNzZWQgY29udGV4dCBkb2Vzbid0IG1hdGNoIHJlZ2luZm8tPmNvbnRleHROYW1lCgoyMDA1LTAyLTI1IDE2OjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgcmVnaXN0ZXIgd2l0aCBjb250ZXh0LCBpZiBzcGVjaWZpZWQKCjIwMDUtMDItMjUgMTY6MTAgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICAtIGZpeCBsaWJyYXJ5IG9yZGVycyBpbiBsaW5rIGxpbmVzCiAgIC0gYWRkIHdpbmRvd3MgU09DS18qIG1hY3JvcyB0byBnZW5lcmF0ZWQgc3ViYWdlbnQKCjIwMDUtMDItMTkgMDc6MDAgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIFBhcnQgb2YgdGhlIEhPU1QtUkVTT1VSQ0UgaW1wbGVtZW50YXRpb24gZm9yIFdpbmRvd3MuCgogICAqIERlZmluZWQgd2luX3N0YXRmcyBzdHJ1Y3R1cmUuCiAgICogRGVmaW5lZCBwYWdlc2l6ZSBmb3IgV2luZG93cyBhcyA0MDk2ICg0ayBpcyB3aGF0IEkgaGF2ZSBmb3VuZCB0aHJvdWdoIG15CiAgIAlyZXNlYXJjaC4gVGhlcmUgaXMgcHJvYmFibHkgYSB2YXJpYWJsZSBvciBmdW5jdGlvbiB0byBnZXQgdGhlIGluZm9ybWF0aW9uCiAgIAlvbiBXaW5kb3dzIGJ1dCBJIGhhdmUgbm90IGZvdW5kIGl0IHlldC4pCiAgICogQWRkZWQgZnVuY3Rpb25zIHdpbl9zdGF0ZnMoKSBhbmQgd2luX3JlYWxwYXRoKCkuCgoyMDA1LTAyLTE2IDE2OjQ4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBLaWxsaW5nIHdhcm5pbmdzCgoyMDA1LTAyLTE2IDE2OjQ4ICBuYmEKCiAgICogbWlicy86IE5FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQsIE5FVC1TTk1QLUVYVEVORC1NSUIudHh0CiwgTkVULVNOTVAtVEMudHh0OgoKICAgc21pbGludCdpbmcKCjIwMDUtMDItMTUgMTE6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgSW1wbGVtZW50IHByb3BlciBTRVQgc3VwcG9ydCBmb3IgbnNFeHRlbmRSdW5UeXBlLgoKMjAwNS0wMi0xMiAwODo0NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgTW92ZSB2YXJpYWJsZSB1bnVzZWQgd2hlbiA8cGljbC5oPiB1bmF2YWlsYWJsZSBmb3IgU29sYXJpcwoKMjAwNS0wMi0xMiAwODozMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaCwKICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICBGaXggd2FybmluZ3MKCjIwMDUtMDItMTIgMDg6MDcgIG5iYQoKICAgKiBhZ2VudC86IGhlbHBlcnMvaW5zdGFuY2UuYywgaGVscGVycy93YXRjaGVyLmMsCiAgICAgbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIG1pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgU29sYXJpcyBnY2MgLW02NCBmaXhlcwoKMjAwNS0wMi0xMiAwNjo0MiAgbmJhCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIE1vcmUgZGV0YWlscyB3aGVuIHJlc3BvbnNlIGZhaWxzLiBHb29kIGZvciBsb2NhdGluZyA2NC1iaXQgcHJvYmxlbXMKCjIwMDUtMDItMTIgMDU6NTggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgRml4aW5nIHdhcm5pbmdzCgoyMDA1LTAyLTEyIDA1OjE3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwosIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oOgoKICAgSW50ZWdyYXRlIGZpeGVzIGZyb20gTmV0QlNEIHBvcnQKCjIwMDUtMDItMTAgMTQ6NTMgIG5iYQoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBGaXggbWlzbGVhZGluZyBjb21tZW50LiBUaGFua3MgdG8gYnVnIDEwODY4NzAKCjIwMDUtMDItMTAgMTM6NDMgIG5iYQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJbmNsdWRlIHN5c2xvZy5oIGFsc28gaWYgbm90IHVzaW5nIGxpYndyYXAKCjIwMDUtMDItMTAgMTM6MjQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIEZpeCBzeXNJT1Jhd1NlbnQvUmVjZWl2ZWQgd2hpY2ggYXJlIHJldmVyc2VkIGZvciBMaW51eC4gQnVnIDExMDI1MTgKCjIwMDUtMDItMTAgMTA6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIEZpeCBGcmVlQlNEIG1lbW9yeSBsZWFrLCB0aGFua3MgdG8gSm9obiBTZWxsZW5zLCBidWcgMTEwMzY0NAoKMjAwNS0wMi0xMCAwODoxMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgRml4aW5nIHdhcm5pbmdzCgoyMDA1LTAyLTEwIDA3OjM1ICBuYmEKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIEZpeGluZyB3YXJuaW5ncwoKMjAwNS0wMi0xMCAwNzoyMiAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggYW4gZXh0cmFuZW91cyBuZXdsaW5lIGVuZGluZyBoZXhzdHJpbmdzCgoyMDA1LTAyLTA5IDE2OjM0ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBGaXggYmFkIGluZGV4LCBwb2ludGVkIG91dCBpbiBidWcgMTExNjY1MgoKMjAwNS0wMi0wOSAxNjozMCAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXggYSBiYWQgZXJyb3IgbWVzc2FnZQoKMjAwNS0wMi0wOSAxNjoyNSAgbmJhCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBSZW1vdmUgd2FybmluZ3MKCjIwMDUtMDItMDkgMTY6MTUgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVtb3ZlIHdhcm5pbmdzCgoyMDA1LTAyLTA5IDE2OjAxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIEFub3RoZXIgaHVudCBmaXhpbmcgd2FybmluZ3MKCjIwMDUtMDItMDkgMTQ6NDYgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIHNubXBsaWIvc25tcF9lbnVtLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBBZGQgc29tZSBtaXNzaW5nIGNvbnN0LW5lc3MgZm9yIHBhcmFtZXRlcnMKCjIwMDUtMDItMDggMTY6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCiwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYwosIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYwosIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgRml4IGEgYnVuY2ggb2YgdHJpdmlhbCB3YXJuaW5ncwoKMjAwNS0wMi0wOCAxNTowNiAgbmJhCgogICAqIG1pYnMvOiBJQU5BaWZUeXBlLU1JQi50eHQsIFNNVVgtTUlCLnR4dCwgaWFuYWxpc3QKLCByZmNsaXN0LCBzbWlzdHJpcDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IHZlcnNpb25zCgoyMDA1LTAyLTA4IDE0OjU0ICBuYmEKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgRml4ZXMgdG8gYWxsb3cgaXQgdG8gcGFzcyBzbWlsaW50CgoyMDA1LTAxLTI3IDIyOjUyICByc3RvcnkKCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBkaXNhYmxlIGNhY2hpbmcgc2luY2Ugb3RoZXIgY29kZSBtb2RpZmllcyB1bmRlcmx5aW5nIGRhdGEKCjIwMDUtMDEtMjUgMTY6MjQgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgcmVtb3ZlIG5vdGUgb24gY3ZzMmNsIHdvcmthcm91bmQsIGFkZCBub3RlIG9uIGhvdyB0byBnZXQgY3VycmVudCB2ZXJzaW9uCgoyMDA1LTAxLTI1IDA4OjUxICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgRml4IG1pc25hbWVkIHJvdyBzdHJ1Y3R1cmUuCgoyMDA1LTAxLTIyIDE2OjQ5ICBhbGV4X2IKCiAgICogbG9jYWwvRkFRMkhUTUwsIGxvY2FsL2h0bWwtYWRkLWhlYWRlci1mb290ZXIucGwsCiAgICAgbWFuL21ha2VfaW5kZXgucGwsIG1hbi9tYW5fc2VjdGlvbnMudHh0LAogICAgIG1pYnMvTWFrZWZpbGUuaW4sIG1pYnMvbWFrZWh0bWwucGw6CgogICBVcGRhdGVkIHNjcmlwdHMgZXRjIGZvciBnZW5lcmF0aW5nIHdlYiBjb250ZW50LgoKMjAwNS0wMS0yMiAxNTozOCAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvZGlzdC9SRUFETUUudHh0LAogICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvQ29uZmlndXJhdGlvbl9PdmVydmlldy5odG1sOgoKICAgV2luMzIgcmVnaXN0cnkgZG9jdW1lbnRhdGlvbiBpbXByb3ZlbWVudHMKCjIwMDUtMDEtMjIgMTA6NDIgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgQWRkZWQgY291bnRfdXNlcnMgZnVuY3Rpb25hbGl0eSBmb3IgV2luZG93cy4gVGhlIGZ1bmN0aW9uIGN1cnJlbnRseSByZXR1cm5zCiAgIDAgZm9yIGEgZmFpbGVkIGNhbGwgdG8gTmV0V2tzdGFHZXRJbmZvKCkgYW5kIG1heSByZXF1aXJlIG1vcmUgZXJyb3IgY2hlY2tpbmcKICAgb24gV2luZG93cyBzeXN0ZW1zIHRvIHJldHVybiBhIGNvcnJlY3QgdmFsdWUgZm9yIGZhaWx1cmUuCgoyMDA1LTAxLTIxIDExOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jOgoKICAgVXNlIHRoZSAobmV3KSB0YWJsZV9kYXRhc2V0IGl0ZXJhdG9yIEFQSSByb3V0aW5lcywKICAgcmF0aGVyIHRoYW4gdGhlIGludGVybmFsIGZpZWxkcyBkaXJlY3RseS4KCiAgIChJIHdvbmRlciBob3cgbWFueSBtb3JlIGJpdHMgSSBicm9rZT8pCgoyMDA1LTAxLTIxIDA1OjEzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYzoKCiAgIERvbid0IGJlIHN1Y2ggYW4gaW1wYXRpZW50IGNoaWxkLCBEYXZlISAgSWYgSSd2ZQogICB0b2xkIHlvdSBvbmNlLCBJJ3ZlIHRvbGQgeW91IGEgdGhvdXNhbmQgdGltZXM6CgogICBUaWR5IHVwIHByb3Blcmx5IGFmdGVyIG9uZSByZXF1ZXN0IGJlZm9yZSBzdGFydGluZyBvbiB0aGUgbmV4dC4KCiAgIDxzaGFrZXMgaGVhZCBzb3Jyb3dmdWxseT4KICAgU29tZSBwZW9wbGUhIC0gSSBibGFtZSB0aGUgcGFyZW50cy4uLi4uCgoyMDA1LTAxLTIwIDA5OjI1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaDoKCiAgIFJlLWltcGxlbWVudCAndGFibGVfZGF0YScgdXNpbmcgdGhlICd0YWJsZV9jb250YWluZXInIGhlbHBlci4KICAgVGhlIHR3byBhcmUgYWxtb3N0IGlkZW50aWNhbCBpbiBiZWhhdmlvdXIgYW55d2F5IC0ganVzdCB3aXRoCiAgIGRpZmZlcmVudCBleHBlY3RhdGlvbnMgb3ZlciB0aGUgZm9ybWF0IG9mIGEgcGVyLXJvdyBzdHJ1Y3R1cmUuCgoyMDA1LTAxLTIwIDA5OjA5ICBkdHMxMgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIFVzZSB0aGUgKG5ldykgdGFibGVfZGF0YXNldCBpdGVyYXRpb24gQVBJLAogICByYXRoZXIgdGhhbiBmaWRkbGluZyB3aXRoIHRoZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbi4KCjIwMDUtMDEtMjAgMDk6MDcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgUHJvdmlkZSBhIGNsZWFuIEFQSSBmb3Igd2Fsa2luZyB0aHJvdWdoIHRoZSByb3dzIG9mIGEgdGFibGUKICAgKFJhdGhlciB0aGFuIHJlbHlpbmcgb24gYSBwYXJ0aWN1bGFyIGludGVybmFsIHJlcHJlc2VudGF0aW9uKS4KCjIwMDUtMDEtMjAgMDk6MDIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgVGhlIEFQSSBmb3IgY291bnRpbmcgdGhlIG51bWJlciBvZiByb3dzIHdhcyBjb25mdXNpbmdseQogICBuYW1lZCwgYW5kIG5vdCBhY3R1YWxseSBkZWNsYXJlZCBpbiB0aGUgaGVhZGVyIGZpbGUuCiAgIEludHJvZHVjZSBhIG1vcmUgc2Vuc2libGUgdmVyc2lvbi4KCjIwMDUtMDEtMTkgMDk6MTQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaDoKCiAgIFdlIHNlZW0gdG8gaGF2ZSBhbiBpbmNvbnNpc3RlbnRseSBuYW1lZCBBUEksIGRlcGVuZGluZyBvbiB3aGV0aGVyIGl0CiAgIGlzIGJlaW5nIGRlZmluZWQgaW5saW5lIG9yIG5vdC4gIFRoaXMgZG9lcyBub3QgZmVlbCBsaWtlIGEgR29vZCBJZGVhLgogICBFbnN1cmUgdGhhdCB0aGUgc2FtZSBuYW1lcyB3b3JrLCByZWdhcmRsZXNzIG9mIGlubGluaW5nLgogICAoVGhhdCBpbnRyb2R1Y2VzIGEgY2VydGFpbiBkdXBsaWNhdGlvbiBvZiBjb2RlLCBidXQgc3VjaCBpcyBsaWZlKQoKMjAwNS0wMS0xMyAxMToyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZS5oOgoKICAgTmV3ZXIgSVAtRk9SV0FSRC1NSUIgZnJvbSBhbiBJRCBzZXQgdG8gYmVjb21lIGFuIFJGQwoKMjAwNS0wMS0xMyAxMToyNCAgaGFyZGFrZXIKCiAgICogbWlicy86IElQLUZPUldBUkQtTUlCLnR4dCwgSUFOQS1SVFBST1RPLU1JQi50eHQsCiAgICAgTWFrZWZpbGUuaW46CgogICBOZXdlciBJUC1GT1JXQVJELU1JQiBmcm9tIGFuIElEIHNldCB0byBiZWNvbWUgYW4gUkZDCgoyMDA1LTAxLTEyIDExOjUwICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUHJvdmlkZSBhIG1lYW5zIGZvciBzbm1wdHJhcGQgdG8gcmVwb3J0IC9ldGMvaG9zdHMue2FsbG93LGRlbnl9CiAgIHN0eWxlIGFjY2VzcyBjb250cm9sIGFjdGl2aXR5LgogICBUaGlzIHNob3VsZCBwZXJoYXBzIGJlIGxvZ2dlZCB2aWEgJ3NubXBfbG9nJyAoYy5mIGFnZW50L3NubXBfYWdlbnQuYykKICAgYnV0IEkgc2VlbSB0byByZWNhbGwgcHJvYmxlbXMgd2l0aCBkdXBsaWNhdGUgc3ltYm9scy4gIEJ1dCBhIGRlYnVnCiAgIG1lc3NhZ2Ugc2hvdWxkIGJlIHNhZmUgZW5vdWdoLi4uLgoKMjAwNS0wMS0xMiAxMToyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBkZWZpbmUgc2V0UGVycm9yc3RhdHVzIHVudGlsIHByb3BlciBmaXggaW1wbGVtZW50ZWQKCjIwMDUtMDEtMTIgMDk6NDMgIGFsZXhfYgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBBcHBseSBwYXRjaCBmcm9tIFBoaWxpcCBXIEdpbGxpcyBhbmQgRGFuaWVsIEtlcm5zIGZvciB3aW4zMiBnZXRlbnYgY3Jhc2guCgoyMDA1LTAxLTEyIDA2OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF9jYWNoZS5oOgoKICAgU3VwcG9ydCBjb25maWd1cmF0aW9uIG9mIHN0YXNoLWNhY2hlIHRpbWVvdXRzLCBib3RoIGF0CiAgIHJlZ2lzdHJhdGlvbiBhbmQgdmlhIHRoZSBORVQtU05NUC1BR0VOVC1NSUI6Om5zQ2FjaGVUYWJsZS4KICAgKERvbid0IG11Y2ggbGlrZSB0aGUgQVBJIG5hbWVzLCB0aG91Z2ggLSBpbXByb3ZlZCBzdWdnZXN0aW9ucwogICBncmF0ZWZ1bGx5IHJlY2VpdmVkKS4KCjIwMDUtMDEtMTIgMDY6MjMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYzoKCiAgIFVzZSB0aGUgc3RhbmRhcmQgY2FjaGUgaGVscGVyLCByYXRoZXIgdGhhbiBoYW5kbGluZyB0aGlzIGludGVybmFsbHkuCgoyMDA1LTAxLTEyIDA2OjIyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIE1ha2UgdGhlIGhhbmRsZXIgY2hhaW4gaW5mb3JtYXRpb24gYXZhaWxhYmxlIHRvIHRoZSBjYWNoZSBsb2FkIHJvdXRpbmUuCiAgIChBbmQgZml4IGEgYnJva2VuIGRlYnVnIG1lc3NhZ2UpCgoyMDA1LTAxLTEyIDA1OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgSW5jbHVkZSB0aGUgbmV3ICdzdGFzaF90b19uZXh0JyBoZWxwZXIgaW4gdGhlIGhlbHBlciBsaWJyYXJ5LgoKMjAwNS0wMS0xMSAxMDoxMSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF9jYWNoZS5oLAogICAgIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMKOgoKICAgQXV0b21hdGljYWxseSBpbmplY3QgdGhlIHN0YXNoX3RvX25leHQgaGVscGVyIGF0IHJlZ2lzdHJhdGlvbiwKICAgcmF0aGVyIHRoYW4gZHluYW1pY2FsbHkgZHVyaW5nIHJlcXVlc3QgcHJvY2Vzc2luZy4KICAgKFdlIG11c3QgdHJ5IHRvIGtlZXAgb3VyIGJlbG92ZWQgbGVhZGVyIGhhcHB5IGFuZCBjb250ZW50IGFuZCB1bnN1c3BlY3RpbmcuLi4uKQoKMjAwNS0wMS0xMSAxMDowMiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgU3VwcG9ydCB0aGUgaW5qZWN0aW9uIG9mIGEgaGFuZGxlciBzdWItY2hhaW4KICAgKHJhdGhlciB0aGFuIGp1c3QgYSBzaW5nbGUgaGFuZGxlcikKCjIwMDUtMDEtMDkgMTE6MzEgIHJzdG9yeQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGNvbmZpZy5oIC0+IG5ldC1zbm1wLWNvbmZpZy5oCgoyMDA1LTAxLTA4IDEwOjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICByZWFkL2NyZWF0ZSBkZWZhdWx0IGZpbGVzIGZyb20vaW4gc3ViZGlyCgoyMDA1LTAxLTA4IDEwOjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGVmYXVsdC1tZmQtdG9wLm0yYywKICAgICBnZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaSwgbTJjX3NldHVwX25vZGUubTJpLAogICAgIG1mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmMsIG1mZC1yZWFkbWUubTJjOgoKICAgcmVhZC9jcmVhdGUgZGVmYXVsdCBmaWxlcyBmcm9tL2luIHN1YmRpcgoKMjAwNS0wMS0wOCAwNzo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gcmVuYW1lIHNvbWUgb2YgdGhlIG5ldyBwZXJzaXN0ZW50IGZ1bmN0aW9ucy92YXJzCiAgIC0gZml4IGxlbmd0aCBoYW5kbGluZyBmb3IgQklUUwogICAtIHVzZSBzdGFjayBmb3IgbGluZSBidWZmZXIKICAgLSBhZGQvdHdlYWsgc29tZSBkZWJ1ZyBtc2dzCgoyMDA1LTAxLTA3IDA3OjIyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3Rhc2hfdG9fbmV4dC5oOgoKICAgRXh0ZW5kIHRoZSBhcHBsaWNhYmlsaXR5IG9mIFdlcycgInN0YXNoX2NhY2hlIiBoZWxwZXIsIGJ5CiAgIGF1dG9tYXRpY2FsbHkgY29udmVydGluZyBhIEdFVFNUQVNIIHJlcXVlc3QgaW50byBhIEdFVE5FWFQKICAgd2FsayBmb3IgdGhvc2UgY2hhaW5zIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGlzIG1vZGUgZGlyZWN0bHkuCiAgIChBbmQgcHJvdmlkZSBhIHdheSBmb3IgY2hhaW5zIHRoYXQgZG8sIHRvIHNheSBzbyEpCgoyMDA1LTAxLTA3IDA0OjM3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5zY2FsYXIuY29uZjoKCiAgIFVzZSBuZXRzbm1wX2NoZWNrX3ZiX3R5cGUgZm9yIGNoZWNraW5nIFNFVCByZXF1ZXN0cy4KCjIwMDUtMDEtMDYgMTI6MzMgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgbm90IHBlcnNpc3RlbmNlIHN1cHBvcnQgZm9yIG1mZAoKMjAwNS0wMS0wNiAxMjozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gYWRkIGluY2x1ZGUgdG8gcXVpdGUgd2FybmluZwogICAtIGFkZCBwZXJzaXN0ZW5jZQoKMjAwNS0wMS0wNiAxMjoyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIHJlbW92ZSBjb25kaXRpb24gb24gcHJvdG90eXBlIGdlbiBub3cgdGhhdCBmdW5jdGlvbiBpcyBhbHdheXMgZ2VuZXJhdGVkCgoyMDA1LTAxLTA2IDEwOjE2ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gbmV3IG9wdGlvbiB0byBkaXNhYmxlIHNldCByZXF1ZXN0cwoKMjAwNS0wMS0wNiAxMDoxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBuZXcgb3B0aW9uIHRvIGRpc2FibGUgc2V0IHJlcXVlc3RzIChkb2VzIG5vdCBleGNsdWRlIHNldCBwcm9jZXNzaW5nIGNvZGUgLSB5ZXQpCgoyMDA1LTAxLTA2IDEwOjA4ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA1LTAxLTA2IDA5OjU3ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBuZXcgb3B0aW9uIHRvIGRpc2FibGUgc2V0IHJlcXVlc3RzIChkb2VzIG5vdCBleGNsdWRlIHNldCBwcm9jZXNzaW5nIGNvZGUgLSB5ZXQpCgoyMDA1LTAxLTA2IDA5OjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpOgoKICAgcmVtb3ZlIGNvbmRpdGlvbmFsIGZvciB2YXIgZGVjbCwgc2luY2UgdXNlIGlzbid0IGNvbmRpdGlvbmFsCgoyMDA1LTAxLTA2IDA5OjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQo6CgogICBhZGQgY29tbWVudCBvbiBob3cgdG8gZGlzYWJsZSBjYWNoaW5nCgoyMDA1LTAxLTA2IDA5OjQ5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1JbmV0QWRkcmVzcy1nZXQubTJpOgoKICAgLSBhZGQgbWlzc2luZyAlIHNwZWMgaW4gbG9nIG1zZwogICAtIGdlbiBjb2RlIHRvIGNvcHkgdmFsdWUgb25jZSBhZGRyVHlwZSBpcyBrbm93bgoKMjAwNS0wMS0wNSAxNzoyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmM6CgogICBpbml0IG1pYnMgYmVmb3JlIHNubXAgc28gY29uZiBmaWxlIHJlZ2lzdHJhdGlvbnMgd29yawoKMjAwNS0wMS0wNSAxNToyOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIGFsd2F5cyBnZW5lcmF0ZSByb3cgdW5kb19zZXR1cC91bmRvX2NsZWFudXAKCjIwMDUtMDEtMDUgMTA6MTIgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgY2FzZSBsYWJlbCB0byBtYXRjaCBsYWJsZWwgZ2l2ZW4gaW4gdXNhZ2UgbXNnCgoyMDA1LTAxLTAzIDEwOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgY29tbWVudCBvdXQgb3ZlcnJpZGUgY2hlY2tzIHdoZXJlIHdlIGRvbid0IGhhdmUgdGhlIGludGVyZmFjZSBuYW1lCgoyMDA1LTAxLTAyIDIwOjM0ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJlY29nbmlzZSB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgYXMgcHJpbnRhYmxlLgoKMjAwNS0wMS0wMiAyMDozMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgT25seSBpc3N1ZSAiYWNjZXNzIGNvbnRyb2wgbm90IGNvbmZpZ3VyZWQiIHdhcm5pbmcgZm9yIHRoZSBhZ2VudAogICAobm90IHNubXB0cmFwZCkKCjIwMDUtMDEtMDIgMTk6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpLAogICAgIG1mZC1kYXRhLWdldC5tMmMsIG1mZC1pbnRlcmZhY2UubTJjOgoKICAgZG9uJ3QgZ2VuZXJhdGUgVE9ETyBpdGVtIGZvciBjb2RlIGluIGludGVyZmFjZXMgZmlsZQoKMjAwNS0wMS0wMiAxODoyNCAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gZG9uJ3QgYmluZCBsb2NhbCB0cmFwc2lua3MgdG8gbG9jYWxob3N0IGlmIGNsaWVudEFkZHIgaXMgc2V0CgoyMDA0LTEyLTMxIDA5OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgY29tbWVudCBjbGFyaWZpY2F0aW9uCgoyMDA0LTEyLTI4IDE4OjQ5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMubWZkLmNvbmY6CgogICBmaXggbG9naWMgZm9yIG1mZCB0YWJsZSB0ZXN0CgoyMDA0LTEyLTI4IDE3OjI4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdXBkYXRlIHJmYyByZWZlcmVuY2UKCjIwMDQtMTItMjggMTY6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICAtIGRvbid0IHJlZ2lzdGVyIHJvbmx5IGhhbmRsZXJzIGFzIFJXUklURQogICAtIGFkZCBtaXNzaW5nIG5ldHNubXBfcmVnaXN0ZXJfaW50X2luc3RhbmNlX2NvbnRleHQKCjIwMDQtMTItMjggMTU6NTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIHVzZSBtYWNybyBjb25zdGFudHMgZm9yIHJldHVybiB2YWx1ZXMsIGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlcwoKMjAwNC0xMi0yOCAxNTo1MyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgZGVidWcgbXNnIHcvZXJybm8gd2hlbiBzZW5kdG8gZmFpbHMKCjIwMDQtMTItMjggMTU6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGQgbmV0c25tcF9hc3NlcnQgb24gYmFkIEFTTiBidWlsZAoKMjAwNC0xMi0yOCAxNToxNiAgcnN0b3J5CgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgaGVscGVycy9vbGRfYXBpLmM6CgogICAtIGFsd2F5cyBzcGVjaWZ5IGNvbnRleHQsIGlmIGF2YWlsYWJsZSkgZm9yIHJlZ2lzdGVyIGNhbGxiYWNrcwogICAgIChzbyBkaXNjb25uZWN0ZWQgYWdlbnR4IHN1YmFnZW50cyByZWNvbm5lY3Qgdy9wcm9wZXIgY29udGV4dCkKICAgLSBtZW1zZXQgc3RydWN0IG9uIHN0YWNrIHRvIDAKCjIwMDQtMTItMjggMTI6MDIgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBmaXggYnVnIDEwNDk2MDc6IG5ldC1zbm1wLWNvbmZpZyAtLWNvbXBpbGUtc3ViYWdlbnQgYnJva2VuCgoyMDA0LTEyLTI3IDEwOjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgYWRkIHBvaW50ZXIgdG8gdHV0b3JpYWwgYW5kIGNvbW1hbmRsaW5lIHRvIGdlbmVyYXRlIHBzZXVkby10b2RvIGxpc3QKCjIwMDQtMTItMjUgMDA6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5tZmQuY29uZjoKCiAgIGJhaWwgb24gbm9uLXRhYmxlIE9JRCB1bnRpbCBtdWx0aXBsZSB0YWJsZXMgcGVyIGZpbGUgYXJlIHN1cHBvcnRlZAoKMjAwNC0xMi0yNSAwMDoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgZml4IGJ1ZyAxMDYyOTg2OiBwYXNzIGFuZCBwYXNzX3BlcnNpc3QgZmFpbCBhbmQgY3Jhc2ggc25tcGQKCjIwMDQtMTItMjQgMjM6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgZml4IGJ1ZyAxMDcyNDA2OiBpbnZhbGlkIG9wZXJhdG9yIHByZWNlZGVuY2UgaW4gb3BlbmRpcigpCgoyMDA0LTEyLTI0IDEwOjUyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGZpeCBidWcgMTA4NDQxMzogQ2FuJ3QgZGlzYWJsZSBmaWxlIGxvZ2dpbmcKCjIwMDQtMTItMjQgMTA6MzIgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgZml4IGJ1ZyAxMDQwNzExOiBzbm1wdHJhcGQ6IFNJR0hVUCBkdXBsaWNhdGVzIHRyYXBoYW5kbGVycyAocmVwZWF0ZWRseSkKCjIwMDQtMTItMjQgMDk6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBhZGQgLXAgdG8gbWtkaXIgcGFybQoKMjAwNC0xMi0yNCAwOTo0MiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIHJlbW92ZSBoYXJkY29kZWQgSEFWRV9JRk5BTUVUT0lOREVYIG5vdyB0aGF0IGNvbmZpZ3VyZSBjaGVja3MgZm9yIGl0CgoyMDA0LTEyLTI0IDA5OjA1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICAtIGRvbid0IG9wZW4gc3Rkb3V0IHRpbCB3ZSBuZWVkIGl0CiAgIC0gZXhwbGljaXQgY2xvc2UgZm9yIG9wZW5lZCBmaWxlCiAgIC0gY2hhbmdlIGRlZmF1bHQgdG8gYXNraW5nIHF1ZXN0aW9ucyBpbnN0ZWFkIG9mIHVzaW5nIGRlZmF1bHRzCgoyMDA0LTEyLTI0IDA5OjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMubWZkLmNvbmY6CgogICAtIGNoYW5nZSBkZWZhdWx0IGZvciBpbnRlcmFjdGl2ZSBzZXR1cCB0byBvbgogICAtIGRvbid0IG92ZXJyaWRlIHJlcG9ydCBwcm9ncmVzcyB2YXIgaWYgYWxyZWFkeSBzZXQKCjIwMDQtMTItMjMgMTc6NTcgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgICB3aW4zMi9Db25maWd1cmUsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzI6IEZpeCBjb21waWxpbmcgd2l0aG91dCBQU0RLLgoKMjAwNC0xMi0yMyAxNDoxOSAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbiwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW4zMiBNU1ZDIGNvbXBpbGUgZml4ZXMKCjIwMDQtMTItMjIgMTg6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBmaXggYnVnIDEwODg3NjU6IEFnZW50IGZhaWxzIHRvIHNlbmQgdHJhcHMgdG8gcmVtb3RlIHRhcmdldAoKMjAwNC0xMi0yMiAxNjoyOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMi0yMiAxNjoxMiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgo6CgogICAtIHRlc3QgZm9yIGlmX25hbWV0b2luZGV4CgoyMDA0LTEyLTIyIDEzOjM3ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRS50aHJlYWQ6CgogICBtZW50aW9uIHRoYXQgdjMgaXNuJ3QgdGhyZWFkIHNhZmUKCjIwMDQtMTItMTYgMjE6MDggIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBsb2cgd2FybmluZyBvbiBiYWQgaGV4IGxlbmd0aCAoaGlnaGVyIHJvdXRpbmVzIGRvbid0IGdldCBlcnJvciBpbmRpY2F0aW9uKQoKMjAwNC0xMi0xNiAyMDo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBpZmRlZiBvdXQgdjEvdjIgY29kZSB3aGVuIGJvdGggZGlzYWJsZWQKCjIwMDQtMTItMTYgMTg6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIC1jaGVjayBmb3IgZHVwbGljYXRlIHRhYmxlIGRlZnMgaW4gc25tcGQuY29uZgogICAtbW9yZSBpbmZvcm1hdGl2ZSBlcnJvciBtZXNzYWdlcwogICAtc3VwcG9ydCBydW4tdGltZSB0YWJsZXMgd2hpY2ggYXJlIGF1Z21lbnRhdGlvbnMKICAgLWxvZyBlcnJvciBpZiBydW4tdGltZSByb3cgYWRkIGZhaWxzCgoyMDA0LTEyLTE2IDE3OjAzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBtb3JlIGluZm9ybWF0aXZlIGVycm9yIG1lc3NhZ2VzCgoyMDA0LTEyLTE2IDE0OjU5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgY2hlY2sgZm9yIG51bGwgdmFyIGJlZm9yZSBkZXJlZgoKMjAwNC0xMi0xNiAxNDo1NSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBjYWNoZSBuZXh0IHB0ciBiNCBvYmplY3QgY291bGQgYmUgZnJlZWQKCjIwMDQtMTItMTYgMTQ6NDIgIHJzdG9yeQoKICAgKiBsdG1haW4uc2g6CgogICBtb3JlIGhlbHBmdWwgZXJyb3IgbWVzc2FnZSBvbiBtaXNzaW5nIGxpYnJhcnkKCjIwMDQtMTItMTYgMTQ6NDAgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGFkZCBJTlNUQUxMX1BSRUZJWCB0byBwcm9ncmVzcyBtZXNzYWdlcwoKMjAwNC0xMi0xNSAxMToxNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMi0xNCAwODoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBkZWxldGUgZXh0cmEgJzsnCgoyMDA0LTEyLTE0IDA2OjQyICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IHF1b3Rpbmcgb24gZXZhbCBsaW5lcwoKMjAwNC0xMi0xMyAxMjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIHJlZ2lzdHJhdGlvbiBsb29rdXAgb3B0aW1pemF0aW9uIGFsbG93aW5nIGluY29taW5nIHJlcXVlc3RzIHRvIG1vcmUgcXVpY2tseSBzZWFyY2ggdGhyb3VnaCB0aGUgbGlua2VkIGxpc3QgYW5kIGRvIHNpbmdsZSBpbnQgY29tcGFyZXMgaW5zdGVhZCBvZiBmdWxsIE9JRCBjb21wYXJlcyBmb3IgbXVjaCBvZiB0aGUgc2VhcmNoIHRyZWUuICBTaG91bGQgc2lnbmZpY2FudGx5IGluY3JlYXNlIHRoZSBzZWFyY2ggc3BlZWQgZm9yIG5ldyByZXF1ZXN0cy4KCjIwMDQtMTItMTMgMTI6MzcgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sIHBlcmwvQVNOL0FTTi5wbSwKICAgICBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLCBwZXJsL09JRC9PSUQucG0sCiAgICAgcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvYWdlbnQvYWdlbnQucG0sCiAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIEZBUSwgUkVBRE1FCiwgc2Vkc2NyaXB0LmluLCBkaXN0L25ldC1zbm1wLnNwZWMsCiAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKCk6IHZlcnNpb24gdGFnICggNS4zLmRldiApCgoyMDA0LTEyLTEzIDEyOjMyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBZGRlZCBhIG5ldyBvaWQtY29tcGFyZSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIHdoZXJlIHRoZSBPSURzIGRpZmZlcmVkCgoyMDA0LTEyLTEzIDEyOjI3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIGFkZCBhbiBleHRyYSBzb3J0aW5nIHZhcmlhYmxlOiBvaWRfb2ZmCgoyMDA0LTEyLTEzIDA4OjI1ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEyLTEzIDA4OjI0ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IG1pc3NpbmcgZW5kIHF1b3RlCgoyMDA0LTEyLTEwIDE1OjE1ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgcmVjZW50IGNoZWNraW5zCgoyMDA0LTEyLTEwIDE1OjAwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgLWNvbW1lbnQgdHdlYWtzCiAgIC1mcmVlIHZhcmJpbmQgaW5kZXhlcyBiZWZvcmUgcGFyc2luZyBuZXcgb25lcwogICAtYWRkL3VzZSBwcm9wZXIgZGF0YV9saXN0IGZyZWUgZnVuY3Rpb24gZm9yIHJvdyBzdGFzaGVzCgoyMDA0LTEyLTEwIDE0OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgZml4IGZvciB1c2luZyBpZk5hbWUgZm9yIGlmRGVzY3Igd2hlbiBpZkRlc2NyIG5vdCBhdmFpbGFibGUKCjIwMDQtMTItMTAgMTQ6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIC1maXggYnVnIDEwMzQwMDg6IG1lbW9yeSBsZWFrIHVzaW5nIFNFVCBmb3IgdGFibGVfZGF0YXNldAogICAtcmVtb3ZlIHVuc3VwcG9ydGQgJSBzcGVjIGluIGNvbmZpZ19wd2FybgoKMjAwNC0xMi0xMCAxMzoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBhcHBseSBwYXRjaCAxMDUyNDYwOiBhZ2VudCBkZWFkbG9jayBvbiBleGVjCgoyMDA0LTEyLTEwIDEzOjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogaWZYVGFibGUvaWZYVGFibGUuYywKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jCiwgaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5oOgoKICAgYXBwbHkgcGF0Y2ggMTA1NTAzNjogaWYtbWliIGluaXQgb3JkZXIgZml4CgoyMDA0LTEyLTEwIDEyOjU2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBhcHBseSBwYXRjaCAxMDU3MDU3OiBpcFN5c3RlbVN0YXRzVGFibGUgaW5kZXggZml4LCBhZGQgaXB2NgoKMjAwNC0xMi0xMCAxMTowNiAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLW5ldyB0YXJnZXRzIHRvIG1ha2UgYWdlbnRsaWIsIG1pYmxpYiBvciBib3RoCiAgIC1yZW1vdmUgYWdlbnQgbGliIGRlcGVuZGVuY3kgb24gbWliIGxpYgoKMjAwNC0xMi0xMCAxMTowNCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgbmV3IHRhcmdldHMgdG8gbWFrZSBzbm1wbGliLCBhZ2VudCwgYWxsIG9yIGluZGl2aWR1YWwgYXBwcwoKMjAwNC0xMi0xMCAxMTowMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMi0xMCAxMTowMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC1maXggZGlzYWJsZSBzbm1wdjJjCiAgIC1hZGQgcGFydGlhbCB0YXJnZXQgb3MgdG8gbW9kdWxlIGNmbGFncwogICAtcmVzdG9yZSBtaXNzaW5nIHZhciBpbml0IChmaXggY29uZmlndXJlIHNsb3dkb3duKQogICAtbW9yZSBkZWJ1Z2dpbmcKCjIwMDQtMTItMTAgMTA6MTUgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL3JmYzEyMTMvc25tcGZ1bi5zaDoKCiAgIGZpeCB0YWJsZSBjaGVja3MgYnkgYWRkaW5nIG1pc3NpbmcgbnVsbCBwYXJhbWV0ZXIKCjIwMDQtMTItMTAgMTA6MDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGNvbW1lbnQgY2hhbmdlIG9ubHktIGRvY3VtZW50IHdoeSB0ZXN0IG1heSBub3QgYWx3YXlzIGJlIGZhbHNlCgoyMDA0LTEyLTEwIDA5OjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgY29uc2lzdGVudCB0YWJsZSBuYW1pbmcgaW4gZXhhbXBsZSBmbG93LCBub3RlZCBvbiBjb2RlcnMgYnkgRGF2ZQoKMjAwNC0xMi0xMCAwOTo0OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgsCiAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLWFkZCBmbGFnIGZvciByb3cgZGVsZXRlZAogICAtaWYgbm8gZXJyb3JzLCBpbnNlcnQvZGVsZXRlIG5ldy9kZWxldGVkIHJvdyBpbnRvIGNvbnRhaW5lcgoKMjAwNC0xMi0xMCAwOTo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC5tMmk6CgogICBmaXggY2FzZSBvZiBtaXNzaW5nIGdldCBjb2RlCgoyMDA0LTEyLTEwIDA5OjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICB1c2Ugc2FtZSBjYWNoZSB0aW1lb3V0IG9uIGFsbCBwbGF0Zm9ybXMKCjIwMDQtMTItMTAgMDk6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGFwcGx5IHBhdGNoIDEwNTY5Mjc6IDUuMi1wMDM6IGZyZWVic2QgaW50ZXJmYWNlIGJ1Z3MKICAgICAtIGZpeCBidWcgMTA1NTc4MTogZ2V0LW5leHQgZmFpbHMgdG8gc3RlcCBpbnRvIGludGVyZmFjZXMgZ3JvdXAgY29ycmVjdGx5CiAgICAgLSBmaXggYnVnIDEwNTY3NjA6IGFnZW50IGlnbm9yZXMgaWZzcGVlZCwgdHlwZSBzZXR0aW5ncyBpbiBzbm1wZC5jb25mCiAgIC0gYWxzbyBmaXggYnVnIDEwNTY3NjAgZm8gSFAtVVgsIHNvbGFyaXMsIFdpbjMyIGFuZCBvdGhlcnMKCjIwMDQtMTItMTAgMDg6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgYXBwbHkgcGF0Y2ggMTA3Mzg5NzogZml4IGlmLW1pYiBkYXRhIGFjY2VzcyA2NGJpdCBjb3VudGVyIHdyYXAgZGV0ZWN0aW9uCgoyMDA0LTEyLTA5IDIyOjM5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgLSBkZWxldGUgcmVtb3ZlZCByb3cgYWZ0ZXIgdXNlciBjb21taXQgZnVuY3Rpb24gY2FsbGVkCiAgIC0gcmVtb3ZlIHJvdyBpbnNlcnQvZGVsZXRlIGluIHVuZG8gLSBoYW5kbGVkIGluIGNvbW1pdAoKMjAwNC0xMi0wOSAyMjoxNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jOgoKICAgY2hlY2sgcmVxdWVzdHMgZm9yIGVycm9ycyBvbiBnZXQgbW9kZXMgdG9vCgoyMDA0LTEyLTA5IDIxOjAxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgZG9uJ3QgZnJlZSBudWxsIHBvaW50ZXIKCjIwMDQtMTItMDkgMTE6NTcgIGR0czEyCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsCiAgICAgc25tcGQuY29uZi41LmRlZiwgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBTbGlnaHRseSBjbGVhbmVyIHN1bW1hcmllcyBvZiBjb25maWcgZmlsZSBoYW5kbGluZy4KCjIwMDQtMTItMDkgMTE6NTMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBBbGxvdyB0aGUgdHJhcCBkYWVtb24gdG8gc3BlY2lmeSBhIG5vbi1kZWZhdWx0IEFnZW50WCBzb2NrZXQuCgoyMDA0LTEyLTA5IDExOjUyICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLAogICAgIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgTmV3IHV0aWxpdHkgcm91dGluZXMgZm9yIGNoZWNraW5nIG1heGltdW0gKHJhdGhlciB0aGFuIGV4YWN0KSBzaXplIGxpbWl0cy4KCjIwMDQtMTItMDkgMTE6NDkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICBVc2UgdGhlIGxlbmd0aCBzdXBwbGllZCBkdXJpbmcgcmVnaXN0cmF0aW9uIHdoZW4gZGVjaWRpbmcgaG93CiAgIG11Y2ggb2YgdGhlIE9JRCB0byBza2lwIGJlZm9yZSBjb21wYXJpbmcgaW5zdGFuY2Ugc3ViaWRlbnRpZmllcnMsCiAgIHJhdGhlciB0aGFuIHRyeWluZyB0byBzZWNvbmQtZ3Vlc3Mgd2hhdCB0aGUgTUlCIGltcGxlbWVudGVyIHdhbnRlZC4KCiAgIFRoZSBNZkQgZnJhbWV3b3JrICh3aGljaCBpcyB0aGUgb25seSBwbGFjZSB0aGlzIGhlbHBlciBpcyBjdXJyZW50bHkKICAgdXNlZCkgYWxyZWFkeSB0YWtlcyB0aGUgb2JqZWN0IHN1YmlkZW50aWZpZXIgaW50byBhY2NvdW50IHdoZW4KICAgaW5zZXJ0aW5nIHRoZSBoZWxwZXIsIHRodXMgZG9pbmcgc28gYWdhaW4gd2lsbCBicmVhayB0aGluZ3MuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4xIC0+IFY1LjIKCjIwMDQtMTEtMjQgMTc6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozNCAgaGFyZGFrZXIKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMyAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMzICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMzICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMyICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MTUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB3b3JkaW5nIGNoYW5nZXMgc3VnZ2VzdGVkIGJ5IFJvYmVydAoKMjAwNC0xMS0yNCAxNzoxMiAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgZG9jdW1lbnQgZ2V0X2luZGV4ZXMoKSBieSBleGFtcGxlCgoyMDA0LTExLTI0IDE3OjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGRvY3VtZW50IGdldHRhYmxlKCkKCjIwMDQtMTEtMjQgMTY6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBDb252ZXJ0IEdOVSBzcGVjaWZpYyBtYWtlIGhhY2tzIHRvIHBvcnRhYmxlIHZlcnNpb24KCjIwMDQtMTEtMjQgMTY6NDIgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtaW5vciB1cGRhdGVzCgoyMDA0LTExLTI0IDE2OjQxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgVXBkYXRlIGZvciA1LjIgYWRkaW5nIGEgdG9uIG9mIG5ldyBzdHVmZgoKMjAwNC0xMS0yNCAxNDozNSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgVXBkYXRlIGZvciA1LjIKCjIwMDQtMTEtMjQgMTA6NTUgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIHVwZGF0ZSBmb3IgNS4yLiAgQWRkZWQgYSBmZXcgcmVmZXJlbmNlcyB0byB0aGUgb3RoZXIgUkVBRE1FIGZpbGVzCgoyMDA0LTExLTI0IDEwOjMzICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMywKICAgICBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zLAogICAgIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLAogICAgIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9jb25maWcuMywKICAgICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3Jvd19tZXJnZS4zLAogICAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsCiAgICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF9zbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2FsYXJtLjMsIG5ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBuZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbmV0c25tcF9zdGFzaF9jYWNoZS4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgTWFuIHBhZ2UgdXBkYXRlIGZvciA1LjIKCjIwMDQtMTEtMjQgMTA6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkb3h5Z2VuLmNvbmY6CgogICB1cGRhdGUgdG8gNS4yCgoyMDA0LTExLTI0IDA4OjQwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIHN0cmljdCBtYW4gcGFnZSBmaXhlcyBmcm9tIEVyaWMgUy4gUmF5bW9uZAoKMjAwNC0xMS0xOCAwNToyNyAgcnN0b3J5CgogICAqIFJFQURNRS5vc1g6CgogICBmaXggdHlwZSBub3RlZCBvbiBjb2RlcnMKCjIwMDQtMTEtMTcgMTA6MTcgIHJzdG9yeQoKICAgKiBSRUFETUUub3NYOgoKICAgLSBkb2N1bWVudCBmbGFncyB0byB1c2UgdG8gaW5zdGFsbCBvdmVyIEFwcGxlJ3MgdmVyc2lvbiAod2hpY2ggaGFzIGEgYmFkCiAgICAgY29weSBvZiBuZXQtc25tcC1jb25maWcKICAgLSBkb2N1bWVudCBleGx1ZGluZyB0aGUgdW5zdXBwb3J0ZWQgaWNtcCB0YWJsZQoKMjAwNC0xMS0xNyAwNjo0OSAgZHRzMTIKCiAgICogQUdFTlQudHh0OgoKICAgRml4IHR5cG8gYW5kIG1pc3NpbmcgY29uZmlnIGRpcmVjdGl2ZSwgcmVwb3J0ZWQgYnkgV2lsbGlhbSBCdWNrbGV5LgogICBFbXBoYXNpc2UgKGluIGFuIHVuZGVyc3RhdGVkIEJyaXRpc2ggc29ydCBvZiB3YXkpIHRoYXQgdGhpcyBpcyBwcmltYXJpbHkKICAgZGVzY3JpYmluZyB0aGUgdjQgYWdlbnQsIGFuZCB0aGluZ3MgbWF5IGJlIGRpZmZlcmVudCB3aXRoIHRoZSB2NSB0b29sa2l0LgoKMjAwNC0xMS0xNyAwNToyOSAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI5ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyOCAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI4ICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjggIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjggIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjggIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI4ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI3ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjcgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyNyAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI2ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE2IDE2OjU2ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTExLTE2IDE2OjU1ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBkb3h5Z2VuLmNvbmY6CgogICB1cGRhdGUgdmVyc2lvbiB0byByYzQKCjIwMDQtMTEtMTYgMTU6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2UuaCwKICAgICBpbnRlcmZhY2VfY29tbW9uLmM6CgogICAtIGRvbid0IGNvbmZpZ3VyZSBpbiBpbnRlcmZhY2UgaW9jdGwgY29kZSBieSBkZWZhdWx0CiAgIC0gaWZkZWYgb3V0IGFyY2ggZGVwZW5kZW50IGNvZGUgaW4gaW50ZXJmYWNlIGNvbW1vbgoKMjAwNC0xMS0xMiAwNzozNiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1pbm9yIHR3ZWFrcwoKMjAwNC0xMS0xMSAwNjozNiAgcnN0b3J5CgogICAqIE5FV1M6CgogICBtZW50aW9uIG1vcmUgY2hhbmdlcyBhbmQgZml4ZXMKCjIwMDQtMTEtMDkgMDg6MjEgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgdGhlIG5vbi1vcHRpb25hbCBuYXR1cmUgb2Ygc25tcGQuY29uZgogICAoc3BvdHRlZCBieSBXaWxsaWFtIEJ1Y2tsZXkpCgoyMDA0LTExLTA5IDA4OjEyICBkdHMxMgoKICAgKiBGQVE6CgogICBSYWlkIFJvYmVydCdzIEZBUSBmb3Igc29tZSB1c2VmdWwgZW50cmllcy4KCjIwMDQtMTEtMDkgMDU6MTYgIGR0czEyCgogICAqIFRPRE86CgogICBJdCdzIGFib3V0IHRpbWUgd2UgaGFkIGEgZnJlc2ggVE9ETyBsaXN0LgogICBUaGVyZSBtYXkgd2VsbCBiZSBiaXRzIHRoYXQgY2FuIGJlIHNhbHZhZ2VkIGZyb20gdGhlCiAgIG9sZCB2ZXJzaW9uLCBidXQgSSdsbCBsZWF2ZSB0aGF0IHRvIHNvbWVvbmUgZWxzZS4KCjIwMDQtMTEtMDUgMjE6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozNCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozNCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzMgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjMzICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozMyAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjMxICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmYsIG1hbi9uZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLAogICAgIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zCiwgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMwosIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMwosIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMwosIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMwosIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMwosIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMKLCBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMwosIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLAogICAgIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywKICAgICBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMKLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMwosIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMKLCBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zCiwgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMKLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF91dGlsLjMKLCBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA0LTExLTA1IDIxOjIxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA0LTExLTA1IDIwOjI3ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIHVwZGF0ZSBmcm9tIEJydWNlCgoyMDA0LTExLTA1IDEzOjA4ICB3YXNtaXRoMzIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgVGhpcyBwYXRjaCBmaXhlcyBhIGNvbmZpZ3VyZSBwcm9ibGVtIHdoZW4gY29tcGlsaW5nIHdpdGggc29tZSBXaW5kb3dzIGNvbXBpbGVycy4KICAgVGhlIGFmZmVjdGVkIHBsYXRmb3JtcyB3ZXJlIE1pbkdXIGFuZCBDeWd3aW4sIHRoZSBwYXRjaCBzaG91bGQgbm90IGVmZmVjdCBNU1ZDKysKICAgYnVpbGRzLgoKMjAwNC0xMS0wNSAwMjowNSAgZHRzMTIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXBkZWx0YS4xLCBzbm1wZGVsdGEuMS5kZWYKLCBzbm1wZGYuMSwgc25tcGRmLjEuZGVmLCBzbm1wbmV0c3RhdC4xLAogICAgIHNubXBuZXRzdGF0LjEuZGVmOgoKICAgR2VuZXJhdGUgImZpeGVkIGluZm9ybWF0aW9uIiBjb21tYW5kIG1hbiBwYWdlcyBkeW5hbWljYWxseQogICAoc28gdGhleSBwaWNrIHVwIHRoZSB2ZXJzaW9uIGhlYWRlcikgcmF0aGVyIHRoYW4gaGF2ZSB0aGVtIHN0YXRpYy4KCjIwMDQtMTEtMDUgMDE6MjggIGR0czEyCgogICAqIG1hbi86IG1pYjJjLjEuZGVmLCBzbm1wYnVsa2dldC4xLmRlZiwKICAgICBzbm1wYnVsa3dhbGsuMS5kZWYsIHNubXBjbWQuMS5kZWYsIHNubXBkZWx0YS4xCiwgc25tcGRmLjEsIHNubXBnZXQuMS5kZWYsIHNubXBnZXRuZXh0LjEuZGVmCiwgc25tcG5ldHN0YXQuMSwgc25tcHNldC4xLmRlZiwgc25tcHN0YXR1cy4xLmRlZgosIHNubXB0YWJsZS4xLmRlZiwgc25tcHRyYW5zbGF0ZS4xLmRlZiwKICAgICBzbm1wdHJhcC4xLmRlZiwgc25tcHVzbS4xLmRlZiwgc25tcHZhY20uMS5kZWYsCiAgICAgc25tcHdhbGsuMS5kZWY6CgogICBUd2VhayB0aGUgb25lLWxpbmUgZGVzY3JpcHRpb25zIG9mIHZhcmlvdXMgY29tbWFuZHMgdG8gaW1wcm92ZQogICBjb25zaXN0ZW5jeSBhbmQgY2xhcml0eQoKMjAwNC0xMS0wNCAyMTozOCAgcnN0b3J5CgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgdXBkYXRlcyAobW9zdGx5IHN0dWZmIHdlIGRvbid0IHN1cHBvcnQpCgoyMDA0LTEwLTI5IDIyOjE2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNCAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTQgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxMCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMsCiAgICAgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMywKICAgICBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfY29uZmlnLjMsCiAgICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9yb3dfbWVyZ2UuMywKICAgICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLAogICAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfc25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfc25tcF9hbGFybS4zLCBuZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIC0+IDUuMi5yYzIKCjIwMDQtMTAtMjkgMjI6MDUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkb3h5Z2VuLmNvbmY6CgogICAtPiA1LjIucmMyCgoyMDA0LTEwLTI5IDEzOjI4ICByc3RvcnkKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBmaXJzdCBwYXNzIGF0IGFnZW50IG1pYnMgcmVhZG1lCgoyMDA0LTEwLTI2IDA1OjQwICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEwLTI2IDA1OjM3ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZG9uJ3QgdW5jb25kaXRpb25hbGx5IGFkZCBsaWJyYXJpZXMgKGZyZWVic2QgZG9lc24ndCBoYXZlIGxpYmRsKQoKMjAwNC0xMC0yMiAxODowNiAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgZml4IGNvbmZsaWN0CgoyMDA0LTEwLTIyIDE4OjAyICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxODowMSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxODowMSAgaGFyZGFrZXIKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTg6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTg6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxODowMCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxODowMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAwICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxNzo1OSAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTc6NTkgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE3OjU5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxNzo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxNzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKCjIwMDQtMTAtMjIgMTc6NDYgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zLAogICAgIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsCiAgICAgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX2NvbmZpZy4zLAogICAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfcm93X21lcmdlLjMsCiAgICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywKICAgICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3NubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX3NubXBfYWxhcm0uMywgbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsIG5ldHNubXBfc25tcF9wZHUuMywKICAgICBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBtYWtlIGRvY3MKCjIwMDQtMTAtMjIgMTc6NDEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgICBjb25maWd1cmUuaW4sIGRveHlnZW4uY29uZjoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA0LTEwLTIyIDExOjQxICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEwLTIyIDExOjQwICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBtb3ZlIFBJQyBjaGVjayBhZnRlciBtb2R1bGUgcHJvY2Vzc2luZywgJiBjaGVjayBhZ2FpbnN0IGNvbXBsZXRlIG1vZHVsZSBsaXN0CiAgIC0gY2hlY2sgZGlza2lvIGFuZCBsbVNlbnNvcnMgYWdhaW5zdCBjb21wbGV0ZSBtb2R1bGUgbGlzdAoKMjAwNC0xMC0yMiAxMTozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLAogICAgIGlmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIGZpeGVzIGZvciBidWlsZGluZyBpZlRhYmxlIHcvb3V0IGlmWFRhYmxlCgoyMDA0LTEwLTIyIDAyOjE3ICBkdHMxMgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgSWYgd2UncmUgZ29pbmcgdG8gaW5jbHVkZSB0aGUgTkVULVNOTVAtRVhURU5ELU1JQiBzdXBwb3J0IGJ5IGRlZmF1bHQsCiAgIChhbmQgbG9hZCBpdCBhdXRvbWF0aWNhbGx5KSwgaXQgd291bGQgYmUgZXZlbiBtb3JlIHVzZWZ1bCB0byBhY3R1YWxseQogICBpbnN0YWxsIGl0LCBzbyBpdCB3YXMgYXZhaWxhYmxlIHRvIF9iZV8gbG9hZGVkIQoKMjAwNC0xMC0yMiAwMjoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmg6CgogICBJZiB3ZSdyZSBnb2luZyB0byBpbmNsdWRlIHRoZSBORVQtU05NUC1FWFRFTkQtTUlCIHN1cHBvcnQgYnkgZGVmYXVsdCwKICAgaXQgd291bGQgYmUgc2Vuc2libGUgdG8gbG9hZCB0aGF0IE1JQiBhdXRvbWF0aWNhbGx5LgoKMjAwNC0xMC0yMSAxNTo1NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIGlmZGVmIHVzZSBvZiB2YXJpYWJsZSB0aGF0IGlzbid0IGFsd2F5cyBkZWZpbmVkCgoyMDA0LTEwLTIxIDExOjQyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBmaXggZm9yIG11bHRpcGxlIHJvd3MvdGFibGVzIHNldCBwcm9ibGVtLCBub3RlZCBieSBTdmVuIEpvbmFzIG9uIGNvZGVycwoKMjAwNC0xMC0yMCAyMTowMiAgc2xpZgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGludm9rZSBwZXJscmVhbGNsZWFuIGZpcnN0IGluIHRoZSBkaXN0Y2xlYW4gc2VxdWVuY2UuCgoyMDA0LTEwLTIwIDE5OjU1ICBzbGlmCgogICAqIE1ha2VmaWxlLmluOgoKICAgcGVyZm9ybSBkZWVwIGNsZWFuaW5nIG9uIFBlcmwgdHJlZSB0byBmaXggYnVnICM4OTQ0MjUuCgoyMDA0LTEwLTIwIDE5OjM1ICBzbGlmCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIGZpeCB0YWJsZSBvdmVyZmxvdyAoaW5zcGlyZWQgYnkgRGViaWFuIHBhdGNoIHRvIDUuMS4yKS4KCjIwMDQtMTAtMjAgMTg6NTIgIHNsaWYKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICByZW1vdmUgc2Vjb25kIHJlYWRfb2JqaWQgZnJvbSBtZXRob2RzIGxpc3QgKEluc3BpcmVkIGJ5IGN1cnJlbnQgRGViaWFuIHBhdGNoKQoKMjAwNC0xMC0yMCAxNjo1MiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGZpeCBidWcjMTA0MzE5NyAoMikgLSB0ZXN0IG9zIHZlcnNpb24gYW5kIHJlbGVhc2UgdXNpbmcgdW5hbWUgdG8gcXVhbGlmeSBhY3Rpb24KCjIwMDQtMTAtMTkgMTY6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgbW92ZSBycG0gaGVhZGVyIGluY2x1ZGVzIGluc2lkZSBIQVZFX0xJQlJQTSBiZWNhdXNlIG9mIGhlYWRlciBkZXBlbmRlbmNpZXMKCjIwMDQtMTAtMTkgMTY6MjMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIG1vdmUgcnBtIGNoZWNrcyBiYWNrIGFmdGVyIG1vZHVsZSBwcm9jZXNzaW5nLCBzaW5jZSBycG0gb25seSBpbmNsdWRlZAogICAgIGlmZiBocl9zd2luc3QgZ2V0cyBjb25maWd1cmVkIGluCgoyMDA0LTEwLTE5IDE0OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmM6CgogICByZW1vdmUgY3BwIHdhcm5pbmcKCjIwMDQtMTAtMTkgMTQ6MDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTAtMTkgMTQ6MDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIHVwZGF0ZSByZWxlYXNlCiAgIC0gZm9yIGV2ZXJ5IEFDX0FSR19FTkFCTEUsIGFkZCBjb3JyZXNwb25kaW5nIEFDX0FSR19XSVRIIHdpdGggZXJyb3IgbWVzc2FnZQogICAtIGZvciBldmVyeSBBQ19BUkdfV0lUSCwgYWRkIGNvcnJlc3BvbmRpbmcgQUNfQVJHX0VOQUJMRSB3aXRoIGVycm9yIG1lc3NhZ2UKICAgLSBtb3ZlIGxpYnJ3YXAvcnBtIGNoZWNrcyBlYXJsaWVyLCBzbyB0aGV5IHdpbGwgZmFpbCBiZWZvcmUgbW9kdWxlIHByb2Nlc3NpbmcKICAgLSBjaGVjayBtYnN0YXQgc3RydWN0IGZvciBtX2NsdXN0ZXJzIChmcmVlYnNkIGFwcGFyZW50bHkgZHJvcHBlZCBpdCkKCjIwMDQtMTAtMTkgMDM6MTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIERvbid0IGdlbmVyYXRlICdHZXQnIGNvZGUgZm9yIGluYWNjZXNzaWJsZSBvYmplY3RzLgoKMjAwNC0xMC0xOSAwMzoxMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHRoZSBhZ2VudCBjcmFzaGluZyBpZiBubyAnZGVsZXRlX3Jvdycgb3IKICAgJ2R1cGxpY2F0ZV9yb3cnIHJvdXRpbmVzIHdlcmUgY29uZmlndXJlZC4KCjIwMDQtMTAtMTkgMDM6MTIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIFByZXZlbnQgdGhlIGFnZW50IGZyb20gc3Bpbm5pbmcgaW4gYW4gaW5maW5pdGUgbG9vcAogICBhdCB0aGUgZW5kIG9mIHRoZSB0YWJsZS4KCjIwMDQtMTAtMTkgMDM6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIFJlcG9ydCAqd2hpY2gqIGFnZW50eCBzb2NrZXQgY291bGRuJ3QgYmUgb3BlbmVkLgoKMjAwNC0xMC0xOCAyMDoyNCAgcnN0b3J5CgogICAqIGRveHlnZW4uY29uZjoKCiAgIHVwZGF0ZSByZWxlYXNlCgoyMDA0LTEwLTE4IDIwOjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgcmVwbGFjZSBpbmNvcnJlY3QgY29tbWVudCBibG9jayB3L25vdGUgYWJvdXQgcG9zc2libGUgZnV0dXJlIG9wdGltaXphdGlvbgoKMjAwNC0xMC0xOCAyMDoyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIC0gdXNlIG5ldyBpb2N0bCBpZkluZGV4IGZpbmQKICAgLSBtYWtlIG5leHQgYWxpYXMgZnVuYyBzdGF0aWMKCjIwMDQtMTAtMTggMjA6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIC0gdXNlIG5ldyBpcGFkZHJlc3MgZW50cnkgY29weSBmdW5jdGlvbiBmb3IgdGFibGUgbGV2ZWwgdW5kbyBzZXR1cAogICAtIHJlbW92ZSBub2RlIGxldmVsIHVuZG8gc2V0dXAKICAgLSBpbXBsZW1lbnQgdW5kb19jb21taXQKCjIwMDQtMTAtMTggMjA6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICBuZXcgbmV0c25tcF9hY2Nlc3NfaXBhZGRyZXNzX2VudHJ5X2NvcHkgdG8gY29weSBlbnRyaWVzCgoyMDA0LTEwLTE3IDIwOjU2ICByc3RvcnkKCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gZml4IHNsaWdodCBtZW1vcnkgbGVhawoKMjAwNC0xMC0xNyAyMDo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzoKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYwosIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQoKMjAwNC0xMC0xNyAyMDo0OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZV9pb2N0bC5oLAogICAgIGludGVyZmFjZV9saW51eC5jOgoKICAgYWRkIGZkIHBhcmFtZXRlciB0byBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW9jdGxfaWZpbmRleF9nZXQKCjIwMDQtMTAtMTcgMTk6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKLCBtZmQtaW50ZXJmYWNlLm0yYzoKCiAgIG9ubHkgdHJhY2sgd2hldGhlciB1c2VyIGFsbG9jYXRlZCBkYXRhIGNvbnRleHQgZm9yIG5vbi10cmFuc2llbnQgZGF0YQoKMjAwNC0xMC0xNiAxOTo1MyAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3Qvc2NyaXB0cy9tYW5kaXIyaHRtbDoKCiAgIFdpbjMyIG1hbmRpcjJodG1sIHNjcmlwdCB3YXMgY3V0dGluZyBvZmYgdGhlIGJvdHRvbSB0aGUgbWFuIHBhZ2VzLiAgRml4ZWQuCgoyMDA0LTEwLTE2IDE5OjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIC0gdXNlIG5ldyBmZCBwYXJhbSBmb3IgaWZpbmRleCBsb29rdXAsIHdpdGggbG9jYWwgc29ja2V0CiAgIC0gZG9uJ3QgbG9va3VwIGludGVyZmFjZSBpZiBubyBuYW1lCgoyMDA0LTEwLTE2IDE4OjU5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBkb24ndCB1c2UgbV9jbHVzdGVycyBpZiBub3QgYXZhaWxhYmxlCgoyMDA0LTEwLTE2IDE4OjUzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgc2ltcGx5IHJlcXVpcmUgaW50ZXJmYWNlLCBsZXQgaXQgZGVjaWRlIGFib3V0IHNwZWNpZmljIGFyY2ggcmVxdWlyZXMKCjIwMDQtMTAtMTYgMTg6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6CgogICAtIGFsd2F5cyBkZWZpbmUgaWZpbmRleCBmdW5jdGlvbjsgc2ltcGx5IHJldHVybiAwIGlmIFNJT0NHSUZJTkRFWCBub3QgYXZhaWwKICAgLSBhZGQgZmQgcGFyYW0gdG8gaWZpbmRleCBnZXQsIGZvciBvcHRpbWl6YXRpb24KCjIwMDQtMTAtMTYgMTg6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgLSBzZXBhcmF0ZSBpbnRlcmZhY2VfY29tbW9uIGluaXQgZnJvbSBhY2Nlc3NfaW50ZXJmYWNlIGluaXQKICAgLSBjYWxsIGFjY2VzcyBmdW5jdGlvbiwgbm90IGFyY2ggKHNvIHVuc3VwcG9ydGVkIGFyY2hlcyB3b3JrKQoKMjAwNC0xMC0xNiAxODo0OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIGFsd2F5cyBpbmNsdWRlIGlvY3RsIHcvaW50ZXJmYWNlIHN0dWZmCgoyMDA0LTEwLTE2IDE4OjQ4ICByc3RvcnkKCiAgICogYWdlbnQvOiBtaWJfbW9kdWxlcy5jLCBzbm1wX3ZhcnMuYzoKCiAgIG1vdmUgYWNjZXNzIGluaXQgZnJvbSBhZ2VudCB0byBtaWIgaW5pdAoKMjAwNC0xMC0xNiAxMzo0NCAgcnN0b3J5CgogICAqIHRlc3RpbmcvcmZjMTIxMy90ZXN0X2Z1bjoKCiAgIC0gY29tbWVudCBvdXQgYW5zaSBjb2xvcnMgKGluY29uc2lzdGVudCB1c2UpCiAgIC0gcHJlZml4IHN1Yi10ZXN0cyAmIHN1bW1hcnkgd2l0aCBtYWluIHRlc3QgbnVtYmVyIHRvIHJlZHVjZSBjb25mdXNpb24KCjIwMDQtMTAtMTYgMTM6NDMgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL3JmYzEyMTMvc25tcGZ1bi5zaDoKCiAgIHVzZSBzbm1wZ2V0bmV4dCBpbnN0ZWFkIG9mIHNubXB0YWJsZSB0ZXN0aW5nIHRhYmxlcwoKMjAwNC0xMC0xNiAxMzo0MiAgcnN0b3J5CgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gY2hlY2sgZm9yIG5vIHBpZCBmaWxlcyBmb3VuZAogICAtIGNoZWNrIGZvciBwaWRmaWxlIHZhbmlzaGluZwoKMjAwNC0xMC0xNiAxMzo0MCAgcnN0b3J5CgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICByZW1vdmUgc3RyYXkgcXVvdGUKCjIwMDQtMTAtMTYgMTA6MzIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgaWYgbmV0c3RhdCBpcyBhdmFpbGFibGUsIHRlc3QgZm9yIHBvcnQgaW4gdXNlIGFuZCB0cnkgMiBtb3JlIHJhbmRvbSBwb3J0cwoKMjAwNC0xMC0xNSAyMTowMSAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMTowMCAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIxOjAwICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIxOjAwICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU5ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMDo1OSAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTggIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMDo1OCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTggIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTcgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTcgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTcgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMDo0OCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kCiwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNC0xMC0xNSAyMDo0OCAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zLAogICAgIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsCiAgICAgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX2NvbmZpZy4zLAogICAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfcm93X21lcmdlLjMsCiAgICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywKICAgICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3NubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX3NubXBfYWxhcm0uMywgbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsIG5ldHNubXBfc25tcF9wZHUuMywKICAgICBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICB1cGRhdGUgZm9yIDUuMi5wcmUzCgoyMDA0LTEwLTE1IDIwOjM1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6CgogICByZW1vdmUgQysrIHN0eWxlIGNvbW1lbnRzCgoyMDA0LTEwLTE1IDIwOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgdXBkYXRlIGZvciBkYXRhIGFjY2Nlc3MgY2hhbmdlCgoyMDA0LTEwLTE1IDIwOjA0ICByc3RvcnkKCiAgICogUkVBRE1FLnNvbGFyaXMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jCjoKCiAgIGxtU2Vuc29ycyBjaGFuZ2VzIGZyb20gQnJ1Y2UKCjIwMDQtMTAtMTUgMTg6MDAgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L3NjcmlwdHMvbWFuZGlyMmh0bWw6CgogICBXaW4zMiBtYW5kaXIyaHRtbCBzY3JpcHQgd2FzIGN1dHRpbmcgb2ZmIHRoZSB0b3Agb2YgdGhlIG1hbiBwYWdlcy4gIEZpeGVkLgoKMjAwNC0xMC0xNSAxNzozNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLzoKICAgICB1c21ESFVzZXJLZXlUYWJsZS5oLCB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYywgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuaAosIHVzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuaCwgdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKLCB1c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuaCwKICAgICB1c21ESFVzZXJLZXlUYWJsZV9vaWRzLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGU7IHJ1biBpbmRlbnQKCjIwMDQtMTAtMTUgMTc6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLzogaXBTeXN0ZW1TdGF0c1RhYmxlLmMKLCBpcFN5c3RlbVN0YXRzVGFibGUuaCwgaXBTeXN0ZW1TdGF0c1RhYmxlX2NvbnN0YW50cy5oCiwgaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNzoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS86IGlwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXBBZGRyZXNzVGFibGUuaCwgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYwosIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE3OjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvOiBpbmV0TmV0VG9NZWRpYVRhYmxlLmMKLCBpbmV0TmV0VG9NZWRpYVRhYmxlLmgsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGluZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGluZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGU7IHJ1biBpbmRlbnQKCjIwMDQtMTAtMTUgMTc6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlLmMsIGlwQ2lkclJvdXRlVGFibGUuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE3OjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGUuYywgaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNjo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGlmWFRhYmxlLmMsIGlmWFRhYmxlLmgKLCBpZlhUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpZlhUYWJsZV9pbnRlcmZhY2UuYwosIGlmWFRhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE2OjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmMsIGlmVGFibGUuaAosIGlmVGFibGVfZGF0YV9hY2Nlc3MuYywgaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZlRhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE1OjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS86CiAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlLVJFQURNRS1GSVJTVC50eHQsCiAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlLVJFQURNRS1pcFN5c3RlbVN0YXRzVGFibGUudHh0OgoKICAgcmVtb3ZlIG5vbi1zb3VyY2UgZmlsZXMKCjIwMDQtMTAtMTUgMTU6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaAo6CgogICBmaXggbWF4IGluZGV4IGxlbgoKMjAwNC0xMC0xNSAxNToxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBmaXggY3V0LW4tcGFzdGUgaW4gbG9nIG1zZwoKMjAwNC0xMC0xNSAxNToxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIHVzZSBTSU9DR0lGSU5ERVggaW9jdGwgZm9yIGlmSW5kZXgKCjIwMDQtMTAtMTUgMTU6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaW50ZXJmYWNlX2lvY3RsLmMsIGludGVyZmFjZV9pb2N0bC5oLAogICAgIGludGVyZmFjZV9saW51eC5jOgoKICAgdXNlIFNJT0NHSUZJTkRFWCBpb2N0bCBmb3IgaWZJbmRleAoKMjAwNC0xMC0xNSAxMTo1MiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgbWFuL3NubXAuY29uZi41LmRlZiwgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIHR3ZWFrIGJ1ZmZlciBzaXplIGNvZGUgYW5kIGFwcGx5IHRvIHRjcCBzb2NrZXRzIHRvbwoKMjAwNC0xMC0xNCAyMDoyOSAgd2FzbWl0aDMyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmg6CgogICBNb2RpZmllZCBpbmNsdWRlcyBmb3IgV2luZG93cyBidWlsZHMgdG8gaW5jbHVkZSB3aW5zb2NrIHJhdGhlciB0aGFuIFVuaXggc29ja2V0cy4KCjIwMDQtMTAtMTQgMTg6MTUgIHJzdG9yeQoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgKOgoKICAgb3B0aW1pemUgbWliIGluZGV4IHNpemUgZGVmcyAocmVkdWNlIGNhY2hlIHNpemUgYnkgaGFsZiEpCgoyMDA0LTEwLTE0IDE4OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvOgogICAgIHVzbURIVXNlcktleVRhYmxlLmgsIHVzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYywgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYwosIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBkb24ndCB1c2Ugc3RydWN0IHB0ciBhcyBkYXRhIGNvbnRleHQKCjIwMDQtMTAtMTQgMTc6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICBkZWZpbmUgbWF4IHBvbGljeSBsZW5ndGgKCjIwMDQtMTAtMTQgMTc6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgbWlub3IgdHdlYWsgdG8gY29tbWVudHMsIHJlZHVjZSBkaWZmcyBvbiBzd2l0Y2ggZnJvbSBlbWJlZGRlZC0+YWxsb2NhdGVkIGRhdGEKCjIwMDQtMTAtMTQgMTc6NTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oLAogICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKLCBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBkb24ndCBmcmVlIGEgZGF0YSBjb250ZXh0IHdlIGRpZG4ndCBhbGxvY2F0ZQoKMjAwNC0xMC0xNCAxNzo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgY2xhcmlmeSB0aGF0IGEgcG9pbnRlciBzaG91bGRuJ3QgYmUgdXNlZCBhcyB0aGUgZGF0YSBjb250ZXh0IHR5cGUKCjIwMDQtMTAtMTQgMTc6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaToKCiAgIGFjY291bnQgZm9yIGlwYWRkcmVzLT5PSUQgY29udmVyc2lvbiBpbiBpbmRleCBzcGFjZSBhbGxvY2F0aW9ucwoKMjAwNC0xMC0xNCAxNzo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LXNldC5tMmksCiAgICAgbTJjX3NldHVwX3RhYmxlLm0yaSwgc3ludGF4LUNPVU5URVI2NC1nZXQubTJpOgoKICAgbWlub3IgdHdlYWsgdG8gY29tbWVudHMsIHJlZHVjZSBkaWZmcyBvbiBzd2l0Y2ggZnJvbSBlbWJlZGRlZC0+YWxsb2NhdGVkIGRhdGEKCjIwMDQtMTAtMTQgMTc6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgZml4IHZhciBuYW1lCgoyMDA0LTEwLTE0IDA1OjU3ICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZiwgbWliMmMuY29udGFpbmVyLmNvbmYKLCBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLnNjYWxhci5jb25mLAogICAgIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIFJldHVybiAnU05NUF9FUlJfTk9FUlJPUicgb24gIm5vcm1hbCIgU0VUIGVycm9ycy4KICAgKFN1Y2ggZXJyb3JzIHNob3VsZCBvbmx5IGJlIHJlcG9ydGVkIHZpYSBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yKQoKMjAwNC0xMC0xMyAxOToyMSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgdXNlIGNvcnJlY3QgZmFjaWxpdHkgd2hlbiBpbml0aWFsaXppbmcgc3lzbG9nIGxvZyBoYW5kbGVyLgoKMjAwNC0xMC0xMyAxODozNiAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIGluc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBSZW1vdmUgcmVib290IHdhcm5pbmcgZnJvbSByZWdpc3RlciBzY3JpcHRzIGFuZCBjbGFyaWZ5IHN0ZXAgaW4gYnVpbGQgc3RlcHMKCjIwMDQtMTAtMTMgMTU6MjQgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL0NvbmZpZ3VyZSwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIENyZWF0ZSBsaWJzbm1wLmRlZi5pbiBmaWxlIGZvciBzbm1wbGliX2RsbCBhbmQgbW9kaWZ5IHdpbjMyXENvbmZpZ3VyZSB0bwogICBnZW5lcmF0ZSBsaWJzbm1wLmRlZiBpZiBkeW5hbWljIGlzIHNwZWNpZmllZCBhbmQgd2l0aCBvciB3aXRob3V0IHRoZSBJUHY2CiAgIGxpbmVzIGluIGxpYnNubXAuZGVmLgoKMjAwNC0xMC0xMiAyMToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgRml4IGJ1ZyBbIDEwNDU2MDUgXSBzeW50YXggZXJyb3IgaW4gc25tcHRyYXBkLmMgKHdyb25nIGFyZyBvcmRlcikKCjIwMDQtMTAtMTIgMTc6MDQgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgYWxsb3cgYnVpbGRfb2lkX25vYWxsb2MgdG8gY29tcGxldGVseSBmaWxsIGluY29taW5nIGJ1ZmZlcgoKMjAwNC0xMC0xMiAxNjoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgLW1vdmUgaW5pdGlhbGl6YXRpb24gb2YgaW50ZXJuYWxzIGJhY2sgYmVmb3JlIHdlIHVzZSB0aGVtCiAgICAgICAgICAgIChhaCwgdGhlIGpveXMgb2YgYXV0b21hdGVkIHBhdGNoaW5nKQoKMjAwNC0xMC0xMiAxNDo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlmLW1pYi9pZlRhYmxlL2RlZmF1bHQtdGFibGUtaWZUYWJsZS5tMmQsCiAgICAgaWYtbWliL2lmWFRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpZi1taWIvaWZYVGFibGUvZGVmYXVsdC10YWJsZS1pZlhUYWJsZS5tMmQsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvZGVmYXVsdC10YWJsZS1pbmV0Q2lkclJvdXRlVGFibGUubTJkCiwgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9kZWZhdWx0LXRhYmxlLWlwQ2lkclJvdXRlVGFibGUubTJkCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2RlZmF1bHQtdGFibGUtaW5ldE5ldFRvTWVkaWFUYWJsZS5tMmQKLCBpcC1taWIvaXBBZGRyZXNzVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9kZWZhdWx0LXRhYmxlLWlwQWRkcmVzc1RhYmxlLm0yZCwKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2RlZmF1bHQtdGFibGUtaXBTeXN0ZW1TdGF0c1RhYmxlLm0yZAosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvZGVmYXVsdC10YWJsZS11c21ESFVzZXJLZXlUYWJsZS5tMmQKOgoKICAgcmVtb3ZlIGZpbGVzIHVzZWQgZm9yIGNvZGUgZ2VuIChtb3ZlZCB0byBuZXRzbm1wL21vZHVsZS10ZW1wbGF0ZXMgY3ZzIHRyZWUpCgoyMDA0LTEwLTEyIDEzOjI0ICBhbGV4X2IKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBGaXggSVBWNiBjb21waWxlIGlzc3VlcyB3aXRoIFBlcmwKCjIwMDQtMTAtMTIgMTM6MDMgIGFsZXhfYgoKICAgKiB3aW4zMi86IGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIG5ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIEZpeCBQZXJsIGNvbXBpbGUgaXNzdWUgd2l0aCBkYmdfdG9rZW5zIGFuZCBkZWJ1Z19udW1fdG9rZW5zLiAgRml4IHNubXB0cmFwZAogICBjb21waWxlIGlzc3VlIGJ5IGFkZGluZyBpcGhsYXBpLmxpYiB0byBuZXRzbm1wbWlic3Nkay4KCjIwMDQtMTAtMTIgMTA6NDAgIHdhc21pdGgzMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIFNvbWUgdmVyc2lvbnMgb2YgZ2NjIHdpdGggTWluR1cgZG8gbm90IGxpa2UgYSBsYWJsZSB3aXRoIG5vIHN0YXRlbWVudHMgZm9sbG93aW5nLgogICBUaGUgc29sbHV0aW9uIHdhcyB0byBhZGQgYW4gZW1wdHkgc3RhdGVtZW50IGluIHRoZSBzdWRvIGV4Y2VwdGlvbiBoYW5kbGluZwogICBjb2RlIGluIHdpbnNlcnZpY2UuYy4gTmV0LVNOTVAgd2lsbCBub3cgY29tcGlsZSB1c2luZyBhIExpbnV4IGhvc3RlZCBXaW5kb3dzCiAgIGNyb3NzIGNvbXBpbGVyLgoKMjAwNC0xMC0xMSAyMTowNiAgc2xpZgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZml4IHNpZ25lZC91bnNpZ25lZCBjb21wYXJlIG9mIHJhbmdlX3N1YmlkCgoyMDA0LTEwLTExIDIxOjAzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICByZW1vdmUgdW51c2VkIHZhciBzZXNzX2NvbW11bml0eQoKMjAwNC0xMC0xMSAyMTowMiAgc2xpZgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGdldCBkZWZpbml0aW9uIG9mIHNob3VsZF9pbml0CgoyMDA0LTEwLTExIDIxOjAyICBzbGlmCgogICAqIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIHBpY2t1cCBuZXcgZGVmaW5pdGlvbiBvZiBzdHJ0b2tfciBhcyBuZWVkZWQuCgoyMDA0LTEwLTEwIDIxOjI4ICBic2hhdzY2NgoKICAgKiBSRUFETUUuc29sYXJpcywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBMTS1TRU5TT1JTLU1JQiBmb3IgU29sYXJpcwoKMjAwNC0xMC0wOSAwNzo0MSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG1vdmUgdmFyIGRlY2wgdG8gdG9wIG9mIGZ1bmM7IHJlbW92ZSBleHRyYSB9CgoyMDA0LTEwLTA5IDA0OjQ4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc3lzdGVtLmMKOgoKICAgcmVtb3ZlIGJ1Z2ZpeCAjMTA0MzE5NyAtIHdyb25nIHBhdGNoIGRvbmUgdGhlIHdyb25nIHdheSBhdCB0aGUgd3JvbmcgdGltZQoKMjAwNC0xMC0wOCAyMjowMiAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAyICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMSAgaGFyZGFrZXIKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAwICBoYXJkYWtlcgoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgLSAoZGlzdC9NYWtlZmlsZSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMCAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAwICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMTo1OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIxOjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMTo1OCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1pbm9yIGVkaXRzCgoyMDA0LTEwLTA4IDIxOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA0LTEwLTA4IDIxOjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgdXBkYXRlIGF1dG9jb25mIHZlcnNpb24gcmVxOyB1cGRhdGUgbmV0LXNubXAgdmVyc2lvbiB0byAucHJvMgoKMjAwNC0xMC0wOCAyMTo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBjaGFuZ2UgdGhlIGFub24gZ3JvdXBzL2V0YyBjcmVhdGVkIGJ5IHRoZSBzaW1wbGUgdG9rZW5zIHRvIGJlIG1vcmUgZGVzY3JpcHRpdmUgYW5kIHVuaXF1ZQoKMjAwNC0xMC0wOCAyMTo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIHRlc3QgdGhlIHJpZ2h0IHZhcmlhYmxlCgoyMDA0LTEwLTA4IDIxOjQwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBtYWtlIHRoZSBiYWNrZ3JvdW5kIG9mIHRoZSBvYnNvbGV0ZSBzZWN0aW9uIHBpbmtpc2gKCjIwMDQtMTAtMDggMjE6MzggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZW5hYmxlIHN0ZGVycmxvZwoKMjAwNC0xMC0wOCAyMDowOSAgaGFyZGFrZXIKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICBmaXggaW5jb25zaXN0ZW5jaWVzIHBvaW50ZWQgb3V0IGJ5IFBhdHJpY2sgV2VsY2hlCgoyMDA0LTEwLTA4IDIwOjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgbWFrZSBzdXJlIHNubXBFbmdpbmVUaW1lIGNhbGN1bGF0aW9ucyBkb24ndCB3cmFwIHBhc3QgYW4gdWludCBzaXplCgoyMDA0LTEwLTA4IDE5OjI3ICByc3RvcnkKCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSBmdW5jdGlvbgoKMjAwNC0xMC0wOCAxOToyNSAgcnN0b3J5CgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIGZpeCB0eXBvCgoyMDA0LTEwLTA4IDE5OjEyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oOgoKICAgdHdlYWsgc29tZSBtYWNybyBhbmQgZnVjdGlvbiBuYW1lcy92YWx1ZXMKCjIwMDQtMTAtMDggMTk6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywKICAgICBpZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZV9jb25zdGFudHMuaCwKICAgICBpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBpZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgKLCBpZi1taWIvaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCiwgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5oCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYwosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmgKLCBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaCwKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5jLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5oLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2VudW1zLmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfb2lkcy5oCjoKCiAgIHVwZGF0ZSBnZW5lcmVhdGVkIGNvZAoKMjAwNC0xMC0wOCAxOTowMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpOgoKICAgdHdlYWsgbWF4IG9pZCBndWVzc3dvcmsKCjIwMDQtMTAtMDggMTY6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgLXJldmFtcC9hZGQgY29tbWVudHMgKGdpdmUgZGlmZiBtb3JlIGNvbnRleHQ7IGZhY2lsaXRhdGUgYXV0by1nZW4gb2YgdGFzayBsaXN0KQogICAtcmVkdWNlIHNvbWUgZ2VuZXJhdGVkIGNvbW1lbnRzIGlmIHZlcmJvc2Ugbm90IHNldAoKMjAwNC0xMC0wOCAxNjo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC1yZXZhbXAvYWRkIGNvbW1lbnRzIChnaXZlIGRpZmYgbW9yZSBjb250ZXh0OyBmYWNpbGl0YXRlIGF1dG8tZ2VuIG9mIHRhc2sgbGlzdCkKICAgLXVzZSBuZXcgbWFjcm8gZm9yIHNpemUgb2YgaW5kZXggb2lkIGJ1ZmZlcgoKMjAwNC0xMC0wOCAxNjo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgLWluaXQgaXJyZXZlcnNpYmxlIGNvbW1pdCB0byAwCgoyMDA0LTEwLTA4IDE2OjQzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywKICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBhZ2VudC9zbm1wX2FnZW50LmMKOgoKICAgQXBwbHkgcGF0Y2ggZm91bmQgaW4gYnVnICMxMDQwNDMxIHRvIGluY2x1ZGUgdHJhbnNwb3J0IGluZm9ybWF0aW9uIGluIHRoZSBkdW1wIG91dHB1dAoKMjAwNC0xMC0wOCAxNjo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKOgoKICAgLXJldmFtcC9hZGQgY29tbWVudHMgKGdpdmUgZGlmZiBtb3JlIGNvbnRleHQ7IGZhY2lsaXRhdGUgYXV0by1nZW4gb2YgdGFzayBsaXN0KQogICAtdXNlIG5ldyBkZWZpbmUgaW4gaGVhZGVyIGZvciBjYWNoZSB0aW1vdWV0CgoyMDA0LTEwLTA4IDE2OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpOgoKICAgLXJldmFtcC9hZGQgY29tbWVudHMgKGdpdmUgZGlmZiBtb3JlIGNvbnRleHQ7IGZhY2lsaXRhdGUgYXV0by1nZW4gb2YgdGFzayBsaXN0KQogICAtcmVtb3ZlIHNvbWUgcmVkdW5kYW50IGNvbW1lbnRzCgoyMDA0LTEwLTA4IDE2OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmk6CgogICAtcmV2YW1wL2FkZCBjb21tZW50cyAoZ2l2ZSBkaWZmIG1vcmUgY29udGV4dDsgZmFjaWxpdGF0ZSBhdXRvLWdlbiBvZiB0YXNrIGxpc3QpCiAgIC10cnkgdG8gc2hvcnRlbiBzaXplIG9mIG9pZCBidWZmZXJzIGZvciBpbmRleGVzCgoyMDA0LTEwLTA4IDE2OjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtZW51bXMubTJpOgoKICAgLXJldmFtcC9hZGQgY29tbWVudHMgKGdpdmUgZGlmZiBtb3JlIGNvbnRleHQ7IGZhY2lsaXRhdGUgYXV0by1nZW4gb2YgdGFzayBsaXN0KQogICAtZG9uJ3QgZ2VuIGludGVybmFsIGVudW1zIGlmIG5vdCBtYXBwaW5nCgoyMDA0LTEwLTA4IDE2OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1jdHgtY29weS5tMmksCiAgICAgZ2VuZXJpYy1jdHgtc2V0Lm0yaSwgZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwKICAgICBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksIGdlbmVyaWMtZ2V0LWNoYXIubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksIGdlbmVyaWMtdGFibGUtb2lkcy5tMmMKLCBnZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaSwKICAgICBnZW5lcmljLXZhbHVlLW1hcC5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaSwKICAgICBtZmQtZGF0YS1hY2Nlc3MubTJjLCBtZmQtZGF0YS1nZXQubTJjLAogICAgIG1mZC1kYXRhLXNldC5tMmMsIG1mZC1pbnRlcmZhY2UubTJjLCBub2RlLWdldC5tMmkKLCBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaSwgcGFyZW50LXNldC5tMmksCiAgICAgc3ludGF4LUNPVU5URVI2NC1nZXQubTJpLCBzeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yaSwKICAgICBzeW50YXgtSW5ldEFkZHJlc3MtZ2V0Lm0yaSwgc3ludGF4LUluZXRBZGRyZXNzVHlwZS1nZXQubTJpCiwgc3ludGF4LUluZXRBZGRyZXNzVHlwZS1zZXQubTJpLAogICAgIHN5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaSwgc3ludGF4LVRlc3RBbmRJbmNyLWdldC5tMmk6CgogICByZXZhbXAvYWRkIGNvbW1lbnRzIChnaXZlIGRpZmYgbW9yZSBjb250ZXh0OyBmYWNpbGl0YXRlIGF1dG8tZ2VuIG9mIHRhc2sgbGlzdCkKCjIwMDQtMTAtMDggMTY6MDIgIHNsaWYKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgRnJvbSBEZWJpYW4gcGF0Y2ggbmV0LXNubXBfNS4xLjItNS5kaWZmLmd6IC0tIHByb3BhZ2F0ZSBXUkFQTElCUwoKMjAwNC0xMC0wOCAxNTozMiAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYXBwbHkgdGhlIGludGVudCBvZiBwYXRjaCA5NDcwMzMgZnJvbSBDbGF1cyBLbGVpbiB0byBhbGxvdyBmb3IgY3Jvc3MgY29tcGlsYXRpb24gc3VwcG9ydCB0aHJvdWdoIHRoZSB1c2Ugb2YgLS1wcmVmaXg9IGFuZCAtLWV4ZWMtcHJlZml4PSBmbGFncy4gIERpZG4ndCBhcHBseSB0aGUgd2hpdGUgc3BhY2UsIHJlZm9ybWF0dGluZywgZXRjIHBvcnRpb25zIHNpbmNlIGl0cyBhZ2FpbnN0IG91ciBwYXRjaCBhY2NlcHRhbmNlIHN0YW5kYXJkcy4gIEFsc28gbWFkZSBhIHNtYWxsIGZpeCBzbyB0aGF0IC0tcGVyZml4PS9zb21ldGhpbmcgZG9lc24ndCBhZGQgYSAvbmV0LXNubXAgc3VmZml4IHRvIHRoZSBpbmNsdWRlIGRpcmVjdG9yeQoKMjAwNC0xMC0wOCAxNToxNiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBbIDEwMjI3ODcgXSBQYXRjaCAoZnJvbSBHZWVydCBEZSBQZXV0ZXIpIHRoYXQgYWxsb3dzIFVEUCBidWZmZXIgdHVuaW5nLi4uICBUYWtlIDIgYWZ0ZXIgZGlzY3Vzc2lvbiBvbiAtY29kZXJzCgoyMDA0LTEwLTA4IDE0OjE1ICBzbGlmCgogICAqIHBlcmwvOiBBU04vQVNOLnBtLCBPSUQvT0lELnBtLAogICAgIFRyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sIGFnZW50L2FnZW50LnBtLAogICAgIGFnZW50L25ldHNubXBfcmVxdWVzdF9pbmZvUHRyLnBtLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgICBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIG1hbmFnZXIvZGlzcGxheXRhYmxlLnBtCjoKCiAgIFNlZW4gaW4gYSBEZWJpYW4gcGF0Y2guICBJbnNlcnQgcmVxdWlyZWQgYmxhbmsgbGluZSBmb2xsb3dpbmcgX19FTkRfXyBjdXQgbWFyay4KCjIwMDQtMTAtMDggMTM6NTAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBEb24ndCBzaG93IHNtdXggcGVlciBwYXNzd29yZCBpbiBjb25uZWN0IGFjY2VwdC9yZWZ1c2UgbG9nIG1lc3NhZ2VzLgoKMjAwNC0xMC0wOCAxMTo1MiAgc2xpZgoKICAgKiB0ZXN0aW5nLzogcmZjMTIxMy9SRUFETUUsIHJmYzEyMTMvcnVuLAogICAgIHJmYzEyMTMvc25tcGZ1bi5zaCwgcmZjMTIxMy90ZXN0X2Z1biwKICAgICByZmMxMjEzL3Rlc3RtaWIxLnNoLCByZmMxMjEzL3Rlc3RtaWIyLnNoLAogICAgIHJmYzEyMTMvdGVzdG1pYjMuc2gsIHRlc3RzL1QxNjByZmMxMjEzLAogICAgIHRlc3RzL1QxNjFyZmMxMjEzLCB0ZXN0cy9UMTYycmZjMTIxMzoKCiAgIHBhdGNoICM2ODk3NTcgLSBhZGQgdGVzdCBjYXNlcyBmb3IgYWNjZXNzaW5nIFJGQy0xMjEzIE1JQiB2YXJpYWJsZXMuCiAgIHRoYW5rcyB0byBMaW5nIFhpYW9mZW5nIGZvciB0aGUgb3JpZ2luYWwgd29yay4KCjIwMDQtMTAtMDggMTA6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGluaXRpYWxpemUgcHRyIHRvIE5VTEwKCjIwMDQtMTAtMDggMTA6MzEgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zeXN0ZW0uYwo6CgogICBmaXggYnVnIzEwNDMxOTcgLSBwcm92aWRlIGEgZnVuY3Rpb24gdG8gdGVzdCBvcyB2ZXJzaW9uIGFuZCByZWxlYXNlCgoyMDA0LTEwLTA4IDEwOjIyICByc3RvcnkKCiAgICogYWdlbnQvOiBtaWJfbW9kdWxlcy5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gZml4IGJ1ZyBbIDEwMjU0NTQgXSB1bmRlZmluZWQgc3ltYm9scyBpbiBzbm1wdHJhcGQKICAgICAtIG1vdmUgaW5jbHVkZSAiYWdlbnRfbW9kdWxlX2luaXRzLmgiIGluY2x1ZGUgaW5zaWRlIGluaXRfYWdlbnQKCjIwMDQtMTAtMDggMDk6MjkgIHdhc21pdGgzMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMybXN2Yy5oOgoKICAgVGhlIExpbnV4IGhvc3RlZCB2ZXJzaW9uIG9mIE1pbkdXIHJlcG9ydHMgaXRzZWxmIGFzIG1pbmd3MzJtc3ZjLiBUaGlzIHN5c3RlbQogICBoZWFkZXIgZG9lcyBub3RoaW5nIG1vcmUgdGhhbiBkZWZpbmUgbWluZ3czMiBhbmQgaW5jbHVkZSBtaW5ndzMyLmguIEFsbCBjaGFuZ2VzCiAgIHNob3VsZCBiZSBtYWRlIGluIG1pbmd3MzIuaC4KCjIwMDQtMTAtMDggMDk6MDQgIGFsZXhfYgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBuZXRzbm1wX2dldGVudigpOiBNb3ZlIHZhcmlhYmxlIGRlY2xhcmF0aW9uIGludG8gV0lOMzIgSUZERUYKCjIwMDQtMTAtMDggMDk6MDEgIGFsZXhfYgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgbG9jYWwvc25tcGNvbmYsCiAgICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICAgIHNubXBsaWIvdG9vbHMuYywgd2luMzIvZGlzdC9SRUFETUUudHh0LAogICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvQ29uZmlndXJhdGlvbl9PdmVydmlldy5odG1sLAogICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIEFkZCBuZXRzbm1wX2dldGVudigpIHdoaWNoIGlzIGEgd3JhcHBlciBmb3IgZ2V0ZW52KCkgdG8gYWRkCiAgIGJhc2ljIFdpbmRvd3MgcmVnaXN0cnkgc3VwcG9ydC4KCjIwMDQtMTAtMDcgMTk6MzEgIHNsaWYKCiAgICogaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaDoKCiAgIGluY2x1ZGUgbmV0LXNubXAtY29uZmlnLmggYW5kIG5ldC1zbm1wL3R5cGVzLmgKICAgZm9yIGltcHJvdmVkIFVDRF9DT01QQVRJQkxFIHVzZXMgKGZyb20gRmVkb3JhIG5ldC1zbm1wLTUuMC42LWNvbXBhdC5wYXRjaCkuCgoyMDA0LTEwLTA3IDE4OjQ0ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgUmVtb3ZlIG1pYjJjLml0ZXJhdGUyLmNvbmYKCjIwMDQtMTAtMDcgMTc6MTUgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBSZS1pbnN0YWxsIHBhdGggZml4LCBwcm9tcHQgb3ZlcndyaXRlIHNubXAuY29uZgoKMjAwNC0xMC0wNyAxNjoxNSAgYWxleF9iCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgV2luMzIgRExMIHN1cHBvcnQgZm9yIHN0cnRva19yCgoyMDA0LTEwLTA3IDE1OjIxICBhbGV4X2IKCiAgICogc25tcGxpYi9zdHJ0b2tfci5jLCB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLAogICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgV2luMzIgTVNWQyBzdXBwb3J0IGZvciBzdHJ0b2tfcgoKMjAwNC0xMC0wNyAxNDo1NyAgYWxleF9iCgogICAqIHdpbjMyL25ldC1zbm1wLzogbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIGRlZmluZWQgTkVUU05NUF8qIGRlZmluZXMKCjIwMDQtMTAtMDcgMDU6MTIgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIHN0cnRva19yLmM6CgogICBhZGQgc3RydG9rX3IKCjIwMDQtMTAtMDYgMjE6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oOgoKICAgbWFrZSBwcm94eSBuby1jb21tdW5pdHkgc3VwcG9ydCB1c2luZyAtQ2MgaW5zdGVhZCBvZiBhc3N1bWluZyB5b3Ugd2FudGVkIGl0IHRoYXQgd2F5CgoyMDA0LTEwLTA2IDE5OjIyICBzbGlmCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGluY2x1ZGUgdGVtcCB2YXIgImkiIGludHJvZHVjZWQgYnkgcmVjZW50IGlwdjYgcGF0Y2guCgoyMDA0LTEwLTA2IDE5OjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmg6CgogICByZW5hbWUgdG8gTkVUU05NUF9STkQuIChmb3Jnb3QgdG8gY2hlY2sgdGhpcyBmaWxlIGluIGZyb20gZWFybGllciBjaGVja2luCgoyMDA0LTEwLTA2IDE3OjU3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBrc20gcGF0Y2ggcHJvYmxlbSBwb2ludGVkIG91dCBieSBCdWNrIEh1cHBtYW5uCgoyMDA0LTEwLTA2IDE3OjQ5ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaDoKCiAgIGFkZCBtaXNzaW5nIGRlZmluZSBFTkdJTkVJRF9UWVBFX05FVFNOTVBfUk5EIDI1NgoKMjAwNC0xMC0wNiAxNjo1NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgZml4IGJ1ZyBbIDk4NjIzOCBdIHNubXBkIGxvb3BzIGZvcmV2ZXIKCjIwMDQtMTAtMDYgMTY6MDEgIHNsaWYKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBmaXggYnVnIzEwNDA0Mjk6IHRlc3QgZXZlcnkgZl9mbXRhZGRyIGNhbGwgYmVmb3JlIGRlcmVmZXJlbmNpbmcgb3IgZnJlZWluZy4KICAgQ2F0Y2ggbWVtb3J5IGxlYWtzIGluIHNubXB0ZXN0LCBzbm1wdHJhcGQsIGFuZCBzbm1wc3RhdHVzLgoKMjAwNC0xMC0wNiAxNToyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBQYXRjaCBbIDkyMzQ5NCBdIGZyb20gQnVjazogaW1wcm92ZWQgYXV0b2NvbmYgc3VwcG9ydCBhbmQgaGVpbWRhbCBzdXBwb3J0IGZvciBrc20uCgoyMDA0LTEwLTA2IDE0OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBQYXRjaCBbIDk0MjE1NSBdIEZyb20gRGFpLkg7IElQdjYgYWRkcl9zdHJpbmcgZml4IGZvciBsaWJ3cmFwCgoyMDA0LTEwLTA2IDE0OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZml4IGJ1ZyBbIDYxNTc0NCBdIFNwdXJpb3VzIERJU01BTi1FVkVOVCB0cmFwCgoyMDA0LTEwLTA2IDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBQYXRjaCBbIDEwNDA3MTggXSBmcm9tIEJlbiBSb2dlcnM6IEFnZW50eCBlcnJvciBwcm9wYWdhdGlvbiBhbmQgaW5maW5pdGUgbG9vcAoKMjAwNC0xMC0wNiAxNDoxMSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICByZXN0b3JlIHB0ciBpbml0IGJlZm9yZSBkZXJlZmVyZW5jZTsgbm8gaWRlYSBob3cgdGhpcyBoYXMgYmVlbiB3b3JraW5nIGZvciB0aGUKICAgbGFzdCA2IG1vbnRocywgYW5kIHdoeSBpdCBzdGFydGVkIGNyYXNoaW5nIG9uIG1lIHRvZGF5LgoKMjAwNC0xMC0wNiAxMzoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIC0gYmFjayBvdXQgYWxsIG9mIGZpeCBmb3IgYnVnIDg2NTQxNQogICAgIC0gaGVhZGVyX2lmRW50cnkgZGVwZW5kcyBvbiBjb250aWd1b3VzIGlmSW5kZXggdmFsdWVzLCBhbmQgSSdtIG5vdCBhYm91dAogICAgICAgdG8gdHJ5IGFuZCBmaXggdGhhdCBpbiB0aGlzIGlmZGVmIGhlbGwtaG9sZS4gVGhvc2Ugd2FudGluZyBub24tY2hhbmdpbmcKICAgICAgIGlmSW5kZXhlcyB3aWxsIGp1c3QgaGF2ZSB0byBtb3ZlIHRvIHRoZSBtZmQtcmV3cml0ZS4KCjIwMDQtMTAtMDYgMTM6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGJhY2sgb3V0IGFsbCBvZiBmaXggZm9yIGJ1ZyA4NjU0MTUKICAgICAtIGhlYWRlcl9pZkVudHJ5IGRlcGVuZHMgb24gY29udGlndW91cyBpZkluZGV4IHZhbHVlcywgYW5kIEknbSBub3QgYWJvdXQKICAgICAgIHRvIHRyeSBhbmQgZml4IHRoYXQgaW4gdGhpcyBpZmRlZiBoZWxsLWhvbGUuIFRob3NlIHdhbnRpbmcgbm9uLWNoYW5naW5nCiAgICAgICBpZkluZGV4ZXMgd2lsbCBqdXN0IGhhdmUgdG8gbW92ZSB0byB0aGUgbWZkLXJld3JpdGUuCgoyMDA0LTEwLTA2IDEyOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBiYWNrIG91dCBwYXJ0IG9mIGZpeCBmb3IgYnVnIDg2NTQxNSwgaXQgYnJva2Ugc29sYXJpcyAmIHByb2JhYmx5IG90aGVycwogICAgIChub3QgYWxsIHBsYXRmb3JtcyBoYXZlIEludGVyZmFjZV9TY2FuX0luaXQsSW50ZXJmYWNlX1NjYW5fTmV4dCkKCjIwMDQtMTAtMDYgMTA6MzcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUGF0Y2ggIzEwNDEzNzggZnJvbSBUaG9tYXMgQW5kZXJzIHRvIGZpeCB0aGUgZGVzY3JpcHRpb24gb2YgaG93IGVuZ2VJRHMgYXJlIGNyZWF0ZWQuCgoyMDA0LTEwLTA2IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgRml4IHRoZSBjb21wbGFpbnQgb3V0bGluZWQgYnkgVGhvbWFzIEFuZGVycyBpbiBQYXRjaCAxMDQzNzggdXNpbmcgdGhlIG5ldC1zbm1wIGVudGVycHJpc2UgbnVtYmVyIGluc3RlYWQgb2YgdGhlIFVDRCBvbmUgZm9yIHJhbmRvbWx5IGNvbXBvc2VkIGVuZ2luZUlEcwoKMjAwNC0xMC0wNiAxMDozNSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGRlZmluZWQgTkVUU05NUF8qIGRlZmluZXMKCjIwMDQtMTAtMDUgMjI6MjcgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICBhZGQgTWFnbnVzIEZyb21yZWlkZSwgTWFyY3VzIE1laXNzbmVyLCBBbmRyZXcgUnVja2VyIEpvbmVzLCBEYWkuSC4KCjIwMDQtMTAtMDUgMjE6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBhcHBseSBwYXJ0IG9mIHBhdGNoIFsgOTM5NTk1IF0gZnJvbSBzdW4gKHVwZGF0ZSBjYWNoZSB0aW1lcykKCjIwMDQtMTAtMDUgMjE6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtIGFwcGx5IHRpbnkgcGllY2Ugb2YgcGF0Y2ggWyA4MzYzOTAgXQogICAgIC0gYXBwbGllZCBtb3JlIGlmbmFtZSB0byBpZnR5cGUgbWFwcGluZ3MKCjIwMDQtMTAtMDUgMjE6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jCjoKCiAgIC0gYXBwbHkgcGF0Y2ggWyA4MTE2ODcgXSBQcm94eSBzdXBwb3J0IGlnbm9yZXMgY29tbXVuaXR5IHN0cmluZyBpZiAtYyBvcHRpb24gb21pdHRlZAoKMjAwNC0xMC0wNSAyMDo0NyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gYXBwbHkgcGF0Y2ggWyA1NTExODMgXSBMUlUgcmVwbGFjZW1lbnQgZm9yIGFkZHJlc3MgY2FjaGUKCjIwMDQtMTAtMDUgMjA6MDYgIGFsZXhfYgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCBtaXNzaW5nIHJlZmVyZW5jZSBmb3Igd2luc2VydmljZXJjIGluIE1pbkdXIHNlY3Rpb24KCjIwMDQtMTAtMDUgMTk6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gYXBwbHkgcGF0Y2ggWyA5OTY0NjIgXSBhZ2VudHggZmFpbHMgb24gbGl0dGxlIGVuZGlhbiA2NGJpdAoKMjAwNC0xMC0wNSAxOToxNSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIGFwcGx5IHBhdGNoIFsgMTAwOTc5OSBdIEFnZW50WCBSZWdpc3Rlci1QRFUgd2l0aCBtdWx0aXBsZSBpdGVtcwoKMjAwNC0xMC0wNSAxOTowMiAgcnN0b3J5CgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgc25tcF92YXJzLmM6CgogICAtIGFwcGx5IFsgMTAxMTQ3MSBdIE1vcmUgU0NPIFVuaXh3YXJlIDcgcGF0Y2hlcyArIGlubGluZSBtYWNybyBwcm9ibGVtcwogICAgIC0gZGVmaW5lIG1hY3JvIGZvciB1bml4d2FyZSBpbmNsdWRlcwoKMjAwNC0xMC0wNSAxOTowMSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICByZW1vdmUgZXh0cmFuZW91cyBlbmRpZgoKMjAwNC0xMC0wNSAxODozOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBjb25maWd1cmUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTAtMDUgMTc6NDYgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW46CgogICAtIGFwcGx5IFsgMTAxMTQ3MSBdIE1vcmUgU0NPIFVuaXh3YXJlIDcgcGF0Y2hlcyArIGlubGluZSBtYWNybyBwcm9ibGVtcwogICAgIC0gY2hlY2sgZm9yIG5lc3RlZCBzdGF0aWMgaW5saW5lIHN1cHBvcnQKCjIwMDQtMTAtMDUgMTc6MzggIGFsZXhfYgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICAgIHNubXBsaWIvd2luc2VydmljZXJjLnJjOgoKICAgQXBwbHkgcGF0Y2ggMTA0MDMyNSAtIHdpbjMyIE1pbkdXIGFnZW50L3RyYXBkIHNlcnZpY2UgRXZlbnRsb2cgZml4ZXMKCjIwMDQtMTAtMDUgMTY6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIGFwcGx5IHBhdGNoIFsgMTA0MDI1NCBdIFN0cmVuZ3RoZW4gQUdFTlRYIE9JRCBjaGVja3MKCjIwMDQtMTAtMDUgMTY6MjYgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBhcHBseSBwYXRjaCBbIDEwNDAyNjEgXSBNYWtlIGl0IHBvc3NpYmxlIHRvIHNlbGVjdCB0ZXN0cyBvbiBhZ2VudCBtb2R1bGVzCgoyMDA0LTEwLTA1IDE2OjE1ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGNvbmZpZ3VyZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMC0wNSAxNjoxNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBhZGQgY2hlY2sgZm9yIHN0cnRva19yIGFuZCBydW4gYXV0b2hlYWRlcgoKMjAwNC0xMC0wNSAxNjoxMyAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIGFkZCBHZWVydCBEZSBQZXV0ZXIgdG8gY29udHJpYnV0b3JzCgoyMDA0LTEwLTA1IDE2OjEyICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLAogICAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgYXBwcy9zbm1wdmFjbS5jLAogICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLCBzbm1wbGliL2NvbnRhaW5lci5jLAogICAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL21pYi5jLAogICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgICAgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGFwcGx5IHBhdGNoIFsgMTA0MDMzMCBdIEdldHRpbmcgcmlkIG9mIHN0cnRvawoKMjAwNC0xMC0wNSAxMDozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIHJlbW92ZSBhdHRyaWJ1dGlvbiBjb21tZW50CgoyMDA0LTEwLTA1IDA3OjA2ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgUmVtb3ZlIC1DIGFuZCAtYyByZWdpc3RlciBvcHRpb25zIGFuZCBhZGQgbm90ZSBhYm91dCByZWJvb3QKCjIwMDQtMTAtMDUgMDA6NTAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgcGF0Y2ggZnJvbSBqcHJha2FzaGJhYnU6IG1vdmUgZW5kZnNlbnQgY2FsbCBuZWFyIHNldGZzZW50IHRvIGF2b2lkIGNvbXBpbGUgZXJyb3IKCjIwMDQtMTAtMDQgMjA6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBlbG1pbmF0ZSB1c2Ugb2YgVE9ET19maW5kXyogdW5kZWZpbmVkIG1hY3JvcwoKMjAwNC0xMC0wNCAyMDoxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgcHV0IGlycmV2ZXJzaWJsZV9jb21taXQgc2V0dGluZyBpbiBnZW5lcmF0ZWQgZGVmYXVsdC10YWJsZS0qCgoyMDA0LTEwLTA0IDIwOjExICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCiwgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaToKCiAgIGVsbWluYXRlIHVzZSBvZiBUT0RPX2ZpbmRfKiB1bmRlZmluZWQgbWFjcm9zCgoyMDA0LTEwLTA0IDE1OjA5ICBhbGV4X2IKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgICBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIFJlbmFtZSBnX3N6QXBwTmFtZSB0byBhcHBfbmFtZSB0byBmb2xsb3cgbmFtaW5nIHN0YW5kYXJkcwoKMjAwNC0xMC0wNCAxMTo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LWdldC5tMmksIG5vZGUtc2V0Lm0yaQo6CgogICAtIG1ha2UgY29tbWVudHMgbW9yZSB1bmlxdWUgKGhlbHAgb3V0IGRpZmYpCiAgIC0gcmVtb3ZlIHNvbWUgZXh0cmFuZW91cyBjb21tZW50cwoKMjAwNC0xMC0wNCAxMTo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIHVzZSBmdWxsIHBhdGhzIGluc3RlYWQgb2YgcmVsYXRpdmUKCjIwMDQtMTAtMDQgMTE6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgYWRkIGRlYnVnIHRva2VucwoKMjAwNC0xMC0wNCAwOTo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIHN0b3JlIHBlcm1hbmVudCByb3dzIHRvbwoKMjAwNC0xMC0wNCAwOTo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIGRvbid0IHJlc2V0IG9wZXJfc3RhdHVzIGZsYWdzLCBpb2N0bCBjb2RlIGhhcyBhbHJlYWR5IHNldCB0aGVtCgoyMDA0LTEwLTA0IDA5OjQ5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsCiAgICAgbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgbGlzdCBhbGwgbG9jYXRpb25zIHRvIHVwZGF0ZSBpbiBmbG93Y2hhcnQgY29tbWVudHMKCjIwMDQtMTAtMDMgMTg6MjIgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBVbnJlZ2lzdGVyIHNlcnZpY2VzIG9uIHVuaW5zdGFsbCwgYWRkIG1pc3NpbmcgbWlicywgbWliMmMgYW5kIGhlYWRlciBmaWxlcy4KCjIwMDQtMTAtMDMgMTQ6MjAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBmcm9tIENvcmV5IFdyaWdodDogZml4IHNlbnNvcl9hcnJheSBzaXplIGxpbWl0IHRlc3QKCjIwMDQtMTAtMDMgMTA6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGFwcGx5IG1pc3NlZCBiaXQgZnJvbSBwcmV2aW91cyBwYXRjaAoKMjAwNC0xMC0wMyAwODo0NyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oOgoKICAgLSBhcHBseSBwYXRjaCBmcm9tIEdlZXJ0IERlIFBldXRlciBbIDEwMjI5NDEgXSBTcGVlZCB1cCBhZGRpbmcgYSByb3cgdG8gYSB0YWJsZQogICAgIC0gKHNsaWdodGx5IG1vZGlmaWVkIHZlcnNpb24pCiAgICAgLSB0ZXN0IGZvciBhcHBlbmQgYmVmb3JlIGxpbmVhciBzZWFyY2gKICAgICAtIHNhdmUgcmMgaW5zdGVhZCBvZiByZXBlYXRpbmcgZnVuY3Rpb24gY2FsbAoKMjAwNC0xMC0wMyAwNzo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBwYXRjaCBmcm9tIFBhdHJpY2sgV2VsY2hlOyBjaGVjayBmb3IgTlVMTCBiZWZvcmUgZGVyZWYKCjIwMDQtMTAtMDIgMjA6NTEgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBBZGQgc3RlcCB0byBjb21wYXJlIGNvbXBpbGVkIGFuZCBpbnN0YWxsZWQgZm9sZGVycyB0byBsb2NhdGUgbWlzc2luZyBmaWxlcwoKMjAwNC0xMC0wMSAyMDo1MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENoZWNrIGZvciBzeXNjb25mIGFuZCB0aW1lcyBmdW5jdGlvbnMgYW5kIHN5cy90aW1lcy5oIGhlYWRlcgoKMjAwNC0xMC0wMSAyMDo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGxjZF90aW1lLmMsIHNubXB2My5jOgoKICAgUHJvcGVyIGZpeCBpdCB2MyBlbmdpbmV0aW1lIHdyYXBwaW5nIHByb2JsZW0uICBGYWlybHkgcG9ydGFibGUgJiYgdXNlcyB0aW1lcygpLgoKMjAwNC0xMC0wMSAyMDo1MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zeXN0ZW0uYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgY3JlYXRlIGEgbmV3IGNhbGN1bGF0ZV9zZWN0aW1lX2RpZmYgZnVuY3Rpb24KCjIwMDQtMTAtMDEgMjA6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBzZXQgaGVudCB2YXJpYWJsZSB0byBOVUxMIHRvIHNxdWFzaCBib2d1cyBjb21waWxlciB3YXJuaW5nCgoyMDA0LTEwLTAxIDE1OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaDoKCiAgIGZpeCBidWcgWyA4NjU0MTUgXSBpbmNvcnJlY3QgaWZBZEVudElmSW5kZXggZmllbGQKCjIwMDQtMTAtMDEgMDg6NTggIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBTaW1wbGlmeSBidWlsZCBzdGVwcwoKMjAwNC0xMC0wMSAwNToyOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlMi5jb25mLAogICAgIGxvY2FsL21pYjJjLmNvbmYsIE5FV1M6CgogICBCcmVhayB0aGUgaGFiaXQgb2YgYSBsaWZldGltZSwgaGF2ZSB0aGUgY291cmFnZSBvZiBteSBjb252aWN0aW9ucywKICAgYW5kIHB1c2ggdGhlIG5ldyAoZnVsbGVyKSBpdGVyYXRlIGNvbmZpZyBpbiBwcmVmZXJlbmNlIHRvIHRoZSBlYXJsaWVyCiAgIChyZWxhdGl2ZWx5IGVtcHR5KSBmcmFtZXdvcmsuCiAgICAgW0kganVzdCBrbm93IEknbSBnb2luZyB0byByZWdyZXQgZG9pbmcgdGhpcy4uLi4uXQoKMjAwNC0wOS0zMCAyMDoxMCAgd2FzbWl0aDMyCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFVwZGF0ZWQgdGhlIHNlcnZpY2UgcmVnaXN0cmF0aW9uIGJhdGNoIGZpbGVzIGZvciB0aGUgV2luZG93cyBpbnN0YWxsZXIgc2NyaXB0LgogICBBcHBsaWVkIGEgbW9kaWZpZWQgcGF0Y2ggWyAxMDM3Njk1IF0gd2l0aCBlZGl0cyBtYWRlIGJ5IEFsZXggQnVyZ2VyIGFuZCBteXNlbGYuCiAgIFRoZSBwYXRjaCBhbHNvIHJlbW92ZXMgY29uZmlndXJhdGlvbiBmaWxlcyBmcm9tIHRoZSBzY3JpcHQgdGhhdCB3ZXJlIG5vdAogICBiZWluZyBpbnN0YWxsZWQuCgoyMDA0LTA5LTMwIDExOjEyICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgY2hhbmdlIDUgLT4gdmFyaW91cyBzbyB3ZSBzdG9wIGdldHRpbmcgaXQgd3JvbmcKCjIwMDQtMDktMzAgMDg6NTkgIGFsZXhfYgoKICAgKiB3aW4zMi9idWlsZC5wbDoKCiAgIEZvciBidWcgMTAzNzUyNDogU2V0IHBhdGggdG8gLkRMTCBmb3IgUGVybCBidWlsZCAvIHRlc3QKCjIwMDQtMDktMzAgMDU6NDggIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEhhdmUgJ3JlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nJyB0YWtlIG5vdGUgb2YgdGhlCiAgIGluaXRpYWwgbGVuZ3RoIHdoZW4gdXNpbmcgZXhpc3RpbmcgYnVmZmVycy4KCjIwMDQtMDktMzAgMDI6NTUgIHNsaWYKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgaWdub3JlIGVycm9ycyBmb3IgYW55IG1pc3NpbmcgTUFONUcgZmlsZXMgKGUuZy4sIG1pYjJjLmNvbmYuNSkKCjIwMDQtMDktMzAgMDI6NDMgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcDoKCiAgIGFkZCBERUxBWSBhZnRlciBzZXQgdG8gYWxsb3cgdGltZSBmb3IgdHJhcCB0byBmaXJlIGFuZCBiZSBsb2dnZWQuCgoyMDA0LTA5LTMwIDAxOjM4ICBzbGlmCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgZml4ICJJbmNvbnNpc3RlbnQgb3BlcmF0b3IgZm9yIHRlc3QiIHdoaWNoIHdhcyBpbnRyb2R1Y2VkIHdoZW4KICAgd2hpdGVzcGFjZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lIGluIGluc3RhbGxzdWJkaXJoZWFkZXJzLgogICBJbmRlbnQgbGluZXMgb2YgcnVsZSBib2RpZXMgdXNpbmcgdGFiIG9ubHkgKGEgcmVxdWlyZW1lbnQgZm9yIHNvbWUgIm1ha2UiKS4KICAgUmVtb3ZlIGV4dHJhbmVvdXMgd2hpdGVzcGFjZSBuZWFyIHRoZSBlbmQgb2YgY29udGludWF0aW9uIGxpbmVzLgoKMjAwNC0wOS0yOSAyMzoxOCAgc2xpZgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGRvbid0IHRyeSB0byBpbnN0YWxsIHVjZC1zbm1wL2FnZW50X21vZHVsZV9jb25maWcuaCAobm8gc3VjaCBmaWxlKQoKMjAwNC0wOS0yOSAxODowMiAgYWxleF9iCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgc25wcmludGYgbm93IHVzZXMgc2l6ZW9mKG9iamVjdCkKCjIwMDQtMDktMjkgMTc6MzUgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIG5vdGUgaW1wb3J0YW5jZSBvZiBtYXRjaGluZyBNZXNzYWdlSWQgdmFsdWUgZm9yIFJlcG9ydEV2ZW50LgoKMjAwNC0wOS0yOSAxNTo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgUGF0Y2g6IDEwMzEwNDYgd2hpdGUgc3BhY2UgdGFiIGRhbWFnZQoKMjAwNC0wOS0yOSAxNTo0NSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBtYW4vc25tcC5jb25mLjUuZGVmLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywKICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBbbm8gbG9nIG1lc3NhZ2VdCgoyMDA0LTA5LTI5IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFBhdGNoOiBbIDEwMzQxNTYgXSBDbGFyaWZ5IE9wZW5TU0wgcmVxLiBpbiBzbm1wZC5jb25mLjUKCjIwMDQtMDktMjkgMTU6MzYgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzI6CgogICBVcGRhdGUgc2VydmljZSByZWdpc3RyYXRpb24gc2VjdGlvbiB0byBtZW50aW9uIHRoZSBuZWVkIGZvciBhIHJlYm9vdCB0bwogICBhbGxvdyBzeXN0ZW0gZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGJlIHVzZWQuCgoyMDA0LTA5LTI5IDE1OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIFsgMTAxMTMzMSBdIHZhY21fZGVzdHJveUFjY2Vzc0VudHJ5IHdhcyBkb3VibGUgY2hlY2tpbmcgYSB2YWx1ZSBhbmQgbWlzc25pZyBhbm90aGVyLgoKMjAwNC0wOS0yOSAxNTowMSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICByZW1vdmUgamFwYW4gbWlycm9yIGFzIHRoZSBtYWludGFpbmVyIHBhc3NlZCBhd2F5CgoyMDA0LTA5LTI5IDE0OjIzICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBmaXggYnVnICNJRm9yZ290IHRvIGZpeCBhZ2VudHggdXNhZ2Ugb24gd2luZG93cyB0byB1c2UgYSByZWFsIHNubXBkLmNvbmYgdG9rZW4gZm9yIHNvY2tldCBhZGRyZXNzIHN1cHBvcnQKCjIwMDQtMDktMjkgMTI6NTggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgcmVtb3ZlIG5vbi1wb3J0YWJsZSAoYnV0IG5pY2UgZ29hbCkgb3B0aW1pemVkIGhlYWRlciBpbnN0YWxsYXRpb24uICBCcmVha3Mgb24gZnJlZWJzZCBzeXN0ZW1zIHdoZXJlIGNtcCBleGl0cyB3aXRoIHN0YXR1cyAyCgoyMDA0LTA5LTI5IDEwOjM0ICBhbGV4X2IKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBBcHBseSBwYXRjaCBpbiBidWcgOTI2Mzg5IGJ5IE1pa2UgU2xpZmNhayB0byBmaXggV2luMzIgZXZlbnQgbG9nIGxvZ2dpbmcKICAgZm9yIHNubXB0cmFwZCBhbmQgc25tcGQuICBBZGRzIHNubXBfbG9nX3N5c2xvZ25hbWUoKSBmdW5jdGlvbiB3aGljaAogICBpcyBub3cgdXNlZCBieSBvcGVubG9nKCkuCgoyMDA0LTA5LTI5IDA3OjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSByZW1vdmUgeHh4IGNvbW1lbnRzIGluIGdlbmVyYXRlZCBjb2RlCiAgIC0gdXBkYXRlIGZvciByZW5hbWUgdGFibGVfY29udGFpbmVyIGZ1bmN0aW9ucwoKMjAwNC0wOS0yOSAwNzo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpLAogICAgIG1mZC10b3AubTJjOgoKICAgcmVtb3ZlIHh4eCBjb21tZW50cyBpbiBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wOS0yOSAwNzoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGNvbnZlcnQgbWlzc2luZyBkaXIgZXJyb3IgbXNnIHRvIGRlYnVnIG1zZwoKMjAwNC0wOS0yOCAxODo0NiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wOS0yOCAxODo0NSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgo6CgogICAtIGNoZWNrIGZvciBuZXQvaWZfYXJwLmggaGVhZGVyCiAgIC0gcnVuIGF1dG9oZWFkZXIgdG8gdXBkYXRlIG5ldC1zbm1wLWNvbmZpZy5oLmluCgoyMDA0LTA5LTI4IDE4OjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgYWRkIHZtbmV0IHRvIHR5cGUtYnktbmFtZSBkZXRlY3Rpb24KCjIwMDQtMDktMjggMTg6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6CgogICAtIGluY2x1ZGUgbmV0L2lmX2FycC5oIHNvIGFycCB0eXBlIGRldGVjdGlvbiBoYXMgYSBjaGFuY2UgdG8gd29yawogICAtIGlmZGVmIGFycGhyZCB0eXBlcyB0aGF0IGFyZW4ndCBjb21tb24gKHByZXR0eSBtdWNoIGFsbCBvZiB0aGVtKQogICAtIGRlYnVnIG1zZyBvbiB1bmtub3duIHR5cGUKCjIwMDQtMDktMjggMTU6MjQgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICB1c2UgdGhlIGNvcnJlY3QgaHRvbnMgZnVuY3Rpb24gdG8gYXNzaWduIHRvIGEgTkJPIG9iamVjdC4KCjIwMDQtMDktMjggMTM6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICAtIGZpcnN0IHVwZGF0ZSBpbiBhIHdoaWxlCiAgIC0gdXNlIGNyZWF0ZV9mZXdlcl9maWxlcyB0byBkZXRlcm1pbmUgY29ycmVjdCBmaWxlIG5hbWUKICAgLSBjaGcgaW5kZXggY29udGV4dCB0byBtaWIgY29udGV4dAogICAtIGNoZyB0YWJsZSBjb250ZXh0IHRvIHJvdyByZXF1ZXN0IGNvbnRleHQKICAgLSByZW1vdmUgYXNzdW1wdGlvbnMgYWJvdXQgZGF0YSBhY2Nlc3MgbWV0aG9kCiAgIC0gYWRkIGV4YW1wbGUgZnVuY3Rpb24gZmxvdyAody9zb3VyY2UgZmlsZSkgZm9yIHZhcmlvdXMgcmVxdWVzdCBzY2VuYXJpb3MKCjIwMDQtMDktMjggMDY6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBhZGQgZGVidWcKCjIwMDQtMDktMjggMDU6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jOgoKICAgZml4IGxlbmd0aCBmb3IgbWVtY3B5CgoyMDA0LTA5LTI3IDE3OjIzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBmaXggYSBmZXcgZGVidWcgbWVzc2FnZXMKICAgLSBsb2cgZXJyb3Igb24gdWtub3duIGNvbHVtbgogICAtIGRvbid0IHB1dCB1bmRvXyhzZXR1cHxjbGVhbnVwKSBpbiBpbnRlcmZhY2UgY29kZSBmb3IgZ2VuZXJhdGVkIHN0cnVjdHVyZXMKICAgLSBjYWxsIG5vZGUgdW5kb19zZXR1cCBmdW5jdGlvbnMgYWZ0ZXIgcm93IHVuZG9fc2V0dXAKCjIwMDQtMDktMjcgMTc6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgcmVtb3ZlIGEgYmxhbmsgbGluZSB0aGF0IHNudWNrIGluCgoyMDA0LTA5LTI3IDE3OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICBmaXggbG9naWMgdGVzdCAoZGVmdmFsIGlzIGEgc3RyaW5nLCBub3QgYSBmbGFnKQoKMjAwNC0wOS0yNyAxNzoxNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jOgoKICAgc2tpcCB1bmRvX2NsZWFudXAgaWYgdW5kb19zZXR1cCB3YXNuJ3QgcnVuCgoyMDA0LTA5LTI3IDE0OjM2ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgUmVtb3ZlIG1lbnRpb24gb2YgZml4aW5nIFNZTk9QU0lTIGluIHNubXBuZXRzdGF0LCBzbm1wZGVsdGEgYW5kIHNubXBkZgoKMjAwNC0wOS0yNyAxNDoyMSAgYWxleF9iCgogICAqIG1hbi86IHNubXBkZWx0YS4xLCBzbm1wZGYuMSwgc25tcG5ldHN0YXQuMToKCiAgIE1ha2UgY29tbWFuZHMgaW4gU1lOT1BTSVMgLyBERVNDUklQVElPTiBzZWN0aW9uIGJvbGQKCjIwMDQtMDktMjcgMTI6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBhbGxvdyBmb3IgZmluZXIgZ3JhaW5lZCBkZWJ1ZyBjb250cm9sCgoyMDA0LTA5LTI3IDEwOjQ0ICBhbGV4X2IKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBNZXJnZWQgbW9zdCBXcml0ZVRvRXZlbnRMb2cgYW5kIERpc3BsYXlFcnJvciBjYWxscyBpbnRvIFByb2Nlc3NFcnJvciBzbyBldmVudCwgY29uc29sZSAmIHBvcC11cCBtZXNzYWdlcyBhcmUgY29uc2lzdGVudC4gIENoYW5nZWQgYWxsIHN0cHJpbnRmJ3MgdG8gc25wcmludGZzLgoKMjAwNC0wOS0yNyAwNjowNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBmaXggdHlwbwoKMjAwNC0wOS0yNyAwNTo1MSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBkb24ndCBtb2RpZnkgdGFibGUgcmVxdWVzdCBkYXRhIGlmIG5vIG5leHQgY29sdW1uCgoyMDA0LTA5LTI2IDEzOjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICAtIGRlYnVnIHRva2VuIGNvbnNpc3RlbmN5CiAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSB2YWx1ZSBtYXAgZm9yIGluZGV4ZXMKCjIwMDQtMDktMjYgMTM6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmksCiAgICAgbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmksCiAgICAgbWZkLWRhdGEtYWNjZXNzLm0yYywgbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjCiwgbm9kZS1nZXQubTJpLCBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaSwKICAgICBwYXJlbnQtc2V0Lm0yaToKCiAgIC0gZGVidWcgdG9rZW4gY29uc2lzdGVuY3kKICAgLSBhZGQgbWlzc2luZyBkZWJ1Z3MKCjIwMDQtMDktMjYgMTM6MzAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaDoKCiAgIGZpeCBwYXRocwoKMjAwNC0wOS0yNCAxMjowMyAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIHdoZW4gY3JlYXRpbmcgYWRkcmVzcyBmcm9tIG9zdHJpbmcsIGNvbnZlcnQgcG9ydCB0byBuZXR3b3JrIGJ5dGUgb3JkZXIKCjIwMDQtMDktMjQgMDk6MTUgIHJzdG9yeQoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIC0gZml4IGNvbW1hcyBpbiBjb21tZW50ZWQgb3V0IGl0ZW1zCgoyMDA0LTA5LTI0IDA3OjU0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgTGludXggbWVtb3J5IGJ1ZmZlcnMgcGF0Y2ggZnJvbSBLYWogTmllbWkgKEZlZG9yYSAqaHJfc3RvcmFnZS1tYnVmLXYyLnBhdGNoKQoKMjAwNC0wOS0yNCAwNzo0NiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIGluaXQgaW5wdXQvb3V0cHV0IHZhcmlhYmxlIHNhX2VudGVycHJpc2VvaWRfbGVuIChGZWRvcmEgKnNtdXgtc3RhY2stdmFyLnBhdGNoKQoKMjAwNC0wOS0yNCAwNzozOCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgd2hlbiBjcmVhdGluZyBhZGRyZXNzIGZyb20gb3N0cmluZywgY29udmVydCBwb3J0IHRvIG5ldHdvcmsgYnl0ZSBvcmRlcgoKMjAwNC0wOS0yNCAwNjoxOCAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIHNubXBsaWIvc25tcGtzbS5jOgoKICAgcGF0Y2ggOTIzNTExIGFkZHMgc3VwcG9ydCBmb3Igbm9uLWhvc3Qgc2VydmljZSBwcmluY2lwYWwgZm9yIGtzbQoKMjAwNC0wOS0yNCAwNTo1MCAgc2xpZgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHBhdGNoIDEwMTAzOTUgcmVtb3ZlIGR1cGxpY2F0ZSBjaGVja3MgZm9yIHNucHJpbnRmIGFuZCBzdHJ0b3VsCiAgIHBhdGNoIDEwMDk3MTIgY2hlY2sgZm9yIGdldGhvc3RieW5hbWUgaW4gLWxzb2NrZXQgZm9yIFVuaXh3YXJlCgoyMDA0LTA5LTI0IDA1OjMwICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgcGF0Y2ggMTAzMjYwMiBzdXBwb3J0cyBMaW51eCBjcm9zcyBjb21waWxlciBmb3IgV2luZG93cyAodGFyZ2V0IG1pbmd3MzJtc3ZjKS4KCjIwMDQtMDktMjMgMTY6MTUgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgICAgbWlicy9MTS1TRU5TT1JTLU1JQi50eHQ6CgogICB1bmRvIHBhdGNoICMxMDI3NTIyIGFzIGl0IHZpb2xhdGVzIFJGQyAxOTAyIHNlY3Rpb24gMTAuMgogICB3aGVuIHRoZSBNSUIgb2JqZWN0cyB3ZXJlIGNoYW5nZWQuCgoyMDA0LTA5LTIzIDE0OjU3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwgc25tcGxpYi9zY2FwaS5jOgoKICAgbmV3IGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgcmVxdWlyZWQgbGVuZ3RoIG9mIGEgcHJpdmFjeSBrZXkKCjIwMDQtMDktMjMgMTM6MjQgIHJzdG9yeQoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jCjoKCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQogICAtIGZpeCBmdW5jdGlvbiBjYWxsCiAgIC0gZml4IHJlbmFtZWQgdmFyIG1pc3NlZCBpbiBtZXJnZQoKMjAwNC0wOS0yMyAwOToxOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywKICAgICBtaWJzL0xNLVNFTlNPUlMtTUlCLnR4dDoKCiAgIGFwcGx5IHBhdGNoICMxMDI3NTIyIHRvIHBlcm1pdCByZXBvcnRpbmcgbmVnYXRpdmUgc2Vuc29yIHZhbHVlcwoKMjAwNC0wOS0yMyAwOTowOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIGFwcGx5IG1vZGlmaWVkIHBhdGNoICMxMDI3NTIxIHRvIGZpeCBwcm9ibGVtcyB3aXRoIHNlbnNvciBjYXRlZ29yaWVzICh0eXBlcykuCgoyMDA0LTA5LTIzIDA4OjU4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgYXBwbHkgcGFydCBvZiBwYXRjaCAjOTYwMjY5IHRvIHJlbGVhc2UgbWVtb3J5IHJldHVybmVkIGZyb20gc2Vuc29yX2dldF9sYWJlbAoKMjAwNC0wOS0yMiAxNzo1MSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2h0bWxoZWxwLzogc25tcC5jb25mLndpbjMyLmh0bWwsCiAgICAgc25tcGQuY29uZi53aW4zMi5odG1sLCBzbm1wdHJhcGQuY29uZi53aW4zMi5odG1sOgoKICAgcGF0Y2ggMTAzMzA1MiBmcm9tIEFsZXggQnVyZ2VyOiBXaW4zMjogVXBkYXRlZCBodG1saGVscCBmaWxlcyBmb3IgKi5jb25mCgoyMDA0LTA5LTIyIDExOjIwICBzbGlmCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwgc25tcGxpYi93aW5zZXJ2aWNlLmMKOgoKICAgYXBwbHkgcGF0Y2ggIzEwMzA5MTMgdG8gc3VwcHJlc3Mgd2luZG93cyBwb3B1cHMgZm9yIHNlcnZpY2UgcmVnL3VucmVnIGVycm9ycy4KICAgZXJyb3JzIGFyZSBwcmludGVkIHRvIHN0ZGVyciBpZiAtcXVpZXQgcGFyYW1ldGVyIGlzIHN1cHBsaWVkLgoKMjAwNC0wOS0yMiAxMTowNiAgc2xpZgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwKICAgICBodG1saGVscC9JbnRyb2R1Y3Rpb24uaHRtbDoKCiAgIGFwcGx5IHBhdGNoIzEwMzkwMCBzbyB0aGF0IGludHJvIG1vcmUgY2xvc2VseSBtYXRjaGVzIGN1cnJlbnQgd2ViIHNpdGUgaG9tZSBwYWdlLgogICBhbHNvIGFkanVzdCBidWlsZCBpbnN0cnVjdGlvbnMgdG8gcmVtb3ZlIGV4YW1wbGUgYW5kIGRlbW8gTUlCcyBmcm9tIGJ1aWxkLgoKMjAwNC0wOS0yMiAxMTowMSAgc2xpZgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGFwcGx5IHBhdGNoIzEwMjg5NzYgY2hlY2sgdmFsdWVzIGZvciBsYWJlbCwgaWlkIGJlZm9yZSBkZXJlZmVyZW5jZS4KICAgRml4ZXMgcGVybCBtb2R1bGUgZmF1bHQsIGFzeW5jIGNhbGxiYWNrLiBTZWUgUmVkSGF0IGJ1ZyAjMTExMzE5CgoyMDA0LTA5LTIyIDA5OjM2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHVzbS4xLmRlZjoKCiAgIHBhdGNoIGZyb20gQWJoaWppdCBIYXlhdG5hZ2Fya2FyIHRvIHN1cHBvcnQga2V5IGNoYW5naW5nIGZvciBsb2NhbGl6ZWQtb25seSBrZXlzCgoyMDA0LTA5LTIyIDA3OjA2ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIHBhdGNoIDEwMjg5MjcgZnJvbSBBbmR5IFNtaXRoIGZpeGVzIGJ1ZyA5NzI3OTc7IHJlZ2lzdGVyaW5nIHdpbjMyCiAgIHNubXBkL3NubXB0cmFwZCBzZXJ2aWNlcyBpbmNsdWRlcyBwYXRocyB0byBjb25maWcgZmlsZSBhbmQgdG8gbG9nIGZpbGUuCgoyMDA0LTA5LTIyIDA3OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvOgogICAgIHVzbURIVXNlcktleVRhYmxlLmMsIHVzbURIVXNlcktleVRhYmxlLmgsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMsIHVzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmgKLCB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmgsIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIHVwZGF0ZSBmb3IgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDktMjEgMTk6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvOiBpcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlLmgsIGlwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmgKLCBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBmb3IgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDktMjEgMTk6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBkb24ndCBnZW5lcmF0ZSBtYWNyb3MgdGhhdCBhcmUgaW4gbWZkLmgKCjIwMDQtMDktMjEgMTk6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LWRlcGVuZGVuY2llcy5tMmk6CgogICBmaXggdHlwbwoKMjAwNC0wOS0yMSAxOTozMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWRlcGVuZGVuY2llcy5tMmk6CgogICBvbmx5IGdlbmVyYXRlIHJvdyBjcmVhdGlvbiBjaGVjayBpZiBtMmNfdGFibGVfcm93X2NyZWF0aW9uIHNldAoKMjAwNC0wOS0yMSAxOToyOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgLSBzZXQgdXAgbWFjcm8gdy9yZXF1aXJlZCBjb2x1bW5zIGZvciByb3cgY3JlYXRpb24KCjIwMDQtMDktMjEgMTY6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5jb2x1bW5fc3RvcmFnZS5jb25mOgoKICAgc3RvcmFnZSBmb3IgdGFibGUgaW5kZXhlcyBhbmQgY29sdW1ucwoKMjAwNC0wOS0yMSAxNjozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gbW92ZSByb3dfbWVyZ2UgYWZ0ZXIgdGFibGVfY29udGFpbmVyIGluIGhhbmRsZXIgY2hhaW4KCjIwMDQtMDktMjEgMTY6MzAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICAtIGluY3JlYXNlIGNvbnRleHQgZm9yIGRpZmYKICAgLSBpbmNyZWFzZSBmdXp6IGZvciBwYXRjaAoKMjAwNC0wOS0yMSAxNjoyOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIC0gYWxsb2NhdGUgdGFnIHN0b3JhZ2UgZWFybGllciwgd2l0aCBzcGFjZSBmb3IgbnVsbCB0ZXJtaW5hdGlvbgogICAtIGFsbG9jIHNwYWNlIGZvciBudWxsIHRlcm1pbmF0aW9uIG9mIG5hbWUKICAgLSByZXR1cm4gZXJyb3IgaWYgYWxsb2NhdGlvbnMgZmFpbAoKMjAwNC0wOS0yMSAxNjoyNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBzZXQgZW5kb2ZtaWJ2aWV3IHdoZW4gZ2V0bmV4dCBnb2VzIGJleW9uZCBsYXN0IGl0ZW0gaW4gdGFibGUKCjIwMDQtMDktMjEgMTY6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgbWFyayBwcm9jZXNzZWQgcmVxdWVzdHMgYXMgRE9ORSBzbyB0aGV5IGFyZW4ndCBtZXJnZWQKCjIwMDQtMDktMjEgMTQ6NTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBpZmRlZi9jb21tZW50IHNvbWUgZGVidWcgYXNzZXJ0IGNvZGUgdGhhdCBnZXRzIGhpdCBpbiByYXJlIGNhc2VzCgoyMDA0LTA5LTIxIDEyOjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIHBhdGNoIGZyb20gQWJoaWppdCBIYXlhdG5hZ2Fya2FyIHRvIHN1cHBvcnQga2V5IGNoYW5naW5nIGZvciBsb2NhbGl6ZWQtb25seSBrZXlzCgoyMDA0LTA5LTIxIDA2OjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIFBhdGNoIGZyb20gQWJoaWppdCBIYXlhdG5hIHRvIGZpeCBESCBrZXkgbGVuZ3RocwoKMjAwNC0wOS0yMSAwNjo0MyAgaGFyZGFrZXIKCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYwo6CgogICBjaGVjayBhIGZldyBwb2ludGVycyBiZWZvcmUgdXNpbmcgdGhlbQoKMjAwNC0wOS0xNyAwMToyMiAgbmJhCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENoZWNrIGZvciBhbmQgaW5jbHVkZSBycG0vcnBtZGIuaAoKMjAwNC0wOS0xNyAwMTowNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgVGhpcyB3YXMgbm90IGFsd2F5cyBhbiB1bnVzZWQgdmFyaWFibGUKCjIwMDQtMDktMTcgMDA6NTggIG5iYQoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIEZpeCBPcGVuU1NMIGNoZWNoIHRvIHdvcmsgb24gNjQtYml0IFNvbGFyaXMgY29tcGlsZSB3aXRoIDMyLWJpdCBPcGVuU1NMCiAgIGluc3RhbGxlZCAuLi4KCjIwMDQtMDktMTYgMTA6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbWliMmMuY29sdW1uX3N0b3JhZ2UuY29uZgoKMjAwNC0wOS0xNiAxMDozNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gZG9uJ3QgZnJlZSBOVUxMIHBvaW50ZXIKICAgLSB1cGNhc2UgZmlyc3Qgd29yZCBpbiBzZW50ZW5jZQogICAtIGV4cGFuZCBtb3JlIG9uIG5vQ3JlYXRpb24gZXhwbGFuaXRvcnkgbWVzc2FnZQogICAtIGFkZCBleHBsYW5pdG9yeSBtZXNzYWdlIGZvciBpbmNvbnNpc3RlbnROYW1lCgoyMDA0LTA5LTE2IDEwOjI3ICByc3RvcnkKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgbG9nIGVycm9yIG1lc3NhZ2UgaWYgYSBNSUIgZGlyZWN0b3J5IGNhbm5vdCBiZSBvcGVuZWQKCjIwMDQtMDktMTYgMDg6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy9NYWtlZmlsZSwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaCwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6CgogICBkYXRhIGFjY2VzcyBmb3IgdGNwLW1pYiB0Y3AgY29ubmVjdGlvbnMgKGlwdjQgb25seSkKCjIwMDQtMDktMTYgMDg6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgLSByZW1vdmUgdW51c2VkIHZhcnMKICAgLSBjcmVhdGUgZGVmYXVsdC1ub2RlLSR7bm9kZX0ubTJkIHcvY3VycmVudCB2YWx1ZXMsIGlmZiBkb2Vzbid0IGV4aXN0CgoyMDA0LTA5LTE2IDA4OjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaToKCiAgIGRvbid0IGdlbmVyYXRlIG1hcHBpbmcgY29kZSBpZiBza2lwIG1hcHBpbmcgc2V0CgoyMDA0LTA5LTE1IDE3OjIyICBzbGlmCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBmcmVlYnNkNS82IGhlYWRlcnMKCjIwMDQtMDktMTUgMTU6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgRml4IGFuIG9wcHMuICBEZWxldGUgdGhlIHVzbSBzdGF0ZSByZWYgYmVmb3JlIHRoZSBoYW5kbGluZyBvZiByZXBvcnRzIHNpbmNlIGl0IGRpZG4ndCBuZWVkIGl0IGJlZm9yZQoKMjAwNC0wOS0xNSAwOTo1NyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmg6CgogICBtYWtlIHRoZSBIYW5kbGVSZXBvcnQgY2FsbGJhY2sgdGFrZSBhIHRyYW5zcG9ydCBwb2ludGVyCgoyMDA0LTA5LTE1IDA5OjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIE1ha2UgdGhlIHVzbSBtb2R1bGUgaGFuZGxlIGl0cyBvd24gcmVwcm90cwoKMjAwNC0wOS0xNSAwOTo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZG9uJ3QgZnJlZSB0aGUgc3RhdGUgcmVmZXJlbmNlIHRpbGwgYWZ0ZXIgdGhlIGhhbmRsZV9yZXBvcnRfcGR1IGNhbGxiYWNrIGlzIGNhbGxlZC4gIEFsc28gcGFzcyBpbiB0aGUgdHJhbnNwb3J0IHRvIHRoZSBzYW1lIGhvb2suCgoyMDA0LTA5LTE1IDA5OjE5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIGRhcndpbjcgaGVhZGVyCgoyMDA0LTA5LTE1IDA3OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZGVwZW5kZW5jaWVzLm0yaToKCiAgIC0gY2hlY2sgY29sdW1uX3NldF9mbGFncyB0byBzZWUgaWYgcm93c3RhdHVzIHNldAogICAgIC0gb25seSBjaGVjayB0cmFuc2l0aW9uIGlmIHNldAogICAgIC0gY2hlY2sgcmVxdWlyZWQgcm93cyBvbiBjcmVhdGVBbmRHbwogICAgIC0gZG9uJ3QgYWxsb3cgZGVzdHJveSBpZiBvdGhlciBjb2x1bW5zIHNldAogICAtIGRvbid0IGFsbG93IGNyZWF0aW9uIGlmIHJvd3N0YXR1cyBub3Qgc2V0CgoyMDA0LTA5LTE1IDA3OjIxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogcGFyZW50LWRlcGVuZGVuY2llcy5tMmksCiAgICAgcGFyZW50LXNldC5tMmk6CgogICAtIHJlbmFtZSBzZXRfZmxhZ3MKICAgLSBhZGQgY29tbWVudCBhYm91dCByb3cgY3JlYXRlZCBmbGFnIGluIHJvd3JlcV9mbGFncwoKMjAwNC0wOS0xNSAwNzoyMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICBjb21tZW50IGdyYW1tYXIgdHdlYWsKCjIwMDQtMDktMTUgMDc6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtIGFkZCByb3dyZXFfZmxhZ3MKICAgLSByZW5hbWUgc2V0X2ZsYWdzIHRvIGNvbHVtbl9zZXRfZmxhZ3MKICAgLSB1c2UgY29udGV4dCBuYW1lIGZvciBleGFtcGxlIHVzZXIgY29udGV4dCBkYXRhIGxpc3QKCjIwMDQtMDktMTUgMDc6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIHVzZSBuZXcgbWFjcm8gdG8gdmFsaWRhdGUgU05NUCBlcnJvciBjb2RlcwogICAtIHVzZSBuZXcgcm93cmVxX2ZsYWdzIHRvIHNldC9jbGVhciBuZXcgcm93IGZsYWcKICAgLSBzZXQgcmVxdWVzdCBlcnJvciBvbiBpbnZhbGlkIG9pZCBmb3IgbmV3IHJvdwogICAtIGNsZWFyIHVuZG8gcG9pbnRlciBhZnRlciByZWxlYXNpbmcgaXQKICAgLSBzZXQgV1JPTkdMRU5HVEggZm9yIGJhZCB2YXJpYWJsZSBzaXplCgoyMDA0LTA5LTE1IDA3OjE0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBhZGQgaW5jbHVkZSB0byBxdWlldCBjb21waWxlcgoKMjAwNC0wOS0xNSAwNzoxMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaDoKCiAgIC0gYWRkIHByb3RvdHlwZSBmb3Igc2VfZmluZF9zbGlzdAogICAtIHR3ZWFrIGNvbW1lbnQKCjIwMDQtMDktMTUgMDc6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oOgoKICAgbmV3IG1hY3JvIHRvIHZhbGlkYXRlIFNOTVAgZXJyb3IgY29kZXMKCjIwMDQtMDktMTUgMDc6MTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oOgoKICAgLSBkZWZpbmUgZmxhZ3MgZm9yIHJvd3JlcV9mbGFncwoKMjAwNC0wOS0xNSAwNzoxMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS86IGlwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXBBZGRyZXNzVGFibGUuaCwgaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSByZW5hbWUgYXJjaCBmdW5jdGlvbnMKICAgLSBtb3ZlIHN0b3JhZ2UgdHlwZSBpbnRvIGRhdGEgYWNjZXNzIGludGVyZmFjZQogICAtIGFkZC91c2UgdW5kbyBzdG9yYWdlIGZvciBMYXN0Q2hhbmdlZAogICAtIGFkZCBzdXBwb3J0IGZvciBjcmVhdGlvbi9kZWxldGlvbiBvZiBpcGFkZHJlc3NlcyB2aWEgUm93U3RhdHVzCiAgIC0gYWRkIGZsYWdzIGZvciByZXF1aXJlZCBjb2x1bW5zCgoyMDA0LTA5LTE1IDA2OjU5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSByZW5hbWUgYXJjaCBmdW5jdGlvbnMKCjIwMDQtMDktMTUgMDY6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtIHJlbmFtZSBhcmNoIGZ1bmN0aW9ucwogICAtIHR3ZWFrIGxvZyBtZXNzYWdlLCBjb21tZW50cwoKMjAwNC0wOS0xNSAwNjo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaDoKCiAgIC0gcmVuYW1lIGFyY2ggZnVuY3Rpb25zCiAgIC0gcmVtb3ZlIGFyY2ggZmxhZ3MsIGFkZCBkYXRhIGxpc3QgZm9yIGFyY2ggZGF0YQogICAgIC0gYWRkICYgY2FsbCBhcmNoIGZ1bmN0aW9ucyBvbiBjcmVhdGUsIGNvcHksIGRlbGV0ZSBpcGFkZHJlc3MgZW50cnkKICAgLSBhZGQgcHJvdG90eXBlIHRvIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIC0gbmV3IGlwYWRkcmVzcyBzZXQgKGNyZWF0ZS9kZWxldGUgaXAgYWRkcmVzcyBhbGlhc2VzKQogICAtIGNoYW5nZSBtYWNybyBuYW1lCiAgIC0gYWRkIGZsYWcgZm9yIGFsaWFzZXMKCjIwMDQtMDktMTUgMDY6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIHJlbmFtZSBhcmNoIGZ1bmN0aW9ucwogICAtIGFkZCBwcm90b3R5cGUgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgLSBuZXcgZnVuY3Rpb24gdG8gZmluZCBpbnRlcmZhY2UgbmFtZSBmcm9tIGlmSW5kZXgKCjIwMDQtMDktMTQgMTU6MDEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgVXBkYXRlIHRvIG1vZHVsYXJpemUgYSBiaXQgbW9yZSB0aGUgc2VjdXJpdHkgbW9kZWwgaW5mcmFzdHJ1Y3R1cmU6IHJlcG9ydCBoYW5kbGluZyBvdXRzb3VyY2VkIHRvIHRoZSBzZWNtb2QKCjIwMDQtMDktMTMgMTk6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdGFudHMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5oCiwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9lbnVtcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfb2lkcy5oCiwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yb3dfbWVyZ2UuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NjYWxhci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2NhbGFyX2dyb3VwLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBzdGF0cy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfaXRlcmF0b3IuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2xpc3Rfc3NsbC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbnVsbC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mYWN0b3J5LmgsCiAgICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mLAogICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWhlYWRlci1ib3R0b20ubTJpLAogICAgIHNubXBsaWIvbXRfc3VwcG9ydC5jOgoKICAgLSBwYXRjaCBmcm9tIE1hZ251cyBGcm9tcmVpZGUgdG8gcmVtb3ZlICc7JyBmcm9tIGV4dGVybiAnQycgaGVhZGVyIGNvbnRydWN0cwogICAgIChhbGxvdyBnKysgMy40IGFuZCBhYm92ZSB0byBjb21waWxlIG5ldC1zbm1wKQoKMjAwNC0wOS0xMyAwMzozNCAgc2xpZgoKICAgKiB0ZXN0aW5nLzogZXZhbF90b29scy5zaCwgdGVzdHMvU3YzY29uZmlnOgoKICAgd2hlbiBtYXRjaGluZyBDUFAgZGVmaW5lcywgbWF0Y2ggdGhlIG9uZXMgd2hpY2ggYmVnaW4gdGhlIHNvdXJjZSBoZWFkZXIgbGluZS4KCjIwMDQtMDktMTMgMDM6MjAgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsCiAgICAgd2luMzIvZGlzdC9SRUFETUUudHh0LCB3aW4zMi9kaXN0L2h0bWxoZWxwL05ldC1TTk1QLmhoYwosIHdpbjMyL2Rpc3QvaHRtbGhlbHAvTmV0LVNOTVAuaGhwLAogICAgIHdpbjMyL2Rpc3Qvc2NyaXB0cy9wb2RkaXIyaHRtbCwKICAgICB3aW4zMi9kaXN0L3NjcmlwdHMvcmVhZG1lMmh0bWw6CgogICBhcHBseSBwYXRjaCAjMTAyNjY5IFdpbjMyIDUuMiBidWlsZCB1cGRhdGVzYAoKMjAwNC0wOS0xMiAyMjoyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmM6CgogICAtIGluY2x1ZGUgaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzCiAgIC0gaW5pdGlhbGl6ZSBkZWZhdWx0cyBwZXIgdGhlIG1pYgoKMjAwNC0wOS0xMiAyMjoyMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICAtIGNoYW5nZSBjb21tZW50CiAgIC0gYWRkIHN0b3JhZ2UgdHlwZQogICAtIGRlZmluZSBmbGFncyBmb3Igc2V0IHN1cHBvcnQKCjIwMDQtMDktMTIgMjI6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgZml4IGRhdGEgbG9va3VwIHdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIHZhcmJpbmRzCgoyMDA0LTA5LTEyIDIyOjE4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICAtIGZpeCBza2lwcGluZyBvZiB1bi1yZWdpc3RlcmVkIG1vZGVzCiAgIC0gcmVtb3ZlIHJlcXVlc3QgbmV4dF9tb2RlIHN0dWZmIChuZXZlciB1c2VkKQogICAtIHNob3J0ZW4gbXV4IGRlYnVnIHRva2VuCgoyMDA0LTA5LTEwIDE1OjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jCjoKCiAgIGRvbid0IG1hc2sgcmV0dXJuIGNvZGVzIGluIGludGVybmFsIGZ1bmN0aW9ucwoKMjAwNC0wOS0xMCAxNToxMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oOgoKICAgYWRkIHVuZG8gc3RvcmFnZSBmb3Igcm93c3RhdHVzIGFuZCBzdG9yYWdlIHR5cGUKCjIwMDQtMDktMTAgMTQ6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaDoKCiAgIC0gbmV3IGZ1bmN0aW9uIG5ldHNubXBfYmFieV9zdGVwX21vZGUyZmxhZwogICAtIHVzZSBuZXcgZnVuY3Rpb24sIHNvIHNraXBwaW5nIHVucmVnaXN0ZXJlZCBtb2RlcyB3b3JrcwoKMjAwNC0wOS0xMCAxNDo0MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtZGVwZW5kZW5jaWVzLm0yaToKCiAgIC0gdXNlIG1mZCBzdWNjZSBtYWNybyBpbnN0ZWFkIG9mIHNubXAgbWFjcm8KICAgLSBpZiBjaGVjayByZXR1cm5zIGFuIGVycm9yLCByZXR1cm4gaW1tZWRpYXRlbHkKCjIwMDQtMDktMTAgMTQ6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVN0b3JhZ2VUeXBlLWRlcGVuZGVuY2llcy5tMmk6CgogICB1c2UgY29ycmVjdCBmdW5jdGlvbiBuYW1lCgoyMDA0LTA5LTEwIDEzOjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jCjoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gYWRkIGRlZmluZSB0byBhbGxvdyByb3ctY3JlYXRpb24KCjIwMDQtMDktMTAgMTI6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvOiBpcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlLmgsIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wOS0xMCAwNTozMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDaGVjayB0aGF0IGEgdmFyaWFibGUgY29ycmVzcG9uZHMgdG8gYSB2YWxpZCBNSUIgb2JqZWN0LAogICBiZWZvcmUgdHJ5aW5nIHRvIGxvb2sgYXQgY2hhcmFjdGVyaXN0aWNzIG9mIHRoaXMgb2JqZWN0LgogICAoRml4ZXMgYSBwcm9ibGVtIHdpdGggdGhlIE1GRCBzY3JpcHRzLCB3aGljaCB1c2UgdGhlIG1pYjJjCiAgICB2YXJpYWJsZSBleHBhbnNpb25zIGZvciBub24tTUlCLW9iamVjdCBuYW1lcyBhcyB3ZWxsKS4KCjIwMDQtMDktMDkgMTY6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGZpeCBsb2cgbXNnIHR5cG8KICAgLSBzZXQgcmVxdWVzdCBlcnJvcnMgaW5zdGVhZCBvZiByZXR1cm5pbmcgZXJyb3IgZnJvbSBoYW5kbGVyCiAgIC0gZGVidWcgbXNncyBmb3IgcmVxdWVzdCBlcnJvcnMKCjIwMDQtMDktMDkgMTY6MTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS12YXJiaW5kLXZhbGlkYXRlLm0yaToKCiAgIGFkZCBtaXNzaW5nIHF1b3RlCgoyMDA0LTA5LTA5IDA5OjE3ICBkdHMxMgoKICAgKiBORVdTOgoKICAgTWVudGlvbiBuZXcgTkVULVNOTVAtRVhURU5ELU1JQiBzdXBwb3J0CiAgIChwbHVzIG1pbm9yIGdyYW1tYXIgYW5kIGZvcm1hdHRpbmcgdHdlYWtzKQoKMjAwNC0wOS0wOSAwNzowMSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBhcHBseSBwYXRjaCAjMTAyNDM1MiBDaGFuZ2VzIFdpbmRvd3MgaW5zdGFsbGVyIHRvIGFsbG93IHNubXB0cmFwZCBhcyBzZXJ2aWNlLgoKMjAwNC0wOS0wOSAwNjo0OSAgc2xpZgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICBmb3JtYXR0aW5nIHBhdGNoICMxMDI0NzQ2IChvbmUtbGluZXIpIGZyb20gQWxleCBCdXJnZXIuCgoyMDA0LTA5LTA5IDAzOjQzICBzbGlmCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIHNubXBsaWIvY29udGFpbmVyLmMsCiAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICBmaXggYnVnIzEwMjUwMTQgLSByZW1vdmUgdW51c2VkcywgcXVlbGwgc2lnbmVkL3Vuc2lnbmVkIHdhcm5pbmdzIGluIDUuMi5wcmUxCgoyMDA0LTA5LTA5IDAzOjMxICBzbGlmCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBkZWNsYXJlIGV4dGVybmFsIGZ1bmN0aW9uIHdpdGhpbiBzY29wZSB1c2VkLgoKMjAwNC0wOS0wOSAwMzoyMiAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgZml4IGJ1ZyMxMDI1MDA0IGFwcGx5IG1pbm9yIGNvbW1lbnQgYW5kIGdyYW1tYXIgZml4ZXMgdG8gc25tcGQsc25tcHRyYXBkCgoyMDA0LTA5LTA4IDIwOjUyICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBwYXJ0aWFsIGZpeCBidWcgIzkwOTIyMiAtIG1vdmUgd2luMzIgY2hhbmdlcyBpbnNpZGUgIF9kaXNhYmxlX3N5c2xvZ3tlbnRyeX0sCiAgIGRvbnQgd3JpdGUgc3RhbmRhcmQgZXJyb3Igb24gZmFpbHVyZSB0byBjbG9zZSBldmVudCBsb2cgZnJvbSBkaXNhYmxlX3N5c2xvZy4KCjIwMDQtMDktMDggMTg6NDMgIHNsaWYKCiAgICogd2luMzIvOiBhZ2VudF9tb2R1bGVfZG90X2NvbmYuaCwgYWdlbnRfbW9kdWxlX2luY2x1ZGVzLmgKLCBhZ2VudF9tb2R1bGVfaW5pdHMuaCwgYnVpbGQucGwsCiAgICAgbWliX21vZHVsZV9pbmNsdWRlcy5oLCBtaWJfbW9kdWxlX2luaXRzLmgsCiAgICAgbWliX21vZHVsZV9zaHV0ZG93bi5oLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KLCBuZXQtc25tcC9hZ2VudC9hZ2VudF9tb2R1bGVfY29uZmlnLmgsCiAgICAgbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwgbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4KLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgICAgbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sCiAgICAgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgQXBwbHkgbW9kcyBpbiBwYXRjaCAjMTAyNDgxMCBpbiBvcmRlciB0byBidWlsZCA1LjIucHJlMSBvbiB3aW4zMiBNU1ZDK01pbkdXLgoKMjAwNC0wOS0wOCAwODozOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oOgoKICAgZml4IGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5IG1hY3JvIG5hbWUKCjIwMDQtMDktMDcgMjA6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIG1hcCBkYXRhIGFjY2VzcyBpZiBhZGRyZXNzIHR5cGUgdG8gbWliIHR5cGUgaW4gaW5kZXgKCjIwMDQtMDktMDcgMjA6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBwYXNzIGNvcnJlY3QgY29udGFpbmVyIHRvIHVwZGF0ZSBjaGVjayBmdW5jdGlvbnNvIG1pc3NpbmcgYWRkcnMgYXJlIHJlbW92ZWQKCjIwMDQtMDktMDcgMjA6NDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBudWxsIHJvd3JlcV9jdHggaXMgdmFsaWQgaW4gdW5kb19jbGVhbnVwOyBzaW1wbHkgcmV0dXJuIHN1Y2Nlc3MKCjIwMDQtMDktMDcgMjA6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICAtIGZpeCBpZkluZGV4IGxvb2t1cCBmb3IgaW50ZXJmYWNlIGFsaWFzZXMKICAgLSBhZGQgZGVidWcgbWVzc2FnZQogICAtIG5ldyBmdW5jdGlvbiB0byBzZXQgaXBhZGRyZXNzCgoyMDA0LTA5LTA3IDIwOjM1ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgYWRkIHNlIHBhaXJzIGZvciBiYWJ5IHN0ZXAgbW9kZXMKCjIwMDQtMDktMDcgMjA6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYzoKCiAgIC0ga2VlcCByZWdpc3RlcmVkIG1vZGVzIHdpdGggbWliIGhhbmRsZXIKICAgLSBza2lwIGxvd2VyIGhhbmRsZXJzIGZvciBtb2RlcyB0aGF0IGhhbmRsZXIgZGlkbnQgcmVnaXN0ZXIgZm9yCiAgIC0gc2tpcCB1bmRvIGNvbW1pdCBpZiBoYW5kbGVyIHdhc250IGNhbGxlZCBmb3IgY29tbWl0CiAgIC0gZG9udCBicmVhayBvbiByZXF1ZXN0IGVycm9yIGluIGZpbmFsIHN0ZXBzIChlcXVpdmFsZW50IG9mIGNvbW1pdC91bmRvL2ZyZWUpCiAgIC0gbW9yZSBkZWJ1ZyBtc2dzCgoyMDA0LTA5LTA3IDIwOjI1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmg6CgogICAtIHN5bmMgbmFtZXMgb2YgQkFCWV9TVEVQXyogd2l0aCBNT0RFX0JTVEVQXyoKICAgLSBkZWZpbmUgc3RydWN0dXJlIGZvciBiYWJ5IHN0ZXBzIGhhbmRsZXIgbW9kZSB0cmFja2luZwoKMjAwNC0wOS0wNyAyMDoxOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgYWRkIGRlYnVnIG1zZwoKMjAwNC0wOS0wNiAyMDoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgLSBhZGQgcGVyc2lzdGVuY2UgZm9yIGlmQWxpYXMsIGlmTGlua1VwRG93blRyYXBFbmFibGUKICAgLSBkb24ndCBhbGxvdyBzZXQgb2YgcHJvbWlzY3VvdXMgbW9kZSwgc2luY2UgaXQncyBub3QgaW1wbGVtZW50ZWQKCjIwMDQtMDktMDYgMTk6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIGZpeCBmaXhlZCBzaXplIGNoZWNrCiAgIC0gYWRkIGFjY2VzcyB0byBjb250YWluZXIgcG9pbnRlcgoKMjAwNC0wOS0wNiAxOToyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXZhcmJpbmQtdmFsaWRhdGUubTJpOgoKICAgZG9uJ3QgZ2VuZXJhdGUgZml4ZWQgc2l6ZSBjaGVjayBmb3Igb2N0ZXQgc3RyaW5ncwoKMjAwNC0wOS0wNiAxOTowMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICBzZXQgdXAgdmFycyBmb3IgbGVuZ3RocyB0byBiZSBjb3BpZWQgY29ycmVjdGx5CgoyMDA0LTA5LTA1IDE4OjU3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50Lmg6CgogICByZW1vdmUgZXh0ZXJuIG9mIG5vbi1leGlzdGFudCB2YXIKCjIwMDQtMDktMDIgMDc6MjIgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgZG9udCBpbmNsdWRlIGJ5dGVvcmRlci5oIC0tIGF2b2lkcyB3YXJuaW5nIHNlZW4gb24gUmVkSGF0CgoyMDA0LTA5LTAyIDA2OjU4ICBkdHMxMgoKICAgKiBORVdTOgoKICAgTWVudGlvbiB0aGUgb3RoZXIgbmV3IG1pYjJjIGNvbmZpZyB0ZW1wbGF0ZXMsIGFuZCBwcm92aWRlIGEgbGl0dGxlCiAgIG1vcmUgZXhwbGFuYXRpb24uICAoUGx1cyBmaXhpbmcgYSBjb3VwbGUgb2YgdHlwb3MpCgoyMDA0LTA5LTAyIDA2OjUyICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIGZpeCAjOTk1NDg5IGJ5IG9idGFpbmluZyBzeXNEZXNjciBhbmQgc3lzQ29udGFjdCB0aHJvdWdoIHdpbmRvd3MgbmF0aXZlIG1ldGhvZHMuCgoyMDA0LTA5LTAyIDAwOjU5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgLSByZXF1aXJlIGFsbCBpZi1taWIgaW50ZXJmYWNlIGZvciBsaW51eAoKMjAwNC0wOS0wMiAwMDowNCAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowNCAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAzICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAzICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAzICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDIgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMiAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDEgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDEgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDAgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDAgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMSAyMzo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICByZXF1aXJlIGV4cGxpY2l0IGNvbmZpZ3VyZSBmbGFnIGZvciBleHBlcmltZW50YWwgbWZkIHJld3JpdGUgbW9kdWxlcwoKMjAwNC0wOS0wMSAyMzo1MSAgcnN0b3J5CgogICAqIE5FV1M6CgogICAtIG1lcmdlIDUuMS4yIG5ld3MKICAgLSBhZGQgb3RoZXIgdGlkYml0cyBnbGVhbmVkIGZyb20gQ2hhbmdlbG9nCgoyMDA0LTA5LTAxIDIzOjUxICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciA1LjIucHJlMQoKMjAwNC0wOS0wMSAyMjo1NyAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfdGFibGUuMywKICAgICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF93YXRjaGVyLjM6CgogICB1cGRhdGUgbWFuIHBhZ2VzCgoyMDA0LTA5LTAxIDIyOjUxICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG5ldHNubXBfYWdlbnRfdHJhcC4zLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9zbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2FsYXJtLjMsIG5ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBuZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbmV0c25tcF92YXJpYWJsZV9saXN0LjM6CgogICBjaGVjayBpbiBuZXcgbWFuIHBhZ2VzCgoyMDA0LTA5LTAxIDIyOjM3ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQKLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwKICAgICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA0LTA5LTAxIDIyOjE2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHVwZGF0ZSBhZnRlciBydW5uaW5nIGF1dG9oZWFkZXIKCjIwMDQtMDktMDEgMjI6MTQgIHJzdG9yeQoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHVwZGF0ZSBmb3IgNS4yLnByZTEKCjIwMDQtMDktMDEgMjI6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGlmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgKLCBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYywKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosIGlwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywKICAgICBpcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywKICAgICBpcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gY29udmVydCBDKysgc3R5bGUgY29tbWVudHMgdG8gQyBzdHlsZSBjb21tZW50cyAob3IgcmVtb3ZlIHRoZW0pCgoyMDA0LTA5LTAxIDIyOjA1ICByc3RvcnkKCiAgICogUkVBRE1FLm9zWDoKCiAgIHJlYWRtZSBmb3IgTWFjIE9TIFgKCjIwMDQtMDktMDEgMjI6MDQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgY29uZmlndXJlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTA5LTAxIDIyOjAzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgdXBkYXRlIHZlcnNpb24gdG8gNS4yLnByZTEKCjIwMDQtMDktMDEgMjE6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBleHByZXNzaW9uL2dudWMuaCwgZXhwcmVzc2lvbi9pbjYuaAosIGV4cHJlc3Npb24vaXBfdmFyLmgsIGV4cHJlc3Npb24vaXB2Ni5oLAogICAgIGV4cHJlc3Npb24vdWRwX3Zhci5oLCBwaW5nL2dudWMuaCwgcGluZy9pbjYuaCwKICAgICBwaW5nL2lwX3Zhci5oLCBwaW5nL2lwdjYuaCwgcGluZy91ZHBfdmFyLmgsCiAgICAgdHJhY2Vyb3V0ZS9nbnVjLmgsIHRyYWNlcm91dGUvaW42LmgsCiAgICAgdHJhY2Vyb3V0ZS9pcF92YXIuaCwgdHJhY2Vyb3V0ZS9pcHY2LmgsCiAgICAgdHJhY2Vyb3V0ZS91ZHBfdmFyLmgsIG5zbG9va3VwL2dudWMuaCwgbnNsb29rdXAvaW42LmgKLCBuc2xvb2t1cC9pcF92YXIuaCwgbnNsb29rdXAvaXB2Ni5oLAogICAgIG5zbG9va3VwL3VkcF92YXIuaDoKCiAgIHJlbW92ZSBHUEwgbGljZW5zZSBjb2RlLCBwbHVzIHNvbWUgZ3VpbHR5LWJ5LWFzc29jaWF0aW9uIGZpbGVzCgoyMDA0LTA5LTAxIDIwOjE0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDktMDEgMjA6MTMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBvcGVuYnNkIG5lZWRzIHN5cy90eXBlcyBiZWZvcmUgdGNwZC5oCgoyMDA0LTA5LTAxIDE5OjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICB0d2VhayBjb21tZW50IGFuZCBsb2cgbWVzc2FnZSBmb3JtYXQKCjIwMDQtMDktMDEgMTk6MzIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIC0gd2hpdGVzcGFjZSBjaGFuZ2UgdG8gYWRkIHJlYWwgbG9nIG1lc3NhZ2UgKGxhc3QgY2hlY2tpbmcgaGFkIHdyb25nIGxvZyBtZXNzYWdlKQogICAtIGFkZCBwb3J0IG51bWJlciB0byBkZWJ1ZyBzdGF0ZW1lbnQKCjIwMDQtMDktMDEgMTk6MjggIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIC0gaW5jcmVhc2UgbWF4X3NlbnNvcnMKICAgLSBicmVhayB3aGVuIG51bWJlciBvZiBzZW5zb3JzIGV4Y2VlZHMgbWF4X3NlbnNvcnMKICAgLSBhZGQgZGVidWcKCjIwMDQtMDktMDEgMTk6MjUgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlndXJlLmluCgoyMDA0LTA5LTAxIDE5OjI0ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYmFpbCBpZiBsbV9zZW5zb3JzIGhlYWRlci9saWIgY2hlY2tzIGZhaWwKCjIwMDQtMDktMDEgMTc6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jOgoKICAgLSBkb24ndCByZXR1cm4gaGFuZGxlciBpZiBjYW4ndCBhbGxvY2F0ZSBzZ3JvdXAKICAgLSB1c2UgbG9jYWwgdmFyIGZvciByb290b2lkIG1hY2hpbmF0aW9ucywgaW5zdGVhZCBvZiByZWdpbmZvIHJvb3RvaWQKICAgICAocmVhbGxvYyBvZiBleHRyYSBzdWJvaWRzIGRvZXNuJ3Qgc3Vydml2ZSByZWdpc3RyYXRpb24sIHdoZW4gc3VidHJlZV9zcGxpdAogICAgIGNhbGxzIG5ldHNubXBfc3VidHJlZV9kZWVwY29weSgpKSBbc2NvcmUgb25lIGZvciBsaWJlZmVuY2VdCgoyMDA0LTA5LTAxIDE3OjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgb25seSBjb25maWdfcmVxdWlyZSBpZi1taWIgaW50ZXJmYWNlX2NvbW1vbiwgbm90IGFsbCBvZiBpZi1taWIgaW50ZXJmYWNlCgoyMDA0LTA5LTAxIDE3OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIHJlbW92ZSBjb25maWdfcmVxdWlyZSBmb3IgcGxhdGZvcm1zIHdoaWNoIGhhdmVuJ3QgYmVlbiBwb3J0ZWQgeWV0CgoyMDA0LTA5LTAxIDE3OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlLmgsCiAgICAgaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgaWZkZWYgb3V0IGFyY2ggc3BlY2lmaWMgZnVuY3Rpb25zIGlmIGFyY2ggbm90IHN1cHBvcnRlZAoKMjAwNC0wOS0wMSAxNzowMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICBvbmx5IHJlcXVpcmUgbmV3IG1mZCBtb2R1bGVzIGZvciBsaW51eCwgdW50aWwgb3RoZXIgcGxhdGZvcm1zIGFyZSBwb3J0ZWQKCjIwMDQtMDktMDEgMTU6MjcgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgaW5jbHVkZSBhc20vdHlwZXMuaCBzbyB0aGF0IGFnZW50IHdpbGwgYnVpbGQgb24gTWFuZHJha2UgZmxhdm9yZWQgTGludXguCgoyMDA0LTA5LTAxIDE0OjUxICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgLSByZW1vdmUgQysrIHN0eWxlIGNvbW1lbnQKICAgLSBkb2N1bWVudCB1c2Ugb2Ygc2ltcGxpc3RpYyBfbG9jawoKMjAwNC0wOS0wMSAxNDozMCAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNi5oOgoKICAgcHJvdmlkZSBoZWFkZXIgZm9yIEZyZWVCU0QgNi4gZml4ZXMgYnVnIzEwMTgyMDkKCjIwMDQtMDktMDEgMTQ6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICAtIG9ubHkgbG9nIG9wZW4gZXJyIG9uY2UgKHVudGlsIHN1Y2Nlc3MsIHRoZW4gcmVzZXQgZmxhZykKCjIwMDQtMDktMDEgMTQ6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86CiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIGNoZWNrIGZvciBOVUxMIHBvaW50ZXIgZnJvbSBkYXRhIGFjY2VzcyByb3V0aW5lcywgJiByZXR1cm4gcmVzb3VyY2UgdW5hdmFpbGFibGUKCjIwMDQtMDktMDEgMTE6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jOgoKICAgLSBvbmx5IGxvZyBmaWxlIG9wZW4gZXJyb3Igb25jZSAodW50aWwgYSBzdWNjZXNzZnVsIG9wZW4pCiAgIC0gcmV0dXJuIG5vIGVycm9yIGlmIGNvdWxkbid0IG9wZW4gaXB2Niwgc28gd2UgY2FuIGNvbnRpbnVlIHcvaXB2NAoKMjAwNC0wOS0wMSAxMDo0NiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIGVsaW1pbmF0ZSBkb3VibGUgZnJlZSBvbiBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uCiAgIC0gZml4IHBvdGVudGlhbCBtZW1vcnkgbGVha3Mgb24gZmFpbGVkIHJlZ2lzdHJhdGlvbgogICAgIChpLmUuIGFsd2F5cyBmcmVlIHJlZ2luZm8gaWYgcmVnaXN0cmF0aW9uIGZhaWxzKQoKMjAwNC0wOS0wMSAxMDo0NCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgZWxpbWluYXRlIGRvdWJsZSBmcmVlIG9uIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24KCjIwMDQtMDktMDEgMDg6MjUgIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgQXR0ZW1wdCB0byBlbnN1cmUgdGhhdCAnaW50MzJfdCcgYW5kIChpZiBhcHByb3ByaWF0ZSkgJ2ludDY0X3QnCiAgIHR5cGVzIChwbHVzIHVuc2lnbmVkIGVxdWl2YWxlbnRzKSBhcmUgYXZhaWxhYmxlLgoKMjAwNC0wOS0wMSAwNjoxOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgUmVtb3ZlIHVuYmFsYW5jZWQgIkBlbmRAIiBzdGF0ZW1lbnRzLgoKMjAwNC0wOS0wMSAwNTo1NyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIFByb3ZpZGUgYWRkaXRpb25hbCBvcHRpb25zIGZvciB0YWJsZSBjb25maWcgdGVtcGxhdGVzLCBhbmQKICAgZGVzY3JpYmUgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlbSBhIGxpdHRsZSBtb3JlIGZ1bGx5LgoKMjAwNC0wOS0wMSAwNTo1NCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZTIuY29uZjoKCiAgIEZpeCBtaW5vciB0eXBvCgoyMDA0LTA4LTMxIDIxOjM2ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIC0gdXBkYXRlIGxpYnRvb2wgdmVyc2lvbiBpbmZvcm1hdGlvbgogICAtIGFkZCBub3RlIG9uIHJ1bm5pbmcgY3ZzMmNsIG9uIGEgYnJhbmNoCgoyMDA0LTA4LTMxIDIxOjI2ICByc3RvcnkKCiAgICogbWFuL21pYjJjLjEuZGVmLCBsb2NhbC9taWIyYy5jb25mOgoKICAgYWRkIGluZm9ybWF0aW9uIGFib3V0IG1pYjJjLm1mZC5jb25mCgoyMDA0LTA4LTMxIDIwOjA0ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgLSB1cGRhdGUgY29tbWVudHMgb24gbGlidG9vbCB2ZXJzaW9uaW5nCiAgIC0gdXBkYXRlIGZvciA1LjIKCjIwMDQtMDgtMzEgMTY6NDMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgZml4IGZsb2F0IGNhbGMgaW4gdmFyX2V4dGVuc2libGVfZGlzayBwZXIgSGFyYWxkIFN0cmHfYmVyZ2VyIDxoc0BzeXNsb2cuYXQ+CgoyMDA0LTA4LTMxIDE0OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgYWdlbnRfbW9kdWxlX2NvbmZpZy5oCgoyMDA0LTA4LTMxIDAzOjI4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBEZWNsYXJlIGhhbmRsZXJzIGFzIFJXUklURS9ST05MWSBhcyBhcHByb3ByaWF0ZS4KICAgU3VwcHJlc3MgU0VUIGhhbmRsaW5nIGNvZGUgZm9yIHJlYWQtb25seSB0YWJsZXMuCgoyMDA0LTA4LTMxIDAzOjI1ICBkdHMxMgoKICAgKiBsb2NhbC86IHNubXBjb25mLCBtaWIyYy1jb25mLmQvZGV0YWlscy1ub2RlLm0yaSwKICAgICBtaWIyYy1jb25mLmQvZGV0YWlscy10YWJsZS5tMmksCiAgICAgbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpLAogICAgIG1pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpLAogICAgIG1pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIERhdmUncyBiZWluZyBwZXJuaWNraXR5IGFib3V0IGdyYW1tYXIgYWdhaW4uCiAgICJJdCdzIiBpcyBzaG9ydCBmb3IgIml0IGlzIi4KICAgIkJlbG9uZ2luZyB0byBpdCIgaXMgIml0cyIgLSBubyBhcG9zdHJvcGhlLgoKMjAwNC0wOC0zMSAwMzoyMyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIEltcHJvdmUgZXJyb3IgaGFuZGxpbmcgZm9yIGludmFsaWQgU0VUIHJlcXVlc3RzLgoKMjAwNC0wOC0zMSAwMzoyMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIFN1cHByZXNzIFNFVCBoYW5kbGluZyBjb2RlIGZvciByZWFkLW9ubHkgdGFibGVzLgoKMjAwNC0wOC0zMSAwMzoxOCAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYKOgoKICAgT29wcyEgIG1pYjJjIGNvbmZpZyB0eXBvCgoyMDA0LTA4LTMxIDAzOjE2ICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLml0ZXJhdGUuY29uZiwgbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZgo6CgogICBEZWNsYXJlIGhhbmRsZXJzIGFzIFJXUklURS9ST05MWSBhcyBhcHByb3ByaWF0ZS4KCjIwMDQtMDgtMzEgMDM6MTEgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUyLmNvbmY6CgogICBBbHRlcm5hdGl2ZSBpdGVyYXRvciB0ZW1wbGF0ZS4gIEJhc2VkIG9uIGEgc2luZ2xlIGhhbmRsZXIgKHVubGlrZQogICAnaXRlcmF0b3JfYWNjZXNzJyksIGJ1dCBzb21ld2hhdCBtb3JlIGNvbXBsZXRlIHRoYW4gdGhlIG9yaWdpbmFsLAogICBwYXJ0aWN1bGFybHkgdy5yLnQuIFNFVCBoYW5kbGluZy4KCjIwMDQtMDgtMzEgMDM6MDkgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuY29udGFpbmVyLmNvbmYsIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEltcHJvdmUgdGhlIGV4YW1wbGUgZGF0YSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbiAoZXNwLiB3LnIudC4gaW5kZXggdmFsdWVzKQoKMjAwNC0wOC0zMSAwMDozNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgbmV3IHN0cnVjdCB0eXBlZGVmLCBuZXRzbm1wX2hhbmRsZXJfYXJncwoKMjAwNC0wOC0zMSAwMDozNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgLSBhZGQgbmV3IHZvaWQgcG9pbnRlciBmb3IgY2FjaGUgaGludAogICAtIGRlZmluZSBuZXcgZmxhZyBmb3IgaGFuZGxlciBhcmdzIGNhY2hlIGhpbnQKICAgLSBwYXNzIGhhbmRsZXIgYXJncyBjYWNoZSBoaW50IHdoZW4gZmxhZyBzZXQKCjIwMDQtMDgtMjggMTU6NTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICBjb25maWdfcmVxdWlyZSBtaWJJSS92YXJfcm91dGUgKFVTRV9TWVNDVExfSUYgbmVlZHMgZ2V0X2FkZHJlc3MpCgoyMDA0LTA4LTI4IDEyOjM4ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgLSBuZXRzbm1wX2Fzc2VydCBvbiBzZWxmLXJlZmVyZW5jZSBpbiBsaW5rZWQgbGlzdAoKMjAwNC0wOC0yOCAxMjozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIC0gYWRkIGNvbW1lbnRzCgoyMDA0LTA4LTI4IDEyOjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSBjb21tZW50IG91dCBjb25maWdfcmVxdWlyZSBtYWNyb3MgZm9yIHVud3JpdHRlbiBtb2R1bGVzCgoyMDA0LTA4LTI4IDEyOjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLSBkb2N1bWVudCBzY2FubGluZSBmb3JtYXQKCjIwMDQtMDgtMjggMTI6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jOgoKICAgLSByZW1vdmUgZXh0cmFuZW91cyAnOycKICAgICAoaXNzdWUgbm90ZWQgaW4gYnVnL3BhdGNoIDEwMTE0NzEgTW9yZSBTQ08gVW5peHdhcmUgNyBwYXRjaGVzKQoKMjAwNC0wOC0yOCAxMjoxNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgLSBpbmxpbmUgZml4ZXMgZnJvbSBTdGVwaGVuIEouIEZyaWVkbCwgcGx1cyBhIGZldyBJIGZvdW5kCiAgICAgKGlzc3VlcyBub3RlZCBpbiBidWcvcGF0Y2ggMTAxMTQ3MSBNb3JlIFNDTyBVbml4d2FyZSA3IHBhdGNoZXMpCgoyMDA0LTA4LTI4IDEyOjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHVwZGF0ZSBmb3IgbmV3IGFjY29uZmlnLmgKCjIwMDQtMDgtMjggMTI6MDggIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSBvbmx5IGRlZmluZSBpbmxpbmUgbWFjcm9zIGlmIGVuYWJsZWQKICAgICAoaXNzdWUgbm90ZWQgaW4gYnVnIDEwMTE0NzEgTW9yZSBTQ08gVW5peHdhcmUgNyBwYXRjaGVzKQoKMjAwNC0wOC0yNyAyMzoyNyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gZml4IDEvMiBvZiBidWcgNzAyNDM1OiBtZW1vcnkgbGVhayBbLi4uXSBmb3IgYWdlbnR4IHN1YmFnZW50cwogICAgIC0gUGF0Y2ggc3VwcGxpZWQgYnkgRnJhbnogRy4gRmlzY2hlcgoKMjAwNC0wOC0yNyAyMzoyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXIgYW5kIHByb3RvdHlwZXMKICAgLSBhZGQgY29tbWVudCBkb2N1bWVudGluZyBzY2FuIGxpbmUgZm9ybWF0CgoyMDA0LTA4LTI3IDIzOjIyICByc3RvcnkKCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIC0gb21pdCByb3V0ZXMgdGhhdCBhcmUgZG93bgogICAtIGhhcmRjb2RlIGFjdGl2ZSByb3cgc3RhdHVzIGZvciBuZXdseSBkaXNjb3ZlcmVkIHJvdXRlcwoKMjAwNC0wOC0yNyAyMzoxOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICAtIHR3ZWFrIGxvZyBtZXNzYWdlcyBzeW50YXgKICAgLSBmaXggaXB2NCBtYXNrIGNhbGN1bGF0aW9uCiAgIC0gaW1wbGVtZW50IGlwdjYgcm91dGVzCiAgIC0gY29tbW9uIGZ1bmN0aW9uIHRvIHNldCByb3V0ZSB0eXBlIGZyb20gZmxhZ3MKICAgLSBzZXQgcG9saWN5IG9pZCBiYXNlZCBvbiBhcmJpdHJhcnkgaW5kZXgKCjIwMDQtMDgtMjcgMjM6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYzoKCiAgIGRvbnQgZnJlZSBwb2xpY3kgb2lkIGlmIHN0YXRpYyBmbGFnIHNldAoKMjAwNC0wOC0yNyAyMzoxNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIC0gYWRkIGZsYWcgZm9yIHN0YXRpYyBwb2xpY3kgb2lkCiAgIC0gY2hhbmdlIGludGVybmFsIGluZGV4IHR5cGUgdG8gb2lkCgoyMDA0LTA4LTI3IDA3OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIFRyeSBhIGRpZmZlcmVudCBhcHByb2FjaCB0byBtdWx0aS10eXBlIGNvbmZpZyBoYW5kbGluZy4KICAgRG9uJ3QgYXV0b21hdGljYWxseSByZWdpc3RlciBjb25maWcgdG9rZW5zIGFnYWluc3QgbXVsdGlwbGUgdHlwZXMuCiAgIEluc3RlYWQsIGV4cGxpY2l0bHkgcmVnaXN0ZXIgQWdlbnRYLXJlbGF0ZWQgY29uZmlnIHRva2VucyBhcyBzdWNoLgogICAoVGhlIGNvbmZpZyBtZWNoYW5pc20gd2lsbCBhbHJlYWR5IGF1dG9tYXRpY2FsbHkgbG9hZCBhbnkgY29uZmlnCiAgIGZpbGUgdHlwZXMgdGhhdCBpdCBrbm93cyBhYm91dCkuCgoyMDA0LTA4LTI3IDAzOjE1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBVc2UgYSBjb25zaXN0ZW50ICJob3N0cy57YWxsb3csZGVueX0iIHRva2VuIGZvciBrbm93biBhbmQgdW5rbm93biBhZGRyZXNzZXMuCgoyMDA0LTA4LTI3IDAzOjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBJZiB3ZSdyZSByZWFkaW5nIGluIHRoZSBtdWx0aWNhc3Qgc3RhdHMsIHRoZW4gdGhlIHNjYW4gbGluZSBuZWVkcyB0byBiZQogICB0d2Vha2VkIG5vdCB0byBza2lwIHRoaXMgdmFsdWUhCgoyMDA0LTA4LTI2IDA3OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBTdXBwcmVzcyAzMi1iaXQgc2hpZnQgd2FybmluZ3Mgb24gMzItYml0IHN5c3RlbXMuCiAgIChUaG91Z2ggdGhpcyBtYXkgbm90IGJlIHRoZSBiZXN0IHdheSB0byBkZXRlY3Qgc3VjaCBzeXN0ZW1zISkKCjIwMDQtMDgtMjYgMDc6MjQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIERlY2xhcmUgbWlzc2luZyB2YXJpYWJsZSBvbiBub24tU0NOdU1BWCBzeXN0ZW1zLgoKMjAwNC0wOC0yNSAxMjozNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIHJlbmFtZSBuZXRzbm1wX2ludGVyZmFjZV9lbnRyeSBtZW1iZXJzIHRvIGF2b2lkIG5hbWVzcGFjZSBjb25mbGljdHMKICAgICAtIG5vdGVkIG9uIHVzZXJzIGJ5IEFraWhpcm8gSUlKSU1BCgoyMDA0LTA4LTI1IDA5OjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBhcHBseSByZXZpc2VkIHBhdGNoIGZvciBidWcgODk3MDAyOiBzbm1wZCBjYW5ub3QgaGFuZGxlIDY0IGJpdCBpbnRlcmZhY2UgY291bnRlcnMKICAgICAoaGFkIGJlZW4gbWFya2VkIGFzIGZpeGVkIGJ1dCB3YXNuJ3QpCgoyMDA0LTA4LTI1IDA4OjM4ICBkdHMxMgoKICAgKiBtYW4vbWliMmMuY29uZi41OgoKICAgRG9jdW1lbnQgdGhlIG5ldyBtaWIyYyBub2RlIHRhZ3MuCgoyMDA0LTA4LTI1IDA4OjM1ICBkdHMxMgoKICAgKiBtaWJzLzogRElTTUFOLUVYUFJFU1NJT04tTUlCLnR4dCwgRElTTUFOLU5TTE9PS1VQLU1JQi50eHQKLCBESVNNQU4tUElORy1NSUIudHh0LCBESVNNQU4tVFJBQ0VST1VURS1NSUIudHh0CjoKCiAgIEFkZCBEaXNNYW4gUmVtb3RlIE9wZXJhdGlvbnMgTUlCIGZpbGVzCgoyMDA0LTA4LTI1IDA4OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBleHByZXNzaW9uL2dudWMuaCwgZXhwcmVzc2lvbi9pbjYuaAosIGV4cHJlc3Npb24vaXBfdmFyLmgsIGV4cHJlc3Npb24vaXB2Ni5oLAogICAgIGV4cHJlc3Npb24vdWRwX3Zhci5oLCBuc2xvb2t1cC9nbnVjLmgsIG5zbG9va3VwL2luNi5oCiwgbnNsb29rdXAvaXBfdmFyLmgsIG5zbG9va3VwL2lwdjYuaCwKICAgICBuc2xvb2t1cC91ZHBfdmFyLmgsIHBpbmcvZ251Yy5oLCBwaW5nL2luNi5oLAogICAgIHBpbmcvaXBfdmFyLmgsIHBpbmcvaXB2Ni5oLCBwaW5nL3VkcF92YXIuaCwKICAgICB0cmFjZXJvdXRlL2dudWMuaCwgdHJhY2Vyb3V0ZS9pbjYuaCwKICAgICB0cmFjZXJvdXRlL2lwX3Zhci5oLCB0cmFjZXJvdXRlL2lwdjYuaCwKICAgICB0cmFjZXJvdXRlL3VkcF92YXIuaDoKCiAgIExvY2FsbHktdHdlYWtlZCB2ZXJzaW9ucyBvZiBzdGFuZGFyZCBoZWFkZXIgZmlsZXMuCiAgIFRoaXMgaXMgbm90IHRoZSBtb3N0IGFwcHJvcHJpYXRlIHdheSB0byBwcm9jZWVkLAogICBidXQgaXMgbmVlZGVkIHRvIGdldCB0aGUgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiB3b3JraW5nLgoKMjAwNC0wOC0yNSAwNzozMSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIFN1cHBvcnQgaG9sZXMgaW4gIml0ZXJhdGVfYWNjZXNzIiB0YWJsZXMuCgoyMDA0LTA4LTI1IDAxOjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmM6CgogICBGaXggYSBtZW1vcnkgbGVhayBpbiB0aGUgUm1vbiBjb2RlLiAoUmVwb3J0ZWQgYnkgRm9uZyBUc3VpKQoKMjAwNC0wOC0yNCAxODoyNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGRhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywKICAgICBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmgsIGlmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSByZW5hbWUgbmV0c25tcF9pbnRlcmZhY2VfZW50cnkgbWVtYmVycyB0byBhdm9pZCBuYW1lc3BhY2UgY29uZmxpY3RzCiAgICAgLSBub3RlZCBvbiB1c2VycyBieSBBa2loaXJvIElJSklNQQoKMjAwNC0wOC0yNCAwOToyOCAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTVhZ2VudHYxbWludHJhcCwgVDA1NmFnZW50djJjbWludHJhcAo6CgogICBGaXggdGhlIG1pbmltYWwgY29uZmlnIHRlc3RzIHRvIHVzZSB0aGUgY29ycmVjdCBzZXQgb2YgTUlCIG1vZHVsZXMuCiAgIChSZXBvcnRlZCBieSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNC0wOC0yNCAwOToyNCAgZHRzMTIKCiAgICogdGVzdGluZy86IFJFQURNRSwgUlVOVEVTVFMsIGV2YWxfdG9vbHMuc2g6CgogICBTdXBwb3J0IGFkZGl0aW9uYWwgdHJhcGQgZmxhZ3MgKHBhdGNoIGZyb20gTWFnbnVzIEZyb21yZWlkZSkKICAgKEFuZCB1cGRhdGUgdGhlIFJFQURNRSB0byBrZWVwIE1pa2UgaGFwcHkhKQoKMjAwNC0wOC0yNCAwOToxOSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIExvZyByZWNvbmZpZy9zaHV0ZG93biBtZXNzYWdlcyBtb3JlIHJlbGlhYmx5LiAgKFBhdGNoIGZyb20gTWFnbnVzIEZyb21yZWlkZSkKCjIwMDQtMDgtMjQgMDk6MTYgIGR0czEyCgogICAqIENPUFlJTkc6CgogICBBZGQgQ2lzY28vQlVQVE5JQyBjb3B5cmlnaHQgbm90aWNlLCB0byBjb3ZlciB0aGUgbmV3IERpc01hbiBSZW1PcHMgY29kZS4KCjIwMDQtMDgtMjQgMDg6MTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogZGlzbWFuLmgsIGRpc21hbi9leHByZXNzaW9uLW1pYi5oLAogICAgIGRpc21hbi9uc2xvb2t1cC1taWIuaCwgZGlzbWFuL3BpbmctbWliLmgsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUtbWliLmgsIGRpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuYwosIGRpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuaCwKICAgICBkaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYywKICAgICBkaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuaCwKICAgICBkaXNtYW4vZXhwcmVzc2lvbi9leHBPYmplY3RUYWJsZS5jLAogICAgIGRpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmgsCiAgICAgZGlzbWFuL2V4cHJlc3Npb24vZXhwVmFsdWVUYWJsZS5jLAogICAgIGRpc21hbi9leHByZXNzaW9uL2V4cFZhbHVlVGFibGUuaCwKICAgICBkaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywKICAgICBkaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuaCwKICAgICBkaXNtYW4vbnNsb29rdXAvbG9va3VwUmVzdWx0c1RhYmxlLmMsCiAgICAgZGlzbWFuL25zbG9va3VwL2xvb2t1cFJlc3VsdHNUYWJsZS5oLAogICAgIGRpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCBkaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaAosIGRpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLAogICAgIGRpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5oLAogICAgIGRpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuYywKICAgICBkaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmgsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5jLAogICAgIGRpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVIb3BzVGFibGUuaCwKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuYywKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuaCwKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmMsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5oOgoKICAgUHJlbGltaW5hcnkgaW1wbGVtZW50YXRpb24gb2YgdGhlIERpc01hbiBSZW1vdGUgT3BlcmF0aW9uIE1JQiBncm91cHMuCiAgIE5vdGUgdGhhdCB0aGVzZSBhcmUgbm90IHlldCByZWFkeSBmb3IgcHJvZHVjdGlvbiB1c2UuCgoyMDA0LTA4LTIzIDA4OjA2ICByc3RvcnkKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBuZXcgdGFyZ2V0IHRvIG9ubHkgbWFrZSBvYmplY3RzIGZvciBjdXJyZW50IGRpcmVjdG9yeSAobm8gc3ViZGlycykKCjIwMDQtMDgtMjMgMDc6MzUgIGR0czEyCgogICAqIGFwcHMvc25tcHdhbGsuYywgbWFuL3NubXB3YWxrLjEuZGVmOgoKICAgT3B0aW9uIHRvIGV4Y2x1ZGUgdGhlIGZpbmFsIEdFVCByZXF1ZXN0IHdoZW4gd2Fsa2luZyBhIHNpbmdsZSBpbnN0YW5jZS4KCjIwMDQtMDgtMjMgMDI6MzkgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuY29udGFpbmVyLmNvbmYsIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIE5ldyB0ZW1wbGF0ZSBjb25maWdzIGZvciByb3ctYmFzZWQgImludGVybmFsLWRhdGEiIGltcGxlbWVudGF0aW9ucy4KCjIwMDQtMDgtMjMgMDI6MjkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgTmV3IHZhcmlhYmxlIHRva2VucyB0byBpZGVudGlmeSAiY3JlYXRhYmxlIiBvciBSb3dTdGF0dXMgY29sdW1uIG9iamVjdHMuCiAgIEV4dGVuZCB0aGVzZSB0d28gdG9rZW5zLCBwbHVzICJzZXR0YWJsZSIgdG8gYXBwbHkgdG8gdGFibGVzIGFzIHdlbGwKICAgKHJlcG9ydGluZyBvbiB0aGUgY29uc3RpdHVlbnQgY29sdW1uIG9iamVjdHMpLgoKMjAwNC0wOC0yMyAwMTo1OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jOgoKICAgSW1wbGVtZW50IGNvbnRleHQgZXJyb3IgY291bnRlcnMgYXMgcHJvcGVyIHNjYWxhciBvYmplY3RzCiAgIChyYXRoZXIgdGhhbiBzaW1wbHkgaW5zdGFuY2VzKQoKMjAwNC0wOC0yMyAwMTo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uYzoKCiAgIEZ1bGxlciBpbXBsZW1lbnRhdGlvbiBvZiBzbm1wU2V0U2VyaWFsTm8gb2JqZWN0LCBpbmNsdWRpbmcgcGVyc2lzdGFuY2UgYWNyb3NzCiAgIGFnZW50IHJlc3RhcnQsIHJhbmRvbSBpbml0aWFsaXNhdGlvbiB2YWx1ZSAoYm90aCBwZXIgVGVzdEFuZEluY3IgZGVzY3JpcHRpb24pCiAgIGFuZCBwcm9wZXIgb2JqZWN0IGluc3RhbmNlIGJlaGF2aW91ci4KCjIwMDQtMDgtMjMgMDE6NTYgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBEb24ndCBpbnZva2UgY2FsbGJhY2sgcmVnaXN0cmF0aW9ucyBpZiB0aGUgb3JpZ2luYWwgcmVnaXN0cmF0aW9uIGZhaWxzLgogICAoU2VlIGJ1ZyAjOTkwMDcwKQoKMjAwNC0wOC0yMCAwODo1MSAgcnN0b3J5CgogICAqIGRveHlnZW4uY29uZjoKCiAgIHVwZGF0ZSBwcm9qZWN0IG51bWJlciB0byA1LjIuZGV2CgoyMDA0LTA4LTIwIDA4OjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSByZW1vdmUgc3RhdGljIGF0dHJpYnV0ZSBmb3IgZnVuY3Rpb24KICAgLSBmaXggcGFyZW4gZ3JvdXBpbmcKCjIwMDQtMDgtMjAgMDg6NDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICAtIGRvIG5vdCBpbmNsdWRlIGRhdGEgYWNjZXNzIGhlYWRlcnMsIGFzIHRoZXkgYXJlIG5vdCBpbnN0YWxsZWQKCjIwMDQtMDgtMjAgMDg6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBpbmNsdWRlIGludGVyZmFjZSBkYXRhIGFjY2VzcyBoZWFkZXIKCjIwMDQtMDgtMjAgMDE6NTMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBUaWR5IHVwIGhhbmRsaW5nIG9mIHBpZF9maWxlLiAoUGF0Y2hlcyBmcm9tIE1hZ251cyBGcm9tcmVpZGUpCgoyMDA0LTA4LTE5IDAyOjIzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgSW1wcm92ZWQgaGFuZGxpbmcgb2Ygc25tcHRyYXBkIFBJRCBmaWxlLgogICBQYXRjaCBmcm9tIE1hZ251cyBGcm9tcmVpZGUuCgoyMDA0LTA4LTE5IDAyOjE3ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEhhbmRsZSBhZ2VudF9tb2R1bGUgaGVhZGVyIGZpbGVzIGluIHRoZSBzYW1lIHdheSBhcyBtaWJfbW9kdWxlIG9uZXMuCiAgIChSZW1vdmluZyB0aGVtIHdoZW4gY2xlYW5pbmcgdXAsIGFuZCBpbnN0YWxsaW5nIHRoZSBjb25maWcgaGVhZGVyKQoKMjAwNC0wOC0xOSAwMjoxMiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgQWRkIGFnZW50X21vZHVsZSBjb25maWd1cmF0aW9uIHRva2VucyB0byB0aGUgbGlzdCBvZgogICBzdGFuZGFyZCBhZ2VudCBpbmNsdWRlcy4gIChSZXBvcnRlZCBieSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNC0wOC0xOSAwMjoxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbUNvbmYuaDoKCiAgIENvcnJlY3QgYWdlbnRfbW9kdWxlIGNvbmZpZyBzZXR0aW5nLgogICAoU3BvdHRlZCBieSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNC0wOC0xOCAxNToxMiAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEFsbG93IFRPS0VOUklORy1NSUIgYW5kIERTMS1NSUIgdG8gb3ZlcnJpZGUgb2xkZXIgUkZDIG1pYnMKCjIwMDQtMDgtMTggMDI6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIFVzZSB0aGUgY29udGV4dCBuYW1lIGZyb20gdGhlIHJlZ2lzdHJhdGlvbiBjYWxsLAogICByYXRoZXIgdGhhbiB0aGUgY29udGV4dCBmcm9tIHRoZSBpbmNvbWluZyByZXF1ZXN0LgogICBUaGVzZSBvdWdodCB0byBiZSB0aGUgc2FtZSwgYnV0IGFyZSBzdWJ0bHkgZGlmZmVyZW50IHdoZW4KICAgbm8gY29udGV4dCBpcyBzcGVjaWZpZWQuICAoUGF0Y2ggc3VwcGxpZWQgYnkgTWFnbnVzIEZyb21yZWlkZSkKCjIwMDQtMDgtMTcgMDg6NDAgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgTW9yZSBwb3J0YWJsZSBhcHByb2FjaCB0byBhdm9pZGluZyB1bm5lY2Vzc2FyeSBoZWFkZXIgaW5zdGFsbHMuCiAgIChUaGFua3MgdG8gYm90aCBCZW4gUm9nZXJzIGFuZCBTdGVwaGVuIEouIEZyaWVkbCkKCjIwMDQtMDgtMTcgMDI6MDggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQXR0ZW1wdCB0byBzdXBwb3J0IG11bHRpcGxlICd7eHh4eH0uY29uZicgYXBwbGljYXRpb24gdHlwZXMuCgoyMDA0LTA4LTE3IDAyOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgSW5jbHVkZSB0aGUgbmV3ICdORVQtU05NUC1FWFRFTkQtTUlCJyBtb2R1bGUgaW4gYSBkZWZhdWx0IGNvbmZpZy4KCjIwMDQtMDgtMTcgMDI6MDQgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBBbGxvdyAidHJhcGhhbmRsZSIgZGlyZWN0aXZlcyB0byBtYXRjaCBhIHN1YnRyZWUgcmF0aGVyCiAgIHRoYW4ganVzdCBhIHNpbmdsZSB0cmFwLiAgKFN1Z2dlc3RlZCBieSBCb3NrbyBNaWxla2ljKQoKMjAwNC0wOC0xNyAwMTo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIERvbid0IGJvdGhlciBsb29raW5nIHVwIHRoZSBob3N0bmFtZSB1bmxlc3MgaXQnbGwgYWN0dWFsbHkKICAgYmUgbmVlZGVkIGZvciBnZW5lcmF0aW5nIHRoZSBlbmdpbmVJRC4gIFN1Z2dlc3RlZCBieSBKb2UgQy4KCjIwMDQtMDgtMTcgMDE6NTEgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMsCiAgICAgc25tcFVuaXhEb21haW4uYzoKCiAgIEVuc3VyZSB0aGF0IGEgbm9uLW1hdGNoaW5nIGNvbTJzZWMgbG9va3VwIHdpbGwgcmV0dXJuIGEgTlVMTCAnc2VjTmFtZScKICAgKEJhc2VkIG9uIGEgc3VnZ2VzdGlvbiBieSBPbGVnIEl2YW5vdikKCjIwMDQtMDgtMTcgMDE6NDEgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIERvbid0IGFwcGx5ICdob3N0cy57YWxsb3csZGVueX0nIGNoZWNraW5nIHRvIGNhbGxiYWNrIGNvbm5lY3Rpb25zCiAgICh3aGljaCB0eXBpY2FsbHkgd29uJ3QgbWF0Y2ggYW55dGhpbmcgb3RoZXIgdGhhbiAiQUxMIikKCjIwMDQtMDgtMTcgMDE6MzggIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBQcm90ZWN0IGFnYWluc3QgbWlzc2luZyBwYXJhbWV0ZXJzLiAgKFN1Z2dlc3RlZCBieSBKb2huIExhc2gpCgoyMDA0LTA4LTE3IDAxOjMyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmg6CgogICBBUEkgZm9yIGFkZGluZyBhIChuZXdseSBjcmVhdGVkKSByb3cgdG8gdGhlIHZhcmJpbmQgcmVxdWVzdCBsaXN0LAogICBzbyBpdCdzIGF2YWlsYWJsZSBkdXJpbmcgbGF0ZXIgU0VUIHBhc3Nlcy4gICBUaGVyZSdzIHByb2JhYmx5CiAgIGEgYmV0dGVyIHdheSBvZiBjb21wYXJpbmcgaW5kZXggdmFsdWVzLCBidXQgdGhpcyBzZWVtcyB0byB3b3JrLgoKMjAwNC0wOC0xNyAwMToyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbm1wdjNtaWJzLmgsIHNubXB2My91c21Db25mLmMsCiAgICAgc25tcHYzL3VzbUNvbmYuaCwgc25tcHYzL3VzbVVzZXIuYzoKCiAgIFNwbGl0IG9mZiBVU00gY29uZmlnIGhhbmRsaW5nIGludG8gYSBzZXBhcmF0ZSBtb2R1bGUKICAgKGFuZCBtb3ZlIHRoaXMgaW50byB0aGUgYWdlbnQgbGlicmFyeSkKCjIwMDQtMDgtMTcgMDE6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnR4L2FnZW50eF9jb25maWcuaCwgYWdlbnR4L2NsaWVudC5oCiwgYWdlbnR4L21hc3Rlci5oLCBhZ2VudHgvbWFzdGVyX2FkbWluLmgsCiAgICAgYWdlbnR4L3Byb3RvY29sLmgsIGFnZW50eC9zdWJhZ2VudC5oLAogICAgIG1pYklJL3ZhY21fY29uZi5oOgoKICAgTW92ZSBWQUNNIGNvbmZpZyBoYW5kbGluZyBhbmQgQWdlbnRYIHN1cHBvcnQgaW50byB0aGUgYWdlbnQgbGlicmFyeS4KCjIwMDQtMDgtMTcgMDE6MjMgIGR0czEyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgbWliX21vZHVsZXMuYzoKCiAgIFBpY2sgdXAgYWdlbnRfbW9kdWxlIGluaXRpYWxpc2F0aW9uIGFuZCBkb3RfY29uZiByb3V0aW5lcy4KICAgKE5vdCBjb252aW5jZWQgdGhpcyBpcyB0aGUgYmVzdCBwbGFjZSBmb3IgdGhlIGFnZW50X21vZHVsZQogICAgaW5pdCByb3V0aW5lcyB0byBiZSBjYWxsZWQsIGJ1dCBpdCdsbCBkbyBmb3Igbm93LikKCjIwMDQtMDgtMTcgMDE6MjEgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgU3dpdGNoIGxpbmtpbmcgb3JkZXIgb2YgYWdlbnQgYW5kIG1pYiBsaWJyYXJpZXMgKHNpbmNlIGxpYm5ldHNubXBtaWJzCiAgIG1heSB3ZWxsIHVzZSByb3V0aW5lcyBkZWZpbmVkIGluIGxpYm5ldHNubXBhZ2VudCwgYnV0IG5vdCB2aWNlIHZlcnNhKQoKMjAwNC0wOC0xNyAwMToxNSAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBFbnN1cmUgYWdlbnQgdnMgbWliIG1vZHVsZXMgYXJlIHBpY2tlZCB1cCBjb3JyZWN0bHkgKGVzcC4gZm9yIG1vZHVsZXMKICAgd2l0aG91dCBhIGhlYWRlciBmaWxlLCB3aGljaCBzaG91bGQgZGVmYXVsdCB0byAnbWliX21vZHVsZXMnKQoKMjAwNC0wOC0xNyAwMToxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICBTbGlnaHRseSBwcmVmZXJhYmxlIGNvbmZpZyB0b2tlbiBmb3IgdGhlIG5ldyBleHRlbnNpYmxlIHNjcmlwdGluZyBtaWIsCiAgIGRvY3VtZW50IHRoaXMgZmVhdHVyZSwgYW5kIGFkZCBhIHdhcm5pbmcgcmVnYXJkaW5nIHRoZSBvbGQgKGludmFsaWQpCiAgIHJlbG9jYXRhYmxlIG91dHB1dCBmb3JtYXQuCgoyMDA0LTA4LTE2IDIwOjI1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBkb24ndCBkcm9wIHJlLWF0dGFjaGVkIGhlYWQgKHBhdGNoIGZyb20gVG9tbXkgQ2hyaXN0ZW5zZW4pCiAgIC0gZml4IHR5cG8KCjIwMDQtMDgtMTYgMTQ6NTcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBtZmQuaAoKMjAwNC0wOC0xNiAxNDo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBuZXcgdmVyc2lvbiBmcm9tIGF1dG9jb25mCgoyMDA0LTA4LTE2IDE0OjIzICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIC0gYWRkIHVuZGVmIGZvciBTVFJVQ1RfVE1fSEFTX1RNX0dNVE9GRkYKICAgLSBkZWZpbmUgY29uZmlnX2JlbG9uZ3NfaW4gdG8gbm90aGluZwoKMjAwNC0wOC0xNiAxMjoxMyAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIG1pYmZldGNoLCBzbWlzdHJpcDoKCiAgIE1vcmUgYXV0b21hdGljIGluc3RhbGxhdGlvbiBvZiBSRkMgYmFzZWQgbWlicwoKMjAwNC0wOC0xMyAwNjo1OSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8uY3ZzaWdub3JlOgoKICAgSWdub3JlIGNvbmZpZy1nZW5lcmF0ZWQgJ2FnZW50X21vZHVsZScgZmlsZXMKCjIwMDQtMDgtMTMgMDY6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmU6CgogICBJZ25vcmUgY29uZmlnLWdlbmVyYXRlZCAnYWdlbnRfbW9kdWxlJyBmaWxlcwoKMjAwNC0wOC0xMyAwNjo0MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgbG9jYWwvTWFrZWZpbGUuaW4sCiAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL2F1dGhlbnRpY2F0aW9uLAogICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9sb2dnaW5nLAogICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9ydW50aW1lLAogICAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiwgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpCjoKCiAgIEFkZCBzbm1wdHJhcGQgY29uZmlnIHN1cHBvcnQgZm9yIGxvZ2dpbmcsIGF1dGhlbnRpY2F0aW9uIGFuZCBydW50aW1lIG9wdGlvbnMuCiAgIChQYXRjaCAjOTgxMzE5IGZyb20gQWxleCBCdXJnZXIpCgoyMDA0LTA4LTEzIDA2OjMzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIFN0cmlwIHBvcnQtbnVtYmVyIHNwZWNpZmljYXRpb24gZnJvbSAicGVlcm5hbWUiIHdoZW4gY29uc3RydWN0aW5nIEtTTSBjcmVkZW50aWFscy4KICAgKEJhc2VkIG9uIHBhdGNoICM5OTI0NDApCgoyMDA0LTA4LTEzIDAzOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBIYW5kbGUgImdlbmVyYWwiIEFnZW50WCBlcnJvcnMsIG5vdCBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyB2YXJiaW5kLgogICAoQmFzZWQgb24gcGF0Y2ggIzk4Mzk3MiBmcm9tIGxvcmVuemltKQoKMjAwNC0wOC0xMyAwMjo1NCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBQcm92aWRlIG1pc3NpbmcgZGVmaW5pdGlvbiBvZiAnaW5zdGFsbHN1YmRpcmhlYWRlcnMnIHJ1bGUuCiAgIChQYXRjaCAjOTkxNjY0IGZyb20gQmVuIFJvZ2VycykKCjIwMDQtMDgtMTMgMDI6NTMgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgIkxhenkiIGluc3RhbGxhdGlvbiBvZiBoZWFkZXIgZmlsZXMuICBPbmx5IGluc3RhbGwgYSBoZWFkZXIgZmlsZSBpZgogICBpdCdzIG5ld2VyIHRoYW4gdGhlIGV4aXN0aW5nIG9uZS4gIChQYXRjaCAjOTkxNjY0IGZyb20gQmVuIFJvZ2VycykKCjIwMDQtMDgtMTMgMDI6NTAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc25tcC10Yy5jCjoKCiAgIFVzZSBhbiBleHBsaWNpdCBjaGVjayBmb3IgJ3RtX2dtdG9mZicsIHJhdGhlciB0aGFuIHBlci1hcmNoaXRlY3R1cmUgI2RlZmluZXMKICAgKFBhdGNoICMxMDA2Mjk4IGZyb20gU3RlcGhlbiBKLiBGcmllZGwpCgoyMDA0LTA4LTEzIDAyOjE3ICBuYmEKCiAgICogbWlicy86IElBTkFpZlR5cGUtTUlCLnR4dCwgaWFuYWxpc3QsIHJmY2xpc3Q6CgogICBVcGRhdGVkIFJGQyBNSUIgaW5mb3JtYXRpb24KCjIwMDQtMDgtMTIgMDc6NDkgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEhhbmRsZSBhIGNvbG9uLXNlcGFyYXRlZCBsaXN0IG9mICJhcHBsaWNhdGlvbi10eXBlIiBjb25maWcgZmlsZXMuCiAgIChlLmcuICJhZ2VudHg6c25tcGQiIHRvIHNlYXJjaCAqYm90aCogJ3NubXBkLmNvbmYnICphbmQqICdhZ2VudHguY29uZicpCiAgIFNlZSBjb2RlcnMtdGhyZWFkICJBZ2VudFggY29uZmlndXJhdGlvbiIgLSBKdWwgJzA0CgoyMDA0LTA4LTEyIDA1OjIwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5oOgoKICAgQW4gZXhhbXBsZSBvZiBjb25maWd1cmluZyBjb2RlIGludG8gdGhlIGFnZW50IHJhdGhlciB0aGFuIHRoZSBtaWIgbGlicmFyeS4KCjIwMDQtMDgtMTIgMDU6MTggIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4KLCBjb25maWd1cmU6CgogICBTdXBwb3J0IGEgbWVjaGFuaXNtIGZvciBpbmNsdWRpbmcgcGFydGljdWxhciBjb2RlIG1vZHVsZXMgd2l0aGluIGVpdGhlcgogICB0aGUgbWliIGxpYnJhcnkgb3IgdGhlIGFnZW50IGxpYnJhcnkgKG9yIHBvdGVudGlhbGx5IGVsc2V3aGVyZSBhcyB3ZWxsKS4KICAgKFNlZSBjb2RlcnMtdGhyZWFkICJNb3ZpbmcgQWdlbnRYIG91dCBvZiB0aGUgbWlibW9kdWxlcyIgLSBKdW5lICcwNCkKCjIwMDQtMDgtMTIgMDU6MTIgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaDoKCiAgIEluY2x1ZGUgYW4gb2Z0LW92ZXJsb29rZWQgaGVscGVyLgoKMjAwNC0wOC0xMiAwNToxMSAgZHRzMTIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBQcm90ZWN0IGFnYWluc3QgZm9sbG93aW5nIE5VTEwgcG9pbnRlcnMKICAgKHBsdXMgc29tZSBwZXR0eSBncmFtbWF0aWNhc3RpZ2F0aW9uKQoKMjAwNC0wOC0xMSAxMzo1NyAgcnN0b3J5CgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGxvb2sgZm9yIC5pbiBmaWxlIGluIHNyY2Rpciwgd2hpY2ggbWF5ICE9IGN1cnJlbnQgZGlyCgoyMDA0LTA4LTExIDA1OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIE9ubHkgc3RvcmUgdGhlIHRhYmxlIHN0cnVjdHVyZSBvbiB0aGUgZmlyc3QgcGFzcyB0aHJvdWdoLgogICBTdWJzZXF1ZW50IHBhc3NlcyBjYW4gcmV0cmlldmUgdGhpcyBzdG9yZWQgdmFsdWUgYW55d2F5LgoKMjAwNC0wOC0xMSAwNDo1NSAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGRlbGV0ZWQgbWFuIHBhZ2VzICh0b2RvICYgZGVwcmVjYXRlZCkKCjIwMDQtMDgtMTAgMDg6NTMgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB1cGRhdGUgbGlidG9vbCB2ZXJzaW9uaW5nIGEgYml0CgoyMDA0LTA4LTA0IDA1OjUxICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbiwgbWFuL25ldHNubXBfZGVwcmVjYXRlZC4zLAogICAgIG1hbi9uZXRzbm1wX3RvZG8uMzoKCiAgIERvbid0IGluc3RhbGwgJ3RvZG8nIG9yICdkZXByZWNhdGVkJyBtYW4gcGFnZXMKICAgKHNpbmNlIHRoZXNlIGFyZSBjb25zdHJ1Y3RlZCB3aXRoIHN1c3BlY3QgZm9ybWF0dGluZykKCjIwMDQtMDgtMDMgMDg6MTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBTcGVjaWZ5IHRoZSBjb3JyZWN0IGxlbmd0aCBvZiBzdHJpbmcgZm9yIEFFUyAnc3RybmNtcCcgY29tcGFyaXNvbnMuCiAgIChTZWUgYnVnICM5OTY4OTQpCgoyMDA0LTA4LTAyIDE0OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZml4IGNvbnRleHQgcmVnaXN0cmF0aW9uIHNvIG5ldyBjb250ZXh0IHRyZWVzIGdldCBwcm9wZXJseSBpbml0aWFsaXplZC4KCjIwMDQtMDgtMDIgMTQ6MTMgIGhhcmRha2VyCgogICAqIG1pYnMvbWFrZWh0bWwucGw6CgogICBEb24ndCBkb3VibGUtcHJvZHVjZSBIVE1MIG91dHB1dCBmb3IgcmVwZWF0ZWQgTUlCcy4KCjIwMDQtMDctMzAgMTc6MzIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIGRvY3VtZW50IEFnZW50WCBjb250ZXh0IGZpeGluZwogICAtIGRvY3VtZW50IHRoZSB1c21Vc2VyIHRhYmxlIHBvcHVsYXRpb24gdW5kZXIgc25tcHRyYXBkCgoyMDA0LTA3LTMwIDE3OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jLAogICAgIHNubXBVbml4RG9tYWluLmM6CgogICBEb3VibGUgY2hlY2sgdGhhdCB0aGUgY29udGV4dE5hbWUgYXJyYXkgaXMgcHJvcGVybHkgaW5pdGlhbGl6ZS4KCjIwMDQtMDctMzAgMTc6MzAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIEFkZCBjb250ZXh0TmFtZSB0byB0aGUgcmVnaXN0cmF0aW9uIHBhcmFtYXRlcnMgc3RydWN0dXJlLgoKMjAwNC0wNy0zMCAxNzoyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFJlZ2lzdGVyIHRoZSB1c21Vc2VyVGFibGUgdW5kZXIgdGhlICJzbm1wdHJhcGQiIGNvbnRleHQKCjIwMDQtMDctMzAgMTc6MjggIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgLSByZWdpc3RlciBhbGwgdGhlIHNubXB0cmFwZCBtaWIgbm9kZXMgdW5kZXIgdGhlICJzbm1wdHJhcGQiIGNvbnRleHQKCjIwMDQtMDctMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My86IHVzbVVzZXIuYywgdXNtVXNlci5oOgoKICAgQ3JlYXRlIGEgZnVuY3Rpb24gdG8gcmVnaXN0ZXIgdGhlIHVzbVVzZXIgdGFibGUgb3RoZXIgYSBkaWZmZXJlbnQgY29udGV4dC4KCjIwMDQtMDctMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBjbGllbnQuaCwgbWFzdGVyLmMKLCBzdWJhZ2VudC5jOgoKICAgLSBGaXggYWdlbnR4IHRvIHdvcmsgcHJvcGVybHkgdW5kZXIgbm9uLWRlZmF1bHQgY29udGV4dHMuCgoyMDA0LTA3LTMwIDE3OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaAo6CgogICBBZGQgYSBidW5jaCBvZiBmdW5jdGlvbnMgdG8gcmVnaXN0ZXIgaW5zdGFuY2VzIHVuZGVyIG5vbiBkZWZhdWx0IGNvbnRleHRzLgoKMjAwNC0wNy0zMCAxNzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gZml4IGFkZF9zdWJ0cmVlIHNvIGl0IHJlZ2lzdGVycyB0b3AgbGV2ZWwgbnVsbCBoYW5kbGVycyB0b28KICAgICAtIGZpeGVzIGEgbnVtYmVyIG9mIGNvbnRleHQgcHJvYmxlbXMKICAgLSBwYXNzIGNvbnRleHQgaW5mb3JtYXRpb24gZG93biBpbnRvIHJlZ2lzdHJhdGlvbiBpbmZvIHN0cnVjdCAodXNlZCBieSBhZ2VudHgpCgoyMDA0LTA3LTMwIDE3OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL251bGwuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmg6CgogICAtIGFkZCBhIG51bGwgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uIGZvciBjb250ZXh0cyBvdGhlciB0aGFuIHRoZSBkZWZhdWx0LgoKMjAwNC0wNy0zMCAxNDo0NCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jCjoKCiAgIFBhdGNoIGZyb20gQWJoaWppdCBIYXlhdG5hZ2Fya2FyIHRvIGZpeCBVU00gcHJpdmFjeSBrZXkgbGVuZ3RocwoKMjAwNC0wNy0zMCAxMzozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBJIHdhcyBzbGVlcGluZyBlYXJsaWVyIHdoZW4gSSBmaXhlZCBjb2RlIHRoYXQgd2Fzbid0IGJyb2tlbi4KCjIwMDQtMDctMzAgMTM6MDcgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIGNvbW11bml0eSBzdHJpbmcgLT4gY29udGV4dCBtYXBwaW5ncwoKMjAwNC0wNy0zMCAxMzowNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCB0aGUgbmV3IGNvbTJzZWMgdG9rZW4gb3B0aW9ucy4KCjIwMDQtMDctMzAgMTM6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIE1ha2UgdGhlIGNvbTJzZWMqIHRva2VucyBhY2NlcHQgYSAtQ24gQ09OVEVYVCBmbGFnIHRvIGFsbG93IHRoZQogICBtYXBwaW5nIG9mIGNvbW11bml0eSBzdHJpbmdzIHRvIFNOTVB2MyBjb250ZXh0cy4KCjIwMDQtMDctMzAgMTI6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFBhc3MgdGhlIGFjdHVhbCBwZHUgYmVpbmcgcHJvY2Vzc2VkIGludG8gY2hlY2tfYWNjZXNzIGluc3RlYWQgb2YgdGhlIGNvcHkKCjIwMDQtMDctMzAgMTE6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgRml4IGNvbnRleHQgY2hlY2tpbmcgc28gaXQgYWN0dWFsbHkgd29ya3MgZm9yIG5vbiBkZWZhdWx0IGNvbnRleHRzCgoyMDA0LTA3LTI4IDEyOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBjb25maWd1cmVfcmVxdWlyZSAtPiBjb25maWdfcmVxdWlyZQoKMjAwNC0wNy0yOCAwNTo0MCAgZHRzMTIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgT3BlblNTTCBpcyBuZWVkZWQgZm9yIFNIQS1iYXNlZCBhdXRoZW50aWNhdGlvbiwgcmF0aGVyIHRoYW4gTUQ1LgogICAoSXQncyB1c2VkIGZvciBib3RoIGlmIGF2YWlsYWJsZSwgYnV0IGl0J3Mgb25seSAqbmVlZGVkKiBmb3IgU0hBKQoKMjAwNC0wNy0yOCAwMjoxNyAgZHRzMTIKCiAgICogRkFROgoKICAgRGlzY3VzcyBSUE0tZGVwZW5kZWN5IHByb2JsZW1zLgoKMjAwNC0wNy0yOCAwMTowNCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgUGVyLW9iamVjdCBzd2l0Y2ggc3RhdGVtZW50IGlzIG1pc3NpbmcgdGhlICJjYXNlIiBrZXl3b3JkLgogICAoUmVwb3J0ZWQgYnkgV2lsbGlhbSBCdWNrbGV5KQoKMjAwNC0wNy0yMiAxNzo1NSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBmb3Igd2luMzIgYWdlbnQsIGludGVycHJldCBpZk9wZXJTdGF0dXMgY29ycmVjdGx5LAogICBhbmQgc2V0IGlmTGFzdENoYW5nZSB0byB6ZXJvLiBUaGVzZSBjaGFuZ2VzIGZpeGVzIGJ1ZyAjOTA3NzE2LgoKMjAwNC0wNy0yMiAxMzowNiAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICB0eXBlZGVmIGxvbmcgaW50MzJfdCB0byBzdWNjZWVkIGJ1aWxkaW5nIHdpdGggTVNWQysrLgoKMjAwNC0wNy0yMiAxMDo0NSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBwYXRjaCAjOTgyNjI4IGFwcGxpZWQgdG8gZml4IGxlYWsgb24gZXJyb3JzIGluIG5ldHNubXBfdWRwNl90cmFuc3BvcnQKCjIwMDQtMDctMjIgMDg6NDkgIGR0czEyCgogICAqIEZBUToKCiAgIEVtcGhhc2lzZSB0aGUgbmVlZCB0byBleHBsaWNpdGx5IGNyZWF0ZSB1c2Vycy4KCjIwMDQtMDctMjAgMjM6MjYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB0Y3BUYWJsZS5jLCB1ZHBUYWJsZS5jOgoKICAgZml4IGJ1ZyAjOTkyNzM1IE9TWCAxMC4zLjQgbWFrZSBmYWlscyBieSBpbmNsdWRpbmcgZGFyd2luIGluICNpZiBleHByZXNzaW9ucy4KCjIwMDQtMDctMjAgMjI6MjkgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luNy5oOgoKICAgY3JlYXRlIHN5c3RlbSBoZWFkZXIgZm9yIC1EZGFyd2luNy4gcGFydGlhbCBmaXggZm9yIGJ1ZyA5OTI3MzUuCgoyMDA0LTA3LTIwIDE5OjQwICBzbGlmCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGZpeCBidWcgOTk0MTk0IGJ5IGNoZWNraW5nIGZvciBudWxsIGJlZm9yZSBkZS1yZWZlcmVuY2luZyBwb2ludGVyIGFyZ3VtZW50LgoKMjAwNC0wNy0yMCAxMzozMSAgc2xpZgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIHBhdGNoIDk4ODI4NiBmcm9tIEJydWNlIFNoYXcgLSBMb3RzIG9mIHVwZGF0ZXMgb24gUkVBRE1FLnNvbGFyaXMKCjIwMDQtMDctMjAgMTM6MjIgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgdXNlIGtpbGwuZXhlIG9ubHkgaWZmIE9TVFlQRSA9IG1zeXMgKHBhdGNoICM5ODc2MjYgYXBwbGllZCkKCjIwMDQtMDctMTkgMDk6MjggIGR0czEyCgogICAqIG1hbi9zbm1wdmFjbS4xLmRlZjoKCiAgIEZpeCBlcnJvbmVvdXMgdHJvZmYgbWFjcm8sIGFzIHJlcG9ydGVkIGJ5IEVyaWMgUmF5bW9uZAoKMjAwNC0wNy0xNiAyMjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBtaWJJSV9jb21tb24uaCwgdGNwVGFibGUuYzoKCiAgIEF0dGVtcHRlZCBmaXhlcyBmb3IgZGFyd2luCgoyMDA0LTA3LTE2IDExOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLmg6CgogICBBZGRlZCBtaXNzaW5nIGlwU3lzdGVtU3RhdHNUYWJsZS5oIGZpbGUgd2hpY2ggUm9iZXJ0IHByb2JhYmx5IGZvcmdvdCB0byBjaGVjayBpbi4gIEknbSBndWVzc2luZyBhdCB0aGUgIHByb3BlcmNvbnRlbnRzLCBidXQgaXQgc2hvdWxkIGJlIHJpZ2h0CgoyMDA0LTA3LTE2IDA5OjA4ICBkdHMxMgoKICAgKiBGQVE6CgogICBBIGZldyBhZGRpdGlvbmFsIGVudHJpZXMgKGVzcC4gcmVsYXRpbmcgdG8gZ2VuZXJhdGluZyB0cmFwcykKICAgcGx1cyBzb21lIG1pbm9yIHJlc3RydWN0dXJpbmcgYW5kIHdvcmRzbWl0aGluZy4KCjIwMDQtMDctMTAgMjE6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIC0gcmVtb3ZlIGRlYnVnIG1zZwogICAtIGxvZyB3YXJuaW5nIGlmIGhlYWRlciBsZW5ndGggaXNuJ3Qgd2hhdCB3ZSBleHBlY3QKCjIwMDQtMDctMTAgMjE6MjggIHJzdG9yeQoKICAgKiBzbm1wbGliL2ludDY0LmM6CgogICAtIGZpeCBpbnZlcnRlZCBjb25kaXRpb25hbCB0ZXN0CiAgIC0gZG9uJ3QgYXNzdW1lIDY0IGlmIHdyYXBjaGVjayBza2lwcGVkCgoyMDA0LTA3LTEwIDE5OjUyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gYWRkIGNvbW1lbnQgdG8gZG9jdW1lbnQgc3RydWN0dXJlIHZhcgoKMjAwNC0wNy0xMCAxOTo1MSAgcnN0b3J5CgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIC0gYnVtcCB1cCB0aW1lb3V0IHRvIDMwIHNlY29uZHMsIGluc3RlYWQgb2YgMwoKMjAwNC0wNy0xMCAxOTo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICAtIHJlbW92ZSByZW1pbmRlciBjb21tZW50CiAgIC0gZml4IHR5cG8sIGluZGVudGVudGF0aW9uCgoyMDA0LTA3LTEwIDE5OjQ4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgdXNlIHVpbnRtYXhfdCB2YXJzIGZvciBwYXJzaW5nIGRhdGEKCjIwMDQtMDctMTAgMTM6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgbWFrZSBsb2NhbCBmdW5jdGlvbiBtb3JlIGdlbmVyaWMgYW5kIG1vdmUgdG8gbmV0c25tcF9jNjRfY2hlY2szMl9hbmRfdXBkYXRlCgoyMDA0LTA3LTEwIDEzOjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLzogaW5ldE5ldFRvTWVkaWFUYWJsZS5oLAogICAgIGlwQWRkcmVzc1RhYmxlLmgsIGluZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oCiwgaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaDoKCiAgIG1vdmUgY29uZmlnIHJlcXVpcmVzIHVwIGEgbGV2ZWwKCjIwMDQtMDctMTAgMTM6MDIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL25ldC1zbm1wLWRhdGEtYWNjZXNzLWluY2x1ZGVzLmgKOgoKICAgYWRkIGlwc3RhdHMvc3lzdGVtc3RhdHMgaGVhZGVycwoKMjAwNC0wNy0xMCAxMzowMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oLCBzbm1wbGliL2ludDY0LmM6CgogICBuZXcgZnVuY3Rpb24gbmV0c25tcF9jNjRfY2hlY2szMl9hbmRfdXBkYXRlCgoyMDA0LTA3LTEwIDEyOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLmg6CgogICBhZGQgaXBTeXN0ZW1TdGF0c1RhYmxlCgoyMDA0LTA3LTEwIDExOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvLmN2c2lnbm9yZSwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2RlZmF1bHQtdGFibGUtaXBTeXN0ZW1TdGF0c1RhYmxlLm0yZAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUtUkVBRE1FLUZJUlNULnR4dAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUtUkVBRE1FLWlwU3lzdGVtU3RhdHNUYWJsZS50eHQKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2NvbnN0YW50cy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmgKLCBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwc3RhdHMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmg6CgogICBpbXBsZW1lbnQgaXBTeXN0ZW1TdGF0c1RhYmxlCgoyMDA0LTA3LTA5IDIyOjU4ICBoYXJkYWtlcgoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jCjoKCiAgIC0gcmVtb3ZlIG15IHF1aWNrIC8vIGNvbW1lbnRzCiAgIC0gcmVtb3ZlIGEgZmV3IFhYWCBjb21tZW50cyB0aGF0IHdlcmUgZmVlZGJhY2sgZm9yIFJvYmVydCAobm93IGVtYWlsZWQpLgoKMjAwNC0wNy0wOSAxNToyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICAtIFB1bGwgdGhlIERIIHBhcmFtZXRlcnMgZnJvbSB0aGUgYWdlbnQgdG8gdXNlIGl0cyBjdXJyZW50bHkgY29uZmlndXJlZCBwYXJhbXMuCiAgIC0gcHJvdGVjdCBhZ2FpbnN0ICFvcGVuc3NsIHVzZXJzCgoyMDA0LTA3LTA5IDE1OjI4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIFB1bGwgdGhlIERIIHBhcmFtZXRlcnMgZnJvbSB0aGUgYWdlbnQgdG8gdXNlIGl0cyBjdXJyZW50bHkgY29uZmlndXJlZCBwYXJhbXMuCgoyMDA0LTA3LTA5IDE1OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHNubXAtdXNtLWRoLW9iamVjdHMtbWliLmgsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzLmgsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzLy5jdnNpZ25vcmUsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzL3VzbURIUGFyYW1ldGVycy5jLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy91c21ESFBhcmFtZXRlcnMuaCwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5oCjoKCiAgIEFkZGVkIHRoZSB1c21ESFBhcmFtZXRlcnMgb2JqZWN0IGZvciBtYW5hZ2VtZW50IG9mIHRoZSBESCBwYXJhbWV0ZXJzCgoyMDA0LTA3LTA5IDExOjE4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBNYWtlIHRoZSBwZXJzaXN0ZW50IGZpbGUgd2FybmluZyBhIGJpdCwgdW0sIG1vcmUgc3Ryb25nCgoyMDA0LTA3LTA5IDA5OjU4ICBoYXJkYWtlcgoKICAgKiBORVdTLCBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi5oLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvZGVmYXVsdC10YWJsZS11c21ESFVzZXJLZXlUYWJsZS5tMmQKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RveHlnZW4uY29uZgosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZW51bXMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9vaWRzLmgKOgoKICAgSW1wbGVtZW50ZWQgdGhlIFNOTVAtVVNNLURILU9CSkVDVFMtTUlCIHVzbURIVXNlcktleVRhYmxlIHRhYmxlLgoKMjAwNC0wNy0wOSAwOTo1NyAgaGFyZGFrZXIKCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvLmN2c2lnbm9yZQo6CgogICBpZ25vcmUgZmlsZQoKMjAwNC0wNy0wOSAwOTozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmMsIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgU3VwcG9ydCBhIGRpZmZpZS1oZWxtYW4gYmFzZWQgImNoYW5nZWtleSIgY29tbWFuZC4KCjIwMDQtMDctMDkgMDk6MjYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmg6CgogICBBZGQgZGlmZmllLWhlbG1hbiB2b2lkICogY29udGFpbmVyIHBvaW50ZXJzLgoKMjAwNC0wNy0wOSAwOToyNCAgaGFyZGFrZXIKCiAgICogbWlicy86IFNOTVAtVVNNLURILU9CSkVDVFMtTUlCLnR4dCwgTWFrZWZpbGUuaW46CgogICByZmMyNzg2OiBkaCB1c20gbWliCgoyMDA0LTA3LTA5IDA5OjIyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVGVzdCBmb3Igb3BlbnNzbC9kaC5oCgoyMDA0LTA3LTA4IDE3OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYzoKCiAgIC0gTGludXg6IHVzZSBub24gMCBzb2NrZXQgcHJvdG9jb2wgd2hlbiBjcmVhdGluZyBzb2NrZXQgKG9yIGNhbGwgZmFpbHMpCiAgIC0gZG9uJ3QgcmV0dXJuIHN1Y2Nlc3MgaWYgc29ja2V0IGNhbGwgZmFpbHMKICAgLSBjbG9zZSBzb2NrZXQgYmVmb3JlIHJldHVybmluZwogICAtIGZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMDQtMDctMDggMTc6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIC0gbW92ZSB3cml0ZV9tZXRob2QgYXNzaWdubWVudCBiZWZvcmUgY2hlY2sgZm9yIGV4aXN0aW5nIG5vZGUsIHNvIHJvdyBjcmVhdGlvbgogICAgIGNhbiBiZSBzdXBwb3J0ZWQKCjIwMDQtMDctMDggMTc6MjcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgdXBkYXRlIHRlc3QgZm9yIGNvcnJlY3Qgbm9kZSBkZWNsIHR5cGUKCjIwMDQtMDctMDggMTc6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaToKCiAgIGdlbmVyYXRlIGhpZ2ggJiBsb3cgYXNzaWdubWVudHMgZm9yIGNvdW50ZXI2NCBub2RlcwoKMjAwNC0wNy0wOCAxNTozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgY2xvc2UgZmlsZXMgYmVmb3JlIGV4aXQsIHRvIGZsdXNoIHBlbmRpbmcgb3V0cHV0CgoyMDA0LTA3LTA4IDA5OjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYzoKCiAgIC0gYXNzaWduIGRzdCBhZGRyIHRvIG5ldyBjYWNoZSBlbnRyeSwgc28gd2UgY2FuIGZpbmQgaXQgaW4gbmV4dCBwYXNzCgoyMDA0LTA3LTA4IDA4OjM3ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBiYWNrIG91ciBwcmV2aW91cyB0cmFwIGJpbmRpbmcgY2hhbmdlCiAgIC0gc2V0IG5ldyBzZXNzaW9uLmxvY2FsbmFtZSB0byBsb2NhbGhvc3QgZm9yIHYxL3YyYyB0cmFwcyAoYnV0IG5vdCBpbmZvcm1zKQoKMjAwNC0wNy0wOCAwODozNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgLSBhbGxvdyBwZXIgc2Vzc2lvbiBiaW5kaW5nIHRvIHNwZWNpZmljIGxvY2FsIGFkZHJlc3MgZm9yIHVkcCB0cmFuc3BvcnRzCgoyMDA0LTA3LTA4IDA3OjE4ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBiaW5kIHYxIHRyYXAgc2Vzc2lvbnMgY2xpZW50IGFkZHJlc3MgdG8gbG9jYWxob3N0CgoyMDA0LTA3LTA4IDA2OjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgLSBjbG9zZSBmaWxlIHdoZW4gZG9uZSB3aXRoIGl0CgoyMDA0LTA3LTA3IDE2OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgLSBzd2l0Y2ggdG8gdW5pZmllZCBkaWZmCgoyMDA0LTA3LTA3IDE2OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSByZW1vdmUgc29tZSBkdXBsaWNhdGVkIGNvZGUgKHVzZSBpbnRlcmZhY2UgZGF0YSBhY2Nlc3MgdmVyc2lvbnMpCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXIKCjIwMDQtMDctMDcgMTY6MjQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIFByb3Blcmx5IHF1b3RlIG1pYjJjIHZhcmlhYmxlIGluIGEgQGlmQCBjbGF1c2UuCgoyMDA0LTA3LTA3IDE2OjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgaXBDaWRyUm91dGVUYWJsZS5oLCBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIGNoYW5nZSByb3cgc3RhdHVzIG9iamVjdCBuYW1lIHRvIG1hdGNoIG1pYiAod2hpY2ggZG9lc24ndCBlbmQgaW4gUm93U3RhdHVzKQoKMjAwNC0wNy0wNyAxNjoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDctMDcgMTM6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlLmgsIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gYWdyZWUgb24gdmFyaWFibGUgbmFtZQoKMjAwNC0wNy0wNyAxMzo0MSAgcnN0b3J5CgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwo6CgogICAtIHJlZ2lzdGVyIHRhYmxlIGFzIENBTl9ST05MWQoKMjAwNC0wNy0wNyAxMzo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvOgogICAgIGlwQ2lkclJvdXRlVGFibGUuYywgaXBDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gaW1wbGVtZW50IHJvdyBzdGF0dXMgKGhhcmRjb2RlZCBhcyBhY3RpdmUpCgoyMDA0LTA3LTA3IDEzOjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICAtIHJlcGxhY2UgdV9pbnROX3Qgd2l0aCBtb3JlIHBvcnRhYmxlIHVpbnROX3QKCjIwMDQtMDctMDcgMTA6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pZlRhYmxlLmg6CgogICAtIGluY2x1ZGUgaW50ZXJmYWNlIGRhdGEgYWNjZXNzIGhlYWRlciBmb3Igc3RydWN0L2VudW1zCgoyMDA0LTA3LTA3IDEwOjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWZUYWJsZS5jOgoKICAgLSBpbml0aWFsaXNlIGNvbnRhaW5lciB2aWEgZGF0YSBhY2Nlc3MgbGlicmFyeQoKMjAwNC0wNy0wNyAxMDoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIC0gdXNlIGVudW1zIGZyb20gbWliIGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlcwoKMjAwNC0wNy0wNyAxMDoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaAo6CgogICAtIGFkZCBtaXNzaW5nIFRDIHZhbHVlCgoyMDA0LTA3LTA3IDEwOjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgLSB1cGRhdGUgaXB2NiBpbXBsZW1lbnRhdGlvbiAodGFrZSBhIHN0YWIgYXQgc3RhdHVzLCB0eXBlLCBvcmlnaW4pCgoyMDA0LTA3LTA3IDA3OjEzICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICB0d2VhayBjb21tZW50IGNoZWNrIHBhdHRlcm4gdG8gZXhjbHVkZSBsb2dzIG9mIG1mZCBtYXRjaGVzCgoyMDA0LTA3LTA3IDA3OjAyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9saXN0X3NzbGwuaCwKICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYzoKCiAgIC0gYWRkIHVuc29ydGVkIHNpbmdseSBsaW5rZWQgbGlzdCAoZmlmbyBvciBsaWZvKQoKMjAwNC0wNy0wNyAwNToyNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBRdW90ZSAicltvd11jb21tdW5pdHkiIHN0cmluZyBiZWZvcmUgcGFzc2luZyB0byBjb20yc2VjLXN0eWxlIHBhcnNlciwKICAgdG8gcmV0YWluIGFueSBpbnRlcm5hbCB3aGl0ZXNwYWNlLgoKMjAwNC0wNy0wNyAwNToyMSAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBVRFBEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFVzZSBjb3B5X253b3JkIHJhdGhlciB0aGFuIHN0cnRvayBmb3IgcGFyc2luZyBjb20yc2VjIGVudHJpZXMuCiAgIChUbyBoYW5kbGUgcXVvdGVkIHN0cmluZ3MgcHJvcGVybHkpCgoyMDA0LTA3LTA3IDAyOjE0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIENvbnZlcnQgdG8gdXNlIHRoZSBub24tcmVjdXJzaXZlICdBVVRPX05FWFQnIGFwcHJvYWNoCiAgIGZvciBhbGwgYmFyIEdFVE5FWFQvR0VUQlVMSyByZXF1ZXN0cy4KCjIwMDQtMDctMDcgMDI6MTIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9kYXRhLmMsIHRhYmxlX2l0ZXJhdG9yLmM6CgogICBTcGFyc2UgdGFibGVzIGFyZSBoYW5kbGVkIHdpdGhpbiB0aGUgdGFibGVyIGhlbHBlciwKICAgc28gZG9uJ3QgbmVlZCB0byBiZSBjb25zaWRlcmVkIGhlcmUuCgoyMDA0LTA3LTA3IDAyOjExICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBEb24ndCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgZmluYWwgaGFuZGxlciByZWdpc3RyYXRpb24gZGlkbid0CiAgIGluY2x1ZGUgYW4gZXhwbGljaXQgaGFuZGxlciByb3V0aW5lLiAgVGhpcyBpcyBwZXJmZWN0bHkgcmVhc29uYWJsZQogICBpZiB0aGUgTUlCIG9iamVjdCBpcyBoYW5kbGVkIGludGVybmFsbHkgYnkgdGhlIHByZWNlZGluZyBoZWxwZXJzLgoKMjAwNC0wNy0wNiAyMToxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS86IGlwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXBBZGRyZXNzVGFibGUuaCwgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIC0gaW1wbGVtZW50L2VuYWJsZSBpcEFkZHJlc3NUeXBlLCBpcEFkZHJlc3NDcmVhdGVkLCBpcEFkZHJlc3NMYXN0Q2hhbmdlZAogICAgIGlwQWRkcmVzc1Jvd1N0YXR1cyAoaGFyZGNvZGVkIGFjdGl2ZSksIGlwQWRkcmVzc1N0b3JhZ2VUeXBlIChoYXJkY29kZWQgdm9sYXRpbGUpCiAgIC0gcmV0dXJuIG5vdCB3cml0YWJsZS9ubyBjcmVhdGlvbiB1bnRpbCBzZXQgc3VwcG9ydCBpbXBsZW1lbnRlZAogICAtIGNvbmZpZ19yZXF1aXJlIGludGVyZmFjZSBkYXRhIGFjY2VzcwogICAtIHVwZGF0ZSBjYWNoZSBwb2xpY3kgdG8gYXV0byByZWxvYWQsIGZvciBsYXN0IGNoYW5nZWQvY3JlYXRlZAoKMjAwNC0wNy0wNiAyMToxMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaDoKCiAgIC0gbmV3IGZ1bmMgdG8gY29tcGFyZSBhbmQgdXBkYXRlIGlwYWRkcmVzcyBlbnRyaWVzCiAgIC0gbmV3IGZsYWcvY29kZSBmb3Igc2Vjb25kIGNvbnRhaW5lciBpbmRleCwgYnkgYWRkcmVzcwoKMjAwNC0wNy0wNiAyMTowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gcmV0dXJuIHJlc291cmNlIHVuYXZhaWxhYmxlIG9uIGVtcHR5IGludGVyZmFjZSBjb250YWluZXIKICAgLSBsb2cgbWFsbG9jIGZhaWx1cmUKCjIwMDQtMDctMDYgMjE6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIHJlbmFtZSBpbnRlcmZhY2UgZGF0YSBhY2Nlc3MgaW5pdCByb3V0aW5lCiAgIC0gY3JlYXRlIGNvbnRhaW5lciBvbmNlIGR1cmluZyBpbml0LCB0byBkaXNjb3ZlciBpZkluZGV4ZXMKCjIwMDQtMDctMDYgMjA6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGluaXQgaW50ZXJmYWNlIGRhdGEgYWNjZXNzIGluIGluaXRfYWdlbnQKCjIwMDQtMDctMDYgMTc6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgaW5jcmVhc2UgZGVmYXVsdCBvaWQgcHJpbnRpbmcgc2l6ZS4KCjIwMDQtMDctMDYgMTc6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBpbmNyZWFzZSBkZWZhdWx0IGJ1ZmZlciBzaXplIHBhc3NlZCB0byBnZXRfc3ltYm9sX3JlYWxsb2MgKHVzZWZ1bAogICBmb3IgbG9uZyBPSURzIHdoZW4gcmVhbGxvYyBpcyBhY3R1YWxseSBvZmYpLgoKMjAwNC0wNy0wNiAxNTo1OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaDoKCiAgIGFkZCBuZXcgbWZkIGhlYWRlcgoKMjAwNC0wNy0wNiAxNTo1NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmg6CgogICBjb21tb24gbWZkIGluY2x1ZGUKCjIwMDQtMDctMDYgMTU6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBpbml0aWFsaXplIHZhcmlhYmxlIGJlZm9yZSB1c2UKCjIwMDQtMDctMDYgMTQ6MjQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgT25seSBwcmludCBvbmUgb2YgdGhlIGVycm9yIG1lc3NhZ2VzIGlmIHRoZSByZXN1bHQgd2FzIGFuIGFycmF5LgoKMjAwNC0wNy0wNiAxNDoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgLSBmaXggYSBmZXcgIndob29wcyIgKHJlbW92ZSBkZWJ1Z2dpbmc7IHByb3Blcmx5IHt9IG11bHRpIGlmIHN0YXRlbWVudHMpLgoKMjAwNC0wNy0wNiAxNDoxMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIGlmIGEgdGFibGUgaXMgY29tcG9zZWQgb2Ygb25seSBpbmRleGVzLCB3YWxrIGF0IGxlYXN0IG9uZSBzbyByZXN1bHRzCiAgICAgYXJlIHJldHVybmVkIGZvciBnZXR0YWJsZSgpLgoKMjAwNC0wNy0wNiAxNDowOCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgLSBwcm9wZXJseSByZXR1cm4gTlVMTHMgd2hlbiBhcHByb3ByaWF0ZS4KICAgLSBtYWtlIGdldF9pbmRleGVzIHJldHVybiBpbmRleGVzIGZyb20gYXVnbWVudGVkIHRhYmxlcy4KCjIwMDQtMDctMDYgMTQ6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIGFkZCBpbnVjYXN0LCBvbnVjYXN0IGNvdW50ZXJzIHRvIHN0YXRzIHN0cnVjdAogICAtIG1vdmUgaW51Y2FzdCwgb251Y2FzdCBjYWxjdWxhdGlvbnMgaW50byBsaW51eCBpbnRlcmZhY2UgZGF0YV9hY2Nlc3MKCjIwMDQtMDctMDYgMTE6NTMgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gdXBkYXRlIG1ha2UgY2hlY2tzIHRvIGNoZWNrIGZvciBjcHAgI3dhcm5pbmdzCgoyMDA0LTA3LTA1IDIwOjAxICByc3RvcnkKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIC0gZG9jdW1lbnQgLVQgb3B0aW9uIGluIHVzYWdlCgoyMDA0LTA3LTA1IDIwOjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gcmVtb3ZlIG5hc3R5IGtlcm5lbCB0cmljayBkZWZpbmVzCiAgIC0gYWRkIGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5IHR5cGVkZWYgZm9yIGNvbmZfaWZfbGlzdAoKMjAwNC0wNy0wNSAxOTo1OSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIC0gaW5jbHVkZSBuZXcgZGF0YSBhY2Nlc3MgaW5jbHVkZQoKMjAwNC0wNy0wNSAxOTo1MiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvbmV0LXNubXAtZGF0YS1hY2Nlc3MtaW5jbHVkZXMuaAo6CgogICBuZXcgaGVhZGVyIGZvciBhbGwgZGF0YSBhY2Nlc3MgaW5jbHVkZXMKCjIwMDQtMDctMDUgMTU6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYwo6CgogICAtIHJlbW92ZSByb3cgc3RhdHVzIGZvciBub3c7IHdhcm5pbmcgdG8gcmVtaW5kIGJlZm9yZSA1LjIKCjIwMDQtMDctMDUgMTU6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICBhZGQgY29uZmlnX3JlcXVpcmUgb2YgZGF0YV9hY2Nlc3MvaW50ZXJmYWNlCgoyMDA0LTA3LTA1IDE0OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgcmVtb3ZlIGNvbmZfaWZfbGlzdCBkZWNsYXJhdGlvbiAoaXQncyBpbiBkYXRhX2FjY2Vzcy9pbnRlZmFjZXMuaCBub3cpCgoyMDA0LTA3LTA1IDE0OjEyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywKICAgICBpcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICBhc3NlcnRzIHNob3VsZCBiZSBuZXRzbm1wX2Fzc2VydHMKCjIwMDQtMDctMDUgMTQ6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIGlmVGFibGUvaWZUYWJsZS5jLAogICAgIGlmVGFibGUvaWZUYWJsZS5oOgoKICAgLSBkb24ndCB1c2UgbmFzdHkga2VybmVsIHRyaWNrIChhdm9pZCB1bmV4cGVjdGVkIG1hY3JvIHN1YnN0aXR1dGlvbnMpCgoyMDA0LTA3LTA1IDA5OjIxICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTA3LTA1IDA5OjIwICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgdXBkYXRlIHZlcnNpb24gdG8gNS4yLmRldgoKMjAwNC0wNy0wNSAwOTowNCAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjA0ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowNCAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAzICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDMgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDMgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDMgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAyICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAyICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDEgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMSAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAxICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA4OjMxICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIG1ha2UgdGVzdCByZXN1bHRzIHRvIHVwbG9hZAoKMjAwNC0wNy0wNSAwNTo1OSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IGNhY2hlX2hhbmRsZXIuYywgcmVhZF9vbmx5LmMsCiAgICAgdGFibGVfZGF0YXNldC5jLCB3YXRjaGVyLmM6CgogICBVc2UgIkFVVE9fTkVYVCItc3R5bGUgaGFuZGxpbmcgZm9yIHRoZSB0cml2aWFsIGNhc2VzCiAgIChub3RpbmcgdGhpcyBiZWhhdmlvdXIgd2l0aGluIHRoZSBoYW5kbGVyIGl0c2VsZikuCgoyMDA0LTA3LTA1IDA1OjUzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmM6CgogICBVc2Ugc3dpdGNoIGZhbGx0aHJvdWdoIHRvIGhhbmRsZXIgR2V0QnVsay0+R2V0TmV4dC0+R2V0IGhhbmRsZXIgZmFsbGJhY2tzLgogICBUaGUgcHJldmlvdXMgY29kZSBkaWRuJ3QgY29wZSB3aXRoIGEgbWlzc2luZyBHRVQgaGVscGVyIGZvciBHZXRCdWxrL0dldE5leHQuCgoyMDA0LTA3LTA0IDE4OjI3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYzoKCiAgIC0gY29udmVydCB0byB1c2UgQVVUT19ORVhUCgoyMDA0LTA3LTA0IDE4OjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuaDoKCiAgIC0gcmVzdG9yZSBjb25maWdfcmVxaXJlIG9mIG9sZCB0YWJsZSAoZW5hYmxlLW1mZC1yZXdyaXRlcyBjb2V4aXN0ZW5jZSkKCjIwMDQtMDctMDQgMTg6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSBpZmRlZiBvdXQgdGFibGUgcmVnaXN0cmF0aW9uIGlmZiAhIGVuYWJsZS1tZmQtcmV3cml0ZXMKICAgLSBpbml0IGNhY2hlIGVhcmxpZXIgKGl0IGhhcHBlbnMgZXZlbiBpZiAhIGVuYWJsZS1tZmQtcmV3cml0ZXMsIGZvciBpZlhUYWJsZSkKCjIwMDQtMDctMDQgMTg6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGUuaCwKICAgICBpZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIGFkZCBmbGFnIHRvIGluZGljYXRlIGlmIGEgY2FjaGVkIGludGVyZmFjZSBpcyBub3QgbWlzc2luZwogICAtIHNldCBhZG1pbiAoYW5kIG1heWJlIG9wZXIpIHN0YXR1cyBkb3duIGZpcnN0IHRpbWUgaW50ZXJmYWNlIGdvZXMgbWlzc2luZwogICAtIHNldCBpZkxhc3RDaGFuZ2VkIHdoZW4gb3BlciBzdGF0dXMgY2hhbmdlcwogICAtIHNldCBpZkNvdW50ZXJEaXNjb250aW51aXR5VGltZSB3aGVuIG1pc3NpbmcgaW50ZXJmYWNlIHJldHVybnMKCjIwMDQtMDctMDQgMTg6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICAtIHVzZSBpZk5hbWUgZm9yIGRlc2NyaXB0aW9uIGlmZiBOVUxMIGRlc2NyaXB0aW9uCiAgIC0gcmV0dXJuIGVtcHR5IHN0cmluZyBmb3IgcGh5c2FkZHIgaWZmIGFsbCAwcwoKMjAwNC0wNy0wNCAxODoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gZG9jdW1lbnQgdGhhdCBTSU9DR0lGSFdBRERSIGlvY3RsIG1pZ2h0IG5vdCByZXR1cm4gZnVsbCA2IGJ5dGVzCiAgIC0gYWRkIG1lbXNldCB0byAwIGJlZm9yZSBTSU9DR0lGSFdBRERSIGlvY3RsLCBpZiBuZWVkZWQKICAgLSB1c2Ugc3RhbmRhcmQgSUZIV0FERFJMRU4gbWFjcm8gaW5zdGVhZCBvZiBoYXJkY29kZWQgNgogICAtIHRyaXZpYWwgb3B0aW1pemF0aW9uIChkb24ndCBhc3NpZ24gdmFyIHR3aWNlIGluIGNlcnRhaW4gY2FzZXMpCiAgIC0gY29tbWVudCBvdXQgYWxsIGlmVGFibGUgZnJvbSB2YXJpYWJsZSBzdHJ1Y3QgaWZmIC0tZW5hYmxlLW1mZC1yZXdyaXRlcwoKMjAwNC0wNy0wNCAxODoxMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLAogICAgIHR1bm5lbC90dW5uZWwuYzoKCiAgIC0gZG9jdW1lbnQgdGhhdCBTSU9DR0lGSFdBRERSIGlvY3RsIG1pZ2h0IG5vdCByZXR1cm4gZnVsbCA2IGJ5dGVzCiAgIC0gYWRkIG1lbXNldCB0byAwIGJlZm9yZSBTSU9DR0lGSFdBRERSIGlvY3RsLCBpZiBuZWVkZWQKICAgLSB1c2Ugc3RhbmRhcmQgSUZIV0FERFJMRU4gbWFjcm8gaW5zdGVhZCBvZiBsb2NhbCBvbmUKCjIwMDQtMDctMDQgMTg6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgLSBkb24ndCBhc3N1bWUgb3BlciBzdGF0dXMgaXMgdXAKICAgLSByZW1vdmUgZ3JhdHVpdG91cyBsb2cgbWVzc2FnZQoKMjAwNC0wNy0wNCAxODowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIHJlbW92ZSBwcm90b3R5cGVzIGNhdXNpbmcgY29tcGlsZSBlcnIgKGZpbmQgZml4IGxhdGVyKQoKMjAwNC0wNy0wNCAxODowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIHVwZGF0ZSBmb3IgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDctMDQgMTg6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYklJLmgsIGlmLW1pYi9pZlRhYmxlLmgsCiAgICAgaWYtbWliL2lmWFRhYmxlLmgsIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaDoKCiAgIC0gcmUtZW5hYmxlIG9sZCBpbXBsZW1lbnRhdGlvbnMgZm9yIC0tZW5hYmxlLW1mZC1yZXdyaXRlcwogICAgIChleGNlcHQgZm9yIGlmVGFibGU7IHR1cm5zIG91dCB0aGUgcmVzdCBhcmUgYWxsIG5ldyB0YWJsZXMpCiAgIC0gaWZkZWYgb3V0IGlmVGFibGUgcmVnaXN0cmF0aW9uIGZvciBlbmFibGUtbWZkLXJld3JpdGVzLCBsZWF2aW5nIHRoZSByZXN0CiAgICAgb2YgdGhlIGNvZGUgaW50YWN0IGZvciBvdGhlciB0YWJsZXMvb2JqZWN0IHRoYXQgbmVlZCBpdC4KCjIwMDQtMDctMDQgMTA6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtIHNldCBpZiB0eXBlIHRvIHR1bm5lbCBpZiBub3Qgc2V0ICYgaWYgbmFtZSBzdGFydHMgd2l0aCAnc2l0JwoKMjAwNC0wNy0wNCAxMDoxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzoKCiAgIC0gc2V0IHBoeXNhZGRyIGxlbiB0byAwIGlmIHBoeXNhZGRyIG5vdCBrbm93bgogICAtIHNldCBvcGVyIHN0YXR1cyBmcm9tIGlmIGZsYWdzCgoyMDA0LTA3LTA0IDEwOjExICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIC0gbGVhdmUgaWZfZGVzY3IgTlVMTCB1bnRpbCB3ZSBjYW4gZGV0ZXJtaW5lIGl0LgoKMjAwNC0wNy0wNCAxMDowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgTGludXg6IG9ubHkgbG9nIG1pc3NpbmcgL3Byb2MvbWVtaW5mbyBlcnJvcnMgb25jZSwgYXQgc3RhcnR1cAoKMjAwNC0wNy0wNCAxMDowMyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGluaXQgdmFyIGJlZm9yZSB1c2luZyBpdAoKMjAwNC0wNy0wNCAxMDowMiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBhZGQgbmV0c25tcCBhc3NlcnQgb24gZHVwbGljYXRlIHJlZ2lzdHJhdGlvbgoKMjAwNC0wNy0wMyAxNzozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gZml4IGNhY2hlIGxvb2t1cCBvaWQgcGFyYW0KCjIwMDQtMDctMDMgMTc6MjUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIHVwZGF0ZSBjb21tZW50czsgZG9jdW1lbnQgdGhhdCBtYWdpYyBpcyBmb3IgdXNlciBoYW5kbGVyCgoyMDA0LTA3LTAzIDE3OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmgsIGlmWFRhYmxlL2lmWFRhYmxlLmMsCiAgICAgaWZYVGFibGUvaWZYVGFibGUuaDoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCgoyMDA0LTA3LTAzIDE3OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYywKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuaAosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMKLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5oCiwgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmg6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQogICAtIHNvbWUgd2FybmluZ3MgZm9yIHN0dWZmIHRvIGJlIGRvbmUgYmVmb3JlIDUuMgoKMjAwNC0wNy0wMyAxNTo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBmaXggY29uZGl0aW9uYWwgdGVzdCBmb3Igc2tpcHBpbmcgbWFwcGluZwoKMjAwNC0wNy0wMyAxNTo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaToKCiAgIG9ubHkgZGVjbGFyZSB2YXIgaWYgaXQgd2lsbCBiZSB1c2VkCgoyMDA0LTA3LTAzIDEzOjQ2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBhZGQgbm90ZSBpbiBzdHJ1Y3QgdG8gdXBkYXRlIF9jbG9uZV9oYW5kbGVyIHdoZW4gbm90IGl0ZW1zIGFkZGVkCgoyMDA0LTA3LTAzIDEzOjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgLSBkb24ndCB1c2UgJzonIGluIGZpbGUgbmFtZQogICAtIGFkZCAtLXNob3ctYy1mdW5jdGlvbiB0byBkaWZmIHBhcmFtcwoKMjAwNC0wNy0wMyAxMzozNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBmaXggdXBsb2FkIGZvciBuc2ItcGFja2FnZSBhYm9ydCBjYXNlCgoyMDA0LTA3LTAzIDEzOjM2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbW9yZSB2ZXJib3NlIGluZm8gb24gdXBsb2FkCgoyMDA0LTA3LTAzIDEwOjUxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICByZXR1cm4gZXJyb3IgZnJvbSB1c21fY2hlY2tfc2VjTGV2ZWwgaWYgdXNlclN0YXR1cyBpcyBub3QgYWN0aXZlCgoyMDA0LTA3LTAzIDEwOjQ4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIC1uZXcgbmV0c25tcF9oZXhfdG9fYmluYXJ5IChhbGxvd3Mgc3BlY2lmeWluZyBkZWxpbWl0ZXJzIGZvciBoZXggc3RyaW5nKQogICAtYWRkIGRveHlnZW4gZG9jczsgbW92ZSBzb21lIGNvbW1lbnRzIHRvIGZ1bmN0aW9uIGRvY3MKCjIwMDQtMDctMDMgMTA6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpOgoKICAgdXBjYXNlIGNvbnN0YW50cwoKMjAwNC0wNy0wMyAxMDoxNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGRvbid0IGluY2x1ZGUgZGVsZXRlZCBoZWFkZXIKCjIwMDQtMDctMDMgMTA6MTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIC0gY29uc2lzdGVuY3kgYmV0d2VlbiBub24taW5kZXggYW5kIGluZGV4IHZhciByZWZlcmVuY2VzCgoyMDA0LTA3LTAzIDEwOjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICAtIGFsbG93IHRhYmxlIHRvIHNwZWNpZnkgbm8gbWFwcGluZyBmb3Igbm9kZXMKICAgLSBuZXcgb3B0aW9uIHRvIGdlbmVyYXRlIHRhYmxlIGRlZmF1bHRzICYgZXhpdAoKMjAwNC0wNy0wMyAxMDoxMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaToKCiAgIC0gbW92ZSBhc3NpZ25tZW50IGxhdGVyIHRvIGdldCBjb3JyZWN0IHZhbHVlCgoyMDA0LTA3LTAzIDEwOjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1nZXQtY2hhci5tMmksCiAgICAgZ2VuZXJpYy1nZXQtb2lkLm0yaSwgbTJjX3NldHVwX25vZGUubTJpLAogICAgIG1mZC1kYXRhLWdldC5tMmMsIG1mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmMsCiAgICAgbWZkLXJlYWRtZS5tMmM6CgogICAtIGFsbG93IHRhYmxlIHRvIHNwZWNpZnkgbm8gbWFwcGluZyBmb3Igbm9kZXMKCjIwMDQtMDctMDIgMTA6MDcgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgZml4IGJ1ZyM4MTkxNTQgYnkgYWxsb3dpbmcgZ2V0bmV4dCBmYWlsdXJlIHRvIGNvbnRpbnVlIHRyYXZlcnNpbmcgdGhlIGV4dGVuc2libGUgbGlzdHMuCgoyMDA0LTA3LTAyIDA3OjE4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgbWFrZSBhIHNhZmUgY29weSBvZiB0aGUgY29tbWFuZCBzdHJpbmcgdG8gdGhlIG5hbWUgc3RyaW5nLgoKMjAwNC0wNy0wMiAwNjo1MCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIGFwcGx5IHBhdGNoICM5MTAwOTQgU29sYXJpcyBjYW4gb25seSBzZWUgc29tZSBkaXNrcyAtLSBpbmNyZWFzZSBMVU4gcmFuZ2UgMC03CgoyMDA0LTA3LTAyIDA2OjM4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgZml4IGJ1ZyAjOTg0MDYxIC0gY2hlY2sgbGltaXRzLCBidWlsZCBkZXZpY2UgdHlwZSBzcGFucyBwcm9wZXJseQoKMjAwNC0wNy0wMiAwNjoxMiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICB3YXJuLCB0aGVuIHByZXZlbnQgYWRkaW5nIG1vcmUgZGV2aWNlcyB0aGFuIHRoZSBkaXNrcyBhcnJheSB3aWxsIGhvbGQuCgoyMDA0LTA3LTAyIDA1OjI0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIGFwcGx5IHBhdGNoICMgOTgzODUxIENoZWNrIHJldHVybiB2YWx1ZSBmb3IgY2dldG5leHQoKSBhbmQgZml4ICNpZmRlZgoKMjAwNC0wNy0wMiAwNDo0NyAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIFJFQURNRS5taWJzLCBzbWlzdHJpcDoKCiAgIE5vdGVzIGFuZCB0d2Vha3MgdGhhdCBzaG91bGQgbWFrZSBpdCBlYXNpZXIgdG8gYSBmdWxsIHJmYyBtaWIgY29tcGxlbWVudAogICB1bmRlciBTb2xhcmlzCgoyMDA0LTA3LTAyIDA0OjM3ICBuYmEKCiAgICogbWlicy86IHJmY2xpc3QsIHJmY21pYnMuZGlmZjoKCiAgIE5ldyB2ZXJzaW9uIG9nIFByaW50ZXItTUlCCgoyMDA0LTA3LTAyIDAzOjE5ICBuYmEKCiAgICogbWlicy9NYWtlZmlsZS5taWI6CgogICBVcGRhdGUgdHAgY29ycmVjdCBSRkMgZm9yIEV0aGVybGlrZS1NSUIKCjIwMDQtMDYtMzAgMjA6MDQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgYXZvaWQgc29ydCB3aGVuIG9ubHkgb25lIHBhc3Mgb3IgcGFzc19wZXJzaXN0IGRpcmVjdGl2ZSBpcyBpbnN0YW50aWF0ZWQuCiAgIHByZXZlbnQgb3ZlcmZsb3dpbmcgYmluMmFzYydzIGJ1ZmZlciwgYW5kIHJlbW92ZSBhIHNldCBidXQgbm90IHVzZWQgIml0bXAiIHZhcmlhYmxlLgoKMjAwNC0wNi0zMCAxOTozOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBmaXggYnVnIDk4MTI3NSBieSBPSUQgc29ydGluZyB0aGUgImV4ZWMiIGFuZCAic2giIGRpcmVjdGl2ZXMuCgoyMDA0LTA2LTMwIDA3OjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZml4IGN1dC1uLXBhc3RlcyB0byB1c2UgY29ycmVjdCBmdW5jdGlvbi92YXIgbmFtZXMKCjIwMDQtMDYtMzAgMDY6MzUgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgZml4IGJ1ZyMgNTAyMjE1ICJvaWQgbm90IGluY3JlYXNpbmciIGJ1Z3MgZm9yIElQdjYgVURQL1RDUCBvbiBGcmVlQlNECgoyMDA0LTA2LTMwIDA2OjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmgsIGlmVGFibGUvaWZUYWJsZV9jb25zdGFudHMuaCwKICAgICBpZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywgaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jCiwgaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5oLCBpZlhUYWJsZS9pZlhUYWJsZS5jCiwgaWZYVGFibGUvaWZYVGFibGUuaCwgaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMKLCBpZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wNi0yOSAxNjowNSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICBmaXggbmFtZSAodWRidGFibGUgLS0+IHRjYnRhYmxlKSBpbiBUQ1A2IHZlcnNpb24gb2YgdmFyX3RjcDYuCgoyMDA0LTA2LTI5IDA1OjE0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgYXBwbHkgcGF0Y2ggOTc5NDM2IHRvIG1ha2Ugc3lzL2Rrc3RhdC5oIG9ic29sZXRlIHdoZW4gYnVpbGRpbmcgcmVjZW50IEZyZWVCU0Q1CgoyMDA0LTA2LTI5IDA0OjU3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgYXBwbHkgcGF0Y2ggOTc5NDM0IHRvIFN1cHBvcnQgRnJlZUJTRCA1LjAgYW5kIDUuMSBpbiBkaXNraW8uYwoKMjAwNC0wNi0yOSAwNDowMCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYzoKCiAgIFVzZSB1X2xvbmcgZm9yIHBoeXNfbWVtIGluIG1lbW9yeV9mcmVlYnNkMi5jIChwYXRjaCAjOTc5MDM0KQoKMjAwNC0wNi0yOSAwMzo0OCAgc2xpZgoKICAgKiBwZXJsL09JRC90ZXN0LnBsLCB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBwZXIgQWxleCBCdXJnZXIsIGFwcGx5IHBhdGNoICM5ODAxMTggdG8gZml4IE1TVkMgUGVybCBtb2R1bGUgYnVpbGQgYW5kCiAgIHByZXZlbnQgdGVzdCBmcm9tIHN0b3BwaW5nIGluIFdpbmRvd3MgZHVlIHRvIGFuIHVuLWluaXRpYWxpemVkIHZhcmlhYmxlLgoKMjAwNC0wNi0yOSAwMzozNiAgc2xpZgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfaW5jbHVkZXMuaCwgbWliX21vZHVsZV9pbml0cy5oLAogICAgIG5ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgsIG5ldHNubXBtaWJzL01ha2VmaWxlLmluCiwgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICAgIG5ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIE1TVkMgYnVpbGRzIHZhY21fY29uZiBvYmplY3QgaW4gb3JkZXIgdG8gZml4IGJ1ZyAjOTgxMzc3LiBHb29kIENhbGwsIERhdmUuCgoyMDA0LTA2LTI5IDAwOjAzICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDUzYWdlbnR2MXRyYXAsIFQwNTRhZ2VudHYyY3RyYXAsCiAgICAgVDA1NWFnZW50djFtaW50cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwOgoKICAgdXNlIEFVVEhURVNUQVJHUyB0byBmaXggYnVnIzk3MzY3MwoKMjAwNC0wNi0yOCAxNzowNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB1cGRhdGUgZm9yIG5ldyBhY2NvbmZpZy5oCgoyMDA0LTA2LTI4IDE2OjU5ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIC0gYWRkIE5FVFNOTVBfRU5BQkxFX01GRF9SRVdSSVRFUwogICAtIGFkZCAnKGluY29tcGxldGUpJyB0byBjb21tZW50IGZvciBOU19SRUVOVFJBTlQKCjIwMDQtMDYtMjggMTY6NTYgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDYtMjggMTY6NTUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL21pYklJLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmg6CgogICAtIG5ldyBjb25maWd1cmUgZmxhZ2U6IC0tZW5hYmxlLW1mZC1yZXdyaXRlcyB3aWxsIHR1cm4gb24gcmV3cml0dGVuIG1vZHVsZXMuCiAgICAgLSBjdXJyZW50bHkgaGFzIHRoZSBzaWRlIGVmZmVjdCBvZiBkaXNhYmxpbmcgZGVwcmVjYXRlZCB0YWJsZXMKCjIwMDQtMDYtMjggMTU6MTggIHJzdG9yeQoKICAgKiBtYW4vbWliMmMuY29uZi41OgoKICAgLSB1cGRhdGUgZm9yIGF1dG8tZ2VuIGZyb20gbWliMmMKCjIwMDQtMDYtMjggMTU6MTEgIHJzdG9yeQoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnN0YW50cy5oCjoKCiAgIC0gdXBkYXRlIG9pZCBjaGFuZ2VkIGluIGlldGYgZHJhZnQKCjIwMDQtMDYtMjggMTU6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oOgoKICAgY29uZmlnIGV4Y2x1ZGUgbWliSUkvaXAsIG5vdCBtaWJJSS92YXJfcm91dGUKCjIwMDQtMDYtMjggMTU6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICByZW1vdmUgdW51c2VkIChkdWUgdG8gZGF0YSBzaGFyaW5nIHcvaWZUYWJsZSkgZnVuY3Rpb25zCgoyMDA0LTA2LTI4IDE1OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmg6CgogICB1c2UgbG9jYWwsIG5vdCBzeXRlbSwgc3R5bGUgaW5jbHVkZSBmb3IgbWliZ3JvdXAgaGVhZGVyCgoyMDA0LTA2LTI4IDE1OjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgbW92ZSB2YXIgZGVjbCBiZWZvcmUgZmlyc3Qgc3RhdGVtZW50CgoyMDA0LTA2LTI4IDExOjU0ICBzbGlmCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmaXggc2V0dGluZyBvZiBPU1RZUEUgZm9yIEZyZWVCU0QgYnVpbGQgcGxhdGZvcm1zIChjb25zaWRlciBhY2NvbmZpZy5oKS4KCjIwMDQtMDYtMjggMTE6NDQgIHNsaWYKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgdXNlIGludCBmb3IgYXRvaSwgY2FzdCB0byB1bnNpZ25lZCBzaG9ydDsKICAgdGhpcyBmaXhlcyBidWcgOTgxNDM4IHRyYXBzaW5rIHBvcnQgcmFuZ2UgY2hlY2tzIGFyZSB3cm9uZwoKMjAwNC0wNi0yOCAwNTozNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wNi0yOCAwNTozMiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gbmV3IC0tZW5hYmxlLW1pYi1jb25maWctY2hlY2tpbmcgdG8gZmFpbCBvbiBtb2R1bGUgY29uZmxpY3RzCgoyMDA0LTA2LTI4IDA1OjIyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIC0gYWRkIG5hbWUgdG8gY29udGFpbmVyIHN0cnVjdHVyZQogICAtIG5ldyBtYWNybyB0byBmaW5kIG5hbWVkIGNvbnRhaW5lciBpbiBsaXN0CgoyMDA0LTA2LTI4IDA1OjIxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICByZW1vdmUgY29uZGl0aW9uIGZvciBoZWFkZXIgZnVuY3Rpb24gcHJvdG90eXBlIGdlbmVyYXRpb24KCjIwMDQtMDYtMjggMDU6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgLSByZW1vdmUgZGVwcmVjYXRlZCBsYWJlbCBmcm9tIGZ1bmMsIGFkZCBub3RlIG9uIHByZWZlcnJlZCBmdW5jIGluc3RlYWQKICAgLSBhZGQgc29tZSBuZXRzbm1wX2Fzc2VydHMgJiBkZWJ1ZyBvdXRwdXQKICAgLSByZWR1Y2UgZHVwbGljYXRlZCBjb2RlCiAgICAgLSBuZXRzbm1wX2RhdGFfbGlzdF9hZGRfZGF0YSBub3cgY2FsbHMgbmV0c25tcF9kYXRhX2xpc3RfYWRkX25vZGUKICAgLSBsb2cgd2FybmluZyBpZiBkdXBsaWNhdGUga2V5IGFkZGVkIHRvIGEgZGF0YSBsaXN0CiAgIC0gbmV0c25tcF9hZGRfbGlzdF9kYXRhIG5vdyBjYWxscyBwcmVmZXJyZWQgbmV0c25tcF9kYXRhX2xpc3RfYWRkX25vZGUKCjIwMDQtMDYtMjggMDU6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBhZGQgbWlzc2luZyBkZWZhdWx0CgoyMDA0LTA2LTI4IDA1OjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaWYtbWliL2lmWFRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvLm1pYjJjLXVwZGF0ZXJjOgoKICAgcmMgZmlsZSB1c2VkIGZvciBjb2RlIGdlbmVyYXRpb24KCjIwMDQtMDYtMjggMDU6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaWYtbWliL2lmWFRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgbWliMmMtdXBkYXRlIGRpcnMKCjIwMDQtMDYtMjggMDU6MDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcHJveHkuYywgcHJveHkuaDoKCiAgIEF1dG9tYXRpY2FsbHkgdW5yZWdpc3RlciBwcm94eSBzZXR0aW5ncyBvbiBhZ2VudCBzaHV0ZG93biBvciByZXN0YXJ0LgogICAoQnVnICM3NDg3MzMpCgoyMDA0LTA2LTI4IDA0OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHByb3h5LmMsIHByb3h5Lmg6CgogICBVbnJlZ2lzdGVyIHByb3h5IHJlZ2lzdHJhdGlvbnMgd2hlbiBmcmVlaW5nIHRoZSBjb25maWcgc2V0dGluZ3MuCgoyMDA0LTA2LTI4IDA0OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICBTa2lwIGVtcHR5IGNvbnRleHRzIHdoZW4gZHVtcGluZyB0aGUgaW50ZXJuYWwgTUlCIHJlZ2lzdHJ5LgogICAoUHJvYmFibHkgYXMgYSByZXN1bHQgb2YgcmVtb3ZpbmcgcmVnaXN0cmF0aW9ucykuCgoyMDA0LTA2LTI4IDA0OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIERyb3Agc3BlY2lhbC1jYXNlIGhhbmRsaW5nIG9mICJsby9sbzAiIHNpbmNlIHRoaXMgZ2l2ZXMgYm9ndXMgcmVzdWx0cwogICAoQnVnICM0MjIzOTQpCgoyMDA0LTA2LTI4IDA0OjIxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgRG9uJ3QgdHJ5IHRvIHNldCB0aGUgT0lEIG9mIGEgdmFyaWFibGUgdGhhdCBpc24ndCB0aGVyZS4KICAgKFByb2JhYmx5IHRyaWdnZXJlZCBieSBydW5uaW5nIEdldEJ1bGsgb24gYSAibm9uLXNpbXBsZSIKICAgIHZpZXcgLSBzZWUgQnVnICM3MDYwODkpCgoyMDA0LTA2LTI3IDE4OjM0ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICAtIHJlbmFtZSBuZXRzbm1wX2NhY2hlX2V4dHJhY3RfZnJvbV9yZXFpbmZvIHRvIG5ldHNubXBfY2FjaGVfcmVxaW5mb19leHRyYWN0CgoyMDA0LTA2LTI3IDE4OjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpY21wLmMsIGlwLmMsIHRjcC5jLAogICAgIHVkcC5jOgoKICAgLSB1c2UgbmV0c25tcF9jYWNoZV9pc192YWxpZCBpbnN0ZWFkIG9mIG5ldHNubXBfaXNfY2FjaGVfdmFsaWQKCjIwMDQtMDYtMjcgMTg6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIC0gYWRkIG5hbWUgcGFyYW1ldGVyIHRvIG5ldHNubXBfY2FjaGVfaXNfdmFsaWQKICAgLSBuZXcgbmV0c25tcF9jYWNoZV9yZXFpbmZvX2luc2VydCwgbmV0c25tcF9jYWNoZV9yZXFpbmZvX2V4dHJhY3QKICAgLSB1c2UgQ0FDSEVfTkFNRTpoYW5kbGVyTmFtZSBhcyBkYXRhX2xpc3Qga2V5IGZvciBjYWNoZQogICAgIC0gdGhpcyBmaXhlcyBCdWcgIzk3MzcyOCB0aGUgcmlnaHQgd2F5LiBzZWUgYnVnIHJlcG9ydCBmb3IgZGV0YWlscwoKMjAwNC0wNi0yNyAxNzoxMSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIC0gYWRkIG5ldHNubXBfcmVxdWVzdF9yZW1vdmVfbGlzdF9kYXRhCgoyMDA0LTA2LTI3IDE3OjEwICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaAo6CgogICAtIGFkZCBuZXRzbm1wX2FnZW50X3JlbW92ZV9saXN0X2RhdGEKCjIwMDQtMDYtMjYgMTU6MTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIGFkZCBkZWJ1ZyBtc2cgd2hlbiBtb2R1bGUgcGF0aCBjaGFuZ2VzCiAgIC0gdHdlYWsgZGVidWcgbXNnIG91dHB1dCBpbmRlbnQKCjIwMDQtMDYtMjYgMTU6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtYWtlIG5ldHNubXBfc2V0X21pYl9kaXJlY3RvcnkgYW5kIGhhbmRsZV9taWJzX2NvbmYgY29uc2lzdGVudDoKICAgICAtICctL2RpcicgYWRkcyAvZGlyIGJlZm9yZSBleGlzdGluZyBkaXJzCiAgICAgLSAnKy9kaXInIGFkZHMgL2RpciBhZnRlciBleGlzdGluZyBkaXJzCiAgICAgICBOT1RFOiB0aGlzIHJlc3RvcmVzIG9yaWdpbmFsIGJlaGF2aW9yIG9mICcrJyB0byB0aGF0IG9mIDUuMC4xLiBBZnRlcgogICAgICAgICAgICAgNS4wLjIsIGlmIEkgcmVhZCB0aGUgY29kZSByaWdodCwgJysnIGJlaGF2aW91ciBvbiB0aGUgY21kIGxpbmUgYW5kCiAgICAgICAgICAgICBpbiBNSUJESVJTIHdhcyByZXZlcnNlZCBhbmQgbm90IGNvbnNpc3RlbnQgd2l0aCBoYW5kbGVfbWlic19jb25mLgoKMjAwNC0wNi0yNiAwNjo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1ha2UgbXVsdGlwbGUgbWliZGlycyBpbiBjb25mIGZpbGVzIHdvcmsgd2l0aCAnbGVhc3Qgc3VycHJpc2UnIChpZSBjb21wbGV0ZWx5CiAgICAgcmVwbGFjZSBtaWJkaXJzLCB1bmxlc3MgKyBzcGVjaWZpZWQKICAgLSBuZXcgbWliZGlyIGJlaGF2aW91cjogaWYgLSBzcGVjaWZpZWQsIGFkZCBzcGVjaWZpZWQgZGlycyBiZWZvcmUgZXhpc3RpbmcKICAgICBvbmVzIGluc3RlYWQgb2YgYWZ0ZXIKCjIwMDQtMDYtMjYgMDU6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgU3VwcG9ydCAibXVsdGktdG9rZW4iIG1hc2tzIC0gaS5lLiB1c2luZyBzcGFjZSAocmF0aGVyIHRoYW4KICAgJy4nIG9yICc6JykgdG8gc2VwYXJhdGUgdGhlIG1hc2sgb2N0ZXRzLiAgKFNlZSBidWcgIzcwNjA4OSkKCjIwMDQtMDYtMjYgMDU6MDUgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgV29yayB3aXRoIHRoZSBzYW1lIGNhY2hlIHN0cnVjdHVyZSBjb25zaXN0ZW50bHksCiAgIHJhdGhlciB0aGFuIHJlLWV4dHJhY3RpbmcgaXQgZnJvbSB0aGUgcmVxaW5mbyBzdHJ1Y3R1cmUuCiAgIChTaG91bGQgZml4IEJ1ZyAjOTczNzI4KQoKMjAwNC0wNi0yNSAwNDo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgRml4IHRoZSBjaGVjayBmb3IgYSB2YWxpZCBJQ01QIGNhY2hlCiAgIChTcG90dGVkIGJ5IE9sZWcgSXZhbm92KQoKMjAwNC0wNi0yNSAwMjoxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIEEgbWlzc2luZyAnaXBPdXROb1JvdXRlcycgdmFsdWUgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiAobm90IGFuIGVycm9yKQogICBhbmQgYWxsb3cgYW55IG90aGVyIElQLXJlbGF0ZWQgdmFyYmluZHMgaW4gdGhlIHNhbWUgcmVxdWVzdCB0byBiZSBwcm9jZXNzZWQuCgoyMDA0LTA2LTI0IDEzOjA0ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE1ha2UgLUlyIGVmZmVjdGl2ZSBmb3IgYSBOZXR3b3JrQWRkcmVzcwoKMjAwNC0wNi0yNCAwOTowMSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIC0gbWFrZSBjbG9uZV9oYW5kbGVyIHN0YXRpYywgcmVuYW1lIHRvIF9jbG9uZV9oYW5kbGVyCiAgIC0gZGVsZXRlIGhhbmRsZXIgJiByZXR1cm4gbnVsbCBvbiBjcmVhdGUgaWYgbmFtZSBzdHJkdXAgZmFpbHMKICAgLSBwb3NzaWJsZSBmaXggZm8gOTczNzI4IF0gbWFpbiBicmFuY2ggZmFpbHMgdG8gbG9hZCB0Y3BDb25uZWN0IGFuZCB1ZHAgVGFibGUKICAgICAtIGNvcHkgZmxhZ3MgaW4gX2Nsb25lX2hhbmRsZXIKICAgICAtIHVwZGF0ZSBuZXRzbm1wX2hhbmRsZXJfZHVwIHRvIHVzZSBfY2xvbmVfaGFuZGxlciwgbmV0c25tcF9oYW5kbGVyX2ZyZWUKCjIwMDQtMDYtMjQgMDQ6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggZGVidWcgc3RhdGVtZW50IHBhcmFtZXRlcgoKMjAwNC0wNi0yMyAxMTo1NyAgbmJhCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgRG94eWdlbiBpbnRlcm5hbCBkb2N1bWVudGF0aW9uIGNvbnRyaWJ1dGVkIGJ5IEN5cmlsIE1BUkdBUklBCgoyMDA0LTA2LTIzIDEwOjQ1ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBidWcgOTc4MDg3OiBiYWQgaW5kZXggY2hlY2sgZm9yIE5ldHdvcmtBZGRyZXNzCgoyMDA0LTA2LTIyIDE1OjU3ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEZpeCBjcHUtYnVybmluZyBieSBydW5uaW5nIGFsYXJtcy4gRGlhZ25vc2VkIGJ5IHJncmVhYkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKCjIwMDQtMDYtMjIgMTU6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIGNoZWNrIGZvciBudWxsIHBvaW50ZXIgYWZ0ZXIgYWxsb2NhdGlvbgoKMjAwNC0wNi0yMiAxNTozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYwo6CgogICAtIG1vdmUgZGF0YV9pbml0IGNhbGwgaW50byBpbnRlcmZhY2UgY29kZQogICAtIGNhbGwgZGF0YV9pbml0IGJlZm9yZSBjb250YWluZXJfaW5pdAoKMjAwNC0wNi0yMiAxNToxMyAgbmJhCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBdXRvZGV0ZWN0IC1sZGV2c3RhdCBmb3IgRnJlZUJTRCA1IChhcyB3YXMgZG9uZSBmb3IgNCkKCjIwMDQtMDYtMjIgMDY6MzggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIEZpeCBoYW5kbGluZyBvZiB0YWJsZSByb3cgcmVnaXN0cmF0aW9uIGluIG9sZC1BUEkgKEJ1ZyAjNzAyNDU4KQoKMjAwNC0wNi0yMiAwMjowMyAgZHRzMTIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIFBlcmwgQVBJIGZvciBzZXR0aW5nIE1JQiBwYXJzaW5nIG9wdGlvbnMgKEJ1ZyAjNTU0NzQ5KQoKMjAwNC0wNi0yMSAxMTo0MCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBtaWJfbW9kdWxlcy5oCgoyMDA0LTA2LTIxIDEwOjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBhZGQgZnVuY3Rpb24gdG8gc2V0IHZhbGlkX2NvbHVtbnMKCjIwMDQtMDYtMjEgMDY6MzEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBGaXggZHVwbGljYXRlIGFsbG9jYXRpb24gb2YgbWVtb3J5IHdoZW4gZGVmaW5pbmcgZW51bWVyYXRpb24gbGlzdHMKICAgKEJ1ZyAjOTIzNzY2KQoKMjAwNC0wNi0yMSAwMzoxMiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mOgoKICAgQ29ycmVjdCBkZXNjcmlwdGlvbiBvZiByZXR1cm4gdmFsdWVzIHRvIHVzZSAoQnVnICM5NDc5MjYpCgoyMDA0LTA2LTIxIDAzOjAxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBTZXQgdGhlIHNpemUgZm9yIHBhcnNpbmcgYW4gaW50ZWdlciBjb3JyZWN0bHkgKEJ1ZyAjOTQ3NDAzKQoKMjAwNC0wNi0xOSAxNjo1NiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmg6CgogICBGaXggY29tbWVudCB0eXBvLgoKMjAwNC0wNi0xOSAwNjozNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIG1vZGlmeSBwYXRjaCA5NTYyNzIgdG8gbWFrZSBpdCBTb2xhcmlzMiBzcGVjaWZpYwoKMjAwNC0wNi0xOCAxMzozOCAgcnN0b3J5CgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSBpbnN0YWxsIG5ldyBtaWIyYy11cGRhdGUgYmFzaCBzY3JpcHQKICAgLSBpbnN0YWxsIHRvcCBsZXZlbCBtZmQgY29uZiBmaWxlCiAgIC0gbWFrZSBpbnN0YWxsIHRhcmdldCBkZXBlbmQgb24gJ21hZGUnIHBlcmwgc2NyaXB0cwoKMjAwNC0wNi0xOCAxMjo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGNoYW5nZSB1X2ludDMyX3QgdG8gaW50MzIgdG8gbWFrZSBpdCBtb3JlIHBvcnRhYmxlCgoyMDA0LTA2LTE4IDExOjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBSZW1vdmVkIGEgc2tpcF90b2tlbiB0aGF0IHdhcyBjYXVzaW5nIGEgZm9sbG93LW9uIHRva2VuIHRvIGJlIHNraXBwZWQuCgoyMDA0LTA2LTE4IDExOjQ1ICBoYXJkYWtlcgoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICB1cGRhdGVkIHJmYyBsaXN0IGZvciB1c20tYWVzCgoyMDA0LTA2LTE4IDExOjQyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgLSBGaXhlZCB1c2FnZSBvZiBmX2Zyc2l6ZSB1bmRlciBhcmNoaXRlY3R1cmVzIHRoYXQgaGFkIGl0IGZvciBzdGF0dmZzCiAgICAgYnV0IG5vdCBzdGF0ZnMuCgoyMDA0LTA2LTE4IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwgbWlicy9NYWtlZmlsZS5pbgosIG1pYnMvU05NUC1VU00tQUVTLU1JQi50eHQsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLSBVcGRhdGVkIHRoZSBBRVMgT0lEIHRvIG1hdGNoIHRoZSByZWNlbnRseSBwdWJsaXNoZWQgVVNNL0FFUyBkcmFmdAogICAtIEFkZGVkIHRoZSBVU00tQUVTIE1JQiB0byB0aGUgbGlzdCBvZiBtaWJzLgoKMjAwNC0wNi0xOCAwOTo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBhZGQgbmV3IG1pYjJjLWRhdGEgZGlyIHRvIHNlYXJjaCBwYXRoCgoyMDA0LTA2LTE4IDA5OjQxICByc3RvcnkKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIGFkZCBpbnN0YWxsL3VuaW5zdGFsbCBmb3IgbWZkIG1pYjJjIGZpbGVzCgoyMDA0LTA2LTE4IDA3OjMwICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgU3VwcG9ydCBmb3IgaW50ZXJwcmV0aW5nIEluZXRBZGRyZXNzVHlwZS9JbmV0QWRkcmVzcyBpbmRleGVzIHdpdGhpbiBhbiBPSUQuCiAgIChQYXRjaCAjODQxNjI1IGZyb20gWWl4aW9uZyBab3UpCgoyMDA0LTA2LTE4IDA3OjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBSZWNvZ25pc2UgSW5maW5pYmFuZCBpbnRlcmZhY2VzCiAgIChQYXRjaCAjOTcwNjE3IGZyb20gS2Fub2ogU2FyY2FyKQoKMjAwNC0wNi0xOCAwNjo1NCAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBGaXggaGFuZGxpbmcgb2YgLS1lbmFibGUtbG9jYWwtc211eCBvcHRpb24KICAgKFBhdGNoICM5NDk4MDggZnJvbSBFcmlrIMRuZ2flcmQpCgoyMDA0LTA2LTE4IDA2OjQ2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIEFkZCBzdXBwb3J0IGZvciBhY3RpdmF0aW5nIGFuZCBkZWFjdGl2YXRpbmcgdXNlcnMsCiAgIG5lY2Vzc2FyeSBmb3IgZnVsbCBjb21wbGlhbmNlIHdpdGggUkZDIDM0MTQuIChQYXRjaCAjOTQzNzYyKQoKMjAwNC0wNi0xOCAwNjozOCAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxNTBzb2xhcmlzaG9zdGNwdSwgVDE1MXNvbGFyaXNob3N0ZGlzawosIFQxNTJob3N0dXB0aW1lLCBUMTUzc29sYXJpc3N3YXA6CgogICBVc2UgdHJhbnNwb3J0IHZhcmlhYmxlcyBmb3IgdGVzdGluZyByYXRoZXIgdGhhbiBoYXJkd2lyaW5nIHVkcDpsb2NhbGhvc3QKICAgKFBhdGNoICM5NDAzMDIgZnJvbSBNaWtlIFNsaWZjYWspCgoyMDA0LTA2LTE4IDA2OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBVc2UgL2Rldi9hcnAgcmF0aGVyIHRoYW4gL2Rldi9pcCwgc2luY2UgdGhpcyB3b3JrcyBwcm9wZXJseSB3aXRoIG11bHRpcGxlIHpvbmVzLgogICAoUGF0Y2ggIzk0MDAyNSBmcm9tIEJvYiBSb3dsYW5kcykKICAgW05vIGlkZWEgd2hhdCB0aGlzIG1lYW5zLCBidXQgaXQgc291bmRzIGltcHJlc3NpdmUuLi4uXQoKMjAwNC0wNi0xOCAwNjoyNSAgZHRzMTIKCiAgICogc25tcGxpYi9wa2NzLmM6CgogICBJbml0aWFsaXNlIHBTbG90TGlzdCB0byBndWFyZCBhZ2FpbnN0IGZyZWVpbmcgZ2FyYmFnZS4KICAgKFBhdGNoICM5MzgxMzkgZnJvbSBCb2IgUm93bGFuZHMpCgogICBJZiBnYXJiYWdlIGlzbid0IGtlcHQgc3RyaWN0bHkgY29udHJvbGxlZCwKICAgIHdobyBrbm93cyB3aGF0IHN0YXRlIHNvY2lldHkgbWlnaHQgZ2V0IGludG8uLi4uCiAgIChIb21lc3B1biBwaGlsb3NvcGhpY2FsIG11c2luZ3MgZnJvbSBEYXZlIFNoaWVsZCkKCjIwMDQtMDYtMTggMDY6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgRG9uJ3Qgc2V0IHRoZSBpbmRleCB2YWx1ZSB1bnRpbCB3ZSd2ZSBjaGVja2VkIHRoaXMgaXMgYSB2YWxpZCByZXF1ZXN0LgogICAoUGF0Y2ggIzkzMDcxMiBmcm9tIEpvY2hlbi9DaHJpc3RvcGhlciBQcmljZSkKCjIwMDQtMDYtMTggMDY6MDkgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgRG9uJ3QgaW5jbHVkZSB0aGUgdmlld1RyZWUgbGVuZ3RoIHdoZW4gc2F2aW5nIGEgcGVyc2lzdGVudCB2YWNtVmlldwogICAoUGF0Y2ggIzkyMTI3OSBmcm9tIEJvYiBSb3dsYW5kcykKCjIwMDQtMDYtMTggMDU6NTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmg6CgogICBQYXNzICpwb2ludGVycyogdG8gcmVsb2FkL2NvbXBhcmUgZnVuY3Rpb25zIGludG8gSW5pdGlhbGlzZV9UYWJsZQogICAoUGF0Y2ggIzkyMjUxOSBmcm9tIFJvYmVydCBXaWxjb3gpCgoyMDA0LTA2LTE3IDIwOjU3ICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1MHNvbGFyaXNob3N0Y3B1OgoKICAgcGVyIEJydWNlIFNoYXcsIGluY2x1ZGUgdGhlIE9JRCBmb3IgQ1BVIGRldmljZSBpbiB0aGUgbWF0Y2ggc3RyaW5nLgoKMjAwNC0wNi0xNyAxOTo0MiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIGFwcGx5IHBhdGNoIDk1NjI3MiAtIHVzZSBjb3JyZWN0IHN0cnVjdHVyZSBtZW1iZXIgZm9yIFNvbGFyaXMgaHJQYXJ0aXRpb25TaXplCgoyMDA0LTA2LTE3IDE5OjA5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICAtIGRvY3VtZW50IG5vZGUuZGVzY3JpcHRpb24KCjIwMDQtMDYtMTcgMTk6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICAtIGZpeCByZXR1cm4gY29kZSBmb3IgbWFsbG9jIGZhaWx1cmUKCjIwMDQtMDYtMTcgMTk6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgLSBjb252ZXJ0IGRlYnVnIGNvZGUgdGhhdCBzaG91bGQgaGF2ZSBuZXZlciBiZWVuIGNoZWNrZWQgaW4gdG8gbmV0c25tcF9hc3NlcnQKCjIwMDQtMDYtMTcgMTg6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAtIGFkZCBsb3RzIG9mIGRlYnVnIGZvciB0cmFja2luZyBpbmRleCBwcm9jZXNzaW5nCiAgIC0gbWFrZSBjb2RlIGFuZCBjb21tZW50cyBjb25zaXN0ZW50IHdpdGggZWFjaCBvdGhlcgogICAtIGZpeCBhIDAtYmFzZWQgdnMgMS1iYXNlZCBwcm9ibGVtcyB3aGVuIHVzaW5nIHZhbGlkX2NvbHVtbiB2ZXJpZmljYXRpb24KICAgLSBmaXggY29tcGFyaXNvbiB0byB3cm9uZyB2YXJpYWJsZQogICAtIGR1ZSB0byBvdGhlciBmaXhlcywgaW5pdCB0YmxfcmVxX2luZm8tPmNvbG51bSBlYXJsaWVyCgoyMDA0LTA2LTE3IDE4OjUwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmM6CgogICAtIHVwZGF0ZSBmbG93IGNoYXJ0CiAgIC0gc3dhcCByb3cgY3JlYXRlIC8gY2hlY2sgdmFsdWVzOyBub3QgcXVpdGUgc3VyZSBpZiBJIHNob3VsZCwgdGhvdWdoCgoyMDA0LTA2LTE3IDE4OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLzogaWZYVGFibGUuYywgaWZYVGFibGUuaAosIGlmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBpZmRlZiBvdXQgY29tbWl0IGNvZGUgKGNvbWluZyBzb29uKQoKMjAwNC0wNi0xNyAxODozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCgoyMDA0LTA2LTE3IDE4OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBtYWtlIHN1cmUgdG8gc2V0IGRvbnQgaW52YWxpZGF0ZW9uIHNldCBjYWNoZSBmbGFnCgoyMDA0LTA2LTE3IDE4OjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBpbXBsZW1lbnQgc2V0IG9mIGFkbWluIHN0YXR1cwoKMjAwNC0wNi0xNyAxODozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQogICAtIHNwZWNpYWwgY2FzZSBwcm9jZXNzaW5nIGZvciBpZmFkbWluIHN0YXR1cyAoYnlwYXNzIHNpemVvZiBjaGVjaykKCjIwMDQtMDYtMTcgMTg6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtdXNlIG5ldyBmdW5jdGlvbnMgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2lvY3RsX2ZsYWdzX3NldCwKICAgIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9pb2N0bF9tdHVfZ2V0CiAgIC1uZXcgZnVuY3Rpb24gbmV0c25tcF9hcmNoX3NldF9hZG1pbl9zdGF0dXMKCjIwMDQtMDYtMTcgMTg6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2VfaW9jdGwuYywKICAgICBpbnRlcmZhY2VfaW9jdGwuaDoKCiAgIC1uZXcgZnVuY3Rpb25zIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9pb2N0bF9mbGFnc19zZXQsCiAgICBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW9jdGxfbXR1X2dldAogICAtbW92ZSB3aG9sZSBmdW5jdGlvbnMgaW5zaWRlIGlmZGVmIGNvbmRpdGlvbmFsLCB0byBmb3JjZSBsaW5rIGVycm9ycyBpbnN0ZWFkCiAgICBvZiBhIGZhbHNlIHNlbnNlIG9mIHNlY3VyaXR5IHRoYXQgYW4gaW9jdGwgaXMgYXZhaWxhYmxlCgoyMDA0LTA2LTE3IDE4OjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgZGVmaW5lIHByaXZhdGUgJ2FyY2gnIGZ1bmN0aW9uIHByb3RvdHlwZXMgdG8gcXVlbGwgY29tcGlsZXIgd2FybmluZ3MKCjIwMDQtMDYtMTcgMTg6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtcmVuYW1lIHN0YXRzIHN0cnVjdCBtZW1iZXJzIHRvIG5vdCBtYXRjaCBtYWNybyBuYW1lcwogICAtYWRkIHBvaW50ZXIgJiBtYWNyb3MgZm9yIG9sZCBzdGF0cyB0byBpbnRlcmZhY2UgZW50cnkKICAgLW1vdmUgY29uZiBvdmVycmlkZSBzdHJ1Y3Qvcm91dGluZXMgaGVyZQogICAtYWRkIGluaXQgcm91dGluZSBmb3IgY29uZmlndXJlIHRvIGRldGVjdCAmIGNhbGwKICAgLWFkZCBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2Vfc2V0X2FkbWluX3N0YXR1cwogICAtYWRkIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9lbnRyeV91cGRhdGVfc3RhdHMgdG8gZGVhbCB3aXRoIDMyYml0IGNvdW50ZXIKICAgIHdyYXBzLCB1bmxlc3MgNjRiaXQgY291bnRlcnMgYXJlIGRldGVjdGVkCgoyMDA0LTA2LTE3IDE4OjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgsIHNubXBsaWIvaW50NjQuYzoKCiAgIG5ldyBmdW5jdGlvbnMgdTY0SW5jciwgdTY0VXBkYXRlQ291bnRlciwgdTY0Q29weSwgbmV0c25tcF9jNjRfY2hlY2tfZm9yXzMyYml0X3dyYXAKCjIwMDQtMDYtMTcgMTc6MzYgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgdGVzdCBzZXNzaW9uIHB0ciBiZWZvcmUgdXNpbmcuIGZpeGVzIGJ1ZyAjOTc1MDYzIHNubXBfc2Vzc19jbG9zZSBOVUxMIGRlcmVmCgoyMDA0LTA2LTE3IDA5OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgVXBkYXRlZCB0aGUgZG9jdW1lbnRhdGlvbiB0byBtYWtlIGl0IG11Y2ggbW9yZSBleHRlbnNpdmUgYW5kIGNvbXBsZXRlLgoKMjAwNC0wNi0xNyAwNjozOSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgUGF0Y2ggIDk2ODgzOTogbmV0LXNubXAtY29uZmlnIGZhaWxzIHRvIHByaW50IC1sd3JhcAoKMjAwNC0wNi0xNyAwNjozOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIFBhdGNoICM5NzM3MDI6IFBPRCBkb2N1bWVudGF0aW9uIHBhdGNoIGZyb20gVG9uaSBXaWxsYmVyZwoKMjAwNC0wNi0xNiAwNzo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBnZXR0YWJsZSBjaGFuZ2VzOgogICAgIC0gRG9uJ3QgcmV0cmlldmUgaW5kZXhlcyBzaW5jZSB3ZSBjYWxjdWxhdGUgdGhlbS4KICAgICAtIEJ1ZyBmaXggZm9yIHNlbGYtc3BlY2lmaWVkIGNvbHVtbiBsaXN0cy4KCjIwMDQtMDYtMTYgMDc6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFVzZSBjb3B5X253b3JkIGZvciBhbGwgcmVhZF9jb25maWcgYXV0by1wYXJzaW5nIG9mIHRva2VucyB0byBoZWxwCiAgIHN0cmlwIHF1b3RlcyBpZiB0aGV5IHdlcmUgdXNlZCBldmVuIGZvciBpbnRlZ2Vycy4KCjIwMDQtMDYtMTUgMTk6NTUgIHJzdG9yeQoKICAgKiBzbm1wbGliL210X3N1cHBvcnQuYzoKCiAgIGZpeCBsaWJyYXJ5IHJlc291cmNlIGxvY2tzLCBhcyBub3RlZCBvbiBjb2RlcnMgYnkgWWluZyBIdQoKMjAwNC0wNi0xNSAxNzoyNyAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyM3NubXB2M2dldE1ENUFFUywgVDAyM3NubXB2M2dldE1ENURFUwo6CgogICBjb3JyZWN0IHZhciBQUklWVEVTVEFSR1MgKHdhcyBQUklWVEVTVEZMQUdTKQoKMjAwNC0wNi0xNSAxNTo0MCAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBhcHBseSBwYXRjaCAjOTczNTcyIHBlciBBbGV4IEJ1cmdlciB0byBjbGFyaWZ5IG5hbWluZyBvZiB0aGUgcGFja2FnZSwgZXRjLgoKMjAwNC0wNi0xNSAwNzoyNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDb25zaXN0ZW5jeSB0d2Vha3MgdG8gdGhlIHVzYWdlIG91dHB1dCBtZXNzYWdlLgoKMjAwNC0wNi0xNSAwNjo0MyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIGFwcGx5IHVwZGF0ZWQgcGF0Y2ggYXR0YWNoZWQgdG8gYnVnIzc1ODQzNwogICB1c2UgU05NUF9GUkVFIHRvIG1hbmFnZSBidWZmZXIgcG9pbnRlcgogICBvcGVuIHNvY2tldCBiZWZvcmUgaW5jcmVhc2luZyBidWZmZXIgc2l6ZQoKMjAwNC0wNi0xNSAwNTo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmMsCiAgICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgRGVmaW5lIHRoZSBleGFtcGxlIG5vdGlmaWNhdGlvbiBhcyBhIG5vdGlmaWNhdGlvbiAodXNpbmcgYW4gUkZDMjU3Ni1zYWZlCiAgIE9JRCksIHJhdGhlciB0aGFuIGEgTUlCIG9iamVjdCwgYW5kIGRlZmluZSBleGFtcGxlIGNvbXB1bHNvcnkgYW5kIG9wdGlvbmFsCiAgIHBheWxvYWQgb2JqZWN0cy4gVHdlYWsgdGhlIGV4YW1wbGUgY29kZSB0byB1c2UgdGhlc2UgbmV3IGRlZmluaXRpb25zLgoKMjAwNC0wNi0xNSAwNDoyOSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmM6CgogICBhcHBseSBwYXRjaCBmcm9tIHRyb250b3IgdG8gZml4IGJ1ZyA5NDI0OTggTmV0QlNEIDIuMEQgYW5kIGFib3ZlIHVzZSBzdGF0dmZzCgoyMDA0LTA2LTE0IDEyOjAyICBzbGlmCgogICAqIHdpbjMyLzogTWFrZWZpbGUuaW4sIGRpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwKICAgICBkaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBhcHBseSBwYXRjaCAjOTcyNzE1IFdpbjMyIGJ1aWxkOiBtYWtlZmlsZSwgcmVhZG1lIGFuZCAubnNpIHNjcmlwdCBjaGFuZ2VzCiAgIHRoZXNlIGJhY2sgb3V0IHR3byBwcmV2aW91cyBjaGFuZ2VzIGFuZCBmaXhlcyBhIHByb2JsZW0gY3JlYXRpbmcgc25tcGNvbmYuYmF0CgoyMDA0LTA2LTE0IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogYWdlbnQucG0sIGFnZW50LnhzLCB0ZXN0LnBsOgoKICAgSW1wbGVtZW50ZWQgJHJlcXVlc3QtPnNldEVycm9yKCkgdG8gc2V0IGVycm9yIGNvZGVzIGZvciByZXF1ZXN0cy4KCjIwMDQtMDYtMTQgMTA6MDMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgcGF0Y2ggZnJvbSBNYXRoaWFzIFNjaGVsZXIgZml4ZXMgYnVnICM4MDU5NTYgYnkgYWx0ZXJpbmcgY29uZGl0aW9uYWwKICAgY2hlY2tzIGZvciBOZXRCU0QgYW5kIERhcndpbiBkZWZpbmVzLgoKMjAwNC0wNi0xMiAwODowNCAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBkeXNsZXhpYyAgcy1NLW4tcCAgdG8gcy1uLU0tcAoKMjAwNC0wNi0xMiAwODowMSAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dCwKICAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBwYXRjaCA5NzEyNjMgV2luZG93cyBpbnN0YWxsZXIgc2NyaXB0IGNoYW5nZSBjb21wb25lbnQgbGFiZWwrZGVzY3IKCjIwMDQtMDYtMTIgMDc6NTUgIHNsaWYKCiAgICogd2luMzIvOiBidWlsZC5iYXQsIGluc3RhbGwtbmV0LXNubXAuYmF0LAogICAgIG5tYWtlcGVybC5iYXQsIGRpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaSwKICAgICBsb2NhbC9taWIyYy5iYXQsIGxvY2FsL3NubXBjb25mLmJhdCwKICAgICBsb2NhbC90cmFwdG9lbWFpbC5iYXQ6CgogICBjb252ZXJ0IC5iYXQgZmlsZXMgdG8gdXNlIERPUyBDUi1MRiBsaW5lIHRlcm1pbmF0aW9uLgogICBhcHBseSBwYXRjaCA5NzE0NzEgTlNJIGluc3RhbGxlciBzY3JpcHQgZml4ZXMgYWRkcmVzc2luZyBsaW5lLWVuZCBwcm9ibGVtcy4KCjIwMDQtMDYtMTEgMTc6MzggIHNsaWYKCiAgICogd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlICJlcmFzZSB3YXRjaGVyLm9iaiIsIGZvciBhIGZpbGUgdGhhdCBpcyBtYW5hZ2VkIGluIGxpYmhlbHBlcnMgcHJvamVjdC4KCjIwMDQtMDYtMTEgMTU6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpOgoKICAgZGVmYXVsdCBjYWNoZSB0byBub3QgaW52YWxpZGF0ZSBvbiBzZXQKCjIwMDQtMDYtMTEgMTU6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGRlZmF1bHQgdG8gYWxsb2NhdGVkIHVuZG8gY29udGV4dCwgZXZlbiBpZiBkYXRhIGNvbnRleHQgaXMgZW1iZWRkZWQKICAgLSBmaXggbWlzYXNzaWduZWQgY2FsbGJhY2sgZnVuY3Rpb24KICAgLSBhZGQgbWlzc2luZyBicmFjZXMgZm9yIG11bHRpbGluZSBjb25kaXRpb25hbAoKMjAwNC0wNi0xMSAxNTozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIC0gZGVmYXVsdCB0byBhbGxvY2F0ZWQgdW5kbyBjb250ZXh0LCBldmVuIGlmIGRhdGEgY29udGV4dCBpcyBlbWJlZGRlZAogICAtIGFkZCBjb2RlIHRvIGhhbmRsZSBwZXIgY29sdW1uIGJlaGF2aW9yIG9uIGNvbW1pdAogICAtIGFkZCBub3RlIG9uIHVuZG8gY29udGV4dCB3aGVuIGRhdGEgaW5pdCBpcyBzZXQKCjIwMDQtMDYtMTEgMTU6MzUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtMmNfc2V0dXBfdGFibGUubTJpLCBtZmQtZGF0YS1nZXQubTJjCiwgbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYywgbWZkLXRvcC5tMmM6CgogICAtIGRlZmF1bHQgdG8gYWxsb2NhdGVkIHVuZG8gY29udGV4dCwgZXZlbiBpZiBkYXRhIGNvbnRleHQgaXMgZW1iZWRkZWQKCjIwMDQtMDYtMTEgMTU6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaToKCiAgIC0gdHdlYWsgdG8gd29yayBldmVuIGZvciBnZW5lcmF0ZWQgZGF0YSBjb250ZXh0cwogICAtIGZpeCB2YXIgdHlwbywgY29tbWVudCB0eXBvCgoyMDA0LTA2LTExIDE1OjMwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICAtIHJlbW92ZSBvdmVybHkgY29uZnVzaW5nIG1ldGhvZCBmb3IgY2hhbmdpbmcgZGVmYXVsdHMsIGJlY2F1c2UgaXQgd2FzCiAgICAgY29uZmxpY3Rpbmcgdy9jb21tYW5kIGxpbmUgdmVyc2lvbi4gbWF5YmUgcmV2aXNpdCBsYXRlcgogICAtIGRlZmF1bHQgKGZhbHNlKSBmb3IgbmV3IHVuZG9fZW1iZWQKCjIwMDQtMDYtMTEgMTM6MTQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgUmV0dXJuIGFscmVhZHkgZ2F0aGVyZWQgcmVzdWx0cyBldmVuIGlmIGdldGJ1bGsgZmFpbHMgdG8gcmV0dXJuIHRoZQogICBleHBlY3RlZCBkYXRhICh0eXBpY2FsbHkgZHVlIHRvIGVuZC1vZi1taWIgY29uZGl0aW9ucykuCgoyMDA0LTA2LTExIDEzOjEzICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgTWVudGlvbiB0aGF0IHRoZSBjb25maWd1cmUgc2NyaXB0IHZlcnNpb24gbnVtYmVyIG5lZWRzIGNoYW5naW5nLgoKMjAwNC0wNi0xMSAxMDoxOCAgc2xpZgoKICAgKiB3aW4zMi9NYWtlZmlsZS5pbjoKCiAgIHBhdGNoIDk3MTExMyAibm1ha2UgY2xlYW4iIHZpc2l0cyBsaWJzbm1wIGFuZCBsaWJzbm1wX2RsbCBldmVyeSB0aW1lLgoKMjAwNC0wNi0xMCAyMTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gbmV3IG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9lbnRyeV9ndWVzc19zcGVlZAogICAtIG5ldyBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfZW50cnlfb3ZlcnJpZGVzCiAgIC0gcmVzdG9yZSBpZl9hZG1pbl9zdGF0dXMKICAgLSBhZGQgcGxhdGZvcm0gc3BlY2lmaWMgaWZfZmxhZ3MsICYgZGVmaW5lIGZvciBmbGFncyB0byBpbmRpY2F0ZSBhdmFpbGFiaWxpdHkKICAgLSBzcGVjaWZ5IGFsbCA0IGhleCBieWVzIGZvciBmbGFnIGRlZmluZXMKCjIwMDQtMDYtMTAgMjE6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2UuaCwKICAgICBpbnRlcmZhY2VfbGludXguYzoKCiAgIC0gbGludXggcmVxdWlyZXMgbmV3IGlvY3RsIGludGVyZmFjZSBhY2Nlc3MKICAgLSB1c2UgaW9jdGwgZm9yIGh3YWRkciwgaWZfZmxhZ3MKICAgLSBndWVzcyBpZiB0eXBlIGJhc2VkIG9uIG5hbWUgaWYgbm90IGtub3duCiAgIC0gbW92ZSBnZXRJZlNwZWVkIGNvZGUgJiByZW5hbWUgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2xpbnV4X2dldF9pZl9zcGVlZAoKMjAwNC0wNi0xMCAyMDo0NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZV9pb2N0bC5jLAogICAgIGludGVyZmFjZV9pb2N0bC5oOgoKICAgLSBuZXcgaW9jdGwgaW50ZXJmYWNlIGFjY2VzcwoKMjAwNC0wNi0xMCAyMDo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLCBpZlRhYmxlLmg6CgogICAtIG1vdmUgYWRtaW4gc3RhdHVzIGJhY2sgdG8gaW50ZXJmYWNlIGVudHJ5CiAgIC0gdXNlIGRlc2NyaXB0aW9uIGZyb20gaW50ZXJmYWNlIGVudHJ5CgoyMDA0LTA2LTEwIDEwOjU5ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIHBlciBBbmR5IFNtaXRoLCBhcHBseSBwYXRjaCAjOTcwNDgwIFdpbjMyIFJFQURNRS5idWlsZC53aW4zMi50eHQgdXBkYXRlCgoyMDA0LTA2LTA5IDIwOjI4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDUuaDoKCiAgIGFwcGx5IGNoYW5nZXMgaWRlbnRpZmllZCBpbiBwYXRjaCAjOTY5MzM4IHBhdGNoZXMgZm9yIEZyZWVCU0QgNS54IHN1Y2Nlc3NmdWwgYnVpbGQKCjIwMDQtMDYtMDkgMTg6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvOiBpZlhUYWJsZS5jLCBpZlhUYWJsZS5oCiwgaWZYVGFibGVfY29uc3RhbnRzLmgsIGlmWFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZYVGFibGVfZGF0YV9hY2Nlc3MuaCwgaWZYVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWZYVGFibGVfaW50ZXJmYWNlLmg6CgogICAtIFVwZGF0ZSBmb3IgTUZEIGdlbmVyYXRlZCBjb2RlIGNoYW5nZXMgKyBzd2l0Y2ggdG8gYSBtaXhlZC1tb2RlIGRhdGEgY29udGV4dCArCiAgICAgSUYtTUlCIGNoYW5nZXMKICAgLSByZW1vdmUgYWJpbGl0eSB0byBidWlsZCBpbmRlcGVuZGVudCBvZiBpZlRhYmxlCgoyMDA0LTA2LTA5IDE4OjQ4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmMsIGlmVGFibGUuaCwKICAgICBpZlRhYmxlX2NvbnN0YW50cy5oLCBpZlRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmVGFibGVfaW50ZXJmYWNlLmg6CgogICAtIFVwZGF0ZSBmb3IgTUZEIGdlbmVyYXRlZCBjb2RlIGNoYW5nZXMgKyBzd2l0Y2ggdG8gYSBtaXhlZC1tb2RlIGRhdGEgY29udGV4dCArCiAgICAgSUYtTUlCIGNoYW5nZXMKICAgLSB1c2UgbmV3IHBhcmFtIHRvIHNhdmUgaW50ZXJmYWNlIGVudHJ5IHcvZ2VuZXJhdGVkIGNvbnRleHQKICAgLSBmb3IgZGF0YSBmcm9tIG5ldHNubXBfaW50ZXJmYWNlX2VudHJ5LCB1c2UgI2RlZmluZXMgc28gZ2VuZXJhdGVkIGNvZGUgZG9lc24ndAogICAgIGNoYW5nZSAoZWcgZGVmaW5lIGlmTmFtZSBpZmVudHJ5LmlmX25hbWUpLiB3b3JrcyBmb3IgbW9zdCBjYXNlcwogICAtIGFkZCBnZW5lcmF0ZWQgc3RvcmFnZS9kZWZpbmVzIGZvciBpZlhUYWJsZSBjb2x1bW5zIHRvIGRhdGEgY29udGV4dAogICAtIGNoYW5nZSBjYWNoZSB0aW1lb3V0IHRvIDMwIHNlY29uZHMKICAgLSB1c2UgbmV3IGNhY2hlIGZlYXR1cmVzIHRvIGF1dG8gbG9hZCBhbmQgYXV0byByZWZyZXNoIGNhY2hlCiAgIC0gdXNlIG5ldyBVTktOT1dOIGlmT3BlclN0YXR1cyBmb3IgaW50ZXJmYWNlcyB0aGF0IHZhbmlzaAogICAtIHVzZSBuZXcgaW50ZXJmYWNlIGNvcHkgZnVuY3Rpb24gd2hlbiB1cGRhdGluZyBjYWNoZQogICAtIG9ubHkgdXBkYXRlIExhc3RDaGFuZ2VkIG9uIGlmT3BlclN0YXR1cyBjaGFuZ2VzCgoyMDA0LTA2LTA5IDE4OjM3ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIHBlciBBbmR5IFNtaXRoLCBhcHBseSBwYXRjaCM5Njg4MDAgU05NUENPTkZQQVRIIGZpeCBmb3IgV2luMzIgYmluYXJ5IGluc3RhbGxlcgogICBhbmQgcGF0Y2ggIzk3MDAxMiBSZW1vdmUgc25tcGNvbmYucGwgZnJvbSBXaW5kb3dzIGluc3RhbGxlcgoKMjAwNC0wNi0wOSAxODozMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGlmVGFibGUvZGVmYXVsdC10YWJsZS1pZlRhYmxlLm0yZCwKICAgICBpZlhUYWJsZS9kZWZhdWx0LXRhYmxlLWlmWFRhYmxlLm0yZDoKCiAgIC0gc3dpdGNoIHRvIGEgbWl4ZWQtbW9kZSBkYXRhIGNvbnRleHQKICAgICAtIGNoZyBkYXRhIGNvbnRleHQgdG8gZGVmYXVsdCBnZW5lcmF0ZWQKICAgICAtIGRvbid0IGFsbG9jYXRlIGRhdGEgY29udGV4dAogICAgIC0gZG8gcmVxdWVzdCBhIGluaXQgY2FsbCBmb3IgbmV3IGNvbnRleHRzCgoyMDA0LTA2LTA5IDE4OjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSByZW1vdmUgbWliIHNwZWNpZmljIHN0dWZmIChpZl9hbGlhcywgaWZfYWRtaW5fc3RhdHVzLCBpZl9saW5rX3VwZG93bl90cmFwKQogICAgIChzdGlsbCBub3Qgc3VyZSBhYm91dCBsYXN0IGNoYW5nZWQgYW5kIGRpc2NvbnRpbnVpdHkpCiAgIC0gbmV3IGZ1bmN0aW9uIHRvIGNvcHkgaW50ZXJmYWNlIGVudHJ5IGRhdGEKICAgLSBtYWtlIGNhbGxiYWNrIGZ1bmN0aW9ucyBzdGF0aWMKCjIwMDQtMDYtMDkgMTc6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGlmIGRhdGFfaW5pdCBzZXQsIGFkZCB1c2VyIHZvaWQgcG9pbnRlciB0byBhbGxvY2F0ZV9yb3dyZXFfY3R4LCBhbmQgcGFzcyBpdAogICAgIHRvIHJvd3JlcV9jdHhfaW5pdAogICAtIGZpeCB0d28gdHlwb3MgaW4gY29kZSBvbmx5IGdlbmVyYXRlZCB3aGVuIGRhdGFfaW5pdCBpcyBzZXQKICAgLSByZWxlYXNlIHVuZG8gZGF0YSBpbiBmcmVlX3Jvd3JlcV9jdHgKICAgLSBkb24ndCBnZW5lcmF0ZSB1bmRvIHNldHVwIGNvZGUgZm9yIG5vbi1zZXR0YWJsZSBjb2x1bW5zCgoyMDA0LTA2LTA5IDE3OjQ5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCiwgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaSwKICAgICBtZmQtdG9wLm0yYzoKCiAgIC0gaWYgZGF0YV9pbml0IHNldCwgYWRkIHVzZXIgdm9pZCBwb2ludGVyIHRvIGFsbG9jYXRlX3Jvd3JlcV9jdHgsIGFuZCBwYXNzIGl0CiAgICAgdG8gcm93cmVxX2N0eF9pbml0CgoyMDA0LTA2LTA5IDE3OjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIC0gY29udmVydCBjb250YW50IHByZWZpeGVzIHRvIHVwcGVyY2FzZQogICAtIGFkZCAnX3ZhbCcgc3VmZml4IHRvIGFsbCBub2RlIHBhcmFtZXRlciBuYW1lcwoKMjAwNC0wNi0wOSAxNzo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLW5vZGUubTJpOgoKICAgYWRkIGRlc2NyaXB0aW9uCgoyMDA0LTA2LTA5IDAyOjM3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIHBlciBNaWtlIEhlaXNsZXIsIGZpeCBidWcgIzkzNjQ4MyAocmVzdG9yZSBzc2l6ZV90KS4KCjIwMDQtMDYtMDggMjE6NTUgIHNsaWYKCiAgICogYWNjb25maWcuaDoKCiAgIFVwZGF0ZSB0byB3aW4zMiBpZmRlZiB0byBpbmNsdWRlIG90aGVyIGVudmlyb25tZW50cwoKMjAwNC0wNi0wOCAxMzo1NiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBmaXggYnVpbGQgZmFpbHVyZSAobm8gc3VjaCBtZW1iZXIga3BfY29tbSwgZXRjLikgZm9yIEZyZWVCU0QgNS54CgoyMDA0LTA2LTA4IDEzOjUzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICBmaXggYnVpbGQgZmFpbHVyZSAobm8gc3VjaCBtZW1iZXIgeHRfdHApIGZvciBGcmVlQlNEIDQueCBhbmQgRnJlZUJTRCA1LngKCjIwMDQtMDYtMDggMTM6NTAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIGZpeCBjb21waWxlIGZhaWx1cmUgKG5vIGlucF9uZXh0IGluIHN0cnVjdCBpbnBjYikgZm9yIEZyZWVCU0QgNC54IGFuZCA1LngKCjIwMDQtMDYtMDggMTM6MzYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgZml4IGJ1ZyA4OTU2NzkgYnkgZW5zdXJpbmcgdXBwZXIgbGltaXQgdHJhY2tzIGJ1ZmZlciBhbGxvY2F0aW9uL2ZyZWUgYWN0aW9ucy4KCjIwMDQtMDYtMDggMTI6MDMgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDUuaDoKCiAgIHJlbW92ZSB1bm5lY2Vzc2FyeSB1bmRlZiBvZiBTVFJVQ1RfU1RBVEZTX0hBU19GX0ZBVkFJTCAobmV2ZXIgaXMgZGVmaW5lZCkuCgoyMDA0LTA2LTA4IDEwOjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRhdGEtc2V0Lm0yYywgcGFyZW50LXNldC5tMmkKOgoKICAgLSBjb21tZW50cyBhYm91dCBmbGFnIGFuZCBkZWZpbmVzIGZvciB0cmFja2luZyB3aGljaCBjb2x1bW5zIGhhdmUgYmVlbiBzZXQKICAgLSBtaXNzZWQgYSBmZXcgZXJyb3IgZGVmaW5lIHVwZGF0ZXMKCjIwMDQtMDYtMDggMTA6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLW9pZHMubTJjLAogICAgIG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYywKICAgICBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaToKCiAgIGFkZCBmbGFnIGFuZCBkZWZpbmVzIGZvciB0cmFja2luZyB3aGljaCBjb2x1bW5zIGhhdmUgYmVlbiBzZXQKCjIwMDQtMDYtMDcgMTk6NTIgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZpeCBzZXR0aW5nIG9mIE9TVFlQRSBmb3IgRnJlZUJTRCBidWlsZCBwbGF0Zm9ybXMuCgoyMDA0LTA2LTA3IDE5OjQ3ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q1Lmg6CgogICBjcmVhdGUgc3lzdGVtIGluY2x1ZGUgZmlsZSBmb3IgRnJlZUJTRCA1LnggYnVpbGQgcGxhdGZvcm1zLgoKMjAwNC0wNi0wNyAxOTo0NCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYzoKCiAgIHJlbW92ZSB1bnVzZWQgY29kZSBpbiBzd2FwbW9kZQoKMjAwNC0wNi0wNyAxMjozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHJlY2hlY2sgcGVyc2lzdGVudCBwYXRoIGluIGxvb3AsIHNpbmNlIGl0IG1pZ2h0IGNoYW5nZQoKMjAwNC0wNi0wNyAxMjoyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgc3BlY2lmeSBmdWxsIDMyIGJpdHMgZm9yIGhhbmRsZXIgZmxhZ3MKCjIwMDQtMDYtMDcgMTI6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIC0gYWx3YXlzIGNvbnNpZGVyIGNhY2hlIHcvdGltZW91dCBvZiAtMSBhcyBleHBpcmVkIChsb2FkIGNhY2hlIGV2ZXJ5IHJlcXVlc3QpCiAgIC0gYWRkIE5FVFNOTVBfQ0FDSEVfRE9OVF9GUkVFX0JFRk9SRV9MT0FEICYgTkVUU05NUF9DQUNIRV9BVVRPX1JFTE9BRCBmbGFncwogICAtIGFkZCBleGFtcGxlIHVzYWdlcyBzY2VuYXJpb3MgYW5kIHN1Z2dlc3RlZCBmbGFncwogICAtIGFkZCBuZXRzbm1wX2NhY2hlX3RpbWVyX3N0YXJ0ICYgbmV0c25tcF9jYWNoZV90aW1lcl9zdG9wCiAgIC0gY2xlYXIgZXhwaXJlZCBmbGFnIGFmdGVyIGNhY2hlX2xvYWQKICAgLSBhZGQgYW5vdGhlciBub3RlIGFib3V0IHBvdGVudGlhbCBjYWNoZSBpc3N1ZSB3L2RlbGVnYXRlZCByZXF1ZXN0cwogICAgIChzb21lIGxvY2tpbmcvcmVmZXJlbmNlIGNvdW50IG1lY2hhbmlzbSBpcyBuZWVkZWQpCgoyMDA0LTA2LTA3IDExOjUwICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgLSBhY2NlcHQgYWJicmV2aWF0ZWQgdmVyc2lvbnMgb2Ygc29tZSBmbGFncwogICAtIHBvaW50IGluZGVudC1vcHRvaW5zIGF0IGEgcmVhbCBkaXJlY3RvcnkKICAgLSBkb24ndCBzdWJzdGl0dXRlIHByZWZpeCBtdWx0aXBsZSB0aW1lcwoKMjAwNC0wNi0wNyAxMTo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgZml4IGNvbW1lbnQgcmVmIGZvciBpbnRlZ2VyIGZyb20gTlVMTCB0byAwCgoyMDA0LTA2LTA3IDExOjM5ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIHNraXAgc2NwIGlmIGJhYyByYyBmcm9tIGN2cyBjb21tYW5kCgoyMDA0LTA2LTA3IDExOjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgcmVhbWUgJGlfSURYMiB0byAkSV9DVVNUT01fU09SVCB0byByZWR1Y2UgY29uZnVzaW9uCgoyMDA0LTA2LTA3IDExOjM2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSB1c2UgbmV3IHNpbXBsaWZpZWQgZXJyb3JzCiAgIC0gYWRkIG1pc3NpbmcgdW5kb19jb21taXQsIHVuZG9fY2xlYW51cCBzdGF0ZXMKICAgLSBtb3ZlIHByZS9wb3N0IHJlcXVlc3QgaW5pdCBvdXRzaWRlIG1pYjJjIGNvbmRpdGlvbmFsCiAgIC0gbW92ZSB1bmRvIGRhdGEgY29udGV4dCByZWxlYXNlIHRvIHVuZG9fY2xlYW51cAogICAtIHZhbGlkYXRlIHJjIGZyb20gbm9kZSBjaGVjayB2YWx1ZSByb3V0aW5lCgoyMDA0LTA2LTA3IDExOjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIC0gdXNlIG5ldyBzaW1wbGlmaWVkIGVycm9ycwogICAtIG1vcmUgaGVscCB0ZXh0IGZvciBkaXN0aW5jdGlvbiBiZXR3ZWVuIHdyb25nVmFsdWUvaW5jb25zaXN0ZW50VmFsdWUKCjIwMDQtMDYtMDcgMTE6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICAtIHVzZSBuZXcgc2ltcGxpZmllZCBlcnJvcnMKICAgLSBtb3JlIGhlbHAgdGV4dCBmb3IgdmFsaWRhdGVfaW5kZXgKICAgLSBpbmNsdWRlIGJhYnktc3RlcHMgZmxvdy1jaGFydCBiZWZvcmUgc2V0IGZ1bmN0aW9ucwogICAtIGFkZCBtaXNzaW5nIHVuZG9fY29tbWl0LCB1bmRvX2NsZWFudXAgc3RhdGVzCgoyMDA0LTA2LTA3IDExOjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtdmFyYmluZC12YWxpZGF0ZS5tMmk6CgogICB1c2UgU05NUHYyIGVycm9ycyBpbnN0ZWFkIG9mIHYxIGVycm9ycwoKMjAwNC0wNi0wNyAxMToyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gdHVybiBvZmYgaW5kZW50IGFyb3VuZCBjb25maWdfcmVxdWlyZSAoZG9lc24ndCBsaWtlICAnLycgb3IgJy0nIGNoYXJzKQogICAtIHNpbXBsaWZ5IHNvbWUgZXJyb3IgZGVmaW5lIG5hbWVzCgoyMDA0LTA2LTA3IDExOjIxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICB1cGRhdGUgc29tZSBxdWVzdGlvbi9oZWxwIHRleHQKCjIwMDQtMDYtMDcgMTE6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1jb25zdGFudHMubTJjOgoKICAgcmVzdG9yZSBmb3JlYWNoIHRhYmxlCgoyMDA0LTA2LTA3IDExOjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMubWZkLmNvbmY6CgogICByZXZlcnQgY2hhbmdlcyBmb3Igc2V0dGluZyBzb21lIG1pYjJjIGRlZmF1bHRzICh1c2UgbWliMmMgLVMgeHh4IGluc3RlYWQpCgoyMDA0LTA2LTA3IDExOjEzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgcGFzcyBleHRyYSBhcmdzIHRvIG1pYjJjCgoyMDA0LTA2LTA3IDExOjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICAtIGNoYW5nZSBleGFtcGxlIGNvbW1lbnQgYmxvY2sgc28gaW5kZW50IHdpbGwgaW5kZW50IGl0CiAgIC0gc2tpcCBzdWJzdGl0dXRpb24gY2hlY2tzIGlmIHRoZXkgd29uJ3QgbWF0Y2gKICAgLSBhcHBseSBkYXZlJ3MgaGFjayBmb3IgOTM5MDQxOiAuLi4gYmFkIG1hY3JvIG5hbWUgaWZmIGVudW0gY29udGFpbnMgaHlwaGVuCgoyMDA0LTA2LTA3IDA4OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC86IGV4dGVuZC5jLCBleHRlbmQuaDoKCiAgIEJhY2t3YXJkcy1jb21wYXRhYmlsaXR5IGltcGxlbWVudGF0aW9uIG9mIHRoZSBVQ0QtU05NUC1NSUI6OmV4dFRhYmxlCiAgIChpZiB0aGUgdWNkLXNubXAvZXh0ZW5zaWJsZSBtb2R1bGUgaXNuJ3QgY29uZmlndXJlZCBpbikuCgoyMDA0LTA2LTA3IDAxOjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLAogICAgIHVjZC1zbm1wL2V4dGVuc2libGUuYywgdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICAgIHVjZC1zbm1wL3Bhc3MuaCwgdWNkLXNubXAvcGFzc19wZXJzaXN0Lmg6CgogICBNb3ZlICdnZXRfZXh0ZW5faW5zdGFuY2UnIGludG8gdGhlIHV0aWxpdHkgZnVuY3Rpb24gZmlsZSwKICAgc28gdGhhdCB0aGUgdHdvIHBhc3MgaGFuZGxlcnMgYXJlbid0IGRlcGVuZGVudCBvbiAnZXh0ZW5zaWJsZScKCjIwMDQtMDYtMDYgMjM6NDcgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBGaXggd2FybmluZ3MgYWJvdXQgbWlzc2luZyBtb2R1bGVzIHdoZW4gdGhlcmUgYXJlIHJlcGxhY2VtZW50cyBmb3IgdGhlbQoKMjAwNC0wNi0wNiAxNjo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGN2cyBzZXJ2ZXIgbmFtZSBjaGFuZ2UKCjIwMDQtMDYtMDQgMTM6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmdlbmh0bWwuY29uZjoKCiAgIHJlbW92ZSByZWR1bmRhbnQgcmVmZXJlbmNlIHJvdyBmcm9tIG91dHB1dAoKMjAwNC0wNi0wNCAxMzozOSAgaGFyZGFrZXIKCiAgICogbWlicy9ub2RlbWFwOgoKICAgYWRkZWQgYSBub2RlbWFwIGZvciBodG1sIG91dHB1dCBnZW5lcmF0aW9uCgoyMDA0LTA2LTA0IDEzOjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBtYWtlIGh0bWwgb3V0cHV0IGRpc3BsYXkgdGhlIHJlZmVyZW5jZSBpbiBpdGFsaWNzIGluIHRoZSBkZXNjcmlwdGlvbiBmaWVsZHMuCgoyMDA0LTA2LTA0IDEzOjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYywgbWFuL21pYjJjLmNvbmYuNToKCiAgIG1ha2UgJHgucmVmZXJlbmNlIGV4cGFuZCB0byBhIG9iamVjdHMgcmVmZXJlbmNlCgoyMDA0LTA2LTA0IDEzOjM2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgbWFrZSBTTk1QOjpNSUIgb2JqZWN0cyBoYW5kbGUgYSAncmVmZXJlbmNlJyBrZXl3b3JkLgoKMjAwNC0wNi0wNCAxMzozNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gU2F2ZWQgdGhlIHZhbHVlIG9mIHBhcnNlZCByZWZlcmVuY2UgY2xhdXNlcy4KCjIwMDQtMDYtMDQgMDU6NTEgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQSBsaXR0bGUgZXJyb3ItY2hlY2tpbmcgd2hlbiBmb3J3YXJkaW5nLCBhbmQgY2hhbmdlIGZwcmludGYgdG8gc25tcF9sb2cKCjIwMDQtMDYtMDQgMDM6MTcgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgUHJvcGVybHkgZnJlZSBwcmludGJ1ZmZlcgoKMjAwNC0wNi0wNCAwMzowOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIE1ha2Ugc3VyZSBhbGwgcmVnaXN0cmF0aW9uIGFyZSByZW1vdmVkIGZvciBleGVjJ3MKCjIwMDQtMDYtMDQgMDI6NDUgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQcm90ZWN0IGFnYWluc3QgZ2FyYmxlZCBwYWNrZXRzIHdpdGggYmFkIHBhY2tldCB0eXBlcwoKMjAwNC0wNi0wNCAwMTo1NyAgbmJhCgogICAqIG1hbi9zbm1wX2FwaS4zLmRlZjoKCiAgIFNpbXBsZSBzcGVsbGluZyBmaXgKCjIwMDQtMDYtMDQgMDE6MTUgIG5iYQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBkdXAgaW5zdGFsbGF0aW9uIG9mIHNjcmlwdHMgYWZ0ZXIgYWRkaXRpb24gb2YgLS1kaXNhYmxlLXNjcmlwdHMKCjIwMDQtMDYtMDQgMDA6MjAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICB1bmRvIHByZXZpb3VzIGNoYW5nZSwgc2luY2UgaW50cm9kdWN0aW9uIG9mIGZyZWVic2Q1LmggaGVhZGVyIGRlZmluZXMgZnJlZWJzZDQuCgoyMDA0LTA2LTAzIDEyOjU5ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgZml4IGJ1ZyAjOTQzMzUxIGJ5IGNvbnNpZGVyaW5nIGZyZWVic2Q1IHdoZW4gZGVjbGFyaW5nICJoeiIuCgoyMDA0LTA2LTAyIDE3OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGVmYXVsdC1tZmQtdG9wLm0yYywgbWZkLWRhdGEtZ2V0Lm0yYwosIG1mZC1yZWFkbWUubTJjOgoKICAgZml4IGEgZmV3IG1pc3NlZCBwcm9jZXNzaW5nX3R5cGUgdHdlYWtzCgoyMDA0LTA2LTAyIDA1OjM3ICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgcGVybC9TTk1QL1JFQURNRSwgd2luMzIvQ29uZmlndXJlCiwgd2luMzIvYnVpbGQucGwsIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0LAogICAgIHdpbjMyL25tYWtlcGVybC5iYXQsIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dAosIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZvciB3aW4zMiBkb2MgYW5kIHNjcmlwdHMsIG1hdGNoIHRoZSBiYXNlIGRpcmVjdG9yeSB1c2VkIGFzIGN1cnJlbnQgZGVmYXVsdC4KCjIwMDQtMDYtMDEgMDI6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgSGFuZGxlIHJvdyBkZWxldGlvbiAoYW5kIGZhaWxlZCByb3cgY3JlYXRpb24pIHByb3Blcmx5LgogICBNb3ZlIHJvdyBjcmVhdGlvbiBhbmQgbmV3IHZhbHVlIGFzc2lnbm1lbnRzIHRvIHRoZWlyIG5hdHVyYWwKICAgcGFzc2VzLCB3aXRoIGEgc2Vjb25kIChzZXBhcmF0ZSkgY2hlY2sgZm9yIHJvdyB2YWxpZGl0eS4KICAgKGZvbGxvd2luZyBSb2JlcnQncyBzdWdnZXN0aW9uKQoKMjAwNC0wNi0wMSAwMjoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBGaXggY29tcGlsYXRpb24gcHJvYmxlbXMgZm9sbG93aW5nIHRoZSBhZGRpdGlvbiBvZiAncmVsb2NhdGFiaWxpdHknLgogICBFbnN1cmUgdGhhdCB0aGUgInN0YW5kYXJkIiBsb2NhdGlvbiBpcyByZWdpc3RlcmVkIGF1dG9tYXRpY2FsbHkKICAgKHNvIHRoZSBudW1Sb3dzIG9iamVjdCBpcyBwcmVzZW50LCBldmVuIHdpdGggYW4gb3RoZXJ3aXNlIGVtcHR5IHRhYmxlKS4KCjIwMDQtMDUtMjcgMjA6MDYgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgdXBkYXRlIHN0YXR1cyB0byByZWZsZWN0IHNubXB0cmFwZCBjYW4gYmUgcnVuIGFzIGEgV2luZG93cyBzZXJ2aWNlLgoKMjAwNC0wNS0yNyAwNTozNyAgZHRzMTIKCiAgICogQ09QWUlORzoKCiAgIENvcnJlY3QgdGhlIG51bWJlciBvZiBjb3B5cmlnaHQgbm90aWNlcwogICBsaXN0ZWQsIGFuZCB0aGUgdGV4dCBvZiB0aGUgU3BhcnRhIG9uZS4KICAgKEkgdHJ1c3QgdGhpcyBpcyBPSywgV2VzISkKCjIwMDQtMDUtMjYgMDE6MzkgIGR0czEyCgogICAqIFJFQURNRS5hZ2VudHg6CgogICBSZW1vdmUgd2FybmluZ3Mgb2YgQWdlbnRYICJiZXRhLXN0YXR1cyIuCiAgIChJIGtub3cgSSdtIGdvaW5nIHRvIHJlZ3JldCBkb2luZyB0aGlzLi4uLikKCjIwMDQtMDUtMjUgMDg6NTQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBBY2NlcHQgdGhlIHNhbWUgc2VjdXJpdHkgbGV2ZWwgdG9rZW5zIGFzIHVzZWQgaW4gdGhlCiAgICJyW3dvXXVzZXIiIGFuZCAiYWNjZXNzIiBkaXJlY3RpdmVzLgoKMjAwNC0wNS0yNCAwMzozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBleHRlbmQuYywgZXh0ZW5kLmg6CgogICBJbXBsZW1lbnQgcmVsb2NhdGFibGUgZm9ybSBvZiBhZ2VudCBleHRlbnNpb24gdGFibGUuCgoyMDA0LTA1LTI0IDAzOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIEltcGxlbWVudCAncnVuLW9uLXdyaXRlJyBzdXBwb3J0LCBhbmQgdXNlIGl0IHRvIGhhbmRsZSBhCiAgIG5ldyAnZXhlY0ZpeCctc3R5bGUgZGlyZWN0aXZlLgoKMjAwNC0wNS0yMyAxMDo0MSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBwZXIgQW5keSBTbWl0aDogYXBwbHkgcGF0Y2ggWzk1Nzk0Ml0gV2luMzIgc2VydmljZSBpbnN0YWxsIHBhdXNlCgoyMDA0LTA1LTIxIDEwOjEwICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY2hlY2sgZm9yL3Byb2Nlc3MgZGVsZWdhdGVkIHJlcXVlc3RzIGluIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzCgoyMDA0LTA1LTIwIDIxOjA5ICBzbGlmCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGlnbm9yZSBmYWlsdXJlIHJlc3VsdCBzaG91bGQgY3ZzIGNoZWNrb3V0IGNvbmRpdGlvbiBub3QgYXBwbHkuCiAgIFRoaXMgcGVybWl0cyBidWlsZHMgb3V0c2lkZSBDVlMgdHJlZSB0byBzdWNjZWVkLgoKMjAwNC0wNS0yMCAxNjowMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgTWlub3Igd29yZGluZzogYWRkZWQgdGFibGUgbmFtZSB0byAiaW5kZXgiIGFuZCAib3RoZXIgY29sdW1ucyIgbGluZS4KCjIwMDQtMDUtMjAgMTU6NDcgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICByZW1vdmUgY2hhbmdlcyBhY2NpZGVudGlhbGx5IGFwcGxpZWQgdGhhdCB3ZXJlbid0IHJlYWR5CgoyMDA0LTA1LTIwIDE1OjA1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IFZlcnNpb24tTXVuZ2UucGwsIG1pYjJjLmdlbmh0bWwuY29uZjoKCiAgIC0gYWRkZWQgc3VwcG9ydCBmb3Igbm90aWZpY2F0aW9uIGRlc2NyaXB0aW9ucwoKMjAwNC0wNS0xOSAxODowOSAgc2xpZgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIGFkZCBnZXRfdGNfZGVzY3JpcHRpb24gYW5kIGluaXRfdXNtX2NvbmYgdG8gdGhlIGV4cG9ydGVkIHN5bWJvbHMgbGlzdC4KCjIwMDQtMDUtMTkgMTg6MDIgIHNsaWYKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIFBlcm1pdCBDeWd3aW4gYnVpbGQgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgYmFja3NsYXNoIHBydW5pbmcgYW5kIHNpbmdsZSBsZXR0ZXIgdm9sdW1lIHNwZWNpZmllci4KCjIwMDQtMDUtMTkgMTc6NTQgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9kaXN0L1JFQURNRS50eHQsCiAgICAgd2luMzIvZGlzdC9odG1saGVscC9Db25maWd1cmF0aW9uX092ZXJ2aWV3Lmh0bWw6CgogICBwZXIgQWxleCBCdXJnZXI6ICBzbm1wY29uZiBkYXNoIGxpdHRsZS1leWUKCjIwMDQtMDUtMTkgMTY6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBmaXggcGFyc2luZyBvZiBleHBsaWNpdCBoYW5kbGVyIHR5cGVzCgoyMDA0LTA1LTE5IDEzOjE0ICBoYXJkYWtlcgoKICAgKiBtYW4vbWliMmMuY29uZi41OgoKICAgdXBkYXRlIGFmdGVyIGEgbWliMmMgdXBkYXRlCgoyMDA0LTA1LTE5IDEzOjEzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICAtIHN1cHBvcnQgYSB0YWJsZSBvZiBjb250ZW50cwogICAtIG5hbWUgYWxsIG5vZGVzIHVzaW5nIGh0bWwgbmFtZXMKICAgLSBzdXBwb3J0IGEgdHJlZS12aWV3CiAgIC0gbWlzYyBidWcgZml4ZXMKCjIwMDQtMDUtMTkgMTM6MTIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBzdXBwb3J0ICJmb3JlYWNoICRpIHN0dWZmIExJU1QiCiAgIC0gdXNlIHVuc2hpZnQgaW5zdGVhZCBvZiBwdXNoIGZvciBjYWxsZGVmaW5lIHRvIGVuc3VyZSBwcm9wZXIgcmVjdXJzaW9uCiAgIC0gcmVnZXhwIG11bmdpbmcKCjIwMDQtMDUtMTkgMTA6MzAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIGxvYWQgdGhlIGNhY2hlIGZvciByZXNlcnZlMSAob3RoZXJ3aXNlIGEgZ2V0IGlzIHJlcXVpcmVkIGJlZm9yZSBzZXQgd29ya3MpCgoyMDA0LTA1LTE4IDEzOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBhbGxvdyBmb3IgdXNlciBvdmVycmlkZSBvZiBtZmQgb3B0aW9uIGRlZmF1bHRzCgoyMDA0LTA1LTE4IDEzOjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICBhbGxvdyBmb3IgaW50ZXJhY3RpdmUgc2V0dXAgb2YgbWZkIG9wdGlvbnMKCjIwMDQtMDUtMTggMTM6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIGFsbG93IGZvciBpbnRlcmFjdGl2ZSBzZXR1cCBvZiBvcHRpb25zOyB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGUKCjIwMDQtMDUtMTggMTM6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGUKCjIwMDQtMDUtMTggMTM6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBzZXQgdmFyYmluZCBlcnJvciBvbiBjb2x1bW4gc2V0IGVycm9yOyBhbHdheXMgY2FsbCByb3dfcHJlcDsgY29tbWVudCB0d2Vha3M7IHVzZSAkY29udGV4dAogICBpbnN0ZWFkIG9mICR0YWJsZQoKMjAwNC0wNS0xOCAxMzo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgc2V0IHZhcmJpbmQgZXJyb3Igb24gY29sdW1uIHNldCBlcnJvcjsgY29tbWVudCB0d2Vha3M7IHVzZSAkY29udGV4dCBpbnN0ZWFkIG9mCiAgICR0YWJsZTsgc2VwYXJhdGUgbWZkX3Byb2Nlc3NpbmdfdHlwZXMgZnJvbSBtMmNfcHJvY2Vzc2luZ190eXBlCgoyMDA0LTA1LTE4IDEzOjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRhdGEtZ2V0Lm0yYywgbWZkLXRvcC5tMmM6CgogICBjb21tZW50IHR3ZWFrczsgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlOyBzZXBhcmF0ZSBtZmRfcHJvY2Vzc2luZ190eXBlcwogICBmcm9tIG0yY19wcm9jZXNzaW5nX3R5cGUKCjIwMDQtMDUtMTggMTM6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYzoKCiAgIGNvbW1lbnQgdHdlYWtzOyB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGU7IHJlbW92ZSBkYXRhIHNldHVwIGZyb20gcm93X3ByZXAKCjIwMDQtMDUtMTggMTE6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaQo6CgogICBjb21tZW50IHR3ZWFrczsgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlCgoyMDA0LTA1LTE4IDExOjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaToKCiAgIGNvbW1lbnQgdHdlYWtzOyB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGU7IGRlZmF1bHQgdG8gc2V0dGluZyB1cCBkYXRhCiAgIGNvbnRleHQgaW4gY2FjaGVfbG9hZCwgaW5zdGVhZCBvZiByb3dfcHJlcAoKMjAwNC0wNS0xOCAxMToyNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaToKCiAgIGNvbW1lbnQgdHdlYWtzOyBhc3N1bWUgbWFwcGluZyBhbHJlYWR5IGRvbmU7IHNldCBsZW4gdG8gbWF4IHNpemUgYmVmb3JlCiAgIGNoZWNraW5nIGlmIGl0IGlzIGxhcmdlIGVub3VnaCB0byBob2xkIGEgdmFsdWUKCjIwMDQtMDUtMTggMTE6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaToKCiAgIGNvbW1lbnQgdHdlYWtzOyBsb2cgZXJyb3IgaWYgbm90IGVub3VnaCBzcGFjZSBmb3IgdmFyCgoyMDA0LTA1LTE4IDExOjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmk6CgogICB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGU7IGNvbW1lbnQgdHdlYWtzCgoyMDA0LTA1LTE4IDExOjEyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaToKCiAgIGZpeCBjYXNlIG9mIHNvbWUgY29uc3RhbnRzCgoyMDA0LTA1LTE4IDEwOjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1jb25zdGFudHMubTJjLAogICAgIGdlbmVyaWMtdGFibGUtZW51bXMubTJjLCBnZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlOyBtYWtlIGdlbmVyaWMtdGFibGUtKGVudW1zfG9pZHMpIG9ubHkgcnVuIG9uIGN1cnJlbnQKICAgdGFibGU7IGFkZCB0YWJsZSBsb29wIGluIGdlbmVyaWMtdGFibGUtY29uc3RhbnRzCgoyMDA0LTA1LTE4IDEwOjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIGFkZCBkZWJ1ZyB0cmFjaW5nIGZvciBzZXQgZnVuY3Rpb25zCgoyMDA0LTA1LTE4IDEwOjM1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGV0YWlscy10YWJsZS5tMmksCiAgICAgZ2VuZXJpYy1jdHgtY29weS5tMmksIGdlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmksCiAgICAgZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy12YXJiaW5kLXNldHVwLm0yaSwgbWZkLXJlYWRtZS5tMmMKOgoKICAgY29tbWVudCB0d2Vha3M7IGNoZyAkdGFibGUgdG8gJGNvbnRleHQKCjIwMDQtMDUtMTggMDI6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogZXh0ZW5kLmMsIGV4dGVuZC5oOgoKICAgV3JpdGUgc3VwcG9ydCwgaW5jbHVkaW5nIFJvd1N0YXR1cy1iYXNlZCBjcmVhdGlvbiBvZiBuZXcgKHZvbGF0aWxlKSByb3dzLgogICBUaGUgY29kZSBuZWVkcyBhIGJpdCBvZiB0aWR5aW5nIHVwLCBidXQgc2VlbXMgdG8gYmUgcmVhc29uYWJseSBmdW5jdGlvbmFsLgoKMjAwNC0wNS0xOCAwMjowMSAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIE1pbm9yIHR3ZWFrcy4KCjIwMDQtMDUtMTcgMjA6MDYgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgcGVyIEFuZHkgU21pdGgsIGFwcGx5IHBhdGNoICMgOTU1NTc5IHRvIGNvbXBsZXRlIG1pbm9yIGNoYW5nZXMgdG8gaW5zdGFsbCB0YWJzLgoKMjAwNC0wNS0xNyAxOTo1OCAgc2xpZgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwKICAgICBodG1saGVscC9JbnRyb2R1Y3Rpb24uaHRtbCwgaHRtbGhlbHAvTmV0LVNOTVAuaGhjLAogICAgIGh0bWxoZWxwL05ldC1TTk1QLmhocDoKCiAgIEFkanVzdCB1c2FnZSB0byBhY2NvdW50IGZvciByZW1vdmVkIHNwYWNlIGZyb20gcGF0aG5hbWVzIG9mIEhUTUwgaGVscCBmaWxlcy4KCjIwMDQtMDUtMTcgMTk6NTIgIHNsaWYKCiAgICogd2luMzIvZGlzdC9odG1saGVscC86IENvbmZpZ3VyYXRpb24gT3ZlcnZpZXcuaHRtbCwKICAgICBDb25maWd1cmF0aW9uX092ZXJ2aWV3Lmh0bWwsIERldmVsb3BlciBGQVEuaHRtbCwKICAgICBEZXZlbG9wZXJfRkFRLmh0bWwsIEhlbHAgQ2F2ZWF0cy5odG1sLAogICAgIEhlbHBfQ2F2ZWF0cy5odG1sOgoKICAgcmVtb3ZlIHNwYWNlIGZyb20gcGF0aG5hbWVzIG9mIEhUTUwgaGVscCBmaWxlcy4KCjIwMDQtMDUtMTcgMTU6NDUgIHNsaWYKCiAgICogd2luMzIvZGlzdC9SRUFETUUudHh0OgoKICAgcGVyIEFsZXggQnVyZ2VyLCBvbmUtbGluZSBjaGFuZ2UgKGxpbmUgMTU5LCBjaGFuZ2UgcGVyaW9kIHRvIGNvbG9uKS4KCjIwMDQtMDUtMTcgMDc6MTMgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdCwKICAgICB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dAosIHdpbjMyL2Rpc3QvaHRtbGhlbHAvQ29uZmlndXJhdGlvbiBPdmVydmlldy5odG1sLAogICAgIHdpbjMyL2xvY2FsL01ha2VmaWxlLmluLCB3aW4zMi9sb2NhbC9taWIyYy5iYXQsCiAgICAgd2luMzIvbG9jYWwvc25tcGNvbmYuYmF0LCB3aW4zMi9sb2NhbC90cmFwdG9lbWFpbC5iYXQKOgoKICAgcGVyIEFsZXggQnVyZ2VyOiB0ZXN0IGV4aXN0ZW5jZSBvZiBwZXJsOyBwcm92aWRlIGFjY2VzcyB0byBtb3JlIFBlcmwgcHJvZ3JhbXMuCgoyMDA0LTA1LTE3IDA2OjQ0ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIHBlciBBbmR5IFNtaXRoOiBhcHBseSBwYXRjaCAjOTU1MjU1IHRvIGVuaGFuY2UgdGhlIE5TSVMgaW5zdGFsbGVyLgoKMjAwNC0wNS0xNyAwNTozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBleHRlbmQuYywgZXh0ZW5kLmg6CgogICBJbXBsZW1lbnQgdGhlIG11bHRpLXJvdyBvdXRwdXQgTUlCIHRhYmxlLgoKMjAwNC0wNS0xNCAwNDoyMiAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIE9vcHMhICBDbG9zZSAtIGJ1dCBpdCdzIGEgZ29vZCBqb2IgSSBkb24ndCBzbW9rZS4uLi4KCjIwMDQtMDUtMTMgMjE6MjMgIHNsaWYKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgcGVyIEFsZXhCOiBkZXNjcmliZSBmdXJ0aGVyIGRldGFpbHMgb2YgYnVpbGRpbmcgKGNyZWF0aW5nIGVtcHR5IGZpbGVzLCBldGMpLgoKMjAwNC0wNS0xMyAyMToxMyAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS50eHQ6CgogICBwZXIgQWxleEI6IGFkZGVkIHNlY3Rpb24gImNvLWV4aXN0aW5nIHdpdGggbSQgc2VydmljZXMiCgoyMDA0LTA1LTEzIDIwOjI5ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyLzogQWRkMlBhdGgubnNpLCBTZXRFblZhci5uc2ksCiAgICAgbmV0LXNubXAtaGVhZGVyMS5ibXAsIG5ldC1zbm1wLm5zaToKCiAgIFBlciBBbmR5IFNtaXRoOiBwYXRjaCBbOTUyNTA5XSB0byBmaXggbGluayBuYW1lcyBmb3IgdGhlIHNlcnZpY2UgcmVnaXN0cmF0aW9uIGJhdGNoIGZpbGVzLgoKMjAwNC0wNS0xMyAyMDoxMiAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBQZXIgQWxleCBCdXJnZXIgYW5kIEFuZHkgU21pdGg6IHVwZGF0ZWQgaW5zdHJ1Y3Rpb25zIGZvciBjcmVhdGluZyBhIHdpbjMyIGluc3RhbGxhYmxlIHBhY2thZ2UuCgoyMDA0LTA1LTEzIDIwOjA0ICBzbGlmCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIHJlbW92ZSBORVRTTk1QX0NQUF9XUkFQIG1hY3JvcwoKMjAwNC0wNS0xMyAwNTowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBleHRlbmQuYywgZXh0ZW5kLmg6CgogICBTcGxpdCBuZXcgZXh0ZW5zaW9uIHRhYmxlIGludG8gdHdvIChjb25maWd1cmF0aW9uIGFuZCBvdXRwdXQpLgogICBJbXBsZW1lbnQgc2NhbGFyIHRvIHRyYWNrIHRoZSBudW1iZXIgb2YgZW50cmllcy4KICAgUGFyc2UgbXVsdGktbGluZSBvdXRwdXQgdG8gaW1wbGVtZW50ICduc0V4dGVuZE91dHB1dDFMaW5lJyBvYmplY3QuCgoyMDA0LTA1LTEzIDA0OjA2ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgU2VwYXJhdGUgY29uZmlndXJhdGlvbiBhbmQgb3V0cHV0IGludG8gc2VwYXJhdGUgdGFibGVzLCBhcyBzdWdnZXN0ZWQuCiAgIERyb3AgJ291dHB1dCBsZW5ndGgnIG9iamVjdCBhcyBwcm9iYWJseSB1bm5lY2Vzc2FyeS4KICAgTmV3IHNjYWxhciB0byB0cmFjayB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIHRhYmxlLgogICBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGlzIGdyb3VwIHdpbGwgbm90IGJlIGVtcHR5LAogICBldmVuIHdoZW4gbm8gZXh0ZW5zaW9ucyBhcmUgY29uZmlndXJlZCBmb3IgYSBnaXZlbiBhZ2VudC4KICAgKEknbSBzdGlsbCBub3QgaGFwcHkgd2l0aCBzb21lIG9mIHRoZSBuYW1lcywgdGhvdWdoISkKCjIwMDQtMDUtMTEgMDM6NTkgIHNsaWYKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBjbGVhbnVwIGVycm9yIG1lc3NhZ2VzLiBjbGFyaWZ5IFNDTSBpbnRlcmFjdGlvbnMgd2l0aCB3b3JrZXIgdGhyZWFkIGluIGNvbW1lbnRzLgoKMjAwNC0wNS0xMSAwMzoxMiAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIEZpeCBzb21lIFNNSSBlcnJvcnMuCiAgIFdlcyBjYW4gYmUgYSBwaWNreSBiZWdnYXIgYXQgdGltZXMuLi4uCgoyMDA0LTA1LTEwIDE3OjUwICBzbGlmCgogICAqIHdpbjMyL2Rpc3Qvc2NyaXB0cy9uZXQtc25tcC1wZXJsLXRlc3QucGw6CgogICBwZXIgQWxleCBCdXJnZXIgLSBhZGQgbWlzc2luZyB0ZXN0IHNjcmlwdC4KCjIwMDQtMDUtMTAgMTM6NDkgIGhhcmRha2VyCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIEFub3RoZXIgZG9jIHVwZGF0ZSBmcm9tIEFsZXgKCjIwMDQtMDUtMTAgMDM6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogZXh0ZW5kLmMsIGV4dGVuZC5oOgoKICAgUHJlbGltaW5hcnkgaW1wbGVtdGF0aW9uIG9mIG5ldyBuc0V4dGVuZFRhYmxlCgoyMDA0LTA1LTEwIDAzOjQ0ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgUmV2aXNlZCBNSUIgZm9yIHNjcmlwdGVkIGV4dGVuc2lvbnMuCiAgIChUbyByZXBsYWNlIFVDRC1TTk1QLU1JQjo6ZXh0VGFibGUpCgoyMDA0LTA1LTEwIDAzOjQxICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBEZWZlbnNpdmUgcHJvZ3JhbW1pbmcgLSBkb24ndCBjcmFzaCBvbiBOVUxMIHBhcmFtZXRlcnMuCgoyMDA0LTA1LTEwIDAzOjQwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIEV4dGVybmFsIEFQSSBmb3IgY2hlY2tpbmcgYW5kIHJlbG9hZGluZyBhIGNhY2hlZCB2YWx1ZS4KICAgV2Vha2VuIHRoZSBsaW5rcyBiZXR3ZWVuIHRoaXMgaGVscGVyIGFuZCAnbnNDYWNoZVRhYmxlJy4KCjIwMDQtMDUtMDcgMTU6NDEgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBSZW1vdmUgZHVwbGljYXRlIGVudHJ5IGZvciBGUk5FVFNFUlYtTUlCCgoyMDA0LTA1LTA3IDE1OjE5ICBuYmEKCiAgICogbWlicy86IEV0aGVyTGlrZS1NSUIudHh0LCBJQU5BaWZUeXBlLU1JQi50eHQsCiAgICAgcmZjbWlicy5kaWZmOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgTUlCIHZlcnNpb25zCgoyMDA0LTA1LTA3IDE1OjA0ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBUaGUgd29yZCBQUkVGSVggaXMgbm90IGVuZGFuZ2VyZWQgZm9yIHN1YnN0aXR1dGlvbiwgc28gbWFrZSBpdCBsb29rIG5vcm1hbAoKMjAwNC0wNS0wNyAxNDozNCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggZm9yIHRydW5jYXRlZCBvaWQgd2hlbiB1c2luZyBPQkpFQ1QgSURFTlRJRklFUiBhcyBpbmRleAoKMjAwNC0wNS0wNyAxNDoxNSAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXggdG8gYWxsb3cgc3BlY2lmeWluZyBudW1lcmljIG9pZCBmb3IgdGFibGUKCjIwMDQtMDUtMDYgMjA6MTUgIHNsaWYKCiAgICogcGVybC9TTk1QLzogUkVBRE1FLCBTTk1QLnBtOgoKICAgUGVyIEFsZXggQnVyZ2VyLCBhZGQgbmFtZXMgdG8gYWNrbm93bGVkZ2UgdGhlIGluZGl2aWR1YWwgY29udHJpYnV0b3JzLgoKMjAwNC0wNS0wNiAxOTo0MSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgaW5zdGFsbGVyL25ldC1zbm1wLm5zaQo6CgogICByZWZsZWN0IHRoYXQgUkVBRE1FLUZJUlNULnR4dCBhbmQgSW5zdGFsbGF0aW9uLmh0bWwgaGF2ZSBiZWVuIG1lcmdlZCBpbnRvIFJFQURNRS50eHQKCjIwMDQtMDUtMDYgMTk6MDIgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgUGVyIEFuZHkgU21pdGgsIHBhdGNoICM5NDI3NjYgY3JlYXRlcyBTTk1QQ09ORlBBVEggYW5kIFNOTVBTSEFSRVBBVEggYXMgc3lzdGVtIGVudiB2YXJzLgoKMjAwNC0wNS0wNiAxODo1NCAgc2xpZgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIFBlciBBbmR5IFNtaXRoLCBkb24ndCBzaG93IG1lc3NhZ2UgZGlhbG9ncyB3aGVuIHJlZy91bnJlZyBPSyAocGF0Y2ggOTQ4OTI2IGZpeGVzIGJ1ZyA5NDgxNDYpLgoKMjAwNC0wNS0wNiAxODowMSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLUZJUlNULnR4dCwgUkVBRE1FLmJ1aWxkLndpbjMyLnR4dAosIFJFQURNRS50eHQsIGh0bWxoZWxwL0NvbmZpZ3VyYXRpb24gT3ZlcnZpZXcuaHRtbAosIGh0bWxoZWxwL0hlbHAgQ2F2ZWF0cy5odG1sLAogICAgIGh0bWxoZWxwL0luc3RhbGxhdGlvbi5odG1sLCBodG1saGVscC9OZXQtU05NUC5oaGMsCiAgICAgaHRtbGhlbHAvTmV0LVNOTVAuaGhwLCBodG1saGVscC9zbm1wLmNvbmYud2luMzIuaHRtbDoKCiAgIHBhdGNoIHdpbmRvd3MgYnVpbGQgcGFja2FnaW5nIHBlciBBbGV4IEJ1cmdlcidzIHBhdGNoLXdpbjMyLTUuMS4yLWNsZWFudXAuZGlmZgoKMjAwNC0wNS0wNiAwODozMSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG1vdmUgdmFyIGRlY2wgdG8gdG9wIG9mIGJsb2NrIHNjb3BlOyBhZGQgaGVhZGVyIHRvIHF1aWV0IHByb3RvdHlwZSB3YXJuaW5nCgoyMDA0LTA1LTA1IDE0OjQxICBuYmEKCiAgICogbWlicy9pYW5hbGlzdDoKCiAgIEFkZCBJQU5BLU1BTExPQy1NSUIKCjIwMDQtMDUtMDUgMTM6NDkgIG5iYQoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgUHJvdGVjdCBvaWQgdGFibGUgYWdhaW5zdCBvdmVyZmxvdwoKMjAwNC0wNS0wNSAwNzozNCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNoZWNrIHNob3VsZF9pbml0IGJlZm9yZSBpbml0aWFsaXppbmcgc211eAoKMjAwNC0wNS0wNCAxNjozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzX2xvY2FsLmNvbmY6CgogICBGaXggYSBoZWFkZXIgcHJvdG90eXBlIGRlY2xhcmF0aW9uCgoyMDA0LTA1LTA0IDA3OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jLCB2YWNtX2NvbmYuYywKICAgICB2YWNtX2NvbmYuaCwgdmFjbV92YXJzLmg6CgogICBTcGxpdCBWQUNNIGhhbmRsaW5nIGludG8gdHdvIC0gb25lIGNvbmNlcm5lZCB3aXRoIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcwogICBhbmQgdmFsaWRhdGluZyBhY2Nlc3MsIHRoZSBvdGhlciB0byBoYW5kbGUgdGhlIE1JQiB0YWJsZSByZXByZXNlbnRhdGlvbi4KICAgVGhpcyBhbGxvdyB0aGUgYWdlbnQgdG8gc3VwcG9ydCBWQUNNLWJhc2VkIGFjY2VzcyBjb250cm9sIHdpdGhvdXQgbmVjZXNzYXJpbHkKICAgaW5jbHVkaW5nIHRoZSBWQUNNLXJlbGF0ZWQgdGFibGVzLgoKMjAwNC0wNS0wNCAwNzoxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXB1c20uYwosIGFwcHMvc25tcHRyYXBkLmM6CgogICBNb3ZlIFVTTSBjb25maWcgaGFuZGxpbmcgaW50byB0aGUgbGlicmFyeSwgc28gaXQgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuCiAgIGFnZW50IGFuZCB0cmFwIGhhbmRsZXIuICAgVGhpcyBhbHNvIHBhdmVzIHRoZSB3YXkgZm9yIHNlcGFyYXRpbmcKICAgY29uZmlnLWJhc2VkIGhhbmRsaW5nIG9mIHNldHRpbmcgdXAgdXNlcnMgZnJvbSB0aGUgVVNNIE1JQiBoYW5kbGVyLgoKMjAwNC0wNS0wNCAwMToxMyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDb25maWd1cmUgaW5kZW50IHRvIHJlY29nbmlzZSAnc2l6ZV90JyBhcyBhIHR5cGUgbmFtZSAoQnVnICM5NDY5MzkpCgoyMDA0LTA1LTAzIDE1OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIFNldCBubyByZXBlYXQtY291bnQgdG8gMSB3aGVuIG5vZ2V0YnVsayBpcyBzcGVjaWZpZWQgZm9yIG1hdGggcHVycG9zZXMuCgoyMDA0LTA1LTAzIDE0OjE5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBTb2xhcmlzIENQVV9XQUlUIGxvb2tzIHN0cmFuZ2Ugb24gc29tZSBzZXJ2ZXJzLiBVcGRhdGUgdG8gc2FtZSBhbGdvcml0aCB0b3AgdXNlcwoKMjAwNC0wNC0zMCAxNzowMCAgaGFyZGFrZXIKCiAgICogbWlicy9tYWtlaHRtbC5wbDoKCiAgIE1hbnkgbWlzYyBjaGFuZ2VzIGFuZCBpbXByb3ZlbWVudHMuCiAgICAtIE5vdyB0YWtlcyBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGZvciBjaGFuZ2luZyBNSUJESVJzIGFuZCBvdXRwdXQgZGlycy4KICAgIC0gYWNjZXB0cyBhIG5vZGVtYXAgdG8gbWFwIE1JQnMgdG8gb3RoZXIgbm9kZXMuCgoyMDA0LTA0LTMwIDE1OjUyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBBZGRlZCBhIHRvdWNoIG9mIGNvbG9yLgoKMjAwNC0wNC0zMCAxNTo1MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG1pYjJjLmdlbmh0bWwuY29uZgoKMjAwNC0wNC0zMCAxMToxOSAgaGFyZGFrZXIKCiAgICogbWlicy86IE1ha2VmaWxlLmluLCBtYWtlaHRtbC5wbDoKCiAgIC0gQSBtYWtlIHJvdXRpbmUgdG8gZ2VuZXJhdGUgYSBIVE1MIGR1bXAgb2Ygb3VyIERpc3RyaWJ1dGVkIE1JQnMuCiAgICAgLSBJbnN0YWxsZWQgYXQgaHR0cDovL3d3dy5OZXQtU05NUC5vcmcvbWlicy8KCjIwMDQtMDQtMjggMTc6MjQgIGhhcmRha2VyCgogICAqIG1hbi9taWIyYy5jb25mLjU6CgogICB1cGRhdGUgYWZ0ZXIgZXh0cmFjdGlvbgoKMjAwNC0wNC0yOCAxNzoyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBtYW55IG1vcmUgdXBkYXRlcyBhbmQgZG9jdW1lbnRhdGlvbiBmb3IgbWliMmMgY29tbWFuZHMuCgoyMDA0LTA0LTI4IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gZG9jdW1lbnQgbW9yZSBhbmQgY2xlYW4gdXAgJHZhci5YWFggY29tbWVudHMKCjIwMDQtMDQtMjggMTY6NDcgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIE9ubHkgYnVpbGQgdGhlIG1pYjJjLmNvbmYgbWFuIHBhZ2UgaWYgY29taW5nIGZyb20gYSBjdnMgY2hlY2tvdXQKICAgICAtIGF2b2lkcyBwZXJsIGRlcGVuZGVuY2llcyBvbiBlbmQtdXNlciBtYWNoaW5lcy4KCjIwMDQtMDQtMjggMTY6NDUgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBtaWIyYy5jb25mLjUsIG1pYjJjLmNvbmYuNS5pbgosIG1pYjJjLmV4dHJhY3QucGw6CgogICBOZXcgZG9jdW1lbnRhdGlvbiBmb3IgaG93IHRvIHdyaXRlIG1pYjJjLmNvbmYgZmlsZXMuCiAgICAgLSBub3RlLCBtdWNoIGlzIGF1dG8tZXh0cmFjdGVkIGZyb20gY29tbWVudHMgaW4gbWliMmMuCgoyMDA0LTA0LTI4IDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGNvbnN0cnVjdCBjb21tZW50cyBiZXR0ZXIgZm9yIGF1dG8tZXh0cmFjdGlvbiBpbnRvIGEgbWFudWFsIHBhZ2UuCgoyMDA0LTA0LTI4IDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBOZXcgbWliMmMuZ2VuaHRtbC5jb25mIGNvZGUgdG8gZ2VuZXJhdGUgYSBIVE1MIGRvY3VtZW50IGZyb20gYSBNSUIKICAgZG9jdW1lbnQgdG8gbWFrZSBpdCBlYXNpZXIgdG8gcmVhZC4KCjIwMDQtMDQtMjggMTU6NDcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBuZXcgQHN0YXJ0cGVybEAgLyBAZW5kcGVybEAgZGVmaW5pdGlvbnMgdG8gY29tcGxldGVseSBvdXRzb3VyY2Ugc29tZQogICAgIHRleHQgdG8gYSBsYXJnZSBibG9jayBvZiBwZXJsLgogICAtIGFkZGVkIG1pYjJjX291dHB1dCgpIHRvIG91dHB1dCBhIGxpbmUgb2YgdGV4dCB0byB0aGUgcmlnaHQgcGxhY2UKICAgICBmcm9tIGFueXdoZXJlIGluIHBlcmwgKGV2YWxlZCkgY29kZS4KCjIwMDQtMDQtMjggMTU6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBzdXBwb3J0IHRoZSBhYmlsaXR5IHRvIGdldCBUQyBkZXNjcmlwdGlvbnMgZnJvbSBwZXJsCgoyMDA0LTA0LTI4IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBmaXggb3V0cHV0IHRvIHJlc3BlY3QgdGhlIG91dHB1dCBsZW5ndGggcmV0dXJuZWQgYnkgdGhlIHZhcmlhYmxlCiAgIHByaW50aW5nIHJvdXRpbmVzLgoKMjAwNC0wNC0yOCAxNTozNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gU2F2ZSB0ZXh0dWFsIGNvbnZlbnRpb24gZGVzY3JpcHRpb24ncwogICAtIEltcGxlbWVudCArY29uc3QgY2hhciAgICAgKmdldF90Y19kZXNjcmlwdGlvbihpbnQgdGNfaW5kZXgpCgoyMDA0LTA0LTI4IDE1OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgY2hhbmdlIHZhcmlhYmxlIHRvIGNvbnN0IHZhciB0byBhdm9pZCB3YXJuaW5nLgoKMjAwNC0wNC0yNyAxMTo0NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggYXV0by1lbmFibGluZyBvZiAtLXdpdGgtcGVybC1tb2R1bGVzIHdoZW4gLS1lbmFibGUtZW1iZWRkZWQtcGVybCBpcyBzZWxlY3RlZAoKMjAwNC0wNC0yNiAwMzoyNCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdXNtLmMsIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgUmVzdG9yZSB0aGUgZGlzdGluY3Rpb24gYmV0d2VlbiAnY2xvbmVGcm9tJyBhbmQgJ2NyZWF0ZScoK2Nsb25lKQogICBzdWJjb21tYW5kcy4gIEZpeCBoYW5kbGluZyBvZiBiYXJlICdjcmVhdGUnIHN1YmNvbW1hbmQgKHNpbmNlIGFuCiAgIHVuY2xvbmVkIHVzZXIgY2FuJ3QgYmUgbWFya2VkIGFzIEFDVElWRSB3aXRoIHRoZSBOZXQtU05NUCBhZ2VudCkKICAgRG9jdW1lbnQgdGhlIGJlaGF2aW91ciBtb3JlIGNsZWFybHkuCgoyMDA0LTA0LTIzIDA4OjE1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmg6CgogICBQcm92aWRlIGFuIEFQSSBmb3IgcmV0cmlldmluZyB0aGUgdGFibGUgY29udGFpbmVyIChvciAndGFibGVfZGF0YScpCiAgIHN0cnVjdHVyZSBmcm9tIHdpdGhpbiBhIGhhbmRsZXIgcm91dGluZS4KICAgVGhpcyBhdm9pZHMgdGhlIG5lZWQgZm9yIHVzaW5nIGdsb2JhbCB2YXJpYWJsZXMuCgoyMDA0LTA0LTIzIDA0OjIwICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvdG9zb2NrMS5zaDoKCiAgIHNjcmlwdCB0aGF0IGNvbnZlcnRzIGJhY2sgdG8gd2luc29jayAxIGxpYnJhcnkuICBubyB1bmRvIGlzIGV4cGxhaW5lZC4KCjIwMDQtMDQtMjIgMTk6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmksCiAgICAgbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmksCiAgICAgbWZkLWRhdGEtYWNjZXNzLm0yYywgbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjCiwgbm9kZS1zZXQubTJpLCBwYXJlbnQtc2V0Lm0yaToKCiAgIGNoYW5nZSBhbGwgREVCVUdUUkFDRSB0byBERUJVR01TVEwoKCJ2ZXJib3NlOmZ1bmN0aW9uX25hbWUiLi4uCgoyMDA0LTA0LTIyIDA3OjEzICBzbGlmCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIHBhdGNoIGZyb20gQW5keSBTbWl0aDogWzkzMTY3M10gUnVuIHNubXB0cmFwZCBhcyBhIFdpbmRvd3Mgc2VydmljZTsKICAgc2xpZiBkaWQgdGhlIG1ha2VmaWxlL3Byb2plY3QgZmlsZSB0b3VjaGVzLgoKMjAwNC0wNC0yMiAwNzoxMSAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgbWF0Y2ggYXBwbGljYXRpb24gbmFtZSB3aXRoIGRpc3BsYXkgbmFtZSB0byBpbXByb3ZlIGV2ZW50IGxvZyBsZWdpYmlsaXR5LgoKMjAwNC0wNC0yMiAwNzowOCAgc2xpZgoKICAgKiB3aW4zMi86IHNubXBkL01ha2VmaWxlLmluLCBzbm1wZHNkay9NYWtlZmlsZS5pbjoKCiAgIENoYW5nZSBpbmNsdWRlIHNlYXJjaCBwYXRoIGZvciBzbm1wbGliIHRvICIuLlwuLiIgW3dhcyBwb2ludGluZyBlbHNld2hlcmVdLgoKMjAwNC0wNC0yMSAxOTo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmM6CgogICByZW1vdmUgdW51c2VkIHZhcjsgdXBkYXRlIGhlbHAgbWVzc2FnZQoKMjAwNC0wNC0yMSAxOTo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRlZmF1bHQtbWZkLXRvcC5tMmMsIG1mZC10b3AubTJjCjoKCiAgIHVzZSAjIGluc3RlYWQgb2YgKiBmb3Igc3BlY2lhbCBjaGFyLCBzaW5jZSBwZXJsIGRvZXNuJ3QgbGlrZSB0aGUgKgoKMjAwNC0wNC0yMSAxOTo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHVzZSB1bnVzZWQgdmFyCgoyMDA0LTA0LTIxIDE5OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICBmaXggcXVvdGluZyBwcm9ibGVtCgoyMDA0LTA0LTIxIDE5OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWdldC5tMmM6CgogICBhZGQgbWlzc2luZyBwcm90b3R5cGUgZm9yIG5vbi1pbmRleCBtYXAgZnVuY3Rpb25zCgoyMDA0LTA0LTIxIDE5OjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmkKOgoKICAgZ2V0IHJpZCBvZiBsb29wX2luaXRfY29udGV4dCwgbW92aW5nIGl0J3Mgd29yayBpbnRvIGdldF9maXJzdDsgZml4IHRlc3QKICAgZm9yIGNvZGUgZ2VuIGZvciB0cmFuc2llbnQgZGF0YQoKMjAwNC0wNC0yMSAxOToyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfZW51bS5tMmk6CgogICBkb24ndCB1c2UgdWMgZnVuY3Rpb24sIGFzIGl0IGJhcmZzIG9uIGVudW1zIHcvaHlwaGVucwoKMjAwNC0wNC0yMSAwNTo1MyAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci86IEFkZDJQYXRoLm5zaSwgU2V0RW5WYXIubnNpLAogICAgIG5ldC1zbm1wLm5zaToKCiAgIGZyb20gQW5keSBTbWl0aDogaW5zdGFsbGVyIGNvbXBvbmVudHMKCjIwMDQtMDQtMjAgMjA6NDggIHNsaWYKCiAgICogaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmg6CgogICBmaXggWzgwNzM0OV0gdWNkLXNubXAvdmVyc2lvbi5oIHRyaWVzIHRvIHVzZSBhIG11dGFibGUgdmFyaWFibGUgWyNkZWZpbmVdCgoyMDA0LTA0LTIwIDIwOjIzICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIHVwZGF0ZSBzdGF0dXMsIGNoYW5nZSBidWlsZCBtZW51LCBhbmQgbWFudWFsIGJ1aWxkIGlwdjYgaW5zdHJ1Y3Rpb25zLgoKMjAwNC0wNC0yMCAxODo1NyAgc2xpZgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgcGF0Y2gtYnVnLTkxOTQ2NS00IGFwcGxpZWQgdG8gZml4IFs5MTk0NjVdIGJ1ZyBpbiBzeXN0ZW0uYwoKMjAwNC0wNC0yMCAxNzoyOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMzBzbm1wdjN1c2VyY3JlYXRpb24sIFQxMTBhZ2VudHhnZXQKLCBUMTExYWdlbnR4c2V0LCBUMTEyYWdlbnR4c2V0ZmFpbCwKICAgICBUMTEzYWdlbnR4dHJhcCwgVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQsCiAgICAgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIFVzZSBuZXcgZ2xvYmFsIFN2M2NvbmZpZyBtYXN0ZXIgcGFyYW0gc2V0dXAKCjIwMDQtMDQtMjAgMTc6MjQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIzc25tcHYzZ2V0TUQ1QUVTLCBUMDI2c25tcHYzZ2V0U0hBQUVTCjoKCiAgIE5ldyB0ZXN0cyBmb3IgQUVTIHN1cHBvcnQKCjIwMDQtMDQtMjAgMTc6MjQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIyc25tcHYzZ2V0TUQ1LCBUMDIzc25tcHYzZ2V0TUQ1REVTCiwgVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVM6CgogICBVc2UgbmV3IGdsb2JhbCBTdjNjb25maWcgbWFzdGVyIHBhcmFtIHNldHVwCgoyMDA0LTA0LTIwIDE3OjE5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZzoKCiAgIGRldGVybWluZSB0aGUgYmVzdCBhdXRoL2VuY3IgdHlwZSBhdmFpbGFibGUgYW5kIHVzZSBpdC4KCjIwMDQtMDQtMjAgMTc6MTkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGZvciBkaXNhYmxlZCBzbm1wdjEvMmMgYW5kIG1kNS9kZXMKCjIwMDQtMDQtMjAgMTU6MTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgZml4IHVuYmFsYW5jZWQgaWYvZW5kaWYgbm90ZWQgb24gY29kZXJzIGJ5IE9sZWcgSXZhbm92CgoyMDA0LTA0LTIwIDEyOjA5ICBzbGlmCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oLCBzbm1wbGliL2luZXRfbnRvcC5jCiwgc25tcGxpYi9pbmV0X3B0b24uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZpeCBlcnJvcnMgYnVpbGRpbmcgSVB2NiBzdXBwb3J0IGZvciBNU1ZDKyssIE1pbkdXLCBhbmQgQ3lnd2luLgoKMjAwNC0wNC0yMCAwNzoxOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBmaXggYnJva2VuIHVzYWdlIG9mIHF3KCkKCjIwMDQtMDQtMjAgMDY6MjAgIHNsaWYKCiAgICogd2luMzIvRVhBTVBMRS5jb25mLndpbjMyOgoKICAgYWRkIHNhbXBsZSBjb25maWcgZmlsZQoKMjAwNC0wNC0yMCAwNDozOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogbnNDYWNoZS5jLCBuc0RlYnVnLmMsCiAgICAgbnNMb2dnaW5nLmM6CgogICBGaXggaW50L2xvbmcgbWl4dXAgZm9yIDY0LWJpdCBTb2xhcmlzCgoyMDA0LTA0LTIwIDA0OjMzICBuYmEKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBzbm1wbGliL3NubXAuYzoKCiAgIEVuc3VyZSBkaWFnbm9zdGljcyB3aXRoIEFTTi4xIGVuY29kaW5nIGVycm9ycwoKMjAwNC0wNC0yMCAwMzo1MSAgc2xpZgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGNsZWFudXAgInJlYWRpbmcgTUlCIGZpbGUiIHZlcmJvc2UgbWVzc2FnZSAoY29tcGlsZWQgTUlCRElSUy9NSUJTIG5vdCB1c2VmdWwvZGlzY2VybmFibGUpLgoKMjAwNC0wNC0yMCAwMjo1MSAgc2xpZgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IHVuc2lnbmVkIGNvbXBhcmUgb2YgbGVuIHRvIGxpbmVfbGVuIGluIHNwcmludF9yZWFsbG9jX2hleHN0cmluZwoKMjAwNC0wNC0yMCAwMjo0OCAgc2xpZgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBhZGRfbWliZGlyIHZhcmlhYmxlICd0b2tlbicgaXMgbm90IHVzZWQgb24gd2luMzIuICBtb3ZlIHRvIHVuZGVyIHRoZSBpZmRlZi4KCjIwMDQtMDQtMTkgMjM6NDAgIHNsaWYKCiAgICogd2luMzIvOiBDb25maWd1cmUsIE1ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbgo6CgogICBwYXRjaCBmcm9tIEFsZXggQnVyZ2VyOiBbOTI4ODcyXSBXaW4zMiBidWlsZC5iYXQgc25tcGNvbmYsbWliMmMsdHJhcHRvZW1haWwKCjIwMDQtMDQtMTkgMjM6MjAgIHNsaWYKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS1GSVJTVC50eHQsIFJFQURNRS5idWlsZC53aW4zMi50eHQKLCBSRUFETUUudHh0LCBodG1saGVscC9Db25maWd1cmF0aW9uIE92ZXJ2aWV3Lmh0bWwKLCBodG1saGVscC9EZXZlbG9wZXIgRkFRLmh0bWwsIGh0bWxoZWxwL0ZBUS5odG1sCiwgaHRtbGhlbHAvSGVscCBDYXZlYXRzLmh0bWwsCiAgICAgaHRtbGhlbHAvSW5zdGFsbGF0aW9uLmh0bWwsIGh0bWxoZWxwL0ludHJvZHVjdGlvbi5odG1sCiwgaHRtbGhlbHAvTmV0LVNOTVAuaGhjLCBodG1saGVscC9OZXQtU05NUC5oaHAsCiAgICAgaHRtbGhlbHAvbmV0LXNubXAtNC4yLTgwMC5qcGcsCiAgICAgaHRtbGhlbHAvc25tcC5jb25mLndpbjMyLmh0bWwsCiAgICAgaHRtbGhlbHAvc25tcGQuY29uZi53aW4zMi5odG1sLAogICAgIGh0bWxoZWxwL3NubXB0cmFwZC5jb25mLndpbjMyLmh0bWwsIHNjcmlwdHMvY3JlYXRlLXRvYwosIHNjcmlwdHMvbWFuZGlyMmh0bWwsIHNjcmlwdHMvcG9kZGlyMmh0bWwsCiAgICAgc2NyaXB0cy9yZWFkbWUyaHRtbCwgc2NyaXB0cy90eHQyaHRtbDoKCiAgIHBhdGNoIGZyb20gQWxleCBCdXJnZXI6IFs5MzgyMTRdIFdpbjMyIGRpc3QgZm9sZGVyIC0gYnVpbGRpbmcgYSBiaW5hcnkgcmVsZWFzZQoKMjAwNC0wNC0xOSAyMzowNSAgc2xpZgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIHBhdGNoIGZyb20gQWxleCBCdXJnZXI6IFs5MTg0MTBdIFNOTVBDT05GIGR5bmFtaWMgcGF0aHMKCjIwMDQtMDQtMTkgMjE6NTIgIHNsaWYKCiAgICogc25tcGxpYi86IHNubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmM6CgogICBjb25kaXRpb25hbGx5IGNvbXBpbGUgZm9yIHBsYXRmb3JtcyB3aXRoIHN0YXRpYyBvYmplY3QgbGlzdHMgW25vIGNvbmZpZ3VyZV0uCgoyMDA0LTA0LTE5IDIxOjQ5ICBzbGlmCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpbmV0Ni5jLCBuZXRzdGF0Lmg6CgogICByZWR1Y2Ugd2FybmluZ3MgZm9yIHVuZGVjbCdkIHN0cnVjdDsgZGVjbGFyZSBpbmV0NnByaW50IG9ubHkgd2hlcmUgaXQgaXMgbmVlZGVkLgoKMjAwNC0wNC0xOSAyMTo0MSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBkb24ndCBleHBvc2UgZ2V0YWRkcmluZm8gaWYgbm90IHN1cHBvcnRlZCBieSB0aGUgcGxhdGZvcm0uCgoyMDA0LTA0LTE5IDIxOjM5ICBzbGlmCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIGZpeCB1bnNpZ25lZCBpbnQgY29tcGFyZQoKMjAwNC0wNC0xOSAyMTozOCAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICB0cmFkZSBpbiBhIHNpbmdsZSB0eXBlZGVmIHVpbnQ4X3QgZm9yIHRoZSB3aWRlbHkgdXNlZCB1X2NoYXIuCgoyMDA0LTA0LTE5IDIxOjM2ICBzbGlmCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIGNsZWFudXAgd2hlbiBmaW5pc2hlZCB3aXRoIGFkZHJpbmZvIHN0cnVjdHVyZS4KCjIwMDQtMDQtMTkgMjA6MDkgIHNsaWYKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBhZGQgaW5ldF9udG9wLGluZXRfcHRvbiB0byBzbm1wbGliIG9iamVjdHMgZm9yIHdpbjMyIGJ1aWxkcy4KCjIwMDQtMDQtMTkgMjA6MDggIHNsaWYKCiAgICogd2luMzIvQ29uZmlndXJlOgoKICAgbW9yZSByb2J1c3QgY2hhbmdlIGZvciBORVRTTk1QX1VTRV9ETEwuCgoyMDA0LTA0LTE5IDE4OjM3ICBoYXJkYWtlcgoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYzoKCiAgIGZpeCAjaWZkZWYgYnVnCgoyMDA0LTA0LTE5IDE2OjQ3ICBzbGlmCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGFkZCBjb21tZW50IGZyb20gTmllbHMgQi4gcmVhc29uIGZvciB3aW4zMiBpZmRlZnMgaW4gYWRkX21pYmRpci4KCjIwMDQtMDQtMTkgMTU6NTcgIHNsaWYKCiAgICogd2luMzIvOiBDb25maWd1cmUsIGJ1aWxkLnBsLCBtaWJfbW9kdWxlX2luaXRzLmgKLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3A6CgogICBzZWxlY3RpdmUgYnVpbGQgb2YgSVB2NiB0cmFuc3BvcnQgZm9yIE1TVkMrKyBidWlsZAoKMjAwNC0wNC0xOSAxNTowOCAgaGFyZGFrZXIKCiAgICogTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXB1c20uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jCiwgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLAogICAgIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2M3ZhY21jb25maWcsCiAgICAgdGVzdGluZy90ZXN0cy9UMDIwc25tcHYzZ2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDAyMXNubXB2M2dldG5leHQsCiAgICAgdGVzdGluZy90ZXN0cy9UMDIyMHNubXB2M2J1bGtnZXQsCiAgICAgdGVzdGluZy90ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LAogICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsCiAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLAogICAgIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXA6CgogICBOZXcgY29uZmlndXJlIGZsYWdzOiAtLWRpc2FibGUtbWQ1IGFuZCAtLWRpc2FibGUtZGVzIHRvIGNvbXBsZXRlbHkgcmVtb3ZlIHN1cHBvcnQgZm9yIHRoZSBsZXNzIHRydXN0ZWQvc2VjdXJlIGFsZ29yaXRobXMKCjIwMDQtMDQtMTkgMTM6MDEgIHNsaWYKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbW92ZSBkZWJ1ZyBzdGF0ZW1lbnQgYWZ0ZXIgdmFyaWFibGUgZGVmaW5pdGlvbi4KCjIwMDQtMDQtMTkgMTI6MzYgIHNsaWYKCiAgICogd2luMzIvQ29uZmlndXJlOgoKICAgdXNlIGEgbW9yZSByb2J1c3Qgc2VhcmNoIGZvciB1bmRlZiBVU0VfT1BFTlNTTC4KCjIwMDQtMDQtMTkgMDg6MjggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL21pYi5jOgoKICAgTW9yZSBmbGV4aWJsZSBvdXRwdXQgb2YgaGV4IHN0cmluZ3MgLSBkb24ndCBoYXJkY29kZSAxNi1vY3RldHMtcGVyLWxpbmUKCjIwMDQtMDQtMTkgMDc6NTggIHNsaWYKCiAgICogYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmM6CgogICBjb21tZW50IG91dCB2YXJpYWJsZXMgd2hpY2ggYXJlIG5vdCB1c2VkLgoKMjAwNC0wNC0xOSAwNzo1OCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGFkZCBhbGFybSB0byBhZ2UgYWRkciBjYWNoZSBldmVyeSA1IG1pbjsgYWRkIGRlYnVnIGZvciBhc3AtPnJlcWluZm8KCjIwMDQtMDQtMTkgMDc6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcmVtb3ZlICdzY2hlZCd1bGVkIHRpbWVvdXQgcHJvY2Vzc2luZzsgbW92ZSBhZGRyIGNhY2hlIGFnaW5nIGludG8gYWxhcm07CiAgIGNoYW5nZSBkZWFmdWx0IHRpbWVvdXQgZnJvbSBUSU1FVElDSyB0byBMT05HX01BWAoKMjAwNC0wNC0xOSAwNzo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyOyBhZGQgdGltZW91dCBkZWJ1Z2dpbmcKCjIwMDQtMDQtMTkgMDc6MzYgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHBhdGNoIFsgOTE4OTQ4IF0gZml4IGN5Z3dpbiBjb25maWcgcHJvYmxlbQoKMjAwNC0wNC0xNiAxNzowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIGZpeGVkIGEgdjEvdjJjIGV4Y2x1c2lvbiBidWcKCjIwMDQtMDQtMTYgMTY6NDUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgT3V0cHV0IG1lc3NhZ2Ugbm93IGNvbnRhaW5zIHZlcnNpb25zIHN1cHBvcnRlZAoKMjAwNC0wNC0xNiAxNjozNyAgaGFyZGFrZXIKCiAgICogTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBhcHBzL3NubXB0YWJsZS5jLAogICAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgc25tcGxpYi9zbm1wdjMuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLAogICAgIHRlc3RpbmcvdGVzdHMvVDAwMXNubXB2MWdldCwgdGVzdGluZy90ZXN0cy9UMDE0c25tcHYyY2dldAosIHRlc3RpbmcvdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LAogICAgIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgICAgdGVzdGluZy90ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLAogICAgIHRlc3RpbmcvdGVzdHMvVDAxOXNubXB2MmNub3N1Y2gsCiAgICAgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXAsCiAgICAgdGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cAosIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwKLCB0ZXN0aW5nL3Rlc3RzL1QxMzBzbm1wdjF2YWNtZ2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDEzMXNubXB2MmN2YWNtZ2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDE0MHNubXB2MXZhY21nZXRmYWlsLAogICAgIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTBzb2xhcmlzaG9zdGNwdSwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTFzb2xhcmlzaG9zdGRpc2ssCiAgICAgdGVzdGluZy90ZXN0cy9UMTUyaG9zdHVwdGltZSwgdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXAKOgoKICAgTmV3IGZsYWdzIGZvciBjb25maWd1cmU6IC0tZGlzYWJsZS1zbm1wdjEgLS1kaXNhYmxlLXNubXB2MmMKCjIwMDQtMDQtMTYgMTY6MjEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIwc25tcHYzZ2V0LCBUMDIxc25tcHYzZ2V0bmV4dDoKCiAgIHJlbW92ZSBkdXBsaWNhdGUgYW5kIGNvbmZsaWN0aW5nIFZBQ00gZW50cnkuICBJdCdzIGFtYXppbmcgdGhpcyBoYXNuJ3QKICAgY2F1c2VzIGZhbHNlIHByb2JsZW1zIGJlZm9yZSBub3cuCgoyMDA0LTA0LTE2IDEyOjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIGFkZHJlc3MgaXNzdWVzIG5vdGVkIGJ5IGRhdmUgb24gY29kZXJzCgoyMDA0LTA0LTE2IDEyOjQyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgc25tcGxpYi9zbm1wX2RlYnVnLmMKOgoKICAgbmV3ICdubyBjaGVjaycgZGVidWcgbWFjcm8vZnVuY3Rpb25zCgoyMDA0LTA0LTE1IDE0OjUyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaDoKCiAgIGhlYWRlciBmb3IgYXJwIGRhdGEgYWNjZXNzCgoyMDA0LTA0LTE1IDA1OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIFZhcmlhYmxlcyB1c2VkIGZvciByZXR1cm5pbmcgdmFsdWVzIG5lZWQgdG8gYmUgJ3N0YXRpYycuICAgKG9vcHMhKQoKMjAwNC0wNC0xNSAwNTo0NyAgZHRzMTIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIE1vdmUgdGhlIGRlZmluaXRpb24gb2YgJ2lwYWRkcl9yZXR1cm4nIHRvIHRoZSAob25seSkgcm91dGluZSB3aGVyZQogICBpdCdzIGFjdHVhbGx5IHVzZWQuICAoU2VlIEJ1ZyAjOTM0NDIyKQoKMjAwNC0wNC0xNSAwNToyOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMubm90aWZ5LmNvbmY6CgogICBSZW1vdmUgZXh0cmFuZW91cyAnOycgaW4gbm90aWZpY2F0aW9uIGdlbmVyYXRpb24gcm91dGluZSAoQnVnICM4OTU4MDApCgoyMDA0LTA0LTE1IDA1OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBSZW1vdmUgZHVwbGljYXRlIGNvZGUgKEJ1ZyAjOTM0NDExKQoKMjAwNC0wNC0xNCAyMTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIGZpeGVkIGN1dC1uLXBhc3RlIHR5cG9zIHBvaW50ZWQgb3V0IHRvIG1lIGJ5IE1pa2UgUy4KCjIwMDQtMDQtMTQgMTc6MjUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICAtIHN1cHBvcnQgbG9jYWwvbWFzdGVyIFNOTVB2MyBrZXkgc2V0dGluZ3MgZGlyZWN0bHkKICAgLSBoYXZlIGdldHRhYmxlKCkgcGFyc2UgaW5kZXhlcyBvdXQgb2YgdGhlIE9JRCB3aGVuIE5ldFNOTVA6Ok9JRCBpcyBhdmFpbGFibGUKICAgICAtIG5vdCBleHRlbnNpdmVseSB0ZXN0ZWQgeWV0LgoKMjAwNC0wNC0xNCAxNTo0MSAgc2xpZgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIFNwZWNpZnkgY29ycmVjdCBkZWZhdWx0IHZhbHVlIGZvciBNSUJESVJTLgoKMjAwNC0wNC0xNCAxNTozMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgU3VwcG9ydCBmb3IgTGludXggMi42IGluY2wgU29mdElSUSBDUFUgc3RhdGUKCjIwMDQtMDQtMTQgMTU6MjkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIE92ZXJoYXVsIHRvIHJlbW92ZSBmaXhlZCB0YWJsZSBzaXplIGFuZCBzdXBwb3J0IExpbnV4IDIuNiBrZXJuZWwKCjIwMDQtMDQtMTQgMTU6MjEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdF9ocHV4LmMsIHZtc3RhdF9zb2xhcmlzMi5jCjoKCiAgIENsZWFuIHVwIGNvbW1lbnRzIG1pc2hhbmRsZWQgbnkgaW5kZW50CgoyMDA0LTA0LTE0IDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZiwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIEFkZGVkIHN1cHBvcnQgdG8gdGhlIGNyZWF0ZVVzZXIgZGlyZWN0aXZlIGZvciBzcGVjaWZ5aW5nIG1hbnVhbCBsb2NhbAogICBvciBtYXN0ZXIga2V5cyByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHBhc3N3b3JkIGRlcml2YXRpb25zLgoKMjAwNC0wNC0xNCAxMzoyMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgbnVsbCBjaGVjayBiZWZvcmUgdXNpbmcgcG9pbnRlcgoKMjAwNC0wNC0xNCAxMzoxMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIG5ldyBzbm1wLmNvbmYgdG9rZW5zIHRvIGRpcmVjdGx5IHNldCBTTk1QdjMgaGV4IGtleXMKCjIwMDQtMDQtMTQgMTI6MjcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wY21kLjEuZGVmLAogICAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIG5ldyBzbm1wLmNvbmYgdG9rZW5zIHRvIGRpcmVjdGx5IHNldCBTTk1QdjMgaGV4IGtleXMKCjIwMDQtMDQtMTQgMDk6NDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXB2My5jLCBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIGRpcmVjdGx5IHNwZWNpZnlpbmcgU05NUHYzIGhleCBrZXlzIHVzaW5nIG5ldyBmbGFncyAoLTNbbU1rS10pCgoyMDA0LTA0LTE0IDA4OjI0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgbmV3IGNvbmZpZ3VyZSBmb3IgY29uZmlndXJlLmluCgoyMDA0LTA0LTE0IDA4OjIzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgbW9yZSBkZWJ1Zzsgc2ltcGxpZnkgdHdvIGNvbmZsaWN0IHRlc3RzIGludG8gb25lOyByZXZlcnQgY29uZmxpY3QgbWVzc2FnZXMKICAgYmFjayB0byB3YXJuaW5nLCBidXQgYWRkIG9ibm94aW91cyB3YXJuaW5nIHRvIHN1bW1hcnkgY2FjaGUKCjIwMDQtMDQtMTQgMDM6MjUgIGR0czEyCgogICAqIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6CgogICBBIG5vbi16ZXJvIHJlcGVhdCBjb3VudCB3aXRoIG5vIG5vbi1yZXBlYXRpbmcgdmFyYmluZHMgY29uZnVzZXMgdGhlCiAgIHBlcmwgJ2J1bGt3YWxrJyByb3V0aW5lLiAgIFRoaXMgc2hvdWxkIHJlYWxseSBiZSBmaXhlZCBwcm9wZXJseSwKICAgYnV0IHRoaXMgYXQgbGVhc3QgYWxsb3dzIHRoZSByZXN0IG9mIHRoZSB0ZXN0cyB0byBydW4gc3VjY2Vzc2Z1bGx5LgoKMjAwNC0wNC0xNCAwMzoxNSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIFN1cHBvcnQgcGVyLWxvZ2hhbmRsZXIgc2h1dGRvd24gcHJvY2Vzc2luZyBpbiAnc25tcF9kaXNhYmxlX2xvZycuCiAgIFRoaXMgc2hvdWxkIGFsbG93IGxvZ2ZpbGVzIHRvIGJlIHJvdGF0ZWQgcHJvcGVybHkuCgogICBIb3dldmVyLCBJJ20gbm90IGNvbnZpbmNlZCB0aGF0IHRoZSAnZW5hYmxlZCcgZmxhZyBpcyBiZWluZyB1c2VkCiAgIGNvbnNpc3RlbnRseSwgcGFydGljdWxhcmx5IGJ5IG90aGVyIHN0eWxlcyBvZiBsb2dnaW5nIGNvbmZpZ3VyYXRpb24uCiAgIFNvbWUgY2xlYW51cCB3b3JrIGlzIHByb2JhYmx5IG5lZWRlZC4KCjIwMDQtMDQtMTQgMDM6MDkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMKOgoKICAgU3VwcG9ydCAiMDE6MDI6MDM6MDQ6MDU6MDYiIHN0eWxlIGhleCBvdXRwdXQgLSBpLmUuIGxlYWRpbmcgMCdzCiAgIG9uIHNpbmdsZS1kaWdpdCBoZXggdmFsdWVzLiAgKFN1Z2dlc3RlZCBieSBHbGVubiBBbmRyZXdzKQoKMjAwNC0wNC0xNCAwMzowNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvbWliLmMsCiAgICAgc25tcGxpYi9wYXJzZS5jOgoKICAgSWRlbnRpZnkgd2hpY2ggTUlCIG1vZHVsZXMgYXJlIHByZXNlbnQgaW4gdGhlIE1JQkZJTEVTIGxpc3QgYmVmb3JlCiAgIHN0YXJ0aW5nIHRvIGxvYWQgYW55dGhpbmcuICAgVGhpcyBhbGxvd3MgSU1QT1JUIHN0YXRlbWVudHMgdG8gd29yawogICBjb3JyZWN0bHksIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yZGVyIGluIHdoaWNoIHN1Y2ggZmlsZXMgYXBwZWFyLgoKMjAwNC0wNC0xNCAwMjo1MyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBhaXguaCwgYnNkLmgsIGN5Z3dpbi5oCiwgZHluaXguaCwgaXJpeC5oLCBtaW5ndzMyLmgsIG9zZjUuaAosIHN1bm9zLmgsIHN2cjUuaCwgc3lzdi5oLCB1bHRyaXg0LmgKOgoKICAgSW5jbHVkZSAiZ2VuZXJpYy5oIiB1c2luZyB0aGUgZnVsbCBuYW1lLCByYXRoZXIgdGhhbgogICByZWx5aW5nIG9uIHRoZSBpbmNsdWRlIHBhdGggYmVpbmcgc2V0IGNvcnJlY3RseS4KICAgKFN1Z2dlc3RlZCBieSBOYWdhcmFqIE5hcmF5YW5hc3dhbXkpCgoyMDA0LTA0LTE0IDAyOjQyICBkdHMxMgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgQ2F0Y2ggU05NUHYyIGV4Y2VwdGlvbiB2YWx1ZXMuCgoyMDA0LTA0LTE0IDAyOjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jOgoKICAgQXZvaWQgY3Jhc2hpbmcgdGhlIGFnZW50IHdoZW4gYmFja2luZyBvdXQgb2YgYW4gaW52YWxpZCBTRVQgcmVxdWVzdC4KCjIwMDQtMDQtMTQgMDI6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIEFsbG93ICdtb25pdG9yJyBkaXJlY3RpdmVzIHRvIHNwZWNpZnkgYSBzaW5nbGUgaW5zdGFuY2UgcmF0aGVyIHRoYW4KICAgYWx3YXlzIG1vbml0b3JpbmcgYWxsIHJvd3MuCgoyMDA0LTA0LTE0IDAyOjI4ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGUgbGlzdCBvZiBzdXBwb3J0ZWQgTUlCcywgYWR2aWNlIG9uIHJ1bm5pbmcgYXMgbm9uLXJvb3QKICAgYW5kIGJyaW5nIGludG8gbGluZSB3aXRoIDUuMS54IGJyYW5jaCB2ZXJzaW9uLgoKMjAwNC0wNC0xMyAxMzo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmk6CgogICB0d2VhayBhc3NlcnQgY29uZGl0aW9uIHRvIGFsbG93IGZvciB2YWxpZCBidXQgZXhwaXJlZCBjYWNoZQoKMjAwNC0wNC0xMyAxMzo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIGZpeCBjb21tZW50IHR5cG8KCjIwMDQtMDQtMTMgMTI6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLW1pYi5oLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS5oCiwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9kZWZhdWx0LXRhYmxlLWluZXROZXRUb01lZGlhVGFibGUubTJkCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5oCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYwosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgbmV3IGluZXROZXRUb01lZGlhVGFibGUKCjIwMDQtMDQtMTMgMTI6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvOiBhcnAuaCwgYXJwX2NvbW1vbi5jCiwgYXJwX2xpbnV4LmMsIGlwYWRkcmVzc19pb2N0bC5oOgoKICAgbmV3IGZpbGVzCgoyMDA0LTA0LTEzIDExOjQ0ICByc3RvcnkKCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwo6CgogICByZW1vdmUgdW51c2VkIHZhcgoKMjAwNC0wNC0xMyAxMTo0MyAgcnN0b3J5CgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYwo6CgogICB1c2UgYWNjZXNzIHJvdXRpbmUgdG8gYWxsb2NhdGUvZnJlZSByb3V0ZSBlbnRyaWVzCgoyMDA0LTA0LTEzIDExOjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICB1c2UgYWNjZXNzIHJvdXRpbmUgdG8gYWxsb2NhdGUvZnJlZSBpbnRlcmZhY2UgZW50cmllcwoKMjAwNC0wNC0xMyAxMTo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICBkZWZhdWx0IGFkbWluL29wZXIgc3RhdHVzIHRvIHVwCgoyMDA0LTA0LTEzIDExOjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgaW52ZXJ0IG9yZGVyIGZvciBjYWNoZSByZWZyZXNoOyBzZXQgbmV3IHByZWxvYWQgZmxhZyBvbiBjYWNoZSB0byBpbml0IGlmSW5kZXgKICAgZW51bSBsaXN0ICh1c2VkIGJ5IG90aGVyIG1vZHVsZXMpOyBzZXQgb3Blcl9zdGF0dXMgZG93biBpZiBpbnRlcmZhY2UgdmFuaXNoZXM7CiAgIG1vcmUgcm9idXN0IGhhbmRsaW5nIG9mIGNvbXBhcmluZy9zd2lwaW5nIHBvaW50ZXJzCgoyMDA0LTA0LTEzIDExOjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9jb25zdGFudHMuaDoKCiAgIHJlbW92ZSB1bnVzZWQgbWFwcGluZyBkZWZpbmVzCgoyMDA0LTA0LTEzIDExOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgcmVtb3ZlIHVudXNlZCBtYXBwaW5nIGZ1bmN0aW9ucwoKMjAwNC0wNC0xMyAxMTozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIHJldmVydCBleHRlcm5hbCBkZWZpbnRpb24gY2hhbmdlCgoyMDA0LTA0LTEzIDExOjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmM6CgogICB1c2UgYWNjZXNzIHJvdXRpbmUgdG8gYWxsb2NhdGUvZnJlZSBpcGFkZHJlc3NfZW50cnkKCjIwMDQtMDQtMTMgMTE6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvOiBpcGFkZHJlc3NfY29tbW9uLmMsCiAgICAgaXBhZGRyZXNzX2lvY3RsLmMsIGlwYWRkcmVzc19saW51eC5jOgoKICAgdHdlYWsgaW50ZXJuYWwgaW5kZXggdXNhZ2U7IHVzZSBuZXQtc25tcCBpZkluZGV4IGJhc2VkIG9uIG5hbWUgaW5zdGVhZCBvZiBpb2N0bAogICBpZl9pbmRleDsgYWRkL3R3ZWFrIGNvbW1lbnRzCgoyMDA0LTA0LTEzIDExOjIzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBuZXcgZmxhZyBmb3IgcHJlbG9hZGluZyBjYWNoZTsgbW92ZSBjYWNoZSBsb2FkL2ZyZWUgdG8gc3RhdGljIHN1YnJvdXRpbmVzIGZvcgogICBjb2RlIHJldXNlOyBhZGQgc29tZSBkZWJ1ZyBtc2dzCgoyMDA0LTA0LTEzIDExOjE1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIGFkZCBkZWZpbmVzIGZvciBhZG1pbi9vcGVyIHN0YXR1cyBlbnVtcwoKMjAwNC0wNC0xMyAxMDozMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGVudHJpZXMgZm9yIGhhdmVfbWt0aW1lIG5hZCBoYXZlX3N0aW1lCgoyMDA0LTA0LTEzIDEwOjMxICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICB2ZXJzaW9uIGNoYW5nZS4KCjIwMDQtMDQtMTAgMDU6NTkgIGR0czEyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgQ2xvbmluZyBhIHVzZXIgcmVxdWlyZXMgdXNpbmcgdGhlIHVzbVVzZXJTdGF0dXMgY29sdW1uIG9iamVjdC4KCjIwMDQtMDQtMTAgMDU6NTcgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUmVtb3ZlIGR1cGxpY2F0ZSBlbnRyeSBmcm9tIGxpc3Qgb2YgZGVmYXVsdCBNSUIgbW9kdWxlcy4KCjIwMDQtMDQtMDkgMTg6NTAgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgZml4IHR3byBTTk1QX0ZSRUUgY2FuZGlkYXRlcyBpbiB0ZG9tYWluX3VucmVnaXN0ZXIsIGNsZWFyX3Rkb21haW5fbGlzdC4KCjIwMDQtMDQtMDkgMTg6NDcgIHNsaWYKCiAgICogc25tcGxpYi9pbmV0X3B0b24uYzoKCiAgIGZpeCBhIHNpZ24gY29tcGFyZSB3YXJuaW5nLgoKMjAwNC0wNC0wOSAxODozNyAgc2xpZgoKICAgKiB3aW4zMi86IGxpYnNubXAvTWFrZWZpbGUuaW4sIGxpYnNubXAvbGlic25tcC5kc3AsCiAgICAgbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGFkZCBJUHY2IHRyYW5zcG9ydHMgdG8gbXN2YysrIGJ1aWxkcy4KCjIwMDQtMDQtMDkgMTg6MjcgIHNsaWYKCiAgICogcGVybC9TTk1QL3QvZ2V0LnQ6CgogICBkb24ndCByZXF1aXJlIGludGVyZmFjZSBsYXllciBvZiBhZ2VudCBpbiBvcmRlciB0byBwYXNzIHRoZXNlIHRlc3RzLgoKMjAwNC0wNC0wOSAxODoyNCAgc2xpZgoKICAgKiB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICB1bmRvIGxhc3QgY2hhbmdlIHRvIHJlc3RvcmUgcHJvcGVyIGNvbnN0cnVjdGlvbiBvZiBQZXJsIG1vZHVsZXMuCgoyMDA0LTA0LTA4IDIxOjExICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbDoKCiAgIG1hdGNoIHNubXBzZXQgb3V0cHV0IHRvIGZpeCBidWcgWzkxOTI2N10gdGVzdG51bSAzNCBUMTIycHJveHlzZXRmYWlsIGZhaWxpbmcKCjIwMDQtMDQtMDggMjA6MjUgIHNsaWYKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIGNoYW5nZSB1c2FnZSBjb21tZW50IGZvciAiLVhNIiB0byBtYXRjaCBpdHMgZnVuY3Rpb24KCjIwMDQtMDQtMDggMjA6MTkgIHNsaWYKCiAgICogd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgZG8gbm90IGJ1aWxkIHNubXB0cmFwZC5vYmogYXMgcGFydCBvZiBuZXRzbm1wdHJhcGQgbGlicmFyeSAoTVNWQysrIGJ1aWxkKS4KCjIwMDQtMDQtMDggMjA6MTcgIHNsaWYKCiAgICogd2luMzIvbGliaGVscGVycy86IE1ha2VmaWxlLmluLCBsaWJoZWxwZXJzLmRzcDoKCiAgIGFkZCB0YWJsZV9jb250YWluZXIub2JqIHRvIGxpc3Qgb2Ygb2JqZWN0cyB0byBiZSBidWlsdCB1c2luZyBNU1ZDKysKCjIwMDQtMDQtMDggMjA6MTIgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOiBbIDkxODk0OCBdIGZpeCBjeWd3aW4gY29uZmlnIHByb2JsZW0KCjIwMDQtMDQtMDggMjA6MDcgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIGFwcGx5IG5iYSdzIEZlYi4yMDA0IHB1dHV0bGluZSBmaXhlcyB0byBtYWluIGJyYW5jaC4KCjIwMDQtMDQtMDggMTU6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIFVzZSAtTGYgYW5kIC1MZiBpbiB0aGUgbWFpbiB0cnVuayB0byBtYXRjaCB0aGUgcHJvcGVyIGNvZGUgdXNlCgoyMDA0LTA0LTA4IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgU3VwcG9ydCBmb3IgdGhlIC1ydyBmbGFnIHRvIHRoZSBvdmVycmlkZSB0b2tlbiBhbGxvd2luZyByZWFkL3dyaXRlCiAgIGFjY2VzcyB0byB0aGUgYm9ndXMgbWliIG9iamVjdHMuCgoyMDA0LTA0LTA4IDEzOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggZW51bSBsaXN0cyBmb3IgdW5zaWduZWQgYW5kIGJpdCBzdHJpbmdzIHRvIHJlbW92ZSBkdXBsaWNhdGUgdHlwZXMKCjIwMDQtMDQtMDcgMTk6NTAgIHNsaWYKCiAgICogdGVzdGluZy86IFJVTlRFU1RTLCBURVNUQ09ORi5zaDoKCiAgIHBhdGNoIFs5MTc2NDZdIHRlc3QgdXNpbmcgaW5zdGFsbGVkIE1JQnMgZmlyc3QKCjIwMDQtMDQtMDcgMTU6NTcgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggbmV3IGNvbmZpZy5pbgoKMjAwNC0wNC0wNyAxNTo1NSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBsb3RzIG9mIGRlYnVnIHRvIG1vZHVsZSBwcm9jZXNzaW5nOyB1c2UgbmV3IHZhciBmb3IgZXhjbHVkZWQgbW9kdWxlczsgbWFrZQogICBjb25mbGljdHMgZXJyb3JzIGluc3RlYWQgb2Ygd2FybmluZ3M7IGRvbid0IHRyeSB0byByZS1wcm9jZXNzIGEgc3JjIG9ubHkgbW9kdWxlCgoyMDA0LTA0LTA3IDE1OjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtZW51bXMubTJpOgoKICAgdHlwbyBpbiBjb21tZW50cwoKMjAwNC0wNC0wNyAxNTo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIG9ubHkgZ2VuIHJlbGVhc2UgdW5kbyBjb2RlIGlmIHNldHRhYmxlCgoyMDA0LTA0LTA3IDE1OjQ3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oOgoKICAgdHdlYWsgY29tbWVudHMKCjIwMDQtMDQtMDcgMTU6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZToKCiAgIGZpbGVzIHRvIGlnbm9yZQoKMjAwNC0wNC0wNyAxNTo0NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIHJlbW92ZSB1bnVzZWQvdW5kZWZpbmVkIHZhcnMKCjIwMDQtMDQtMDcgMTU6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi5oLCBpcC1mb3J3YXJkLW1pYi5oOgoKICAgZml4IGNvbmZpZ19yZXF1aXJlIHBhdGhzCgoyMDA0LTA0LTA3IDE1OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oOgoKICAgY29uZmlnX2V4Y2x1ZGUgbWliSUkvaW50ZXJmYWNlczsgdHdlYWsgZXh0ZXJuYWwgb2lkIGRlZgoKMjAwNC0wNC0wNyAxNTo0MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICByZW1vdmUgcmVmZXJlbmNlcyB0byBpZlRhYmxlCgoyMDA0LTA0LTA3IDE1OjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLy5jdnNpZ25vcmU6CgogICBmaWxlcyB0byBpZ25vcmUKCjIwMDQtMDQtMDcgMTU6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvOgogICAgIGRlZmF1bHQtdGFibGUtaXBBZGRyZXNzVGFibGUubTJkLCBpcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlLmgsIGlwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmgKLCBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIG5ldyBNRkQgaXBBZGRyZXNzVGFibGUKCjIwMDQtMDQtMDcgMTU6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oOgoKICAgaXBhZGRyZXNzIGRhdGEgYWNjZXNzICh2NCAmIHY2KQoKMjAwNC0wNC0wNyAxNToyOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaXAtbWliLmgsIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS5oOgoKICAgbmV3IGNvbmZpZyBtb2R1bGVzCgoyMDA0LTA0LTA3IDA2OjM4ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVtb3ZlIGEgc3VwZXJmbHVvdXMgdHJhaWxpbmcgY29tbWEgKGJ1ZyAjOTMwNzA4KQoKMjAwNC0wNC0wNyAwMzoyMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBSb3V0aW5lcyB0byBpbmRpY2F0ZSB0aGUgbnVtYmVyIG9mIHJvd3MgaW4gYSBkYXRhLWhlbHBlci1iYXNlZCB0YWJsZQoKMjAwNC0wNC0wNyAwMjoxMyAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBDQVBUVVJFIHJldHVybnMgZXhpdCBjb2RlIGZyb20gY29tbWFuZCB0aGF0IHdhcyBydW4uCgoyMDA0LTA0LTA2IDIzOjMzICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wLzogbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIHBhdGNoIFs5MzA4ODBdIGRvbid0IGJ1aWxkIENNVSBjb21wYXRpYmxlIGZ1bmN0aW9ucyBvbiB3aW4zMgoKMjAwNC0wNC0wNiAyMzoxOSAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLAogICAgIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNkbGwuZHN3Ciwgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMnNkay5kc3csCiAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkLy5jdnNpZ25vcmUsCiAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLAogICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLAogICAgIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AKOgoKICAgcGF0Y2ggWzkxNTYxNV0gUGVybCBUcmFwUmVjZWl2ZXIgZG9lcyBub3QgY29tcGlsZSBvbiBXaW4zMiBNU1ZDCiAgIGFsc28gZml4ZXMgYnVnIFs4OTYwMTJdIHdpbjMyIFBlcmwgYnVpbGQgZGllcyBhdCBUcmFwUmVjZWl2ZXIKCjIwMDQtMDQtMDYgMjE6NTkgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB0Y3BUYWJsZS5jLCB1ZHBUYWJsZS5jOgoKICAgZml4IFs5MDc3MTZdIHdpbjMyIGFnZW50IHNob3dzIHRjcCx1ZHAgY29ubmVjdCBPSURzIGluIGhvc3QgYnl0ZSBvcmRlcgoKMjAwNC0wNC0wNiAxNzozNSAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBwYXRjaCBbOTE5MTIyXSB0ZXN0IHNob3VsZCBhbGxvdyB0aW1lIGZvciBwcm9ncmFtcyB0byBzZXR0bGUKCjIwMDQtMDQtMDYgMTc6MzQgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcGF0Y2ggWzkxOTExNF0gcHJlc2VydmUgdGVzdCByZXN1bHQgd2hlbiBzdG9wcGluZwoKMjAwNC0wNC0wNiAxNzozMiAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBwYXRjaCBbOTE5MTA1XSBiZXR0ZXIgcGlkIGNoZWNrCgoyMDA0LTA0LTA2IDEwOjQzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgaW5jbHVkZSBzdGRpbnQsIGlmIGF2YWlsYWJsZQoKMjAwNC0wNC0wNiAwOTo0NiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgUmVnaXN0ZXIgbmV3IEFQSSBtb2R1bGVzIHVzaW5nIHRoZSBkZWZhdWx0IHByaW9yaXR5ICgxMjcpCiAgIGFuZCBwcm92aWRlIGFuIEFQSSBmb3IgdW5yZWdpc3RlcmluZyB0aGVtIGFnYWluLgoKMjAwNC0wNC0wNSAxNjowNCAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICByZXZlcnNlIHBhdGNoLXRlc3QtZGVwcmVjYXRlZC1vcHRpb25zIHRvIHBlcm1pdCB0ZXN0aW5nIHZlcnNpb25zIGJlZm9yZSA1LjEuCgoyMDA0LTA0LTA0IDExOjE3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmM6CgogICBkb24ndCBzaGFyZSBjYWNoZSB3L2luZXRDaWRyUm91dGUsIHdoaWNoIGNhbid0IHdvcmssIHNpbmNlIGluZGV4ZXMgZG9uJ3QgbWF0Y2gKCjIwMDQtMDQtMDQgMTE6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvOiBpZlhUYWJsZS5oLAogICAgIGlmWFRhYmxlX2RhdGFfYWNjZXNzLmMsIGlmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgc2hhcmUgZGF0YSBzdHJ1Y3R1cmVzL2NhY2hlIHcvaWZUYWJsZSBpZiBlbmFibGVkCgoyMDA0LTA0LTA0IDExOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLzogZGVmYXVsdC10YWJsZS1pZlhUYWJsZS5tMmQKLCBpZlhUYWJsZS5jLCBpZlhUYWJsZS5oLCBpZlhUYWJsZV9pbnRlcmZhY2UuaAo6CgogICB1cGRhdGUgdG8gdXNlIG5ldyBpbnRlcmZhY2UgZGF0YSBhY2Nlc3MKCjIwMDQtMDQtMDQgMTA6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIHVwZGF0ZSB0byBzdXBwb3J0IGluZXRDaWRyUm91dGVUYWJsZQoKMjAwNC0wNC0wNCAxMDo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliLmg6CgogICBhZGQgaW5ldENpZHJSb3V0ZVRhYmxlCgoyMDA0LTA0LTA0IDEwOjU3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGUuYywgaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgsIC5jdnNpZ25vcmUsCiAgICAgZGVmYXVsdC10YWJsZS1pbmV0Q2lkclJvdXRlVGFibGUubTJkOgoKICAgbmV3IGluZXRDaWRyUm91dGVUYWJsZS4gb25seSBkb2VzIGlwdjQgc28gZmFyLgoKMjAwNC0wNC0wNCAwNzoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvOgogICAgIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jOgoKICAgc2hhcmUgY2FjaGUgdy9pbmV0Q2lkclJvdXRlVGFibGUsIGlmIGl0IGlzIGVuYWJsZWQKCjIwMDQtMDQtMDQgMDc6MDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICB1c2UgdW51c2VkIHZhcgoKMjAwNC0wNC0wNCAwNzowOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGZpeCBtaXNzZWQgY2FzZSBmb3IgYWxsb2NhdGUgcGFybTsgcmVtb3ZlIHVudXNlZCB2YXIKCjIwMDQtMDQtMDQgMDc6MDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaQo6CgogICBmaXggbWlzc2VkIGNhc2UgZm9yIGFsbG9jYXRlIHBhcm0KCjIwMDQtMDQtMDQgMDc6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpOgoKICAgYWRkIGRlYnVnCgoyMDA0LTA0LTAzIDA1OjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBmaXggYnVnIDkyODQ4MSAtIGNvbnNpc3RlbmN5IGluIHZhY21fdmFycy5jCgoyMDA0LTA0LTAyIDE5OjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS5oLCBpZi1taWIvaWZYVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLmg6CgogICBjb25maWd1cmVfcmVxdWlyZSBmaWxlcyBmb3IgaW5kaXZpZHVhbCBtb2R1bGVzCgoyMDA0LTA0LTAyIDEyOjUyICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIGRlZmF1bHQgdG8gbmV0c25tcF9pbmRleCBjb21wYXJlIGlmIG5vIGNvbXBhcmUgcHJvdmlkZWQKCjIwMDQtMDQtMDIgMTI6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogY211X2NvbXBhdC5jLCBzbm1wX3ZlcnNpb24uYzoKCiAgIGluY2x1ZGUgbmV0LXNubXAtY29uZmlnLmgKCjIwMDQtMDQtMDIgMTI6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBuZXcgc3RhdGljIGxvY2sgdmFyIHRvIGRldGVjdCB3aGVuIGEgY2FsbGJhY2sgaXMgYWRkZWQvcmVtb3ZlZCBkdXJpbmcgY2FsbGJhY2sKICAgcHJvY2Vzc2luZzsgZG9uJ3QgY2FsbCBmcmVlIG9uIGNsaWVudCBhcmcgb2YgY2FsbGJhY2sgdy9OVUxMIGNhbGxiYWNrIHB0cgogICAoaS5lLiBvbmUgdGhhdCB3YXMgcmVtb3ZlZCB3aGlsZSBjYWxsYmFja3Mgd2VyZSBiZWluZyBwcm9jZXNzZWQpCgoyMDA0LTA0LTAyIDEyOjM2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgbWFrZSB0ZW1wIGRpciBuYW1lcyBjb25maWd1cmVhYmxlLCB3L2RlZmF1bHRzIG5vdyBwcmVmaXhlZCB3LycuJzsgdHdlYWsgZGlmZgogICBleGNsdWRlIHBhdHRlcm5zOyBvdGhlciBtaXNjIHR3ZWFrcwoKMjAwNC0wNC0wMiAxMjozNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgZml4IG1hY3JvcyB0byBiZSBzYWZlbHkgdXNlYWJsZSBhcyBhIHNpbmdsZSBzdGF0ZW1lbnQ7IG5ldyBTTk1QX1NXSVBFX01FTSBtYWNybwoKMjAwNC0wNC0wMiAwODoyMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBuZXcgY29uZmlnLmguaW4gdG8gbWF0Y2ggYWNjb25maWcuaCAoYXV0b2hlYWRlciBoYWRuJ3QgYmVlbiBydW4gaW4gYSB3aGlsZSk6CiAgICAgIHBja3MsIGNyb3B0eWtpLCBjb25maWdfZXhjbHVkZSwgYWdlbnR4IGRvbWFpbiBzb2NrZXQsIGNwcHdyYXAgbWFjcm8KCjIwMDQtMDQtMDIgMDg6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIHJlZHVjZSByZWR1bmRhbmN5CgoyMDA0LTA0LTAyIDA4OjAyICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgYWRkIGFzc2VydHMgb24gaWxsZWdhbCBoYW5kbGVyIGNhbGxzCgoyMDA0LTA0LTAyIDA2OjQ2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgRml4IGluY2x1c2lvbiBvZiB1dGlsaXRpZXMvZXhlY3V0ZS5oLCBzaW5jZSBSb2JlcnQncyBNYWtlZmlsZSBjaGFuZ2VzCiAgIGJyb2tlIHRoZSBwYXRoIGxvb2t1cHMuCgoyMDA0LTA0LTAxIDIyOjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIG1ha2UgZ2V0dGFibGUgdXNlIGdldGJ1bGsgd2hlbiBwb3NzaWJsZQoKMjAwNC0wNC0wMSAxOTo0MSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wNC0wMSAxOTozMiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgbW92ZSBWUEFUSCB0byBpbmRpdmlkdWFsIE1ha2VmaWxlLmluIGZpbGVzOyBuZXcgbWFrZWZpbGVjaGVjayB0YXJnZXQgdG8gY2hlY2sKICAgZm9yIGdudSBtYWtlIGNvbnN0cnVjdHM7IG5ldyAnY2hlY2tzJyB0YXJnZXQgcnVucyBjaGVja3MgZm9yIGNvbW1lbnQvbWFrZWZpbGUKCjIwMDQtMDQtMDEgMTk6MjkgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgZW1wdHkgZGVmaW5lIGZvciBjb25maWdfZXhjbHVkZTsgbmV3IE5FVFNOTVBfQ1BQX1dSQVAgbWFjcm9zCgoyMDA0LTA0LTAxIDE5OjI3ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgbmV3IGNvbmZpZ19leGNsdWRlOyBjb25maWdfcmVxdWlyZSB0d2Vha3M6CiAgICAgICBkb24ndCBwcm9jZXNzIHRoZSBzYW1lIG1vZHVsZSB0d2ljZTsgYWxsb3cgYyBmaWxlIHcvbm8gaGVhZGVyOyBtb3ZlCiAgICAgICBtb2R1bGUgbGlzdCBhZGQsIGNvbmZpZ19sb2FkX21pYiBjaGVjayBpbnNpZGUgaGVhZGVyIGNvbmRpdGlvbmFsCgoyMDA0LTA0LTAxIDE4OjM4ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgbmV3IGNvbmZpZ3VyZSB0byBtYXRjaCBjb25maWd1cmUuaW4KCjIwMDQtMDQtMDEgMTg6MzcgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLAogICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGxvY2FsL01ha2VmaWxlLmluLAogICAgIG1hbi9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5pbiwKICAgICBzbm1wbGliL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgcmV3b3JrIFZQQVRIIHNvIHBlb3BsZSB3aXRoIEdOVSBtYWtlIGNhbiBzaGFyZSBhIHNvdXJjZSBkaXJlY3RvcnkgZm9yIG11bHRpcGxlCiAgIGJ1aWxkIChpbmNsdWRpbmcgb25lIGluIHRoZSBzb3VyY2UgZGlyZWN0b3J5KTsgY29tcGxldGVseSByZXdvcmsgQ1BQRkxBR1MgZm9yIGEKICAgY29tbW9uLCBjb25zaXN0ZW50IG9yZGVyICh0aGF0IGlzIGFsc28gY29ycmVjdCBmb3Igbm9uIHNvdXJjZWRpciBidWlsZHMpCgoyMDA0LTA0LTAxIDE4OjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS5oOgoKICAgbmV3IGZpbGUKCjIwMDQtMDQtMDEgMTg6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBkZWZhdWx0LXRhYmxlLWlwQ2lkclJvdXRlVGFibGUubTJkLCBpcENpZHJSb3V0ZVRhYmxlLmMKLCBpcENpZHJSb3V0ZVRhYmxlLmgsIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLCBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIHVwZGF0ZSBmb3IgbWZkIGdlbmVyYXRlZCBjb2RlIGNoYW5nZXM7IHVwZGF0ZSB0byB1c2UgbmV3IGRhdGEgYWNjZXNzIHN0dWZmOwoKMjAwNC0wNC0wMSAxODoxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIHVwZGF0ZSB0byB1c2UgbmV3IGRhdGEgYWNjZXNzIHN0dWZmOyBhZGQgdG9kbyBjb21tZW50cwoKMjAwNC0wNC0wMSAxODoxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsCiAgICAgaWYtbWliL2lmVGFibGUvLmN2c2lnbm9yZSwgaWYtbWliL2lmWFRhYmxlLy5jdnNpZ25vcmUKLCBpcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvLmN2c2lnbm9yZToKCiAgIG5ldyBjdnNpbmdvcmUgZmlsZXMKCjIwMDQtMDQtMDEgMTg6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBpZlRhYmxlL2lmVGFibGUuYywKICAgICBpZlRhYmxlL2lmVGFibGUuaCwgaWZYVGFibGUvaWZYVGFibGUuaDoKCiAgIHVwZGF0ZSB0byB1c2UgbmV3IGRhdGEgYWNjZXNzIHN0dWZmCgoyMDA0LTA0LTAxIDE4OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywKICAgICBpcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jOgoKICAgbmV3IGRhdGEgYWNjZXNzIGZpbGVzCgoyMDA0LTA0LTAxIDE4OjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy86IGludGVyZmFjZS5oLCByb3V0ZS5oOgoKICAgbW92ZSBjb25maWdfcmVxdWlyZSBzdHVmZiBiYWNrIGludG8gbWliZ3JvdXAsIHNpbmNlIHRoYXQncyB0aGUgb25seSBwbGFjZQogICBjb25maWd1cmUgd2lsbCBsb29rIGZvciB0aGVtCgoyMDA0LTA0LTAxIDE2OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBSZW1vdmUgZHVwbGljYXRlIGNvbG9pZCBzZXR0aW5nICh3YXMgZG9uZSBhYm92ZSBhcyB3ZWxsKQoKMjAwNC0wNC0wMSAxNjo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgQW5vdGhlciBpdGVyYXRvciBmaXg6IGluaXRpYWxpemUgYSB2YXJpYWJsZSBwcm9wZXJseSBmb3IgZXZlcnkgcmVxdWVzdAoKMjAwNC0wNC0wMSAxNjoyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2UuaCwgcm91dGUuaDoKCiAgIG5ldyBkYXRhIGFjY2VzcyBoZWFkZXJzCgoyMDA0LTA0LTAxIDE1OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBBbm90aGVyIGl0ZXJhdG9yIHByb2JsZW0gd2l0aCBnZXRidWxrJ3M6IG1ha2UgaXQgbm90IHNldCBSRVRSWSBpZiBpdHMgZ29pbmcgdG8gYmUgb3V0IG9mIHNjb3BlIG5leHQgdGltZSBhcm91bmQgc3RpbGwgKD4gbWF4Y29sKQoKMjAwNC0wNC0wMSAwOToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgLSBWYXJpb3VzIHBhdGNoZXMgdG8gZml4IGl0ZXJhdG9yIHByb2JsZW1zIHdpdGggbXVsdGlwbGUgdmFyYmluZHMuCgoyMDA0LTAzLTMxIDEyOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIFByb3Blcmx5IHNldCB0aGUgYXV0b19uZXh0IGZsYWcuCgoyMDA0LTAzLTMwIDIxOjIyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIEEgbmV3IGltcGxlbWVudGF0aW9uIG9mIGdldHRhYmxlIHRoYXQgdXNlcyBiZXR0ZXIgc3RydWN0dXJlZCBHRVRORVhUCiAgIHBhY2tldHMgZm9yIGZhc3RlciByZXRyaWV2YWwgYWNyb3NzIHNsb3cgbGlua3MuCiAgICAgLSBnZXRidWxrIG5vdCB5ZXQgdXNlZCwgYnV0IHNob3VsZCBiZS4KCjIwMDQtMDMtMzAgMjE6MTkgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICAtIG1pbm9yIGNoYW5nZXMgdG8gdGhlIGN2czJjbCBjb21tYW5kIGxpbmUgZmxhZ3MKCjIwMDQtMDMtMzAgMjE6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zeXN0ZW0uYywgaHJfc3lzdGVtLmg6CgogICBjaGFuZ2Ugc2V0X3NvbGFyaXNfdGltZSB0byBuc19zZXRfdGltZSBhbmQgZW5hYmxlIGl0IG9uIGFueQogICBhcmNoaXRlY3R1cmUgdGhhdCBzdXBwb3J0cyBta3RpbWUoKSBhbmQgc3RpbWUoKQoKMjAwNC0wMy0zMCAyMToxNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3Igc3RpbWUgZnVuY3Rpb25zCgoyMDA0LTAzLTMwIDIxOjE0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSB1bmRlZiBzc2l6ZV90CgoyMDA0LTAzLTMwIDE3OjA2ICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICByZW1vdmUgY29tbWVudGVkIGFuZCB1bnVzZWQgdmFyaWFibGVzLiBmbGFnIHN0YXRpYyB2YXJpYWJsZSBhcyBwcm9ibGVtIGZvciB0aHJlYWRzLgoKMjAwNC0wMy0zMCAxNjo1NiAgc2xpZgoKICAgKiB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdDoKCiAgIG1pbGRseSBlbmZvcmNlIHJ1bm5pbmcgZnJvbSBiYXNlIHNvdXJjZSBkaXJlY3RvcnkuCgoyMDA0LTAzLTMwIDE2OjUzICBzbGlmCgogICAqIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaDoKCiAgIGluaXQgZXhhbXBsZXMgbW9kdWxlcwoKMjAwNC0wMy0zMCAxMDo0NSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvbWliLnQ6CgogICBpbmNsdWRlIHByZXZpb3VzbHktYnJva2VuIHRlc3RzIGFnYWluCgoyMDA0LTAzLTMwIDEwOjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEZpeCBhIHJlYWxseSBvbGQgYW5kIGFubm95aW5nIGJ1ZzogdXNlIHNldF9ib29sZWFuIGluc3RlYWQgb2YgdG9nZ2xlX2Jvb2xlYW4gZm9yIHRlbGxpbmcgdGhlIGxpYnJhcnkgd2hlbiB0byByZXBsYWNlIG9sZCBNSUJzIHdoaWxlIHBhcnNpbmcuICBBZmZlY3RlZCBhIGJ1bmNoIG9mIHN0dWZmIGluIG9kZCB3YXlzLgoKMjAwNC0wMy0zMCAwNTowMSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBOZXcgbG9nZ2luZyBvcHRpb24gJy1MbicgdG8gZXhwbGljaXRseSB0dXJuIG9mZiBsb2dnaW5nCgoyMDA0LTAzLTI5IDIwOjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIuaCwgaXAtZm9yd2FyZC1taWIuaDoKCiAgIGNvbmZpZy1yZXF1aXJlIGhlYWRlcnMKCjIwMDQtMDMtMjkgMjA6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBpZlRhYmxlL2RlZmF1bHQtdGFibGUtaWZUYWJsZS5tMmQsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmMsIGlmVGFibGUvaWZUYWJsZS5oLAogICAgIGlmVGFibGUvaWZUYWJsZV9jb25zdGFudHMuaCwgaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMKLCBpZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaAosIGlmWFRhYmxlL2RlZmF1bHQtdGFibGUtaWZYVGFibGUubTJkLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlLmMsIGlmWFRhYmxlL2lmWFRhYmxlLmgsCiAgICAgaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5oOgoKICAgbmV3IGltcGxlbWVudGF0aW9ucyBvZiBpZlRhYmxlIGFuZCBpZlhUYWJsZSwgYmFzZWQgb24gZ2VuZXJhdGVkIGNvZGUgZnJvbQogICBtaWIyYyBNRkQgKyBjb250YWluZXItY2FjaGVkIGNvbmYgZmlsZXMKCjIwMDQtMDMtMjkgMTY6MjggIHNsaWYKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBmaXggc3BlbGwgQWNrbm93bGVkZ2VtZW50cywgYWRkIGJsYW5rIGJlZm9yZSA9Y3V0IHNvIHRoYXQgaXQgd2lsbCBiZSBwYXJzZWQgY29ycmVjdGx5LgoKMjAwNC0wMy0yOSAxNTo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIHVzZSB1bnVzZWQgdmFycwoKMjAwNC0wMy0yOSAxNTo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICB0d2VhayBjb21tZW50CgoyMDA0LTAzLTI5IDE1OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICBzbGlnaHQgcmUtb3JnOyBpbmNsdWRlIChjb21tZW50ZWQgb3V0KSBnbnUgbWFrZSBzdHVmZgoKMjAwNC0wMy0yOSAxNTozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHJld29yayBkYXRhX2NvbnRleHQgc28gd2UgZG9uJ3QgdXNlIGEgdHlwZWRlZiB0byBhIHBvaW50ZXIKICAgKGUuZy4gdHlwZWRlZiB4KiB4X2RhdGEpOyB1c2UgdW51c2VkIHZhcnM7IGFsbG93IHVzZXIgdG8gcGFzcyBleGlzdGluZyBkYXRhCiAgIHB0ciB3aGVuIGNyZWF0aW5nIHJvdyBjb250ZXh0OyBzZXQgdmFsX2xlbiB0byBidWYgc2l6ZSBpZmYgbm90IGFscmVhZHkgc2V0CgoyMDA0LTAzLTI5IDE1OjMzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRhdGEtYWNjZXNzLm0yYywgbWZkLWRhdGEtZ2V0Lm0yYwo6CgogICBtb3ZlIHRhYmxlIGluZGV4IGZ1bmN0aW9ucyB0byBkYXRhLWdldDsgaW5jbHVkZSBkYXRhX2FjY2VzcyBoZWFkZXIKCjIwMDQtMDMtMjkgMTU6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKLCBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpOgoKICAgcmV3b3JrIGRhdGFfY29udGV4dCBzbyB3ZSBkb24ndCB1c2UgYSB0eXBlZGVmIHRvIGEgcG9pbnRlcgogICAoZS5nLiB0eXBlZGVmIHgqIHhfZGF0YSk7IHR3ZWFrIG0yY19wcm9jZXNpbmcgdHlwZTsgcmVtb3ZlIHVudXNlZCB2YXIKCjIwMDQtMDMtMjkgMTU6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1jb25zdGFudHMubTJjOgoKICAgdHdlYWsgbTJjX3Byb2Nlc3NpbmdfdHlwZQoKMjAwNC0wMy0yOSAxNToyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIHJld29yayBkYXRhX2NvbnRleHQgc28gd2UgZG9uJ3QgdXNlIGEgdHlwZWRlZiB0byBhIHBvaW50ZXIKICAgKGUuZy4gdHlwZWRlZiB4KiB4X2RhdGEpOyBpbmNsdWRlIG1pYl9tb2R1bGVzIGhlYWRlcjsgdHdlYWsgbTJjX3Byb2Nlc3NpbmdfdHlwZQoKMjAwNC0wMy0yOSAxNToyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmksCiAgICAgZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLCBtMmNfc2V0dXBfdGFibGUubTJpOgoKICAgcmV3b3JrIGRhdGFfY29udGV4dCBzbyB3ZSBkb24ndCB1c2UgYSB0eXBlZGVmIHRvIGEgcG9pbnRlcgogICAoZS5nLiB0eXBlZGVmIHgqIHhfZGF0YSkKCjIwMDQtMDMtMjkgMTQ6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBtYWtlIHBhcnNlX29uZV9vaWRfaW5kZXggcHJvcGVybHkgZGVjb2RlIElQIGFkZHJlc3NlcyBpbiB0aGUgcmlnaHQgYnl0ZSBvcmRlci4KCjIwMDQtMDMtMjkgMTI6NTggIHNsaWYKCiAgICogd2luMzIvbWliX21vZHVsZV9pbml0cy5oOgoKICAgaW5pdCBleGFtcGxlcyBtb2R1bGVzCgoyMDA0LTAzLTI5IDA5OjE5ICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTEwYWdlbnR4Z2V0LCBUMTExYWdlbnR4c2V0LAogICAgIFQxMTJhZ2VudHhzZXRmYWlsLCBUMTEzYWdlbnR4dHJhcDoKCiAgIHBhdGNoIFs5MTg4MzhdIHRlc3QgYWdlbnR4IHVzaW5nIFRDUCBzb2NrZXRzIC0gaWZmIHRyYW5zcG9ydCBub3QgInVuaXgiCgoyMDA0LTAzLTI5IDA3OjU0ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHN5bmMgdy81LjEuMSAobW92ZSB2YXIgZGVjbHMgdG8gdG9wIG9mIGZ1bmN0aW9uYWwgYmxvY2spCgoyMDA0LTAzLTI2IDA4OjQxICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGFwcGx5IHBhdGNoICM5MjAyMzQgdG8gc3RhcnQgcHJvZ3JhbXMgaW4gbWluaW1pemVkIHdpbmRvdyAobWluZ3cgb25seSkuCgoyMDA0LTAzLTI2IDA4OjAzICBzbGlmCgogICAqIHdpbjMyL2J1aWxkLnBsOgoKICAgcGF0Y2ggdG8gZml4IFs5MjE0MjNdIGluc3RhbGwgdGVzdCBzZXF1ZW5jZSBub3QgcmlnaHQgZm9yIHBlcmwgYnVpbGQKCjIwMDQtMDMtMjYgMDc6NTMgIHNsaWYKCiAgICogY29uZmlndXJlLmluOgoKICAgcGF0Y2ggIzkwMTQzNCB0b3NvY2syLnNoIC0tIHVzZSBXaW5zb2NrIDIueCBmb3IgV2luZG93cyBzb2NrZXQgbGlicmFyeQoKMjAwNC0wMy0yMiAxNTozNyAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBmaXggcGF0aCBmb3IgY2xlYW51cCBvZiB1cGxvYWRlZCB0YXJiYWxsCgoyMDA0LTAzLTIyIDEzOjQ0ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgbWFrZV9pbmRleC5wbCwgbWFuX3NlY3Rpb25zLnR4dAo6CgogICBtYW4vaW5kZXguaHRtbCBnZW5lcmF0aW9uIHN0dWZmCgoyMDA0LTAzLTIwIDIxOjQzICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBuZXdlciBtYW4yaHRtbCB1c2FnZQoKMjAwNC0wMy0yMCAxMDowMiAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfb25lc2NyaXB0LnNoOgoKICAgcGF0Y2ggWzkxOTEzMl0gdGVzdCBzdG9wIGJlZm9yZSBmaW5pc2ggaXMgc3VwZXJmbHVvdXMKCjIwMDQtMDMtMTkgMTY6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIFBhcnQgb2YgcGF0Y2ggOTE3NzI2IHRvIGZpeCBhIGZldyB3aW5kb3dzIGNvbmZpZyBwcm9ibGVtcy4KCjIwMDQtMDMtMTkgMTY6MDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwOgoKICAgUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6IFsgOTE4ODI4IF0gY29uZGl0aW9uYWwgc2tpcCBIVVAgdGVzdAoKMjAwNC0wMy0xOSAxNTo1OCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOiBbIDkxODk0OCBdIGZpeCBjeWd3aW4gY29uZmlnIHByb2JsZW0KCjIwMDQtMDMtMTkgMDg6MjkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oOgoKICAgQWRkZWQgYSBtaXNzaW5nIHByb3RvdHlwZTogbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX3NwaW5sb2NrCgoyMDA0LTAzLTE5IDA4OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgTWlzc2VkIGEgQUVTMTI4IC0+IEFFUyBjb252ZXJzaW9uLgoKMjAwNC0wMy0xOSAwMzowMCAgZHRzMTIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQnJpZWYgZGVzY3JpcHRpb24gb2YgYWRkaW5nIFdpbjMyIElQdjYgdHJhbnNwb3J0IHN1cHBvcnQuCgoyMDA0LTAzLTE4IDE4OjMyICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHBhdGNoIFs5MTkxMTZdIG1pbm9yIGRpZmYgaW4gaW52b2tlZCBsb2cKCjIwMDQtMDMtMTggMTU6NDQgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgYXBwbHkgcGF0Y2hfOTE1MTc4LnJlZHV4IHRvIGZpbmlzaCB0aGUgc2Vjb25kIHBhcnQgb2YgdGhhdCBwYXRjaC4KCjIwMDQtMDMtMTggMDg6NTEgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0LAogICAgIFQxMjJwcm94eXNldGZhaWw6CgogICBhcHBseSBwYXRjaCBbOTE4ODI0XSBmaXggcHJveHkgdGVzdHMKCjIwMDQtMDMtMTggMDc6MDUgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBjeWd3aW4uaCwgbWluZ3czMi5oOgoKICAgcGF0Y2ggWzkxNzY0OV0gZmluZCB1aW50MzJfdCBpbiB3aW4zMi1nY2MgYnVpbGQgZW52aXJvbm1lbnRzCgoyMDA0LTAzLTE2IDEzOjA1ICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIG1lcmdlIGNvbmZpZ3VyZSBzdWJzdGl0dXRlZCBzcnMvb2JzIGRlZiB3L3ByZXZpb3VzIGxpbmUsIHRvIGF2b2lkIGhhdmluZyBhCiAgIGNvbnRpbnVhdGlvbiBsaW5lIGZvbGxvd2VkIGJ5IGEgYmxhbmsgbGluZTsKICAgZml4ZXMgZm9yIGJ1aWxkaW5nIG91dHNpZGUgb2Ygc291cmNlIGRpciAocmVvcmRlciBpbmNsdWRlIGluIENQUEZMQUdTIHNvIHRoYXQKICAgcmVsYXRpdmUgZGlycyBjb21lIGJlZm9yZSBzcmNkaXJzKQoKMjAwNC0wMy0xNiAwNzo0OSAgc2xpZgoKICAgKiB3aW4zMi86IGJ1aWxkLmJhdCwgYnVpbGQucGw6CgogICBzeW5jaCB3aXRoIHdvcmtpbmcgdmVyc2lvbiwgZGVsdGEgaW5zdGFsbCBiYXNlLCBvZiBjb3Vyc2UuCgoyMDA0LTAzLTE2IDA2OjUzICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wLzogbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIGFkZCB0eXBlZGVmIGZvciB1aW50MzJfdCAtLSBhYnNlbnQgZnJvbSBNU1ZTCgoyMDA0LTAzLTE2IDA1OjE1ICBzbGlmCgogICAqIHdpbjMyLzogTWFrZWZpbGUuaW4sIGluc3RhbGwtbmV0LXNubXAuYmF0OgoKICAgcGFydGlhbCBmaXggZm9yIGJ1ZyA5MTUxNzg6IGFkanVzdCB0byBhY2NvbW1vZGF0ZSAnbWFrZSB0ZXN0JyB2ZXJpZmljYXRpb24uCgoyMDA0LTAzLTE1IDE2OjQyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTFzb2xhcmlzaG9zdGRpc2s6CgogICBQYXRjaCBmcm9tIEJydWNlIFNoYXc6IFsgODk0NzExIF0gU29sYXJpcyBkaXNrIHRlc3QgZmFpbHMgb24gc29tZSBPUydzIFtzZWNvbmQgZml4IHRvIGhpcyBwcmV2aW91cyBwYXRjaCBmb3IgZXZlbiBiZXR0ZXIgc3VwcG9ydF0KCjIwMDQtMDMtMTUgMTU6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIEJ1Zy9wYXRjaCBmcm9tIEJvYiBSb3dsYW5kczogWyA4MTUzNjEgXSBvdmVycmlkZSB0b2tlbiBpbiBzbm1wZC5jb25mIGRvZXMgbm90IGFsbG93IHNubXBzZXQgb24gT0lEIFtyZWFsbHksIHRoaXMganVzdCByZXR1cm5zIHByb3BlciBlcnJvciBjb2RlcyBmcm9tIHN5c3RlbV9taWIgdmFyaWFibGVzXQoKMjAwNC0wMy0xNSAxNTo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQnVnL3BhdGNoIGZyb20gQm9iIFJvd2xhbmRzOiBbIDgxNTMzMyBdIHNubXB2YWNtIGFwcCBub3Qgd29ya2luZyB3aXRoIFNOTVAgdjEgWyByZWFsbHkganVzdCBmaXhpbmcgbWliIGVycm9yIGNvZGVzIHJlbWVtYmVyZWQgaW4gc25tcF9hZ2VudC5jXQoKMjAwNC0wMy0xNSAxNTo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmM6CgogICBCdWcvUGF0Y2ggZnJvbSBCb2IgUm93bGFuZHM6IFsgODA5MjgyIF0gbmV0c25tcF9tb2RlX2VuZF9jYWxsX2FkZF9tb2RlX2NhbGxiYWNrIGNhbGxlZCByZXBlYXRlZGx5CgoyMDA0LTAzLTE1IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIFBhdGNoIGZyb20gQm9iIFJvd2xhbmRzOiBbIDgwODg4MSBdIExvZyBhIGF1dGhlbnRpY2F0aW9uIGZhaWx1cmUgbWVzc2FnZSB3aGVuIGF1dGhlbnRpY2F0aW9uIGZhaWxzLgoKMjAwNC0wMy0xNSAxNToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmg6CgogICBQYXRjaCBmcm9tIEJvYiBSb3dsYW5kczogWyA4MDczMzMgXSA2NCBiaXQgYWdlbnQgcmV0dXJucyBpbmNvcnJlY3QgdmFsdWVzIGZvciBJcEFkZHJlc3MKCjIwMDQtMDMtMTUgMTQ6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBkZWZhdWx0LXRhYmxlLWlwQ2lkclJvdXRlVGFibGUubTJkLCBpcENpZHJSb3V0ZVRhYmxlLmMKLCBpcENpZHJSb3V0ZVRhYmxlLmgsIGlwQ2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgKLCBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgcmUtaW1wbGVtZW50IGV4aXN0aW5nIGlwQ2lkclJvdXRlVGFibGUgZnVuY3Rpb25hbGl0eSB3L01GRCBoZWxwZXIKICAgKGkuZS4gcmVhZC1vbmx5IHN1cHBvcnQ7IHVzZSB2YXJfcm91dGUgZnVuY3Rpb24gdG8gZ2V0IGRhdGEpCgoyMDA0LTAzLTE1IDEyOjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgdHdlYWtzIGZvciByb3ctY3JlYXRpb24gY2FzZQoKMjAwNC0wMy0xNSAxMjowOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIGRlZmF1bHQgdG8gaW5jb25zaXN0ZW50TmFtZSBpbnN0ZWFkIG9mIG5vQ3JlYXRpb24KCjIwMDQtMDMtMTUgMDY6MjcgIGR0czEyCgogICAqIHdpbjMyL2J1aWxkLnBsOgoKICAgVHdlYWsgdGhlIG9wdGlvbiBwcm9tcHQgc2xpZ2h0bHkuCiAgIChEYXZlJ3MgYmVpbmcgcGlja3kgYWdhaW4hKQoKMjAwNC0wMy0xNSAwNjoyMCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIExpc3RlbiBvbiBwb3J0IDE2MiAocmF0aGVyIHRoYW4gMTYxKSBpZiBhIChiYXJlKSBpbnRlcmZhY2UKICAgYWRkcmVzcyBpcyBzcGVjaWZpZWQuCgoyMDA0LTAzLTEzIDIyOjA1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgbnVsbCBmcmVlJ2QgcG9pbnRlciAoYmV0dGVyIHNhZmUgdGhhbiBzb3JyeSkKCjIwMDQtMDMtMTMgMjE6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBwbHVnIG1lbW9yeSBsZWFrCgoyMDA0LTAzLTEzIDE5OjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmg6CgogICBmaXggZm9yIGNvbXBpbGluZyB3L2RtYWxsb2MKCjIwMDQtMDMtMTMgMDY6NDAgIHNsaWYKCiAgICogd2luMzIvYnVpbGQuYmF0OgoKICAgc2V0IHRlbXAgdmFyIGVtcHR5IHRvIHJlbW92ZSBmcm9tIGVudgoKMjAwNC0wMy0xMiAxNTo1MiAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNsZWFuIHVwIGJhc2UgcG9vcC4KCjIwMDQtMDMtMTIgMTM6MDcgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9idWlsZC5iYXQ6CgogICBkb2MgY2hhbmdlIGZvciBwYXRjaCA5MTI0NDcKCjIwMDQtMDMtMTIgMTI6MTMgIHNsaWYKCiAgICogdGVzdGluZy86IFJVTlRFU1RTLCBldmFsX3Rvb2xzLnNoOgoKICAgYXBwbHkgcGF0Y2hbOTE1MTc4XSB0byBmaXggTWluR1cgKE1TWVMpIG1ha2UgdGVzdCBmcmVlemVzCgoyMDA0LTAzLTEyIDExOjI5ICBzbGlmCgogICAqIHdpbjMyLzogTWFrZWZpbGUtYXBwcy5pbiwgbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sCiAgICAgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBkL01ha2VmaWxlLmluLAogICAgIHNubXBkc2RrL01ha2VmaWxlLmluLCBzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgICBzbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBtb2RpZnkgcGF0Y2hbOTEyNDQ3XSB0byB1c2UgY29ycmVjdCB3aW5zb2NrIGxpYnJhcnkKCjIwMDQtMDMtMTIgMTE6MTYgIHNsaWYKCiAgICogd2luMzIvOiBDb25maWd1cmUsIE1ha2VmaWxlLWFwcHMuaW4sIE1ha2VmaWxlLmluCiwgYnVpbGQuYmF0LCBidWlsZC5wbCwgbGliYWdlbnQvTWFrZWZpbGUuaW4KLCBsaWJoZWxwZXJzL01ha2VmaWxlLmluLCBsaWJzbm1wL01ha2VmaWxlLmluLAogICAgIGxpYnNubXBfZGxsL01ha2VmaWxlLmluLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgosIG5ldHNubXBtaWJzL01ha2VmaWxlLmluLCBuZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbgosIHNubXBkL01ha2VmaWxlLmluLCBzbm1wZHNkay9NYWtlZmlsZS5pbiwKICAgICBzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgYXBwbHkgcGF0Y2ggWzkxMjQ0N10gV2luMzIgTVNWQyBNYWtlZmlsZSBzeXN0ZW0KCjIwMDQtMDMtMTAgMTk6MjQgIHNsaWYKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIGFnZ3Jlc3NpdmUgc2VhcmNoIGZvciBleGVjdXRhYmxlcyBiZWxvdyB0aGUgYmFzZSBkaXJlY3RvcnkuCgoyMDA0LTAzLTEwIDE5OjE1ICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBkb24ndCBzZXQgZ2xvYmFsIHNubXBfZXJybm87IGRvIHByb3ZpZGUgdW5kZWYgVVNFX09QRU5TU0w7CiAgICByZXBsYWNlIE5FVFNOTVBfTk9fRExMIHdpdGggTkVUU05NUF9VU0VfRExMOwogICAgZG9jdW1lbnQgdGhlIGNoYW5nZS4KCjIwMDQtMDMtMTAgMTk6MDkgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgaW52b2tlIHNubXBkLCBzbm1wdHJhcGQgd2l0aCBub24tZGVwcmVjYXRlZCBwYXJhbWV0ZXJzIGZvciBQSUQgYW5kIGxvZ2ZpbGUuCgoyMDA0LTAzLTEwIDE1OjA5ICBzbGlmCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIGZpeCBzaWduZWQgbWlzbWF0Y2ggd2hlbiB0ZXN0aW5nIHByb3BlciBsZW5ndGggb2Yga2V5ZWQgaGFzaC4KCjIwMDQtMDMtMTAgMTU6MDMgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIG1vZHMgZm9yIGJ1aWxkaW5nIHdpbjMyIHdpdGggT3BlblNTTCBzdXBwb3J0LgoKMjAwNC0wMy0xMCAwODoyMyAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICBwZXIgQWxleEIgLSBjaGFuZ2UgaW5zdHJ1Y3Rpb25zIHRvIHVzZSBNaW5HVyBkZXZlbG9wZXIncyByZWNvbW1lbmRlZCBPcGVuU1NMLgoKMjAwNC0wMy0xMCAwNzoyMSAgZHRzMTIKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIFVzZSB0aGUgc2FtZSB0ZXN0aW5nIHBvcnRzIGFzIHRoZSBtYWluIGFnZW50IHRlc3Qgc3VpdGUKICAgKHNvbWV3aGF0IGxlc3MgbGlrZWx5IHRvIGNsYXNoIHdpdGggb3RoZXIgc2VydmljZXMpCgoyMDA0LTAzLTEwIDA3OjA4ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuOC5kZWY6CgogICBEb2N1bWVudCBzdXBwb3J0IGZvciBtdWx0aXBsZSAib3B0aW9uYWwiIGNvbmZpZyBmaWxlcyB2aWEgLWMKCjIwMDQtMDMtMTAgMDU6MDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIFJldHJ5IHVuZnVsZmlsbGVkIEdFVE5FWFQgcmVxdWVzdHMgdGhhdCBzaW1wbHkgaGF2ZW4ndCBiZWVuIGF0dGVtcHRlZAogICAoZS5nLiBkdWUgdG8gYSBtaXNzaW5nIGNvbHVtbiBvYmplY3QpLCBidXQgbm90IG9uZXMgdGhhdCBoYXZlIGJlZW4KICAgZXhwbGljaXRseSBtYXJrZWQgYXMgZmFpbGVkIChlLmcuIGF0IHRoZSBlbmQgb2YgdGhlIHRhYmxlKS4KCiAgIEknbSBub3QgMTAwJSBjb252aW5jZWQgdGhpcyBpcyBjb3JyZWN0LCBidXQgaXQgc2VlbXMgdG8gaGF2ZSB0aGUKICAgcmlnaHQgZWZmZWN0IGZvciBib3RoICd0YWJsZV9kYXRhJyBhbmQgJ3RhYmxlX2RhdGFzZXQnIGJhc2VkIG1vZHVsZXMuCgoyMDA0LTAzLTEwIDA0OjUyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIENoZWNrIGZvciBwcm9ibGVtcyB3aXRoIGFsbCBvZiB0aGUgcmVxdWVzdGVkIHZhcmJpbmRzCiAgIChub3QganVzdCB0aGUgZmlyc3Qgb25lKSwgYW5kIGhhbmRsZSAnbm9TdWNoT2JqZWN0JyBleGNlcHRpb25zLgogICBbVGhvdWdoIGluIGZhY3QsIHRoaXMgY29kZSBpc24ndCBhY3R1YWxseSB1c2VkXQoKMjAwNC0wMy0wOSAxMjo1MCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSB0byBtYXRjaCBuZXcgY29uZmlndXJlLmluCgoyMDA0LTAzLTA5IDExOjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBkZWJ1Z2dpbmcgaXNuJ3QgcGxhdGZvcm0gc3BlY2lmaWMKCjIwMDQtMDMtMDkgMDc6NTUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CgogICBzZXBhcmF0ZSB0cmFwbGlicyBmcm9tIGFnZW50IGxpYnMgZm9yIGRlcGVuZGVuY2llcwoKMjAwNC0wMy0wOSAwNzoxMiAgc2xpZgoKICAgKiB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdDoKCiAgIG1ha2UgU05NUENPTkZQQVRIIGNvbnNpc3RlbnQgd2l0aCBvdGhlciBwbGF0Zm9ybXMgKCIkcHJlZml4L2V0Yy9zbm1wIikKCjIwMDQtMDMtMDkgMDc6MDkgIHNsaWYKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmM6CgogICBhZGQgY29tbWVudCBNVENSSVRJQ0FMX1JFU09VUkNFIHRvIHVzZSBvZiBzbm1wX2Vycm5vIGluIHRocmVlIHBsYWNlcy4KCjIwMDQtMDMtMDkgMDU6MTAgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEhhbmRsZSBtdWx0aXBsZSAib3B0aW9uYWwgY29uZmlnIiBmaWxlcy4KCjIwMDQtMDMtMDkgMDQ6MjQgIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBtYWtlIFNOTVBDT05GUEFUSCBjb25zaXN0ZW50IHdpdGggb3RoZXIgcGxhdGZvcm1zICgiJHByZWZpeC9ldGMvc25tcCIpCgoyMDA0LTAzLTA4IDIwOjI2ICByc3RvcnkKCiAgICogUkVBRE1FLmFpeDoKCiAgIG5ldyBmaWxlCgoyMDA0LTAzLTA4IDE3OjUzICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgcGVybC9TTk1QL1JFQURNRToKCiAgIHBhdGNoIFs5MTE0MzldIFVwZGF0ZXMgdG8gdGhlIFJFQURNRS53aW4zMiBhbmQgU05NUCBSRUFETUUgZm9yIFdpbjMyCgoyMDA0LTAzLTA4IDE2OjE0ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGlmZGVmIG91dCByb3V0aW5lcyB0aGF0IG9ubHkgYXZhaWxhYmxlIHdoZW4gYWdlbnR4IGlzIGdvaW5nIHRvIGJlIHVzZWQuCgoyMDA0LTAzLTA4IDE2OjA5ICByc3RvcnkKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIHVzZSBhcHAgbGlicyBmb3Igc25tcHRyYXBkIHdoZW4gYWdlbnQgZGlzYWJsZWQ7IG1vdmUgd3JhcGxpYiBzdWJzdGl0dXRpb24gdG8KICAgYSBtb3JlIHJlYXNvbmFibGUgcGxhY2UuIHNubXB0cmFwZCBzdGlsbCBkb2Vzbid0IGxpbmssIGJ1dCBpdCdzIGNsb3Nlci4uLgoKMjAwNC0wMy0wOCAxNDozOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIG5ldyBjb25maWd1cmUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDMtMDggMTQ6MzcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgY29tbWVudHMgaW4gaGFpcnkgYWdlbnQgbW9kdWxlIHByb2Nlc3Npbmc7IGRvbid0IG11bmdlIGRlZmF1bHQgbWlicyB1bnRpbAogICB3ZSBhcmUgZG9uJ3QgYnVpbGRpbmcgaXQ7IHR3ZWFrcyBmb3IgLS1kaXNhYmxlLWFnZW50OiB1c2Ugc2FtZSBkZWZhdWx0IG1pYnNldAogICBhcyAtLWVuYWJsZS1taW5pLWFnZW50LCBkb24ndCB0byBoYWlyeSBhZ2VudCBtb2R1bGUgcHJvY2Vzc2luZwoKMjAwNC0wMy0wOCAxMzoyNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBGaXggc3ludGF4IGVycm9ycy4KCjIwMDQtMDMtMDggMTI6NDIgIHNsaWYKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICByZW1vdmUgdW51c2VkIGxvY2FsIHZhciBjYWNoZV90aW1lb3V0CgoyMDA0LTAzLTA4IDEyOjQxICBzbGlmCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIHVzZSBxdW90ZXMgdG8gc2VhcmNoIGxvY2FsIGluY2x1ZGUgcGF0aHMgZm9yIHBlcmxfc25tcHRyYXBkLmgKCjIwMDQtMDMtMDggMTE6NDMgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgcGF0Y2ggWzkxMDkwM10gVXBkYXRlcyB0byB0aGUgUkVBRE1FLndpbjMyIGZvciBHQ0MKCjIwMDQtMDMtMDggMDk6MzcgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIFBhdGNoIGZyb20gQW5kcmV3IEhvb2QgdG8gaW5jbHVkZSBwcm9wZXIgaGVhZGVycyBhbmQge30gd3JhcCBwZXJsIHNwZWNpYWwgZGVjbHJzCgoyMDA0LTAzLTA4IDA4OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgdXNlIGRlZmF1bHQgbGlicmFyeSB2YWx1ZXMgaW5zdGVhZCBvZiBoYXJkLWNvZGVkIGRlZmF1bHRzIGZvciBhdXRoL3ByaXYgcHJvdG9jb2xzCgoyMDA0LTAzLTA2IDE5OjIzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSBwcm90b3R5cGUKCjIwMDQtMDMtMDYgMTk6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICB0d2VhayBwYXR0ZXJuIGZvciBuZXcgZG94eWdlbiBjb25mIGZpbGVzCgoyMDA0LTAzLTA2IDE5OjE2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgYWRkIHByb3RvdHlwZSB0byBnZXQgc3BhcnNlIHRhYmxlIG1pYiBoYW5kbGVyLCBuZXRzbm1wX3RhYmxlX25leHRfY29sdW1uOwogICByZW5hbWUgbmV0c25tcF9yZWdpc3Rlcl9zcGFyc2VfdGFibGUgdG8gbmV0c25tcF9zcGFyc2VfdGFibGVfcmVnaXN0ZXI7IGFkZAogICBuZXRzbm1wX3NwYXJzZV90YWJsZV9oYW5kbGVyX2dldAoKMjAwNC0wMy0wNiAxOToxMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIG1ha2Ugc3BhcnNlIHRhYmxlIGhlbHBlciBzdGF0aWM7IGFkZCBtZXRob2QgdG8gZ2V0IHNwYXJzZSB0YWJsZSBtaWIgaGFuZGxlcjsKICAgd2FybiBpZiBzcGFyc2UgdGFibGUgaGFuZGxlciBoYXMgYSBuZXh0IHBvaW50ZXIuIHVzZSBuZXcgaGFuZGxlciBjdXN0b20gYml0CiAgIHRvIG9ubHkgbG9nIG9uY2UsIGlmIHBvc3NpYmxlLgoKMjAwNC0wMy0wNiAxODo0NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgcmVzZXJ2ZXIgbGFzdCA0IGJpdHMgb2YgZmxhZyBmb3IgaGFuZGxlciB1c2UKCjIwMDQtMDMtMDYgMTc6MTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtZG94eWdlbi5tMmMsIG1mZC10b3AubTJjOgoKICAgZ2VuZXJhdGUgc2ltcGx5IGRveHlnZW4uY29uZiBmaWxlCgoyMDA0LTAzLTA1IDIxOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEZpeGVkIHRoZSBhZGRfcm93IHRva2VuIGJ5IHNvcnRpbmcgaW5jb21pbmcgY29sdW1ucyBmcm9tIHRoZSBwYXJzZXIKCjIwMDQtMDMtMDUgMTc6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICB1cGRhdGVzIGZyb20gb2xkZXIgY2hhbmdlczsgc3RpbGwgc2xpZ2h0bHkgb3V0IG9mIGRhdGUKCjIwMDQtMDMtMDUgMTc6MDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBkb24ndCByZWN1cnNlIG9uIGRpZmY7IGNwIGRlZmF1bHRzIGluc3RlYWQgb2YgbW92aW5nCgoyMDA0LTAzLTA1IDE3OjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIG5ldyB2YXIgZm9yIHBhcmFtIGNhbGxzIGJ5IHZhbAoKMjAwNC0wMy0wNSAxNzowMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgZml4IGV2YWx1YXRpb24gcHJvYmxlbSBpbiBnZW5lcmF0ZWQgZGVmYXVsdCBmaWxlCgoyMDA0LTAzLTA1IDE2OjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmkKOgoKICAgdHdlYWtzIHRvIGNvbW1lbnRzIGZvciBiZXR0ZXIgZG94eWdlbiBkb2NzOyB1c2UgbXVsdGlwbGUgcGFzc2VzIHRvIGtlZXAgaGVhZGVyCiAgIGFuZCBzb3VyY2UgaW4gc2FtZSBpbmNsdWRlOyBtb3ZlIGluZGV4ZXNfc2V0LCBpbml0X2RhdGEgaW50byBkYXRhX2FjY2Vzcy5tMmMKCjIwMDQtMDMtMDUgMTY6NTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpOgoKICAgdHdlYWtzIHRvIGNvbW1lbnRzIGZvciBiZXR0ZXIgZG94eWdlbiBkb2NzOyB1c2UgbXVsdGlwbGUgcGFzc2VzIHRvIGtlZXAgaGVhZGVyCiAgIGFuZCBzb3VyY2UgaW4gc2FtZSBpbmNsdWRlOyBhZGQgZXhhbXBsZSBjb2RlOyBtb3ZlIGFzIG11Y2ggY2FjaGUgc3R1ZmYgYXMKICAgcG9zc2libGUgaW50byBpbnRlcmZhY2UKCjIwMDQtMDMtMDUgMTY6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmk6CgogICB0d2Vha3MgdG8gY29tbWVudHMgZm9yIGJldHRlciBkb3h5Z2VuIGRvY3M7IHVzZSBtdWx0aXBsZSBwYXNzZXMgdG8ga2VlcCBoZWFkZXIKICAgYW5kIHNvdXJjZSBpbiBzYW1lIGluY2x1ZGU7IGJyZWFrIHNldF9pbmRleGVzIGludG8gMiBwaWVjZXMKCjIwMDQtMDMtMDUgMTY6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICB0d2Vha3MgdG8gY29tbWVudHMgZm9yIGJldHRlciBkb3h5Z2VuIGRvY3M7IHVzZSBtdWx0aXBsZSBwYXNzZXMgdG8ga2VlcCBoZWFkZXIKICAgYW5kIHNvdXJjZSBpbiBzYW1lIGluY2x1ZGU7IHJlLWFkZCBwcmUvcG9zdDsgZGVmaW5lIE1GRCByZXR1cm4gY29kZSBoZXJlLCBzaW5jZQogICB0YWJsZV9tZmQgbm8gbG9uZ2VyIGV4aXN0czsKCjIwMDQtMDMtMDUgMTY6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIGZpeCBzeW50YXggZXJyb3IKCjIwMDQtMDMtMDUgMTY6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICB0d2Vha3MgdG8gY29tbWVudHMgZm9yIGJldHRlciBkb3h5Z2VuIGRvY3M7IHVzZSBtdWx0aXBsZSBwYXNzZXMgdG8ga2VlcCBoZWFkZXIKICAgYW5kIHNvdXJjZSBpbiBzYW1lIGluY2x1ZGU7IHJlLWFkZCBwcmUvcG9zdCB3cmFwcGVyOyBjYWxsIG5ldyByb3dfcHJlcAoKMjAwNC0wMy0wNSAxNjo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1kYXRhLWdldC5tMmMsIG1mZC1kYXRhLXNldC5tMmMKOgoKICAgdHdlYWtzIHRvIGNvbW1lbnRzIGZvciBiZXR0ZXIgZG94eWdlbiBkb2NzOyB1c2UgbXVsdGlwbGUgcGFzc2VzIHRvIGtlZXAgaGVhZGVyCiAgIGFuZCBzb3VyY2UgaW4gc2FtZSBpbmNsdWRlCgoyMDA0LTAzLTA1IDE2OjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICB0d2Vha3MgdG8gY29tbWVudHMgZm9yIGJldHRlciBkb3h5Z2VuIGRvY3M7IHVzZSBtdWx0aXBsZSBwYXNzZXMgdG8ga2VlcCBoZWFkZXIKICAgYW5kIHNvdXJjZSBpbiBzYW1lIGluY2x1ZGU7IG1vdiBpbml0X2RhdGEgaGVyZTsgYWRkIHJvd19wcmVwCgoyMDA0LTAzLTA1IDE2OjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1pbmRleGVzLWZyb20tb2lkLm0yaSwKICAgICBnZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaSwgbm9kZS1nZXQubTJpLAogICAgIG5vZGUtc2V0Lm0yaSwgcGFyZW50LXNldC5tMmk6CgogICB0d2Vha3MgdG8gY29tbWVudHMgZm9yIGJldHRlciBkb3h5Z2VuIGRvY3M7IHVzZSBtdWx0aXBsZSBwYXNzZXMgdG8ga2VlcCBoZWFkZXIKICAgYW5kIHNvdWNlIGluIHNhbWUgaW5jbHVkZQoKMjAwNC0wMy0wNSAxNjo0NCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgYWRkIGZsYWdzOyBhZGQgZXhwaXJlZDsgb25seSB1c2UgZGVmYXVsdCB0aW1lb3V0IHdoZW4gY2FjaGUgY3JlYXRlZDsKCjIwMDQtMDMtMDUgMTY6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBoYXZlIG1pYl90b19hc25fdHlwZSByZXR1cm4gQVNOX1VOU0lHTkVEIGluc3RlYWQgb2YgQVNOX1VJTlRFR0VSLAogICB3aGljaCBpcyB0aGUgcHJvcGVyIGRhdGEgdHlwZS4KCjIwMDQtMDMtMDUgMTY6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgUmVtb3ZlIHRoZSBzcGFyc2UgdGFibGUgcmVnaXN0cmF0aW9uIGFuZCByZWdpc3RlciBpdCBhcyBhIG5vcm1hbCB0YWJsZS4KICAgICAxKSB0aGUgaGlnaGVyIHRhYmxlIGhhbmRsZXIgYWx3YXlzIGNhbGxzIHRoZSBzcGFyc2UgdGFibGUgaGFuZGxlcgogICAgICAgIGFueXdheSwgc28gaXQgd291bGQgYmUgcmVkdW5kYW50IGV2ZW4gaWYgaXQgZGlkIHdvcmsuCiAgICAgMikgVGhlIHNwYXJzZSB0YWJsZSBoYW5kbGVyIGRvZXNuJ3QgY2FsbCBhbnkgY2hpbGRyZW4sIGFuZCBkb2Vzbid0CiAgICAgICAgc2V0IHRoZSBhdXRvbmV4dCBmbGFnIHNvIGl0cyBhbHdheSB0aGUgZW5kIG9mIHRoZSBsaW5lICh0aGlzIHRvb2sKICAgICAgICBtZSBhbiBob3VyIHRvIGZpbmQpLgoKMjAwNC0wMy0wNSAxNjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBjaGFuZ2UgdGhlIGhlbHAgaW5mb3JtYXRpb24gZm9yIGFkZF9yb3cgdG8gbWVudGlvbiB0aGF0IHlvdSBuZWVkIHRoZQogICB0YWJsZSBuYW1lIHlvdSB3YW50IHRvIGFkZCB0aGUgZGF0YSB0by4KCjIwMDQtMDMtMDUgMTQ6NTggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgc25tcF9hZ2VudC5jOgoKICAgRml4IHRoZSBvaWQgcmVnaXN0cmF0aW9uIGNhY2hlIG5vdCBiZWluZyBpbnZhbGlkYXRlZCBwcm9wZXJseS4gIEJ1ZyAjOTAwOTY3CgoyMDA0LTAzLTA1IDExOjI5ICBzbGlmCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBmaXggWzcwNjA5M10gYnkgbm90IGRlZmluaW5nIHZhcmlhYmxlcyBhIHNlY29uZCB0aW1lLgoKMjAwNC0wMy0wNSAxMDowMyAgc2xpZgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9NQU5JRkVTVDoKCiAgIHF1ZWxsIG1hbmlmZXN0IGNoZWNrIGVycm9ycyAobWFrZWZpbGUsIHBtX3RvX2JsaWIsIC5jIGZpbGUpLgoKMjAwNC0wMy0wNSAxMDowMyAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmg6CgogICB1c2Ugb2YgU0VUX1NOTVBfRVJSTk8gcmVxdWlyZXMgLS0gZW5hYmxlIERMTCBkZWNvcmF0aW9uIGZvciBzbm1wX2Vycm5vCgoyMDA0LTAzLTA1IDEwOjAyICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIGFkZCBtaXNzaW5nIGRlY2xhcmF0aW9uIGZvciBuZXRzbm1wX3RhYmxlX25leHRfY29sdW1uCgoyMDA0LTAzLTA1IDEwOjAwICBzbGlmCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgYWRkIHN5bWJvbCB1c21BRVNQcml2UHJvdG9jb2wKCjIwMDQtMDMtMDUgMDg6MjMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oOgoKICAgZml4IG1hY3JvIG5hbWUsIGFzIG5vdGVkIG9uIHVzZXJzCgoyMDA0LTAzLTA1IDA1OjUxICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyICdzcGFjZScKCjIwMDQtMDMtMDUgMDU6MzAgIHNsaWYKCiAgICogY29uZmlndXJlLmluLCBzbm1wbGliL3N5c3RlbS5jLAogICAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwKICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgd2luMzIvc25tcGQvc25tcGQuZHNwCiwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgICAgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcCwKICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLAogICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsCiAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcAosIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwKICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AKLCB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLAogICAgIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcCwgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwCiwgY29uZmlndXJlOgoKICAgcGF0Y2ggWzkwMTQzNF0gYXBwbHkgdXNlV2luc29jazIuc2ggW3VuZG8gYnkgdXNpbmcgdXNlV2luc29jazEuc2hdCgoyMDA0LTAzLTA0IDIyOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmM6CgogICBpbml0aWFsaXplIHRoZSB0YWJsZV9kYXRhc2V0IGhlbHBlciAoYWdhaW4uLi4gIEkgKmtub3cqIGl0IHdhcyBpbml0aWFsaXplZCBpbiB0aGUgcGFzdC4gIFdoYXQgaGFwcGVuZWQ/KQoKMjAwNC0wMy0wNCAyMjowNSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHR1cm4gb2ZmIGNhY2hpbmcgdW50aWwgcmVhbCBmaXggZm91bmQgZm9yIGJ1ZyA5MDA5Njc6IGFnZW50eCwgY2FjaGluZwoKMjAwNC0wMy0wNCAyMDoyOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgKmZpbmFsbHkqIGZpeCBhZ2VudHggaGFuZyB3aGVuIG1hc3RlciBkaXNhcHBlYXJzCgoyMDA0LTAzLTA0IDE1OjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgZml4IGV4ZWNmaXggZm9yIHJlbG9jYXRhYmxlIGV4ZWNzOyBhZGQgZml4IGNtZCB0byByZWxvY2F0YWJsZSB0cmVlCgoyMDA0LTAzLTA0IDA5OjQ1ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbWlub3Igd29yZGluZyBjaGFuZ2VzIGFib3V0IHZlcnNpb24gbnVtYmVyIGNoYW5naW5nCgoyMDA0LTAzLTA0IDA5OjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gZml4IGJ1aWxkaW5nIHRyYXBkIHdoZW4gdGhlIGFnZW50IGlzbid0IGJlaW5nIGJ1aWx0CgoyMDA0LTAzLTA0IDA5OjEyICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTDoKCiAgIHVwZGF0ZSB0byB0aGUgd2F5IHdlIG5vcm1hbGx5IGRvIHBlcmwgTWFrZWZpbGVzLCB3aGljaCBpcyBub3Qgbm9ybWFsLgoKMjAwNC0wMy0wNCAwODo1MyAgaGFyZGFrZXIKCiAgICogcGVybC86IE9JRC9PSUQueHMsIFRyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsCiAgICAgYWdlbnQvYWdlbnQueHM6CgogICAtIGNvbnZlcnQgZnByaW50ZihzdGRlcnIgdG8gc25tcF9sb2coTE9HX0VSUgoKMjAwNC0wMy0wNCAwODo0OCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvbnVsbC5jOgoKICAgZml4IHN5bnRheCBlcnJvcnMKCjIwMDQtMDMtMDQgMDU6MzkgIHNsaWYKCiAgICogY29uZmlndXJlLmluLCBzbm1wbGliL01ha2VmaWxlLmluLCBjb25maWd1cmUKOgoKICAgcGF0Y2ggWzkwOTQ1OV0gQ29uZmlndXJlIHBhdGNoIHRvIGFsbG93IGZvciBXaW4zMiBvYmplY3RzLgoKMjAwNC0wMy0wMyAyMjoxMSAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIGNoYW5nZSAicHJvZ3JhfjEiIHRvICJQcm9ncmFtIEZpbGVzIiB0byBhdm9pZCBwcm9ibGVtIHdpdGggRE9TIG5hbWUgd2FycGluZy4KCjIwMDQtMDMtMDMgMjE6MjIgIHNsaWYKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5zdWJzLnBsLCBBU04vTWFrZWZpbGUuUEwKLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsCiAgICAgU05NUC9SRUFETUUsIGFnZW50L01ha2VmaWxlLlBMLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgcGF0Y2ggWzkwNjI3NF0gV2luMzIgUGVybCBjb21waWxlIHdpdGggcmVsZWFzZS9kZWJ1ZyBwYXRoIGNoYW5nZXMKCjIwMDQtMDMtMDMgMTQ6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL251bGwuYzoKCiAgIHNwZWNpZnkgbW9kZSBpbiByZWdpbmZvCgoyMDA0LTAzLTAzIDEzOjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGZpbGUuYywgZmlsZS5oOgoKICAgLSBtYWtlIHRoZSBmaWxlIHRva2VuIGFjY2VwdCBhIGRlZmF1bHQgc2l6ZSBsaWtlIHRoZSBkb2NzIHNheSBpdCB3aWxsLgoKMjAwNC0wMy0wMyAxMjowNyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNvbW1lbnQgb3V0IHBkdSBkb3VibGUgZnJlZSBjaGVjayB0aWwgYmV0dGVyIChub24tbGVha2luZykgc29sdXRpb24gZm91bmQKCjIwMDQtMDMtMDMgMDg6NTYgIHJzdG9yeQoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgbmV0c25tcF9tZmRfcGR1X2NvbnRleHRfcy4zOgoKICAgcmVtb3ZlIG1hbiBwYWdlIGZvciByZW1vdmVkIHN0cnVjdHVyZQoKMjAwNC0wMy0wMyAwODo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIG5ldyB1dGlsaXR5IHRvIHJlZ2VuZXJhdGUgbWliMmMgY29kZSwgcHJlc2VydmluZyBleGlzdGluZyBjdXN0b21pemF0aW9ucwoKMjAwNC0wMy0wMyAwNzo1MiAgc2xpZgoKICAgKiB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwOgoKICAgdGFibGVfbWZkIHJlbW92ZWQgLS0gZG9udCBidWlsZCBpdC4KCjIwMDQtMDMtMDMgMDc6NDYgIHNsaWYKCiAgICogd2luMzIvOiBpbnN0YWxsLW5ldC1zbm1wLmJhdCwgbm1ha2VwZXJsLmJhdDoKCiAgIHBlciBBbGV4QiAtIGFkZCAiLWhlbHAiIGRlc2NyaXB0aW9ucy4gY3JlYXRlIEJBU0UvdGVtcCBzdWJkaXIuCgoyMDA0LTAzLTAyIDEzOjQ1ICBzbGlmCgogICAqIGFnZW50L3NubXBkLmM6CgogICBwYXRjaCBbNzUzODk0XSAgY2F0Y2ggU0lHWEZTWiB3L28gc3Ryc2lnbmFsCgoyMDA0LTAzLTAyIDEyOjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMubWZkLmNvbmY6CgogICB0b3AgbGV2ZWwgbWZkIGNvbmYgZmlsZQoKMjAwNC0wMy0wMiAwNDoxOCAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcGF0Y2ggWzc1Mzg5NF0gIGNhdGNoIFNJR1hGU1osIGxvZyBtZXNzYWdlIGFuZCBleGl0LCBkbyBub3QgY29yZWR1bXAKCjIwMDQtMDMtMDIgMDQ6MDYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgZml4IFs3NzEzMTVdIEFnZW50IGNvcmVkdW1wcyBkdXJpbmcgc2h1dGRvd24KCjIwMDQtMDMtMDEgMjE6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBQQyBwb2xpY2UgLSB0b25lIGRvd24gZXJyb3IgbWVzc2FnZQoKMjAwNC0wMy0wMSAyMTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYzoKCiAgIGNoYW5nZSBnbG9iYWxzIHRvIHVzZSBmdW5jdGlvbnMgdG8gYWNjZXNzIGNhY2hlX2hhbmRsZXIgdmFycywgb3IgdXNlIG5ldwogICBkYXRhc3RvcmUgdmFsdWVzCgoyMDA0LTAzLTAxIDIxOjAzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaDoKCiAgIGZpeCB0eXBvIGluIGNvbW1lbnQ7IHJlbW92ZSBub2FsbG9jIHByb3RvdHlwZQoKMjAwNC0wMy0wMSAyMTowMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIGZpeCB0eXBvIGluIGNvbW1lbnQ7IGFkZCBOT19DQUNISU5HIGFuZCBDQUNIRV9USU1FT1VUCgoyMDA0LTAzLTAxIDIxOjAwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmg6CgogICBuZXcgYmFieV9zdGVwcyBhY2Nlc3MgbXVsdGlwbGV4ZXIgaGFuZGxlcjsgbWFrZSBhY3R1YWwgaGVscGVyIHJvdXRpbmVzIHN0YXRpYzsKICAgcmVuYW1lIGZ1bmN0aW9ucywgZGVmaW5lcyBmb3IgYmFja3dhcmRzIGNvbXBhdGFiaWxpdHkKCjIwMDQtMDMtMDEgMjA6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIHByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZSBjYWxscyB0byBpbml0X2FnZW50CgoyMDA0LTAzLTAxIDIwOjUyICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHNldCBkZWZhdWx0IGFnZW50IGNhY2hlIHRpbWVvdXQ7IGRlYnVnIG1zZyBmb3IgZXJybm8gb24gc2VsZWN0IGVycm9yCgoyMDA0LTAzLTAxIDIwOjUxICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbWVyZ2UgY29tbW9uIGNhc2UgaW4gc3dpdGNoCgoyMDA0LTAzLTAxIDIwOjUwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICByZXBsYWNlIGdsb2JhbHMgdy9sb2NhbCBzdGF0aWMgKyBhY2Nlc3MgZnVuY3Rpb247IHVzZSBkYXRhc3RvcmUgZm9yIGNhY2hpbmcKICAgZW5hYmxlZCwgY2FjaGUgdGltZW91dDsgdGVzdCBjYWNoZV9mcmVlIGZvciBOVUxMIGJlZm9yZSBjYWxsaW5nIGl0OyBkb24ndAogICB1c2UgZ290bzsgdXNlIG5ldyBhdXRvLW5leHQgZnVuY3Rpb25hbGl0eSB0byBjYWxsIGNoaWxkIGhhbmRsZXJzOyBuZXcKICAgY2FjaGVfY3JlYXRlLCBjYWNoZV9oYW5kbGVyX3JlZ2lzdGVyLCBjYWNoZV9maW5kX2J5X29pZDsgZG9uJ3QgcmVsb2FkIGNhY2hlCiAgIG1vcmUgdGhhbiBvbmNlIHBlciByZXF1ZXN0OyBub3RlIHBvc3NpYmlsaXR5IG9mIGNhY2hlIGJlaW5nIGZyZWUnZCBtaWQtCiAgIHJlcXVlc3QgZm9yIGRlbGVnYXRlZCByZXF1ZXN0cywgdy9wcm9wb3NlZCBzb2x1dGlvbgoKMjAwNC0wMy0wMSAyMDoxOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWZUYWJsZS5jLCBpZlRhYmxlLmg6CgogICBzd2l0Y2ggZnJvbSBpdGVyYXRvciB0byBuZXcgdGFibGVfY29udGFpbmVyIGhhbmRsZXIuCgoyMDA0LTAzLTAxIDE5OjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWZUYWJsZS5jOgoKICAgcnVuIHRocm91Z2ggaW5kZW50CgoyMDA0LTAzLTAxIDA2OjA2ICBzbGlmCgogICAqIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6CgogICB1bmRvIHBhdGNoIGF0IHI1LjMgLS0gcmVzdG9yZSAoMTYpIGluIHRlc3QgdG8gZ2V0IG9ubHkgbm9uLXJlcGVhdGVycwoKMjAwNC0wMi0yOSAyMToxMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBtb3ZlIG5ldHNubXBfdGFibGVfaW5kZXhfZmluZF9uZXh0X3JvdyBoZXJlIGZyb20gdGFibGUuYwoKMjAwNC0wMi0yOSAyMToxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaDoKCiAgIGFkZCB0YWJsZV9jb250YWluZXI7IHJlbW92ZSB0YWJsZV9tZmQKCjIwMDQtMDItMjkgMjE6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIG1mZCBkZXBlbmRlbmNpZXMKCjIwMDQtMDItMjkgMjA6NTQgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBhZGQgZmxhZ3MgZmllbGQgdG8gbWliIGhhbmRsZXIgc3RydWN0dXJlOyBuZXcgaGFuZGxlciBBVVRPX05FWFQgZmxhZ3MgZm9yCiAgIGhhbmRsZXJzIHRoYXQgZG9uJ3Qgd2FudCB0byBib3RoZXIgd2l0aCBjYWxsaW5nIHN1Yi1oYW5kbGVycyAoYWxzbyByZWR1Y2VzCiAgIHN0YWNrIGRlcHRoKTsgbmV3IG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fY3JlYXRlIHdoaWNoIHJlc2lnZXJzIGV4aXN0aW5nCiAgIGhhbmRsZXI7IGxvZyB3YXJuaW5nIGZvciBoYW5kbGVycyByZWdpc3RlcmluZyB3L25vIG1vZGVzOyBoYW5kbGUgaW5qZWN0aW9uIHRvIGEKICAgcmVnaXN0cmF0aW9uIHcvb3V0IGEgaGFuZGxlcjsgbmV3IG1vZGVzIEhBTkRMRVJfQ0FOX05PVF9DUkVBVEUsCiAgIEhBTkRMRVJfQ0FOX1NFVF9PTkxZOyBvciBpbiBIQU5ETEVSX0NBTl9OT1RfQ1JFQVRFIHcvIERFRkFVTFQ7IGFkZCB2b2lkIHBvaW50ZXIKICAgdG8gaGFuZGxlciByZWdpc3RyYXRpb24KCjIwMDQtMDItMjkgMjA6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSB0YWJsZV9tZmQuaCBkZXBlbmRlbmNpZXMKCjIwMDQtMDItMjkgMjA6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBzeW5jIGNsb3Nlc3RfY29sdW1uIHcvZml4ZXMgaW4gNS0xLXBhdGNoZXM7IGNoZWNrIGZvciBleGlzdGluZyB0YmxfcmVxX2luZm8gaW4KICAgcmVxdWVzdHM7IGNhbGwgc3BhcnNlIHRhYmxlIGhhbmRsZXIgYWZ0ZXIgbm9ybWFsIHRhYmxlIHByb2Nlc3Npbmc7IG1vdmUKICAgbmV0c25tcF90YWJsZV9pbmRleF9maW5kX25leHRfcm93IHRvIHRhYmxlX2NvbnRhaW5lci5jCgoyMDA0LTAyLTI5IDE3OjE0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaDoKCiAgIHByb3RvdHlwZSBmb3IgaGFuZGxlciBnZXQ7IG1ha2UgaW5saW5lIGZ1bmMgc3RhdGljIGlubGluZQoKMjAwNC0wMi0yOSAxNzoxMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBvdXQgdy90aGUgb2xkLCBpbiB3L3RoZSBuZXcgKHJlbW92ZSBtZmQgaGVscGVyLCBhZGQgdGFibGVfY29udGFpbmVyKQoKMjAwNC0wMi0yOSAxNzoxMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfbWZkLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9tZmQuaDoKCiAgIHJlbW92ZSBtZmQgaGVscGVyOyBtZmQgY29uZiBmaWxlcyBub3cgdXNlciBuZXcgdGFibGVfY29udGFpbmVyIGhlbHBlcgoKMjAwNC0wMi0yOSAxNzowNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICByZW1vdmUgZ3JvdXBpbmcgb3B0aW9uICh1c2VyIGNhbiB1c2Ugcm93X21lcmdlIGluc3RlYWQpOyBuZXcgZnVuY3Rpb24gZ28gZ2V0CiAgIGhhbmRsZXIgdy9vdXQgcmVnaXN0ZXI7IGJyZWFrIGNvbXBsZXggY29uZGl0aW9uIGludG8gc2ltcGxlciBjb25kaXRpb25hbHMgc28KICAgYnJlYWtwb2ludHMgY2FuIGJlIHNldCBvbiBjb25kaXRpb247IGRvbid0IGNhbGwgbG93ZXIgaGFuZGxlcnMgaWYgbm8gcmVxdWVzdHMKICAgbmVlZCBwcm9jZXNzaW5nCgoyMDA0LTAyLTI5IDE3OjAxICByc3RvcnkKCiAgICogc25tcGxpYi86IGNvbnRhaW5lcl9pdGVyYXRvci5jLCBjb250YWluZXJfbGlzdF9zc2xsLmMKLCBjb250YWluZXJfbnVsbC5jOgoKICAgYWRkIHN1cHBvcnQgZm9yIGNvbnRhaW5lciBjbGVhcgoKMjAwNC0wMi0yOSAxNjozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBlbmFibGUgZGxtb2Qgc3VwcG9ydCBpZiBIQVZFX0xJQkRMCgoyMDA0LTAyLTI5IDE2OjI1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY2F0Y2ggYmFkIHNpemUgZm9yIGZpeGVkIHNpemUgdHlwZXMKCjIwMDQtMDItMjkgMTY6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIG5ldyBmdW5jdGlvbiB0byBzdXBwb3J0IENPTlRBSU5FUl9DTEVBUjsgbWFrZSBzb21lIGZ1bmN0aW9ucyBzdGF0aWMgaW5saW5lCgoyMDA0LTAyLTI5IDE2OjE0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGZpeCBpbnNlcnQvcmVtb3ZlL2ZyZWUgaW5saW5lcyB0byBwcm9wZXJseSBkZWFsIHdpdGggbXVsdGlwbGUgaW5kZXhlczsgYWRkIG5ldwogICBDT05UQUlORVJfQ0xFQVIgbWFjcm8vY2FsbGJhY2s7IGFkZCBub3RlcyBvbiBmcmVlaW5nIHJldHVybmVkIGFycmF5IGZyb20KICAgZ2V0X3N1YnNldAoKMjAwNC0wMi0yOSAxNjowNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICB1c2UgbWZkIGVycm9yIGluc3RlYWQgb2Ygc25tcCBlcnJvcgoKMjAwNC0wMi0yOSAxNjowNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICBzZXR1cCBzaXplIG5hbWVzIGJlZm9yZSBpbmNsdWRpbmcgZ2VuZXJpYyBmaWxlCgoyMDA0LTAyLTI5IDE2OjA0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgcmVtb3ZlIGV4dHJhbmVvdXMgZW5kOyBhZGQgY29tbWVudHMKCjIwMDQtMDItMjkgMTY6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjOgoKICAgYWRkIGV4aXQoKSBjYWxsCgoyMDA0LTAyLTI5IDE2OjAwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICB0d2Vha3MgdG8gc3VwcG9ydCBuZXcgZ2VuZXJhdGUgZmV3ZXIgZmlsZXMgZmxhZwoKMjAwNC0wMi0yOSAxNTo1OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHR3ZWFrcyB0byBzdXBwb3J0IG5ldyBnZW5lcmF0ZSBmZXdlciBmaWxlcyBmbGFnOyB1c2UgZ2xvYWJsIHRhYmxlIG9pZC9zaXplIHZhcjsKICAgc3dpdGNoIG1mZCB3cmFwcGVyIGZ1bmN0aW9ucyB0byB1c2Ugc3RhbmRhcmQgbmV3IGFwaSBwYXJhbWV0ZXJzOyBuZXcgb3B0aW9uYWwKICAgY2FjaGU7IHVzZSB0d28gbmV3IGhlbHBlcnM6IG5ldHNubXBfYmFieV9zdGVwc19hY2Nlc3NfbXVsdGlwbGV4ZXIgYW5kCiAgIG5ldHNubXBfY29udGFpbmVyX3RhYmxlX2hhbmRsZXI7IGxvb2sgZm9yIGRhdGEvcHV0IGNyZWF0ZWQgcm93IGRhdGEgaW4gcmVxdWVzdAogICBhbGEgY29udGFpbmVyIHRhYmxlIGhhbmRsZXIgZm9yIGxvd2VyIGhhbmRsZXJzOyB0d2Vha3MgZm9yIHVzaW5nIG5ldyBzaW5nbGUKICAgZmlsZSBhY2Nlc3MgbWV0aG9kcwoKMjAwNC0wMi0yOSAxNTo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIHR3ZWFrcyB0byBzdXBwb3J0IG5ldyBnZW5lcmF0ZSBmZXdlciBmaWxlcyBmbGFnOyBtYWtlIHRhYmxlIG9pZC9zaXplIGEgZ2xvYmFsCiAgIHZhcjsgc3dpdGNoIG1mZCB3cmFwcGVyIGZ1bmN0aW9ucyB0byB1c2Ugc3RhbmRhcmQgbmV3IGFwaSBwYXJhbWV0ZXJzCgoyMDA0LTAyLTI5IDE1OjQ5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRhdGEtZ2V0Lm0yYywgbWZkLWRhdGEtc2V0Lm0yYwo6CgogICB1c2UgcmVwb3J0IHByb2dyZXNzIGZsYWc7IHR3ZWFrcyB0byBzdXBwb3J0IG5ldyBnZW5lcmF0ZSBmZXdlciBmaWxlcyBmbGFnCgoyMDA0LTAyLTI5IDE1OjMwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICB0d2Vha3MgdG8gdXNlIG5ldyBzaW5nbGUgZmlsZSBhY2Nlc3MgbWV0aG9kcyAocHJvY2Vzc2luZyB0eXBlIGZsYWcpCgoyMDA0LTAyLTI5IDE1OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICB0ZXN0IG5ldyBmbGFnIGZvciBsZXNzIHZlcmJvc2Ugb3V0cHV0OyBkb2N1bWVudCB0cmFuc2llbnQgdmFsdWVzIGluIGNvbW1lbnRzCiAgIGFuZCBnZW5lcmF0ZWQgdGFibGUgZGVmYXVsdCBmaWxlOyBtYWtlIHN1cmUgbWZkIGRlZmF1bHRzIGhhdmUgYmVlbiBwcm9jZXNzZWQKCjIwMDQtMDItMjkgMTU6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgZGVmYXVsdCB0byBubyBtYXBwaW5nLCBleGNlcHQgZm9yIG5vZGVzIHcvZW51bXM7IHVzZSBwYXJhbSBuYW1lcyBmb3Igbm9kZQogICBuYW1lczsgcHJvcGVybHkgZXNjYXBlIGxlbiB2YXIgbmFtZQoKMjAwNC0wMi0yOSAxNTowNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC5tMmk6CgogICB0d2VhayBvcmRlciBvZiB0ZXN0aW5nIGNvbmRpdGlvbmFscwoKMjAwNC0wMi0yOSAxNTowMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaToKCiAgIGNvbW1lbnQgdHdlYWtzOyBtYWtlIHN1cmUgdG8gY2xlYXIgdG1wIHZhciBiZWZvcmUgdXNlCgoyMDA0LTAyLTI5IDE1OjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1lbnVtcy5tMmMsCiAgICAgZ2VuZXJpYy10YWJsZS1vaWRzLm0yYzoKCiAgIHR3ZWFrcyB0byBzdXBwb3J0IGdlbmVyYXRpbmcgZmV3ZXIgZmlsZXMKCjIwMDQtMDItMjkgMTU6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1jb25zdGFudHMubTJjOgoKICAgbmV3IGZpbGUgdG8gZ2VuZXJhdGUgY29tYmluZWQgb2lkL2VudW0gaGVhZGVyCgoyMDA0LTAyLTI5IDE0OjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBpbml0IG5ldyBmbGFnIGZvciBjcmVhdGluZyBmZXdlciBmaWxlczsgaW5pdCBuZXcgZmxhZyBmb3IgcHJvY2Vzc2luZyBwYXJ0cwogICBvZiBmaWxlcyAodW50aWwgSSBjYW4gZmlndXJlIG91dCBpZiBJIGNhbiBjb252ZXJ0IHRvIG5ldyBkZWZpbmUvY2FsbGRlZmluZSkKCjIwMDQtMDItMjkgMTQ6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpOgoKICAgbmV3IGFjY2VzcyBtZXRob2QgZGVmaW5lcwoKMjAwNC0wMi0yOSAxNDo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmkKLCBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1pbnRlcmZhY2UubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtcmVhZG1lLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXNldHVwLm0yaToKCiAgIHJlbW92ZSBmaWxlcyAgKG1lcmdlZCBpbnQgbWZkLWFjY2Vzcy11bmRvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaSkKCjIwMDQtMDItMjkgMTQ6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaQo6CgogICBtZXJnZSBtdWx0aXBsZSBhY2Nlc3MgZmlsZXMgaW50byBvbmUgZmlsZQoKMjAwNC0wMi0yNyAyMjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBmaXggdGhlIGNhc2Ugd2hlcmUgaW5jb21pbmcgZ2V0YnVsa3Mgd2l0aCBubyByZXBlYXRpbmcgdmFyYmluZHMgaXMgcmVjZWl2ZWQuCgoyMDA0LTAyLTI3IDE1OjA0ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaCwgcGVybC9NYWtlZmlsZS5QTCwKICAgICBwZXJsL0FTTi9NYWtlZmlsZS5QTCwgcGVybC9PSUQvTWFrZWZpbGUuUEwsCiAgICAgcGVybC9TTk1QL01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMLAogICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBwYXRjaCBbIDkwNTQ2NSBdIE1pbkdXIFBlcmwgbW9kdWxlIGNvbXBpbGluZyB3aXRoIEFjdGl2ZVN0YXRlIFBlcmwKCjIwMDQtMDItMjcgMDc6MTggIHNsaWYKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgY29uc3RydWN0IGluc3RhbGwgdHJlZSBzaW1pbGFyIHRvIGluc3RhbGwgdHJlZSB0aGF0IGdjYyBidWlsZHMgdXNlLgoKMjAwNC0wMi0yNyAwNjowNSAgc2xpZgoKICAgKiB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdDoKCiAgIGJ1aWxkIE1TVlMgcmVsZWFzZSBhbmQgZGVidWcgdmVyc2lvbnMgaGF2aW5nIHRoZSBzYW1lIG5hbWUuCgoyMDA0LTAyLTI3IDA1OjQyICBzbGlmCgogICAqIHdpbjMyLzogZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgICBsaWJhZ2VudC9saWJhZ2VudC5kc3AsIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsCiAgICAgbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICAgIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKICAgICBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsCiAgICAgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAosIHNubXBkL3NubXBkLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgICAgc25tcGRmL3NubXBkZi5kc3AsIHNubXBkc2RrL3NubXBkLmRzcCwKICAgICBzbm1wZ2V0L3NubXBnZXQuZHNwLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgICAgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCBzbm1wc2V0L3NubXBzZXQuZHNwLAogICAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcAosIHNubXB0cmFwL3NubXB0cmFwLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AKLCBzbm1wdXNtL3NubXB1c20uZHNwLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsCiAgICAgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgYnVpbGQgTVNWUyByZWxlYXNlIGFuZCBkZWJ1ZyB2ZXJzaW9ucyBoYXZpbmcgdGhlIHNhbWUgbmFtZS4KCjIwMDQtMDItMjcgMDU6MTEgIHNsaWYKCiAgICogd2luMzIvOiBpbnN0YWxsLW5ldC1zbm1wLmJhdCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKOgoKICAgY29uc3RydWN0IGluc3RhbGwgdHJlZSBzaW1pbGFyIHRvIGluc3RhbGwgdHJlZSB0aGF0IGdjYyBidWlsZHMgdXNlLgoKMjAwNC0wMi0yNyAwNDo1MCAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL01ha2VmaWxlLmluLAogICAgIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgZW5hYmxlIGdjYyBidWlsZHMgb2YgV2luZG93cyBzZXJ2aWNlIGNvZGUgZm9yIHRoZSBhZ2VudC4KCjIwMDQtMDItMjYgMTc6MjAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgcmVtb3ZlIHVubmVjZXNzYXJ5IHNldHRpbmcgb2YgTkVUU05NUF9EU19MSUJfQVBQVFlQRS4KCjIwMDQtMDItMjYgMTY6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgY29tbW9uLWl6ZSBsb29wIGFuZCBzYXZpbmcgb2Ygc3RhdGUgdmFyaWFibGVzIHRocm91Z2ggYSBjcmVhdGl2ZSB1c2UKICAgb2YgcmVmZXJlbmNlcy4KCjIwMDQtMDItMjYgMTY6MjEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgc3VwcG9ydCBmb3IgQGRlZmluZSBzZWN0aW9ucyB3aGljaCBjYW4gYmUgbGF0ZXIgcmVmZXJyZWQgdG8gYnkgQGNhbGxkZWZpbmUKCjIwMDQtMDItMjYgMTY6MTEgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICAtIGRveHlnZW4gY29uZmlnIGZpbGUuCiAgIC0gVHJhcFJlY2V2aWVyIHBlcmwgbW9kLgoKMjAwNC0wMi0yNiAwNjo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBEb24ndCBjYWxsICdUQ1BfQ291bnRfQ29ubmVjdGlvbnMnIGlmIHRoZSB0Y3BUYWJsZSBtb2R1bGUgaXNuJ3QgaW5jbHVkZWQuCgoyMDA0LTAyLTI2IDA2OjMyICBkdHMxMgoKICAgKiBGQVE6CgogICBNaW5vciB3b3Jkc21pdGhpbmcgdHdlYWtzIHRvIEJydWNlJ3MgRkFRIGNoYW5nZXMuCiAgIEdvc2gsIGJ1dCBEYXZlJ3MgYSBwaWNreSBidWdnZXIgYXQgdGltZXMuCiAgIE5ldmVyIG1pbmQsIHBlcmhhcHMgaWYgeW91IGxldCBoaW0gYW11c2UgaGltc2VsZiB3aXRoIHRoZSBkb2N1bWVudGF0aW9uLAogICB5b3UgbWlnaHQgYmUgYWJsZSB0byBrZWVwIGhpbSBhd2F5IGZyb20gbW9yZSBjcml0aWNhbCBiaXRzIG9mIHRoZSBwcm9qZWN0Li4uLgoKMjAwNC0wMi0yNSAyMzo0NyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYzoKCiAgIHJlbW92ZSBDUiBhY2NpZGVudGFsbHkgaW5zZXJ0ZWQgcHJldmlvdXNseS4KCjIwMDQtMDItMjUgMjE6NDIgIHNsaWYKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIHVzZSBSRkMgMzMzMCBwZXJtaXR0ZWQgYWRkcmVzcyBmb3IgdGhpcyBob3N0IHdoZW4gbG9va2luZyBpbiBnZXRfbXlhZGRyCgoyMDA0LTAyLTI1IDE2OjU5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEVuYWJsZSBBRVMgc3VwcG9ydCBmb3IgdGhlIFNOTVAgbW9kdWxlIChjYW4ndCBiZWxpZXZlIGl0J3MgYmVlbiBtaXNzaW5nKQoKMjAwNC0wMi0yNSAxNDo0NiAgc2xpZgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHJlbW92ZSB1bm5lZWRlZCB3b3JrYXJvdW5kIHBhdGNoIFsgODQwODMwIF0gU05NUC54cyBGcmVlIHRvIHdyb25nIHBvb2wgY3Jhc2ggb24gV2luZG93cwoKMjAwNC0wMi0yNSAxMzowNiAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHBlcmwvU05NUC9SRUFETUU6CgogICBwYXRjaCBbOTAxOTQ0XSB3aW4zMiBkb2MgdXBkYXRlcyBmcm9tIEFsZXggQnVyZ2VyCgoyMDA0LTAyLTI0IDEwOjM5ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaDoKCiAgIHVzZSB3aW5zb2NrIGdldGhvc3RieW5hbWUsIGdldHNlcnZieW5hbWUgb24gbWluZ3czMi4KCjIwMDQtMDItMjQgMDk6NTggIHNsaWYKCiAgICogd2luMzIvaW5zdGFsbC1uZXQtc25tcC5iYXQ6CgogICBwZXIgQmVybmhhcmQgUGVuejogZGVlcCBjb3B5IG9mIGluY2x1ZGUgdHJlZQoKMjAwNC0wMi0yNCAwNjoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBQYXRjaCBmcm9tIEJvYiBSb3dsYW5kczogWyBidWcgOTAyNzIyIF0gQWJsZSB0byBkZWxldGUgdmlldyBldmVuIHdoZW4gc3RvcmFnZSB0eXBlID0gcGVybWFuZW50CgoyMDA0LTAyLTI0IDA1OjQzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICBwYXRjaCBbOTAzNDI0XSBwZXIgQW5keSBTbWl0aDogaWZkZWYgd2luMzIgZml4IGZvciB0Y3BUYWJsZS5jIChjeWd3aW4pCgoyMDA0LTAyLTIzIDE2OjMyICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBQYXRjaCAjOTAxNDYwIGZyb20gQnJ1Y2UgU2hhdzogdXBkYXRpbmcgbWlzYyBGQVEgaW5mb3JtYXRpb24KCjIwMDQtMDItMjMgMTY6MjEgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICB1cGRhdGVkIHBlcmwgYnVpbGQgaW5mbwoKMjAwNC0wMi0yMyAxNjoxMyAgaGFyZGFrZXIKCiAgICogSU5TVEFMTDoKCiAgIHBhdGNoICM5MDEzNzUgZnJvbSBCcnVjZSBTaGF3OiBzb21lIGluZm9ybWF0aW9uIG9uIElOU1RBTEwgaXMgc3RhbGUKCjIwMDQtMDItMjMgMTM6MjkgIHNsaWYKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICB1bmRvIHByZXZpb3VzIHBhdGNoIC0tIG5vIHNlbWktY29sb25zIGluIERFRkFVTFRfTUlCe0ZJTEVTLERJUlN9CgoyMDA0LTAyLTIzIDEwOjU3ICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgY29udmVydCBvdGhlciBsaXN0LW9yaWVudGVkIHNldHRpbmdzIHRvIGNvbnNpZGVyIHNlbWktY29sb24gZGVsaW1pdGVyIGZvciBtaW5ndzMyCgoyMDA0LTAyLTIyIDA5OjQ4ICBzbGlmCgogICAqIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0OgoKICAgcGVyIEFsZXhCOiBhbHNvIGluc3RhbGwgc25tcGNvbmYgZmlsZXMKCjIwMDQtMDItMjEgMTM6NTYgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCBhY2NvbmZpZy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLCBzbm1wbGliL3Rvb2xzLmMsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIHdpbjMyL2xpYnNkbGwuZHN3OgoKICAgQXBwbHkgcGF0Y2ggIzg5ODQ2NCB0byBmaXggYnVncyAjODk2MDMwIGFuZCAjNzczNDEyCgoyMDA0LTAyLTIwIDA3OjE4ICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgosIGNvbmZpZ3VyZToKCiAgIHBlciBBbGV4QjogZml4IERFRkFVTFRfTUlCUyB0byB1c2UgJzsnIHNlcGFyYXRvciBvbiBXaW4zMi4KCjIwMDQtMDItMTkgMjA6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgV2hvb3BzLiAgVGhhdCB3b3VsZCBub3QgaGF2ZSB3b3JrZWQuICBTaWxseSBtZS4KCjIwMDQtMDItMTkgMjA6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgY2hlY2sgbnVtYmVyIG9mIHN1cHBvcnQgcHJvY2Vzc29ycyBwcm9wZXJseQoKMjAwNC0wMi0xOSAyMDozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBbIDkwMDI0NCBdIHN1cHBvcnQgdXAgdG8gMzIgQ1BVcyBvbiBsaW51eCBmcm9tIE1pY2hhbCBMdWN6YWsKCjIwMDQtMDItMTkgMTk6NDEgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclRhYmxlLmgsCiAgICAgc25tcE5vdGlmeVRhYmxlLmg6CgogICBmaXggYnVnIDg5ODUwOSBmdW5jdGlvbiBwb2ludGVyIHByb3RvdHlwZXMgZGVmaW5lZCB0d2ljZQoKMjAwNC0wMi0xOSAxODo1MCAgc2xpZgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGFsbG93IERPUyB2b2x1bWUgbmFtZSBbQS1aXTogdG8gYmVnaW4gdGhlIHBhdGggc3BlYyBmb3IgcHJlZml4ZXMKCjIwMDQtMDItMTkgMDk6NDEgIHNsaWYKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgZml4IHNwZWxsIE5TQ19FWEVDX1BSRUZJWAoKMjAwNC0wMi0xOCAyMzozNSAgc2xpZgoKICAgKiBwZXJsL1NOTVAvdC9taWJsb2FkLnQ6CgogICBwZXIgQWxleEI6IC13aW4zMiBzdXBwb3J0CgoyMDA0LTAyLTE4IDIzOjM1ICBzbGlmCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBwZXIgQWxleEI6CiAgIC1hZGQgV2luMzIgc3VwcG9ydCBmb3Igc3RhcnRpbmcgLyBzdG9wcGluZyBzbm1wZCBhbmQgc25tcHRyYXBkCiAgIC1hbGxvdyBzcGFjZXMgaW4gc25tcHRlc3QuY21kIGZpbGUKCjIwMDQtMDItMTggMjM6MzQgIHNsaWYKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgLW1ha2UgJG15IG9wdHMgZ2xvYmFsIHNvIGl0J3MgdmlzaWJsZSB0byBHZXRUZXN0SW5mbygpCiAgIC1yZS13cml0ZSB3aW4zMiBjb2RlIGNyZWF0ZSBzbm1wdGVzdC5jbWQgZmlsZQoKMjAwNC0wMi0xOCAyMzoyNyAgc2xpZgoKICAgKiBwZXJsL1NOTVAvdC86IGJ1bGt3YWxrLnQsIG5vdGlmeS50OgoKICAgcGVyIEFsZXhCOiB0ZXN0IHRoYXQgdmFyaWFibGVzIGFyZSBkZWZpbmVkIGJlZm9yZSB1c2luZyB0aGVtLgoKMjAwNC0wMi0xOCAyMzoxNyAgc2xpZgoKICAgKiBwZXJsL1NOTVAvdC86IGFzeW5jLnQsIGJ1bGt3YWxrLnQ6CgogICBwZXIgQWxleEI6IGRpc2FibGUgYXN5bmNoIHRlc3RzIHdoZW4gcnVuIG9uIHdpbjMyIHBsYXRmb3JtLgoKMjAwNC0wMi0xOCAyMzowMCAgc2xpZgoKICAgKiBwZXJsL1NOTVAvdC86IGJ1bGt3YWxrLnQsIG1pYmxvYWQudDoKCiAgIHBlciBBbGV4QjogYWRkIG1pc3Npbmcgc25tcHRlc3RfY2xlYW51cCBjYWxsCgoyMDA0LTAyLTE4IDIyOjQ1ICBzbGlmCgogICAqIHBlcmwvU05NUC90L2NvbmYudDoKCiAgIHBlciBBbGV4QjogdHlwbyBmaXggImNvbXBpbGVkIHRoZSIKCjIwMDQtMDItMTggMjI6NDAgIHNsaWYKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5zdWJzLnBsLCBBU04vTWFrZWZpbGUuUEwKLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBmcm9tIEFsZXggQnVyZ2VyOiBjYXNlIGluc2Vuc2l0aXZlIGNoZWNrIGZvciAtTkVULVNOTVAtSU4tU09VUkNFIGNvbW1hbmQgcGFyYW0uCgoyMDA0LTAyLTE4IDEyOjM1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBhIHYzLXNlY3VyaXR5IGF1dG8tYnVpbHQgaGVhZGVyIGR1cmluZyBkaXN0Y2xlYW4KCjIwMDQtMDItMTggMTE6NTggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgZG9jdW1lbnQgLUMgb3B0aW9uIGluIHVzYWdlCgoyMDA0LTAyLTE4IDExOjU3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGZpeCBwYXRoIGluIHVzYWdlOyB1c2UgbmV3IG5zZy1zdWZmaWMgaW4gdXBsb2FkIHBhdGgKCjIwMDQtMDItMTggMTE6NDAgIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICB1c2UgSU5TVEFMTF9CQVNFIC1yZWxhdGl2ZSBta3RlbXAgZmlsZSBwYXR0ZXJuLgoKMjAwNC0wMi0xOCAwOToyNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG1ha2UgIyBlcnIgbGluZXMgcmVwb3J0ZWQgY29uZmlndXJhYmxlLiBkZWZhdWx0IHRvIDI1CgoyMDA0LTAyLTE4IDA2OjE0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBQcm92aWRlIGEgZGVmaW5pdGlvbiBmb3IgJ2luNmFkZHJfYW55JyB1bmRlciBXaW5kb3dzCiAgIChBbHRob3VnaCB0aGVyZSdzIGFuIGV4dGVybmFsIGRlY2xhcmF0aW9uIG1lbnRpb25lZCBpbgogICAgPHdzMnRjcGlwLmg+LCB0aGVyZSBubyBhY3R1YWwgdmFyaWFibGUgaW4gdGhlIGxpYnJhcnkpCgoyMDA0LTAyLTE3IDEwOjMzICBoYXJkYWtlcgoKICAgKiBtYWtlbm9zeXNkZXBlbmQucGw6CgogICByZWdleHAgdG91Y2h1cHMKCjIwMDQtMDItMTcgMDc6MjcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBidW1wIE1BWFRDIHVwIHRvIDQwOTYKCjIwMDQtMDItMTcgMDc6MjUgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBvbmx5IGFwcGVuZCBzdWZmaWMgdG8gYnVpbGQgZGlyIHdoZW4gYnVpbGRpbmcgZGVmYXVsdCBidWlsZCBkaXI7IHJlbW92ZQogICBzeXN0ZW0gc3BlY2lmaWMgdHdlYWtzIGZvciBzZiBjZiwgdGhleSBzaG91bGQgZ28gaW4gfi8uc25tcC9uc2ItcmMKCjIwMDQtMDItMTcgMDU6NTQgIHNsaWYKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBlcnJvciBhZnRlciBjaGFuZ2UgZm9yIEZpeCBbODAxOTI4XQoKMjAwNC0wMi0xNyAwNDozOSAgc2xpZgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IFs4MDE5MjhdIHdyb25nIGNhbGwgb2Ygc3RybGNweSBpbiB1cHRpbWVfc3RyaW5nCgoyMDA0LTAyLTE3IDAzOjIzICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcFRDUElQdjZEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFR3ZWFrIElQdjYgdHJhbnNwb3J0cyBzbyB0aGF0IHRoZXkgY29tcGlsZSB1bmRlciBXaW5kb3dzLgoKMjAwNC0wMi0xNyAwMjo0MiAgZHRzMTIKCiAgICogc25tcGxpYi86IGluZXRfbnRvcC5jLCBpbmV0X3B0b24uYzoKCiAgIFByb3ZpZGUgaW1wbGVtZW50YXRpb25zIG9mICdpbmV0X250b3AnIGFuZCAnaW5ldF9wdG9uJyBmb3IKICAgc3lzdGVtcyB0aGF0IGRvbid0IHN1cHBvcnQgdGhlbSBuYXRpdmVseS4KCjIwMDQtMDItMTcgMDI6MjkgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgRml4IFs4OTY3OTNdIGxvYWRhdmUuYyBpbmNsdWRlcyBzeXMvc3RhdC5oIHR3aWNlCgoyMDA0LTAyLTE3IDAwOjQ1ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmg6CgogICBmaXggYnVnIDg5ODUwOSBmdW5jdGlvbiBwb2ludGVyIHByb3RvdHlwZXMgZGVmaW5lZCB0d2ljZQoKMjAwNC0wMi0xNiAyMTo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgcmVtb3ZlZCB1bnVzZWQgZnVuY3Rpb24gZnJvbSBsYXN0IHBhdGNoCgoyMDA0LTAyLTE2IDIxOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfc3dydW4uYywgaG9zdC9ocl9zeXN0ZW0uYywKICAgICB1Y2Qtc25tcC9wcm9jLmM6CgogICBwYXRjaCBbIDgzNjM5MyBdIE1vcmUgcHJvYyBpbXByb3ZlbWVudHMgZm9yIExpbnV4IGZyb20gSG93YXJkIFdpbGtpbnNvbgoKMjAwNC0wMi0xNiAxODoyOCAgc2xpZgoKICAgKiB3aW4zMi9ubWFrZXBlcmwuYmF0OgoKICAgbm90ZSBzdWItZGlyZWN0b3J5IHdoZXJlICJubWFrZSIgb3V0cHV0IGZpbGVzIGFyZSB3cml0dGVuLgoKMjAwNC0wMi0xNiAxNTowMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IFJFQURNRSwgUlVOVEVTVFMsIFRFU1RDT05GLnNoLAogICAgIGV2YWxfdG9vbHMuc2gsIHRlc3RzL1N2YWNtY29uZmlnLCB0ZXN0cy9TdmFueWNvbmZpZwosIHRlc3RzL1QwMDFzbm1wdjFnZXQsIHRlc3RzL1QwMTRzbm1wdjJjZ2V0LAogICAgIHRlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCwgdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldCwKICAgICB0ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsIHRlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwKLCB0ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLAogICAgIHRlc3RzL1QwMTlzbm1wdjJjbm9zdWNoLCB0ZXN0cy9UMDIwc25tcHYzZ2V0LAogICAgIHRlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LCB0ZXN0cy9UMDIyMHNubXB2M2J1bGtnZXQsCiAgICAgdGVzdHMvVDAyMnNubXB2M2dldE1ENSwgdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgICB0ZXN0cy9UMDI0c25tcHYzZ2V0U0hBMSwgdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUywKICAgICB0ZXN0cy9UMDI4c25tcHYzZ2V0ZmFpbCwgdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbgosIHRlc3RzL1QwNDlzbm1wdjNpbmZvcm0sIHRlc3RzL1QwNTBzbm1wdjN0cmFwLAogICAgIHRlc3RzL1QwNTFzbm1wdjJjdHJhcCwgdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sCiAgICAgdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLAogICAgIHRlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwgdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwKICAgICB0ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCwgdGVzdHMvVDEwMGFnZW50aHVwLAogICAgIHRlc3RzL1QxMTBhZ2VudHhnZXQsIHRlc3RzL1QxMTFhZ2VudHhzZXQsCiAgICAgdGVzdHMvVDExMmFnZW50eHNldGZhaWwsIHRlc3RzL1QxMTNhZ2VudHh0cmFwLAogICAgIHRlc3RzL1QxMjBwcm94eWdldCwgdGVzdHMvVDEyMXByb3h5c2V0LAogICAgIHRlc3RzL1QxMjJwcm94eXNldGZhaWwsIHRlc3RzL1QxMzBzbm1wdjF2YWNtZ2V0LAogICAgIHRlc3RzL1QxMzFzbm1wdjJjdmFjbWdldCwgdGVzdHMvVDEzMnNubXB2M3ZhY21nZXQsCiAgICAgdGVzdHMvVDE0MHNubXB2MXZhY21nZXRmYWlsLCB0ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsCiwgdGVzdHMvVDE0MnNubXB2M3ZhY21nZXRmYWlsOgoKICAgUGF0Y2ggIzcwMjgzNSAocGx1cyB0d2Vha3MpOiBwYXRjaCB0byBlbmFibGUgdGVzdCBjYXNlcyBydW4gb24gZGlmZmVyZW50IHRyYW5zcG9ydCBkb21haW4gZnJvbSBYaWFvZmVuZyBMaW5nCgoyMDA0LTAyLTE2IDE0OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jOgoKICAgRml4IGJ1ZyBbIDg5Njc3NyBdIGVycm9ybWliLmMgaW5jbHVkZXMgc3lzL3N0YXQvaCB0d2ljZQoKMjAwNC0wMi0xNiAxNDoyMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBbbm8gbG9nIG1lc3NhZ2VdCgoyMDA0LTAyLTE2IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIEJ1ZyBbIDg5NzU1MCBdIFBlcmwgU05NUC5wbSBtaXNzaW5nIGRvY3VtZW50YXRpb24gYW5kIGF0dGFjaGVkIHBhdGNoIGZyb20gQWxleCBCdXJnZXIKCjIwMDQtMDItMTYgMTI6NDUgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZiwgYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3RyYXAuYywKICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLAogICAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9zY2FsYXIuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvY2FsbGJhY2suYwosIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKLCBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIFBhdGNoOiBbIDgxOTI0MSBdIEFkZCB0byB0aGUgQVBJIGRvY3VtZW50YXRpb24gZnJvbSBCb2IgUm93bGFuZHMKCjIwMDQtMDItMTYgMTE6NDEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBQYXRjaCBbIDg5ODE2MCBdIFNubXB0YWJsZSBsb29wcyBpZiB0YWJsZSBpcyBhdCB0aGUgZW5kIG9mIHRoZSBtaWIgZnJvbSBDcmlzcGluIEZsb3dlcmRheQoKMjAwNC0wMi0xNiAxMDozMCAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICBtYWtlIG1lbnUgcGF0aCB0byByZWdpc3RlciBQU0RLIG1vcmUgY29tcGxldGUuCgoyMDA0LTAyLTE2IDEwOjAxICBzbGlmCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCjoKCiAgIHJlbW92ZSBwbGF0Zm9ybSBTREsgaGVhZGVyIFNubXAuaCBmcm9tIFNPVVJDRVMgbGlzdC4KCjIwMDQtMDItMTYgMDY6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgRml4IGEgbWlzc2luZyB2YXJpYWJsZSBmcm9tIHRoZSBwcmV2aW91cyBwYXRjaC4KCjIwMDQtMDItMTUgMTg6MTkgIHNsaWYKCiAgICogd2luMzIvaW5zdGFsbC1uZXQtc25tcC5iYXQ6CgogICBjb3B5IGRsbCB0byBzeXN0ZW0zMiBjYWNoZQoKMjAwNC0wMi0xNSAxNTo0NyAgc2xpZgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzJzZGsuZHN3OgoKICAgdGhlIHByb2plY3QgZGVwZW5kZW5jaWVzIGFyZSBub3QgcmVsaWFibGUuICByZW1vdmUgdGhlbS4KCjIwMDQtMDItMTUgMTI6MDAgIHNsaWYKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICByZW1vdmUgWFlYIGNvbW1lbnRzOyBub3RlIHRoYXQgc25tcF9pbml0X21pYl9pbnRlcm5hbHMgZG9lcyBub3RoaW5nLgoKMjAwNC0wMi0xNSAxMDozOSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCBzeW50YXggZXJyb3IKCjIwMDQtMDItMTUgMTA6MzIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjaGVjayBmb3IgYW5kIHNvdXJjZSBuZXcgY29tbW9uIGNvbmZpZyBmaWxlCgoyMDA0LTAyLTE0IDA5OjQxICBzbGlmCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMnNkay5kc3c6CgogICByZW1vdmUgZGVwZW5kZW5jaWVzIGZvciBsaWJzbm1wIHByb2plY3QKCjIwMDQtMDItMTQgMDY6MjAgIHNsaWYKCiAgICogUkVBRE1FOgoKICAgQWRkIE5vYWggRnJpZWRtYW4sIGZpeGluZyBidWcgODg3MjkxCgoyMDA0LTAyLTE0IDAyOjUxICBzbGlmCgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIFJlbW92ZSBnbG9iYWwgZGVwZW5kZW5jeSBmb3IgbGlic25tcCBwcm9qZWN0IChub3QgbmVjZXNzYXJ5KS4KCjIwMDQtMDItMTMgMTY6MDIgIHNsaWYKCiAgICogd2luMzIvbm1ha2VwZXJsLmJhdDoKCiAgIGJldHRlciBleHBsYW5hdG9yeSBtZXNzYWdlcywgYW5kIGltcHJvdmVkIHRlc3QgcmVzdWx0cyBjb2xsZWN0ZWQuCgoyMDA0LTAyLTEzIDEzOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oOgoKICAgUGF0Y2ggWyA4MTIwMzQgXSBpcEFkRW50UmVhc21NYXhTaXplIGRvZXMgbm90IHJldHVybiBkYXRhIG9uIHNubXBnZXQgZnJvbSBCb2IgUm93bGFuZHMKCjIwMDQtMDItMTMgMTI6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IEFFUyBub3RlIG91dHB1dCBicm9rZW4gYnkgbGFzdCBwYXRjaAoKMjAwNC0wMi0xMyAxMjoxOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbgosIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9wa2NzLmMsCiAgICAgc25tcGxpYi9zY2FwaS5jOgoKICAgUGF0Y2ggWyA4MDczNzUgXSBhZGQgc3RhbmRhcmQgUEtDUyMxMSBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgdXNtOiBhbHRlcm5hdGl2ZSBzZWN1cml0eSBsaWJyYXJ5IChvcGVuc3NsIG5vIGxvbmdlciBuZWVkZWQgb24gZnV0dXJlIHNvbGFyaXMpIGZyb20gQm9iIFJvd2xhbmRzCgoyMDA0LTAyLTEzIDExOjU5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgUGFydCBvZiBwYXRjaCAoc29tZSBoYWQgYmVlbiBkb25lKSBmb3IgWyA3NjczMTYgXSBmaXggaGFuZGxpbmcgb2YgYXVnbWVudGVkIHRhYmxlcyBpbiBwZXJsIG1vZHVsZSBmcm9tIFJhbmR5IENvdWV5CgoyMDA0LTAyLTEzIDExOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFNlY29uZCBwYXJ0IG9mIGRpc2tpbyBsb2FkIGF2ZXJhZ2UgcGF0Y2gKCjIwMDQtMDItMTMgMTE6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5oLCBtaWJzL1VDRC1ESVNLSU8tTUlCLnR4dAo6CgogICBwYXRjaCBbIDc5NTQyNCBdIGRpc2tpb0xBIC0gZGlzayBsb2FkIGF2ZXJhZ2UgZm9yIEZyZWVCU0QgKGRldnN0YXQpIGZyb20gUm9qZXIKCjIwMDQtMDItMTMgMTE6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcGF0Y2ggWyA3OTkwNTAgXSBBSVggcGF0Y2hlcyAtIHVjZC1zbm1wL2Rpc2tpbyBmcm9tIE1pY2hhZWwgS3VrYXQKCjIwMDQtMDItMTMgMTE6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE1pc3NlZCBhIHBvcnRpb24gb2YgcGF0Y2ggIzgxNTQzOSBmaXhpbmcgYXV0aCBmYWlsdXJlIHRyYXBzLiAgcGF0Y2ggZ290IGNvbmZ1c2VkIGJ5IHByZXZpb3VzbHkgZXhpc3RpbmcgY29kZSBiZWZvcmUuCgoyMDA0LTAyLTEzIDEwOjQ4ICBzbGlmCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgb25lIGxpbmUgY2hhbmdlIHRvIHByb3Blcmx5IHRlcm1pbmF0ZSBhIGNvbW1lbnQgaW5qZWN0ZWQgYnkgdGhlIHByZXZpb3VzIHBhdGNoLgoKMjAwNC0wMi0xMyAxMDozOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgTmljayBCYXJrYXMgdG8gdGhlIFJFQURNRQoKMjAwNC0wMi0xMyAxMDozNiAgc2xpZgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFJlcGxhY2UgZ2V0X3RyZWVfaGVhZCgpIGZvciByZWZlcmVuY2VzIHRvIHZhcmlhYmxlcyBNaWIgYW5kIHRyZWVfaGVhZC4KICAgUmVtb3ZlIERMTF9JTVBPUlQgbGluZXMsIGFuZCBCT09UIHNlY3Rpb24sIGFzIHRoZXkgYXJlIG5vdCBuZWVkZWQuCiAgIE1hcmsgcXVlc3Rpb25hYmxlIGNvbW1lbnRlZCBjb2RlIHdpdGggWFlYIGZvciBwb3NzaWJsZSByZW1vdmFsLgoKMjAwNC0wMi0xMyAxMDozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBQYXRjaCBbIDg5NTUwOSBdIG1lbW9yeSBpbmZvIGZyb20gdWNkLXNubXAgbWliIG9uIGxpbnV4IDIuNiBmcm9tIE5pY2sgQmFya2FzCgoyMDA0LTAyLTEzIDEwOjIwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTFzb2xhcmlzaG9zdGRpc2s6CgogICBQYXRjaCBbIDg5NDcxMSBdIFNvbGFyaXMgZGlzayB0ZXN0IGZhaWxzIG9uIHNvbWUgT1MncyBmcm9tIEJydWNlIFNoYXcKCjIwMDQtMDItMTMgMTA6MDUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwgc25tcGxpYi9hc24xLmMsCiAgICAgc25tcGxpYi9jaGVja192YXJiaW5kLmMsIHNubXBsaWIvaW50NjQuYzoKCiAgIFsgODQ5MTU4IF0gNS4xOiAvY29uc3QvIGZpeGVzIGZvciB0aGUgQVBJIGZyb20gU3RlcGhlbiBKLiBGcmllZGwKCjIwMDQtMDItMTIgMjA6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgdXBkYXRlIGZvciByZW5hbWVkIGRlZmluZXMKCjIwMDQtMDItMTIgMTc6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFBhdGNoIFsgODE1NDM5IF0gc25tYWdlbnQgZG9lcyBub3Qgc2VuZCBhdXRoIGZhaWx1cmUgdHJhcHMgZm9yIHYzIGZyb20gQm9iIFJvd2xhbmRzCgoyMDA0LTAyLTEyIDE3OjA2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgcmVtb3ZlIGNvcHlyaWdodCBjb21tZW50IGFjY2lkZW50aWNhbGx5IHBsYWNlZAoKMjAwNC0wMi0xMiAxNzowMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIFsgODEyMDA1IF0gc2VnbWVudGF0aW9uIGZhdWx0IGluIHNubXB0YWJsZQoKMjAwNC0wMi0xMiAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgcGF0Y2ggWyA4MTEyNzggXSBtYWtlIGFnZW50eCB1ZHAvdGNwIHRyYW5zcG9ydHMgY29uZmlndXJhYmxlIGZyb20gQm9iIFJvd2xhbmRzCgoyMDA0LTAyLTEyIDE2OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgUGF0Y2ggWyA4MDk0MzggXSBGaXggc2V2ZXJhbCBwcm9ibGVtcyB3aXRoIGhvc3QgcmVzb3VyY2VzIE1JQiBmcm9tIEJvYiBSb3dsYW5kcyAoZml4ZXMgbXVsdGlwbGUgYnVncykKCjIwMDQtMDItMTIgMTU6MDIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBub3RlIGFib3V0IHNubXB0cmFwZCBwZXJsCgoyMDA0LTAyLTEyIDE0OjQxICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEFkZCBhIHNlY3Rpb24gIkJ1aWxkaW5nIHdpdGggTWluR1ciCgoyMDA0LTAyLTEyIDExOjM1ICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvbm1ha2VwZXJsLmJhdDoKCiAgIEFkZCBob3cgdG8gKHdpdGggc2NyaXB0KSBmb3IgYnVpbGRpbmcgUGVybCBTTk1QIG1vZHVsZXMgdXNpbmcgTVNWQy4KCjIwMDQtMDItMTIgMDg6MzYgIHNsaWYKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGNyZWF0ZSBzbm1wbGlic2RpciBmb3Igc25tcF9wZXJsX3RyYXBkLnBsLCBiZWZvcmUgaW5zdGFsbGluZyB0aGVyZS4KCjIwMDQtMDItMTIgMDg6MzEgIHNsaWYKCiAgICogd2luMzIvOiBsaWJhZ2VudC9saWJhZ2VudC5kc3AsIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AKLCBsaWJzbm1wL2xpYnNubXAuZHNwLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AKLCBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsIHNubXBkL3NubXBkLmRzcAosIHNubXBkc2RrL3NubXBkLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICByZW1vdmUgdW51c2VkIGNvbXBpbGUgY29uc3RhbnQgdGhhdCBTbGlmIGNyZWF0ZWQgZHVyaW5nIGhpcyBETEwgZXhwZXJpbWVudHMuCgoyMDA0LTAyLTEyIDA2OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oOgoKICAgbmV3IHRhYmxlIGNvbnRhaW5lciBoZWxwZXIKCjIwMDQtMDItMTIgMDU6MzIgIHNsaWYKCiAgICogcGVybC9PSUQvT0lELnhzLCBwZXJsL1NOTVAvU05NUC54cywKICAgICBwZXJsL2FnZW50L2FnZW50LnhzLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAo6CgogICBjbGVhbnVwIFBlcmwgU05NUCBtb2R1bGUgYnVpbGQgdGhyb3VnaCB0eXBlIGNhc3RpbmcgYW5kCiAgIHJlbW92aW5nIHVudXNlZCB2YXJpYWJsZXMuCiAgIEZvciBTTk1QLnhzLCB0aGVyZSB3YXMgYSBuYW1lZCB2YXJpYWJsZSAnYmVzdF9ndWVzcycgdGhhdCBibG9ja2VkCiAgIHRoZSBjYWxsaW5nIHBhcmFtIG9mICJzbm1wX2dldF90eXBlIiwgcmVtb3ZlZCB3aXRoIHRoaXMgdXBkYXRlLgogICBUaGUgd2luMzIgY29uZmlnLmggbm8gbG9uZ2VyIHRyaWVzIHRvIGRlZmluZSBiY29weSxiemVybyxiY21wLHN0cmNhc2VjbXAuCgoyMDA0LTAyLTEyIDAxOjIyICBzbGlmCgogICAqIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6CgogICB1c2UgYSByZWFzb25hYmxlIHZhbHVlICgxKSBmb3Igbm9uLXJlcGVhdGVyIGluIGZpcnN0IGJ1bGt3YWxrLgoKMjAwNC0wMi0xMiAwMDozMiAgc2xpZgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGluY2x1ZGUgbmV0LXNubXAtY29uZmlnLmggYmVmb3JlIHVzaW5nIEhBVkVfUkVHRVhfSC4KICAgcmVwbGFjZSBjb21wdXRlX21hdGNoIHdpdGggdGhlIG5vbi1yZWdleCBzYXZ2eSB2ZXJzaW9uIGZyb20gc25tcGxpYi9wYXJzZS5jLgogICBGaW5hbGx5LCBkaXNhYmxlIFdpbjMyIERMTCBkZWNvcmF0aW9uLCBhcyBETEwgYnVpbGQgaXMgbm90IHN1cHBvcnRlZC4KCjIwMDQtMDItMTEgMjA6NTQgIHNsaWYKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgc25tcHRyYXBkIGJ1aWxkcyB1c2luZyB0aGUgc2FtZSBwcm9qZWN0IGZpbGUgZm9yIFBTREsgb3Igbm9uLVBTREsKCjIwMDQtMDItMTEgMTg6MjYgIHNsaWYKCiAgICogcGVybC86IE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTCwKICAgICBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMCiwgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgZml4IGJ1ZyBbIDg5NTM2NyBdIFdpbjMyIFBlcmwgYnVpbGQgLU5FVC1TTk1QLVBBVEggYW5kIHBhdGhzIHdpdGggc3BhY2VzCgoyMDA0LTAyLTExIDE3OjQyICBzbGlmCgogICAqIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwKICAgICB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3AsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEw6CgogICBuZXRzbm1wbWlic3Nkay5saWIgcmVuYW1lZCB0byBuZXRzbm1wbWlicy5saWIKCjIwMDQtMDItMTEgMTc6MTYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgRG8gbm90IGhhdmUgZ2V0dGFibGUgcmV0dXJuIGhleCBlbmNvZGVkIHN0cmluZ3MgaWYgbm90IHByaW50YWJsZS4gIE5vCiAgIG90aGVyIGZ1bmN0aW9uIGRvZXMgdGhpcywgc28gd2h5IHdvdWxkIGdldHRhYmxlIGJlIGFueSBkaWZmZXJlbnQuCgoyMDA0LTAyLTExIDE3OjExICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIE1TVkMgYnVpbGQgcmVxdWlyZXMgdXNpbmcgYnV0IG9uZSB3b3Jrc3BhY2UuCgoyMDA0LTAyLTExIDExOjA3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci86IC5jdnNpZ25vcmUsIENoYW5nZXMsIE1BTklGRVNUCiwgTWFrZWZpbGUuUEwsIFJFQURNRSwgVHJhcFJlY2VpdmVyLnBtLAogICAgIFRyYXBSZWNlaXZlci54cywgY29uc3QtYy5pbmMsIGNvbnN0LXhzLmluYywKICAgICBwZXJsX3NubXB0cmFwZC5oLCBwcHBvcnQuaCwgdHlwZW1hcCwKICAgICBmYWxsYmFjay9jb25zdC1jLmluYywgZmFsbGJhY2svY29uc3QteHMuaW5jLCB0LzEudAo6CgogICBJbml0aWFsIHBhc3MgYXQgYW4gZW1iZWRkZWQgcGVybCBtb2R1bGUgZm9yIHNubXB0cmFwZC4KICAgICBXaGF0cyBvZGQgZm9yIHR5cGljYWwgaW5pdGlhbCBjb2RlIGZyb20gbWUgaXMgdGhhdCBpdCdzIGZ1bGx5CiAgICAgZnVuY3Rpb25hbCBhbmQgZG9jdW1lbnRlZCBldmVuIQoKMjAwNC0wMi0xMSAxMDo1NyAgaGFyZGFrZXIKCiAgICogcGVybC9NYWtlZmlsZS5QTDoKCiAgIEFkZCB0aGUgVHJhcFJlY2VpdmVyIG1vZHVsZSB0byB0aGUgbGlzdCBvZiBkZWZhdWx0cy4KCjIwMDQtMDItMTEgMTA6NTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wZXJsX3RyYXBkLnBsOgoKICAgQSBwZXJsIGJvb3RzdHJhcHBpbmcgc3RhcnR1cCBmaWxlLgoKMjAwNC0wMi0xMSAxMDo1NCAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIHBlcmwgc3RhcnR1cCBmaWxlLgoKMjAwNC0wMi0xMSAxMDo1MyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEluaXRpYWxpemUgcGVybAoKMjAwNC0wMi0xMSAxMDo1MyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIGNyZWF0ZSBhIGhhbmRsZXJfZGF0YSBmaWVsZC4KCjIwMDQtMDItMTEgMDc6MjggIHNsaWYKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBTaG93IEFFUyBvbmx5IHRvIHJlZmxlY3QgcHJldmlvdXMgY2hhbmdlcyAtLSBVc2UgQUVTIGluc3RlYWQgb2YgQUVTMTI4LDE5MiwyNTYKCjIwMDQtMDItMTEgMDY6MDggIHNsaWYKCiAgICogcGVybC9PSUQvdGVzdC5wbDoKCiAgIGFubm91bmNlIGNvcnJlY3QgbnVtYmVyIG9mIHRlc3RzICh3YXMgMzYsIG5vdyAzOCkKCjIwMDQtMDItMTEgMDY6MDYgIHNsaWYKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL3Rlc3QucGw6CgogICB1cGRhdGUgdG8gcmVmbGVjdCBjaGFuZ2UgaW4gdmFsdWUgb2YgTkVUU05NUF9EU19NQVhfU1VCSURTCgoyMDA0LTAyLTEwIDE3OjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZml4IGFsd2F5cyBmYWxzZSB0ZXN0CgoyMDA0LTAyLTEwIDE2OjE3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgbmV3IG5ldHNubXBfdGFibGVfbmV4dF9jb2x1bW4KCjIwMDQtMDItMTAgMTQ6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICByZW1vdmUgY29kZSBiZWZvcmUgdmFyaWFibGUgZGVjbGFyYXRpb25zCgoyMDA0LTAyLTEwIDEzOjIzICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIHRvdWNoIHVwIGluc3RydWN0aW9ucyBmb3IgTVNWQyBidWlsZHMgdGhhdCB1c2UgT3BlblNTTAoKMjAwNC0wMi0xMCAwOTowOSAgcnN0b3J5CgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgbWVyZ2UgdXBkYXRlIGZyb20gQnJ1Y2UgZnJvbSA1LTEtcGF0Y2hlcwoKMjAwNC0wMi0xMCAwODozMyAgc2xpZgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIGFwcGx5IHNubXBjb25mMyBvZiBwYXRjaCA4Mzc5Njc7IGFkZCBjbG9zZSB0byByZWFkX2NvbmZpZwoKMjAwNC0wMi0xMCAwMzo1MCAgc2xpZgoKICAgKiBwZXJsL2FnZW50L01ha2VmaWxlLlBMOgoKICAgZml4IGJ1ZyA4OTI2MTYKCjIwMDQtMDItMDkgMTU6MDMgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIEVuYWJsZSBzdGRlcnJsb2cgaWYgbm8gb3RoZXIgbG9nZ2luZyBpcyBlbmFibGVkIC0gdG8gYXZvaWQgd2FybmluZwoKMjAwNC0wMi0wOSAxNDoxNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGV4cG9ydCBDUFA9Y3BwIG9uIERhcndpbiBzbyBBcHBsZSdzIGdjYyBkb2Vzbid0IGJyZWFrIGNvbmZpZ19yZXF1aXJlCgoyMDA0LTAyLTA5IDA4OjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWZUYWJsZS5jOgoKICAgZml4IGNvbHVtbiBuYW1lcwoKMjAwNC0wMi0wOSAwODo1NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWZUYWJsZV9jb2x1bW5zLmgsCiAgICAgaWZYVGFibGVfY29sdW1ucy5oOgoKICAgYWRkIG1pc3NpbmcgZmlsZXMKCjIwMDQtMDItMDkgMDg6MjQgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvaGVscGVycy90YWJsZS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgKOgoKICAgSW1wbGVtZW50IGEgbmV3IGhlbHBlciB0byBjb3BlIHdpdGggc2tpcHBpbmcgImhvbGVzIiBpbiBhIHRhYmxlCiAgIChhbmQgdHdlYWsgdGhlICd0YWJsZV9kYXRhJyBoZWxwZXIgdG8gbWFrZSB1c2Ugb2YgaXQpLgogICBOb3RlIHRoYXQgdGhpcyByZXF1aXJlcyB0aGUgX3JlcXVlc3Rfc2V0X2Vycm9yKCkgcm91dGluZSB0byBiZQogICBhIGJpdCBmbGV4aWJsZSBpbiBhY2NlcHRpbmcgZXhjZXB0aW9ucyB0aGF0IGFyZW4ndCBzdHJpY3RseSB2YWxpZC4KCjIwMDQtMDItMDkgMDc6NTcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgRW5zdXJlIG9uZSBvYmplY3QncyAnd3JpdGVfbWV0aG9kJyBpc24ndCBwaWNrZWQgdXAgYnkgYW55dGhpbmcgZWxzZS4KCjIwMDQtMDItMDkgMDc6MzQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgR3VhcmQgYWdhaW5zdCBwYXNzaW5nIE5VTEwgcGFyYW1ldGVycyB0byBzdHJjbXAvc3RybGVuLgogICBQcm9iYWJseSBzaG91bGRuJ3QgZXZlciBoYXBwZW4sIGJ1dCBEYXZlJ3MgaW4gYSBzdXNwaWNpb3VzIG1vb2QuCiAgIFFuOiBTaG91bGQgdGhlc2UgY2hhbmdlcyBiZSBhcHBsaWVkIHRvIHRoZSA1LjEueCAoPyYgNS4wLngpIGxpbmU/CgoyMDA0LTAyLTA5IDA0OjA1ICBzbGlmCgogICAqIGFnZW50L3NubXBkLmM6CgogICBidWlsZCBhZ2VudCBvbiBtaW5ndywgd2l0aG91dCB3aW4zMiBTQ00gZ2x1ZS4KCjIwMDQtMDItMDkgMDM6MjYgIHNsaWYKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyc2RrLmRzdzoKCiAgIGFkZCBkZXBlbmRlbmN5IGZvciBsaWJzbm1wIHRvIGJ1aWxkIHNubXBkLgoKMjAwNC0wMi0wOCAxOTo1MCAgc2xpZgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIGNsZWFuZWQgdXAsIHJlYWR5IGZvciBtYWluc3RyZWFtLiAgSG93ZXZlciwgbm90IGdjYy1mcmllbmRseSwganVzdCB5ZXQuCgoyMDA0LTAyLTA4IDE4OjU1ICBzbGlmCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcmVnZW4gY29uZmlndXJlIGZyb20gY29ycmVjdCBjb25maWd1cmUuaW4KCjIwMDQtMDItMDggMTg6MjQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2QuaDoKCiAgIG5ldyBkZWZpbmUgVVRNUF9IQVNfTk9fUElECgoyMDA0LTAyLTA4IDE4OjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIHVzZSBuZXcgZGVmaW5lIFVUTVBfSEFTX05PX1BJRDsgc2ltcGxpZnkgbG9vcCBsb2dpYwoKMjAwNC0wMi0wOCAxNzo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBkb24ndCBwdXQgb3BlbiBicmFjZSBpbiBpZmRlZiBpZiBjbG9zZSBicmFjZSBoYXMgbm8gaWZkZWYKCjIwMDQtMDItMDggMTY6MjEgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBleHRyYSB0cmFuc3BvcnRzIHNob3VsZCBiZSBlbXB0eTsgQ2FsbGJhY2sgc2hvdWxkIGJlIGluIGRpc3QgdHJhbnNwb3J0cwoKMjAwNC0wMi0wOCAxNTo1MCAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICBJbmNsdWRlIHNhbXBsZSBkaXNwbGF5IGZyb20gcnVubmluZyBpbnN0YWxsLW5ldC1zbm1wLmJhdAoKMjAwNC0wMi0wOCAxMDoxNiAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaCwgc25tcGxpYi9NYWtlZmlsZS5pbgosIHNubXBsaWIvd2lucGlwZS5jOgoKICAgV2l0aCBpbnB1dCBmcm9tIEFsZXggU21pdGgsIGFwcGx5IGNoYW5nZXMgdG8gaW1wcm92ZSBtaW5ndyBidWlsZHMuCgoyMDA0LTAyLTA4IDEwOjEyICBzbGlmCgogICAqIHdpbjMyLzogaW5zdGFsbC1uZXQtc25tcC5iYXQsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCjoKCiAgIE1vdmUgdGhlIGRpcmVjdG9yeSBmcm9tIC91c3IgdG8gQzpcUHJvZ3JhbSBGaWxlc1xOZXQtU05NUC4KCjIwMDQtMDItMDggMTA6MTEgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdDoKCiAgIE1TVkMgYnVpbGQgaW5zdHJ1Y3Rpb25zIGFyZSBzaW1wbGVyLCB0aGFua3MgdG8gQWxleCBCdXJnZXIncyBwcm9qZWN0L3dvcmtzcGFjZSBjaGFuZ2VzLgogICBBbHNvLCBpbnRyb2R1Y2VkIGEgYmF0Y2ggY29tbWFuZCBmaWxlIHRvIHNpbXBsaWZ5IGluc3RhbGxhdGlvbiBhZnRlciBidWlsZGluZy4KCjIwMDQtMDItMDggMDk6MzQgIHNsaWYKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyc2RrLmRzdzoKCiAgIEFwcGx5IGNoYW5nZXMgb2ZmZXJlZCBieSBBbGV4IEJ1cmdlciB0byBjbGVhbiB1cCBwcm9qZWN0cyBhbmQgd29ya3NwYWNlcwogICBhbmQgdG8gYnVpbGQgc25tcHRyYXBkIHVzaW5nIHRoZSBQbGF0Zm9ybS1TREsgd29ya3NwYWNlICh3aW4zMnNkaykuCgoyMDA0LTAyLTA2IDE1OjQ4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgb25seSBjb25maWcgdy9saWJ3cmFwIGlmIHdlIGNhbiBmaW5kIHRoZSBoZWFkZXIKCjIwMDQtMDItMDYgMTE6MjEgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBZZWFyIHVwZGF0ZSBmb3IgU3BhcnRhCgoyMDA0LTAyLTA2IDEwOjEyICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBwYXRjaCA4NDM5MjQgcnVuX3NoZWxsX2NvbW1hbmQgdG8gcXVvdGUgcmVkaXJlY3RlZCBwYXJhbWV0ZXJzLgoKMjAwNC0wMi0wNiAwODo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBSZS1pbnN0YXRlIHRoZSAnaHonIHZhcmlhYmxlIGZvciBGcmVlQlNEIChidXQgKm9ubHkqIEZyZWVCU0QpCgoyMDA0LTAyLTA2IDA1OjU4ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBQcm92aWRlIG1pc3NpbmcgYWdlbnRfYWRkcmVzcy9zbm1wVHJhcEFkZHJlc3MgaW5mb3JtYXRpb24KICAgKEJ1Z3MgIzg2NTE3OCAmICM4Nzc1ODcgYW5kIFBhdGNoICM4ODMwMjgpCgoyMDA0LTAyLTA1IDA4OjA0ICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIHJldmlzZWQgcGVyIHBlZXIgcmV2aWV3LgoKMjAwNC0wMi0wNSAwNTo0NSAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICBDdXJyZW50IHN0YXR1cyBhcHBlYXJzIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBpbnRyb2R1Y3Rpb24KICAgUmVtb3ZlZCByZWZlcmVuY2VzIHRvIGJ1aWxkaW5nL3VzaW5nL2luc3RhbGxpbmcgbmV0c25tcC5ETEwKICAgQWRkZWQgcmVnaXN0ZXJpbmcgYXMgd2luZG93cyBzZXJ2aWNlCiAgIE5vdGVkIG5ldyBkZXBlbmRlbmN5IG9mIHNubXB0cmFwZCBvbiBuZXRzbm1wbWlicwogICBOb3RlZCBzbm1wdHJhcGQgYnVpbGRzIG9ubHkgdXNpbmcgd2luMzIuZHN3IHdvcmtzcGFjZQogICBBZGRlZCBIb3cgdG8gY2hhbmdlIGV4dGVybmFsIHByb2plY3Qgc2V0dGluZ3MgdG8gbWF0Y2gKICAgQ2xhcmlmaWVkIHdoYXQgb3RoZXIgcHJvamVjdCBzZXR0aW5ncyBzaG91bGQgYmUgdW5tb2RpZmllZC4KCjIwMDQtMDItMDUgMDU6MjcgIHNsaWYKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyc2RrLmRzdzoKCiAgIHVucmVnaXN0ZXIgRExMIGxpYnJhcnkgcHJvamVjdCBmcm9tIHdvcmtzcGFjZXMuCgoyMDA0LTAyLTA1IDA1OjE2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBtYW4vc25tcC5jb25mLjUuZGVmCiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBcHBseSBwYXRjaCA4NDM5MTkgLSBuZXcgdGVtcEZpbGVQYXR0ZXJuIHNubXAuY29uZiBvcHRpb24KCjIwMDQtMDItMDUgMDQ6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmg6CgogICBBZGQgdGhlIE5FVC1TTk1QLUVYQU1QTEVTLU1JQiB0byB0aGUgbG9hZCBsaXN0CiAgIChQYXRjaCAjODkwODM5IGZyb20gWWl4aW9uZyBab3UpCgoyMDA0LTAyLTA1IDA0OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBDb3JyZWN0IHRoZSB1c2Ugb2YgYSB3cm9uZyBkZWJ1ZyB0b2tlbiAoUGF0Y2ggIzg4OTc3NyBieSBEaXJrIEJhbGNlcmN6YWspCgoyMDA0LTAyLTA1IDA0OjM4ICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEFwcGx5IHBhdGNoIDg1MDc4NSAtIGluc3RydWN0aW9ucyB0byBjb3B5IGhlYWRlciBmaWxlcyBmb2xsb3dpbmcgYnVpbGQuCgoyMDA0LTAyLTA1IDAzOjQxICBzbGlmCgogICAqIHdpbjMyLzogbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwKICAgICBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgICAgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgRG9uJ3QgYnVpbGQgdGhlIFJtb24gbW9kdWxlcy4KCjIwMDQtMDItMDUgMDE6NDkgIHNsaWYKCiAgICogY29uZmlndXJlLmluOgoKICAgQXBwbHkgcGF0Y2ggODQzNjc5CgoyMDA0LTAyLTA0IDIwOjExICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgo6CgogICBleHBvc2Ugb25lIGxlc3Mgc3RhdGljIGRhdGEgdmFyaWFibGUgKGxvZ2hfaGVhZCk7IGxpc3QgdHdvIG90aGVycyBmb3IgRExMLgoKMjAwNC0wMi0wNCAyMDowNyAgc2xpZgoKICAgKiB3aW4zMi86IGxpYmFnZW50L2xpYmFnZW50LmRzcCwgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcAosIGxpYnNubXAvbGlic25tcC5kc3AsIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcAosIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwgc25tcGQvc25tcGQuZHNwCiwgc25tcGRzZGsvc25tcGQuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIGNsZWFuIHVwIEJBU0UgQ1BQIHNldHRpbmdzLgoKMjAwNC0wMi0wNCAxNDoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBEb24ndCBvcGVyYXRlIG9uIGEgbnVsbCBwb2ludGVyIGZvciBpbmRleGVzIHRoYXQgZG9uJ3QgZXhpc3QuCgoyMDA0LTAyLTA0IDE0OjE0ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgTWVudGlvbiB0aGF0IFJvYmVydCBoYXMgdGhlIGFiaWxpdHkgdG8gc2lnbiBwYWNrYWdlcyBub3cuCgoyMDA0LTAyLTA0IDE0OjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwgc25tcGxpYi9zY2FwaS5jCiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdXNtLmMKLCBzbm1wbGliL3NubXB2My5jOgoKICAgVXNlIEFFUyBpbnN0ZWFkIG9mIEFFUzEyOCwxOTIsMjU2CgoyMDA0LTAyLTA0IDE0OjEzICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBjcmVhdGUgdGhlIHBlcnNpc3RlbnQgZGlyZWN0b3J5IGlmIGl0IGhhc24ndCBiZWVuIGNyZWF0ZWQgeWV0LgoKMjAwNC0wMi0wNCAxMzowMSAgc2xpZgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBjYXN0IHRvIHF1aWV0IG1zdmMgY29tcGlsZXIuCgoyMDA0LTAyLTA0IDA1OjMxICBzbGlmCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfbWZkLmMsIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmMKOgoKICAgdXNlIE5pZWxzJyBjaG9pY2VzIGZvciBuYW1lcyBzdWJzdGl0dXRpbmcgX19GVU5DVElPTl9fCgoyMDA0LTAyLTA0IDA1OjI5ICBzbGlmCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGF2b2lkIHZvaWQgY2FzdGluZyBpbiBmcmVlIHRvIGtlZXAgZ2NjIGhhcHB5LgoKMjAwNC0wMi0wMyAxNzoxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgbWVyZ2UgcGF0Y2ggZnJvbSA1LjAtcGF0Y2hlcwoKMjAwNC0wMi0wMyAxNjo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgc3RyZHVwIHZhbHVlIGZyb20gbmV0c25tcF9kc19nZXRfc3RyaW5nLCBzaW5jZSBpdCBpcyBmcmVlJ2QgbGF0ZXIKCjIwMDQtMDItMDMgMTQ6MzAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBxdWlldCBjb21waWxlciB3YXJuaW5ncyB1c2luZyBhcHByb3ByaWF0ZSB0eXBlIGNhc3RpbmcuCgoyMDA0LTAyLTAzIDE0OjI5ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiB0eXBlcy5oLCBzeXN0ZW0vbWluZ3czMi5oOgoKICAgbW92ZSBpZm5kZWYgSEFWRV9TU0laRV9UIGZyb20gTWluR1cgc3BlY2lmaWMgaGVhZGVyIHRvIHR5cGVzIGhlYWRlciwKICAgdG8gYmVuZWZpdCBvdGhlciBwbGF0Zm9ybXMgdGhhdCBkbyBub3QgZGVmaW5lIHNzaXplX3QgKGUuZy4sIG1zdmMpLgoKMjAwNC0wMi0wMyAxNDoyNSAgc2xpZgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIGV4cG9ydCBzeW1ib2xzIGZvciBmdW5jdGlvbnMgd2hlbiBTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4gaXMgZGVmaW5lZC4KCjIwMDQtMDItMDMgMTQ6MjQgIHNsaWYKCiAgICogd2luMzIvbWliX21vZHVsZV9pbml0cy5oOgoKICAgZG9udCBpbml0aWFsaXplIHVjZC1zbm1wIGluaXRfZGlzayBmb3IgbXN2YyBidWlsZHMuCgoyMDA0LTAyLTAzIDE0OjIxICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg6CgogICBlbmFibGUgQWdlbnRYLCBSbW9uLCBkaXNtYW4tZXZlbnQtbWliLCBhbmQgdWNkLXNubXAgbW9kdWxlIGdyb3Vwcy4KCjIwMDQtMDItMDMgMTQ6MTkgIHNsaWYKCiAgICogd2luMzIvOiBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsCiAgICAgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgZG9uJ3QgYnVpbGQgdGhlIHVjZC1zbm1wIGRpc2sgbW9kdWxlIChub3QgaW1wbGVtZW50ZWQgZm9yIG0kIGJ1aWxkcykKCjIwMDQtMDItMDMgMDk6MTYgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnBpcGUuaCwgc25tcGxpYi93aW5waXBlLmMKOgoKICAgRmluaXNoIGFwcGx5aW5nIHBhdGNoIDg1MjY4MiBmb3IgY2FsbGJhY2sgdHJhbnNwb3J0IHN1cHBvcnQgdW5kZXIgV2luMzIKCjIwMDQtMDItMDMgMDg6MDAgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcAosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIEFwcGxpZWQgcGF0Y2ggODUyNjgyIGZvciBjYWxsYmFjayB0cmFuc3BvcnQgb24gV2luMzI7IHRvdWNoZWQgdXAgTVNWQyBwcm9qZWN0IGZpbGVzLCB0b28uCgoyMDA0LTAyLTAzIDA3OjE0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBtb3ZlICNpZiBIQVZFX0VYRUNWIHRvIGhlYWQgb2YgcnVuX2V4ZWNfY29tbWFuZCAgZm9yIHF1aWV0ZXIgTVNWQyBidWlsZHMuCgoyMDA0LTAyLTAzIDAzOjI1ICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICBSZW1vdmUgcG9zaXRpb25hbCBjb21tdW5pdHkgZnJvbSB1c2FnZQoKMjAwNC0wMi0wMyAwMjowOSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggYnVnIHJldHVybmluZyBvbmx5IGZvdXIgY2hhcmFjdGVycyBmb3IgdXB0aW1lIHN0cmluZwoKMjAwNC0wMi0wMyAwMjowNyAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIFVwZGF0ZSBmb3IgcmUtaXNzdWVkIEFUTSBhbmQgRXRoZXJMaWtlIFJGQ3MKCjIwMDQtMDItMDMgMDI6MDYgIG5iYQoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIEZpeCByZWZlcmVuY2UgdG8gLUxlIHRvIC1MRQoKMjAwNC0wMi0wMyAwMjowNSAgbmJhCgogICAqIGxvY2FsL3RyYXB0b2VtYWlsOgoKICAgRml4IHN0dXBpZCBidWcgZmV0Y2hpbmcgdGhlIHRyYXAgb2lkCgoyMDA0LTAyLTAzIDAyOjA0ICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICBBIGJpdCBvZiBjbGVhbnVwIGFuZCBwcm9wZXJseSBkZWZhdWx0IGNvbW11bml0eSBmcm9tIGNvbmYgZmlsZQoKMjAwNC0wMi0wMyAwMjowMSAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgQWxsb3cgJVYgdG8gdGFrZSBtb3JlIHRoYW4gb25lIGNoYXJhY3RlcgoKMjAwNC0wMi0wMyAwMTo1OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBBcHBseSAobW9kaWZpZWQpIHBhdGNoIDg2MDQ0MyB3aGljaCBhbHNvIGZpeGVzIGJ1ZyA4NDgyODQgYnkgcHJvcGVybHkKICAgdGVybWluYXRpbmcgdGhlIGlucHV0IGJ1ZmZlci4KCjIwMDQtMDItMDMgMDE6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2suYywgZGlzay5oOgoKICAgVHJ5IHRvIHVudGFuZ2xlIGFuICNpZmRlZiBtZXNzIHRoYXQgaGluZGVycyBjb21waWxhdGlvbiBvbiBPUy9YCgoyMDA0LTAyLTAzIDAxOjU1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmM6CgogICBSZW1vdmUgYSBidW5jaCBvZiBzdXBlcmZsdW91cyBuZXdsaW5lcyBpbiBtZXNzYWdlcwoKMjAwNC0wMi0wMyAwMTo1MyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXBBZGRyLmMsIGF0LmM6CgogICBGaXggcmV0dXJuIG9mIElQdjQgYWRkcmVzcyBvbiA2NC1iaXQgU29sYXJpcwoKMjAwNC0wMi0wMiAyMzo0MCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGlmZGVmIGEgbGludXggc3BlY2lmaWMgdmFyaWFibGUKCjIwMDQtMDItMDIgMjM6MzggIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBcHBseSBwYXRjaCA4NDE3MDUgdG8gZml4IGJ1ZyA4MTczODYKCjIwMDQtMDItMDIgMjM6MzcgIG5iYQoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIEFwcGx5IHBhdGNoIDgzNjU2OCB0byBmaXggYnVnIDgyOTExOQoKMjAwNC0wMi0wMiAyMzozNiAgbmJhCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQXBwbHkgcGF0Y2ggODQ1Nzk4IHRvIGZpeCBidWcgODMxMjk5CgoyMDA0LTAyLTAyIDIzOjMyICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFByb3Blcmx5IHJlc2V0IHdpbGRjYXJkbWF0Y2hlciBiZXR3ZWVuIGNhbGxzCgoyMDA0LTAyLTAyIDIzOjIzICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggZnJvbSBidWcgODQ5MTUzCgoyMDA0LTAyLTAyIDIzOjIxICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgR2l2ZSBlcnJvciBtZXNzYWdlIHdoZW4gbW9kdWxlIG5vdCBhdmFpbGFibGUKCjIwMDQtMDItMDIgMjM6MTggIG5iYQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIERvIG5vdCBjYXN0IHVuc2lnbmVkIHRvIHNpZ25lZAoKMjAwNC0wMi0wMiAyMzoxNyAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmg6CgogICBVc2Ugc3lzdGVtIGdldG9wdC5oIHdoZW4gYXZhaWxhYmxlCgoyMDA0LTAyLTAyIDIzOjE2ICBuYmEKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBidWZmZXIgb3ZlcnJ1biBmb3IgZXh0cmFtZSBkaXNrIG5hbWVzCgoyMDA0LTAyLTAyIDIzOjE2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIEFwcGx5IHBhdGNoIDg1MDcxNiB0byBmaXggYnVnIDg1MDE4NQoKMjAwNC0wMi0wMiAxNjoxMCAgbmJhCgogICAqIGFwcHMvOiBzbm1wdGVzdC5jLCBzbm1wdHJhcGRfbG9nLmM6CgogICBRdWVsbCBhIGJ1bmNoIG9mIHdhcm5pbmdzIGZyb20gU29sYXJpcyA4IGFuZCBnY2MgLW02NAoKMjAwNC0wMi0wMiAxNjowNSAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIFF1ZWxsIGEgYnVuY2ggb2Ygd2FybmluZ3MgZnJvbSBTb2xhcmlzIDggYW5kIGdjYyAtbTY0CgoyMDA0LTAyLTAyIDE1OjU5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIFF1ZWxsIGEgYnVuY2ggb2Ygd2FybmluZ3MgZnJvbSBTb2xhcmlzIDggYW5kIGdjYyAtbTY0CgoyMDA0LTAyLTAyIDE1OjU4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICBCZXR0ZXIgZXJyb3IgbWVzc2FnZQoKMjAwNC0wMi0wMiAxNTo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgQ29ycmVjdGx5IGxvb3AgYXJvdW5kIG1pc3NpbmcgZW50cmllcwoKMjAwNC0wMi0wMiAxNTo1NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgQmV0dGVyIGZpbGUgc3lzdGVtIHR5cGVzCgoyMDA0LTAyLTAyIDE1OjUyICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgRml4IHNldHRpbmcgb2YgY29tbXVuaXR5IGxlbgoKMjAwNC0wMi0wMiAxNTo0MCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBRdWVsbCBhIGJ1bmNoIG9mIHdhcm5pbmdzIGZyb20gU29sYXJpcyA4IGFuZCBnY2MgLW02NAoKMjAwNC0wMi0wMiAxNTozNiAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICBQcm9wZXIgT0lEIGZvciBUQ1A0CgoyMDA0LTAyLTAyIDE1OjM1ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIEZJeCBuZXdsaW5lIGhhbmRsaW5nIGluIGZpbGUgbG9nZ2VyCgoyMDA0LTAyLTAyIDE1OjM0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgRml4IHNvbWUgd2FybmluZ3MsIGFuZCBtYWtlIHNvbWUgYmV0dGVyIGVycm9yIG1lc3NhZ2VzCgoyMDA0LTAyLTAyIDE1OjMzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgRml4IGEgZmlsZSBkZXNjcmlwdG9yIGxlYWsKCjIwMDQtMDItMDIgMTU6MzIgIG5iYQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCBzbm1wbGliL2FzbjEuYwosIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgUXVlbGwgYSBidW5jaCBvZiB3YXJuaW5ncyBmcm9tIFNvbGFyaXMgOCBhbmQgZ2NjIC1tNjQKCjIwMDQtMDItMDIgMTE6MjMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHJlcXVpcmUgYWxsIGFyZ3VtZW50IGJlZm9yZSBtaWJOb2RlOyBiYWlsIG9uIHVua25vd24gb3B0aW9uOyB3YXJuIGlmIG11bHRpcGxlCiAgIG1pYk5vZGVzIHNwZWNpZmllZDsgbmV3ICdiYWxhbmNlZCcgZmxhZyBmb3IgcHJvY2VzczsgZGVmaW5lL3VzZSBuZXcgbTJjX2RpZQogICB0aGF0IHNwaXRzIG91dCBjdXJyZW50IGxpbmUgaW4gY29uZiBmaWxlOyByZXBsYWNlICdicmVhaycgd2l0aCAnbmV4dCc7IGJhaWwKICAgb24gZWxzZWlmOyBiYWlsIG9uIHVuYmFsYW5jZWQgY29uZiBmaWxlIChtYW55IHR3ZWFrcyB0byBtYWtlIHRoYXQgd29yayk7CiAgIHJlbW92ZSB1bnVzZWQgc2tpcGlmOyBmaXggY3VycmVudGxpbmUgdXBkYXRlcyBpbiBmb3JlYWNoIGxvb3BzOyBleGl0IHcvZXJyb3IKICAgaWYgY29uZiBmaWxlIG5vdCBmb3VuZAoKMjAwNC0wMi0wMiAxMTowNiAgcnN0b3J5CgogICAqIGxvY2FsLzogbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwgbWliMmMuaXRlcmF0ZS5jb25mCjoKCiAgIGFkZCBleHBsaWNpdCBlbmRzIGZvciBlYWNoIGZvcmVhY2gKCjIwMDQtMDItMDIgMTA6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgZml4IHVwIG0yY19ub2RlX3BhcmFtXyogZGVmYXVsdHM7IHJlbmFtZSBub2RlIGRlZmF1bHQgZmlsZTsgc2V0IGRlZmF1bHRzIGZvciBtMmNfY3R4X1tsaHxyaF07CiAgIHNldCB1cCBub2RlIG1hcCBmdW5jIGRlZmF1bHRzCgoyMDA0LTAyLTAyIDEwOjIzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmk6CgogICB1c2UgbmV3IGluZGV4ZXNfc2V0IGZ1bmN0aW9uIGluIGV4YW1wbGU7IG1vdmUgc29tZSBjb2RlIG91dHNpZGUgb2YgZXhhbXBsZQogICBjb25kaXRpb247IHVzZSB2YWx1ZSBtYXAgdG8gY29weSBkYXRhCgoyMDA0LTAyLTAyIDEwOjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICBuZXcgaW5kZXhlc19zZXQgZnVuY3Rpb24KCjIwMDQtMDItMDIgMTA6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtc2V0Lm0yYzoKCiAgIHVzZSBtaWIyYyBuZXh0IGluc3RlYWQgb2YgYnJlYWsKCjIwMDQtMDItMDIgMTA6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjOgoKICAgYWRkIG1pc3NpbmcgdmFyIGRlY2wKCjIwMDQtMDItMDIgMDg6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAubTJpOgoKICAgdXNlIG5ldyBmdW5jdGlvbiB0byBtYXAgYmV0d2VlbiBtaWIvbmF0aXZlIGRhdGEKCjIwMDQtMDItMDIgMDg6MDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmk6CgogICBuZXcgZnVuY3Rpb24gdG8gbWFwIGJldHdlZW4gbWliL25hdGl2ZSBkYXRhCgoyMDA0LTAyLTAyIDA3OjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpOgoKICAgbmV3IGZ1bmN0aW9uIHRvIHNldCBpbmRleGVzIGZyb20gQyB0eXBlcwoKMjAwNC0wMi0wMiAwNzo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRlZmF1bHQtbWZkLXRvcC5tMmMsCiAgICAgZ2VuZXJpYy1jdHgtY29weS5tMmksIGdlbmVyaWMtY3R4LWdldC5tMmksCiAgICAgZ2VuZXJpYy1nZXQtY2hhci5tMmksIGdlbmVyaWMtZ2V0LWRlY2wtYm90Lm0yaSwKICAgICBnZW5lcmljLWdldC1kZWNsLm0yaSwgbWZkLWRhdGEtZ2V0Lm0yYywKICAgICBtZmQtaW50ZXJmYWNlLm0yYywgbm9kZS1nZXQubTJpLCBub2RlLXNldC5tMmksCiAgICAgc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpOgoKICAgbW9yZSBjb25zaXN0ZW50IHVzZSBvZiBtMmNfY3R4X1tsaHxyaHxsaHN8cmhzXSBhbmQgbTJjX25vZGVfcGFyYW0qIHZhcnM7IG5ldwogICBtMmNfY29kZV92ZXJib3NlIGZsYWcgZm9yIHZlcmJvc2UgY29tbWVudHMgaW4gY29kZTsgbmV3IHZhbHVlIG1hcHBpbmcgZnVuYyBmb3IKICAgZWFjaCBub2RlIGluc3RlYWQgb2YgZHVwbGljYXRlZCBjb2RlIGluIG11bGl0cGxlIGZ1bmNzOyB1c2UgbWliMmMgbmV4dCBpbnN0ZWFkCiAgIG9mIGJyZWFrOwoKMjAwNC0wMi0wMiAwNDoxNSAgc2xpZgoKICAgKiBzbm1wbGliL3N5c3RlbS5jLAogICAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwKICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgd2luMzIvc25tcGQvc25tcGQuZHNwCiwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgICAgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcCwKICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLAogICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsCiAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcAosIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwKICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AKLCB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLAogICAgIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcCwgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwCjoKCiAgIFJlc3RvcmUgd2luc29jayAxLjEgbGlicmFyeSB1c2FnZS4KCjIwMDQtMDEtMzAgMTE6MzcgIHNsaWYKCiAgICogd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICBtb3ZlIG5ldHNubXAubGliIHRvIHRoZSBmcm9udCBvZiB0aGUgIkFkZGl0aW9uYWwgTGlicmFyaWVzIiBsaXN0cy4KCjIwMDQtMDEtMzAgMTE6MzEgIHNsaWYKCiAgICogd2luMzIvOiBzbm1wZC9zbm1wZC5kc3AsIHNubXBkc2RrL3NubXBkLmRzcDoKCiAgIG1vdmUgbmV0c25tcC5saWIgdG8gdGhlIGZyb250IG9mIHRoZSBBZGRpdGlvbmFsIExpYnJhcmllcyBsaXN0LgoKMjAwNC0wMS0zMCAxMDoyOSAgc2xpZgoKICAgKiB3aW4zMi86IGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgICAgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAosIHNubXBkL3NubXBkLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgICAgc25tcGRmL3NubXBkZi5kc3AsIHNubXBkc2RrL3NubXBkLmRzcCwKICAgICBzbm1wZ2V0L3NubXBnZXQuZHNwLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgICAgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCBzbm1wc2V0L3NubXBzZXQuZHNwLAogICAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcAosIHNubXB0cmFwL3NubXB0cmFwLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AKLCBzbm1wdXNtL3NubXB1c20uZHNwLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsCiAgICAgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgZW5hYmxlIHNlbGVjdGlvbiB0aGF0IHdpbGwgZ2VuZXJhdGUgc291cmNlIGJyb3dzaW5nIGluZm9ybWF0aW9uLgoKMjAwNC0wMS0zMCAxMDowOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmg6CgogICBtb3ZlIGV4dGVybiBsb2doX2hlYWQgaW50byB0aGUgbG9nZ2luZyBtb2R1bGUncyBoZWFkZXIgZmlsZS4KCjIwMDQtMDEtMzAgMDc6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIFJlbW92ZSBhbiB1bndhbnRlZCAnZWxzZScgY2xhdXNlIHRoYXQgY2xhc2hlcyB3aXRoIHRoZSAiY29tbW9uIiAnZWxzZScKICAgY2xhdXNlIGxhdGVyIGluIHRoaXMgdGFuZ2xlIG9mIHVucmVhZGFibGUgY29kZS4gIChCdWcgIzg1NzI1NykKCjIwMDQtMDEtMzAgMDc6MDEgIHNsaWYKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICByZXN0b3JlIHRoZSBEQVRBIGhpbnRzIHRoYXQgd2VyZSBhY2NpZGVudGFsbHkgcmVtb3ZlZC4KCjIwMDQtMDEtMzAgMDY6NDUgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBXaGl0ZXNwYWNlIChDL1IgJiBML0YpIHNob3VsZG4ndCB0cmlnZ2VyIGhleCBzdHJpbmcgYmVoYXZpb3VyIChCdWcgIzg2NDM2NykKCjIwMDQtMDEtMzAgMDY6MzMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgRGVmaW5lIGEgImR1bW15IiBsb2cgaGFuZGxlciB0aGF0IHNpbXBseSBkaXNjYXJkcyBhbGwgbWVzc2FnZXMuCiAgIE5vdCByZWFsbHkgYSBzZW5zaWJsZSB0aGluZyB0byBkbywgYnV0IGNvdWxkIGJlIHVzZWQgdG8gcHJldmVudAogICB0dXJuaW5nIG9uIHRoZSAibGFzdCBkaXRjaCIgbG9nZ2luZyB0byBzdGRlcnIgKHNlZSBCdWcgIzg2NzU3NCkKCjIwMDQtMDEtMzAgMDY6MTkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBJc3N1ZSBhIHdhcm5pbmcgd2hlbiB0dXJuaW5nIG9uICJsYXN0IGRpdGNoIiBsb2dnaW5nIChCdWcgIzg2NzU3NCkKCjIwMDQtMDEtMzAgMDM6MjIgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEhhbmRsZSBjb21wbGV0ZWx5IGVtcHR5IEdldEJ1bGsgcmVxdWVzdHMgcHJvcGVybHkgKEJ1ZyAjODc3NDE5KQoKMjAwNC0wMS0zMCAwMjo1MCAgc2xpZgoKICAgKiB3aW4zMi86IC5jdnNpZ25vcmUsIHdpbjMyLm9wdDoKCiAgIGZpeCBidWcgIzg4NzE0MAoKMjAwNC0wMS0zMCAwMTozOSAgZHRzMTIKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgVXNlICdzbnByaW50X2hleHN0cmluZycgaW4gdGhlIGVuZ2luZSB0ZXN0aW5nIGNvZGUsIHJhdGhlcgogICB0aGFuIHRoZSAobm9uLWV4aXN0ZW50KSAnc3ByaW50X2hleHN0cmluZycgIChCdWcgIzg4NjExMCkKCjIwMDQtMDEtMjkgMTM6MDMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgZml4IGNvdW50cyBmb3IgY2VydGFpbiB1c2VzIG9mIHN0cm5jYXNlY21wIChpIG11c3QgYmUgYm9yZWQhKS4KCjIwMDQtMDEtMjkgMTI6MzIgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGZvciB3aW5kb3dzIHNlcnZpY2UsIG1hdGNoIGRpc3BsYXkgbmFtZSB0byBzZXJ2aWNlIG5hbWUuCiAgIGZvciB3aW5kb3dzIHNlcnZpY2UgZGVzY3JpcHRpb24sIG1lbnRpb24gbWliSUkgb2JqZWN0cyBpZiBidWlsdCB1c2luZyBTREsuCgoyMDA0LTAxLTI5IDEyOjE0ICBzbGlmCgogICAqIGFwcHMvOiBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYzoKCiAgIHVzZSBjb3JyZWN0IGNvbnN0YW50IHRoYXQgcHJldmlvdXNseSBhcHBsaWVkIHBhdGNoIHJlZmVycyB0by4KCjIwMDQtMDEtMjkgMDY6MzggIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgQnJpbmcgdmVyc2lvbiBoYW5kbGluZyBpbnRvIGxpbmUgd2l0aCB0aGUgJ3NubXBfcGFyc2VfYXJncycgbGVnZXJkZW1haW4KCjIwMDQtMDEtMjkgMDY6MjYgIGR0czEyCgogICAqIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBWYWxpZGF0ZSB0aGUgcmVxdWVzdCBhZ2FpbnN0IHRoZSBtYXhpbXVtIG51bWJlciBvZiB2YXJiaW5kcyBzdXBwb3J0ZWQKICAgKFBhdGNoICM4MjY3MTQgZnJvbSBKZXJlbXkgUHVobG1hbikKCjIwMDQtMDEtMjkgMDY6MTMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywKICAgICBtaWJzL01ha2VmaWxlLmluLCBtaWJzL05FVC1TTk1QLVRDLnR4dCwKICAgICBtaWJzL1RSQU5TUE9SVC1BRERSRVNTLU1JQi50eHQsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIFVzZSB0aGUgb2ZmaWNpYWxseSBkZWZpbmVkIHRyYW5zcG9ydCBPSURzCiAgIChQYXRjaCAjODI4NzY2IGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyKQoKMjAwNC0wMS0yOSAwNTo1MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX2RldmljZS5jLCBob3N0L2hyX2Rpc2suYywKICAgICBob3N0L2hyX2ZpbGVzeXMuYywgaG9zdC9ocl9uZXR3b3JrLmMsCiAgICAgaG9zdC9ocl9wYXJ0aXRpb24uYywgaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgaG9zdC9ocl9zd3J1bi5jLCBob3N0L2hyX3N5c3RlbS5jLAogICAgIHVjZC1zbm1wL2xvZ21hdGNoLmMsIHVjZC1zbm1wL21lbW9yeS5jLAogICAgIHVjZC1zbm1wL21lbW9yeV9haXg0LmMsIHVjZC1zbm1wL21lbW9yeV9keW5peC5jLAogICAgIHVjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLCB1Y2Qtc25tcC9tZW1vcnlfaHB1eC5jLAogICAgIHVjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsIHVjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jCjoKCiAgIEluY3JlYXNlIGFzc29ydGVkIGZpeGVkIGJ1ZmZlciBzaXplcy4gIChQYXRjaCAjODM2Mzk1IGZyb20gSG93YXJkIFdpbGtpbnNvbikKCjIwMDQtMDEtMjkgMDU6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgUmVqZWN0IGF0dGVtcHRzIHRvIGRlbGV0ZSBhICdwZXJtYW5lbnQnIHJvdwogICAoUGF0Y2ggIzgzNzQyNyBmcm9tIEJvYiBSb3dsYW5kcykKCjIwMDQtMDEtMjkgMDQ6MjMgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGZyZWVpbmcgYW4gZW1wdHkgY29udGV4dEVuZ2luZUlECiAgIChXaGljaCBzaG91bGRuJ3QgaGFwcGVuLCBidXQgc2VlbXMgdG8gb2NjdXIgdW5kZXIgV2luZG93cykKICAgKFBhdGNoICM4NDA4MzAgZnJvbSBBbGV4IEJ1cmdlcikKCjIwMDQtMDEtMjkgMDM6NDcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgTWVjaGFuaXNtIHRvIGNvbXBsZXRlbHkgZGlzYWJsZSB0aGUgaGFuZGxpbmcgb2YgcGVyc2lzdGVudCBjb25maWd1cmF0aW9uIGZpbGVzLgogICBOb3RlIHRoYXQgZW5hYmxpbmcgdGhpcyB3b3VsZCBicmVhayB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhbiBTTk1QdjMgYWdlbnQuCiAgIChQYXRjaCAjODQ5MTU5IGZyb20gU3RlcGhlbiBKLiBGcmllZGwpCgoyMDA0LTAxLTI5IDAzOjM5ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9lbnVtLmM6CgogICBQcm9wZXJseSByZWxlYXNlIHZhcmlvdXMgcmVzb3VyY2VzIHdoZW4gc2h1dHRpbmcgZG93biB0aGUgbGlicmFyeS4KICAgKFBhdGNoICM4NDkxNTQgZnJvbSBTdGVwaGVuIEouIEZyaWVkbCkKCjIwMDQtMDEtMjkgMDE6NDQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBQcm92aWRlIG1pc3NpbmcgY29uZmlnIGRlZmluaXRpb24gdGVtcGxhdGUgZm9yICdzc2l6ZV90JyBmbGFnCiAgIChQYXRjaCAjODg2NjU1IGZyb20gQW5keSBTbWl0aCkKCjIwMDQtMDEtMjggMjA6MzkgIHNsaWYKCiAgICogd2luMzIvOiBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwCiwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHNubXBkL3NubXBkLmRzcAosIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCBzbm1wZGYvc25tcGRmLmRzcCwKICAgICBzbm1wZHNkay9zbm1wZC5kc3AsIHNubXBnZXQvc25tcGdldC5kc3AsCiAgICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AKLCBzbm1wc2V0L3NubXBzZXQuZHNwLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwCiwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHNubXB0ZXN0L3NubXB0ZXN0LmRzcAosIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgICAgc25tcHRyYXAvc25tcHRyYXAuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwKICAgICBzbm1wdXNtL3NubXB1c20uZHNwLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsCiAgICAgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgbm8gaW5jcmVtZW50YWwgbGluayBvbiBEZWJ1ZyAocHJldmVudHMgZ2VuZXJhdGlvbiBvZiAuaWxrIGZpbGUpCgoyMDA0LTAxLTI4IDE4OjQ0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGlmZGVmIGFyb3VuZCB2YXJpYWJsZXMgdXNlZCBvbmx5IHdoZW4gVU5JWCB0cmFuc3BvcnRzIGFyZSBzdXBwb3J0ZWQuCgoyMDA0LTAxLTI4IDE3OjU3ICBzbGlmCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBpbnZva2Ugd2luc29jayB2ZXIgMi4yCgoyMDA0LTAxLTI4IDE3OjM0ICBzbGlmCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9pbmNsdWRlcy5oLCBtaWJfbW9kdWxlX2luaXRzLmgsCiAgICAgZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgICBsaWJhZ2VudC9saWJhZ2VudC5kc3AsIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsCiAgICAgbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICAgIG5ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgsCiAgICAgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwKICAgICBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCiwgc25tcGQvc25tcGQuZHNwLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwKICAgICBzbm1wZGYvc25tcGRmLmRzcCwgc25tcGRzZGsvc25tcGQuZHNwLAogICAgIHNubXBnZXQvc25tcGdldC5kc3AsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgICBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AsCiAgICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgICAgc25tcHRlc3Qvc25tcHRlc3QuZHNwLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwCiwgc25tcHRyYXAvc25tcHRyYXAuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcAosIHNubXB1c20vc25tcHVzbS5kc3AsIHNubXB2YWNtL3NubXB2YWNtLmRzcCwKICAgICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBjb25zaXN0ZW50IHByb2plY3Qgc2V0dGluZ3M7IG5vIEMgcnVudGltZSBjb25mbGljdHM7IGxpbmsgd2l0aCB3aW5zb2NrIHZlciAyLjIKCjIwMDQtMDEtMjggMTc6MjggIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICByZW1vdmUgdW5uZWNlc3NhcnkgaGFjayBmb3IgY2hvd24uCgoyMDA0LTAxLTI4IDE0OjU2ICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBkZXJlZmVyZW5jZSBwcmlfbWF4IHRvIHRlc3QgcmV0dXJuIGZyb20gZGVjb2RlX3ByaW9yaXR5CgoyMDA0LTAxLTI4IDE0OjU0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vOiBhZ3V0aWwuYywgYWxhcm0uYywgZXZlbnQuYwosIGhpc3RvcnkuYywgcm93cy5jLCBzdGF0aXN0aWNzLmM6CgogICBmaW5kIHBsYXRmb3JtLWFwcHJvcHJpYXRlIHN1YnN0aXR1dGUgZm9yIHN5cy90aW1lLmgKICAgZml4IG1pbm9yIHR5cGUgY2FzdCB3YXJuaW5ncy4gIHJlbW92ZSBvbmUgdW51c2VkIHZhcmlhYmxlLgoKMjAwNC0wMS0yOCAwODo0MCAgZHRzMTIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIEltcG9ydCBTTk1QX1NMRUVQIHRpbWUgZnJvbSBlbnZpcm9ubWVudCwgaWYgYXZhaWxhYmxlCiAgIChQYXRjaCAjODUwOTU3IGZyb20gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyLAogICAgbWVyZ2luZyBhIGNoYW5nZSBmcm9tIHRoZSA1LjAueCBicmFuY2gpCgoyMDA0LTAxLTI4IDA4OjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBFbnN1cmUgdGhlIHNpemUgb2YgdGhlIGV4ZWMtY2FjaGUgaXMgaGFuZGxlZCBjb3JyZWN0bHkgb24gNjQtYml0IHN5c3RlbXMKICAgKFBhdGNoICM4NjA1NzUgYnkgQm9iIFJvd2xhbmRzKQoKMjAwNC0wMS0yOCAwNzo1NSAgZHRzMTIKCiAgICogcGVybC86IE9JRC9PSUQueHMsIFNOTVAvU05NUC54cywgYWdlbnQvYWdlbnQueHMKOgoKICAgQmUgbW9yZSBjYXV0aW91cyBhYm91dCB0aGUgbWF4aW11bSBsZW5ndGggb2YgT0lEcyAoUGF0Y2ggODYyMTgzIGJ5IEF1c3RpbiBTY2h1dHopCgoyMDA0LTAxLTI4IDA3OjQxICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgR3VhcmQgYWdhaW5zdCBhIG1pc3NpbmcgSVAgYWRkcmVzcyBzdHJ1Y3R1cmUgKFBhdGNoICM4NjE5MzkgYnkgRGFuIE1vbmdyYWluKQoKMjAwNC0wMS0yOCAwNzozOCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIE1lcmdlIE5laWxzJyA1LjEueCBjaGFuZ2VzIGludG8gdGhlIG1haW4gZGV2ZWxvcG1lbnQgdHJlZS4KICAgKFNlZW1zIHRvIGluY2x1ZGUgcGF0Y2hlcyAjODU1MTcwIGFuZCAjODU4NTE5KQoKMjAwNC0wMS0yOCAwNjo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGRvbid0IGNob3duL2NobW9kIGlmIHVuaXggZG9tYWluIHN1cHBvcnQgbm90IGVuYWJsZWQKCjIwMDQtMDEtMjggMDY6NTQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ2hlY2sgZm9yIHBlcmwgNS44IGVudHJ5IHBvaW50LiAgKFBhdGNoICM4NTQzOTUpCgoyMDA0LTAxLTI4IDA2OjIzICByc3RvcnkKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBmaXggaW5zdGFsbCBzbyB0aGF0IHN1YmRpciBsaWJzIGFyZSBpbnN0YWxsZWQgYmVmb3JlIGJpbnMsIG5vdGVkIGJ5IHRoZQogICBldmVyLXNvLWhlbHBmdWwgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyLgoKMjAwNC0wMS0yOCAwNDoyMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBJbmNyZWFzZSB0aGUgKGZpeGVkKSBudW1iZXIgb2YgZGlza3MgaGFuZGxlZCAocGF0Y2ggIzg4NDg1OSkKCjIwMDQtMDEtMjggMDQ6MTggIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgbWluZ3czMi5oIHN5c3RlbSBoZWFkZXIgZmlsZSAocGF0Y2ggIzg4NDEwMCkKCjIwMDQtMDEtMjggMDQ6MTMgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaDoKCiAgIENoZWNrIGZvciB0aGUgZXhpc3RlbmNlIG9mIHNzaXplX3QsIGFuZCBkb24ndCByZWRlZmluZSBpdCB3aGVuCiAgIHVzaW5nIHRoZSBXaW5HVyBjb21waWxlci4gICAoUGF0Y2ggIzg4MTc1MikKCjIwMDQtMDEtMjggMDM6NTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfbWZkLmg6CgogICBSZW1vdmUgdHdvIHJlZHVuZGVudCBmb3J3YXJkIGRlY2xhcmF0aW9ucyAgKHBhdGNoICM4NzMzMjYpCgoyMDA0LTAxLTI4IDAyOjA3ICBzbGlmCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgaW5ldHByaW50IGFsbG90cyBtYXggMjIgY2hhcnMgZm9yIGFkZHJlc3MgKyA4IGNoYXJzIGZvciBwb3J0LgogICBjaGFuZ2UgdG8gMTggYWRkcmVzcyArIDEyIHBvcnQsIHNvIHRoYXQgbW9yZSBvZiB0aGUgcG9ydCBpcyBkaXNwbGF5ZWQuCgoyMDA0LTAxLTI3IDIyOjQyICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgaW5kaWNhdGUgV2luMzIgaGFzIGxvY2FsZS5oIG1hbGxvYy5oIG1lbW9yeS5oLgogICBkbyBub3Qgc2V0IGJzZGxpa2Ugb3IgVVNFeHhNSUIgb3IgU0VDVVJJVFlFWENFUFRJT05TCiAgIHJlLWZvcm1hdCBsaWtlIHRoZSBOZXQtU05NUCBjb25maWd1cmVkIG5ldC1zbm1wLWNvbmZpZy5oLgoKMjAwNC0wMS0yNyAyMjozNCAgc2xpZgoKICAgKiBhY2NvbmZpZy5oLCBvdi9vaWRfdG9fc3ltLmluLCBvdi9vaWRfdG9fdHlwZS5pbgo6CgogICB1cGRhdGUgc3VwcG9ydCBmb3IgT3BlbkJTRCwgSFAtVVgvMTEsIGFuZCBXaW4zMiBzeXNPYmplY3RJRCAuCgoyMDA0LTAxLTI3IDIxOjQ5ICBzbGlmCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfbWZkLmMsIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmMKOgoKICAgcHJvdmlkZSBmdW5jdGlvbiBoaW50cyBpbiBsaWV1IG9mIF9fRlVOQ1RJT05fXwoKMjAwNC0wMS0yNyAxMzo0NiAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaDoKCiAgIEFkZCBkZWNsYXJhdGlvbnMgZm9yIGZ1bmN0aW9ucyB1c2VkIGluIGFwcHMvc25tcHRyYXBkX2hhbmRsZXIuYwoKMjAwNC0wMS0yNyAxMzoxNSAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIG5vIGNob3duKCkgb24gV2luMzIgLS0gY29tcGlsZXMgdG8gbm90aGluZy4KCjIwMDQtMDEtMjcgMTA6NTUgIHNsaWYKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyc2RrLmRzdzoKCiAgIGJ1aWxkIGluZGVwZW5kZW50IHByb2plY3RzIChsaWJyYXJpZXMpIGJlZm9yZSBkZXBlbmRlbnQgcHJvamVjdHMuCiAgIHJlbW92ZSBpbmNvbXBsZXRlIGRlcGVuZGVuY3kgc3BlY2lmaWNhdGlvbiB0byBidWlsZCBhbGwgZmFzdGVyLgoKMjAwNC0wMS0yNyAxMDoxMiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBSZS1hcnJhbmdlZCB0aGUgZGVjbGFyYXRpb25zIG9mIHZhcmlhYmxlcyBhbmQvb3IgY29tcGlsZSBjb25zdGFudHMsCiAgIHNvIHRoYXQgdGhlIHZhcmlhYmxlcyBhcmUgZGVjbGFyZWQgb25seSBpZiBuZWVkZWQuCgoyMDA0LTAxLTI3IDEwOjExICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIFN1cHBsaWVkICJyZXR1cm4gMCIgdG8gZXh0ZW5zaWJsZV91bnJlZ2lzdGVyKCksIGEgZnVuY3Rpb24gcmV0dXJuaW5nIGludC4KCjIwMDQtMDEtMjcgMDk6NTkgIHNsaWYKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIGNhc3QgdG8gdm9pZCB0aGUgYXJndW1lbnQgdG8gZnJlZSgpLgoKMjAwNC0wMS0yNyAwOTo1NyAgc2xpZgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgdXNlIHVfY2hhciB0eXBlIGNhc3QgaW5zdGVhZCBvZiBtYXNraW5nIHdpdGggMHhGRi4KCjIwMDQtMDEtMjcgMDk6NTIgIHNsaWYKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBtb3ZlIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24gd2l0aGluIHR5cGUgY2FzdCBzY29wZSwKICAgZm9yIHRoZSBiZW5lZml0IG9mIHNvbWUgY29tcGlsZXJzLgoKMjAwNC0wMS0yNyAwOTo1MCAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBzcGVsbGNoZWNrOiBuZXRzbm1wX2NvbnRhaW5lcl9mcmVlX2xpc3QKCjIwMDQtMDEtMjcgMDk6NDYgIHNsaWYKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGRlY2xhcmUgaW5pdF9zdWJhZ2VudCBuZWFyIGl0cyBvbmx5IHJlZmVyZW5jZS4KCjIwMDQtMDEtMjcgMDk6NDUgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUgZnJvbSBXaW4zMiBjb2RlLgoKMjAwNC0wMS0yNyAwOTo0NCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgbW92ZSBIQVZFX0VYRUNWIGNvbXBpbGUgdGVzdCBlYXJsaWVyIGluIHRoZSBmdW5jdGlvbiB0byBub3QgaW50cm9kdWNlIHVudXNlZCB2YXJpYWJsZXMuCgoyMDA0LTAxLTI3IDA5OjQxICBzbGlmCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYwosIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLAogICAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLCBhcHBzL3NubXB2YWNtLmMsCiAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsCiAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMsIHNubXBsaWIvbWliLmMsCiAgICAgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfZW51bS5jLAogICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIHF1aWV0IGNvbXBpbGVyIHdhcm5pbmdzIHVzaW5nIGFwcHJvcHJpYXRlIHR5cGUgY2FzdGluZy4KCjIwMDQtMDEtMjcgMDk6MjQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaCwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIFJlZmVyIHRvIHRoZSBuZXRzbm1wIGxpYnJhcnkgdmVyc2lvbiBzdHJpbmcgdmlhIG5ldHNubXBfZ2V0X3ZlcnNpb247CiAgIEtlZXAgZGlyZWN0IHN0cmluZyByZWZlcmVuY2UgaWZmIFVDRF9DT01QQVRJQkxFIGlzIGRlZmluZWQuCgoyMDA0LTAxLTI3IDA5OjA3ICBzbGlmCgogICAqIHNubXBsaWIvOiBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYzoKCiAgIEF2b2lkIGNvbnZlcnNpb24gbWFjcm9zIHdoZW4gZm9ybWluZyBob3N0IGNvcHkgb2YgMTYtYml0IHBvcnQgdmFsdWUKCjIwMDQtMDEtMjcgMDk6MDcgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBEb250IGZvcmNlIHVuc2lnbmVkIHNob3J0IG9udG8gdHdvIHVuc2lnbmVkIGNoYXJzLgogICBCZSBtb3JlIGV4cGxpY2l0IGluIHRoZSB0cmVhdG1lbnQgb2YgdGhlIHllYXIgY29tcG9uZW50LgoKMjAwNC0wMS0yNyAwOTowMiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHRjcFRhYmxlLmMsIHVkcFRhYmxlLmM6CgogICBXaW4zMiBhbGxvY2F0ZXMgVENQIGFuZCBVRFAgY29ubmVjdGlvbiBzdHJ1Y3R1cmVzIHRoYXQgY29uc2lzdCBvZgogICAgYSAzMi1iaXQgY291bnQgZm9sbG93ZWQgYnkgYSBwZXIgY29ubmVjdGlvbiB0YWJsZS4gIFdoZW4gZnJlZWluZyB0aGUgdGFibGUsCiAgICBmaW5kIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cnVjdHVyZS4gIFRoZSBUQ1AgdGFibGUgaW5jb3JyZWN0bHkgY291bnRlZAogICAgZXN0YWJsaXNoZWQgVENQIGNvbm5lY3Rpb25zLCBmaXhlZCB3aXRoIHRoaXMgY2hhbmdlLgoKMjAwNC0wMS0yNyAwODo1OCAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCjoKCiAgIHN1cHBvcnQgV2luMzIgaW4gT1NUWVBFIGRlZmluaXRpb24uCgoyMDA0LTAxLTI3IDA4OjU0ICBzbGlmCgogICAqIGFnZW50Lzogc25tcGQuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgaW5jbHVkZSBpby5oIGZvciBXaW4zMiB0byBpbnRyb2R1Y2UgdGhlIGNsb3NlKCkgZnVuY3Rpb24KCjIwMDQtMDEtMjcgMDc6NDggIHNsaWYKCiAgICogd2luMzIvOiBsaWJoZWxwZXJzLy5jdnNpZ25vcmUsIG5ldC1zbm1wLy5jdnNpZ25vcmUsCiAgICAgbmV0LXNubXAvYWdlbnQvLmN2c2lnbm9yZSwgbmV0LXNubXAvbGlicmFyeS8uY3ZzaWdub3JlCiwgbmV0c25tcG1pYnMvLmN2c2lnbm9yZSwgbmV0c25tcG1pYnNzZGsvLmN2c2lnbm9yZQosIHNubXBkc2RrLy5jdnNpZ25vcmU6CgogICBwcm92aWRlIGEgQ1ZTIGZpbHRlciB0byBldmVyeSBzdWJkaXIgdW5kZXIgd2luMzIuCgoyMDA0LTAxLTI3IDA3OjM0ICBzbGlmCgogICAqIHdpbjMyLzogbGliYWdlbnQvbGliYWdlbnQuZGVmLCBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZGVmCjoKCiAgIGNvbnZlcnQgdG8gRE9TIGZvcm1hdCB0byBrZWVwIGNlcnRhaW4gSURFIGhhcHB5LgoKMjAwNC0wMS0yNyAwNzoyNyAgc2xpZgoKICAgKiB3aW4zMi9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgdGhpcyBmaWxlIGlzIHN1cGVyc2VkZWQgYnkgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaC4KCjIwMDQtMDEtMjcgMDc6MjMgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwgc25tcGxpYi93aW5zZXJ2aWNlLmMKOgoKICAgY2hhbmdlcyBhcHByb3ZlZCBieSBhdXRob3IgcHJvdmlkZSBtb3JlIHJlYWRhYmxlIGZvcm1hdHRpbmcgYW5kIGNvbW1lbnRzLgoKMjAwNC0wMS0yNyAwNzoyMiAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLCBzbm1wbGliL3dpbnNlcnZpY2UuYwo6CgogICByZW1vdmUgQ1IgY2hhcmFjdGVycyBmcm9tIHRoZXNlIHNvdXJjZXMuCgoyMDA0LTAxLTI3IDA3OjE5ICBzbGlmCgogICAqIFJFQURNRS5QYW5hc29uaWNfQU0zWC50eHQ6CgogICBjb252ZXJ0IENSTEYgdG8gbmV3bGluZQoKMjAwNC0wMS0yNyAwNzowNCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIEZvcndhcmQgdHJhcHMgdG8gcG9ydCAxNjIgYnkgZGVmYXVsdC4KCjIwMDQtMDEtMjYgMTU6NTYgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgcXVpZXQgY29tcGlsZXIgd2FybmluZwoKMjAwNC0wMS0yNiAxNTo1NSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZG9uJ3QgaGFyZGNvZGUgcG9pbnRlciBzaXplOyBub3RlZCBvbiBjb2RlcnMgYnkgcmFqZXNoIGFydW11Z2FtCgoyMDA0LTAxLTI2IDA0OjE5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgRml4IHRoZSBvcmRlcmluZyBvZiBob3N0bmFtZSBhbmQgSVAgYWRkcmVzcyBhcyBwYXNzZWQgdG8gdHJhcCBoYW5kbGVyCiAgIChCdWcgIzg4MjA3MSBhbmQgb3RoZXJzKQoKMjAwNC0wMS0yNiAwNDoxNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIENvbnZlcnQgdjEgdHJhcHMgdG8gdjIgZm9ybWF0IGJlZm9yZSBwYXNzaW5nIGl0IHRvIHRoZSB0cmFwIGhhbmRsZXIKICAgKHBsdXMgbWVyZ2luZyB0aGUgb3RoZXIgNS4xLnggcGF0Y2hlcyBpbnRvIHRoZSBtYWluIGRldmVsb3BtZW50IHRyZWUpCgoyMDA0LTAxLTI2IDAyOjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIEVuc3VyZSB0aGF0IGhyRlNUYWJsZSBpbmRleGVzIGFyZSBjb25zaXN0ZW50IGFjcm9zcyB0aGUgbGlmZXRpbWUgb2YKICAgdGhlIGFnZW50LgoKMjAwNC0wMS0yNiAwMjo0MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBBbGlnbiBockZTU3RvcmFnZUluZGV4IHZhbHVlcyB3aXRoIGhyU3RvcmFnZVRhYmxlIChidWcgIzg4Mjk4NykKCjIwMDQtMDEtMjAgMDU6NDggIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICBBZGQgQW5keSBTbWl0aCB0byBjb250cmlidXRvcnMKCjIwMDQtMDEtMjAgMDU6NDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maXVyZS5pbgoKMjAwNC0wMS0yMCAwNToyOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaDoKCiAgIHBhcnRpYWwgYXBwbGljYXRpb24gb2YgODYwOTgwOiBGaXggZm9yIG1pbmd3MzIuaAoKMjAwNC0wMS0yMCAwNToxNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFwcGx5IHBhdGNoIDg0MzY3OTogQ29uZmlndXJlIHBhdGNoIGZvciBNaW5HVwoKMjAwNC0wMS0xNCAwNjowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWZUYWJsZS5jOgoKICAgRml4IGhhbmRsaW5nIG9mIDY0LWJpdCBjb3VudGVycywgYW5kIHVzZSB0aGUgY29ycmVjdCAvcHJvYyBpbnRlcmZhY2UgZmlsZQogICAobm90IHRoZSB0ZW1wb3JhcnkgZGVidWdnaW5nIHZlcnNpb24hKQoKMjAwNC0wMS0xNCAwNTo0MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpZlRhYmxlLmMsIGlmVGFibGUuaDoKCiAgIFByb3Zpc2lvbmFsIHJlLWltcGxlbWVudGF0aW9uIG9mIElGLU1JQjo6aWZUYWJsZSBhbmQgSUYtTUlCOjppZlhUYWJsZQogICBMaW51eCBzdXBwb3J0IG9ubHkgKGFuZCBzb21lIG9iamVjdHMgYXJlIG1pc3NpbmcpLAogICBidXQgaXQgc2hvdWxkIGdpdmUgdGhlIGdlbmVyYWwgZmxhdm91ci4KCjIwMDQtMDEtMTQgMDU6MzcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwgc25tcGxpYi9zbm1wX2VudW0uYwo6CgogICBOZXcgaW50ZXJmYWNlcyB0byBmaW5kIGFuIHVudXNlZCB2YWx1ZSB3aXRoaW4gYW4gZW51bWVyYXRpb24gbGlzdC4KCjIwMDQtMDEtMTMgMjA6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIHVuZG8gaW5hZHZlcnRlbnQgY2hlY2tpbgoKMjAwNC0wMS0xMyAyMDoxMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvOiBjYWNoZV9oYW5kbGVyLmMsIHJvd19tZXJnZS5jLAogICAgIHRhYmxlX2l0ZXJhdG9yLmM6CgogICB1bmRvIGluYWR2ZXJ0ZW50IGNoZWNraW4KCjIwMDQtMDEtMTMgMjA6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgICBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICB1bmRvIGluYWR2ZXJ0ZW50IGNoZWNraW4KCjIwMDQtMDEtMTMgMjA6MDMgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbiwgYWdlbnQvc25tcF92YXJzLmM6CgogICB1bmRvIGluYWR2ZXJ0ZW50IGNoZWNraW4KCjIwMDQtMDEtMTMgMTA6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oOgoKICAgdW5kbyBpbmFkdmVydGVudCBjaGVja2luCgoyMDA0LTAxLTExIDE2OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIGZpeCB0eXBvLCBub3RlZCBvbiBjb2RlcnMgYnkgT2xlZyBJdmFub3YKCjIwMDQtMDEtMTEgMTY6NDMgIHJzdG9yeQoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQsIHNubXBsaWIvY29udGFpbmVyLmMsCiAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwgYWdlbnQvc25tcF92YXJzLmMKLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaCwKICAgICBsb2NhbC9taWIyYy5jaGVja192YWx1ZXMuY29uZiwgTWFrZWZpbGUuaW46CgogICBmaXggcmFuZ2UgY2hlY2tpbmcgY29kZSwgbm90ZWQgb24gY29kZXJzIGJ5IE9sZWcgSXZhbm92CgoyMDA0LTAxLTA3IDA5OjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbTJjX3NldHVwX25vZGUubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpLCBtZmQtZGF0YS1zZXQubTJjCiwgbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjLAogICAgIHN1YmFnZW50Lm0yYzoKCiAgIGlmIG5lZWRsZW5ndGggbm90IHNldCwgc2V0IHZhcmJpbmQgdmFsX2xlbiBmb3IgR0VUcywgdmFsaWRhdGUgdmFsX2xlbiBvbiBzZXQ7CiAgIGRvbid0IGRlY2xhcmVzIGZ1bmN0aW9ucyB3aGljaCBjYW4ndCBiZSBpbmxpbmVkIGFzIGlubGluZTsgY29tbWVudCB0d2Vha3MKCjIwMDQtMDEtMDYgMTQ6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIHRyYW5zbGF0ZSBhIE1JQiB0eXBlIG9mIElQQUREUiB0byBJUEFERFJFU1MgaW5zdGVhZCBvZiBPQ1RFVF9TVFJJTkcuCiAgIC0gc21hbGwgb3RoZXIgYnVnIGZpeAoKMjAwNC0wMS0wNiAxNDozOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBjaGFuZ2UgdGhlIG1hbnVhbCBzbyBpdCBkb2Vzbid0IHJlZmVyZW5jZSBVQ0QtU05NUCB2MyAoYWhlbSkKCjIwMDQtMDEtMDYgMTQ6MzggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgcHJvcGVyIHNvcnRpbmcgd2hlbiBOZXRTTk1QOjpPSUQgaXMgYXZhaWxhYmxlLgoKMjAwNC0wMS0wMSAxNjo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgb25seSBzZXQgZGVmYXVsdHMgaWYgbm90IGFscmVhZHkgc2V0CgoyMDAzLTEyLTMwIDIwOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IE9JRC54cywgdGVzdC5wbDoKCiAgIGhhbmRsZSBpbXBsaWVkIGluZGV4ZXMKCjIwMDMtMTItMzAgMTk6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvT0lELzogT0lELnBtLCBPSUQueHMsIHRlc3QucGw6CgogICBBIG5ldyAtPmdldF9pbmRleGVzKCkgbWV0aG9kIHRvIHJldHVybiB0aGUgZXh0cmFjdGVkIGluZGV4ZXMgZnJvbSBhIE9JRC4KCjIwMDMtMTItMzAgMTU6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFsbG93OiBzZXBhcmF0ZWQgcGF0aHMgaW4gTUlCMkNfRElSIGVudiB2YXIKCjIwMDMtMTItMzAgMTU6MTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtMmNfc2V0dXBfZW51bS5tMmksIG0yY19zZXR1cF9ub2RlLm0yaQo6CgogICB1bnF1b3RlIHVjIGNhbGxzLCBzaW5jZSBldmFsIHdpdGggaW50ZXJwcmV0IGFzIGEgbGl0ZXJhbCBhbmQgSSBjYW4ndAogICByZXByb2R1Y2UgdGhlICdiYXJld29yZCcgcHJvYmxlbSB0aGF0IG1hZGUgbWUgcXVvdGUgaW4gdGhlIGZpcnN0IHBsYWNlCgoyMDAzLTEyLTI5IDEyOjAzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjCjoKCiAgIHJlbW92ZSB1bnVzZWQgcmVxdWVzdF9tb2RlCgoyMDAzLTEyLTI2IDEyOjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICByZW5hbWUgdmFycyBmb3IgY2xhcmlmaWNhdGlvbjogJHt0YWJsZX1fY3R4KiAtPiAke3RhYmxlfV9yb3dyZXFfY3R4KjsgYWRkCiAgIHZhcnMgZm9yIG1mZF9kZWZhdWx0czsgdXNlIG5ldyBtaWIyYyBwdXNoL3BvcCB0byBnZW5lcmF0ZSBwZXIgdGFibGUgZGVmYXVsdHMKICAgZmlsZSBkZWZhdWx0LXRhYmxlLSR0YWJsZS5tMmQgY29udGFpbmluZyBjdXJyZW50IHZhbHVlcyBvZiBzb21lIG0yYyB2YXJzCgoyMDAzLTEyLTI2IDEyOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1nZXQtY2hhci5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1pbnRlcmZhY2UubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtcmVhZG1lLm0yaSwgbWZkLWRhdGEtZ2V0Lm0yYwosIG1mZC1kYXRhLXNldC5tMmMsIG1mZC1pbnRlcmZhY2UubTJjLAogICAgIG1mZC1yZWFkbWUubTJjLCBtZmQtdG9wLm0yYywgbm9kZS1nZXQubTJpLAogICAgIG5vZGUtc2V0Lm0yaSwgcGFyZW50LWRlcGVuZGVuY2llcy5tMmksIHBhcmVudC1zZXQubTJpCiwgc3ludGF4LUluZXRBZGRyZXNzLWdldC5tMmksCiAgICAgc3ludGF4LUluZXRBZGRyZXNzVHlwZS1nZXQubTJpOgoKICAgcmVuYW1lIHZhcnMgZm9yIGNsYXJpZmljYXRpb246IGl0cl9jdHgqIC0+IGxvb3BfY3R4KiwgbG9vcCogLT4gbG9vcF9jdHgqLAogICAke3RhYmxlfV9jdHgqIC0+ICR7dGFibGV9X3Jvd3JlcV9jdHgqCgoyMDAzLTEyLTI2IDEyOjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIHF1b3RlIGFzc2lnbm1lbnQgb2YgdXBwZXJjYXNlZCBuYW1lLCBzbyB2YWx1ZXMgdGhhdCBzdGFydCB3aXRoIGEgZGlnaXQgZG9uJ3QKICAgZ2V0IGludGVycHJldGVkIGFzIGEgYmFyZSB3b3JkOyBjaGcgZGVidWcgcHJpbnQgdG8gY29tbWVudAoKMjAwMy0xMi0yNiAxMjozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRldGFpbHMtZW51bXMubTJpLAogICAgIGdlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpLCBnZW5lcmljLXZhbHVlLW1hcC5tMmksCiAgICAgbTJjX3NldHVwX2VudW0ubTJpOgoKICAgcXVvdGUgYXNzaWdubWVudCBvZiB1cHBlcmNhc2VkIG5hbWUsIHNvIHZhbHVlcyB0aGF0IHN0YXJ0IHdpdGggYSBkaWdpdCBkb24ndAogICBnZXQgaW50ZXJwcmV0ZWQgYXMgYSBiYXJlIHdvcmQ7IGNvbnNvbGlkYXRlICRtMmNfZW5hbWV5LyRtMmNfaW5hbWUgcHJvY2Vzc2luZwogICBpbnRvIG0yY19zZXR1cF9lbnVtLm0yaQoKMjAwMy0xMi0yMyAwNzoxOSAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICByZW1vdmUgZGVwcmVjYXRlZCBvcHRpb24gZnJvbSBleGFtcGxlCgoyMDAzLTEyLTIzIDA3OjE4ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGNoYW5nZSBkZWZhdWx0IHJwbSBidWlsZCBpbnN0cnVjdGlvbnMgdG8gZW1iZWQgcGVybAoKMjAwMy0xMi0yMyAwNzoxNyAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIHJlLXdvcmsgcGVybCBvcHRpb25zIHRvIGZpeCBwcm9ibGVtIHcvY29uZmlndXJlIGFyZ3VtZW50IHF1b3RpbmcKCjIwMDMtMTItMjMgMDI6MDAgIGR0czEyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIE5vdGUgdGhhdCBDeWd3aW4gbm8gbG9uZ2VyIG5lZWRzIGEgc2VwYXJhdGUgcmVnZXggbGlicmFyeQogICBSZXBvcnRlZCBieSBKb2huIE1jQ2FzaAoKMjAwMy0xMi0yMiAxNjo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIHB1c2gvcG9wOyByZS13b3JrIGluZGV4L2ludGVybmFsaW5kZXgvZXh0ZXJuYWxpbmRleC9ub25pbmRleCBzZXR1cAoKMjAwMy0xMi0xOSAyMDozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLAogICAgIG1pYjJjLmFycmF5LXVzZXIuY29uZiwgbWliMmMuY2hlY2tfdmFsdWVzLmNvbmYsCiAgICAgbWliMmMuY29uZjoKCiAgIFBhdGNoIGZyb20gQnJpYW4gQnVlc2tlciB0byBmaXggbWlzYyBwcm9ibGVtcyAodmFyaWFibGUge31pbmcsIC4uLikKCjIwMDMtMTItMTggMDE6NTggIGR0czEyCgogICAqIG1hbi9zbm1wbmV0c3RhdC4xOgoKICAgRml4IG1vcmUgbWFya3VwIGVycm9ycywgcmVwb3J0ZWQgYnkgRXJpYyBSYXltb25kLgoKMjAwMy0xMi0xNiAwMjowMCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9tZmQuaDoKCiAgIEJlIGNvbnNpc3RlbnQgaW4gdXNlIG9mIGZvcndhcmQgZGVmaW5pdGlvbnMgKGV4cGxpY2l0IHZzIGltcGxpY2l0IHN0cnVjdCkKICAgUmVwb3J0ZWQgYnkgTWFnbnVzIEZyb21yZWlkZQoKMjAwMy0xMi0xMSAxODo1NiAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB1cGRhdGUgcnBtIGJ1aWxkIGluc3RydWN0aW9ucwoKMjAwMy0xMi0xMSAxODo1MiAgcnN0b3J5CgogICAqIGRpc3QvTWFrZWZpbGU6CgogICBmaXggdXBkYXRlZCBwZXJsIG9wdGlvbnMgZm9yIG5ldyBycG0gbWV0aG9kCgoyMDAzLTEyLTExIDE4OjQxICByc3RvcnkKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIHJlbW92ZSBWRVIvUkVMLCB1c2UgVkVSU0lPTi9SRUxFQVNFOyB1cGRhdGUgcGVybCBvcHRpb25zIGZvciBuZXcgcnBtIG1ldGhvZDsKICAgYWRkIHRhcmdldCB0byBidWlsZCBycG0gdHJlZTsgZG9uJ3QgaGFyZGNvZGUgYXJjaGl0ZWN0dXJlCgoyMDAzLTEyLTExIDE4OjM4ICByc3RvcnkKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIGRvY3VtZW50IC1EIG9wdGlvbjsgYWRkIE1ha2VmaWxlIHR5cGUKCjIwMDMtMTItMTEgMTg6MjIgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBkb24ndCByZXF1aXJlIHBlcmw7IGFkZCBub3RlIG9uIHZlbmRvciByZWxlYXNlcwoKMjAwMy0xMi0xMSAwODoxMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgcnVuIGluZGVudAoKMjAwMy0xMi0xMSAwODowMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgbW92ZSBsb2dpYyB0byBza2lwIHdoZW4gY2FjaGluZyBkaXNhYmxlLCBubyBjYWNoZSBmb3VuZCBvciBjYWNoZSBkaXNhYmxlZAoKMjAwMy0xMi0xMCAwNjo0NCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBkZWxheSBzb3VyY2luZyBvZiBuc2ItZnVuY3Rpb25zOyBtdiByYyBmaWxlIGludG8gfi8uc25tcDsgcmVtb3ZlIGJ1aWxkIGRpcgogICBvbiBzdWNjZXNzCgoyMDAzLTEyLTEwIDA2OjQzICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIGRlbGF5IHNvdXJjaW5nIG9mIG5zYi1mdW5jdGlvbnM7IG12IHJjIGZpbGUgaW50byB+Ly5zbm1wCgoyMDAzLTEyLTEwIDA2OjE3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbmV3IHZhcnM6IE5TQl9WRVJTSU9OIE5TQl9CVUlMRF9TVUZGSVg7IGRvbid0IHVzZSBob3N0bmFtZSAtcywgc2luY2Ugc3VuCiAgIGRvZXNuJ3Qgc3VwcG9ydCBpdDsgdHdlYWsgZGVmYXVsdCBwYXRocwoKMjAwMy0xMi0xMCAwMjo0MSAgZHRzMTIKCiAgICogbWFuLzogbWliX2FwaS4zLmRlZiwgc25tcC5jb25mLjUuZGVmLAogICAgIHNubXBfY29uZmlnLjUuZGVmOgoKICAgRml4IGFzc29ydGVkIG1hcmt1cCBlcnJvcnMsIHJlcG9ydGVkIGJ5IEVyaWMgUmF5bW9uZC4KCjIwMDMtMTEtMzAgMTQ6MjUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBmaXggc2NvcGUgb2YgaGF2ZV9kaXJlbnQgaWZkZWYKCjIwMDMtMTEtMzAgMTQ6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX21mZC5jOgoKICAgYWRkIGNvbW1lbnRzOyByZW1vdmUgYXNzZXJ0IG9uIHZhbGlkIGNvbmRpdGlvbgoKMjAwMy0xMS0zMCAxNDoyMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGRlYnVnIG1zZyB3aGVuIHNraXBwaW5nIHZiIHdpdGggYm9ndXMgaW5kZXgKCjIwMDMtMTEtMzAgMTQ6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYzoKCiAgIHJlYWRhYmlsaXR5IGZpeCAtIHVzZSBtYWNybyBpbnN0ZWFkIG9mIGhhcmRjb2RlZCB2YWx1ZQoKMjAwMy0xMS0yOCAwNTo0MSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmg6CgogICBJZiBhIHJvdyBpcyBjcmVhdGVkIHZpYSBhIFNFVCByZXF1ZXN0LCB0aGVuIGl0IG5lZWRzIHRvIGJlIG1hZGUgYXZhaWxhYmxlCiAgIHRvIHRoZSBvdGhlciBjb2x1bW5zIGFuZCBwYXNzZXMuICBQcm92aWRlIGEgbWVjaGFuaXNtIGZvciBpbnNlcnRpbmcgdGhpcwogICBpbnRvIHRoZSByZXF1ZXN0IGxpc3QuCiAgIChUaGlzIGxvb2tzIHN1c3BpY2lvdXNseSBzaW1pbGFyIHRvIGFub3RoZXIgcmVjZW50IHBhdGNoOi0pICAgRG9lcwogICB0aGlzIGZ1bmN0aW9uYWxpdHkgcGVyaGFwcyBiZWxvbmcgd2l0aGluIHRoZSB0b3AtbGV2ZWwgJ3RhYmxlJyBoYW5kbGVyPykKCjIwMDMtMTEtMjUgMTU6NDggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBzdXBwb3J0ICRub2RlLmRlc2NyaXB0aW9uCiAgIC0gc3VwcG9ydCBAcHJpbnRmIC4uLkAKCjIwMDMtMTEtMjUgMTI6NDcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICB0d2VhayBkZWZhdWx0IGJ1aWxkIGRpcnM7IGRlZmF1bHQgdG8gaG9zdC92ZXJzaW9uIGluc3RlYWQgb2YgcGxhdGZvcm0vdmVyc2lvbgogICAoc2luY2Ugc2YgYnVpbGQgaG9zdHMga2VlcCBjaGFuZ2luZyBwbGF0Zm9ybXMpCgoyMDAzLTExLTI1IDEyOjQ0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIG1vdmUgZGlyIG11bmdpbmcgaW4gbnNiLWZ1bmN0aW9ucwoKMjAwMy0xMS0yNCAwOTo1NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIHZlcnNpb24gc3RhbXAgdGhlIC5zcGVjIGZpbGUKCjIwMDMtMTEtMjQgMDk6NTMgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIHZlcnNpb24gbnVtYmVyIGNoYW5nZQoKMjAwMy0xMS0yNCAwOTozOCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgYWRkIGEgZ3JlZWNlIG1pcnJvcgoKMjAwMy0xMS0yNCAwNjozNyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBIYW5kbGUgaW52YWxpZCAoNjQtYml0KSB2YWx1ZXMgZm9yIGVuZ2luZSBib290cyAmIHRpbWUKICAgUGF0Y2ggIzgyNzA0NCBieSBCb2IgUm93bGFuZHMsIGZpeGluZyBidWcgIzgwOTI1MAoKMjAwMy0xMS0yNCAwNjoyMyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBDb3JyZWN0IHVzYWdlIGluZm9ybWF0aW9uIGZvciAtQ3ggb3B0aW9ucwogICBQYXRjaCAjODE4NzY2IGJ5IEJvYiBSb3dsYW5kcywgZml4aW5nIGJ1ZyAjODE4NjM0CgoyMDAzLTExLTI0IDA0OjAwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jOgoKICAgSGFuZGxlIEdFVE5FWFQgcmVxdWVzdHMgb24gdGhlIGhyRGV2aWNlVGFibGUgd2l0aCBhICJ0b28gbGFyZ2UiIGluZGV4LgogICBQYXRjaCAjODExNzE3IGJ5IEJvYiBSb3dsYW5kcywgZml4aW5nIGJ1ZyAjODA3MzE1CgoyMDAzLTExLTIxIDA5OjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIENvcnJlY3QgaGFuZGxpbmcgb2YgVUNEIGRpc2tpbyB2YWx1ZXMgb24gNjQtYml0IFNvbGFyaXMuCiAgIFBhdGNoICM4MDkyNTUgYnkgQm9iIFJvd2xhbmRzLCB0byBmaXggYnVnICM4MDg5NzUKCjIwMDMtMTEtMjEgMDk6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIEZpeCBTb2xhcmlzIGltcGxlbWVudGF0aW9uIG9mIGlmSW5OVWNhc3RQa3RzICYgaWZPdXROVWNhc3RQa3RzCiAgIFBhdGNoICM4MDg4MDcgYnkgQm9iIFJvd2xhbmRzLCB0byBmaXggYnVncyAjODA4Mzk5ICYgIzgwODQxNwoKMjAwMy0xMS0yMSAwODoxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgSW1wbGVtZW50IGlmU3BlY2lmaWMgb2JqZWN0IG9uIFNvbGFyaXMuCiAgIFBhdGNoICM4MDg3NDYgYnkgQm9iIFJvd2xhbmRzLCBmaXhpbmcgYnVnICM4MDg0MzAKCjIwMDMtMTEtMjEgMDc6MjMgIGR0czEyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBFbnN1cmUgMzItYml0IHRpbWV0aWNrcyB2YWx1ZSByZXR1cm5lZCBvbiBTb2xhcmlzIGtpdC4KICAgUGF0Y2ggIzgwODA3NCBieSBCb2IgUm93bGFuZHMsIHRvIGZpeCBidWcgIzgwNzc5NgoKMjAwMy0xMS0yMSAwNzoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBSZXR1cm4gYW4gZXJyb3Igb24gZmFpbGVkIG92ZXJycmlkZSB3cml0ZS4KICAgUGF0Y2ggIzgwODA1NCBieSBCb2IgUm93bGFuZHMsIGZpeGluZyBidWcgIzgwNTI1NAoKMjAwMy0xMS0yMSAwNjozMCAgZHRzMTIKCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmLCBzbm1wZC5jb25mLjUuZGVmLAogICAgIHNubXB1c20uMS5kZWY6CgogICBNaW5vciBjbGFyaWZpY2F0aW9ucyB0byBhIGZldyBtYW4gcGFnZXMuCiAgIFBhdGNoICM4MDc5MzcgZnJvbSBCb2IgUm93bGFuZHMKCjIwMDMtMTEtMjEgMDY6MjUgIGR0czEyCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBIYW5kbGUgc3RvcmFnZSB1bml0cyA8MTAyNCBieXRlcwogICAoUGF0Y2ggIzgwMTM0MSBieSBCb2IgUm93bGFuZHMsIGZpeGluZyBidWcgIzc1NzQ0OCkKCjIwMDMtMTEtMjEgMDU6MjEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFdoZW4gd2UgcmVhY2ggdGhlIGVuZCBvZiB0aGUgbGFzdCB0YWJsZSwgbWFrZSBzdXJlIHRoYXQgdGhlIGhpZ2hlciBsZXZlbAogICBoYW5kbGVycyB3aWxsIHJlYWxpc2UgdGhpcywgYW5kIG1vdmUgb24gdG8gdGhlIG5leHQgcmVnaXN0ZXJlZCBtb2R1bGUuCiAgIEFsc28gY2F0Y2ggbWlzc2luZyBjb2x1bW5zIHdoZW4gcHJvY2Vzc2luZyBHRVRORVhUIHJlcXVlc3RzLgoKMjAwMy0xMS0yMSAwNDoxOSAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgU3VwcG9ydCBhY2tub3dsZWRnZWQgbm90aWZpY2F0aW9ucyAoSW5mb3JtIGFuZCBBZ2VudFggTm90aWZ5KSBhcwogICB3ZWxsIGFzIHVuYWNrbm93bGVkZ2VkIG9uZXMuICAgRmlyc3QgcmVwb3J0ZWQgYnkgZGF2aWRAZ3JhbmNhbmFyaWEKICAgUHJvYmFibHkgZG9lc24ndCByZXNlbmQgaWYgbm8gcmVzcG9uc2UgaXMgcmVjZWl2ZWQuCgoyMDAzLTExLTIwIDA3OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jOgoKICAgTW92ZSBzdWZmaXggcHJvY2Vzc2luZyB3aXRoaW4gdGhlIHJlcXVlc3QgbG9vcCwgc2luY2UgdjUuMSBpdGVyYXRvcgogICBoYW5kbGVycyBtYXkgcmVjZWl2ZSBtdWx0aXBsZSByZXF1ZXN0IHZhcmJpbmRzLiAgRml4IHByb3ZpZGVkIGJ5IEJhcmIgUm9lc2NoCgoyMDAzLTExLTIwIDA2OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUHJvdGVjdCAndW5yZWdpc3Rlcl9taWJzX2J5X3Nlc3Npb24nIGZyb20gYmVpbmcgY2FsbGVkIHdpdGggYSBOVUxMCiAgIHNlc3Npb24gcG9pbnRlci4gIChVc2VkIHdoZW4gdW5yZWdpc3RlcmluZyAiaW50ZXJuYWwiIE1JQiBtb2R1bGVzKQoKMjAwMy0xMS0yMCAwMTozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmM6CgogICBCZSBjb25zaXN0ZW50IGluIHVzZSBvZiByZXR1cm4gdmFyaWFibGUgbmFtZSBmb3IgSFAtVVggMTEKICAgKEZpeGVkIGJ1ZyAjODQ1NDYwKQoKMjAwMy0xMS0xOSAxNjoyMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBuZXcgY29uZmlndXJlLmluCgoyMDAzLTExLTE5IDE2OjIxICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgZG9uJ3QgdXNlIG5vbi1wb3J0YWJsZSAuYz0ubyB0eXBlIHN1YnN0aXR1dGlvbnMgaW4gbWFrZWZpbGU7IHRodXMgcHV0IG9iai9sb2JqCiAgIGdlbmVyYXRpb24gYmFjayBpbiBjb25maWd1cmUKCjIwMDMtMTEtMTkgMDc6NDAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIEVuYWJsZSByZXRyaWVzIG9uIEdldE5leHQgbm9TdWNoSW5zdGFuY2UgZXhjZXB0aW9ucy4gRml4ZXMgYnVnICM4NDM4NDIKCjIwMDMtMTEtMTkgMDc6MzIgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYwo6CgogICBGaXggd2F0Y2hlZCB0aW1lc3RhbXAgcmVnaXN0cmF0aW9uLiAnbWFya2VyX3QnIGlzIGFscmVhZHkgYSBwb2ludGVyLAogICBzbyBkb2Vzbid0IG5lZWQgZnVydGhlciBkZXJlZmVyZW5jaW5nIQoKMjAwMy0xMS0xNyAwOToxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmM6CgogICBGaXggY3JlYXRpb24gb2YgbmV3IGxvZ2dpbmcgZW50cmllcy4KCjIwMDMtMTEtMTcgMDk6MTIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBJZiBhIHJvdyBpcyBjcmVhdGVkIHZpYSBhIFNFVCByZXF1ZXN0LCB0aGVuIGl0IG5lZWRzIHRvIGJlIGluc2VydGVkIGludG8KICAgdGhlIGl0ZXJhdGlvbiBkYXRhIHN0cnVjdHVyZXMsIHNvIHRoYXQgaXQncyBhdmFpbGFibGUgdG8gb3RoZXIgY29sdW1ucyAmIHBhc3Nlcy4KCjIwMDMtMTEtMTcgMDk6MDYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBSZWxlYXNlIHRoZSBkYXRhIHN0cnVjdHVyZSBvbmNlIGl0J3Mgbm8gbG9uZ2VyIG5lZWRlZC4KCjIwMDMtMTEtMTcgMDI6NTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkvdGNwLmMsIHVjZC1zbm1wL3Ztc3RhdC5jOgoKICAgQXZvaWQgdXNpbmcgdGhlIHZhcmlhYmxlIG5hbWUgJ2h6JyAod2hpY2ggZ2V0cyBjb3JydXB0ZWQgb24gQUlYIGFuZCBIUFVYCiAgIGJ5IHN5c3RlbSByZWRlZmluaXRpb25zKS4gIFNlZSBidWcgIzg0MjQ3NSAmICM4NDI0ODMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuOSAtPiBWNS4xCgoyMDAzLTExLTEzIDE4OjQ2ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgcmV2ZXJzZSA1LnggYW5kIDQueCBsaXN0aW5nIHNpbmNlLCB1bSwgdGhpcyBpcyA1LnggKGFnYWluKQogICAKMjAwMy0xMS0xMyAxODo0NCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHJldmVyc2UgNS54IGFuZCA0LnggbGlzdGluZyBzaW5jZSwgdW0sIHRoaXMgaXMgNS54CiAgIAoyMDAzLTExLTEzIDE4OjQyICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMsCiAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jb250YWluZXIuMywKICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICBuZXRzbm1wX2RlcHJlY2F0ZWQuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICBuZXRzbm1wX21mZF9wZHVfY29udGV4dF9zLjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMwosIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgdXBkYXRlIGZvciA1LjEKICAgCjIwMDMtMTEtMTMgMTg6MjEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMQogICAKMjAwMy0xMS0xMyAxODoxNCAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICBTTk1QL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBwYXRjaCAjODM4MTEyIHRvIGZpeCB3aW5kb3dzIHBlcmwgYnVpbGRpbmcKICAgCjIwMDMtMTEtMTMgMTc6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCByZWdleHAgZm9yIGR1cGxpY2F0ZSBpbmRleCBleGNsdXNpb24gdG8gb25seSBtYXRjaCB3aG9sZSB3b3JkcwogICAKMjAwMy0xMS0xMyAxNTowMyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBzdGFzaF9jYWNoZQogICAKMjAwMy0xMS0xMyAxNDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBuc0NhY2hlLmMsIG5zRGVidWcuYywKICAgbnNMb2dnaW5nLmM6CgogICAtIHByb3Blcmx5IGNoZWNrIGZvciB0aGUgLT5wcm9jZXNzZWQgZmxhZy4KICAgICAtIChmaXhlcyBhIGJ1ZyBwb2ludGVkIG91dCBieSBCcnVjZSB3aGVyZSBhIGdldG5leHQgcmV0dXJuZWQgbm9TdWNoSW5zdGFuY2UpCiAgIAoyMDAzLTExLTEzIDEyOjExICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZG9uJ3QgY2FsbCBoYW5kbGVycyBmb3IgZXJyb3IgcmVjb3ZlcnkgaWYgdGhleSBoYWRuJ3QgYmVlbiBjYWxsZWQgZm9yIGF0IGxlYXN0CiAgIHJlc2VydmUxIChlLmcuIHNldCB3L2ludmFsaWQgaW5kZXhlcykKICAgCjIwMDMtMTEtMTMgMTE6MzQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGZpeCB2b2lkIGRlZmluaXRpb24gZm9yIG5ldHNubXBfYXNzZXJ0IHdoZW4gZGVidWdnaW5nIGRpc2FibGVkLCBub3RlZCBvbiBjb2RlcnMKICAgCjIwMDMtMTEtMTMgMTE6MzIgIHJzdG9yeQoKICAgKiBSRUFETUUud2luMzI6CgogICBhcHBseSBwYXRjaCBbIDg0MTQ2MyBdIDUuMXJjMSBSRUFETUUud2luMzIgY2hhbmdlcwogICAKMjAwMy0xMS0xMiAwOToyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBQcm92aWRlZSBtaXNzaW5nIGRlY2xhcmF0aW9uIGZvciBSb3V0ZV9TY2FuX1JlbG9hZAogICBIUC1VWCAxMSBvbmx5LiAgTGF0ZXN0IGluIHRoZSBzYWdhIG9mIGJ1ZyAjIDg0MDYxNQogICAKMjAwMy0xMS0xMiAwNDo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpY21wLmMsIGlwLmMsIHRjcFRhYmxlLmMKOgoKICAgRml4IG1vcmUgSFAtVVggMTEgc3BlY2lmaWMgYm9ndXMgY29kZS4KICAgVHJhY2tpbmcgQnVnICM4NDA2MTUKICAgCjIwMDMtMTEtMTIgMDI6MzggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgVXNlIGNvcnJlY3QgdmFyaWFibGUgZm9yIGRldGVjdGluZyB3aGljaCBvYmplY3QgaXMgYmVpbmcgcHJvY2Vzc2VkLgogICAoSFBVWC0xMSBvbmx5IC0gZml4ZXMgYnVnICM4NDA2MTUpCiAgIAoyMDAzLTExLTEwIDE0OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDozOSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDozOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MzggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAzLTExLTEwIDA4OjQ3ICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGRvbid0IGRvdWJsZSBjcmVhdGUgdGVtcCBkaXJlY3RvcnkKICAgCjIwMDMtMTEtMTAgMDg6NDYgIHJzdG9yeQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIGFsd2F5cyB1c2UgaW5saW5lLCBub3cgdGhhdCBpdCB3b3JrcyAobmVlZGVkIGV4dGVybikKICAgCjIwMDMtMTEtMDcgMTY6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpLAogICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtZnJvbS1vaWQubTJpLAogICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1pbnRlcmZhY2UubTJpLCBtZmQtaW50ZXJmYWNlLm0yYwosIG1mZC10b3AubTJjLCBub2RlLXNldC5tMmksIHBhcmVudC1zZXQubTJpCjoKCiAgIHVzZSBERUJVR1RSQUNFIGluc3RlYWQgb2YgaGFyZGNvZGVkIF9fRlVOQ1RJT05fXwogICAKMjAwMy0xMS0wNyAxMDozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBtdWNoIGJldHRlciBlcnJvciBtZXNzYWdlIHdoZW4gYSBNSUIgbm9kZSBjYW4ndCBiZSBmb3VuZCBpbiB0aGUKICAgY29tbWFuZCBsaW5lIGFyZ3VtZW50cwogICAKMjAwMy0xMS0wNyAxMDoyNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIC0gZml4IHNlZCBzY3JpcHQgcmVnZXhwIGZvciBvZGQgdmVyc2lvbnMgKHByZTJiLCBlZykuCiAgIC0gbWFrZSAtaCBhY3R1YWxseSBwcmludCBoZWxwLgogICAKMjAwMy0xMS0wNyAwOTowMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGJyYWNlcyBhcm91bmQgdmFyIG5hbWUKICAgCjIwMDMtMTEtMDYgMjA6NDYgIHJzdG9yeQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHVzZSBpbmxpbmUgdG8gX19pbmxpbmUgZnJvbSBtYWluIG5ldC1zbm1wLWNvbmZpZyBmaWxlOyBhZGQgZXh0ZXJuIHRvIGJhc2ljCiAgIE5FVFNOTVBfSU5MSU5FIGRlZiwgcGVyIE1TIHRlY2ggbm90ZSAxMjM3NjgKICAgCjIwMDMtMTEtMDYgMjA6NDIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaCwgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGFwcGx5IHBhdGNoIFsgODI4MzYyIF0gRmlyc3QgcGFzcyBhdCBNaW5HVzMyCiAgIAoyMDAzLTExLTA2IDIwOjI5ICByc3RvcnkKCiAgICogc25tcGxpYi86IHN5c3RlbS5jIChWNS0wLXBhdGNoZXMuMiksIHN5c3RlbS5jOgoKICAgYXBwbHkgcGF0Y2ggWyA4MzYxNjIgXSA1LjFwcmUzIHdpbjMyIG1rZGlyaGllcigpCiAgIAoyMDAzLTExLTA2IDIwOjAwICByc3RvcnkKCiAgICogd2luMzIvOiBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AKLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgc25tcGQvc25tcGQuZHNwLAogICBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgc25tcGRmL3NubXBkZi5kc3AsCiAgIHNubXBkc2RrL3NubXBkLmRzcCwgc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AKLCBzbm1wc2V0L3NubXBzZXQuZHNwLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgc25tcHRlc3Qvc25tcHRlc3QuZHNwLAogICBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsCiAgIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCBzbm1wdXNtL3NubXB1c20uZHNwLAogICBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIGFwcGx5IHBhdGNoIFsgODM3NjMzIF0gNS4xcHJlMyB3aW4zMiBsaWIgcmVuYW1lCiAgIAoyMDAzLTExLTA2IDE2OjA1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIHJlc3RvcmUgYWNjaWRlbnRhbGx5IGRlbGV0ZWQgXG4gaW4gdHJhY2UgbWFjcm8KICAgCjIwMDMtMTEtMDUgMTk6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBjb21tZW50IGZvciBwb3NzaWJsZSBmdXR1cmUgb3B0aW1pemF0aW9uCiAgIAoyMDAzLTExLTA1IDE5OjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgYXBwbHkgc3Bpcml0IG9mIHBhdGNoIDgzNjcyMTogdXNlIG5ldyB0bXAgZmlsZSBwYXR0ZXJuIG1hY3JvOyB1c2UgX29wZW4gb24KICAgd2luZG93czsgYWRkIGVyciBsb2cgJiBkZWJ1ZyBtc2c7IGluY2x1ZGUgc3lzL3N0YXQuaCBpZmYgZXhpc3RzCiAgIAoyMDAzLTExLTA1IDE5OjA1ICByc3RvcnkKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBhcHBseSBzcGlyaXQgb2YgcGF0Y2ggODM2NzIxOiBkZWZpbmUgSEFWRV9TWVNURU07IGFkZCBuZXcgdG1wIGZpbGUgcGF0dGVybiBtYWNybwogICAKMjAwMy0xMS0wNSAxOTowMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBhcHBseSBzcGlyaXQgb2YgcGF0Y2ggODM2NzIxIGZvciBydW5fc2hlbGxfY29tbWFuZDogdGVzdCBmb3IgYmFkIHJldHVybiBjb2RlcwogICBmcm9tIGZ1bmN0aW9uczsgZG9uJ3QgdG91Y2ggb3V0X2xlbiBpZiBvdXRwdXQgbm90IHNldCBvciBvdXRfbGVuIGlzIG51bGwKICAgCjIwMDMtMTEtMDUgMTg6NTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcmVnZW5lcmF0ZSBmcm9tIGFjbG9jYWwuaCwgd2hpY2ggcmV2ZWFscyB0aGF0IHdlIGNhbid0IGRvIGFuIGlmZGVmIHRlc3QKICAgdG8gcHJldmVudCByZWRlZmluaW5nIFBBQ0tBR0VfKiB1bmxlc3MgaXQgaXMgbWFudWFsbHkgcmUtYWRkZWQgZWFjaCB0aW1lCiAgIHRoaXMgZmlsZSBpcyByZWdlbmVyYXRlZCBmcm9tIGFjY29uZmlnLmguIEJsZWNoLgogICAKMjAwMy0xMS0wNSAxODo1MCAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBhZGQgbWFjcm8gZm9yIHRlbXAgZmlsZSBuYW1lIChjb25maWd1cmUgb3B0aW9uIHRiZCkKICAgCjIwMDMtMTEtMDUgMTg6MTQgIHJzdG9yeQoKICAgKiBSRUFETUUud2luMzI6CgogICBhcHBseSBwYXRjaCBbIDgzMzIxNiBdIDUuMS5wcmUzIFdpbjMyIGNvbXBpbGUgcGF0Y2gKICAgCjIwMDMtMTEtMDUgMTg6MTMgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggbmV3IGNvbmZpZy5pbgogICAKMjAwMy0xMS0wNSAxODoxMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGluY2x1ZGUgbWliZ3JvdXAgdXRpbGl0aWVzIGZvciBtaW5pLWFnZW50IChydW5fc2hlbGxfY29tbWFuZCBmb3Igc25tcHRyYXBkKQogICAKMjAwMy0xMS0wNSAwOTozNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LWNvcHkubTJpLAogICBnZW5lcmljLWN0eC1nZXQubTJpLCBnZW5lcmljLWN0eC1zZXQubTJpLAogICBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmkKLCBnZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaSwgbWZkLWludGVyZmFjZS5tMmMKOgoKICAgYWx3YXlzIGNvbnZlcnQgZ2VuZXJhdGVkIGFycmF5IGxlbiB0byBhcnJheSBlbGVtZW50IGNvdW50IChub3QgYnl0ZXMpCiAgIAoyMDAzLTExLTA1IDAyOjUyICBkdHMxMgoKICAgKiBhcHBzLzogc25tcHRhYmxlLmMgKFY1LTAtcGF0Y2hlcy4xKSwgc25tcHRhYmxlLmM6CgogICBEb24ndCB0cnkgc2VhcmNoaW5nIGZvciBjb2x1bW4gb2JqZWN0cyBpZiB0aGVyZSBpc24ndCBhbnl0aGluZyB0byBzZWFyY2guCiAgIFJlcG9ydCBwcm9ibGVtcyB1c2luZyB0aGUgb2JqZWN0IG5hbWUgb3JpZ2luYWxseSBzcGVjaWZpZWQsIHJhdGhlciB0aGFuCiAgIGEgdGVtcG9yYXJ5IGludGVybmFsIGJ1ZmZlci4KICAgCjIwMDMtMTEtMDQgMTU6MDYgIHJzdG9yeQoKICAgKiB3aW4zMi86IGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBJTkxJTkUgY2hhbmdlcyAtIGRvbid0IHVzZSBpbmxpbmUgZm9yIHRoZSBETEwgdmVyc2lvbiwgYXMgaXQncyByZXBvcnRlZCB0bwogICBjYXVzZSBlcnJvcnMKICAgCjIwMDMtMTEtMDQgMTQ6NDUgIHJzdG9yeQoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzJzZGsuZHN3LAogICBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgYXBwbHkgcGF0Y2ggWyA4MzMyMTYgXSA1LjEucHJlMyBXaW4zMiBjb21waWxlIHBhdGNoCiAgIAoyMDAzLTExLTA0IDA4OjU4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGRvbid0IGRlZmluZSBjb25maWd1cmUgUEFDS0FHRV8qIG1hY3JvcyBpZiBhbHJlYWR5IGRlZmluZXMuCiAgIAoyMDAzLTExLTA0IDA4OjA0ICBkdHMxMgoKICAgKiBGQVE6CgogICBBIG5ldyBlbnRyeSBkaXNjdXNzaW5nIHRhYmxlcyB3aXRoID4yNTYgY29sdW1ucy4KICAgCjIwMDMtMTEtMDQgMDc6MzMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtc2V0Lm0yaToKCiAgIGFsd2F5cyBnZW5lcmF0ZSBjb2RlIHdoZW4gZGF0YSBjb250ZXh0IGlzIGdlbmVyYXRlZAogICAKMjAwMy0xMS0wNCAwNzozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtSW5ldEFkZHJlc3Mtc2V0Lm0yaToKCiAgIGNsYXJpZnkgY29tbWVudHMKICAgCjIwMDMtMTEtMDQgMDc6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LUluZXRBZGRyZXNzVHlwZS1zZXQubTJpOgoKICAgY2xhcmlmeSBjb21tZW50czsgdXNlIGdlbmVyaWMtc2V0IGluc3RlYWQgb2YgZ2V0CiAgIAoyMDAzLTExLTA0IDA3OjIyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgY2xhcmlmeSBjb21tZW50cwogICAKMjAwMy0xMS0wNCAwNzoxOSAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIHN5bmMgY29udHJpYnV0b3JzIHcvNS4wLngKICAgCjIwMDMtMTEtMDQgMDE6MjggIGR0czEyCgogICAqIG1hbi9zbm1wZC44LmRlZjoKCiAgIERvY3VtZW50IHRoZSBlZmZlY3Qgb2YgLUMgb24gcGVyc2lzdGVudCBjb25maWcgZmlsZXMuCiAgIAoyMDAzLTExLTAzIDE0OjI5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIGZpeCBnZW5lcmF0ZWQgY29kZSBmb3IgdW5kb19zZXR1cAogICAKMjAwMy0xMS0wMyAxMjo1NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgY2xhcmlmeSBjb21tZW50czsgcmVtb3ZlIGJvZ3VzIGFzc2VydHMKICAgCjIwMDMtMTEtMDMgMTA6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtY2hhci5tMmk6CgogICBtYWtlIElTX1NFVCBtYWNyb3MgdW5pcXVlIHBlciBub2RlCiAgIAoyMDAzLTExLTAzIDEwOjMwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmk6CgogICBmaXggdmFyIG5hbWUgdHlwbwogICAKMjAwMy0xMS0wMyAxMDoyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaToKCiAgIG11c3QgdXNlIGFkZHIgb2YgbG9jYWwgdmFyIHRvIGdldCBwdHIKICAgCjIwMDMtMTEtMDMgMTA6MjQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXZhcmJpbmQtc2V0dXAubTJpOgoKICAgbXVzdCB1c2UgYWRkciBvZiBsb2NhbCB2YXIgdG8gZ2V0IHB0cgogICAKMjAwMy0xMS0wMyAxMDoyMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgc2V0IHVwIGRlZmF1bHRzIGZvciBtZmQgdGFibGVzCiAgIAoyMDAzLTExLTAzIDA3OjUwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICByZWNvZ25pemUgU05NUF9NU0dfU0VUIGlzIG5vdCBhIHZhbGlkIEdFVCBtb2RlOyBjb21tZW50IHR3ZWFrcwogICAKMjAwMy0xMS0wMyAwNzoyNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICBSZWNvZ25pc2UgU05NUF9NU0dfU0VUIGFzIGEgdmFsaWQgU0VUIG1vZGUKICAgKHNvIHRoYXQgdGhlIHZhcmJpbmQgY2FjaGluZyBkb2Vzbid0IGxvc2UgdGhlIGFzc2lnbmVkIHZhbHVlcyEpCiAgIAoyMDAzLTExLTAyIDA5OjUxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oOgoKICAgcmVzdG9yZSBhY2NpZGVudGFseSBkZWxldGVkIGhwdXggZGVmaW5lOyBhZGQgY29tbWVudAogICAKMjAwMy0xMS0wMiAwNDo1NSAgbmJhCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgRml4IGEgYnVuY2ggb2YgY29tcGlsZXIgd2FybmluZ3M6IGNvbnN0LW5lc3MsIGNhc3RzLCBtaXNzaW5nIHByb3RveXBlcywKICAgdW51c2VkIHZhcmlhYmxlcywgY3ZzIGlnbm9yZSBpZ25vcmFibGUgZmlsZXMKICAgCjIwMDMtMTEtMDIgMDQ6NTAgIG5iYQoKICAgKiAuY3ZzaWdub3JlLCBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhcHBzLy5jdnNpZ25vcmUsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBGaXggYSBidW5jaCBvZiBjb21waWxlciB3YXJuaW5nczogY29uc3QtbmVzcywgY2FzdHMsIG1pc3NpbmcgcHJvdG95cGVzLAogICB1bnVzZWQgdmFyaWFibGVzLCBjdnMgaWdub3JlIGlnbm9yYWJsZSBmaWxlcwogICAKMjAwMy0xMS0wMiAwNDo0NCAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgRml4IGEgYmFkIHN5bnRheCB3aGVuIHRlc3RpbmcgZm9yIHBlcmwgbW9kdWxlcwogICAKMjAwMy0xMS0wMiAwNDo0MiAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBtYW4vc25tcG5ldHN0YXQuMToKCiAgIEFub3RoZXIgbGVmdCBvdmVyIC1wIG9wdGlvbgogICAKMjAwMy0xMS0wMSAxNjowNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBhbHdheXMgcXVvdGUgYm90aCBzaWRlcyBvZiBwZXJsIG5lL2VxIHRlc3RzOyBhbGxvdyBvdmVycmlkZSBvZiB2YXJiaW5kIHZhcmlhYmxlCiAgIG5hbWU7IGFkZCBzdWJpZCB0byBub2RlIHN1bW1hcnkKICAgCjIwMDMtMTEtMDEgMTY6MDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYzoKCiAgIG1vdmUgZXhhbXBsZSBhbmQgdHJhbnNpZW50IGRlZmF1bHRzIHRvIHRhYmxlIHNldHVwCiAgIAoyMDAzLTExLTAxIDE2OjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICBjaGFuZ2UgZGVmYXVsdCByZWcgY3R4IGZyb20gdm9pZCogdG8gbmV0c25tcF9kYXRhX2xpc3QgKjsgbW92ZSBleGFtcGxlCiAgIGFuZCB0cmFuc2llbnQgZGVmYXVsdHMgaGVyZSAoZnJvbSB0b3ApCiAgIAoyMDAzLTExLTAxIDE1OjU4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaToKCiAgIGFkZCAnVE9ETycgY29tbWVudDsgZG9uJ3QgZ2VuZXJhdGUgY29kZSBpZiBleGFtcGxlIG5vdCBzZXQgJiBub3QgZ2VuZXJhdGVkIGRhdGEKICAgY29udGV4dDsgZGVmYXVsdCB0byByZXR1cm5pbmcgbm8gZGF0YSBmb3Igbm9kZTsKICAgCjIwMDMtMTEtMDEgMTU6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKTsKICAgdXNlIHF1b3RlcyBvbiBib3RoIHNpZGVzIG9mIHBlcmwgZXEvbmUgdGVzdHM7IGZpeCByZWcgcHRyIGRjbAogICAKMjAwMy0xMS0wMSAxNTo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgYWRkIHVzZXJzIHRhcmdldCB0byBvbmx5IGJ1aWxkIHVzZXIgY29kZQogICAKMjAwMy0xMS0wMSAxNTo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHVzZSBxdW90ZXMgb24gYm90aCBzaWRlcyBvZiBwZXJsIGVxL25lIHRlc3RzOyBjaGVja19pbmRleHMgaXMgb25seSBmb3Igcm93CiAgIGNyZWF0aW9uOyBkYXRhIG5vdCBmb3VuZCBvbmx5IG9rIGZvciByb3cgY3JlYXRpb24sIG5vdCBzZXR0YWJsZTsgc2FuaXR5CiAgIGNoZWNrIGZvciBib2d1cyBpbmRleCBvaWQgc2l6ZSBiZWZvcmUgbWVtY3B5OyBzZXQgQVNOX1BSSVZfUkVUUlkgZm9yIG5vIGRhdGEsCiAgIHNvIHNwYXJzZSB0YWJsZXMgd29yawogICAKMjAwMy0xMS0wMSAxNTo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWludGVyZmFjZS5tMmkKOgoKICAgc2V0IG9pZCBzaXplIHRvIG1heCBiZWZvcmUgdHJ5aW5nIHRvIHBhcnNlIG9pZAogICAKMjAwMy0xMS0wMSAxNTo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cyk7CiAgIHJlbmFtZSByZWYgdG8gbG9vcF9yZWY7IG1vcmUgYXNzZXJ0czsgbW92ZSBUT0RPIG91dHNpZGUgb2YgY29uZGl0aW9uYWw7IG1vdmUKICAgaXRyX2N0ciBmcmVlIG91dHNpZGUgb2YgZXhhbXBsZSBjb25kaXRpb25hbAogICAKMjAwMy0xMS0wMSAxNTo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1kZWNsLm0yaToKCiAgIHR3ZWFrIGluZGVudGlvbgogICAKMjAwMy0xMS0wMSAxNTo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1zZXQubTJpOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cyk7CiAgIG1vdmUgVE9ETyBvdXRzaWRlIG9mIGNvbmRpdGlvbmFsOyBkb24ndCBpbmNsdWRlIGNvZGUgaWYgZXhhbXBsZXMgbm90IHNldAogICAKMjAwMy0xMS0wMSAxNTo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cyk7CiAgIHF1b3RlIGJvdGggc2lkZXMgb2YgcGVybCBlcS9uZSB0ZXN0czsgZG9jdW1lbnQgaW5jbHVkZSBpbiBjb21tZW50cwogICAKMjAwMy0xMS0wMSAxNTo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1jb3B5Lm0yaToKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpOwogICBtb3ZlIFRPRE8gb3V0c2lkZSBvZiBjb25kaXRpb25hbDsgdHdlYWsgY29uZGl0aW9uYWwKICAgCjIwMDMtMTEtMDEgMTU6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cyk7CiAgIG1vdmUgY29uZGl0aW9uYWwgaW5zaWRlIGluY2x1ZGUKICAgCjIwMDMtMTEtMDEgMTU6NDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtZGF0YS1nZXQubTJjLCBtZmQtcmVhZG1lLm0yYwosIHBhcmVudC1zZXQubTJpOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cyk7CiAgIHF1b3RlIGJvdGggc2lkZXMgb2YgcGVybCBlcS9uZSB0ZXN0cwogICAKMjAwMy0xMS0wMSAxNTozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWdldC5tMmk6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKQogICAKMjAwMy0xMS0wMSAxNTozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IHN5bnRheC1DT1VOVEVSNjQtZ2V0Lm0yaSwKICAgc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmksIHN5bnRheC1JbmV0QWRkcmVzcy1nZXQubTJpLAogICBzeW50YXgtSW5ldEFkZHJlc3NUeXBlLWdldC5tMmksIHN5bnRheC1UZXN0QW5kSW5jci1nZXQubTJpCjoKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpOwogICBkZWZhdWx0IHRvIHJldHVybmluZyBubyBkYXRhIGZvciBub2RlcwogICAKMjAwMy0xMS0wMSAxNToyMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRldGFpbHMtZW51bXMubTJpLAogICBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksIGdlbmVyaWMtZ2V0LWNoYXIubTJpLAogICBnZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaSwgZ2VuZXJpYy12YWx1ZS1tYXAubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmksIG1mZC1kYXRhLXNldC5tMmMKLCBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaToKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpCiAgIAoyMDAzLTExLTAxIDE1OjE2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1pbmRleGVzLWZyb20tb2lkLm0yaSwKICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksCiAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy12YXJiaW5kLXNldHVwLm0yaToKCiAgIG5ldyBjb2RlIGZvciBpbmRleGVzIGFuZCBvaWQgY29udmVyc2lvbnMKICAgCjIwMDMtMTEtMDEgMTA6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jOgoKICAgdXNlIGVuZG9mbWlidmlldyBpbnN0ZWFkIG9mIG5vX3ZhcnMKICAgCjIwMDMtMTAtMzAgMTc6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgo6CgogICBhZGQgY29tbWVudHMKICAgCjIwMDMtMTAtMzAgMTc6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB0ZXN0IGZ1bmMgcGFyYW1ldGVyLCBub3QgdmFyaWFibGUgd2UncmUgYWJvdXQgdG8gb3ZlcndyaXRlCiAgIAoyMDAzLTEwLTMwIDE3OjM2ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBkZWNsYXJlICBjYWxsYmFja19tYXN0ZXJfbnVtIGV2ZW4gaWYgU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOIGlzIG5vdAogICBkZWZpbmVkIChzbyBJIGRvbid0IG5lZWQgdG8gYWRkIG1vcmUgaWZkZWYncyBpbiBvdGhlciBjb2RlKQogICAKMjAwMy0xMC0zMCAxNzozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGxvZyB3YXJuaW5nIGFuZCBkb24ndCBvcGVuIGNhbGxiYWNrIHRyYW5zcG9ydCBpZiBTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4KICAgaXMgbm90IGRlZmluZWQKICAgCjIwMDMtMTAtMzAgMTc6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGxvZyB3YXJuaW5nIGFuZCBkb24ndCBvcGVuIGNhbGxiYWNrIHRyYW5zcG9ydCBpZiBTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4KICAgaXMgbm90IGRlZmluZWQ7IGZpeCB0ZXN0IGZvciBhZ2VudHhfb3Blbl9zZXNzaW9uCiAgIAoyMDAzLTEwLTMwIDE3OjI5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGRvbid0IGNvbXBpbGUgY29kZSBpZiBTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4gbm90IGRlZmluZWQKICAgCjIwMDMtMTAtMzAgMTY6NTEgIHJzdG9yeQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIG1lcmdlIHRyYW5zcG9ydCBjb21tZW50cyBmcm9tIG5vbi13aW4gbmV0LXNubXAtY29uZmlnLmg7IHVuZGVmIGNhbGxiYWNrCiAgIHRyYW5zcG9ydCBpbnN0ZWFkIG9mIGRlZiBvZiAwLCBzbyBpdCBhY3R1YWxseSB0dXJucyBvZmYgY29kZTsgdW5kZWYgaW5saW5lCiAgIG1hY3JvcyBiZWZvcmUgcmVkZWZpbmluZyB0aGVtCiAgIAoyMDAzLTEwLTMwIDE2OjQ5ICByc3RvcnkKCiAgICogd2luMzIvY29uZmlnLmg6CgogICByZXBsYWNlIGNvbnRlbnRzIHcvaW5jbHVkZSBvZiBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBzbyBvbmx5IG9uZSBoZWFkZXIKICAgbmVlZHMgdG8gYmUgbWFpbnRhaW5lZC4gRXZlcnlvbmUgc2hvdWxkIGJlIHVzaW5nIHRoZSBuZXcgb25lIGFueXdheSwgcmlnaHQ/CiAgIAoyMDAzLTEwLTMwIDAxOjMxICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIERvbid0IGNvbmZpZ3VyZSB0aGUgSG9zdC1SZXNvdXJjZXMgc3VwcG9ydCBieSBkZWZhdWx0LgogICBJdCdzIGEgZ29vZCBpZGVhLCBidXQgd2UncmUgdG9vIGNsb3NlIHRvIDUuMSBmb3IgdGhpcyB0byBiZSBzYWZlLgogICAKMjAwMy0xMC0yOSAxMDo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgaW5saW5lIC0+IE5FVFNOTVBfSU5MSU5FCiAgIAoyMDAzLTEwLTI5IDAzOjEwICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wY21kLjEuZGVmLCBzbm1wZC44LmRlZiwgc25tcHRyYXBkLjguZGVmCjoKCiAgIERvY3VtZW50IG5ldyAtTHggbG9nZ2luZyBvcHRpb24gYmxvY2ssIGFuZCBhc3NvcnRlZCBkZXByZWNhdGVkIG9wdGlvbnMuCiAgIAoyMDAzLTEwLTI5IDAyOjU5ICBkdHMxMgoKICAgKiBGQVE6CgogICBWYXJpb3VzIHVwZGF0ZXMgdG8gdGhlIEZBUS4KICAgICBIaWdobGlnaHRzIGluY2x1ZGUgYmV0dGVyIGV4cGxhbmF0aW9uIG9mIGFjY2VzcyBjb250cm9sIGFuZCB0aW1lb3V0CiAgIHByb2JsZW1zLCBkaXNjdXNzaW9uIG9mIHdoYXQgdHJhcHMgYXJlIHNlbnQgYW5kIHdoZXJlIHRvIChpbmNsdWRpbmcKICAgRGlzbWFuIEV2ZW50LU1JQiBzdXBwb3J0KSBhbmQgbW9yZSBvbiBtaWIyYyB1c2FnZSAoaW5jbHVkaW5nIHRoZQogICBkaWZmZXJlbmNlcyBiZXR3ZWVuIGNvbmZpZ3MsIGFuZCBwb2ludGVycyB0byBleGFtcGxlcykuCiAgICAgU2VwYXJhdGUgc2VjdGlvbnMgZm9yIGNvbXBpbGF0aW9uIGFuZCBjb2RpbmcgbmV3IG1vZHVsZXMKICAgKHJlc3RydWN0dXJpbmcgZXhpc3RpbmcgZW50cmllcykKICAgICBSZWZlciB0byBwcm9qZWN0IGFzICdOZXQtU05NUCcgcmF0aGVyIHRoYW4gJ1VDRCcgdGhyb3VnaG91dAogICAoZXhjZXB0IHdoZXJlIHNwZWNpZmljYWxseSB2NCBvciBVQ0QtU05NUC1NSUIgYXJlIG1lYW50KQogICAKMjAwMy0xMC0yOSAwMjozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXNPUlRhYmxlLmggKFY1LTAtcGF0Y2hlcy4xKSwKICAgc3lzT1JUYWJsZS5oIChWNC0yLXBhdGNoZXMuWzEsMl0pLCBzeXNPUlRhYmxlLmg6CgogICBGaXggbnVsbCBkZWZpbml0aW9uIG9mIFJFR0lTVEVSX1NZU09SX1RBQkxFICh3aGVuIG5vdCB1c2luZyB0aGlzIHRhYmxlKS4KICAgUmVwb3J0ZWQgYnkgTWFyayBIb3BraW5zCiAgIAoyMDAzLTEwLTI4IDE4OjE2ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTYgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTYgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTYgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE2ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE2ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNiAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNSAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNSAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE0ICByc3RvcnkKCiAgICogZG94eWdlbi5jb25mLCBtYW4vbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywKICAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLAogICBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zCiwgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfaGFuZGxlci4zLAogICBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgbWFuL25ldHNubXBfbGVhZi4zLCBtYW4vbmV0c25tcF9saWJyYXJ5LjMsCiAgIG1hbi9uZXRzbm1wX21mZF9wZHVfY29udGV4dF9zLjMsIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMwosIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMwosIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLAogICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsCiAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMwosIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zCiwgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zCiwgbWFuL25ldHNubXBfdG9kby4zLCBtYW4vbmV0c25tcF91dGlsLjMsCiAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICB1cGRhdGUgZm9yIDUuMS5wcmUzCiAgIAoyMDAzLTEwLTI4IDE4OjA1ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMy0xMC0yOCAxNzozMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgZml4IHZlcnNpb24gZm9yIDUuMSByZWxlYXNlCiAgIAoyMDAzLTEwLTI4IDEyOjQ3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJlZ2VuZXJhdGUgZnJvbSBuZXcgYWNjb25maWcuaAogICAKMjAwMy0xMC0yOCAxMjo0NSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBmaXggYnVnIFsgODMwODUyIF0gQnVpbGQgZG9lc24ndCB3b3JrIG9uIEhQLVVYIDExaQogICB1bmRlZiBtYWNybyBiZWZvcmUgcmVkZWZpbmluZyBpdAogICAKMjAwMy0xMC0yOCAxMDozMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogcm91dGVfd3JpdGUuYyAoVjUtMC1wYXRjaGVzLjEpLAogICByb3V0ZV93cml0ZS5jOgoKICAgYXBwbHkgcGF0Y2ggWyA4MTIwMTkgXSBzbm1wc2V0IG9uIGlwUm91dGVEZXN0LjEyNy4wLjAuMSBraWxsIGFnZW50IGR1bXBzIGNvcmUKICAgZml4ZXMgYnVnIFsgODA4OTU4IF0gT1NTdW4gc25tcHNldCBvbiBpcFJvdXRlRGVzdC4xMjcuMC4wLjEga2lsbCBhZ2VudCBkdW1wcyAuLi4KICAgCjIwMDMtMTAtMjggMTA6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzLzogZGVidWdfaGFuZGxlci5jIChWNS0wLXBhdGNoZXMuMSksIGRlYnVnX2hhbmRsZXIuYwo6CgogICBhcHBseSBwYXRjaCBbIDgzMTE2MSBdIG5ldHNubXBfZ2V0X2RlYnVnX2hlbHBlciBjcmFzaGVzIHNubXBkCiAgIGZpeGVzIGJ1ZyBbIDgyNjk2MyBdIG5ldHNubXBfZ2V0X2RlYnVnX2hlbHBlciBjcmFzaGVzIHNubXBkCiAgIAoyMDAzLTEwLTI4IDEwOjA1ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBhcHBseSBwYXRjaCBbIDgyOTYzMyBdIDUuMXByZTEgUGVybCB0cmFuc2xhdGVPYmogZml4CiAgIAoyMDAzLTEwLTI4IDA3OjMyICByc3RvcnkKCiAgICogZGlzdC86IG5ldC1zbm1wLnNwZWMgKFY1LTAtcGF0Y2hlcy4zKSwgbmV0LXNubXAuc3BlYzoKCiAgIGFwcGFyZW50bHkgbmVzdGVkICVpZidzIGFyZSBhIG5vLW5vCiAgIAoyMDAzLTEwLTI4IDA3OjIyICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgZml4IHBlcmwgY29uZGl0aW9uYWwgYnVpbGRzIGFmdGVyIHJlYWQgcnBtIGRvY3MKICAgCjIwMDMtMTAtMjYgMDA6MzQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb2lkX3N0YXNoLmM6CgogICBpbmxpbmUgLT4gTkVUU05NUF9JTkxJTkUgYXMgcG9pbnRlZCBvdXQgYnkgQWxleCBCdXJnZXIKICAgCjIwMDMtMTAtMjQgMTY6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1yZWFkbWUubTJpOgoKICAgcmVuYW1lIGxvb3BfY3R4IGxvb3BfY29udGV4dDsgcHJlZml4IGFsbCBsb29wIGZ1bmN0aW9ucyB3L2xvb3AKICAgCjIwMDMtMTAtMjQgMTY6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICBtb3ZlIGRlZmF1bHRzIHRvIGFuIGVhc2llciB0byBzcG90IHBsYWNlCiAgIAoyMDAzLTEwLTI0IDE2OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWludGVyZmFjZS5tMmksIG1mZC10b3AubTJjCjoKCiAgIHJlbmFtZSB0YWJsZV9pZHggdGFibGVfbWliX2luZGV4OyByZW5hbWUgbG9vcF9jdHggbG9vcF9jb250ZXh0OyBwcmVmaXggYWxsCiAgIGxvb3AgZnVuY3Rpb25zIHcvbG9vcDsgcmVtb3ZlIGluZGV4Mm9pZAogICAKMjAwMy0xMC0yNCAwNjowMiAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgSG9zdC1SZXNvdXJjZXMgc3VwcG9ydCB0byB0aGUgbGlzdCBvZiBkZWZhdWx0IE1JQiBtb2R1bGVzLgogICBXZSd2ZSB0YWxrZWQgYWJvdXQgdGhpcyBmb3IgeWVhcnMgLSBpdCdzIGFib3V0IHRpbWUgd2UgZGlkIHNvIQogICAKMjAwMy0xMC0yNCAwNTo0OSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIE5ldyBjaG9pY2VzIGZvciBzb21lIGNvbW1hbmQtbGluZSBvcHRpb25zLCB0byBpbXByb3ZlIGNvbnNpc3RlbmN5CiAgIGJldHdlZW4gYWdlbnQgYW5kIHRyYXAgaGFuZGxlciB1c2FnZS4gIFRoZSBwcmV2aW91cyBvcHRpb25zIHN0aWxsCiAgIHdvcmsgYnV0IGFyZSBub3cgbWFya2VkIGFzICJkZXByZWNhdGVkIi4gIFRoZXNlIHNob3VsZCBwcm9iYWJseQogICBiZSByZW1vdmVkIGNvbXBsZXRlbHkgaW4gYSBmdXR1cmUgcmVsZWFzZSAoZS5nLiA1LjIpLgogICAKMjAwMy0xMC0yMyAxNTo1OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIGZpeCBidWcgODI4NjcxOiBUaGUgbGliIGlzbid0IEMrKyBjb21wYXRpYmxlOyByZW1vdmUgJ3N0cnVjdCcgYmVmb3JlIHR5cGRlZgogICAKMjAwMy0xMC0yMyAxNTo1NCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX251bGwuYzoKCiAgIGZpeCBidWcgODI4NjcxOiBUaGUgbGliIGlzbid0IEMrKyBjb21wYXRpYmxlOyByZW5hbWUgc3RydWN0dXJlCiAgIHJlbW92ZSB1bnVzZWQgbm9hbGxvYyBmdW5jdGlvbgogICAKMjAwMy0xMC0yMyAxNTo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwKICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmaXggYnVnIDgyODY3MTogVGhlIGxpYiBpc24ndCBDKysgY29tcGF0aWJsZTsgcmVuYW1lIHN0cnVjdHVyZQogICAKMjAwMy0xMC0yMyAxNTozOSAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBwYXJzZS5jIChWNS0wLXBhdGNoZXMuMyksIHBhcnNlLmM6CgogICBmaXggYnVnIDc2Nzc1Mzogc25tcHdhbGsgY3Jhc2ggKGFkb3B0X29ycGhhbnMpCiAgIAoyMDAzLTEwLTIzIDEwOjM0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIG5ldyBjb25maWd1cmUuaW4KICAgCjIwMDMtMTAtMjMgMTA6MzIgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhcHBhcmVudGx5IGNvbmZpZ3VyZSB0cmFuc2xhdGVzICdfJyB0byAnLScgaW4gYXJndW1lbnRzL2VuYWJsZXMsIHNvIHVzZSAtCiAgIGNvbnNpc3RlbnRseTsgbW92ZSBjb21tb24gbW9kdWxlIGFyZyBtaXN0YWtlIGNoZWNrcyB3aXRoIG90aGVyIG1vZHVsZQogICBjaGVja3MsIGFuZCBhZGQgYSBmZXcgbW9yZTsgYWRkIGNoZWNrIGZvciBlbmFibGUgcGVybC1tb2R1bGVzIHRvbwogICAKMjAwMy0xMC0yMyAxMDoyNCAgcnN0b3J5CgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBtb3ZlIGNvbW1lbnQgZml4ZXMgdG8gYWNjb25maWcuaCBhbmQgcmVnZW5lcmF0ZSBuZXQtc25tcC1jb25maWcuaC5pbgogICAKMjAwMy0xMC0yMyAwODo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICByZW1vdmUgbm9uc3RkIE5ERUJVRyBpZmRlZiB0c3Q7IHVzZSBEQkdNU0dTVUJPSUQgaW5zdGVhZCBvZiBEQkdNU0RPSUQ7IGFkZAogICBkZWJ1ZyBmb3IgY29tcGFyaXNvbiByZXN1bHQKICAgCjIwMDMtMTAtMjMgMDg6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jOgoKICAgYWRkIGNvbW1lbnRzOyBmaXggZ2V0X25leHQgdy9udWxsIGtleSAoZ2V0LWZpcnN0KTsgcmVtb3ZlIHJlZHVuZGFudCBkZWJ1Z3MKICAgCjIwMDMtMTAtMjIgMTc6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogc25tcHVzbS5jIChWNS0wLXBhdGNoZXMuMiksIHNubXB1c20uYzoKCiAgIGZpeCBidWcgODIyODcwICh1c21TdGF0c0RlY3J5cHRpb25FcnJvcnMgZGlkIG5vdCBpbmNyZW1lbnQgb24gZmFpbGVkIGdldCByZXEpCiAgIHdpdGggcGF0Y2ggODI3MDU2IGZyb20gYnJvd2xhbmRzCiAgIAoyMDAzLTEwLTIyIDA5OjQzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBkZWZpbmUgX19TVFJJTkcgaWYgbm90IGRlZmluZWQKICAgCjIwMDMtMTAtMjIgMDY6MTQgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBpbmNyZW1lbnQgbGlidG9vbCByZXZpc2lvbgogICAKMjAwMy0xMC0yMiAwNjoxMyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgZml4IGNvbW1lbnRjaGVjayBwYXR0ZXJuIHRvIGV4Y2x1ZGUgZnRwIGFuZCBodHRwIHVybHMKICAgCjIwMDMtMTAtMjIgMDI6MDggIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFRoZSB2YXJpYWJsZXMgJ2RvX2hpbnQnIGFuZCAnY2hlY2snIGFyZSBvbmx5IGRlY2xhcmVkCiAgIG9yIG5lZWRlZCB3aGVuICdESVNBQkxFX01JQl9MT0FESU5HJyBpcyBub3QgZGVmaW5lZC4KICAgVGhlcmUncyBubyBwb2ludCBpbiBnaXZpbmcgdGhlbSBkdW1teSB2YWx1ZXMgb3RoZXJ3aXNlLgogICAKMjAwMy0xMC0yMSAxMjoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcmVtb3ZlIGMrKyBzdHlsZSBjb21tZW50CiAgIAoyMDAzLTEwLTIxIDEyOjEyICByc3RvcnkKCiAgICogYWNjb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIHJlbW92ZSBjKysgc3R5bGUgY29tbWVudAogICAKMjAwMy0xMC0yMSAxMTo1MSAgcnN0b3J5CgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBtb3ZlIHVzYWdlIHN1YiB0byB0b3Agc28gaXQgYWN0dWFsbHkgZG9lcyBzb21ldGhpbmc7IHByaW50IHVzYWdlIGZvciBwYXJhbQogICBlcnJvcnMsIGluc3RlYWQgb2YganVzdCBkeWluZwogICAKMjAwMy0xMC0yMSAxMTo1MSAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUxICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUxICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUxICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MSAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTEgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTAgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTAgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTAgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo0MiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgcmVtb3ZlIGJvZ3VzIGluc3RhbGwgdGFyZ2V0CiAgIAoyMDAzLTEwLTIxIDExOjE4ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIGZvciBuZXcgY29uZmlnLmluCiAgIAoyMDAzLTEwLTIxIDExOjE2ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IGN1dC1uLXBhc3RlIGVycm9yIGluIHBlcmwgdW5pbnN0YWxsIHN1cHBvcnQ7IHVwZGF0ZSB2ZXJzaW9uIGluIGluaXQKICAgCjIwMDMtMTAtMjEgMDE6NTQgIGR0czEyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBJbmNsdWRlIDxmY250bC5oPiBmb3IgZGVmaW5pdGlvbiBvZiBPX1JEV1IuIFJlcG9ydGVkIGJ5IFNlYk5vYi4KICAgCjIwMDMtMTAtMjEgMDE6NDcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBFbnN1cmUgdGhhdCBtdWx0aS1saW5lIGNvbW1lbnRzIGFyZW4ndCBicm9rZW4gd2hlbiB0aGUgYWN0aXZlCiAgIG5ldC1zbm1wLWNvbmZpZy5oIGZpbGUgaXMgZ2VuZXJhdGVkLiAgUmVwb3J0ZWQgYnkgU2ViTm9iLgogICAoUG9zc2libHkgYmVpbmcgYSBiaXQgb3Zlci1jYXV0aW91cyBoZXJlLCBidXQgeW91IGNhbid0IGJlIHRvbyBjYXJlZnVsISkKICAgCjIwMDMtMTAtMTcgMjI6NTIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtb3JlIHVwZGF0ZXMKICAgCjIwMDMtMTAtMTcgMjI6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHR1cm4gb24gdGhlIGxvb2t1cCBjYWNoZS4KICAgCjIwMDMtMTAtMTcgMTY6MzUgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLAogICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsCiAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGVwcmVjYXRlZC4zLAogICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgbmV0c25tcF9tZmRfcGR1X2NvbnRleHRfcy4zLCBuZXRzbm1wX3Jvd19tZXJnZS4zLAogICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsCiAgIG5ldHNubXBfdXRpbGl0aWVzLjM6CgogICBtb3JlIChuZXcpIHVwZGF0ZXMgZnJvbSBkb3h5Z2VuCiAgIAoyMDAzLTEwLTE3IDE2OjMzICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgbmV0c25tcF9zZXRfZGF0YS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF93YXRjaGVyLjMKOgoKICAgdXBkYXRlcyBmcm9tIGRveHlnZW4KICAgCjIwMDMtMTAtMTcgMTY6MTYgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE3IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTcgMTY6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNyAxNjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNyAxNjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNyAxNjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTcgMTY6MTUgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNyAxNjoxNSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE3IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTcgMTU6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBhZGRlZCBhbnlkYXRhIG1vZHVsZXMKICAgCjIwMDMtMTAtMTcgMTU6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgbWFrZSBnZXR0YWJsZSByZXR1cm4gYSBoYXNoIGluc3RlYWQuCiAgIAoyMDAzLTEwLTE3IDE1OjAzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgYWRkIG9pZC9kZWZhdWx0IHBvcnRpb24gdG8gaGVscCB0ZXh0IGZvciB0aGUgZm9yd2FyZCB0b2tlbgogICAKMjAwMy0xMC0xNyAxNTowMiAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIEFkZCBzcGFydGEKICAgCjIwMDMtMTAtMTcgMTQ6NTkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHRoZSBmb3J3YXJkIHRva2VuCiAgIAoyMDAzLTEwLTE3IDE0OjQxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHVzZSBuZXcgdmVyc2lvbiBtb2RpZmljYXRpb24gc2NyaXB0CiAgIAoyMDAzLTEwLTE3IDE0OjQwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgbmV3IHZlcnNpb24gbWVzc2luZy13aXRoIHNjcmlwdAogICAKMjAwMy0xMC0xNyAxNDozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHJlbW92ZSBwb3J0aW9ucyBvbGQgc2NyaXB0IHJlcGxhY2VkIGJ5IG5ld2VyIFZlcnNpb24tTXVuZ2UucGwKICAgCjIwMDMtMTAtMTcgMTQ6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE1IDA5OjI1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmk6CgogICByZW1vdmUgaGFyZGNvZGVkIGNvbnRleHQgbmFtZQogICAKMjAwMy0xMC0xNCAxNjo0MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmk6CgogICBhZGQgbm90ZSB0aGF0IGV4YW1wbGUgY29kZSBpcyBiYXNlIG9uIGEgZGF0YSBmaWxlCiAgIAoyMDAzLTEwLTE0IDE2OjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1yZWFkbWUubTJpOgoKICAgYWRkIG5vdCB0aGF0IGl0ZXJhdG9yIGdldC9nZXQtbmV4dCBkb24ndCBjb3JyZXNwb25kIHRvIHBkdSB0eXBlcywgYW5kIHRoZXkKICAgc2hvdWxkbid0IGJlIG9yZGVyaW5nIHRoZWlyIGRhdGEKICAgCjIwMDMtMTAtMTQgMTY6MDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpOgoKICAgc3luYyBjb21tZW50cyB3L3JlYWRtZQogICAKMjAwMy0xMC0xNCAxNjowOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgYXMgbG9uZyBhcyB3ZSdyZSB1c2luZyBnbnUtbWFrZSBzcGVjaWZpY3MsIG9ubHkgcHJvY2VzcyBjb25maWcgdmFycyBvbmNlIChhbHNvCiAgIGxldHMgbWFrZSBvdXRwdXQgcmVwcmVzZW50IGFjdHVhbCB2YWx1ZXMsIGluc3RlYWQgb2Ygc2NyaXB0KQogICAKMjAwMy0xMC0xNCAxNjowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHVzZSBiaWcgb2Jub3hpb3VzIHdhcm5pbmc7IHNldCBlcnJvciBmb3Igbm8gY29udGV4dCBpZiB0YWJsZSBub3Qgc2V0dGFibGUKICAgCjIwMDMtMTAtMTQgMTY6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjLWludGVybmFsLXdhcm5pbmcubTJpOgoKICAgYmlnIG9ibm94aW91cyB3YXJuaW5nIGZvciB0b3Agb2YgaW1wbGVtZW50YXRpb24gZmlsZXMKICAgCjIwMDMtMTAtMTQgMTY6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXJlYWRtZS5tMmk6CgogICBzeW5jIGZ1bmN0aW9uIGhlYWRlciBzdW1tYXJ5IGNvbW1lbnRzIHcvcmVhZG1lIHN1bW1hcnkgaGVhZGVyIGNvbW1lbnRzOwogICBwcmVzZW50IGZ1bmN0aW9uIGluIHNhbWUgb3JkZXIgaW4gYm90aCBmaWxlcwogICAKMjAwMy0xMC0xNCAxNjowNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgaW5pdCBtMmNfZGF0YV9pbml0CiAgIAoyMDAzLTEwLTE0IDEzOjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmk6CgogICB1c2UgbmV3IGNvbW1vbiBzZXR1cDsgd3JhcHBlcnMgZm9yIGFsbCBjb250YWluZXIgZnVuY3Rpb25zLCB0byBjb252ZXJ0CiAgIGJldHdlZW4gaW50ZXJmYWNlIGNvbnRleHQgYW5kIHVzZXIgY29udGV4dDsgc29tZSBwYXJhbSB0d2Vha3M7IHJlbW92ZQogICB1bnVzZWQgcHJvdG90eXBlOyBrZWVwIHB0ciB0byB0YWJsZSBjb250ZXh0IGluIGV4YW1wbGU7IHJlbmFtZSBzb21lIHZhcnMKICAgdXNlIG5ldyBNRkRfKiBlcnJvciBjb2RlczsgcmVuYW1lIGV4YW1wbGUgZnVuY3Rpb247IGRvY3VtZW5hdGlvbiB1cGRhdGVzOwogICAKMjAwMy0xMC0xNCAxMzozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmk6CgogICB1c2UgbmV3IGNvbW1vbiBzZXR1cDsgd3JhcHBlcnMgZm9yIGFsbCBjb250YWluZXIgZnVuY3Rpb25zLCB0byBjb252ZXJ0CiAgIGJldHdlZW4gaW50ZXJmYWNlIGNvbnRleHQgYW5kIHVzZXIgY29udGV4dDsgc29tZSBwYXJhbSB0d2Vha3M7IHJlbW92ZQogICB1bnVzZWQgcHJvdG90eXBlOyBrZWVwIHB0ciB0byB0YWJsZSBjb250ZXh0IGluIGV4YW1wbGU7IHJlbmFtZSBzb21lIHZhcnMKICAgCjIwMDMtMTAtMTQgMTM6MzAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1pbnRlcmZhY2UubTJpCjoKCiAgIHVzZSBuZXcgY29tbW9uIHNldHVwOyB3cmFwcGVycyBmb3IgYWxsIGNvbnRhaW5lciBmdW5jdGlvbnMsIHRvIGNvbnZlcnQKICAgYmV0d2VlbiBpbnRlcmZhY2UgY29udGV4dCBhbmQgdXNlciBjb250ZXh0OyBzb21lIHBhcmFtIHR3ZWFrczsgZG9uJ3QgYXV0bwogICBhbGxvY2F0ZSBjb250ZXh0IGZvciBnZXQgZGF0YSwgc28gdXNlciBjb3VsZCB1c2Ugb25lIHRoZXkndmUgYWxsb2NhdGVkCiAgIAoyMDAzLTEwLTE0IDEzOjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtc2V0dXAubTJpOgoKICAgY29tbW9uIHNldHVwIGZvciB1bnNvcnRlZCBleHRlcm5hbCwgd2hpY2ggaGFzIDMgcGFydHMgaW5jbHVkZWQgYXQgZGlmZmVyZW50CiAgIHRpbWVzCiAgIAoyMDAzLTEwLTE0IDEzOjI3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtcmVhZG1lLm0yaToKCiAgIGludmVydCB2ZXJib3NlIGxvZ2ljIHRlc3Q7IGFkZCBxdWljayBvdmVydmlldyBvZiBpdGVyYXRpb24gbG9vcDsgcmVvcmRlcgogICBzb21lIHRleHQvYmxhbmsgbGluZXM7IHVwZGF0ZSBmb3IgcmVuYW1lZCB2YXJzCiAgIAoyMDAzLTEwLTE0IDEzOjExICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1DT1VOVEVSNjQtZ2V0Lm0yaToKCiAgIGhhbmRsZSBjb3VudGVyNjQgdmFycwogICAKMjAwMy0xMC0xNCAxMzoxMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICB1c2UgbmV3IE1GRF8qIGVycm9yIGNvZGVzOyB1cGRhdGUgZm9yIG0yYyBwYXJhbSByZW5hbWU7IGhhbmRsZSBjb3VudGVyNjQgdmFycwogICAKMjAwMy0xMC0xNCAxMzowOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgbmFtZSBkZXBzIGZpbGVzIGV4cGxpY2l0eSwgc2luY2UgLmM9LmRlcHMgaXNuJ3QgcG9ydGFibGUKICAgCjIwMDMtMTAtMTQgMTM6MDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICB1cGRhdGUgYmFzZSBwYXJhbSBmcm9tIG1mZCByZWcgdG8gbWZkIHBkdSBjdHg7IHVwZGF0ZSBmb3IgcmVuYW1lZCBtZmQvbTJjIHZhcnM7CiAgIHJlbmFtZSB1c2VyIHJlZyB0eXBlZGVmOyBubyB1bmRvIGluIHRhYmxlIGN0eCBpZiB0YWJsZSBub3Qgc2V0dGFibGU7IGFkZCB1c2VyCiAgIHJlZyBwdHIsIHJlcXVlc3QgbW9kZSBhbmQgZGF0YSBsaXN0IHRvIHRhYmxlIGNvbnRleHQ7IG12IGNvbnRhaW5lciBpbml0IHByb3RvCiAgIGFuZCBvdGhlciBpbnRlcmZhY2UgcHJvdG90eXBlcyB0byB0aGVpciBvd24gaGVhZGVyOyBhZGQgcHJvdG9zIGZvciBwcmUvcG9zdAogICByZXF1ZXN0cywgdGFibGUgY29udGV4dCBpbml0L2NsZWFudXA7IGFkZCBzZXQgcHJvdG90eXBlczsgaW5jbHVkZSBuZXcgaGVhZGVycwogICBhdCBib3R0b20gb2YgbWFpbiBoZWFkZXI7IG1vdmUgYXMgbXVzaCBvZiBpbml0IHJvdXRpbmUgYXMgcG9zc2libGUgaW50bwogICBpbnRlcmZhY2UgY29kZTsgdXNlIG5ldyBNRkRfKiByZXR1cm4gY29kZXM7IGRvbid0IHJ1biBtYWtlZmlsZS9zdWJhZ2VudAogICBjb25mIGZpbGVzIGlmIHRoZXkndmUgYWxyZWFkeSBiZWVuIHJ1bgogICAKMjAwMy0xMC0xNCAxMjo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIGFkZCBtZmQgb3ZlcnZpZXcgb2YgU05NUCBhbmQgbWZkIGRhdGEgc3RydWN0dXJlczsgZG9jdW1lbnQgbTJjIGNvbmZpZ3VyYXRpb24KICAgdmFyaWFibGVzOyBpbmRlbnQgc29tZSBjb21tZW50cyB0byBiZSBtb3JlIGNvbnNpc3RlbnQ7IGRvY3MgZm9yIHNldCBzdXBwb3J0CiAgIAoyMDAzLTEwLTE0IDEyOjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgcmVwbGFjZSBoYXJkY29kZWQgaGVhZGVyIG5hbWUgdy8kbmFtZS5oOyBkb2N1bWVudGF0aW9uIHVwZGF0ZXM7IHVzZSBNRkRfKgogICByZXR1cm4gY29kZXMgaW5zdGVhZCBvZiBTTk1QXyo7ICB1cGRhdGUgcmVuYW1lZCBtMmMgcGFyYW1zOyByZW1vdmUgbG9jYWwgc3RhdGljCiAgIHByb3RvdHlwZXMgZnJvbSBoZWFkZXJzOyBuZXcgcGVyIHRhYmxlIGludGVyZmFjZSBjb250ZXh0OyByZW5hbWUgaW50ZXJmYWNlIGluaXQ7CiAgIHVzZSB0YWJsZSByZWcgaW4gbG9jYWwgdGFibGUgY29udGV4dCBpbnN0ZWFkIG9mIG1hbGxvYzsgcmVtb3ZlIF8gcHJlZml4IGZyb20KICAgcHVibGljIHRhYmxlIGFsbG9jYXRlICYgcmVsZWFzZSBjdHggZnVuY3M7IGluaXQgdmFycyBpbiBhbGxvY2F0ZV9jdHg7IGNhbGwKICAgdGFibGUgY3R4IGluaXQgZnVuYyBpbiBhbGxvY2F0ZSwgaWYgZGVmaW5lZDsgd3JhcHBlcnMgZm9yIGFsbCBtZmQgZnVuY3Rpb25zLCB0bwogICBjb252ZXJ0IGZyb20gb3VyIHRhYmxlIGNvbnRleHQgdG8gdGhlIHVzZXJzIHJlZ2lzdHJhdGlvbiBwb2ludGVyOyBhZnRlciBvYmplY3QKICAgbG9va3VwIHNldCB1c2VycyBpbmRleGVzIGJhY2sgdG8gdGhlIHZhcmJpbmQgb2lkIGFuZCBzZXQgY29udGV4dCB2YXJzOyBvbmx5CiAgIGRvIGdldCByb3V0aW5lcyBmb3IgYWNjZXNzYWJsZSBpbnRlcm5hbCBpbmRleGVzOyBwcmVmaXggd3JhcHBlcnMgdy9tZmRfOwogICBkZXRlY3QgaWYgdXNlciBnZXQgcm91dGluZXMgbXVuZ2VzIHZiIHZhbHVlIHBvaW50ZXI7IGNoZWNrIGZvciBudWxsIHB0ciBiZWZvcmUKICAgZnJlZTsgbWVyZ2UgY2hlY2tfaW5kZXggaW50byBjaGVja19pbmRleGVzOyBhZGQgc2V0IHZhbHVlcywgY29tbWl0LCB1bmRvCiAgIGFuZCBpcnJldmVyc2libGUgY29tbWl0IHdyYXBwZXJzOyB1cGRhdGUgZm9yIHJlbmFtZWQgY29tbWl0IG1vZGUgbmFtZXM7CiAgIHNpbXBsaWZ5IHBhcmFtIGZvciBpbnRlcm5hbCBpbmRleCBjaGVjayBmdW5jcwogICAKMjAwMy0xMC0xNCAxMjozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1nZXQubTJjOgoKICAgcHV0IHByb3RvdHlwZXMgaW4gJG5hbWVfZGF0YV9nZXQuaAogICAKMjAwMy0xMC0xNCAxMjozMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICB1cGRhdGUgbTJjIG5vZGUgcGFyYW1zIHRvIGJlIGJhc2VkIG9uIHZhci92YWwvcmVmIGluc3RlYWQgb2YgZnVuY3Rpb24gbmFtZQogICAKMjAwMy0xMC0xNCAxMjozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1kZWNsLm0yaToKCiAgIHVwZGF0ZSBmb3IgcmVuYW1lIG0yYyB2YXIgbmFtZXMKICAgCjIwMDMtMTAtMTQgMTI6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksCiAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmk6CgogICB1c2UgbTJjX25vZGVfc3VtbWFyeSBpbiBjb21tZW50CiAgIAoyMDAzLTEwLTE0IDEyOjMwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZXM7IHVzZSBNRkRfKiByZXR1cm4gY29kZXMgaW5zdGVhZCBvZiBTTk1QXyo7IHB1dCBwcm90b3R5cGVzCiAgIGluICRuYW1lX2RhdGFfc2V0Lmg7IHVwZGF0ZSByZW5hbWVkIG0yYyBwYXJhbXM7IGFkZCBleHRlcm5hbCBpbmRleCBjaGVjayBmdW5jCiAgIGlmIHRhYmxlIGhhcyBleHRlcm5hbCBpbmRleDsgc2ltcGxpZnkgcGFyYW0gZm9yIGludGVybmFsIGluZGV4IGNoZWNrIGZ1bmNzCiAgIAoyMDAzLTEwLTE0IDEyOjI3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1kZXBlbmRlbmNpZXMubTJpOgoKICAgcmVtb3ZlIG1mZCByZWcgcGFyYW0gJiYgYXNzZXJ0CiAgIAoyMDAzLTEwLTE0IDEyOjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlczsgdXNlIE1GRF8qIHJldHVybiBjb2RlcyBpbnN0ZWFkIG9mIFNOTVBfKjsgYWRkIHBlciBub2RlCiAgIHVuZG9fc2V0dXAgOyB1cGRhdGUgZm9yIHJlbmFtZWQgY29tbWl0IG1vZGUgbmFtZXM7IHVwZGF0ZSByZW5hbWVkIG1mZCBwYXJhbXMKICAgCjIwMDMtMTAtMTQgMTI6MjQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZXM7IGNoZyBtZmRfcmVnIHBhcmFtcyB0byB0YWJsZV9yZWc7IHVzZSBNRkRfKiByZXR1cm4KICAgY29kZXMgaW5zdGVhZCBvZiBTTk1QXyo7IG5vIHBlciBub2RlIGNvZGUgaW4gdGFibGUgdW5kb19zZXR1cCAod2lsbCBiZSBpbgogICBuZXcgcGVyIG5vZGUgdW5kb19zZXR1cCk7IHVwZGF0ZSBmb3IgcmVuYW1lZCBjb21taXQgbW9kZSBuYW1lcwogICAKMjAwMy0xMC0xNCAxMjoyMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtRGF0ZUFuZFRpbWUtcmVhZG1lLm0yaToKCiAgIGluZGVudCB0byBtYXRjaCBvdGhlciByZWFkbWVzCiAgIAoyMDAzLTEwLTE0IDEyOjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICByZW5hbWUgbTJjX3RhYmxlX3dyaXRhYmxlIHRvIG0yY190YWJsZV9zZXR0YWJsZSAoY29uc2lzdGVudCB3L25vZGUuc2V0dGFibGUpOwogICBiYXNlIG0yY190YWJsZV9yb3dfY3JlYXRpb24gb24gbmV3IGZ1bmN0aW9uIHRhYmxlX2hhc19jcmVhdGU7IG5ldwogICBtMmNfdGFibGVfZXh0ZXJuYWxfaW5kZXhlcyBiYXNlIG9uIG5ldyBmdW5jdGlvbiBjb3VudF9leHRlcm5hbF9pbmRleGVzCiAgIAoyMDAzLTEwLTE0IDEyOjE1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtdGFibGUubTJpOgoKICAgcmVtb3ZlIHVudXNlZCBsaW5lczsgYWRkIG9pZCBsZW5ndGggaW4gb3V0cHV0CiAgIAoyMDAzLTEwLTE0IDEyOjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBvbmx5IHNldCBkZWZhdWx0cyBpZiB2YWx1ZSBpcyBlbXB0eQogICAKMjAwMy0xMC0xNCAxMTo0OCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmM6CgogICBpZiBzb3J0ZWQsIHNraXAgaXRlcmF0aW9uIG9uIGZpbmQgZmlyc3Q7IGFkZCBuZXcgcmV1c2UgcGFyYW0gdG8gc2F2ZV9wb3MKICAgCjIwMDMtMTAtMTQgMTE6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgbG9nIGVhY2ggYWdlbnR4cGVybXMgcGFydCBzZXBhcnRlbHksIHNvIGFzIG5vdCB0byBjcmFzaCBpZiBhbnkgb2YgdGhlIG9wdGlvbmFsCiAgIGl0ZW1zIGFyZSBsZWZ0IG91dDsgdXBkYXRlIGhlbHAgdG8gc2hvdyB0aGF0IG9wdGlvbmFsIHBhcm1zIG11c3QgYmUgaW4gb3JkZXIKICAgCjIwMDMtMTAtMTQgMTE6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGNoYW5nZSBjb3VudGVyIDY0IHR5cGUgZnJvbSAnY291bnRlcjY0JyB0byAnVTY0Jywgc2luY2UgdGhlIGZvcm1lciBjYW4ndCBiZQogICB1c2VkIGFzIGEgdmFyaWFibGUgZGVjbGFyYXRpb24gdHlwZTsgcHJvY2VzcyAkSE9NRS8uc25tcC9taWIyYy5jb25mLCBpZiBpdAogICBleGlzdHM7IG5ldyBmb3JlYWNoIGludGVybmFsaW5kZXggYW5kIGV4dGVybmFsaW5kZXg7IG5ldyBzdWIgdGFibGVfaGFzX2NyZWF0ZQogICBhbmQgY291bnRfZXh0ZXJuYWxfaW5kZXhlcwogICAKMjAwMy0xMC0xNCAwOTo0OSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgZG9uJ3QgcmVxdWlyZSBERUJVRyBkZmluZSBmb3IgYXNzZXJ0czsgbmV3IGxvZ2ljOiB1c2UgYXNzZXJ0IGlmCiAgIE5FVFNOTVBfVVNFX0FTU0VSVCBkZWZpbmVzLiBvdGhlcndpc2UsIGZhaWxlZCBhc3NlcnRzIHdpbGwgdXNlIHNubXBfbG9nCiAgIHRvIGxvZyBhIG1lc3NhZ2UgKHVubGVzcyBTTk1QX05PX0RFQlVHR0lORyBpcyBkZWZpbmVkKS4KICAgCjIwMDMtMTAtMTQgMDk6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX21mZC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX21mZC5oOgoKICAgdXBkYXRlIGZvciByZW5hbWVkIG1vZGVzOyBjaGcgY2FsbGJhY2sgcGFyYW0gdG8gdXNlIG5ldyBtZmRfcGR1X2N0eDsgZG9uJ3QKICAgc3BsaXQgY2FsbGJhY2tzIGludG8gdHdvIHN0cnVjdHVyZXM7IGRlZmluZSBtZmQgc3BlY2lmaWMgZXJyb3IgY29kZXMgYXMgYQogICBzdWJzZXQgb2YgZXhpc3RpbmcgZXJyb3IgY29kZXM7IGFkZCBkb2N1bWVudGF0aW9uOyByZW1vdmUgdGFibGUgcmVnaXN0cmF0aW9uCiAgIGZyb20gcmVnaXN0cmF0aW9uIHBhcmFtIGxpc3QsIHNpbmNlIGl0J3MgaW4gdGhlIG1mZCByZWcgb2JqOyBoYW5kbGUgZ2V0IHJlcXVlc3QKICAgc3BsaXQgaW50byBvYmplY3RfbG9va3VwIGFuZCBnZXQgdmFsdWVzOyBvbmx5IGNhbGwgbmV4dCBoYW5kbGVyIGlmIG5leHQgaGFuZGxlcgogICBoYXMgYWNjZXNzIG1ldGhvZDsgdHdlYWsgbG9va3VwIHBhcmFtczogcmV0dXJuIGVycm9yIGNvZGUgYW5kIHNldCBmb3VuZCByb3cKICAgaW4gbmV3IHBkdSBjdHggcGFyYW0KICAgCjIwMDMtMTAtMTQgMDk6MzUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2l0ZXJhdG9yLmg6CgogICBhZGQgcmV1c2UgZmxhZyB0byBjdHggZHVwIHBhcmFtcwogICAKMjAwMy0xMC0xNCAwOToyNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgYWRkIG1vZGUgbXNnIGRlZmluZXMgZm9yIGJhYnkgc3RlcCBtb2Rlczsgc2ltcGxpZnkgbW9kZSB0ZXN0IG1hY3JvczsgYWRkCiAgIG5leHRfbW9kZSB0byBhZ2VudF9yZXF1ZXN0X2luZm8KICAgCjIwMDMtMTAtMTQgMDk6MjQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oOgoKICAgYWRkIGludGVybmFsIG1zZyBkZWZpbmVzIGZvciBiYWJ5IHN0ZXAgbW9kZXM7IHJlbnVtYmVyIGdldCBzdGFzaCBtb2RlOyBmaXggdHlwbwogICBpbiBjb21tZW50OyByZXNlcnZlICBtb2RlcyA8IDEyOCBmb3Igc2V0IHByb2Nlc3NpbmcgdG8gc2ltcGxpZnkgbW9kZSB0ZXN0cwogICAKMjAwMy0xMC0xNCAwOToyMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oOgoKICAgcmVuYW1lIGEgZmV3IG1vZGVzCiAgIAoyMDAzLTEwLTE0IDA5OjIwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmM6CgogICB1cGRhdGUgZm9yIHJlbmFtZWQgbW9kZXM7IGFkZCBtb2RlIG1hcCBmb3IgZ2V0LXJlcXVlc3RzIGFzIHdlbGwKICAgCjIwMDMtMTAtMTQgMDk6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgY29uc3QgY29ycmVjdG5lc3MKICAgCjIwMDMtMTAtMTQgMDk6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgaWZkZWYnZCBjb2RlIGFmdGVyIHJlc3RvcmluZyBzb21lIG9mIGl0OyB1cGRhdGUgbmV3IHJlcWluZm8gcHRyIGluCiAgIHJlcXVlc3RzOyBmaXggZW5sZXNzIGxvb3A7IGZpeCB0eXBvcyBpbiBhc3NlcnRzCiAgIAoyMDAzLTEwLTE0IDA5OjE1ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgY2hlY2sgZm9yIHJlbGF0aXZlIHBhdGggdG8gc3JjIGRpciBmb3IgYnVpbGQtZGlyIGNoZWNrcwogICAKMjAwMy0xMC0xNCAwNjoyOSAgcnN0b3J5CgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4gKFY1LTAtcGF0Y2hlcy4zKSwgTWFrZWZpbGUuaW46CgogICBkb24ndCBsZWF2ZSBwb3NzaWJseSBlbXB0eSBjb25maWd1cmUgQHZhckAgb24gY29udGludWF0aW9uIGxpbmUgYnkgaXRzZWxmCiAgIAoyMDAzLTEwLTA4IDIyOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhcl9yb3V0ZS5jIChWNS0wLXBhdGNoZXMuMiksIHZhcl9yb3V0ZS5jCjoKCiAgIHBhdGNoIGZyb20gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyIHRvIGZpeCBIUFVYIDExCiAgIAoyMDAzLTEwLTA4IDE0OjA4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgYWRkIGRldGFpbCBvbiBpbXByb3BlcnlseSByZWdpc3RlcmVkIHRhYmxlIG1lc3NhZ2UsIGFuZCBjaGcgdG8gRVJSIChmcm9tIElORk8pOwogICBmaXggdmFsaWQgY29sdW1uIHNlYXJjaCBmb3IgcmFuZ2VzOyBnbyBzdHJhaWdodCB0byBmaXJzdCByb3cgaWYgbm8gaW5kZXhlcwogICAKMjAwMy0xMC0wNyAxNToxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICBtb3JlIHVzZWZ1bCBoZWxwIHRleHQgZm9yIGFnZW50eHBlcm1zCiAgIAoyMDAzLTEwLTA3IDE0OjQzICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGZpeCBsb2dpYyBjaGVjayBvZiBEU19BR0VOVF9RVUlUX0lNTUVESUFURUxZIHNvIHRoYXQgcGFyZW50IGFuZCBjaGlsZCBkb24ndAogICBib3RoIHRyeSB0byBiZWNvbWUgdGhlIG1hc3RlciBhZ2VudC4gTG9naWMgc2VlbXMgYmFja3dhcmRzIHRvIG1lIC0gZG8gd2UgaGF2ZQogICBhbGwgdGhlc2UgRFMgdmFycyBkb2N1bWVudCBzb21ld2hlcmU/CiAgIAoyMDAzLTEwLTA3IDE0OjM5ICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIG5ldHNubXBfZGFlbW9uaXplOiBpbml0IGxvY2FsIHZhcjsgY2hnIHJldHVybiBjb2RlIHRvIGJlIGZvcmsgcmVzdWx0OyBhZGQgZG9jcwogICAKMjAwMy0xMC0wNyAwNzowMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYyAoVjUtMC1wYXRjaGVzLjMpLCBtaWIyYzoKCiAgIENoZWNrIGZvciBeLVMgaW5zdGVhZCBvZiAtUywgYXMgcmVwb3J0ZWQgYnkgSmVhbi1NYXJjIFJhbmdlciBvbiAtdXNlcnMKICAgCjIwMDMtMTAtMDcgMDM6MTMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgVGhlcmUgYXJlIG5vIHN0YXRpc3RpY3MgcHJpbnRlZCwgc28gdGhlcmUncyBubyBwb2ludCBpbiBoYXZpbmcKICAgYSBmbGFnIHRvIHR1cm4gdGhlbSBvZmYuCiAgIAoyMDAzLTEwLTA0IDExOjAxICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgbWVyZ2UgY2hhbmdlcyBmcm9tIDUuMCBwYXRjaGVzIGJyYW5jaDsgZml4IHRvIGJ1aWxkIHdpdGhvdXQgcmVxdWlyaW5nIGFyZ3VtZW50czsKICAgc2VwYXJhdGUgZW1iZWRkZWQgcGVybCBhbmQgcGVybCBtb2R1bGVzIG9wdGlvbnM7IGZpeCBmaXggZm9yIGluaXQuZCBzY3JpcHQKICAgZm9yIG5vbi0vdXNyL2xvY2FsIGluc3RhbGxhdGlvbgogICAKMjAwMy0xMC0wMyAwNzo0MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZjoKCiAgIGNoYW5nZSB2MSBkZW1vIGNvbW11bml0eSB0byBtYXRjaCB3aGF0IGlzIGFjdHVhbHQgY29uZmlndXJlZCBvbiB0aGUKICAgc29vbi10by1iZS1yZW9wZW5lZCB0ZXN0Lm5ldC1zbm1wLm9yZwogICAKMjAwMy0xMC0wMiAxOTozMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZjoKCiAgIGFkZCBleHBsYW5hdG9yeSB0ZXh0IGFuZCBsaW5lcy9hcnJvd3Mgc2hvd2luZyByZWxhdGlvbnNoaXAgYmV0d2VlbiBlbnRyaWVzOwogICBhZGQgY3JlYXRlVXNlciBsaW5lcywgdy9ub3RlIGV4cGxhaW5pbmcgdGhleSBtaWdodCBiZSBiZXR0ZXIgc3VpdGVkIGZvcgogICB0aGUgcGVyc2lzdGVudGRpciBzbm1wZC5jb25mIGZvciBzZWN1cml0eSBwdXJwb3Nlcy4KICAgCjIwMDMtMTAtMDIgMTE6MDQgIGhhcmRha2VyCgogICAqIG1hbi9taWIyYy4xLmRlZjoKCiAgIGRvY3VtZW50IHRoZSAtSSBzd2l0Y2gKICAgCjIwMDMtMTAtMDIgMTA6NTQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzLCBNYWtlZmlsZS50b3AsIE5FV1MsIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGxvY2FsL01ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4KLCBtaWJzL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgUm9iZXJ0IHRvbGQgbWUgdG8ga2VlcCBnb2luZywgc28gSSBhZGRlZCBzdXBwb3J0IGZvciBhIC0td2l0aC1pbnN0YWxsLXByZWZpeAogICBmbGFnIHRvIGNvbmZpZ3VyZSAoYW5kIHRodXMgYSBJTlNUQUxMX1BSRUZJWCBtYWtlIHZhcmlhYmxlIGFzIHdlbGwpLgogICAKMjAwMy0xMC0wMSAxNjozMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzLCBNYWtlZmlsZS50b3AsCiAgIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgbG9jYWwvTWFrZWZpbGUuaW4KLCBtYW4vTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW46CgogICBTdXBwb3J0IGZvciAibWFrZSB1bmluc3RhbGwiCiAgIAoyMDAzLTEwLTAxIDE0OjUxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIEFkZGVkIC1MIHN1cHBvcnQgZm9yIG91dHB1dCBsb2dnaW5nLgogICAKMjAwMy0xMC0wMSAxNDo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuaDoKCiAgIHVwZGF0ZWQgcHJvdG90eXBlcyB0byBtYXRjaCBlYXJsaWVyIHRyYXAgLT4gbm90aWZpY2F0aW9uIHN0cmluZyByZXBsYWNlbWVudHMuCiAgIAoyMDAzLTA5LTMwIDE3OjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtdmFyYmluZC12YWxpZGF0ZS5tMmk6CgogICBzeW50YXggc3BlY2lmaWMgdmFyYmluZCB2YWxpZGF0aW9uCiAgIAoyMDAzLTA5LTMwIDE3OjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpLAogICBzeW50YXgtU3RvcmFnZVR5cGUtZGVwZW5kZW5jaWVzLm0yaToKCiAgIHN5bnRheCBzcGVjaWZpYyBkZXBlbmRlbmN5IGNoZWNrcwogICAKMjAwMy0wOS0zMCAxNzoxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXJlYWRtZS5tMmk6CgogICBmaXggdHlwb3MKICAgCjIwMDMtMDktMzAgMTc6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBzeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yaSwKICAgc3ludGF4LURhdGVBbmRUaW1lLXJlYWRtZS5tMmk6CgogICBzZXQgZW1hZ3MgdGFnIGZvciBjOyB1cGRhdGUgdmFyaWFibGUgbmFtZQogICAKMjAwMy0wOS0zMCAxNzoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIHNldCBlbWFncyB0YWcgZm9yIGM7IGFkZC9jb3JyZWN0IGRveHlnZW4gc3R5bGUgZG9jczsgbmV3IHZhbGlkYXRlX2luZGV4LAogICB1bmRvX3NldHVwLCByZXZlcnNpYmxlX2NvbW1pdCwgZmluYWxfY29tbWl0CiAgIAoyMDAzLTA5LTMwIDE3OjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1kZXBlbmRlbmNpZXMubTJpOgoKICAgc2V0IGVtYWdzIHRhZyBmb3IgYzsgaW4gY2hlY2tfZGVwZW5kZW5jaWVzLCByZW1vdmUgbm9uLWV4aXN0YW50IHBhcmFtIGFuZAogICBpbmNsdWRlIGFueSBub2RlIHNwZWNpZmljIHN5bnRheCBkZXBlbmRlbmNpZXMKICAgCjIwMDMtMDktMzAgMTc6MTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS12YXJiaW5kLXZhbGlkYXRlLm0yaToKCiAgIG5ldyBpbmNsdWRlIHRvIGRvIGJhc2ljeSBzeW50YXggdmFsaWRhdGlvbiBhZ2FpbnN0IGFuIGluY29taW5nIHZhcmJpbmQKICAgCjIwMDMtMDktMzAgMTc6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaToKCiAgIGFkZC9jb3JyZWN0IGRveHlnZW4gc3R5bGUgZG9jcyBpbiBjb21tZW50czsgY2hhbmdlIGV4YW1wbGUgZnJvbSBsaW5rZWQgbGlzdAogICB0byBmbGF0IGZpbGU7IHVzZSB2YXIgZm9yIGZ1bmMgcGFyYW1zIHNvIGl0J3MgZWFzeSB0byBjaGFuZ2U7IGNoZWNrIG5ldwogICBtMmNfaW5jbHVkZV9leGFtcGxlcyBiZWZvcmUgaW5jbHVkaW5nIGV4YW1wbGUgY29kZTsKICAgCjIwMDMtMDktMzAgMTc6MTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpOgoKICAgYWRkL2NvcnJlY3QgZG94eWdlbiBzdHlsZSBkb2NzIGluIGNvbW1lbnRzOyBjaGFuZ2UgZXhhbXBsZSBmcm9tIGxpbmtlZCBsaXN0CiAgIHRvIGZsYXQgZmlsZTsgdXNlIHZhciBmb3IgZnVuYyBwYXJhbXMgc28gaXQncyBlYXN5IHRvIGNoYW5nZQogICAKMjAwMy0wOS0zMCAxNzoxMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWludGVyZmFjZS5tMmkKOgoKICAgc2V0IGVtYWNzIHRhZyB0byBjOyBhZGQvY29ycmVjdCBkb3h5Z2VuIHN0eWxlIGRvY3MgaW4gY29tbWVudHM7IHVzZSBsb2NhbAogICBzdGF0aWMgdmFyaWFibGVfbGlzdCBmb3IgaW5kZXggdG8gb2lkIGNvbnZlcnNpb247IGZyZWUgbWVtb3J5IHVzZWQgaW4gdGhhdAogICBjb252ZXJzaW9uLCBldmVudHVhbGx5OyBkb24ndCBpZ25vcmUgcmMgZnJvbSBidWlsZF9vaWRfbm9hbGxvYyBoZXJlIChyZXR1cm4KICAgaXQgYW5kIGxldCBzb21lb25lIGVsc2UgaWdub3JlIGl0KTsgcHJlZml4IHNvbWUgaW50ZXJuYWwgZnVuY3Rpb25zIG5hbWVzIHcvJ18nOwogICB3cmFwcGVyIGFyb3VuZCBnZXRfZGF0YSB0byBhbGxvY2F0ZSBuZXcgY29udGV4dAogICAKMjAwMy0wOS0zMCAxNzowOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG5vZGUtZ2V0Lm0yaSwgbm9kZS1zZXQubTJpOgoKICAgc2V0IGVtYWNzIHRhZyB0byBjOyBhZGQvY29ycmVjdCBkb3h5Z2VuIHN0eWxlIGRvY3MgaW4gY29tbWVudHMKICAgCjIwMDMtMDktMzAgMTc6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBuZXcgbWZkX2Jhc2VfcGFyYW1zIHZhciBzbyBpdCdzIGVhc3kgdG8gY2hhbmdlIHBhcmFtczsgY2hnIGNvbW1lbnRzIHNvIHRoYXQKICAgaW5kZW50IHdvbid0IG5vdCBpbmRlbnQ7IGRvbid0IGluY2x1ZGUgc29tZSBwcm90b3R5cGVzIGhlcmUgaWYgdGhlIGZ1bmN0aW9uCiAgIGlzIGluICpfaW50ZXJmYWNlczsgbmV3IHByZS9wb3N0IHJlcXVlc3QgZnVuY3Rpb25zOyBtb3ZlZCBidWxrIG9mIHRhYmxlCiAgIGluaXQgaW50byBpbnRlcmZhY2VzLCBqdXN0IGEgbGl0dGxlIGZ1bmN0aW9uIHNldHVwIGhlcmUKICAgCjIwMDMtMDktMzAgMTY6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIHNldCBlbWFjcyBtb2RlIHRvIE1ha2VmaWxlOyB0dXJuIG9mZiBzdHJpY3QgdG9rZW4gY2hlY2tzIHRpbCB3ZXMgZ2V0cyBAIGVzY2FwZTsKICAgZXhwYW5kIGRlcHMgaW5jbHVkZXMgc2luY2UgJCh4Oi5jPS5kZXBzKSBpc24ndCBwb3J0YWJsZQogICAKMjAwMy0wOS0zMCAxNjo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgb25seSBwdXQgTUlCMkNfRElSIGVudiB2YXIgaW4gc2VhcmNoIHBhdGggaWYgaXQgaXNuJ3QgZW1wdHkKICAgCjIwMDMtMDktMzAgMTY6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBjcmVhdGUgbmV3ICRuYW1lX2ludGVyZmFjZS5oIGhlYWRlcjsgbW92ZSB0YWJsZSBpbml0aWFsaXphdGlvbiBoZXJlOyBwcmVmaXggYQogICBidW5jaCBvZiBpbnRlcmZhY2UgZnVuY3Rpb25zIHcvJ18nOyB1c2UgbmV3IG0yY19ub2RlX3N1bW1hcnk7IHVzZSBuZXcKICAgbTJjX25vZGVfdmFyXyogdmFyaWFibGVzOyBjaGFuZ2Ugc29tZSBhY2Nlc3NpYmxlIHRlc3RzIHRvIHNldHRhYmxlIHRlc3RzOyB1c2UKICAgbmV3IG5vZGUtdmFyYmluZC12YWxpZGF0ZSBpbmNsdWRlOyBhbHdheXMgY2FsbCB1c2VyICRub2RlX2NoZWNrX3ZhbHVlOyBuZXcKICAgZnVuY3Rpb25zIHRvIGNoZWNrIG5ldyBpbmRleCBzeW50YXg7IG5ldyBfc2V0X3ZhbHVlcywgX3VuZG9fc2V0dXAgYW5kCiAgIF91bmRvX3ZhbHVlcyB0byBjYWxsIHVzZXIgZnVuY3Rpb25zCiAgIAoyMDAzLTA5LTMwIDE2OjM2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICBzZXQgZW1hY3MgbW9kZSB0byBjOyB0d2VhayBwcm9jZXNzaW5nIG1zZ3M7IGFsd2F5cyBpbmNsdWRlIHBhcmVudC1zZXQ7IG1vdmUKICAgcGFyZW50IGRlcGVuZGVuY2llcyB0byBib3R0b20gb2YgZmlsZTsgYWRkICRub2RlX2NoZWNrX2luZGV4CiAgIAoyMDAzLTA5LTMwIDE2OjI1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWdldC5tMmM6CgogICB0d2VhayBwcm9jZXNzaW5nIG1zZ3MKICAgCjIwMDMtMDktMzAgMTY6MjMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgc2V0IGVtYWNzIG1vZGUgdG8gYzsgYWRkIHNvbWUgc2FuaXR5IGNoZWNrczsgc2V0IHVwIG5ldyAkbTJjX2VudW1fbWFzaywKICAgJG0yY19ub2RlX3Zhcl92YWwsICRtMmNfbm9kZV92YXJfcmVmLCAkbTJjX25vZGVfdmFyX3ZhbF9wdHIsICRtMmNfbm9kZV9zdW1tYXJ5CiAgIAoyMDAzLTA5LTMwIDE2OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmk6CgogICBzZXQgZW1hY3MgbW9kZSB0byBjOyByZW1vdmUgdW51c2VkIGNyZWF0ZV91bmRvX2NvbnRleHQKICAgCjIwMDMtMDktMzAgMTY6MTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWN0eC1jb3B5Lm0yaSwKICAgZ2VuZXJpYy1jdHgtZ2V0Lm0yaSwgZ2VuZXJpYy1jdHgtc2V0Lm0yaSwKICAgbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIHNldCBlbWFjcyBtb2RlIHRvIGM7IHN1Y2sgJ2N0eC0+JyBvciAnY3R4LicgaW50byAkbTJjX2RhdGFfaXRlbQogICAKMjAwMy0wOS0zMCAxNjoxMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLXRhYmxlLm0yaToKCiAgIHNldCBlbWFjcyBtb2RlIHRvIGMKICAgCjIwMDMtMDktMzAgMTY6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1lbnVtcy5tMmk6CgogICBzZXQgZW1hY3MgbW9kZSB0byBjOyBnZW5lcmF0ZSBkZWZpbmUgZm9yIG1hc2sgb2YgYWxsIGJpdHMKICAgCjIwMDMtMDktMzAgMTQ6MjcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIHh4eCB0YWdnaW5nLgogICAKMjAwMy0wOS0zMCAxNDoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICBjcmVhdGUgdGhlIE1ha2VmaWxlIHRvIGVpdGhlciByZWZlcmVuY2UgYSBOZXQtU05NUCBzb3VyY2UgZGlyIG9yIG5vdAogICAgIChhbmQgcmVxdWlyZSBnbnUtbWFrZSBvciBub3QpLgogICAKMjAwMy0wOS0zMCAwNjo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgbmV3IGZsYWcvdG9rZW4gc3RyaWN0X3Vua190b2tlbiB3aWxsIGFib3J0IG9uIHVua25vdyBAdG9rZW4KICAgCjIwMDMtMDktMzAgMDY6MzggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oOgoKICAgYWRkIG5ldHNubXBfY2hlY2tfdmJfc2l6ZSwgbmV0c25tcF9jaGVja192Yl9zaXplX3JhbmdlCiAgIGFuZCBuZXRzbm1wX2NoZWNrX3ZiX3Jvd3N0YXR1c192YWx1ZQogICAKMjAwMy0wOS0zMCAwNjozNyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgbW9yZSBudWxsIHB0ciBjaGVja3M7IGFkZCBuZXRzbm1wX2NoZWNrX3ZiX3NpemUsIG5ldHNubXBfY2hlY2tfdmJfc2l6ZV9yYW5nZQogICBhbmQgbmV0c25tcF9jaGVja192Yl9yb3dzdGF0dXNfdmFsdWUKICAgCjIwMDMtMDktMzAgMDY6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksCiAgIGdlbmVyaWMtZ2V0LWNoYXIubTJpLCBnZW5lcmljLWdldC1kZWNsLWJvdC5tMmksCiAgIGdlbmVyaWMtZ2V0LWRlY2wubTJpLCBnZW5lcmljLWdldC1sb25nLm0yaSwKICAgZ2VuZXJpYy1nZXQtb2lkLm0yaSwgZ2VuZXJpYy1oZWFkZXItYm90dG9tLm0yaSwKICAgZ2VuZXJpYy1oZWFkZXItdG9wLm0yaSwgZ2VuZXJpYy1zb3VyY2UtaW5jbHVkZXMubTJpLAogICBnZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpLCBnZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaQosIGdlbmVyaWMtdmFsdWUtbWFwLm0yaSwgbTJjX3NldHVwX2VudW0ubTJpLAogICBtZmQtZGF0YS1hY2Nlc3MubTJjLCBub2RlLXN0b3JhZ2UubTJpLAogICBzeW50YXgtSW5ldEFkZHJlc3MtZ2V0Lm0yaSwgc3ludGF4LUluZXRBZGRyZXNzLXNldC5tMmksCiAgIHN5bnRheC1JbmV0QWRkcmVzc1R5cGUtZ2V0Lm0yaSwKICAgc3ludGF4LUluZXRBZGRyZXNzVHlwZS1zZXQubTJpLCBzeW50YXgtUm93U3RhdHVzLWdldC5tMmkKLCBzeW50YXgtVGVzdEFuZEluY3ItZ2V0Lm0yaToKCiAgIHNldCBlbWFjcyBtb2RlIHRvIGMKICAgCjIwMDMtMDktMzAgMDY6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1ub2RlLm0yaToKCiAgIHNldCBlbWFjcyBtb2RlIHRvIGM7IGZpeCBnZW5lcmF0ZWQgY29tbWVudAogICAKMjAwMy0wOS0zMCAwNjoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgbmV3IGZsYWcgZm9yIGluY2x1ZGluZyBleGFtcGxlIGNvZGUKICAgCjIwMDMtMDktMjkgMjI6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtcmVhZG1lLm0yaQosIG1mZC1yZWFkbWUubTJjOgoKICAgTWlzYyB1cGRhdGVzIGZvciByZWFkYWJpbGl0eSwgZXRjLgogICAKMjAwMy0wOS0yOSAxNjo0MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgSW5pdGlhbCB3b3JkIHNtaXRoaW5nIG9mIHRoZSBnbG9iYWwgUkVBRE1FLgogICAKMjAwMy0wOS0yOSAxNTo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBTdXBwb3J0IGEgLUkgc3dpdGNoIHRvIHNwZWNpZnkgY29uZmlnIGZpbGUgc2VhcmNoIHBhdGhzLgogICAKMjAwMy0wOS0yOSAxNTozMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIG1pc3Npbmcgc29tZSBlbmQgc3RhdGVtZW50cwogICAKMjAwMy0wOS0yOSAxNDoyNyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHJlZmVyZW5jZSBuZXcgZGlzbWFuIGZlYXR1cmVzCiAgIAoyMDAzLTA5LTI5IDE0OjI1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IChwb29ybHkgb2YgY291cnNlKSBuZXcgbW9uaXRvcmluZyBmZWF0dXJlcy4KICAgCjIwMDMtMDktMjkgMTQ6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmM6CgogICAtIHRyYXBFdmVudCAtPiBub3RpZmljYXRpb25FdmVudAogICAKMjAwMy0wOS0yOSAxNDoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYzoKCiAgIC0gbGlua1VwRG93blRyYXBzIC0+IGxpbmtVcERvd25Ob3RpZmljYXRpb25zCiAgIAoyMDAzLTA5LTI5IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBtdGVFdmVudFRhYmxlLmMsIG10ZUV2ZW50VGFibGUuaAosIG10ZVRyaWdnZXJUYWJsZS5jOgoKICAgLSBBIG5ldyBzbm1wZC5jb25mIHRva2VuICh0cmFwRXZlbnQpIGZvciBnZW5lcmF0aW5nIHRyYXBzIG9mIGFueSBraW5kCiAgICAgb24gYSBtb25pdG9yaW5nIGV2ZW50IGFuZCBhIC1lIHN3aXRjaCB0byBtb25pdG9yIHRva2VuIHRvIHJlZmVyZW5jZSBpdC4KICAgLSBBIG5ldyBzbm1wZC5jb25mIHRva2VuIGxpbmtVcERvd25UcmFwcyB0byBlbmFibGUgbGlua1VwL2xpbmtEb3duCiAgICAgdHJhcHMgdXNpbmcgdGhlIGFib3ZlIHBpZWNlLgogICAKMjAwMy0wOS0yOSAwNzowMCAgaGFyZGFrZXIKCiAgICogZGlzdC9zbm1wZC1pbml0LmQ6CgogICAvZXRjL2luaXQuZCAtPiAvZXRjL3JjLmQvaW5pdC5kCiAgIAoyMDAzLTA5LTI4IDIxOjU4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIHJlbW92ZSBjb21tZW50IGluIGNvbW1lbnQgcHJvYmxlbS4KICAgCjIwMDMtMDktMjggMTk6NTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmOgoKICAgQWRkZWQgRGF2ZSdzIHJlYWxseSBjb2xsIGFzY2lpIGRpYWdyYW0gZnJvbSAtdXNlcnMgZXhwbGFpbmluZyBob3cKICAgdHJhcHMgYXJlIHNlbnQgdG8gdGhlaXIgZGVzdGluYXRpb25zIG92ZXIgYW55IFNOTVAgdmVyc2lvbi4KICAgCjIwMDMtMDktMjggMTk6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgQWRkZWQgRGF2ZSdzIHJlYWxseSBjb2xsIGFzY2lpIGRpYWdyYW0gZnJvbSAtdXNlcnMgZXhwbGFpbmluZyBob3cKICAgdHJhcHMgYXJlIHNlbnQgdG8gdGhlaXIgZGVzdGluYXRpb25zIG92ZXIgYW55IFNOTVAgdmVyc2lvbi4KICAgCjIwMDMtMDktMjYgMjI6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIHByb3Blcmx5IG1hbGxvYyB0aGUgZW50ZXJwcmlzZSBwb2ludGVyIGJlZm9yZSB1c2luZyBpdC4KICAgCjIwMDMtMDktMjYgMjE6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAueHMgKFY1LTAtcGF0Y2hlcy40KSwgU05NUC54czoKCiAgIGNvcnJlY3QgbGVuZ3RoIGluIHN0cmluZyBmaXhlZCBzdHJpbmcgY29tcGFyaXNvbgogICAKMjAwMy0wOS0yNiAxNjoxOSAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgbWlzYyBpbnN0YWxsIGZpeGVzIChtb3N0bHkgcGVybCkgYW5kIG9uZSBwZXJsIHBhdGNoLgogICAKMjAwMy0wOS0yNiAxMDozMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC54cyAoVjUtMC1wYXRjaGVzLjMpLCBTTk1QLnhzOgoKICAgZml4IHVzZU51bWVyaWMgb25jZSBhbmQgZm9yIGFsbCAobWF5YmUpCiAgIAoyMDAzLTA5LTIwIDIyOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dydW4uYyAoVjUtMC1wYXRjaGVzLjEpLCBocl9zd3J1bi5jCjoKCiAgIFBhdGNoICM4MDkyNDMgZm9yIGJ1ZyAjODA4OTIwIGZyb20gQm9iIFIuIGZvciBmaXhpbmcgcHJvY2VzcyBuYW1lIGRpc2NyZXBlbmN5IChwcyB2cyBTTk1QKQogICAKMjAwMy0wOS0yMCAyMjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IGluc3RhbmNlLmMgKFY1LTAtcGF0Y2hlcy4xKSwgaW5zdGFuY2UuYzoKCiAgIHBhdGNoICM4MDc0MTQgZm9yIGJ1ZyAjNzU3OTIzIGJ5IEJvYiBSb3dsYW5kcyB0byBmaXggaW50IHdhdGNoaW5nIG9uIDY0IGJpdCBzeXN0ZW1zCiAgIAoyMDAzLTA5LTE3IDIwOjE2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9tZmQuYzoKCiAgIHVzZSBuZXQgZGF0YV9saXN0X2FkZF9kYXRhCiAgIAoyMDAzLTA5LTE3IDE3OjQ4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9tZmQuaDoKCiAgIGNoYW5nZSBtZmQgYXBpIHBhcmFtZXRlcnMKICAgCjIwMDMtMDktMTcgMTc6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB1c2UgbmV3IGlubGluZSBtYWNyb3M7IGFsd2F5cyBjcmVhdGUgYWdlbnRfcmVxX2luZm8gd2hlbiBjcmVhdGluZyBhc3A7IG1vdmUKICAgZ2V0YnVsayByZW9yZGVyIGNvZGUgaW50byBhbiBpbmxpbmUgZnVuY3Rpb24gZm9yIGNvZGUgcmVhZGFiaWxpdHk7IGRlcHJlY2F0ZQogICBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yIGFuZCBuZXRzbm1wX3NldF9tb2RlX3JlcXVlc3RfZXJyb3IgaW4gZmF2b3IKICAgb2YgbmV3IG5ldHNubXBfcmVxdWVzdF9zZXRfZXJyb3I7IGRlcHJlY2F0ZSBuZXRzbm1wX3NldF9hbGxfcmVxdWVzdHNfZXJyb3IgaW4KICAgZmF2b3Igb2YgbmV3IG5ldHNubXBfcmVxdWVzdF9zZXRfZXJyb3JfYWxsOyB0cnkgYW5kIHJldHVybiB1c2VmdWwgZXJyb3IgY29kZXMKICAgCjIwMDMtMDktMTcgMTc6MjkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oOgoKICAgbWFrZSBzdXJlIHBhcmFtcyBhcmUgdW5pcXVlCiAgIAoyMDAzLTA5LTE3IDE3OjI0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGF1dG9oZWFkZXIgdXBkYXRlIGZvciBuZXcgYWNjb25maWcuaAogICAKMjAwMy0wOS0xNyAxNzowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfZW51bS5tMmk6CgogICBzZXR1cCBmb3IgZW51bSB2YXJzCiAgIAoyMDAzLTA5LTE3IDE3OjA1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgcmVtb3ZlIGNyZWF0ZV91bmRvX2NvbnRleHQgKGFzc3VtaW5nIHVuZG9fY29udGV4dCA9PSBkYXRhX2NvbnRleHQgZm9yIG5vdyk7CiAgIGZpeCBsb2cgbGV2ZWwgbWFjcm87IGFsbG9jYXRlX2RhdGFfY29udGV4dCBtb3ZlZCBlbHNld2hlcmUKICAgCjIwMDMtMDktMTcgMTc6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LWRlcGVuZGVuY2llcy5tMmk6CgogICBmaXggcGFyYW1hdGVyIHR5cGU7CiAgIAoyMDAzLTA5LTE3IDE2OjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICBkb24ndCBuZWVkIHNvdXJjZSBkaXIgaWYgd2UgdXNlIG5ldyBuZXQtc25tcC1jb25maWcgLS1idWlsZC1pbmNsdWRlczsgYWRkCiAgIGJ1aWxkL3NyYyBkaXIgLUkgcGF0aHMgYmVmb3JlIGJhc2UgY2ZsYWdzCiAgIAoyMDAzLTA5LTE3IDE2OjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgdXNlIG5ldyBpbmxpbmUgbWFjcm9zOyBhZGQgb2JqZWN0X3N5bnRheF9jaGVjayBwcm9jZXNzaW5nOwogICAKMjAwMy0wOS0xNyAxNjo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgb25seSBpbmNsdWRlIHBhcmVudC1zZXQgaWYgZGF0YSBjb250ZXh0IGlzIGdlbmVyYXRlZCAmIGFsbG9jYXRlZAogICAKMjAwMy0wOS0xNyAxNjo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBwZXIgbm9kZSBzZXR1cCBmb3IgZW51bXMKICAgCjIwMDMtMDktMTcgMTY6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWdldC1jaGFyLm0yaSwKICAgZ2VuZXJpYy12YWx1ZS1tYXAubTJpOgoKICAgbmV3IGZpbGUgdG8gc2V0dXAgZW51bXMgdmFycwogICAKMjAwMy0wOS0xNyAxNjo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWVudW1zLm0yYzoKCiAgIG5ldyBmaWxlIHRvIGdlbmVyYXRlIGVudW1zIGhlYWRlciBmaWxlCiAgIAoyMDAzLTA5LTE3IDE2OjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1jdHgtZ2V0Lm0yaSwKICAgZ2VuZXJpYy1jdHgtc2V0Lm0yaSwgZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLAogICBtMmNfc2V0dXBfdGFibGUubTJpLCBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpCjoKCiAgIG5ldyBtMmNfZGF0YV9pdGVtIGZvciBnZXR0aW5nIHRvIGRhdGEgaXRlbXMsIHNvIGluY2x1ZGVzIGRvbid0IG5lZWQgdG8ga25vdwogICB3aGV0aGVyIG9yIG5vdCB0byB1c2UgZGF0YS0+aXRlbSBvciBkYXRhLml0ZW0uCiAgIAoyMDAzLTA5LTE3IDE2OjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtZW51bXMubTJpOgoKICAgbW92ZSBzb21lIHNldHVwIGZvciBlbnVtcyB0byBtMmNfc2V0dXBfbm9kZSBhbmQgbmV3IG0yY19zZXR1cF9lbnVtOyBhZGQgc29tZQogICBjb21tZW50cyBhbmQgZXhhbXBsZXMgdG8gZG9jdW1lbnQgcHJvY2VzcyBmbG93OyBtb3ZlIHNvbWUgY29tbWVudHMgdG8gdGhlCiAgIHRvcCBvZiB0aGUgaGVhZGVyIGluc3RlYWQgZm9yIGVhY2ggbm9kZTsgbWFrZSBzdXJlIGludGVybmFsIG1hcHBpbmcKICAgZGVmaW5lcyBhcmUgdW5pcXVlIHBlciBub2RlCiAgIAoyMDAzLTA5LTE3IDE2OjMyICByc3RvcnkKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIHVzZSBkb3h5Z2VuIGRlcHJlY2F0ZWQgdGFnIGluc3RlYWQgb2Ygc2ltcGxlIGNvbW1lbnRzCiAgIAoyMDAzLTA5LTE3IDE2OjI5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICB1c2UgbmV3IGlubGluZSBtYWNyb3M7IGNoYW5nZSBGSVJTVCB0byB1c2UgZmluZF9uZXh0IGluc3RlYWQgb2YgZmluZDsgYWRkCiAgIGZ1bmMgcG9pbnRlciBmb3IgaXRlbSBtZW1vcnkgZnJlZQogICAKMjAwMy0wOS0xNyAxNjoxMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmg6CgogICBwcm90b3R5cGUgZm9yIG5ldyBjaGVja192Yl90eXBlCiAgIAoyMDAzLTA5LTE3IDEzOjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICBhZGQgY29tbWVudHM7IGFkZCBhZ2VudF9yZXF1ZXN0X2luZm8gcHRyIHRvIHJlcXVlc3RfaW5mbzsgYWRkCiAgIG5ldHNubXBfcmVxdWVzdF9zZXRfZXJyb3I7IGRlcHJlY2F0ZSBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yIGFuZAogICBuZXRzbm1wX3NldF9tb2RlX3JlcXVlc3RfZXJyb3I7IHVzZSBuZXcgaW5saW5lIG1hY3JvczsgcmVtb3ZlIHVudXNlZCBwZHUKICAgcG9pbnRlciBmcm9tIGFnZW50X3JlcXVlc3RfaW5mbwogICAKMjAwMy0wOS0xNyAxMzowNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfbWZkLmM6CgogICBmb3Igc2V0LCBzYXZlIHJvdyBpbiBmaXJzdCByZXF1ZXN0OyBjaGcgbWZkIHBhcmFtIGxpc3Q7IGRvbid0IGNhbGwgbGF0ZXIKICAgbW9kZXMgdW5sZXNzIHJvdyBleGlzdHM7IGNhbGwgbG93ZXIgaGFuZGxlcnM7CiAgIAoyMDAzLTA5LTE3IDEyOjM0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLCBzbm1wbGliL2RhdGFfbGlzdC5jCjoKCiAgIHVzZSBuZXcgaW5saW5lIG1hY3JvczsgYWRkIGRhdGFfbGlzdF9hZGRfbm9kZSwgZGF0YV9saXN0X2FkZF9kYXRhCiAgIAoyMDAzLTA5LTE3IDEyOjA4ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIHVzZSBuZXcgaW5saW5lIG1hY3JvcwogICAKMjAwMy0wOS0xNyAxMjowMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmg6CgogICBuZXcgbmV0c25tcF9kYXRlYW5kdGltZV9zZXRfYnVmX2Zyb21fdmFycwogICAKMjAwMy0wOS0xNyAxMTo1OCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgbmV3IG5ldHNubXBfZGF0ZWFuZHRpbWVfc2V0X2J1Zl9mcm9tX3ZhcnMKICAgCjIwMDMtMDktMTcgMDk6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgdXNlIG5ldyBpbmxpbmUgbWFjcm8KICAgCjIwMDMtMDktMTcgMDk6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIHVzZSBuZXcgaW5saW5lIG1hY3JvczsgbmV3IGNoZWNrX3ZiX3R5cGUKICAgCjIwMDMtMDktMTcgMDk6NDggIHJzdG9yeQoKICAgKiBzbm1wbGliLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgYmluYXJ5IGFycmF5IHRlc3QgYmluYXJ5CiAgIAoyMDAzLTA5LTE3IDA5OjQ2ICByc3RvcnkKCiAgICogd2luMzIvOiBjb25maWcuaCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICB1cGRhdGUgZm9yIG5ldyBpbmxpbmUgbWFjcm9zIChJIHRoaW5rIG1pY3Jvc2xvdGggc3VwcG9ydHMgaW5saW5lKQogICAKMjAwMy0wOS0xNyAwOTo0MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogYWl4LmgsIGhwdXguaCwgaXJpeC5oCiwgb3NmNS5oOgoKICAgdHVybiBvZmYgbmV0LXNubXAgdXNlIG9mIGlubGluZSBmb3Igbm9uLWdjYyBjb21waWxlcnMgKGRvbid0IHVuZGVmIGlubGluZSkKICAgCjIwMDMtMDktMTcgMDk6MzggIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgZGVmaW5lIChhbmQgY29tbWVudCkgbWFjcm9zIGZvciBoYW5kbGluZyBpbmxpbmUgdXNlIGluIG5ldC1zbm1wCiAgIAoyMDAzLTA5LTE3IDA5OjM3ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgbXYgYnVpbGQgZGlyIGNoZWNrIHRvIHN1YnJvdXRpbmU7IGFkZCBtaXNzaW5nIE5TQ19TUkNfTElCRElSUzsgYWRkIG5ldwogICAtLWJ1aWxkLWluY2x1ZGVzCiAgIAoyMDAzLTA5LTE3IDA5OjMzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYWRkIC1XaW5saW5lIHRvIGRldiBmbGFncwogICAKMjAwMy0wOS0xNyAwOTozMyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgZ2l2ZSByZWFzb24gd2hlbiByZS1ydW5uaW5nIGNvbmZpZy5zdGF0dXMKICAgCjIwMDMtMDktMTYgMTc6MjUgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIHBldGVyIGhpY2tzCiAgIAoyMDAzLTA5LTE2IDE3OjI0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIFBhdGNoIGZyb20gUGV0ZXIgSGlja3MgZm9yIGEgbmV3IGdldF90YWJsZSBmdW5jdGlvbgogICAKMjAwMy0wOS0xNiAxNzowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBVRFBJUHY2RG9tYWluLmMgKFY1LTAtcGF0Y2hlcy4xKSwKICAgc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFBhdGNoIGZyb20gS2F0c3VoaXNhIEFCRSBmcm9tIC11c2VycyB0byBmaXggYSBtYXNraW5nIHByb2JsZW0KICAgCjIwMDMtMDktMTIgMTI6NDMgIGhhcmRha2VyCgogICAqIGRpc3QvOiBSRUxFQVNFLUlOU1RSVUNUSU9OUywgbmV0LXNubXAuc3BlYzoKCiAgIC0gbWlub3IgY2hhbmdlcyBmb3IgaW1wcm92ZWQgcGVybCBNYWtlZmlsZS5QTCBhcmd1bWVudCBzdXBwb3J0ICg+PSA1LjAuOSkKICAgCjIwMDMtMDktMTIgMTE6MDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluIChWNS0wLXBhdGNoZXMuMiksIE1ha2VmaWxlLmluOgoKICAgUGF0Y2ggZm9yIC0td2l0aC1wZXJsLW1vZHVsZXMgZXh0cmEgYXJndW1lbnQgc3VwcG9ydAogICAKMjAwMy0wOS0xMiAwNjoyOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBjb25maWcuaW4KICAgCjIwMDMtMDktMTIgMDY6MjUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggbWlzLW1hdGNoZWQgcGFyZW5zCiAgIAoyMDAzLTA5LTExIDE1OjUwICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHVzZSBuZXcgbmV0c25tcF9kYWVtb25pemUgbGlicmFyeSBjYWxsCiAgIAoyMDAzLTA5LTExIDE1OjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mOgoKICAgbW92ZSBjb21tZW50cyBhYm91dCByb3V0aW5lcyBjbG9zZXIgdG8gcm91dGluZXMgdG8gcmVkdWNlIGNvbmZ1c2lvbgogICAKMjAwMy0wOS0xMSAxNTo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIEBkZWJ1Z0AgdG9rZW4gdG8gdHVybiBkZWJ1ZyBvbi9vZmY7IHByaW50IGxvY2F0aW9ucyBmb3IgbW9yZSB3YXJuaW5ncy9lcnJvcnMKICAgCjIwMDMtMDktMTEgMTU6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYzoKCiAgIGRlZmF1bHRzIGZvciB0d28gbmV3IGZsYWdzOiByZWFkbWVfdmVyYm9zZSBhbmQgZGF0YV90cmFuc2llbnQKICAgCjIwMDMtMDktMTEgMTU6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LURhdGVBbmRUaW1lLXJlYWRtZS5tMmk6CgogICByZWFkbWUgZm9yIERhdGVBbmRUaW1lCiAgIAoyMDAzLTA5LTExIDE1OjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1EYXRlQW5kVGltZS1nZXQubTJpOgoKICAgYWRkIGJ1ZiBsZW4gcGFyYW0gdG8gbmV0c25tcF9kYXRlYW5kdGltZV9zZXQKICAgCjIwMDMtMDktMTEgMTU6MzMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICB1bi1jb21tZW50IGluY2x1ZGUgb2YgZW51bXMgaGVhZGVyOyBtb3ZlIGFsbCBkYXRhIGNvbnRleHQgcHJvY2Vzc2luZyBpbnRvCiAgIGluY2x1ZGU7IGRvbid0IGFzc3VtZSBwb2ludGVycyB0byBkYXRhL3VuZG8gY29udGV4dHM7IG9ubHkgZGVmaW5lIHByb3RvdHlwZQogICBmb3IgYWxsb2NhdGVfZGF0YSBpZiBuZWVkZWQ7IHJ1biBlbnVtIGhlYWRlciBjb25mIGZpbGU7IHJ1biBuZXcgcmVhZG1lIGNvbmYgZmlsZQogICAKMjAwMy0wOS0xMSAxNDoxMiAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBidWlsZC1saWItZGVwcwogICAKMjAwMy0wOS0xMSAxNDowNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgb3BlbiBmaWxlIGVhcmxpZXI7IHVzZSBuZXcgdmFyIGZvciBkZWZhdWx0IE5FVFNOTVBESVI7IGRvbid0IGFzc3VtZSBORVRTTk1QRElSCiAgIGlzIHNvdXJjZWRpcjsgdXNlIG5ldyBuZXQtc25tcC1jb25maWcgb3B0aW9ucyBmb3IgZ2V0IGxpYiBkaXJzL2RlcHMKICAgCjIwMDMtMDktMTEgMTM6NTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBpbmNsdWRlIG5ldyBnZW5lcmljLWRhdGEtYWxsb2NhdGUgaWYgZGF0YV9hbGxvY2F0ZSBzZXQgYW5kIGRhdGFfY29udGV4dCBpcwogICBnZW5lcmF0ZWQ7IG1vdmUgdGFibGVfKGFsbG9jYXRlfHJlbGVhc2UpX2N0eCBoZXJlCiAgIAoyMDAzLTA5LTExIDEzOjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmk6CgogICBuZXcgZmlsZSBmb3IgYWxsb2NhdGUvcmVsZWFzZSBvZiBkYXRhIGNvbnRleHQKICAgCjIwMDMtMDktMTEgMTM6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtZ2V0Lm0yYzoKCiAgIG1vdmUgZGF0YSBhbGxvY2F0ZS9yZWxlYXNlIHRvIGl0J3Mgb3duIGluY2x1ZGU7IG9ubHkgaW5jbHVkZSBpdCBpZiBkYXRhX2FsbG9jYXRlCiAgIHNldCBhbmQgZGF0YV9jb250ZXh0IGlzbid0IGdlbmVyYXRlZAogICAKMjAwMy0wOS0xMSAxMzo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtcmVhZG1lLm0yaQosIG1mZC1yZWFkbWUubTJjOgoKICAgbmV3IHJlYWRtZSBnZW5lcmF0aW9uCiAgIAoyMDAzLTA5LTExIDEzOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaW50ZXJmYWNlLm0yaQo6CgogICB3cmFwIGdldF9maXJzdC9nZXRfbmV4dCBzbyB3ZSBjYW4gbW92ZSBpbmRleDJvaWQgaGVyZSBhbmQgbWFrZSBpdCBzdGF0aWMKICAgCjIwMDMtMDktMTEgMTM6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaToKCiAgIG9ubHkgZ2VuZXJhdGUgdGFiZV9nZXRfZGF0YSBmb3IgdHJhbnNpZW50IGRhdGE7IG1vdmUgaW5kZXgyb2lkIGludG8gaW50ZXJmYWNlCiAgIGNvZGU7IGdlbiBkaWZmZXJlbnQgY29kZSBiYXNlZCBvbiBkYXRhIHRyYW5zaWVudCBzZXR0aW5nCiAgIAoyMDAzLTA5LTExIDEzOjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICBkZWZhdWx0IHRvIGdlbmVyYXRlZCwgbm9uLWFsbG9jYXRlZCBkYXRhX2NvbnRleHQKICAgCjIwMDMtMDktMTEgMTM6NDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmk6CgogICBmaXggcmVuYW1lZCB2YXIKICAgCjIwMDMtMDktMTEgMTM6NDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1vaWRzLm0yYzoKCiAgIGRvbid0IGluY2x1ZGUgZW51bSBzdHVmZiBpbiBvaWQgaGVhZGVyCiAgIAoyMDAzLTA5LTExIDEzOjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmk6CgogICByZW1vdmUgdW51c2VkIG93bmVyIHB0cgogICAKMjAwMy0wOS0xMSAxMzozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1kZWNsLWJvdC5tMmk6CgogICBmaXggbGVuX3B0ciB2YXJpYWJsZSBuYW1lCiAgIAoyMDAzLTA5LTExIDEzOjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LWNoYXIubTJpOgoKICAgZGVmaW5lIElTX1NFVF8qIG1hY3JvcyBoZXJlIGluc3RlYWQgb2YgaW4gaGVhZGVyCiAgIAoyMDAzLTA5LTExIDEzOjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaToKCiAgIG1lcmdlIGRhdGEgc3RydWN0IGJhY2sgaW50byBzaW5nbGUgdHlwZWRlZjsgZG9uJ3QgZ2VuZXJhdGUgc3RydWN0IGlmIHVzZXIKICAgc3BlY2lmaWVkIGV4aXN0aW5nIHN0cnVjdDsgYWRkICogaW4gdHlwZWRlZiBpZiBkYXRhX2FsbG9jYXRlIHNldAogICAKMjAwMy0wOS0xMSAxMzozNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1jb3B5Lm0yaToKCiAgIHJlbW92ZSBleGFtcGxlIHN0YXJ0L2VuZCAocGFyZW50IGRlY2lkZXMgdGhhdCkKICAgCjIwMDMtMDktMTEgMTM6MzUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy10YWJsZS5tMmk6CgogICBtb3JlIGRpc3RpbmN0aXZlIHNlcGFyYXRvciBiZWZvcmUgdGFibGVzCiAgIAoyMDAzLTA5LTExIDEzOjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtZW51bXMubTJpOgoKICAgcmVtb3ZlIElTX1NFVF8qIG1hY3JvczsgdHdlYWsgY29uZGl0aW9ucyBmb3IgZ2VuZXJhdGluZyBlbnVtcyBhbmQgbWFwcGluZwogICBtYWNyb3MKICAgCjIwMDMtMDktMTEgMTM6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgbmV3IG5ldHNubXBfZGFlbW9uaXplCiAgIAoyMDAzLTA5LTExIDEzOjA1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgcmVkdWNlIHNjb3BlIG9mIHN1bidzIGNvcHlyaWdodCBjbGFpbTsgYmFpbCBpZiBuZXQtc25tcC1jb25maWcgbm90IGluY2x1ZGVkOwogICBwcm90b3R5cGUgZm9yIG5ldyBuZXRzbm1wX2RhZW1vbml6ZQogICAKMjAwMy0wOS0xMSAxMjo1NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5jOgoKICAgZml4IGNvbW1lbnQgdHlwbzsgZG9jdW1lbnQgcG9zc2libGUgcmFjZSBjb25kaXRpb24gYW5kIG1vdmUgb25lIGxpbmUgdG8KICAgbWFrZSB3aW5kb3cgc21hbGxlcgogICAKMjAwMy0wOS0xMSAxMjo1NSAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIHVzZSB2YXJzIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHVuZGVyc3RhbmQgd2hhdCBmbGFncyBhcmUgd2hhdCBpbiBnZW5lcmF0ZWQKICAgdmVyc2lvbjsgZ3JvdXAgc2ltaWxhciBvcHRpb25zIHRvZ2V0aGVyOyBhZGQgb3B0aW9ucyB0byB0byBnZXQgc291cmNlCiAgIGRpcmVjdG9yeSBhbmQgbGliIHBhdGggaW4gYnVpbGQgZGlyOyBhZGQgLS1iYXNlLXN1YmFnZW50LWxpYnMgKG5vIGxpYiBwYXRoKSwKICAgLS1saWJkaXIKICAgCjIwMDMtMDktMTEgMDg6MzMgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlnLmluCiAgIAoyMDAzLTA5LTExIDA4OjI2ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgdHJhcCBiYWQgb3B0aW9ucyAtLXdpdGgtbW9kdWxlcyBvciAtLXdpdGgtb3V0LW1vZHVsZXMKICAgCjIwMDMtMDktMDUgMjM6MzcgIGhhcmRha2VyCgogICAqIFJFQURNRSAoVjUtMC1wYXRjaGVzLjcpLCBSRUFETUU6CgogICBhZGRlZCBCb2IgUm93bGFuZHMKICAgCjIwMDMtMDktMDUgMjI6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZS5jLCB0YWJsZV9pdGVyYXRvci5jIChWNS0wLXBhdGNoZXMuWzIsMl0pLAogICB0YWJsZS5jLCB0YWJsZV9pdGVyYXRvci5jOgoKICAgUGF0Y2ggIzgwMDU2MSBmcm9tIEJvYiBSb3dsYW5kcyB0byBmaXggNjRiaXQgcHJvYmxlbXMgKC0+IHNpemVfdCkKICAgCjIwMDMtMDktMDUgMjI6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IHByb3RvY29sLmMgKFY1LTAtcGF0Y2hlcy4xKSwgcHJvdG9jb2wuYwo6CgogICBQYXRjaCAjODAwNDg1IGZyb20gQm9iIFJvd2xhbmRzIGZvciA2NCBiaXQgYWdlbnR4IHByb2JsZW1zCiAgIAoyMDAzLTA5LTA1IDIyOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcHVzbS5jIChWNS0wLXBhdGNoZXMuMSksIHNubXB1c20uYzoKCiAgIFBhdGNoICM3OTIwMDggZnJvbSBUaG9tYXM/IHRvIGFsbG93IHVzbVVzZXIgdG9rZW5zIHRvIG92ZXJyaWRlIHByZXZpb3VzIGVudHJpZXMKICAgCjIwMDMtMDktMDUgMjI6MDQgIGhhcmRha2VyCgogICAqIG1hbi86IG1pYjJjLjEuZGVmLCBzbm1wY21kLjEuZGVmLCBzbm1wZGVsdGEuMSwgc25tcGRmLjEsCiAgIHNubXBuZXRzdGF0LjEsIHNubXBzdGF0dXMuMS5kZWYsIHNubXB0YWJsZS4xLmRlZiwgc25tcHRlc3QuMS5kZWYsCiAgIHNubXB0cmFuc2xhdGUuMS5kZWYgKFY1LTAtcGF0Y2hlcy5bMiwyLDEsMSwxLDEsMSwxLDFdKSwgbWliMmMuMS5kZWYKLCBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgbmV0c25tcF9zZXRfZGF0YS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF93YXRjaGVyLjMKLCBzbm1wY21kLjEuZGVmLCBzbm1wZGVsdGEuMSwgc25tcGRmLjEsCiAgIHNubXBuZXRzdGF0LjEsIHNubXBzdGF0dXMuMS5kZWYsIHNubXB0YWJsZS4xLmRlZiwKICAgc25tcHRlc3QuMS5kZWYsIHNubXB0cmFuc2xhdGUuMS5kZWY6CgogICBQYXRjaCAjNzg5NDg1IGZyb20gQm9iIFJvd2xhbmRzIGZvciBhIGxvbmcgbmVlZGVkIG92ZXJoYXVsIG9mIHRoZSBtYW51YWwgcGFnZXMuCiAgIAoyMDAzLTA5LTA1IDIxOjIxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4gKFY1LTAtcGF0Y2hlcy5bOSw5LDldKSwKICAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkIG9wdGlvbmFsIGFyZ3VtZW50cyB0byB0aGUgLS13aXRoLXBlcmwtbW9kdWxlcyBmbGFnIGZvciBwYXNzaW5nIGRvd24KICAgCjIwMDMtMDktMDUgMTY6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgKICAgKFY1LTAtcGF0Y2hlcy5bNCwyXSksIGFnZW50L3NubXBfYWdlbnQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICAtIGZpeCBhIGdldGJ1bGsgYnVnIHBvaW50ZWQgb3V0IGJ5IEp1cmlqIFNtYWtvdi4KICAgCjIwMDMtMDktMDUgMDY6MjUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oLCBhZ2VudC9hZ2VudF90cmFwLmMKOgoKICAgUmUtd3JpdHRlbiBpbnRlcm5hbHMgb2YgYWdlbnQgdHJhcCBnZW5lcmF0aW9uLgogICBXb3JrIHdpdGggc2VwYXJhdGUgdjEgYW5kIHYyIHRlbXBsYXRlIFBEVXMsIGFuZCBzZXBhcmF0ZQogICAoc3RhbmRhbG9uZSkgcm91dGluZXMgdG8gY29udmVydCBiZXR3ZWVuIHRoZW0sIGZvbGxvd2luZyBSRkMgMjU3NiwKICAgSG9wZWZ1bGx5IGEgc29tZXdoYXQgY2xlYW5lciBhcHByb2FjaCB0aGFuIGJlZm9yZSwKICAgCjIwMDMtMDktMDIgMjM6MDkgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gbmV3IHNwZWMgdG8gaW5jbHVkZSBidWlsZGluZyB0aGUgcGVybCBtb2R1bGVzLgogICAgIC0gZG9uZSBpbiBzb3J0IG9mIGEgdGVtcG9yYXJ5IGhhY2t5IHdheSB0aWxsIHByb3BlciBzdXBwb3J0IGlzIHB1dAogICAgICAgZGlyZWN0bHkgaW50byB0aGUgbWFzdGVyIE1ha2VmaWxlIHRvIHN1cHBvcnQgb3B0aW9uYWwgYXJndW1lbnRzCiAgICAgICBiZWluZyBwYXNzZWQgdG8gdGhlIE1ha2VmaWxlLlBMIHNjcmlwdC4KICAgCjIwMDMtMDktMDIgMjM6MDcgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB1cGRhdGUgdG8gaW5jbHVkZSBSUE0gYnVpbGRpbmcgaW5zdHJ1Y3Rpb25zLgogICAKMjAwMy0wOS0wMiAyMzowNyAgaGFyZGFrZXIKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIE1vZGlmaWNhdGlvbnMgdG8gc3VwcG9ydCBwZXJsIGFuZCBidWlsZGluZyBzb3VyY2UgYW5kIGJpbmFyeSBhdCBvbmNlLgogICAKMjAwMy0wOS0wMiAxNDo1MyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBhZGQgb3B0aW9uIHRvIG5vdCBzb3VyY2Ugfi8ubnNiLW5pZ2h0bHk7IGRvbid0IHJlbW9iZSBidWlsZCBkaXIgb24gc3VjY2VzcyBoZXJlCiAgIAoyMDAzLTA5LTAyIDE0OjUyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWxsb3cgZW52IHZhcnMgdG8gb3ZlcnJpZGUgZGVmYXVsdHMgZm9yIG1vcmUgb3B0aW9uczsgcmVuYW1lIERBVEUgdG8KICAgTlNCX0RBVEU7IG9ubHkgc2NwIG1ha2UgZmlsZXMgZnJvbSB0aGlzIHJ1bjsgYWRkIHVuYW1lIHRvIG91dHB1dAogICAKMjAwMy0wOS0wMSAxNjo0NSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBwcnVuZSBkaXN0L3JwbSBmcm9tIGV0YWdzIHJlc3VsdHMKICAgCjIwMDMtMDgtMjggMDI6MDIgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBBIGNvbmZpZ3VyZSB0b2tlbiB0byBjb250cm9sIHRoZSBhZGRyZXNzZXMvcG9ydHMgdGhhdCB0cmFwZCBsaXN0ZW5zIG9uLgogICAKMjAwMy0wOC0yMiAwMjozOCAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBEb2N1bWVudCB0aGUgZGVmYXVsdCB2ZXJzaW9uIGNoYW5nZS4KICAgCjIwMDMtMDgtMjEgMTQ6MjggIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgbWFrZSB1cGxvYWQgdGFyYmFsbCBuYW1lIGJhc2VkIG9uIGRhdGUKICAgCjIwMDMtMDgtMjEgMDE6NTUgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIElmIGEgR0VUQlVMSyBoaXRzIHRoZSBlbmQgb2YgdGhlIE1JQiB0cmVlLCBtYWtlIHN1cmUgYW55IGVtcHR5IHZhcmJpbmRzCiAgIGFyZSByZXR1cm5lZCBhcyAnZW5kT2ZNaWJWaWV3JyBleGNlcHRpb25zLCByYXRoZXIgdGhhbiAoLjAuMCA9IE5VTEwpCiAgIAogICBJZiAqYWxsKiB0aGUgcmVwZWF0aW5nIHZhcmJpbmRzIGhpdCB0aGUgZW5kIG9mIHRoZSBNSUIgdHJlZSwgdHJ1bmNhdGUKICAgYWZ0ZXIgdGhlIGZpcnN0IGZ1bGwgZW1wdHkgcm93LgogICAKMjAwMy0wOC0yMSAwMTo1MCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSWYgdGhlcmUncyBhIG1peHR1cmUgb2YgInN0aWxsIGFjdGl2ZSIgcmVwZXRpdGlvbnMsIGFuZCBvbmVzIHRoYXQgaGF2ZQogICBhbHJlYWR5IHJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgT0lEIHRyZWUsIHRoZW4gc29tZSBvZiB0aGUgdmFyYmluZCBzdHJ1Y3R1cmVzCiAgIG1heSB3ZWxsIGJlIE5VTEwuCiAgICAgSXQncyBwcmVmZXJhYmxlIHRvIHNraXAgdGhlc2UsIGFuZCBjb250aW51ZSBwcm9jZXNzaW5nIGV2ZXJ5dGhpbmcgZWxzZSwKICAgcmF0aGVyIHRoYW4gY3Jhc2ggdGhlIHNlcnZlcjotKQogICAKMjAwMy0wOC0yMSAwMToyOSAgZHRzMTIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRGVmYXVsdCB0byBnbG9iYWwgU01VWCBhY2Nlc3MgKGFzIGN1cnJlbnRseSksIGJ1dCBzdXBwbHkgYSBjb25maWd1cmUKICAgb3B0aW9uIHRvIHNldCBkZWZhdWx0IFNNVVggYWNjZXNzIHRvIGJlIGxvY2FsaG9zdCBvbmx5LgogICBIYXBweSBub3c/CiAgIAoyMDAzLTA4LTIxIDAxOjI0ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oOgoKICAgRW5zdXJlIHRoYXQgdGhlIFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTiB0b2tlbiByZW1haW5zIGF2YWlsYWJsZQogICB3aGVuIGNvbmZpZ3VyZSBzeXN0ZW0gZmlsZXMgYXJlIHJlY3JlYXRlZC4KICAgCjIwMDMtMDgtMjAgMDI6MzkgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEV4cGFuZCB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIHBvc3QtQlVMSyByZS1vcmdhbmlzYXRpb24sIHNvIGl0J3Mgc29tZXdoYXQKICAgY2xlYXJlciB3aGF0J3MgaGFwcGVuaW5nLiAgSXQgdG9vayBtZSBiZXN0IHBhcnQgb2YgYW4gaG91ciAocGx1cyBpbnNlcnRpbmcKICAgYXNzb3J0ZWQgZGVidWdnaW5nIHN0YXRlbWVudHMpIHRvIG1ha2Ugc2Vuc2Ugb2YgdGhpcyEKICAgCjIwMDMtMDgtMjAgMDI6MzYgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIFJlZ2lzdGVyIE1JQnMgdXNpbmcgdGhlIGxvd2VzdC1sZXZlbCBhdmFpbGFibGUgbmFtZSwgcmF0aGVyIHRoYW4gdGhlCiAgIGZpcnN0IGhhbmRsZXIgaW4gdGhlIGNoYWluLiAgIFRoaXMgbm8gbG9uZ2VyIHJlc3VsdHMgaW4gdGhlIHdob2xlIE1JQgogICByZWdpc3RyeSBiZWluZyBpZGVudGlmaWVkIGFzICJidWxrX3RvX2dldCIhCiAgIAoyMDAzLTA4LTIwIDAyOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGV4dGVuc2libGUuYywgZXh0ZW5zaWJsZS5oOgoKICAgVW5yZWdpc3RlciAocmVsb2NhdGFibGUpIGV4dGVuc2lvbnMgd2hlbiByZS1yZWFkaW5nIHRoZSBjb25maWd1cmF0aW9uIGZpbGUuCiAgIFRoaXMgYWxsb3dzICJleGVjIiBsaW5lcyB0byBiZSByZS1sb2FkZWQgd2l0aG91dCBjYXVzaW5nIHRoZSBhZ2VudCB0byBjcmFzaCEKICAgCjIwMDMtMDgtMTkgMDg6MTIgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQmV0dGVyIGZpeCBmb3IgQnVnICM2MzAzNDguICBUcmVhdCBhbGwgREJQUlQgY2FsbHMgY29uc2lzdGVudGx5LCBhbmQKICAgbWFrZSBzdXJlIHRoZSBQZXJsSU9fcHJpbnRmIGNhbGwgaXMgcGFzc2VkIHRoZSBjb3JyZWN0IHBhcmFtZXRlciBsaXN0LgogICAKMjAwMy0wOC0xOSAwNzozMSAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBXaGF0ZXZlciB0aGUgY2F1c2Ugb2YgYnVnICM2MzAzNDggd2FzLCB0aGlzIGlzbid0IHRoZSBhbnN3ZXIuCiAgIFdpdGggJ1BlcmxJT19mcHJpbnRmJywgaXQgZG9lc24ndCBjb21waWxlISAgTW9yZSBpbnZlc3RpZ2F0aW9uIG5lZWRlZC4KICAgCjIwMDMtMDgtMTkgMDE6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgQWxsb3cgdGhlIChjb21waWxlLXRpbWUpIG9wdGlvbiBvZiByZXN0b3JpbmcgZ2xvYmFsIGFjY2VzcyB0byBTTVVYIHNlcnZpY2VzLgogICBJZiB0aGUgY29uc2Vuc3VzIGlzIHRoYXQgdGhpcyBzaG91bGQgYmUgdGhlIGRlZmF1bHQgKGFzIGN1cnJlbnRseSksIHRoZW4KICAgSSd2ZSBubyBzdHJvbmcgZmVlbGluZ3MgZWl0aGVyIHdheS4gIEZlZWwgZnJlZSB0byBhZGp1c3QgYWNjb3JkaW5nbHkuCiAgIAoyMDAzLTA4LTE5IDAxOjUzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIEF1dG9tYXRpY2FsbHkgcmVsZWFzZSBleHBpcmVkIGNhY2hlIHJlc291cmNlcy4KICAgCjIwMDMtMDgtMTkgMDE6NTIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgSW52YWxpZGF0ZSB0aGUgY2FjaGUgb24gKHN1Y2Nlc3NmdWwpIFNFVCByZXF1ZXN0cy4KICAgVGhpcyBpcyBjdXJyZW50bHkgZG9uZSByZWdhcmRsZXNzIC0gaXQgd291bGQgYmUgc2Vuc2libGUgdG8gbWFrZSBpdAogICBjb25maWd1cmFibGUgb24gYSBwZXItY2FjaGUgYmFzaXMuCiAgIAoyMDAzLTA4LTE4IDE1OjE0ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYzoKCiAgIGNvbW1lbnQgb3V0IGNvZGUgdGhhdCBzaG91bGRuJ3QgaGF2ZSBiZWVuIGNoZWNrZWQgaW4geWV0CiAgIAoyMDAzLTA4LTE4IDE1OjEzICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHVwZGF0ZSBmb3IgY29ycmVjdCBtZXRob2QgdG8gY2xlYW51cCBjb250YWluZXIgZmFjdG9yeSBsaXN0OyByZW1vdmUKICAgcmVsZWFzZV9pZl90b3AgYW5kIF9iYV8qIGZ1bmN0aW9ucwogICAKMjAwMy0wOC0xOCAxNToxMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIHVwZGF0ZSBwcm90b3R5cGUgZm9yIGNvcnJlY3QgZnVuY3Rpb24gdG8gY2xlYW51cCBjb250YWluZXIgZmFjdG9yeSBsaXN0OyBmaXgKICAgY29tbWVudCB0eXBvczsgcmVtb3ZlIHJlbGVhc2VfaWZfdG9wIHByb3RvdHlwZSBhbmQgY2FsbCBpbiBDT05UQUlORVJfRlJFRQogICAKMjAwMy0wOC0xOCAxNTowOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgY2FsbCBjb3JyZWN0IGZ1bmN0aW9uIHRvIGNsZWFudXAgY29udGFpbmVyIGZhY3RvcnkgbGlzdAogICAKMjAwMy0wOC0xOCAxNTowOCAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGRvY3VtZW50IHNlZ2ZhdWx0IGxvY2F0aW9uIGZvciBmdXR1cmUgZml4aW5nCiAgIAoyMDAzLTA4LTE4IDA5OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmM6CgogICBCcmluZyBpbnRvIGxpbmUgd2l0aCBuZXcgY2FjaGUgcmVsZWFzZSBBUEkgZGVmaW5pdGlvbi4KICAgCjIwMDMtMDgtMTggMDg6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX21mZC5jOgoKICAgc291cmNlIGZvciB0YWJsZV9tZmQKICAgCjIwMDMtMDgtMTggMDg6MzAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3Rhc2hfY2FjaGUuaDoKCiAgIG9wcHMuICBtaXNzZWQgdGhlIGhlYWRlcgogICAKMjAwMy0wOC0xOCAwODowNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfbWZkLmg6CgogICBkb24ndCByZWZlcmVuY2Ugbm9uLWV4aXN0ZW50IGZpbGUKICAgCjIwMDMtMDgtMTggMDg6MDEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX21mZC5oOgoKICAgaGVhZGVyIGZvciB0YWJsZV9tZmQKICAgCjIwMDMtMDgtMTggMDY6MzUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2l0ZXJhdG9yLmg6CgogICBoZWFkZXIgZm9yIGNvbnRhaW5lciBpdGVyYXRvcgogICAKMjAwMy0wOC0xOCAwNTo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpY21wLmMsIGlwLmMsIHRjcC5jLAogICB0Y3BUYWJsZS5jLCB1ZHAuYywgdWRwVGFibGUuYzoKCiAgIE5ldyB2NS1zdHlsZSBoYW5kbGVycyBzaG91bGQgb25seSBldmVyIHJlY2VpdmUgTU9ERV9HRVQgcmVxdWVzdHMuCiAgIExvZyBhIHdhcm5pbmcgZm9yIG90aGVyIHVuZXhwZWN0ZWQgKG9yIHVucmVjb2duaXNlZCkgcmVxdWVzdCBtb2Rlcy4KICAgCjIwMDMtMDgtMTggMDM6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWNtcC5jLCBpcC5jLCB0Y3AuYywKICAgdGNwVGFibGUuYywgdWRwLmMsIHVkcFRhYmxlLmM6CgogICBVc2UgdGhlIG5ldyAoaW50ZXJuYWwpIGNhY2hlIHZhbGlkaXR5IGNoZWNraW5nLgogICBRbjogSG93IGNhbiB3ZSBhY2Nlc3MgdGhlIHJlcXVlc3QtaW5mb3JtYXRpb24gc3RydWN0dXJlIChvciBzaW1pbGFyKQogICAgICAgZnJvbSB3aXRoaW4gaXRlcmF0b3IgZGF0YV9wb2ludCByb3V0aW5lcz8KICAgCjIwMDMtMDgtMTggMDM6MTcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIFByb3ZpZGUgYW4gQVBJIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIGEgZ2l2ZW4gY2FjaGUgaXMgY3VycmVudGx5IHZhbGlkLgogICBSZWxlYXNlIG9sZCBjYWNoZSByZXNvdXJjZXMgYmVmb3JlIGxvYWRpbmcgdGhlIG5ldyB2YWx1ZXMuCiAgIE5COiBUaGlzIGludm9sdmVzIGEgY2hhbmdlIGluIHRoZSAnZnJlZScgaG9vayBBUEkuCiAgIAoyMDAzLTA4LTE4IDAzOjE0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBUaGUgbWFjcm8gZnVuY3Rpb24gZGVmaW5pdGlvbnMgcmVseSBvbiBsb2dnaW5nIHJvdXRpbmVzIGZyb20gJ3NubXBfbG9nZ2luZy5jJwogICBzbyB0aGUgYXBwcm9wcmlhdGUgZGVjbGFyYXRpb25zIGFuZCBkZWZpbmVkIGNvbnN0YW50cyBuZWVkIHRvIGJlIGF2YWlsYWJsZS4KICAgCjIwMDMtMDgtMTggMDM6MTIgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQvc25tcF9hZ2VudC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oOgoKICAgU3VwcG9ydCBjb25maWd1cmF0aW9uIG9mIHRoZSBzb2NrZXQgYWRkcmVzcyB0byBsaXN0ZW4gZm9yIFNNVVggY29ubmVjdGlvbnMgb24uCiAgIAogICBOb3RlOiBDaGFuZ2Ugb2YgYmVoYXZpb3VyIC0gdGhpcyBwYXRjaCBkZWZhdWx0cyB0byBsaXN0ZW5pbmcgZm9yIGNvbm5lY3Rpb25zCiAgIGZyb20gdGhlIGxvY2FsaG9zdCBvbmx5LgogICAKMjAwMy0wOC0xOCAwMjo1NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFByb3Zpc2lvbmFsIHN1cHBvcnQgZm9yIHNlbmRpbmcgY2xpZW50IHJlcXVlc3RzIGZyb20gYSBzcGVjaWZpZWQgaW50ZXJmYWNlCiAgIG9yIHNvY2tldCBhZGRyZXNzLgogICBRbjogU2hvdWxkIHRoaXMgYmUgYXBwbGllZCB0byBUQ1AgY29ubmVjdGlvbnMgdG9vPwogICAgICAgV2hhdCBhYm91dCBvdGhlciB0cmFuc3BvcnRzPwogICAKMjAwMy0wOC0xOCAwMjo1MyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jOgoKICAgSW1wbGVtZW50ICdzbnByaW50Zl9kZXNjcmlwdGlvbicgcm91dGluZXMsCiAgIHRvIG91dHB1dCBNSUIgZGVmaW5pdGlvbnMgdG8gYSBzdHJpbmcgcmF0aGVyIHRoYW4gYSBmaWxlLgogICAKMjAwMy0wOC0xNyAxNjo0OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWdldC5tMmk6CgogICBmaXggaGFyZGNvZGVkIHZhciBuYW1lcy9jb25zdGFudHMgKGVlayEpCiAgIAoyMDAzLTA4LTE3IDE2OjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgcmVuYW1lIHNvbWUgdHlwZWRlZnM7IGFkZCAqX3JlZl8qIHR5cGVkZWZzOyBtYWtlIG5ldHNubXBfaW5kZXggZmlyc3QgaXRlbQogICBpbiBjdHg7IG1ha2UgaW5kZXggbG9jYWwgaW5zdGVhZCBvZiBwdHI7IHJ1biBuZXcgbWZkLWFjY2Vzcy0qLWhlYWRlcjsgYWRkCiAgIHNvbWUgcHJvdG90eXBlcywgZGVidWcgbXNnczsgdXBkYXRlIGluaXQgdG8gc2V0IHVwIG1mZF9yZWdpc3RyYXRpb24sIGNvbnRhaW5lciwKICAgKl9nZXRfdmFsdWVzOyBmaXggcmVuYW1lcyBtZmQgcmVnaXN0cmF0aW9uIHJvdXRpbmU7IHJ1biBuZXcgbWFrZWZpbGUgYW5kCiAgIHN1YmFnZW50IGNvbmYgZmlsZXMKICAgCjIwMDMtMDgtMTcgMTY6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBpbmNsdWRlIG1mZCBoZWFkZXI7IG5ldyAqX2dldF92YWx1ZXM7IHR3ZWFrICpfZ2V0X2NvbHVtbjogaW5jbHVkZSBhY2Nlc3NpYmxlCiAgIGluZGV4ZXMsIHB1c2ggdmFyIG1lbW9yeSBjaGVjayB1cCBhIGxldmVsICpfZ2V0X3ZhbHVlcyAoc2hvdWxkIGdvIHVwIG9uZQogICBtb3JlLCBpbnRvIGhlbHBlciBpbnN0ZWFkIG9mIGdlbmVyYXRlZCBjb2RlKTsgcnVuIG5ldyBtZmRfYWNjZXNzXypfaW50ZXJmYWNlCiAgIAoyMDAzLTA4LTE3IDE2OjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICBtb3ZlIHByb2Nlc3MgcHJpbnQgYWZ0ZXIgbm9hY2Nlc3MgdGVzdAogICAKMjAwMy0wOC0xNyAxNjozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1nZXQubTJjOgoKICAgbmV3ICpfKGFsbG9jYXRlfHJlbGVhc2UpXyhkYXRhfGN0eCk7IG1vdmUgcHJvY2VzcyBwcmludCBhZnRlciBub2FjY2VzcyB0ZXN0CiAgIAoyMDAzLTA4LTE3IDE2OjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICByZW5hbWUgYWNjZXNzLSogdG8gbWZkLWFjY2Vzcy0qCiAgIAoyMDAzLTA4LTE3IDE2OjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICBhZGQgaGVhZGVyOyBpbmNsdWRlIGVudW1zIHRvbwogICAKMjAwMy0wOC0xNyAxNjozMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1pbnRlcmZhY2UubTJpLCBtZmQtbWFrZWZpbGUubTJtCiwgc3ViYWdlbnQubTJjOgoKICAgbmV3IG1mZCBkYXRhIGFjY2VzcyBjb25mIGZpbGVzICh3cmFwIGFyb3VuZCBuZXcgY29udGFpbmVyIGl0ZXJhdG9yKTsgbmV3IG1mZAogICBjb25mIGZpbGVzIHRvIGdlbmVyYXRlIG1ha2VmaWxlL3N1YmFnZW50IG1haW4KICAgCjIwMDMtMDgtMTcgMTY6MzEgIHJzdG9yeQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHVzZSBjb25maWcuaCBkZWZpbmUgdG8gdGVtcG9yYXJpbHkgZGlzYWJsZSB3aW4gY2FsbGJhY2sgdHJhbnNwb3J0LCBpbnN0ZWFkCiAgIG9mIHdpbiBzcGVjaWZpYyBpZmRlZnMgaW4gY29kZQogICAKMjAwMy0wOC0xNyAxNjoyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgbmV3IGRlYnVnbXNnX3N1Ym9pZAogICAKMjAwMy0wOC0xNyAxNjoyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGNoZWNrIGZvciBudWxsIHB0cgogICAKMjAwMy0wOC0xNyAxNjoyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgcmVtb3ZlIG5vYWxsb2MgZnVuY3Rpb25zOyByZW5hbWUgdHlwZWRlZgogICAKMjAwMy0wOC0xNyAxNjoxOCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgcmVtb3ZlIG5vYWxsb2MgZnVuY3Rpb25zCiAgIAoyMDAzLTA4LTE3IDE2OjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyIGFuZCBub2FsbG9jIGZ1bmN0aW9ucwogICAKMjAwMy0wOC0xNyAxNjoxNyAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBhZGQgb3B0aW9uYWwgdXBsb2FkIG9mIHNyYyB0YXJiYWxsIGFmdGVyIHVwZGF0ZQogICAKMjAwMy0wOC0xNyAxNToyMiAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBuZXcgbmV0c25tcF9zcHJpbnRfcmVhbGxvY19vYmppZCAoZG9lc24ndCB1c2UgbWlicyk7IHJld29yayBpZmRlZnMgZm9yCiAgIG5ldHNubXBfc3ByaW50X3JlYWxsb2Nfb2JqaWRfdHJlZSAmIERJU0FCTEVfTUlCX0xPQURJTkcKICAgCjIwMDMtMDgtMTcgMTU6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIGNvbnRhaW5lcl9pdGVyYXRvci5jOgoKICAgYWRkIG5ldyBjb250YWluZXIgaXRlcmF0b3IKICAgCjIwMDMtMDgtMTcgMTU6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGRvbid0IHJ1biBpbmRlbnQgb24gZmlsZXMgdW5sZXNzIHRoZXkgZW5kIHcvIC5jIG9yIC5oOyBwcmludCBtb3JlIGluZm8gd2hlbgogICBkaWUgb2YgdW5leHBlY3RlZCBlbHNlCiAgIAoyMDAzLTA4LTE3IDE1OjE4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIG5ldyBERUJVR01TR1NVQk9JRCAmIHN1cHBvcnRpbmcgY2FzdAogICAKMjAwMy0wOC0xNyAxNToxNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmg6CgogICBmaXggY29tbWVudHMgd2hpY2ggZXhjZWVkIDgwIGNoYXJzCiAgIAoyMDAzLTA4LTE3IDE1OjE2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oOgoKICAgbmV3IG5ldHNubXBfc3ByaW50X3JlYWxsb2Nfb2JqaWQgcHJvdG90eXBlCiAgIAoyMDAzLTA4LTE3IDE1OjE1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgbmV3IG5ldHNubXBfdGFibGVfZmluZF9uZXh0X3JvdyBwcm90b3R5cGUKICAgCjIwMDMtMDgtMTcgMTU6MTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oOgoKICAgbmV3IG5ldHNubXBfZW5hYmxlX3N1YmFnZW50IHByb3RvdHlwZQogICAKMjAwMy0wOC0xNyAxNToxNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgbmV3IG5ldHNubXBfY2hlY2tfcmVxdWVzdHNfZXJyb3IgcHJvdG90eXBlCiAgIAoyMDAzLTA4LTE3IDE1OjEyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oOgoKICAgbmV3ICh0ZW1wb3Jhcnk/KSBiYWJ5IHN0ZXBzIGhlbHBlcgogICAKMjAwMy0wOC0xNyAxNToxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaDoKCiAgIGFkZCBiYWJ5X3N0ZXBzLmgsIHJvd19tZXJnZS5oLCB0YWJsZV9tZmQuaAogICAKMjAwMy0wOC0xNyAxNToxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgZGVmaW5lIG5ldyBjYW4gYmFieSBzdGVwIG1vZGUgZmxhZwogICAKMjAwMy0wOC0xNyAxNToxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIG5ldyBuZXRzbm1wX3JlZl92b2lkLCBuZXRzbm1wX3JlZl9zaXplX3QgdHlwZWRlZnMKICAgCjIwMDMtMDgtMTcgMTU6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oOgoKICAgYmFpbCBpZiBuZXQtc25tcC1jb25maWcgaGFzbid0IGJlZW4gaW5jbHVkZWQ7IGFkZCBjb250YWluZXIvYXNzZXJ0IGhlYWRlcnMKICAgCjIwMDMtMDgtMTcgMTU6MDggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBiYWlsIGlmIG5ldC1zbm1wLWNvbmZpZyBoYXNuJ3QgYmVlbiBpbmNsdWRlZDsgZG9uJ3QgaW5sY3VkZSB1dGlsaXRpZXMgdHdpY2UKICAgCjIwMDMtMDgtMTcgMTU6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIG5ldyBuZXRzbm1wX2VuYWJsZV9zdWJhZ2VudCwgb25seSBkZWZpbmVkIGlmIFVTSU5HX0FHRU5UWF9TVUJBR0VOVF9NT0RVTEUsIHNvCiAgIGEgbGluayBlcnJvciB3aWxsIG9jY3VyIGlmIGFnZW50eCBzdXBwb3J0IG5vdCBjb21waWxlZCBpbgogICAKMjAwMy0wOC0xNyAxNTowNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHJlbW92ZSBmaW5kX25leHRfcm93LCB1c2UgbmV3IG5ldHNubXBfdGFibGVfaW5kZXhfZmluZF9uZXh0X3JvdzsgZml4IHR5cG8KICAgCjIwMDMtMDgtMTcgMTU6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBub3RlcyBmb3IgZnV0dXJlIGVuaGFuY2VtZW50czsgZml4IHBvdGVudGlhbCBtZW1vcnkgbGVhazsgbmV3CiAgIG5ldHNubXBfdGFibGVfaW5kZXhfZmluZF9uZXh0X3JvdwogICAKMjAwMy0wOC0xNyAxNTowMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICBza2lwIGdyb3VwaW5nIGlmIG9ubHkgMSB2YXJiaW5kOyBub3RlIGZvciBmdXR1cmUgZW5oYW5jZW1lbnRzCiAgIAoyMDAzLTA4LTE3IDE1OjAyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGFkZCBuZXcgYmFieV9zdGVwcywgdGFibGVfbWZkIGhlbHBlcnM7IGJ1aWxkIG9ianMvbG9ianMgZnJvbSBzcmNzCiAgIAoyMDAzLTA4LTE3IDE0OjU5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbmV3IG5ldHNtcF9jaGVja19yZXF1ZXN0c19lcnJvcnMKICAgCjIwMDMtMDgtMTcgMTQ6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBjb2RlIHJldXNlIChjYWxsX2hhbmRsZXJzIHVzZXMgY2FsbF9oYW5kbGVyKTsgYWRkIG5ldyBtb2RlIHRleHQgZm9yCiAgIGhhbmRsZXJfY2FuX21vZGUgc2xpc3QKICAgCjIwMDMtMDgtMTYgMDc6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIC0gbW92ZSBzb21lIHBvaW50ZXIgc2F2aW5nIGZvciBTVEFTSCByZWxhdGVkIHN0dWZmIG91dHNpZGUgdGhlIG1vcmUKICAgICBmcmVxdWVudGx5IGNhbGxlZCBsb29wLgogICAKMjAwMy0wOC0xNSAwNDoyNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBtYW4vc25tcGNtZC4xLmRlZiwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIE1vdmUgcHJlZml4L3N1ZmZpeCBvcHRpb25zIHVuZGVyIC1JCiAgIAoyMDAzLTA4LTE1IDAzOjMzICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRG9uJ3QgYWRkIGEgdHJhaWxpbmcgZG90IGlmIHdlJ3JlIHNldHRpbmcgYSBwcmVmaXgsIGJ1dCBub3QgYSBzdWZmaXguCiAgIAoyMDAzLTA4LTE0IDAxOjEzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogYWxsX2hlbHBlcnMuYywgYnVsa190b19uZXh0LmMsCiAgIGNhY2hlX2hhbmRsZXIuYywgZGVidWdfaGFuZGxlci5jLCBpbnN0YW5jZS5jLAogICBtb2RlX2VuZF9jYWxsLmMsIG11bHRpcGxleGVyLmMsIHJlYWRfb25seS5jLAogICByb3dfbWVyZ2UuYywgc2NhbGFyLmMsIHNjYWxhcl9ncm91cC5jLAogICBzZXJpYWxpemUuYywgd2F0Y2hlci5jOgoKICAgUmVvcmdhbmlzZSB0aGUgYWdlbnQgaGVscGVyICdkb3h5Z2VuJyBzdHJ1Y3R1cmUsIHRvIG1ha2UgaXQgbGVzcyAiZmxhdCIuCiAgIEdyb3VwICJsZWFmLW9iamVjdCIgaGVscGVycyB0b2dldGhlciwgYW5kIGludGVybmFsICJ1dGlsaXR5IiBoZWxwZXJzIHNpbWlsYXJseS4KICAgCjIwMDMtMDgtMTQgMDE6MDkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFRyeSB0byBjYXRjaCAoc29tZSkgUERVIGR1YWwtZnJlZSdzLgogICAKMjAwMy0wOC0xNCAwMDoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgMSBvZiAyIG1lbW9yeSBsZWFrcyBmb3VuZCAob2ssIEkgc2FpZCBJIHdhc24ndCBnb2luZyB0byBmaW5kIGl0IGJ1dC4uLikKICAgCjIwMDMtMDgtMTMgMjM6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiBNYWtlZmlsZS5pbiwgYWxsX2hlbHBlcnMuYywKICAgc3Rhc2hfY2FjaGUuYywgdGFibGVfaXRlcmF0b3IuYzoKCiAgIC0gYWRkZWQgYSBuZXcgaGVscGVyIHRvIGF1dG8tY2FjaGUgZGF0YS4gIEN1cnJlbnRseSB0aGUgb25seQogICAgIHN1Yi1tb2R1bGUgc3VwcG9ydGVkIGJ5IHRoaXMgaXMgdGhlIHRhYmxlX2l0ZXJhdG9yLCBidXQgc2lnbmlmaWNhbnQKICAgICBzcGVlZCBpbXByb3ZlbWVudHMgY2FuIGJlIHNlZW4gd2hlbiBjYWNoaW5nIG9mIGl0ZXJhdG9yIGRhdGEgaXMKICAgICB0dXJuZWQgb24uCiAgICAgLSB0byB0ZXN0IGFkZCB0byBzbm1wZC5jb25mOgogICAgICAgICBpbmplY3RIYW5kbGVyIHN0YXNoX2NhY2hlIE1PRFVMRSB0YWJsZV9pdGVyYXRvcgogICAgICAgKGEgZ29vZCB0ZXN0IG1vZHVsZSBpcyB0aGUgbnNNb2R1bGVUYWJsZSB3aGljaCBoYXMgYSBsb3Qgb2Ygcm93cykKICAgICAtIHdhcm5pbmc6IG5vdCBoZWF2aWx5IHRlc3RlZC4gIFNlZW1zIG9rIGZvciBhdCBsZWFzdCB0aGUgc2ltcGxlIGNhc2VzLgogICAKMjAwMy0wOC0xMyAyMzozNiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGFnZW50L3NubXBfYWdlbnQuaCwgbGlicmFyeS9zbm1wLmgKOgoKICAgLSBkZWZpbmUgYSBuZXcgaW50ZXJuYWwtdXNlIG1vZGU6ICBNT0RFX0dFVF9DQUNIRQogICAKMjAwMy0wOC0xMyAyMzozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIHVzZSBjYWxsb2MgdG8gaW5pdGlhbGl6ZSBhbmQgemVybyBtZW1vcnkgKGZpeGVzIGFuIGVycm9yIHNwb3R0ZWQgYnkgdmFsZ3JpbmQpLgogICAKMjAwMy0wOC0xMyAyMzozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIHNwb3R0ZWQgb25lIG1lbW9yeSBsZWFrLgogICAKMjAwMy0wOC0xMyAyMzoxNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wd2Fsay5jLCBtYW4vc25tcHdhbGsuMS5kZWY6CgogICAtIGFkZGVkIGEgLUN0IG9wdGlvbiB0byBzbm1wd2FsayB0byBkaXNwbGF5IHdhbGsgY2xvY2sgdGltZXIgcmVzdWx0cwogICAKMjAwMy0wOC0xMyAyMjo0MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jCjoKCiAgIC0gYWRkZWQgYSBwYXJlbnQgbm9kZSBmb3IgdXB3YXJkIHRyYXZlcnNhbC4KICAgLSBhIGdldG5leHQgaW1wbGVtZW50YXRpb24gdGhhdCBhY3R1YWxseSB3b3JrcyAoZmFpcmx5IGhlYXZpbHkgdGVzdGVkKS4KICAgCjIwMDMtMDgtMTMgMjI6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgLSBtb2RpZmllZCB0aGUgZnJlZSBmdW5jdGlvbiBwb2ludGVyIHRvIHRha2UgYSBjYWNoZSBhcmd1bWVudCBmb3IKICAgICBnZW5lcmFsaXppbmcgaXQgYSBiaXQgbW9yZS4KICAgCjIwMDMtMDgtMTMgMjI6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICAtIEltcGxlbWVudCBuZXRzbm1wX2luamVjdF9oYW5kbGVyX2JlZm9yZSgpIHdoaWNoIHRha2VzIGFuIGFyZ3VtZW50IHRvCiAgICAgZGV0ZXJtaW5lIHdoZXJlIGluIHRoZSBoYW5kbGVyIGNoYWluIGl0IHNob3VsZCBpbmplY3Qgc29tZXRoaW5nLgogICAtIE1vZGlmeSB0aGUgaW5qZWN0SGFuZGxlciAuY29uZiB0b2tlbiB0byB0YWtlbiBhbiBvcHRpb25hbCBmaW5hbAogICAgIEJFRk9SRSBhcmd1bWVudC4KICAgCjIwMDMtMDgtMTAgMTE6MzkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9NYWtlZmlsZS5pbgosIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIG1pc2MgaGlnaCBsZXZlbCBjb3B5cmlnaHQgbm90ZXMgYWRkZWQgKElFLCBzZWUgdGhlIENPUFlJTkcgZmlsZSwgLi4uKS4KICAgCjIwMDMtMDgtMTAgMTE6MzggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jOgoKICAgbWlzYyBjb3B5cmlnaHQgbm90ZXMgYWRkZWQuCiAgIAoyMDAzLTA4LTA1IDAxOjQyICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBDYXRjaCBtaXNzaW5nIHBhcmFtZXRlcnMgaW4gY29tcGlsZS1zdWJhZ2VudCBoYW5kbGluZyB0b28KICAgCjIwMDMtMDgtMDUgMDE6MzggIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIENhdGNoIG1pc3NpbmcgcGFyYW1ldGVycyBpbiBjcmVhdGUtc25tcHYzLXVzZXIgaGFuZGxpbmcKICAgCjIwMDMtMDgtMDUgMDE6MzIgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIFVzZSAkMSBwYXJhbWV0ZXIgZGlyZWN0bHkgaW4gY3JlYXRlLXNubXB2My11c2VyIHByb2Nlc3NpbmcuCiAgIFNvbWV3aGF0IGxlc3MgY29uZnVzaW5nIHRoYW4gd2l0aCB0aGUgYWRkaXRpb25hbCAkYXJnIHBhcmFtZXRlciwKICAgYW5kIGxlc3MgY2hhbmNlIG9mIHNoaWZ0aW5nIGEgbm9uLWV4aXN0ZW50IHZhbHVlLgogICAoUmVsZXZhbnQgdG8gYnVnICM3NTU1NzEpCiAgIAoyMDAzLTA4LTAyIDA2OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgcmVvZy91cGRhdGUgY29kZSBnZW5lcmF0aW9uOyBydW4gbWZkLWRhdGEtYWNjZXNzOyBzZXQgaGFuZGxlciBSV1JJVEUgaWYgdGFibGUKICAgd3JpdGFibGU7IGNoZyB0YWJsZSByZWdpc3RyYXRpb24gdHlwZTsgaW5jbHVkZSBuZXcgdGFibGUgc2V0dXAKICAgCjIwMDMtMDgtMDIgMDY6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBzaW1wbGlmeSBwYXJhbSBsaXN0czsgdXBkYXRlIGNvZGUgZ2VuZXJhdGlvbgogICAKMjAwMy0wOC0wMiAwNjozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBzZXR1cCBub2RlIHNyaCBpbmRlcGVuZGVudCBvZiBnZXQgdGVtcCB1c2UKICAgCjIwMDMtMDgtMDIgMDY6MzYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1vaWRzLm0yYzoKCiAgIGJlIG1vcmUgcGFyYW5vaWQgYWJvdXQgdGVtcG9yYXJ5IG92ZXJyaWRlIG9mICRuYW1lCiAgIAoyMDAzLTA4LTAyIDA2OjM1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmk6CgogICBjaGcgaW5kZW50aW9uIG9uIHNvbWUgY29tbWVudCBibG9ja3M7IHVzZSBuZXcgbm9kZS1zdG9yYWdlLm0yaTsgcm12IGRhdGEgcHRyCiAgIAoyMDAzLTA4LTAyIDA2OjMzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbTJjX3NldHVwX3RhYmxlLm0yaSwKICAgbWZkLWRhdGEtYWNjZXNzLm0yYywgbm9kZS1zdG9yYWdlLm0yaToKCiAgIG5ldyBjb2RlIHRlbXBsYXRlcwogICAKMjAwMy0wOC0wMiAwNjozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LWdldC5tMmksCiAgIGdlbmVyaWMtY3R4LXNldC5tMmksIGdlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwKICAgZ2VuZXJpYy1nZXQtb2lkLm0yaSwgZ2VuZXJpYy12YWx1ZS1tYXAubTJpLAogICBtZmQtZGF0YS1nZXQubTJjLCBtZmQtZGF0YS1zZXQubTJjLCBub2RlLWdldC5tMmksCiAgIG5vZGUtc2V0Lm0yaSwgc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmQ6CgogICBkYXRhIGF0IGN0eC0+ZGF0YSwgbm90IGN0eDsgY2hnIGluZGVudGlvbiBvbiBibG9jayBjb21tZW50czsgZml4IHNvbWUgbWlzc2VkCiAgIG5hbWUgY2hhbmdlczsgdXBkYXRlIGZvciByZW5hbWVkIGNvbmYgZmlsZXM7IHNpbXBsaWZ5IHNvbWUgcGFyYW0gbGlzdHM7CiAgIGFkZCBzb21lIGFzc2VydHMKICAgCjIwMDMtMDctMzEgMDc6MjMgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIERvbid0IHNoaWZ0IGF3YXkgY29tbWFuZC1saW5lIHBhcmFtZXRlcnMgdGhhdCBwcm9iYWJseSBhcmVuJ3QgdGhlcmUKICAgKGFuZCBjZXJ0YWlubHkgYXJlbid0IHJlbGV2YW50IHRvIHRoZSBhY3Rpb24gYmVpbmcgaGFuZGxlZCkKICAgUmVwb3J0ZWQgYnkgVmlub2QgSm9obnNvbgogICAKMjAwMy0wNy0zMSAwMzoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIEhhbmRsZSBwcm94aWVkIFNFVHMgaW4gdGhlIEFDVElPTiBwYXNzLCByYXRoZXIgdGhhbiB0aGUgY29tbWl0IHBhc3MuCiAgIFRoaXMgYWxsb3dzIGZhaWx1cmVzIGhlcmUgdG8gYmFjayBvdXQgYXNzaWdubWVudHMgaW4gb3RoZXIgbW9kdWxlcy4KICAgV2UgY2FuJ3QgcHJvY2VzcyBVTkRPIHJlcXVlc3RzIHN1Y2Nlc3NmdWxseSwgYnV0IHdlIGNhbiBhdCBsZWFzdCByZXBvcnQKICAgdGhpcyBmYWN0LiAgV2hpY2ggaXMgcHJlZmVyYWJsZSB0byBjbGFpbWluZyBmYWlsdXJlIGJ1dCAoc2lsZW50bHkpCiAgIGFjdGluZyBvbiBzb21lIGFzc2lnbm1lbnRzLgogICAKMjAwMy0wNy0zMSAwMzowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIERvbid0IGxvZyB3YXJuaW5ncyBmb3IgZGVsaWJlcmF0ZWx5IHVudXNlZCBTRVQgcGFzc2VzLgogICAKMjAwMy0wNy0zMSAwMzowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIEhhbmRsZSBTTk1QIGVycm9ycyBmcm9tIHByb3hpZWQgc2VydmVycyBjb3JyZWN0bHkuCiAgIFBhc3NpbmcgdGhlIGVycm9yIGJhY2sgdXAgdGhlIGNoYWluIHNlZW1zIHRvIERvIFRoZSBSaWdodCBUaGluZy4KICAgCjIwMDMtMDctMzEgMDM6MDMgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFByb2JsZW1zIGluIE1JQiBwcm9jZXNzaW5nIGFyZSBpbmRpY2F0ZWQgdmlhIHRoZSAnYXNwLT5zdGF0dXMnIGZpZWxkLAogICByYXRoZXIgdGhhbiB0aGUgcmV0dXJuIHZhbHVlLiAgU28gdXNlIHRoYXQgd2hlbiBkb3duZ3JhZGluZyB2Mi1zdHlsZQogICBlcnJvcnMgZm9yIHYxIHJlc3BvbnNlcy4KICAgCjIwMDMtMDctMzAgMTA6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZWZhdWx0LW1mZC10b3AubTJjLCBtZmQtZGF0YS1nZXQubTJjCiwgbWZkLWRhdGEtc2V0Lm0yYywgbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjCjoKCiAgIG5ldyBNSUJzIEZvciBEdW1taWVzIChtZmQpIGNvbmYgZmlsZXMKICAgCjIwMDMtMDctMzAgMTA6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBleGFtcGxlXyhzdGFydC9lbmQpOyBmaXggJHgucmFuZ2VzOyBhbGxvdyBsaXRlcmFsIHZhciBuYW1lcyBpbiB1c2VyIGNvZGUKICAgdmlhICRAdmFyOyBhZGQgdGFibGVfaXNfd3JpdGFibGUgZnVuY3Rpb24KICAgCjIwMDMtMDctMzAgMTA6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWN0eC1jb3B5Lm0yaSwKICAgZ2VuZXJpYy1jdHgtZ2V0Lm0yaSwgZ2VuZXJpYy1jdHgtc2V0Lm0yaSwKICAgZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLCBnZW5lcmljLWdldC1jaGFyLm0yaSwKICAgZ2VuZXJpYy1nZXQtZGVjbC1ib3QubTJpLCBnZW5lcmljLWdldC1kZWNsLm0yaSwKICAgZ2VuZXJpYy1nZXQtbG9uZy5tMmksIGdlbmVyaWMtZ2V0LW9pZC5tMmksCiAgIGdlbmVyaWMtaGVhZGVyLWJvdHRvbS5tMmksIGdlbmVyaWMtaGVhZGVyLXRvcC5tMmksCiAgIGdlbmVyaWMtc291cmNlLWluY2x1ZGVzLm0yaSwgZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaSwKICAgZ2VuZXJpYy10YWJsZS1vaWRzLm0yYywgZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmksCiAgIGdlbmVyaWMtdmFsdWUtbWFwLm0yaSwgbTJjX3NldHVwX25vZGUubTJpLCBub2RlLWdldC5tMmkKLCBub2RlLXNldC5tMmksIHBhcmVudC1kZXBlbmRlbmNpZXMubTJpLAogICBwYXJlbnQtc2V0Lm0yaSwgc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmQsCiAgIHN5bnRheC1EYXRlQW5kVGltZS1nZXQubTJpLCBzeW50YXgtSW5ldEFkZHJlc3MtZ2V0Lm0yaSwKICAgc3ludGF4LUluZXRBZGRyZXNzLXNldC5tMmksIHN5bnRheC1JbmV0QWRkcmVzc1R5cGUtZ2V0Lm0yaQosIHN5bnRheC1JbmV0QWRkcmVzc1R5cGUtc2V0Lm0yaSwKICAgc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpLCBzeW50YXgtVGVzdEFuZEluY3ItZ2V0Lm0yaToKCiAgIGxvdHMgb2YgbmV3IG1pYjJjIGhlbHBlcnMgKGluY2x1ZGVzKQogICAKMjAwMy0wNy0zMCAxMDozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRldGFpbHMtZW51bXMubTJpLCBkZXRhaWxzLW5vZGUubTJpCiwgZGV0YWlscy10YWJsZS5tMmk6CgogICBtb3N0bHkgdmFyaWFibGUgcmVuYW1lczsgc29tZSByZW9yZwogICAKMjAwMy0wNy0zMCAwNjoyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIERpc2NhcmQgdmFsdWVzIHJlY2VpdmVkIGZyb20gdGhlIHByb3h5IGlmIHRoZSBPSUQgaXMgaW52YWxpZC4KICAgKFR5cGljYWxseSB3aGVuIGEgR2V0TmV4dCB3YWxrcyBwYXN0IHRoZSBlbmQgb2YgdGhlIHByb3hpZWQgc3VidHJlZSkuCiAgIEFsc28gdXBkYXRlIHRoZSBjb21tZW50cyB0byBkZXNjcmliZSB0aGUgYmVoYXZpb3VyIGluIGEgYml0IG1vcmUgZGV0YWlsLgogICAKMjAwMy0wNy0zMCAwNjoxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIFJlc3BvbmQgdG8gU05NUCBlcnJvcnMgZnJvbSB0aGUgcHJveGllZCBhZ2VudC4KICAgKFRoZSByZXNwb25zZSBpcyBtdWNoIHRvbyBzaW1wbGlzdGljLCBhbmQgaXMgbGlrZWx5IHRvIHByb3ZlIGFuCiAgIG92ZXItcmVhY3Rpb24gaW4gbWFueSBjYXNlcy4gICBCdXQgaXQncyBhIHN0YXJ0KQogICBOb3RlIHRoYXQgdGhlIGluZGVudGF0aW9uIGhhcyBub3QgYmVlbiBhZGp1c3RlZCAtIHdhaXQgdW50aWwgdGhpbmdzCiAgIHNldHRsZSBkb3duIGZpcnN0LgogICAKMjAwMy0wNy0yOSAwODoxMyAgZHRzMTIKCiAgICogYXBwcy86IHNubXBkZi5jIChWNC0yLXBhdGNoZXMuNiksIHNubXBkZi5jOgoKICAgRml4IGEgdHlwbyBpbiBhbiBlcnJvciBtZXNzYWdlIChQYXRjaCAjNzY5MjIxKQogICAKMjAwMy0wNy0yOSAwNTowNyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaDoKCiAgIENvcnJlY3QgdGhlIGNvbW1lbnRzIGlkZW50aWZ5aW5nIGhleC9hc2NpaSB2YWx1ZXMgZm9yIFBEVSB0eXBlcy4KICAgUmVwb3J0ZWQgYnkgT2xlZyBJdmFub3YuCiAgIAoyMDAzLTA3LTI5IDAyOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZC1zbm1wL2V4dGVuc2libGUuYywgdXRpbGl0aWVzL2V4ZWN1dGUuYwo6CgogICBTdXBwb3J0IGZvciBtdWx0aS1jb21tYW5kIGRpcmVjdGl2ZXMgZm9yICdzaCcgZXh0ZW5zaWJpbGl0eS4KICAgICAgIChpLmUuIHJ1bm5pbmcgInRoaXM7IHRoYXQ7IHRoZSBvdGhlciIpCiAgIFJldGFpbmVkIHRoZSBvcmlnaW5hbCBiZWhhdmlvdXIgb2YgdHJ1bmNhdGluZyBhdCB0aGUgZmlyc3QgJzsnIGZvcgogICAnZXhlYycgZGlyZWN0aXZlcyAgKGZvbGxvd2luZyB0aGUgUHJpbmNpcGxlIG9mIExlYXN0IEFzdG9uaXNobWVudCkKICAgCjIwMDMtMDctMjkgMDE6NTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBMb2cgZmFpbHVyZSB0byBzZXQgdXAgcHJveHkgY29tbWFuZCAocmF0aGVyIHRoYW4gcGxvdWdoaW5nIG9uIHJlZ2FyZGxlc3MhKQogICAKMjAwMy0wNy0yOSAwMTo1MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgRml4IHN1cHBvcnQgZm9yIG11bHRpLWxpbmUgKHJlbG9jYXRhYmxlKSBvdXRwdXQuCiAgIAoyMDAzLTA3LTI3IDE2OjU0ICByc3RvcnkKCiAgICogbG9jYWwvOiBtaWIyYyAoVjUtMC1wYXRjaGVzLjIpLCBtaWIyYzoKCiAgIGZpeCBmaWxlbmFtZSBpbiBlcnJvciBtc2csIGFzIG5vdGVkIGluIGNvZGVycwogICAKMjAwMy0wNy0yNCAxOToyOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgZml4IG9pZGxlbmd0aCBmdW5jdGlvbgogICAKMjAwMy0wNy0yNCAxNzo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIGN2cyBpZCB0YWc7IGFkZCBjb21tZW50IGRvY3VtZW50aW5nIG5vbmluZGV4OyBpbmRleGVzIGxvb3Agd2lsbCBub3cKICAgaW5jbHVkZSBpbmRleCBmb3IgdGFibGVzIHVzaW5nIGF1Z21lbnRzCiAgIAoyMDAzLTA3LTI0IDE3OjUyICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBhZGQgYWNjZXNzIHRvIHRoZSBBVUdNRU5UUyBhdHRyaWJ1dGUKICAgCjIwMDMtMDctMjMgMTY6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCB3YXJuaW5nIGZvciB1bmtub3duICR2YXIudGFnIHRhZ3MgdG8gY2F0Y2ggdHlwb3M7IHdhdGNoIGZvciB1bm1hdGNoZWQKICAgQCBpbiBza2lwdmFyczsgZG9uJ3Qgb3BlbiBuZXcgZmlsZSBpdCBpdCdzIGFscmVhZHkgb3BlbjsgYWRkIGZsYWcgdG8KICAgcHJvY2Vzc19maWxlIGZvciBzYXZlL3Jlc3RvcmUgb2YgdmFyczsgZml4IHByb2Nlc3MgYWdhaW4gc28gaXQgd2lsbCBjYXRjaAogICB1bm1hdGNoZXMgQEA7IGFkZCBuZXcgQGZvcmVhY2ggbm9uaW5kZXhACiAgIAoyMDAzLTA3LTIyIDA5OjA3ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSB6ZXJvIG91dCBzZW5zaXRpdmUgY29tbWFuZC1saW5lIGFyZ3VtZW50cyAoY29tbXVuaXR5IHN0cmluZywgdXNlciBuYW1lLAogICAgICAgYXV0aGVudGljYXRpb24gcGFzc3BocmFzZSwgcHJpdmFjeSBwYXNzcGhyYXNlKS4KICAgCiAgICAgICBOT1RFOiB0aGlzIGRvZXMgbm90IHdvcmsgZm9yIGFsbCBwbGFmb3JtcyAtLSBjZXJ0YWlubHkgaXQgZG9lc24ndAogICAgICAgICAgICAgd29yayBmb3IgU29sYXJpcy4gIEEgZGlmZmVyZW50LCBtb3JlIGdyb3NzIG1ldGhvZCBpcyBuZWVkZWQKICAgICAgICAgICAgIGZvciB0aGVzZSBwbGF0Zm9ybXMgKHNlZSBzZW5kbWFpbCBjb2RlIGZvciBkZXRhaWxzIC0tICBuZWVkCiAgICAgICAgICAgICBJIHNheSBtb3JlPykuCiAgIAoyMDAzLTA3LTIyIDA4OjQ1ICBkdHMxMgoKICAgKiBtYW4vc25tcHZhY20uMS5kZWY6CgogICBJbXByb3ZlZCBkZXNjcmlwdGlvbnMgb2YgdGhlIHZhcmlvdXMgc3ViY29tbWFuZHMuCiAgIEJhc2VkIG9uIG1hdGVyaWFsIHN1cHBsaWVkIGJ5IE5pY2sgRGlSaWNvLgogICAKMjAwMy0wNy0yMiAwODowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzoKCiAgIFZhcmlvdXMgZml4ZXMgdG8gdGhlIHJlY2VudCBUQ1AgdGFibGUgcmVkZXNpZ24sIHN1cHBsaWVkIGJ5IEthdHN1aGlzYSBBQkUuCiAgIChTb21lIG90aGVycyBzdGlsbCBvdXRzdGFuZGluZywgYXdhaXRpbmcgZGlzY3Vzc2lvbi4gIEJ1dCB0aGVzZSBhcmUgY2xlYXIKICAgbWlzdGFrZXMsIHdoaWNoIG5lZWQgZml4aW5nKS4KICAgCjIwMDMtMDctMjIgMDg6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdGNwVGFibGUuYywgdWRwVGFibGUuYzoKCiAgIFVzZSB0aGUgdGFibGUgaW5mb3JtYXRpb24gJ2NvbG51bScgZmllbGQgdG8gaWRlbnRpZnkgdGhlIHJlcXVlc3RlZCBjb2x1bW4KICAgb2JqZWN0KHMpIHJhdGhlciB0aGFuIHB1bGxpbmcgc3R1ZmYgb3V0IG9mIHRoZSBPSUQuICBTdWdnZXN0ZWQgYnkgT2xlZyBJdmFub3YuCiAgIAoyMDAzLTA3LTIyIDA3OjU5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBNYWtlIHRoZSBjcmVhdGVWaWV3IG1hc2sgcGFyYW1ldGVyIG9wdGlvbmFsCiAgIChhcyB3aXRoIHRoZSAndmlldycgY29uZmlnIGRpcmVjdGl2ZSkKICAgCjIwMDMtMDctMjIgMDc6NTcgIGR0czEyCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIENvcnJlY3QgdGhlIGxheW91dCBvZiB0aGUgdXNhZ2UgbWVzc2FnZS4KICAgCjIwMDMtMDctMjIgMDc6NTYgIGR0czEyCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIFVzZSB0aGUgbW9yZSBmbGV4aWJsZSBBUEkgY2FsbCBmb3IgaGFuZGxpbmcgdmlldyBPSURzCiAgIAoyMDAzLTA3LTE5IDEwOjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGV0YWlscy1lbnVtcy5tMmksIGRldGFpbHMtbm9kZS5tMmkKLCBkZXRhaWxzLXRhYmxlLm0yaToKCiAgIG1pYjJjIGluY2x1ZGUgZmlsZXMgdG8gZ2VuZXJhdGUgbm9kZSBkZXRhaWxzCiAgIAoyMDAzLTA3LTE5IDEwOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICB0cmFjayBjdXJyZW50IGxpbmUgYW5kIGZpbGUgbmFtZTsgbmV3IGZpbmRfY29uZiwgcHJvY2Vzc19maWxlIHN1YnM7IHJlbW92ZQogICBAc2tpcCBOQCBhYmlsaXR5OyBza2lwIEB0b2tlbkAgc2VhcmNoIGlmIGxpbmUgZG9lc24ndCBiZWdpbiB3aXRoIEA7CiAgIGFkZCBAc2tpcGlmQCwgQGJyZWFrQDsgZG9udCByZXF1aXJlIHNwYWNlcyBmb3IgQGNsb3NlQDsgYWRkIC1pZmV4aXN0cyBwYXJhbSB0bwogICBAaW5jbHVkZUA7IG5ldyBAaWZjb25mQCArIHJld29yayBjb2RlIHRvIG1ha2Ugb3RoZXIgQGlmWFhYQCB0b2tlbnMgZWFzeTsgbWVyZ2UKICAgZWxzZS9lbHNpZiBpbiBwcm9jZXNzIGxvb3AKICAgCjIwMDMtMDctMTggMTM6NTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBwYXJzaW5nIG9mIGluaXRpYWwgZGVmYXVsdCBmaWxlOyBkZWxheSBwcm9jZXNzaW5nIG9mIGNtZCBsaW5lIHZhcnMgdGlsCiAgIGFmdGVyIHByb2Nlc3NpbmcgZGVmYXVsdCBmaWxlOyBhZGQgbmV3ICRjLm5lZWRzbGVuZ3RoLCAkYy5oYXNkZWZ2YWwsICRjLmRlZnZhbCwKICAgJGMubW9kdWxlLCAkYy5hY2Nlc3NpYmxlLCAkYy5jaGlsZHJlbiAobmVlZHMgd29yayksICRjLmhhc2hpbnQsICRjLmhpbnQsCiAgICRjLnJhbmdlcywkYy5lbnVtcmFuZ2UgKG5lZWRzIHdvcmspIGFuZCB2YXJpb3VzIGNvZGUgdG8gc3VwcG9ydCB0aGVtOyBhZGQKICAgcGFyYW1ldGVyIHRvIHNraXAgdG8gYWxsb3cgb25lIHRvIGJyZWFrIG91dCBvZiBtdWx0aXBsZSBsZXZlbHMgKG5lZWRzIHdvcmspOwogICBhbGxvdyBzcGFjZXMgYWZ0ZXIgQGNtZEAgdG8gYWxsb3cgZm9yIGJldHRlciBjb250cm9sIG9mIGluZGVudGlvbjsgbW92ZSBmaWxlCiAgIG9wZW4vY2xvc2UgdG8gc3Vicm91dGluZXM7IG5ldyBAYXBwZW5kIGZpbGVALCBAY2xvc2UgZmlsZUAsIEBpbmNsdWRlIGZpbGVAOwogICBhbGxvdyB3cml0aW5nIHRvIG11bHRpcGxlIGZpbGVzIGF0IG9uY2U7IG5ldyBAcHJpbnQgdGV4dEAgKHRvIHN0ZG91dCk7CiAgIHdoZXchIG1vcmUgdG8gY29tZS4uLgogICAKMjAwMy0wNy0xNiAwMzoyOSAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgU3VwcG9ydCBwcm9jZXNzaW5nIG9mIGNvbXBpbGUtc3ViYWdlbnQgc3ViLW9wdGlvbnMgaW4gYW55IG9yZGVyCiAgIAoyMDAzLTA3LTE2IDAzOjI4ICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBIYW5kbGUgY29tcGlsZS1zdWJhZ2VudCBjYWxsZWQgd2l0aCBubyBwYXJhbWV0ZXJzCiAgIAoyMDAzLTA3LTE2IDAzOjI0ICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBGaXggaW5jb25zaXN0ZW50IHVzYWdlIHdpdGhpbiBjb21waWxlLXN1YmFnZW50CiAgIAoyMDAzLTA3LTE2IDAzOjIxICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBIYW5kbGUgLS1jcmVhdGUtc25tcHYzLXVzZXIgY2FsbGVkIHdpdGggbm8gcGFyYW1ldGVycwogICAKMjAwMy0wNy0xNiAwMjowNyAgZHRzMTIKCiAgICogUkVBRE1FOgoKICAgQ2xhcmlmeSB0aGUgcm9sZXMgb2YgdGhlIHZhcmlvdXMgbWFpbGluZyBsaXN0cywgYW5kIHdoaWNoIG9uZXMgdG8gdXNlCiAgIChvciBub3QgdXNlKS4gIEFsc28gdXBkYXRlZCB0aGUgcHJvamVjdCB3ZWIgcGFnZSBhbG9uZyB0aGUgc2FtZSBsaW5lcy4KICAgCjIwMDMtMDctMTUgMjE6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHJlbmFtZSBpc3RhYmxlIHRvIGlzY29sdW1uOyBhZGQgZW51bXM7IGFkZCBjdXJyZW50dmFyOyBmaXggZW51bSBkdW1wIHRvIHdvcmsKICAgZm9yIHNjYWxhcnMKICAgCjIwMDMtMDctMTUgMDg6MDYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIEZpeCBhIHZhcmFyZ3MgdHlwZSBzcGVjaWZpY2F0aW9uLiAgU3BvdHRlZCBieSBPbGVnIEl2YW5vdi4KICAgCjIwMDMtMDctMTUgMDc6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIEF2b2lkIHJlZmVyZW5jaW5nIGZyZWVkIG1lbW9yeS4gIChSZXBvcnRlZCBieSBTdGV2ZSBCZW5uZXR0KQogICAKMjAwMy0wNy0xNSAwNzoyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgUnVuIHBhc3MtdGhyb3VnaCBzY3JpcHRzIGluIHRoZSBBQ1RJT04gcGFzcywgbm90IENPTU1JVCwgc28gYW55IGVycm9ycwogICBjYW4gYmUgcmVwb3J0ZWQgYmFjayBwcm9wZXJseS4KICAgQWxzbyB0d2VhayB0aGUgZXJyb3ItY2hlY2tpbmcgY29kZSB0byByZWNvZ25pc2UgdGhlIGVycm9yIHN0cmluZ3MgcHJvcGVybHkuCiAgIAoyMDAzLTA3LTE0IDE3OjAwICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hY2ggY29uZmlndXJlLmluCiAgIAoyMDAzLTA3LTE0IDE2OjUyICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYXBwbHkgcGF0Y2ggZnJvbSBTdGV2ZSBCZW5uZXR0IDxzdGV2ZWJAc25hcGdlYXIuY29tPiB0byBhbGxvdyBvbmUgdG8gZGlzYWJsZQogICB0aGUgY2FsbGJhY2sgdHJhbnNwb3J0IGFuZCByZWR1Y2UgYWdlbnQgc2l6ZS4gVHdlYWtlZCBieSBtZSBhIGJpdC4gZGlzYWJsZQogICBhZ2VudHggaWYgY2FsbGJhY2tzIGRpc2FibGVkCiAgIAogICByZW1vdmUgKHRyYW5zcG9ydHxzZWN1cml0eSlfW2xdb2JqX2xpc3QsIGFzIFtsXW9iaiBsaXN0cyBhcmUgbm93IGdlbmVyYXRlZAogICBmcm9tIHNyY3M7IHJlbW92ZSBBZ2VudFggYmV0YSBjb2RlIHdhcm5pbmcgZnJvbSBoZWxwCiAgIAoyMDAzLTA3LTE0IDE2OjUwICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmg6CgogICBhcHBseSBwYXRjaCBmcm9tIFN0ZXZlIEJlbm5ldHQgPHN0ZXZlYkBzbmFwZ2Vhci5jb20+IHRvIGFsbG93IG9uZSB0byBkaXNhYmxlCiAgIHRoZSBjYWxsYmFjayB0cmFuc3BvcnQgYW5kIHJlZHVjZSBhZ2VudCBzaXplLiBUd2Vha2VkIGJ5IG1lIGEgYml0LiBkaXNhYmxlCiAgIGFnZW50eCBpZiBjYWxsYmFja3MgZGlzYWJsZWQuCiAgIAoyMDAzLTA3LTEzIDExOjE5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsIHNubXBsaWIvY2FsbGJhY2suYwo6CgogICBhZGQgcHJpb3JpdHkgdG8gY2FsbGJhY2sgc28gdXNlciBjYW4gZGV0ZXJtaW5lIGNhbGxiYWNrIG9yZGVyCiAgIAoyMDAzLTA3LTEzIDA5OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuaDoKCiAgIHJlc3RvcmUgaW5wY2Igc3RydWN0IGZvciBsaW51eCAodW50aWwgaXQgc2hvd3MgdXAgc29tZXdoZXJlIGVsc2UgaW4gY3ZzKQogICAKMjAwMy0wNy0xMSAwNTowOCAgZHRzMTIKCiAgICogbWFuL3NubXB2YWNtLjEuZGVmOgoKICAgRml4IGVycm9ycyBpbiB0aGUgZXhhbXBsZXMsIHNwb3R0ZWQgYnkgTmljayBEaVJpY28KICAgCjIwMDMtMDctMTAgMDY6MTEgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLWZ1bmN0aW9ucywgbnNiLW5pZ2h0bHksIG5zYi1wYWNrYWdlCjoKCiAgIHN5bmMgdy9wYXRjaGVzCiAgIAoyMDAzLTA3LTEwIDA1OjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHRjcC5jLCB0Y3AuaCwgdGNwVGFibGUuYwosIHRjcFRhYmxlLmgsIHVkcC5jLCB1ZHAuaCwgdWRwVGFibGUuYwosIHVkcFRhYmxlLmg6CgogICBOZXctQVBJIGltcGxlbWVudGF0aW9uIG9mIFVEUCBhbmQgVENQIHRhYmxlcywgdXNpbmcgY2FjaGUgYW5kIGl0ZXJhdG9yIGhlbHBlcnMuCiAgIFdvcmtzIG9uIExpbnV4IGFuZCBIUC1VWCAxMCwgY29tcGlsZXMgKGJ1dCB1bnRlc3RlZCkgb24gU29sYXJpcyAmIFdpbmRvd3MuCiAgIAoyMDAzLTA3LTEwIDAzOjU1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oOgoKICAgQ29sb24/IHNlbWljb2xvbj8gIFdoYXQncyBhIHBpeGVsIG9yIHR3byBiZXR3ZWVuIGZyaWVuZHMuLi4uCiAgIAoyMDAzLTA3LTEwIDAyOjEyICBkdHMxMgoKICAgKiB3aW4zMi86IHdpbjMyc2RrLmRzdywgbGliYWdlbnQvbGliYWdlbnQuZGVmLAogICBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsIHNubXBkc2RrL3NubXBkLmRzcDoKCiAgIFZpc3VhbCBDKysgdHdlYWtzLCB0byBnZXQgZXZlcnl0aGluZyB0byBjb21waWxlIGNsZWFubHkuCiAgIAoyMDAzLTA3LTA5IDA4OjQwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBNaXNzaW5nIGhlYWRlciBwcm90ZWN0aW9uIGNoZWNrcwogICAKMjAwMy0wNy0wOSAwODoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIEhhbmRsZSBzeXN0ZW1zIHdpdGhvdXQgZ2V0cHduYW0gb3IgZ2V0Z3JuYW0KICAgCjIwMDMtMDctMDkgMDg6MDYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBQcm92aWRlIGRlZmF1bHQgZGVmaW5pdGlvbnMgb2Ygc3lzbG9nIGNvbnN0YW50cyBpZiBub3QgYWxyZWFkeSBwcmVzZW50LgogICAKMjAwMy0wNy0wOSAwODowNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaCwKICAgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIFByb3ZpZGUgbWlzc2luZyBmb3J3YXJkIGRlY2xhcmF0aW9ucwogICAKMjAwMy0wNy0wOSAwNToyNSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFN1cHBvcnQgZm9yIHRoZSBvbGQgJy1MJyBvcHRpb24uCiAgIChJbmNyZWRpYmx5IGNsdW5reSwgYnV0IG5lY2Vzc2FyeSkKICAgCjIwMDMtMDctMDkgMDU6MjQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIFN1cHBvcnQgZm9yICJwZXJzaXN0ZW50IGVudW1lcmF0aW9ucyIuCiAgIAoyMDAzLTA3LTA4IDA2OjAyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGljbXAuYywgaXAuYywgdGNwLmMsCiAgIHVkcC5jOgoKICAgSW1wcm92ZWQgZGVidWdnaW5nIGZvciBuZXcgc2NhbGFyX2dyb3VwIGltcGxlbWVudGF0aW9ucy4KICAgCjIwMDMtMDctMDcgMTU6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jOgoKICAgUGF0Y2ggZnJvbSBDaHVjayBZZXJrZXMgdG8gbWFrZSB0aGUgTVRBLU1JQiB3b3JrIHdpdGggbmV3ZXIgc2VuZG1haWwgdmVyc2lvbnMsIGluY2x1ZGluZyBGRlJfUVVBUkFOVElORSBzdXBwb3J0CiAgIAoyMDAzLTA3LTA3IDA2OjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmg6CgogICBFeHBvcnQgdGhlICdtYWtlX3RlbXBmaWxlJyByb3V0aW5lLgogICAKMjAwMy0wNy0wNiAyMDo0MSAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZml4IHR5cG9zCiAgIAoyMDAzLTA3LTA0IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgYWRkZWQgc3lzL3R5cGVzCiAgIAoyMDAzLTA3LTAzIDIxOjIxICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmcmVlIGNvbnRhaW5lciBvbiBmcmVlOyBzb3J0IGJlZm9yZSBmb3JfZWFjaCBleGVjdXRlczsgYWRkIGluaXQgdG8gcmVnaXN0ZXIKICAgCjIwMDMtMDctMDMgMjE6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgYWRkIG5ldyBjb250YWluZXJzCiAgIAoyMDAzLTA3LTAzIDIxOjIwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgdXBkYXRlIENPTlRBSU5FUl9GUkVFIGZvciBuZXcgcmVxdWlyZW1lbnQgdGhhdCBjb250YWluZXJzIGZyZWUgdGhlbXNlbHZlcwogICAKMjAwMy0wNy0wMyAyMToyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBhZGQgaW5pdCBmb3IgbGlzdF9zc2xsIGFuZCBudWxsIGNvbnRhaW5lcnM7IGFkZCBhbGlhc2VzIGZvciBsaXN0IGFuZAogICBiaW5hcnkgY29udGFpbmVyczsgdXBkYXRlIENPTlRBSU5FUl9GUkVFIGZvciBuZXcgcmVxdWlyZW1lbnQgdGhhdAogICBjb250YWluZXJzIGZyZWUgdGhlbXNlbHZlcwogICAKMjAwMy0wNy0wMyAyMDo1MyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2xpc3Rfc3NsbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX251bGwuaDoKCiAgIG5ldyBmaWxlcwogICAKMjAwMy0wNy0wMyAyMDoyNiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgZmlsZSBjb250YWluZXJfbGlzdF9zc2xsLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjUtMC1wYXRjaGVzLgogICAKMjAwMy0wNy0wMyAyMDoyNiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX251bGwuYzoKCiAgIGZpbGUgY29udGFpbmVyX251bGwuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNS0wLXBhdGNoZXMuCiAgIAoyMDAzLTA3LTAyIDE0OjU3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyM3NubXB2M2dldE1ENURFUywgVDAyNXNubXB2M2dldFNIQURFUwo6CgogICBVc2UgYSBTS0lQSUZOT1QgZm9yIHJlYWwgdG9rZW5zICh0eXBvKS4KICAgCjIwMDMtMDctMDIgMTQ6NTUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTUwc29sYXJpc2hvc3RjcHUsIFQxNTFzb2xhcmlzaG9zdGRpc2sKLCBUMTUyaG9zdHVwdGltZSwgVDE1M3NvbGFyaXNzd2FwOgoKICAgZml4IG5ldyB0ZXN0cyBpbiB2YXJpb3VzIHdheXMKICAgCjIwMDMtMDctMDIgMTQ6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb2lkX3N0YXNoLmM6CgogICBmcmVlIHRoZSByb290IHBvaW50ZXIuCiAgIAoyMDAzLTA3LTAyIDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgZnJlZSB0aGUgZW5naW5laWQgYXQgKnNodXRkb3duKiBub3QgKnN0YXJ0dXAqOi0vCiAgIAoyMDAzLTA3LTAyIDE0OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZG9uJ3QgY2FsbCB0aGUgY2xlYW51cCByb3V0aW5lcyBhdCBzaHV0ZG93biBzaW5jZSB0aGV5J3JlIGZpbGxlZCB3aXRoCiAgIGRvdWJsZSBmcmVlcygpCiAgIAoyMDAzLTA3LTAyIDE0OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5oOgoKICAgcmVxdWlyZSBuZWVkcyBleGFtcGxlcy8gcHJlZml4CiAgIAoyMDAzLTA3LTAyIDE0OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgVXNlIGEgZm9yIGxvb3AgaW5zdGVhZCBvZiBhIHJlY3Vyc2l2ZSBmdW5jdGlvbi4KICAgCjIwMDMtMDctMDIgMTQ6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYzoKCiAgIHByb3RlY3QgYWdhaW5zdCBlbXB0eSByb3dzLgogICAKMjAwMy0wNy0wMiAxMzo1MiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGZpeCBjb250YWluZXIgY29kZSBmcm9tIHRoZSBsYXN0IHBhdGNoCiAgIAoyMDAzLTA3LTAyIDEzOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgUGF0Y2g6IDc1NjI4NjogQSBnbG9iYWwgZnJlZSAtPiBTTk1QX0ZSRUUgcmVwbGFjZW1lbnQKICAgCjIwMDMtMDctMDIgMTM6MjAgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wbGliL3NubXBfZW51bS5jLAogICBzbm1wbGliL3NubXBfc2VjbW9kLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmM6CgogICBQYXRjaCAjNzI0OTI1IGZyb20gUGV0ZXIgV2FyYXNpbiB0byBmcmVlIGxvdHMgb2YgbWVtb3J5IGZvciBhIHJlYWxseSBjbGVhbiBzaHV0ZG93bgogICAKMjAwMy0wNy0wMiAxMzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jIChWNS0wLXBhdGNoZXMuMiksIGFnZW50X3JlZ2lzdHJ5LmMKOgoKICAgUGF0Y2ggIzcyNDkyNSBmcm9tIFBldGVyIFdhcmFzaW4gdG8gZml4IG5ldHNubXBfc3VidHJlZV91bmxvYWQoKSB0byB1cGRhdGUgdGhlIHJvb3QgcG9pbnRlcgogICAKMjAwMy0wNy0wMiAxMjo1OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxNTBzb2xhcmlzaG9zdGNwdSwgVDE1MXNvbGFyaXNob3N0ZGlzawosIFQxNTJob3N0dXB0aW1lLCBUMTUzc29sYXJpc3N3YXA6CgogICBQYXRjaDogNzU2Mjg2OiBOZXcgc29sYXJpcyBzcGVjaWZpYyBIUiB0ZXN0cyBmcm9tIEJydWNlIFNoYXcKICAgCjIwMDMtMDctMDIgMTI6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgc25tcGxpYi9wYXJzZS5jCiAgIChWNS0wLXBhdGNoZXMuWzEsMiwxXSksIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgc25tcGxpYi9wYXJzZS5jOgoKICAgUGF0Y2ggIzc2MDQ0OCBmcm9tIEJvYiBSb3dsYW5kcy9TdW4gdG8gZml4IGJ1ZyAjNzUxOTEzIHRvIHByb3RlY3QgYSBmZXcgbWlub3Igc2VjdXJpdHkgdmlvbGF0aW9ucwogICAKMjAwMy0wNy0wMiAxMDo1OCAgaGFyZGFrZXIKCiAgICogQ09QWUlORywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L3NubXBkLmMsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9NYWtlZmlsZS5pbgosIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc3RybGNweS5jOgoKICAgUGF0Y2ggIzc2MDQxNyBmcm9tIEJvYiBSb3dsYW5kcy9TdW4gZm9yIGZpeGluZyBCdWcgIzc1MTkyMCBmb3IgbWlub3Igc2VjdXJpdHkgcHJvYmxlbXMgKFBJRCBmaWxlIHVubGlrZWQgZmlyc3QsIGFuZCB1c2Ugc3RybGNweSBpbnN0ZWFkIG9mIHN0cmNweS4gIEEgbmV3IHN0cmxjcHkgZmlsZSB3YXMgZGVmaW5lZCBpZiBub3QgZGVmaW5lZCBmb3IgYSBzeXN0ZW0uCiAgIAoyMDAzLTA3LTAyIDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3N0cmxjcHkuYzoKCiAgIGZpbGUgc3RybGNweS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY1LTAtcGF0Y2hlcy4KICAgCjIwMDMtMDctMDIgMTA6MjYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHNubXBfZGVidWcuaCAoVjUtMC1wYXRjaGVzLjEpLAogICBzbm1wX2RlYnVnLmg6CgogICBQYXRjaCAjNzY0MDQ3IGZyb20gU3RlcGhlbiBKLiBGcmllZGw6IFJlbW92ZSByZWR1bmRhbnQgZGVjbGFyYXRpb24gZnJvbSBzbm1wX2RlYnVnLmggYW5kIGZpeCBhIGZldyBjb21tZW50cwogICAKMjAwMy0wNy0wMiAxMDoyMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4gKFY1LTAtcGF0Y2hlcy5bNyw3XSksIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgUGF0Y2ggIzc1OTMwOSBmcm9tIFN0ZXBoZW4gRnJpZWRsIHRvIGFkZCBwcm9tcHQgb3Zlci1yaWRlIGZsYWcgZGVzY3JpcHRpb25zIHRvIHByb21wdCBvdXRwdXQKICAgCjIwMDMtMDctMDIgMTA6MTUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcGF0Y2ggIzc1OTI5ODogZml4IHNwZWxsaW5nIGVycm9yCiAgIAoyMDAzLTA3LTAxIDA1OjMzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcjEuYzoKCiAgIFJlbW92ZSByZWR1bmRlbnQgZmlsZS4KICAgCjIwMDMtMDctMDEgMDM6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWNtcC5jLCBpY21wLmgsIGlwLmMsCiAgIGlwLmgsIGtlcm5lbF9saW51eC5jLCBrZXJuZWxfbGludXguaCwKICAgbWliSUlfY29tbW9uLmgsIHRjcC5jLCB0Y3AuaCwgdWRwLmMsIHVkcC5oCjoKCiAgIFJlLWltcGxlbWVudCB0aGUgc2NhbGFyIG5ldHdvcmsgc3RhdGlzdGljcyB1c2luZyBuZXcgQVBJIGZlYXR1cmVzLgogICBUaGlzIHNlcnZlcyBhcyBhbiBleGFtcGxlIG9mIHRoZSAnc2NhbGFyX2dyb3VwJyBhbmQgJ2NhY2hlX2hhbmRsZXInCiAgIGhlbHBlcnMsIGFzIHdlbGwgYXMgKGhvcGVmdWxseSkgc2ltcGxpZnlpbmcgdGhlIGNvZGUgc29tZXdoYXQuCiAgIAoyMDAzLTA3LTAxIDAyOjU3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogc2NhbGFyLmMsIHNjYWxhcl9ncm91cC5jOgoKICAgTWlub3IgdHdlYWtzIHRvIGhhbmRsZSB3YWxraW5nIGZyb20gb25lIHNjYWxhciB0byBhbm90aGVyIGNvcnJlY3RseSwKICAgYW5kIGRlYWwgd2l0aCBpbnRlcm5hbCBtaXNzaW5nIG9iamVjdHMgd2l0aGluIGEgc2NhbGFyIGdyb3VwLgogICAKMjAwMy0wNi0zMCAyMjozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZiwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmg6CgogICB1cGRhdGUgZm9yIHJvdyBkZWxldGlvbgogICAKMjAwMy0wNi0zMCAxNzoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmYsCiAgIG1pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICB1cGRhdGUgdG8gc3VwcG9ydCByb3cgY3JlYXRpb24uICBEZWxldGlvbiBzdXBwb3J0IHN0aWxsIGNvbWluZywgYXMgaXMKICAgYSBzZXBhcmF0ZSBoYW5kbGVyLgogICAKMjAwMy0wNi0zMCAxNzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgcmVtb3ZlIG1vcmUgIm5vdCBzZXJpYWxpemVkIiBjb2RlLgogICAKMjAwMy0wNi0zMCAxNzowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiBuZXRTbm1wSG9zdHNUYWJsZS5jLAogICBuZXRTbm1wSG9zdHNUYWJsZS5oLCBuZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuYywKICAgbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmg6CgogICBVcGRhdGVkIGZvciByb3cgY3JlYXRpb24uCiAgIAoyMDAzLTA2LTMwIDEwOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmM6CgogICBwYXRjaCBmcm9tIEZvbmcgVHN1aSBmb3IgZml4aW5nIE5VTEwgcmVmZXJlbmNlcwogICAKMjAwMy0wNi0zMCAxMDo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIG1ha2UgdGhlIGRlZmF1bHQgYWdlbnR4IHBpbmcgaW50ZXJ2YWwgYmUgMTUgc2Vjb25kcy4KICAgCjIwMDMtMDYtMzAgMDk6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIHV0aWxpdGllcy9leGVjdXRlLmg6CgogICBNYWtlIHN1cmUgdGhlIGRlcGVuZGVuY2llcyBmb3IgdGhlIG5ldyBhcHByb2FjaCB0byBzdWItY29tbWFuZAogICBpbnZvY2F0aW9uIGFyZSBwcm9wZXJseSBhY2tub3dsZWRnZWQuCiAgIAoyMDAzLTA2LTMwIDA3OjQwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBDaGVjayBmb3IgdmFsaWRpdHkgb2YgcGFyYW1ldGVycyBiZWZvcmUgdXNpbmcgdGhlbS4gIChQYXJhbm9pZD8gV2hvLCBtZT8pCiAgIAoyMDAzLTA2LTMwIDA2OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBDYWNoaW5nIG9mIGludGVyZmFjZSBkYXRhIGlzIGFjdHVhbGx5IExpbnV4LXNwZWNpZmljLgogICAKMjAwMy0wNi0zMCAwNTowNSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oOgoKICAgSW5jbHVkZSByZWNlbnQgaGVscGVyIG1vZHVsZXMgaW4gdGhlIGhlbHBlciBsaWJyYXJ5IGFuZCBtZXRhLWluY2x1ZGUgZmlsZS4KICAgCjIwMDMtMDYtMjcgMDQ6NDMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBTaW1wbGlmeSB0aGUgcHJvY2Vzc2luZyBvZiAidHJhcGhhbmRsZSIgZGlyZWN0aXZlcwogICAodXNpbmcgdGhlIG5ldyBnZW5lcmljIHN1Yi1jb21tYW5kIGV4ZWN1dGlvbiB1dGlsaXR5IHJvdXRpbmVzLAogICBhbmQgdGhlIGltcHJvdmVkIHZhcmxpc3QgbG9nZ2luZyBjb25maWd1cmF0aW9uKQogICAKMjAwMy0wNi0yNyAwNDozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgVXNlIHRoZSBuZXcgZ2VuZXJpYyBzdWItY29tbWFuZCBleGVjdXRpb24gdXRpbGl0eSByb3V0aW5lcyBpbnN0ZWFkCiAgIG9mIHRoZSBleHRlbnNpYmxlLXNwZWNpZmljIG9uZXMuCiAgIAoyMDAzLTA2LTI3IDA0OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBJbmNsdWRlIGEgZ2VuZXJhbCAnbWFnaWMnIHBhcmFtZXRlciBpbiBib3RoIGNhY2hlIGRhdGEgc3RydWN0dXJlCiAgIGFuZCBjYWNoZSBsb2FkaW5nIHJvdXRpbmUuICAgSnVzdCBJbiBDYXNlIEl0IE1pZ2h0IENvbWUgSW4gVXNlZnVsLgogICBIYXBweSwgV2VzPwogICAKMjAwMy0wNi0yNyAwNDowOSAgZHRzMTIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywKICAgbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuaDoKCiAgIEdlbmVyYWxpc2VkIHN1Yi1jb21tYW5kIGV4ZWN1dGlvbiB1dGlsaXR5IHJvdXRpbmVzLgogICAoVGhlIGN1cnJlbnQgJ2V4ZWNfY29tbWFuZCcgYW5kICdzaGVsbF9jb21tYW5kJyByb3V0aW5lcyBhcmUgdmVyeSBzcGVjaWZpYwogICAgdG8gdGhlIGRldGFpbHMgb2YgdGhlICdzdHJ1Y3QgZXh0ZW5zaWJsZScgZGF0YSBzdHJ1Y3R1cmUpLgogICBUaGVzZSByb3V0aW5lcyBjYW4gYmUgdXNlZCBtb3JlIHdpZGVseSwgd2hlcmV2ZXIgYSBzdWItcHJvY2VzcyBpcyBuZWVkZWQuCiAgIAogICBRdWVzdGlvbnM6CiAgICAgYSkgIFNob3VsZCB0aGVzZSB1dGlsaXNlIHRoZSAicmVhbGxvYyIgbWVjaGFuaXNtLCByYXRoZXIgdGhhbgogICAgICAgICBlbmZvcmNlIGEgZml4ZWQgc2l6ZSBvdXRwdXQgYnVmZmVyPwogICAgIGIpICBEbyB0aGV5IGJlbG9uZyBpbiB0aGUgbWFpbiBsaWJyYXJ5IChvciBwb3NzaWJseSB0aGUgYWdlbnQgbGlicmFyeSkKICAgICAgICAgcmF0aGVyIHRoYW4gYSBtaWJncm91cD8KICAgCjIwMDMtMDYtMjcgMDE6NDIgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgTW9yZSBmbGV4aWJsZSBoYW5kbGluZyBvZiBmb3JtYXR0aW5nIHZhcmJpbmQgbGlzdHMuCiAgICIlViIgY29uZmlndXJlcyB0aGUgdmFyYmluZCBzZXBhcmF0b3IgY2hhcmFjdGVyIChhbHRfZm9ybWF0ID0+IGFkZGVkIHNwYWNlKQogICAiJXYiIHVzZXMgdGhpcyBzZXBhcmF0b3IgKGFsdF9mb3JtYXQgPT4gc2VwYXJhdG9yIGFsc28gcHJpbnRlZCBiZWZvcmUgdGhlIGxpc3QpCiAgIERlZmF1bHRzIHRvIHVzaW5nIHRoZSBlYXJsaWVyICdcdCcgb3IgIiwgIiBpZiBubyBzZXBhcmF0b3IgaXMgc3BlY2lmaWVkLgogICAKMjAwMy0wNi0yNiAwMjoyNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMubm90aWZ5LmNvbmY6CgogICBVc2UgdGhlIG5ldyBmZWF0dXJlcyBvZiBtaWIyYyB0byB0aWR5IHVwIHRoZSBvdXRwdXQgYSBiaXQuCiAgIAoyMDAzLTA2LTI2IDAyOjI2ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIEV4dGVuZCBtaWIyYydzIG5ldyBjb3VudGVyIHJvdXRpbmVzIHRvIGNvdmVyICJzdWJsb29wcyIgYXMgd2VsbAogICAoaS5lLiB0aGUgbnVtYmVyIG9mIGNvbHVtbnMvaW5kZXhlcyBpbiBhIHBhcnRpY3VsYXIgdGFibGUsCiAgICBhbmQgdGhlIG51bWJlciBvZiBvYmplY3RzIHRvIGJlIGluY2x1ZGVkIHdpdGggYSBnaXZlbiBub3RpZmljYXRpb24pCiAgIAoyMDAzLTA2LTI1IDIzOjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mOgoKICAgLSBwcm9tcHQgc3VwcG9ydCBmb3IgbWliMmMgdG8gYXNrIHF1ZXN0aW9ucyB0byB0aGUgdXNlci4KICAgLSBBIG5ldyB0b3AtbGV2ZWwgd3JhcHBlciBhcm91bmQgYWxsIHRoZSBvdGhlciBtaWIyYyBmaWxlcyB0aGF0IHdhbGtzCiAgICAgeW91IHRocm91Z2ggc2VsZWN0aW5nIHRoZSByaWdodCBtaWIyYyBjb25maWd1cmF0aW9uIGZpbGUgeW91IHdpc2ggdG8KICAgICB1c2UgYW5kIHRoZW4gc291cmNlcyBpdCBmb3IgeW91LgogICAgIC0gdG9kbzogZ2VuZXJhdGUgdW5pcXVlIGZpbGUgbmFtZXMgaWYgYm90aCBzY2FsYXIgYW5kIHRhYmxlIGNyZWF0aW9uCiAgICAgICBpcyBkb25lLCBlZy4KICAgCjIwMDMtMDYtMjUgMjM6MTMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmY6CgogICBib3kgaXMgdGhhdCBub3QgbmVlZGVkIGFueSBtb3JlCiAgIAoyMDAzLTA2LTI1IDE0OjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIERhdmUgYXNrcywgZGF2ZSBnZXRzOgogICAgIC0gbmV3IGZ1bmN0aW9ucyByZXR1cm5pbmcgMSBvciAyOiAgJHZhci5pc3NjYWxhciwgJHZhci5pc2NvbHVtbgogICAgIC0gJHZhci5wYXJlbnQgcmV0dXJucyB0aGUgcGFyZW50IGxhYmVsIHN0cmluZyBvZiB0aGUgbm9kZS4KICAgCjIwMDMtMDYtMjUgMTQ6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBmaXggcmVxdWVzdCAtPiByZXF1ZXN0cyBhcyBwb2ludGVkIG91dCBieSBTdGV2ZSBCZW5ldHQKICAgCjIwMDMtMDYtMjUgMDc6MzggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgU3RhbXAgb24gYSB0cmFpbGluZyAnLicgd2hlbiBzcGVjaWZ5aW5nIFZBQ00gT0lEcy4KICAgCjIwMDMtMDYtMjUgMDc6MzAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBDYWxscyB0byByZWxlYXNlIGVudW1lcmF0aW9uIGxpc3RzIHdoZW4gbm8gbG9uZ2VyIHJlcXVpcmVkLgogICBOb3JtYWxseSB0aGlzIHdvdWxkIGJlIGhhbmRsZWQgYXV0b21hdGljYWxseSB3aGVuIGFuIGFwcGxpY2F0aW9uCiAgIGV4aXN0cywgYnV0IGl0IG1pZ2h0IGJlIHVzZWZ1bCB0byByZWxlYXNlIHJlc291cmNlcyBlYXJsaWVyLgogICAKMjAwMy0wNi0yNSAwNzoyNCAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSAnZGxtb2QuaCcgaGVhZGVyIGZpbGUKICAgCjIwMDMtMDYtMjQgMDY6MjAgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLm5vdGlmeS5jb25mOgoKICAgSW5pdGlhbCBzdXBwb3J0IGZvciBjb2RlIHRvIHNlbmQgb3V0IHRyYXBzIGFuZCBpbmZvcm1zLgogICBUaGlzIHN0aWxsIGRvZXNuJ3QgYWRkcmVzcyAqd2hlbiogc3VjaCBub3RpZmljYXRpb25zIHNob3VsZAogICBiZSBnZW5lcmF0ZWQsIGJ1dCBpdCBhdCBsZWFzdCBoZWxwcyB3aXRoIGRvaW5nIHNvLgogICAKMjAwMy0wNi0yMyAyMjozMCAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBSZW1vdmUgdG9vIG11Y2ggbWVtZHVwJ2luZyBpbiBpbmZvcm0gcmVwbHkKICAgCjIwMDMtMDYtMjMgMTQ6MzMgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBBZGQgQVBTLU1JQiBhbmQgTUFMTE9DLU1JQgogICAKMjAwMy0wNi0yMyAxNDozMSAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgVXBkYXRlIGZyb20gSUFOQQogICAKMjAwMy0wNi0yMyAxNDozMCAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICByZW1vdmUgbm93IHVudXNlZCBzbm1wX2Nsb25lX3BkdTIKICAgCjIwMDMtMDYtMjMgMTI6MzcgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgaW5jbHVkZSB3YWl0LmggZm9yIHdhaXRwaWQsIGFuZCByZS1pbnN0YXRlIHRoZSBjb2RlIHRoYXQgcmVzcG9uZHMgdG8gYW4gaW5mb3JtCiAgIAoyMDAzLTA2LTIzIDA2OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oCjoKCiAgIFV0aWxpdHkgcm91dGluZSB0byBjb252ZXJ0IHYxIHRyYXBzIHRvIHYyLW5vdGlmaWNhdGlvbi1zdHlsZSB2YXJiaW5kIGxpc3QuCiAgIAoyMDAzLTA2LTIzIDA2OjM1ICBkdHMxMgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgQ29uc3RydWN0IGEgbGlicmFyeSBjb250YWluaW5nIHRoZSBjb3JlIHRyYXBkIGhhbmRsaW5nIGZ1bmN0aW9uYWxpdHkuCiAgIAoyMDAzLTA2LTIzIDA2OjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmg6CgogICBUaGUgc3lzT1JUYWJsZSBtb2R1bGUgaXMgZGVwZW5kZW50IG9uIHN5c3RlbV9taWIsIHNvIGVuc3VyZSB0aGlzIGlzIGF2YWlsYWJsZS4KICAgCjIwMDMtMDYtMjMgMDY6MTMgIGR0czEyCgogICAqIGFwcHMvOiBub3RpZmljYXRpb25fbG9nLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICBzbm1wdHJhcGRfaGFuZGxlcnMuaCwgbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgQ29uc29saWRhdGUgdGhlIG5vdGlmaWNhdGlvbiBoYW5kbGVyIGluIHdpdGggdGhlIHJlc3Qgb2YgdGhlCiAgIE5PVElGSUNBVElPTi1NSUIgcmVsYXRlZCBjb2RlLgogICAKMjAwMy0wNi0yMyAwNjowMSAgZHRzMTIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgc25tcHRyYXBkX2hhbmRsZXJzLmg6CgogICBTaHVmZmxlIGNvZGUgYXJvdW5kIGEgYml0LiAgVGhlIHRocmVlIGZpbGVzICdzbm1wdHJhcGRfaGFuZGxlcnMuYycsCiAgICdzbm1wdHJhcGRfbG9nLmMnIGFuZCAnbm90aWZpY2F0aW9uLmMnIG5vdyBjb250YWluIGFsbCB0aGUgY29kZQogICBuZWVkZWQgdG8gcHJvY2VzcyBhbiBpbmNvbWluZyB0cmFwLgogICBJdCBzaG91bGQgYmUgcG9zc2libGUgdG8gZW1iZWQgdGhpcyBmdW5jdGlvbmFsaXR5IHdpdGhpbiBhbiBsYXJnZXIKICAgYXBwbGljYXRpb24sIHJhdGhlciB0aGFuIGhhdmluZyB0byB1c2UgdGhlICdzbm1wdHJhcGQuYycgd3JhcHBlci4KICAgCjIwMDMtMDYtMjIgMTY6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgKi5jIGFuZCAqLmggZmlsZXMuCiAgIAoyMDAzLTA2LTIyIDE2OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IG5ldFNubXBIb3N0c1RhYmxlLmMsCiAgIG5ldFNubXBIb3N0c1RhYmxlLmgsIG5ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5jLAogICBuZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuaCwgbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMuYwosIG5ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmgsCiAgIG5ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zX2xvY2FsLmMsCiAgIG5ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zX2xvY2FsLmgsCiAgIG5ldFNubXBIb3N0c1RhYmxlX2NvbHVtbnMuaCwgbmV0U25tcEhvc3RzVGFibGVfZW51bXMuaDoKCiAgIC0gQSBuZXRTbm1wSG9zdHNUYWJsZSBpbXBsZW1lbnRhdGlvbiB0aGF0IGltcGxlbWVudHMgYSB0YWJsZV9pdGVyYXRvcgogICAgIHdyYXBwZXIgYXJvdW5kIC9ldGMvaG9zdHMuICBOb3RlIHRoYXQgYWx0aG91Z2ggdGhpcyBpcyB0aGUgZmlyc3QgY2hlY2sKICAgICBpbiwgaXQgaXMgbm90IGVudGlyZWx5IGNvbXBsZXRlIHlldC4gIFNwZWNpZmljYWxseToKICAgICAtIEl0IGRvZXNuJ3Qgc3VwcG9ydCByb3cgY3JlYXRpb24geWV0IChteSBuZXh0IHRhcmdldCkgYW5kIGRlbGV0aW9uIHlldC4KICAgICAtIEl0IGltcGxlbWVudHMgYSBidW5jaCBvZiBzdHVmZiBpdHNlbGYgaW4gbmV0U25tcEhvc3RzVGFibGUuYyB0aGF0CiAgICAgICB3aWxsIGV2ZW50dWFsbHkgZ28gaW50byBhIG1vcmUgZ2VuZXJpYyBoZWxwZXIuCiAgICAgLSBJdCBkb2Vzbid0IHN1cHBvcnQgYW55dGhpbmcgYnV0IGlwdjQgeWV0IGJ1dCBkb2Vzbid0IGlnbm9yZSBpdCBpbgogICAgICAgdGhlIGhvc3RzIGZpbGUgKGluZXRfYXRvbiByZXR1cm5zIGEgLTEgdGh1cyBhbGwgaXB2NiBhZGRyZXNzIGdldAogICAgICAgbWFwcGVkIHRvIDI1NS4yNTUuMjU1LjI1NSkuCiAgIC0gSXQgaXMgc3RpbGwgdXNlZnVsIGp1c3QgdG8gc2hvdyBob3cgU0VUIG9wZXJhdGlvbnMgY2FuIGJlIHBlcmZvcm1lZAogICAgIHVzaW5nIGEgdGFibGVfaXRlcmF0b3IuCiAgIC0gUGx1cyBJIG5lZWRlZCB0byBjaGVjayBpdCBpbiBiZWZvcmUgSSBzdGFydCBtZXNzaW5nIHdpdGggaXQgYWdhaW4KICAgICBqdXN0IGZvciBhcmNoaXZhbCBwdXJwb3Nlcy4KICAgCjIwMDMtMDYtMjIgMTY6MTQgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIENyZWF0ZSBhbiBleGFtcGxlIHRhYmxlIHRoYXQgaXMgYSB3cmFwcGVyIGFyb3VuZCAvZXRjL2hvc3RzIGRhdGEuCiAgIAoyMDAzLTA2LTIyIDEyOjUzICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIElORk8gaXMgbm90IGEgZmFjaWxpdHkgLSBVU0VSIGNvdWxkIGJlCiAgIAoyMDAzLTA2LTIyIDEyOjUwICBuYmEKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIEFkZCB0aGUgbmV3IC1MIG9wdGlvbiB0byB0aGUgdXNhZ2UgbWVzc2FnZQogICAKMjAwMy0wNi0yMiAxMjo0OSAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBBZGQgc29tZSBtaXNzaW5nIHByb3RvdHlwZXMsIGFuZCB1c2UgdGhlbQogICAKMjAwMy0wNi0yMiAxMjo0NiAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBEbyBhd2F5IHdpdGggc29tZSB3YXJuaW5ncwogICAKMjAwMy0wNi0yMiAxMjo0NCAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGNvbnN0aWZ5IGEgZmV3IGFyZ3VtZW50cywgbWFrZSBzdXJlIHRoYXQgd2UgZGVmYWx0IG91dHB1dCB0byBzdGRlcnIKICAgCjIwMDMtMDYtMjIgMTI6NDIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYwosIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi92YWNtLmM6CgogICBEbyBhd2F5IHdpdGggc29tZSB3YXJuaW5ncwogICAKMjAwMy0wNi0yMiAxMjozOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgVW50YW5nbGUgYSBtb3N0IGV4dHJvcmRpbmFyeSB3ZWIgb2cgRnJlZUJTRCBhbmQgTGludXgKICAgCjIwMDMtMDYtMjIgMDc6MjIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIGZpeCBoZWxwIHVzYWdlIGZvciBmbGFnIG9yZGVyaW5nLgogICAKMjAwMy0wNi0yMiAwNzoyMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYwosIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIGFkZCAtcyBTVUZGSVggYW5kIC1TIFBSRUZJWCBmbGFncwogICAtIGRveHlnZW4gZG9jdW1lbnQgc25tcF9wYXJzZV9vaWQKICAgLSBBZGQgYSBwcm9wZXIgTDogdG9rZW4gdG8gZ2V0b3B0IGZvciBhIG1pc3NpbmcgYWNjZXB0ZWQgZmxhZwogICAKMjAwMy0wNi0yMCAxNjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgZml4IHRoZSBsb29wIGZyZWUgYmVmb3JlIGNhbGwtc3ViLWhvb2sgb3JkZXJpbmcgcHJvYmxlbSBEYXZlIHBvaW50ZWQgb3V0CiAgIAoyMDAzLTA2LTIwIDExOjU4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIFN1cHBvcnQgdGhlIG9wdGlvbiBmb3Igc29ydGVkIGl0ZXJhdG9yLWJhc2VkIHRhYmxlcywgdG9vLgogICAKMjAwMy0wNi0yMCAxMTo1MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgU3RvcCBzZWFyY2hpbmcgb25jZSB3ZSd2ZSBmb3VuZCBhbGwgImV4YWN0IiByZXF1ZXN0ZWQgcm93cy4KICAgCjIwMDMtMDYtMTkgMDE6NTQgIGR0czEyCgogICAqIG1hbi86IHNubXBzZXQuMS5kZWYsIHNubXB0cmFwLjEuZGVmOgoKICAgQ2xhcmlmeSB0aGUgQVNOLjEgdHlwZSBtYXBwaW5ncyBmb3IgY29tbWFuZC1saW5lIHR5cGUgc3BlY2lmaWNhdGlvbnMuCiAgIAoyMDAzLTA2LTE3IDA1OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgU3RhcnQgdXNpbmcgdGhlIG5ldyAtTHggc3R5bGUgbG9nZ2luZyBvdXRwdXQuCiAgIFVuZm9ydHVuYXRlbHksIHRoaXMgZG9lc24ndCBzZWVtIHRvIHN1cHBvcnQgdGhlIG9sZCAtTCBmb3JtYXQKICAgKHNlZSBjb21tZW50cyBpbiBzbm1wbGliL3NubXBfbG9nZ2luZy5jIGZvciBkZXRhaWxzKS4KICAgCiAgIEl0IG1heSBwcm92ZSBuZWNlc3NhcnkgdG8gcmV2ZXJzZSB0aGlzIHBhdGNoOi0oCiAgIEJ1dCBJJ20gY29tbWl0dGluZyBpdCBhbnl3YXksIGluIGNhc2UgYW55b25lIGNhbiBzcG90IGEgc3VpdGFibGUgd29ya2Fyb3VuZC4KICAgCjIwMDMtMDYtMTcgMDU6NTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBNaW5vciB0d2VhayB0byBzdGRvdXQvc3RkZXJyIGhhbmRsaW5nLCB0byBpbXByb3ZlIHRoZSBhcHBlYXJhbmNlIG9mCiAgIE1JQiBncm91cCBvdXRwdXQuCiAgIAoyMDAzLTA2LTE3IDA1OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuaCwgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0CjoKCiAgIE1JQiBncm91cCB0byBtYW5hZ2UgYWdlbnQgbG9nZ2luZyBjb25maWd1cmF0aW9uLgogICAKMjAwMy0wNi0xNiAxNDo1OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IFJVTlRFU1RTIChWNS0wLXBhdGNoZXMuNCksIFJVTlRFU1RTOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBuZWVkZWQgY29tbWVudCBhYm91dCBpdCBiZWluZyBicm9rZW4sIGFzIHBvaW50ZWQgb3V0CiAgIGJ5IEJydWNlLgogICAKMjAwMy0wNi0xNiAxNDo1NSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IFJVTlRFU1RTIChWNS0wLXBhdGNoZXMuMyksIFJVTlRFU1RTOgoKICAgc3VwcG9ydCAsIHNlcGFyYXRlZCBhcmd1bWVudHMgdG8gLVQgbGlrZSAtaCBzYXlzIGl0IHdpbGwuCiAgIAoyMDAzLTA2LTE2IDE0OjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgUGF0Y2ggZnJvbSBCcnVjZSBTaGF3IHRvIGZpeCBvdXRwdXQgbnVtYmVyaW5nIHdoZW4gdXNpbmcgLVQgb3IKICAgaW50ZXJhY3RpdmVseSBwaWNrZWQgc3ViLXNlcmllcyBvZiB0ZXN0cy4KICAgCjIwMDMtMDYtMTYgMTQ6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jIChWNS0wLXBhdGNoZXMuMiksCiAgIGtlcm5lbF9zdW5vczUuYzoKCiAgIFBhdGNoICM3NTU1NDAgZnJvbSBCcnVjZSBTaGF3IGFuZCBJUkM6U2ViTm9iIHRvIGZpeCBidWcgIzcwMTQzOSBmb3IgNjQgYml0IHNvbGFyaXMgc3lzdGVtcyBhbmQgNjQgYml0IGludGVnZXJzIHJldHVybmVkIGJ5IGdldEtzdGF0CiAgIAoyMDAzLTA2LTE2IDEzOjE3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1NWFnZW50djFtaW50cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwCjoKCiAgIFBhdGNoICM3NTQxMDUgZnJvbSBCcnVjZSBTaGF3IHRvIGZpeCBzb21lIHNwZWxsaW5nIGVycm9ycwogICAKMjAwMy0wNi0xNiAwNzoyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIHlldCBtb3JlIGltcHJvdmVtZW50cyB3b3JraW5nIHRvd2FyZCB0aGUgZW5kLWdvYWwuCiAgIAoyMDAzLTA2LTE2IDA3OjE3ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuUGFuYXNvbmljX0FNM1gudHh0LCBSRUFETUUuTWF0c3VzaGl0YS50eHQ6CgogICByZW5hbWVkIHRvIFBhbmFzb25pY19BTTNYIGJ5IHJlcXVlc3QKICAgCjIwMDMtMDYtMTMgMjI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIE9rLCB0aGVyZSB3YXMgMSBtZW1vcnkgbGVhay4gIEJ1dCBpdHMgZ29uZSBub3cuCiAgIAoyMDAzLTA2LTEzIDIyOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBBIGNvbXBsZXRlIHJld3JpdGUgb2YgdGhlIGl0ZXJhdG9yIGZyb20gc2NyYXRjaC4KICAgICAtIDYwIGxpbmVzIG9yIHNvIGxlc3MgY29kZS4KICAgICAtIG5vIGxvbmdlciBmb3JjZWQtc2VyaWFsaXplZAogICAgIC0gbWVtb3J5LWxlYWsgZnJlZQogICAgIC0gYmV0dGVyIGNvbW1lbnRlZCAodGhvdWdoIG1vcmUgY291bGQgYWx3YXlzIGJlIHVzZWZ1bCkuCiAgICAgLSBzaWduaWZpY2FudGx5IHNpbXBsZXIgaW4gZGVzaWduLgogICAgIC0gZGVtb25zdHJhdGlvbiBleGFtcGxlIG1pYiBtb2R1bGUgY29kZSB0byBiZSBjaGVja2VkIGluIGVhcmx5IG5leHQgd2Vlay4KICAgCjIwMDMtMDYtMTMgMTE6MTggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNoZWNrX3ZhbHVlcy5jb25mOgoKICAgZml4IHJhbmdlIGNoZWNrcyBub3cgdGhhdCBpdHMgbm8gbG9uZ2VyIHRoZSBsYXN0IHRoaW5nIGNhbGxlZC4KICAgCjIwMDMtMDYtMTMgMTE6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZjoKCiAgIG1pc2MgbWlub3IgZml4ZXMuCiAgIAoyMDAzLTA2LTEzIDExOjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCBlbHNlIGNsYXVzZXMgd2l0aGluIGlmIHN0YXRlbWVudHMuCiAgIAoyMDAzLTA2LTEzIDA4OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBIYW5kbGUgcHJvYmxlbXMgd2l0aCByZWFkaW5nIHByb2Nlc3MgaW5mb3JtYXRpb24gb24gU29sYXJpcyBraXQsIGNvbnNpc3RlbnRseSBhbmQgY2xlYW5seS4KICAgCjIwMDMtMDYtMTMgMDY6MjggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEltcGxlbWVudCAnLUx4JyBjb21tYW5kLWxpbmUgbWV0YS1vcHRpb24gZm9yIGNvbmZpZ3VyaW5nIGxvZ2dpbmcgc2V0dGluZ3MuCiAgIE5vdCAxMDAlIGNvbnZpbmNlZCB0aGlzIGlzIGZ1bGx5IHdvcmtpbmcsIGJ1dCBkb2VzIHNlZW0gdG8gc3VwcG9ydAogICBtdWx0aXBsZSBvdXRwdXQgbG9jYXRpb25zLgogICAKMjAwMy0wNi0xMCAxNTo0OCAgbmJhCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNS0wLXBhdGNoZXMuNyksIHNubXBfYXBpLmM6CgogICBCZXdhcmUgb2YgZGVyZWZlcmVuY2luZyBhIE5VTEwgcG9pbnRlcgogICAKMjAwMy0wNi0xMCAxMDo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGFkZCBjYWNoaW5nIGhhbmRsZXIgZmlsZQogICAKMjAwMy0wNi0xMCAwODo0OCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgSW5pdGlhbCBiYXNoIGF0IGEgbW9kdWxhciAibG9nX2hhbmRsZXIiIGltcGxlbWVudGF0aW9uLgogICBMYXlpbmcgdGhlIGZvdW5kYXRpb25zIGZvciBtb3JlIGZsZXhpYmxlIGxvZ2dpbmcgY29uZmlndXJhdGlvbi4KICAgCjIwMDMtMDYtMTAgMDg6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSB0aGUgdW51c2VkIGZ1bmN0aW9uIGFzIHBvaW50ZWQgb3V0IGJ5IEJvYiBSb3dsYW5kcwogICAKMjAwMy0wNi0wOSAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgc25tcGxpYi92YWNtLmMKICAgKFY1LTAtcGF0Y2hlcy5bMSwzLDEsMV0pLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIExvbmcgb3ZlcmR1ZSBwYXRjaCAjNjk1MTkyIGZyb20gUm9uIFRhYm9yIHRvIGZpeCB0aGUgVkFDTSBzcGlubmluZyBwcm9ibGVtIHRoYXQgSSBkaWRuJ3QgcXVpdGUgZml4IGJlZm9yZQogICAKMjAwMy0wNi0wOSAxNTo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMsCiAgIHRlc3RpbmcvdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUywgY29uZmlndXJlOgoKICAgZml4IGJ1ZyAjNzA2NzEwIHRvIHNob3cgd2hlbiBwcml2YWN5IGhhcyBiZWVuIGRpc2FibGVkCiAgIAoyMDAzLTA2LTA5IDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgZml4IGJ1ZyAjNzA2NzQxIGZyb20gU2VhbiBCdXJrZTogY2hlY2sgZm9yIHdvcmQgYm91bmRhcmllcyBiYXNlZCBvbiBhCiAgIHByb3BlciBzaXplIChzaXplb2YobG9uZykpLgogICAKMjAwMy0wNi0wOSAxNTozNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBidWcgIzc0ODQzMSBmcm9tIEpvaG4gU2hpdmVyOiBmaXggdGhyZWFkLXNhZmUgcHJvYmxlbXMgd2l0aCBzbm1wX2dldF9mZF9mb3Jfc2Vzc2lvbiAod2hpY2ggd2FzIG1pc3NpbmcgaW4gdGhlIDUueCBsaW5lIGFueXdheSkuICBBbHNvIHNlcGFyYXRlIG91dCB1bmlvbiBzdHJ1Y3R1cmUgaW50byBhIHNlcGFyYXRlIHR5cGVkZWYgcmF0aGVyIHRoYW4gdXNlIGl0IGlubGluZSBpbiB0aGUgdmFyaWFibGUgbGlzdCBzdHJ1Y3R1cmUKICAgCjIwMDMtMDYtMDkgMTU6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggYnVnICMgNzUxMTk3IHBvaW50ZWQgb3V0IGJ5IFRvbSBFdmFucyB3aGVyZSBpc3NwYWNlIGlzIHVzZWQgdG8gY2hlY2sgZm9yIGhleCBjaGFyYWN0ZXJzIHdoZW4gaXNwcmludCgpIGlzIGFsbCB0aGF0IGlzIG5lZWRlZAogICAKMjAwMy0wNi0wOSAxNToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5oLAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5oLCBhY2NvbmZpZy5oLAogICBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBwYXRjaCAjNzQ5NTUyIGZyb20gdmF4cG93ZXIgKHdpdGggbW9kaWZpY2F0aW9ucyBieSBXZXMpOiBtdWNoIGltcHJvdmVkIEFJWCBzdXBwb3J0CiAgIAoyMDAzLTA2LTA5IDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuTWF0c3VzaGl0YS50eHQgKFY1LTAtcGF0Y2hlcy4xKSwgUkVBRE1FLk1hdHN1c2hpdGEudHh0CjoKCiAgIFBhdGNoICM3NDgzMDUgZnJvbSBzcmluaXZhc2EgcmFvIGd1cnVzdSBkZXNjcmliaW5nIGhvdyB0byBidWlsZCBuZXQtc25tcCBvbiBNYXRzdXNoaXRhIGVtYmVkZGVkIHN5c3RlbXMKICAgCjIwMDMtMDYtMDkgMTQ6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXBBZGRyLmMgKFY1LTAtcGF0Y2hlcy4zKSwgaXBBZGRyLmM6CgogICBQYXRjaCA3NDYzMzk6IE90dG8gU29sYXJlcyBmaXhlcyBhIGZpbGUgZGVzY3JpcHRvciBsZWFrIG9uIGxpbnV4CiAgIAoyMDAzLTA2LTA5IDE0OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYyAoVjUtMC1wYXRjaGVzLjEpLAogICBrZXJuZWxfc3Vub3M1LmM6CgogICBQYXRjaCAjNzQ5MDYyIHRvIGZpeCBjYWNoaW5nIGNyYXNoaW5nIGFuZCBjbGFzaGluZyB1bmRlciBTb2xhcmlzCiAgIAoyMDAzLTA2LTA5IDE0OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHByb3h5LmMgKFY1LTAtcGF0Y2hlcy4yKSwgcHJveHkuYwo6CgogICBwYXRjaCAjNzQ5MTAzIGZyb20gR2FycnkgQyBNYXJzaGFsbCB0byBmaXggdGhlIHByb3h5IHdoZW4gYSB0aW1lb3V0IG9jY3VycyBmcm9tIHRoZSB0YXJnZXQKICAgCjIwMDMtMDYtMDkgMDQ6MDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmgKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmgsIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dAo6CgogICBNSUIgb2JqZWN0cyB0byBtYW5hZ2UgY29uZmlndXJhdGlvbiBvZiBNSUIgZGF0YSBjYWNoaW5nLgogICAKMjAwMy0wNi0wOSAwMzo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmgsIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dAosIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgUmV3b3JrIG5zRGVidWdUb2tlblRhYmxlIHRvIGJlIGluZGV4ZWQgYnkgdGhlIGRlYnVnIHRva2VuIHN0cmluZyB2YWx1ZXMuCiAgIAoyMDAzLTA2LTA2IDA4OjQ1ICBkdHMxMgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICBzbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIEltcGxlbWVudCB2YXJpb3VzIHNlcGFyYXRlIGxpc3RzIG9mICJnbG9iYWwiIGhhbmRsZXJzLCB0byBzdXBwb3J0CiAgIHByZS0gYW5kIHBvc3Qtc3BlY2lmaWMgZ2xvYmFsIHByb2Nlc3NpbmcsIGFzIHdlbGwgYXMgImF1dGhlbnRpY2F0aW9uIgogICBoYW5kbGVycywgd2hpY2ggYXJlIGd1YXJhbnRlZWQgdG8gYmUgY2FsbGVkIGZpcnN0LgogICBBbHNvIHN1cHBvcnQgZm9yIHRlcm1pbmF0aW5nIHRyYXAgcHJvY2Vzc2luZyBlYXJseS4KICAgCiAgIERvbid0IGxldCBtZSBoZWFyIHlvdSBzYXkgdGhhdCBJIG5ldmVyIGxpc3RlbiB0byB5b3UsIFdlcyEKICAgCjIwMDMtMDYtMDYgMDY6NDIgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IG1pc3NpbmcgbGVuZ3RoIGJ5dGUgd2hlbiBzZXR0aW5nIGluZGV4IHdpdGggY2hlY2tzIGRpc2FibGVkCiAgIAoyMDAzLTA2LTA2IDAxOjMyICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKOgoKICAgQ2xhcmlmeSB3aGljaCAicltvd117dXNlcixjb21tdW5pdHl9IiBwYXJhbWV0ZXJzIGFyZSBvcHRpb25hbCwgYW5kICBpbiB3aGljaCBjb21iaW5hdGlvbnMuCiAgIAoyMDAzLTA2LTA0IDA1OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBGaXJzdCBwYXNzIGF0IGEgZGF0YS1jYWNoaW5nIGhlbHBlciAtIGluZGVwZW5kZW50IG9mIGluZGl2aWR1YWwgTUlCIG1vZHVsZXMuCiAgIChpLmUuIGl0J3MgdXAgdG8gZWFjaCBNSUIgbW9kdWxlIHRvIHByb3ZpZGUgImxvYWQgZGF0YSIgYW5kICJmcmVlIGRhdGEiCiAgICByb3V0aW5lcywgYnV0IHRoZSBoYW5kbGluZyBvZiB3aGVuIHRvIGxvYWQgdGhlc2UgY2FjaGVzIGlzIGRvbmUgaGVyZSkuCiAgIAogICBUaGUgaW50ZW50aW9uIGlzIHRoYXQgdGhpcyBmdW5jdGlvbmFsaXR5IHdpbGwgYmUgU05NUC1tYW5hZ2VhYmxlIChpbmNsdWRpbmcKICAgY29uZmlndXJhdGlvbiBvZiB2YWxpZGl0eSB0aW1lb3V0cywgaW52YWxpZGF0aW9uIG9mIGNhY2hlZCB2YWx1ZXMsIGV0YykuCiAgIEJ1dCBmb3Igbm93LCB0aGlzIGlzIGp1c3QgdGhlIGJhc2ljIGhhbmRsZXIuCiAgIAoyMDAzLTA2LTA0IDA1OjUwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NjYWxhcl9ncm91cC5oOgoKICAgU2luZ2xlIGhlbHBlciB0byBpbXBsZW1lbnQgYSBncm91cCBvZiBzY2FsYXIgb2JqZWN0cyBpbiBvbmUgZ28uCiAgIChDbG9zZXIgdG8gdGhlIG1vZGVsIG9mIHRoZSBlYXJsaWVyIHY0IEFQSSkKICAgCjIwMDMtMDYtMDMgMTc6MTQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1lbnRpb24gd2hlcmUgImxhdGVyIiBhY3R1YWxseSBpcy4KICAgCjIwMDMtMDYtMDIgMDU6NDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5oOgoKICAgRGVjbGFyYXRpb25zIGZvciBpbXByb3ZlZCBTb2xhcmlzIENQVSBzdXBwb3J0IGZyb20gcGF0Y2ggIzczODQ2NSkKICAgKE9vcHMhKQogICAKMjAwMy0wNi0wMiAwNTozNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIFNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBmb3J3YXJkaW5nIHRyYXBzIHRvIGFub3RoZXIgZGVzdGluYXRpb24uCiAgIChJJ3ZlIGdvdCBhIG51bWJlciBvZiBpZGVhcyBvZiBob3cgdGhpcyBjb3VsZCBiZSBkb25lIG1vcmUgZmxleGlibHksCiAgICBidXQgdGhpcyBzZXJ2ZXMgYXMgYSBiYXNpYyBwcm9vZi1vZi1jb25jZXB0LCBmb3IgZmVlZGJhY2sgJiBjb21tZW50KQogICAKMjAwMy0wNi0wMiAwNTozMyAgZHRzMTIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgc25tcHRyYXBkX2hhbmRsZXJzLmg6CgogICBNb2R1bGFyaXNlZCBhcHByb2FjaCB0byBkaWZmZXJlbnQgc3R5bGVzIG9mIGhhbmRsaW5nIGluY29taW5nIHRyYXBzLgogICBUaGlzIHNlZW1zIHRvIHJldGFpbiB0aGUgc2FtZSBiZWhhdmlvdXIgYW5kIG91dHB1dCBmb3JtYXRzIGFzIHRoZQogICBlYXJsaWVyIGNvZGUsIGJ1dCBzaG91bGQgYmUgbXVjaCBtb3JlIGZsZXhpYmxlIHRvIGV4dGVuZCBhbmQgYWRhcHQuCiAgIAoyMDAzLTA1LTMwIDE3OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmM6CgogICBtYWtlIHVzZSBvZiBuZXcgZXhwb3J0ZWQgaXRlbXMgZnJvbSBzbm1wX2RlYnVnLgogICAKMjAwMy0wNS0zMCAxNzoxMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmYsCiAgIG1pYjJjLmNoZWNrX3ZhbHVlcy5jb25mOgoKICAgbW9yZSBjbGVhbnVwcwogICAKMjAwMy0wNS0zMCAxNjo1MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLAogICBtaWIyYy5jaGVja192YWx1ZXMuY29uZiwgbWliMmMuY2hlY2tfdmFsdWVzX2xvY2FsLmNvbmYsCiAgIG1pYjJjLml0ZXJhdGUuY29uZiwgbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIFVwZGF0ZSB0byBtaWIyYyBjb2RlIGZvciBwcm9kdWNpbmcgd2hhdCBJIHRoaW5rIHNob3VsZCBiZSBhbiBlYXNpZXIgdG8KICAgdXNlIEFQSSBzZXQgKHRoYXQgaXMgbm90IGFsbCB3cmFwcGVkIGludG8gYSBzaW5nbGUgZnVuY3Rpb24pLgogICAKMjAwMy0wNS0zMCAxNjo1MSAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgZml4IG1pYiB0eXBvCiAgIAoyMDAzLTA1LTMwIDE2OjUxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgZGVmaW5lIGEgbm9vcCBmcmVlIGZ1bmN0aW9uLgogICAKMjAwMy0wNS0zMCAxNjo1MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgc25tcGxpYi9zbm1wX2RlYnVnLmMKOgoKICAgZXhwb3J0IGluZm9ybWF0aW9uIG5lZWRlZCBieSB0aGUgbmV3IGRlYnVnIG1vZHVsZXMuCiAgIAoyMDAzLTA1LTMwIDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBhZGRlZCBhIGNvbXBpbGluZyBzZWN0aW9uIHdpdGggb25lIG5ldyBxdWVzdGlvbiBhYm91dCBsaWJlbGYuICBPdGhlciBxdWVzdGlvbnMgcHJvYmFibHkgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBuZXcgc2VjdGlvbgogICAKMjAwMy0wNS0zMCAwNToxNCAgZHRzMTIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXB2YWNtLjEuZGVmOgoKICAgUHJlbGltaW5hcnkgbWFuIHBhZ2UgZm9yIHNubXB2YWNtCiAgIAoyMDAzLTA1LTMwIDAzOjU5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBIYW5kbGUgYmxvY2sgc2l6ZXMgPDFLIHdoZW4gY29udmVydGluZyBibG9jayBjb3VudHMgdG8gS2IuCiAgIFJlcG9ydGVkIGJ5IEV1Z2VuZSBWLiBDaHVwcml5YW5vdiAod2F5IGJhY2sgaW4gT2N0b2JlciEpLgogICBGbGF3cyB3aXRoIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIHBhdGNoIGFyZSBteSByZXNwb25zaWJpbGl0eS4KICAgKEknbSBub3QgdG90YWxseSBoYXBweSBhYm91dCBjYXN0aW5nIHRvIGZsb2F0IGluIHRoaXMgd2F5LAogICAgYnV0IGl0IHNlZW1lZCB0aGUgYmVzdCBvZiBhIGJhZCBsb3QpLgogICAKMjAwMy0wNS0zMCAwMzozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBTaWduaWZpY2FudGx5IGltcHJvdmVkIHN1cHBvcnQgZm9yIFNvbGFyaXMgQ1BVIGluZm9ybWF0aW9uCiAgIChpbmNsdWRpbmcgZGVzY3JpcHRpb24sIHN0YXR1cyBhbmQgbXVsdGktQ1BVIHN1cHBvcnQpLgogICBUaGFua3MgdG8gSmFtZXMgSXJ3aW4gZm9yIGltcGxlbWVudGluZyBpdCAoc2VlIHBhdGNoICM3Mzg0NjUpCiAgIE5vIHRoYW5rcyB0byBEYXZlIFNoaWVsZCBmb3Igc2l0dGluZyBvbiBpdCBmb3IgYSBjb3VwbGUgb2Ygd2Vla3MuCiAgIEJhZCBEYXZlISBCYWQgRGF2ZSEKICAgCjIwMDMtMDUtMjggMTc6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiBvbGRfYXBpLmMgKFY1LTAtcGF0Y2hlcy4xKSwgb2xkX2FwaS5jOgoKICAgcmVtb3ZlIHVudXNlZCBjb2RlIGFzIHBvaW50ZWQgb3V0IGJ5IFBldGVyIFdhcmFzaW4KICAgCjIwMDMtMDUtMjggMTY6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBmaXggZ2V0YnVsayBvcGVyYXRpb25zIChob3BlZnVsbHkpLCBhcyBwb2ludGVkIG91dCBieSBSb24gVGFib3IuCiAgIAoyMDAzLTA1LTI4IDA2OjEyICBkdHMxMgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgQ2xlYXIgdGhlIG91dHB1dCBidWZmZXIgYmVmb3JlIGRpc3BsYXlpbmcgdGhlIHNlY29uZCAob3Igc3Vic2VxdWVudCkKICAgdmFyYmluZCBpbiBhIG11bHRpLXZhbHVlIHRhYmxlIGZvcm1hdC4gIEJ1ZyBzcG90dGVkIGJ5IFN0ZWZhbm8gQm9kcmF0by4KICAgCjIwMDMtMDUtMjggMDU6MTQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcm93X21lcmdlLmgsCiAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICBIZWxwZXIgdG8gZ3JvdXAgcmVsYXRlZCByZXF1ZXN0cyBmb3IgdGhlIHNhbWUgcm93IHRvZ2V0aGVyLiAgU3ViLWhhbmRsZXJzCiAgIGNhbiB0aGVyZWZvcmUgd29yayB3aXRoIG11bHRpcGxlIHZhcmJpbmRzLCBhbGwgcmVsYXRpbmcgdG8gdGhlIHNhbWUgcm93LgogICAKICAgVGhpcyB3YXMgb3JpZ2luYWxseSBpbnRlbmRlZCBmb3IgdXNlIHdpdGggdGhlIGl0ZXJhdG9yIGhlbHBlciwgYnV0CiAgIHRoYXQgaGVscGVyIGlzIGFwcGFyZW50bHkgYmVpbmcgcmV3b3JrZWQgYXQgdGhlIG1vbWVudC4gIEJ1dCB0aGlzIHNlZW1zCiAgIGEgcG90ZW50aWFsbHkgdXNlZnVsIGZlYXR1cmUgYW55d2F5LCBzbyBJJ20gY29tbWl0dGluZyBpdCByZWdhcmRsZXNzIQogICAKMjAwMy0wNS0yOCAwNDoxOSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFJlbW92ZSBzdHJheSBeTSBsaW5lIGVuZGluZ3MKICAgCjIwMDMtMDUtMjggMDI6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvOiBkbG1vZC5jLCBkbG1vZC5oOgoKICAgUmVtb3ZlIHJlZHVuZGVudCB2ZXJzaW9uIG9mICdkbG1vZCcuICAgVGhpcyB3YXMgbW92ZWQgdG8gJ3VjZC1zbm1wJwogICBpbiAyMDAwLCBhbmQgdGhpcyAnbWlzYycgdmVyc2lvbiBoYXMgYmVlbiBlZmZlY3RpdmVseSB1bnRvdWNoZWQgc2luY2UuCiAgIExlYXZpbmcgaXQgYXJvdW5kIGlzIGp1c3QgYXNraW5nIGZvciBwZW9wbGUgdG8gZ2V0IGNvbmZ1c2VkLgogICAKMjAwMy0wNS0yNyAwODo1NiAgZHRzMTIKCiAgICogQUdFTlQudHh0OgoKICAgTWVudGlvbiB0aGF0IHRoaXMgZGVzY3JpYmVzIHRoZSB2NCBBUEksIHJhdGhlciB0aGFuIHRoZSB2NSBoZWxwZXIgbWVjaGFuaXNtLgogICAKMjAwMy0wNS0yMSAxMDo1OCAgaGFyZGFrZXIKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIHJwbSBmaXhlcwogICAKMjAwMy0wNS0yMSAxMDo1OCAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgaW5zdGFsbCB0aGUgc3BlYyBmaWxlCiAgIAoyMDAzLTA1LTIxIDEwOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBtaWJJSS92YWNtX2NvbnRleHQuYzoKCiAgIEZpeCBmb3IgcHJvcGVyIG5vbi1zZXJpYWxpemVkIGl0ZXJhdG9yIHVzYWdlLgogICAKMjAwMy0wNS0yMSAwNjowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmgsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIE5ldyBNSUIgZ3JvdXAgdG8gbW9uaXRvciBhbmQgY29udHJvbCBkZWJ1Z2dpbmcgb3V0cHV0IGZyb20gdGhlIGFnZW50LgogICBOb3RlIHRoYXQgdGhpcyBpcyBhIHByb3Zpc2lvbmFsIGltcGxlbWVudGF0aW9uLCBhbmQgdGhlIE1JQiBkZWZpbml0aW9ucwogICBhcmUgY3VycmVudGx5IHN1YmplY3QgdG8gY2hhbmdlIChhdCBsZWFzdCB1bnRpbCB3ZSBtYWtlIGEgZnVsbCByZWxlYXNlCiAgIGluY2x1ZGluZyB0aGlzIGdyb3VwKQogICAKMjAwMy0wNS0yMSAwNDozNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMgKFY0LTItcGF0Y2hlcy43KSwgcGFzcy5jOgoKICAgRml4IHBhc3Npbmcgb2YgInNldCIgcGFyYW1ldGVycyB0byBhIHBhc3MtdGhyb3VnaCBzY3JpcHQKICAgKEJ1ZyAjNjg5OTM2LCBmaXhlZCBieSBFcmljIEJvd2xlcykKICAgCjIwMDMtMDUtMjAgMDc6MzcgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgTWFudSBTaGFybWEncyBkeW5hbWljYWxseS1jb25maWd1cmFibGUgZGVidWcgdG9rZW4gaGFuZGxpbmcuCiAgIAoyMDAzLTA1LTIwIDA1OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgKOgoKICAgSW1wbGVtZW50IGEgIndhdGNoZWQgc3BpbmxvY2siIGhlbHBlci4KICAgCjIwMDMtMDUtMjAgMDQ6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIEZpeCBsb2FkIGF2ZXJhZ2Ugc3VwcG9ydCBmb3IgQUlYNSAoQnVnICM1NjM5NzggcmVwb3J0ZWQgYnkgSmVmZiBDdW5uaW5naGFtKQogICAKMjAwMy0wNS0yMCAwMzoyOSAgZHRzMTIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgSW5jb3Jwb3JhdGUgTmlrb2xhaSBEZXZlcmVhdXgncyBvdmVydmlldyBvZiB0aGUgVmlzdWFsIEMrKyBvcmdhbmlzYXRpb24sCiAgIHBsdXMgc29tZSBtaW5vciByZWFycmFuZ2VtZW50IG9mIHNlY3Rpb25zLCBhbmQgdG9uZSBkb3duIGEgc29tZXdoYXQKICAgb3Zlcmx5IGVudGh1c2lhc3RpYyBjb21tZW50LgogICAKMjAwMy0wNS0xNSAyMjo0MiAgaGFyZGFrZXIKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBvc2Y1IHBhdGNoIHRoYXQgbmV2ZXIgZ290IGFkZGVkLgogICAKMjAwMy0wNS0xNSAyMjo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIE1pbm9yIGZpeC4KICAgCjIwMDMtMDUtMTQgMTg6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIG9vcHNpZSBkb29zaWUgZmxvb3NpZSB3b296aWUKICAgCjIwMDMtMDUtMTQgMTg6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIG9wcHMKICAgCjIwMDMtMDUtMTQgMTU6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBzb21lIG90aGVyIC5jb25mIGZpbGVzCiAgIAoyMDAzLTA1LTE0IDE1OjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jaGVja192YWx1ZXMuY29uZjoKCiAgIHJlbW92ZSB1bm5lZWRlZCB2YXIKICAgCjIwMDMtMDUtMTQgMTU6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgbWlzYyBtaW5vciBjaGFuZ2VzCiAgIAoyMDAzLTA1LTE0IDE1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBjYWNoaW5nIHN1cHBvcnQgZnJvbSBhIHBhdGNoICM3MjY0MTggZnJvbSBMYXJyeSBTaW1tb25zLgogICAKMjAwMy0wNS0xNCAxNTowOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0YWJsZS4xLmRlZjoKCiAgIDJuZCBQYXRjaCA3MDI3MTEgYnkgUm9uIFRhYm9yIGRvY3VtZW50aW5nIG5ldyBzbm1wdGFibGUgb3B0aW9ucwogICAKMjAwMy0wNS0xNCAxNTowNyAgaGFyZGFrZXIKCiAgICogTkVXUywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIFBhdGNoICM3MTMwNzIgZnJvbSBYaWFvZmVuZyBMaW5nIGZvciBjb20yc2VjIG1hcHBpbmdzIG9uIHVuaXggc29ja2V0cwogICB3aXRoIHBlci1zb2NrZXQgbWFwcGluZ3MuCiAgIAoyMDAzLTA1LTE0IDE0OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmM6CgogICBQYXRjaCAjNzM1NDgwIGZyb20gQnJ1Y2UgU2hhdzogYXNzdW1lIG5vIGNvLXByb2Nlc3NvciBmb3IgU3VucywgYXMgaXMgdGhlIG1vcmUgY29tbW9uIGNhc2UKICAgCjIwMDMtMDUtMTQgMDg6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIFVzZSAvZXRjL3ByaW50Y2FwIHRvIGRldGVjdCBwcmludGVycyBpbiBwcmVmZXJlbmNlIHRvIHJ1bm5pbmcgbHBzdGF0CiAgIChvciB0aGUgY2dldG5leHQoKSBBUEkpLiAgIFRoaXMgc2VlbXMgbW9yZSBpbiBrZWVwaW5nIG9mIG91ciBnZW5lcmFsCiAgIHByaW5jaXBsZSBvZiB0cnlpbmcgdG8gYXZvaWQgaW52b2tpbmcgc3ViLXByb2Nlc3NlcyB3aGVyZXZlciBwb3NzaWJsZS4KICAgCjIwMDMtMDUtMTIgMjM6MTEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZCBSb24gVGFib3IKICAgCjIwMDMtMDUtMTIgMjM6MTAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBkb2N1bWVudCBuZXcgc25tcHRhYmxlIG9wdGlvbnMKICAgCjIwMDMtMDUtMTIgMjM6MDggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBwYXRjaCAjNzAyNzExIGZyb20gUm9uIFRhYm9yOiBBZGQgbmV3IGNvbW1hbmQgbGluZSBmbGFncyB0byBzbm1wdGFibGUgZm9yIHZhcmlvdXMgbmV3IGZlYXR1cmVzCiAgIAoyMDAzLTA1LTEyIDIyOjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMgKFY1LTAtcGF0Y2hlcy41KSwgc25tcHRyYXBkLmM6CgogICBQYXRjaCAjNzM1NTExIGZyb20gQWxleCBCdXJnZXI6IGZpeCBzbm1wdHJhcGQgdG8gZW5zdXJlIHRoZXJlIGFyZSB0aGUgY29ycmVjdCBudW1iZXIgb2YgdmFyYmluZHMKICAgCjIwMDMtMDUtMTIgMjI6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcHJveHkuYyAoVjUtMC1wYXRjaGVzLjEpLCBwcm94eS5jCjoKCiAgIFBhdGNoICM3MzY3ODQgZnJvbSBSb24gVGFib3I6IGZpeCBwcm94aWVzIGZvciByZXN0YXJ0ZWQgTlNNUHYzIHN1Yi1hZ2VudHMKICAgCjIwMDMtMDUtMDkgMDg6NDcgIGR0czEyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgQWRkIHZhcmlvdXMgbWlzc2luZyBmdW5jdGlvbiBuYW1lcywgc3VwcGxpZWQgYnkgQWxleCBCdXJnZXIKICAgCjIwMDMtMDUtMDkgMDg6NDEgIGR0czEyCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMi5vcHQsIHdpbjMyc2RrLmRzdywKICAgbGliYWdlbnQvbGliYWdlbnQuZHNwLCBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLAogICBsaWJzbm1wL2xpYnNubXAuZHNwLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwgc25tcGQvc25tcGQuZHNwLAogICBzbm1wZHNkay9zbm1wZC5kc3A6CgogICBBcHBseSBOaWtvbGFpIERldmVyZWF1eCdzIFZDKysgY2xlYW51cCBwYXRjaCAoIzY5NDc2NikKICAgSXQgYXBwZWFycyB0byB3b3JrIE9LIC0gSSBqdXN0IGhvcGUgdGhlIGxpbmUgdGVybWluYXRpb25zCiAgIGRvbid0IHNjcmV3IHRoaW5ncyB1cCEKICAgCjIwMDMtMDUtMDggMTY6MzIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgUGF0Y2ggIzczMzg4MCBmcm9tIEFsZXggQnVyZ2VyIHRvIGZpeCB1c2VOdW1lcmljCiAgIAoyMDAzLTA1LTA4IDE2OjIxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgUGF0Y2ggIzczNDc3NCBmcm9tIEFuZHJldyBGaW5kbGF5OiBmaXggdGhlIHRlc3QgZW52aXJvbm1lbnQgZm9yIHNubXBkIHRvIGdpdmUgaXQgZnVsbHkgcXVhbGlmaWVkIHBhdGggbmFtZXMgZm9yIGNvbmZpZ3VyYXRpb24gZmlsZXMgc2luY2Ugc25tcGQgbm93IGNoZGlyJ3MgdG8gLwogICAKMjAwMy0wNS0wOCAxNjoxNSAgaGFyZGFrZXIKCiAgICogUkVBRE1FIChWNS0wLXBhdGNoZXMuNiksIFJFQURNRToKCiAgIG1lbnRpb24gQW5kcmV3IEZpbmRsYXkKICAgCjIwMDMtMDUtMDggMTY6MTQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvOiBhZ2VudC54cyAoVjUtMC1wYXRjaGVzLjEpLCBhZ2VudC54czoKCiAgIChleGNlbGxlbnQpIHBhdGNoICM3MDU1NjYgZnJvbSBBbmRyZXcgRmluZGxheSBvbiBwZXJsIGFnZW50IHN1cHBvcnQ6CiAgIAogICAxKSBBZ2VudCBjYW5ub3QgcmV0dXJuIE1BQyBhZGRyZXNzZXMgY29udGFpbmluZyB6ZXJvIG9jdGV0LgogICAKICAgMikgQWdlbnQgY29yZWR1bXBzIHdoZW4gdHJ5aW5nIHRvIHJldHVybiBJUCBhZGRyZXNzZXMKICAgaWYgdGhlc2UgYXJlIHN1cHBsaWVkIGFzIGRvdHRlZC1xdWFkIG9yIGFzIGEgaG9zdG5hbWUKICAgdGhhdCBmYWlscyB0byByZXNvbHZlLgogICAKICAgMykgQWdlbnQgY29ycnVwdHMgT0lEIHZhbHVlcy4KICAgCiAgIDQpIEFnZW50IHRydW5jYXRlcyBhbnkgT0NURVRfU1RSSU5HIG9yIEJJVF9TVFJJTkcgdGhhdAogICBjb250YWlucyBhIHplcm8gb2N0ZXQgKHRoaXMgaXMgdGhlIHJvb3QgY2F1c2Ugb2YgKDEpIGFib3ZlKQogICAKICAgQVBJIGNoYW5nZXMgaW50cm9kdWNlZDoKICAgCiAgIGEpIElQIGFkZHJlc3NlcyBub3cgcGFzc2VkIGFzIGJpbmFyeSBzdHJpbmdzICg0IG9jdGV0cwogICBmb3IgSVB2NCkgcmF0aGVyIHRoYW4gZG90dGVkLXF1YWQgb3IgbmFtZS4gVGhpcwogICBzaWRlc3RlcHMgdGhlIElQdjQvSVB2NiBwcm9ibGVtIGFuZCBsZWF2ZXMgdGhlIGNhbGxpbmcKICAgc2NyaXB0IHRvIGRlYWwgd2l0aCBuYW1lLT5hZGRyZXNzIHJlc29sdXRpb24gYW5kCiAgIGFzc29jaWF0ZWQgZXJyb3IgaGFuZGxpbmcuCiAgIAoyMDAzLTA1LTA4IDA5OjMyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgIChWNS0wLXBhdGNoZXMuWzEsMSwxLDEsMyw0LDFdKSwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBwYXRjaCAjNzEwMjc1IGZyb20gU3RlcGhlbiBKLiBGcmllZGw6IGNvbnN0IGZpeGVzIGZvciBBUElzIHRoYXQgZG9uJ3QgbW9kaWZ5IHRoZWlyIGFyZ3VtZW50cwogICAKMjAwMy0wNS0wOCAwOToyOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc3lzdGVtLmggKFY1LTAtcGF0Y2hlcy4xKSwgc3lzdGVtLmgKOgoKICAgbWlzc2VkIGEgY29tbWl0IGZvciBhIHBlcmwgcGF0Y2gKICAgCjIwMDMtMDUtMDggMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXBBZGRyLmMgKFY1LTAtcGF0Y2hlcy4yKSwgaXBBZGRyLmM6CgogICBBcHBsaWVkIHBhdGNoICM3MTIxMDE6IG1pbm9yIGlyaXggZml4CiAgIAoyMDAzLTA1LTA4IDA5OjEyICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTAosIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwgU05NUC9SRUFETUUKLCBTTk1QL1NOTVAueHMsIGFnZW50L01ha2VmaWxlLlBMLAogICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIHBhdGNoICM3MTU2MDM6IGZpeCBwZXJsIG1vZHVsZSBidWlsZHMgdW5kZXIgd2luZG93cwogICAKMjAwMy0wNS0wOCAwODozMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBhcHBseSBwYXRjaCBbIDcyNDkyNyBdIHRvIGZpeCBsb2cgbXNnOyBhZGQgXG4gdG8gbG9nIG1zZ3MKICAgCjIwMDMtMDUtMDggMDg6MjkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGNoZyBORVRfU05NUF9VU0VfQVNTRVJUIGRlZmluZSB0byBORVRTTk1QX1VTRV9BU1NFUlQgdG8gYmUgY29uc2lzdGVudAogICAKMjAwMy0wNS0wNSAxNTozNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtb3ZlIGluIGFnZW50eCBkb2N1bWVudGF0aW9uIHNvbWVvbmUgb25seSBhZGRlZCB0byB0aGUgcGF0Y2hlcyBicmFuY2ggKGJhZCBzb21lb25lKQogICAKMjAwMy0wNS0wNSAxNTozMyAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcGQuY29uZi41LmRlZiAoVjUtMC1wYXRjaGVzLjQpLCBzbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgYWdlbnR4UGluZ0ludGVydmFsCiAgIAoyMDAzLTA0LTI5IDE2OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIFJlYWxseSBmaXggc29sYXJpcyBieSByZW1vdmluZyBzdXBwb3J0IGZvciB0aGUgY2lkciB0YWJsZSBmdW5jdGlvbi4KICAgCjIwMDMtMDQtMjkgMTY6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFyX3JvdXRlLmMsIHZhcl9yb3V0ZS5oOgoKICAgYXR0ZW1wdCB0byBmaXggc29sYXJpcyBieSByZW1vdmluZyBzdXBwb3J0IGZvciB0aGUgY2lkciB0YWJsZSBmdW5jdGlvbi4KICAgCjIwMDMtMDQtMjkgMDE6NTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgTGludXggTXVsdGktQ1BVIGRldGVjdGlvbiAoaG9wZWZ1bGx5ISkuCiAgIERvbmUgYXQgaW5pdGlhbGlzYXRpb24sIHNvIHdvbid0IGRldGVjdCBjaGFuZ2VzIGR1cmluZyBydW4gdGltZS4KICAgKHByb2JhYmx5IGZhaXJseSB1bmxpa2VseSEpLgogICBBbHNvIGNoYW5nZXMgZGV2aWNlIGluZGV4IHZhbHVlIGZvciBzaW5nbGUgQ1BVIGRldmljZSBvbiBvdGhlciBhcmNocy4KICAgCjIwMDMtMDQtMjkgMDE6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgRmlyc3QgZHJhZnQgb2YgTGludXggQ1BVIGRldGVjdGlvbiAoc3RpbGwgb25seSBzdXBwb3J0cyBvbmUgQ1BVKS4KICAgCjIwMDMtMDQtMjkgMDE6NDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9wcm9jLmMsIGhyX290aGVyLmM6CgogICBDb25zb2xpZGF0ZSBhbGwgaHJQcm9jZXNzb3JUYWJsZSBpbXBsZW1lbnRhdGlvbiBpbnRvIG9uZSBwbGFjZS4KICAgKEJhc2ljYWxseSBqdXN0IG1vdmluZyBjb2RlIGZyb20gaHJfb3RoZXIuYyB0byBocl9wcm9jLmMpCiAgIAoyMDAzLTA0LTI4IDIzOjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgLSBkb3h5Z2VuIGRvY3VtZW50YXRpb24gZm9yIGV2ZXJ5dGhpbmcgKGdhc3ApCiAgIC0gU3VwcG9ydCBmb3Igc2F2aW5nL3Jlc3RvcmluZyBvZiBlbnRpcmUgZGF0YV9saXN0cy4KICAgCjIwMDMtMDQtMjggMjM6MzggIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3NldF9kYXRhLjMsIG5ldHNubXBfdGFibGUuMywKICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3dhdGNoZXIuMwo6CgogICBtYWtlIGRvY3MuCiAgIAoyMDAzLTA0LTI4IDIzOjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0Lmg6CgogICBhZGRlZCBwcm90b3R5cGVzIGZvciBzYXZlL3Jlc3RvcmUgb2YgZGF0YSBsaXN0cy4KICAgCjIwMDMtMDQtMjggMjM6MzYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmg6CgogICBwdXQgZGF0YV9saXN0LmggYmVsb3cgY2FsbGJhY2suaAogICAKMjAwMy0wNC0yOCAyMzozNSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGRvY3VtZW50IHNubXB0cmFwZCAtdCBhbmQgZGlza2lvIG9uIGxpbnV4CiAgIAoyMDAzLTA0LTI1IDExOjIzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBvcHBzCiAgIAoyMDAzLTA0LTI1IDA4OjAxICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIEZpeCB0eXBvIGluICdXcml0ZU9ubHknIChzZWUgYnVnICM3MTEzMjQpCiAgIAoyMDAzLTA0LTI1IDA3OjEzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGRlZCBwZW9wbGUKICAgCjIwMDMtMDQtMjUgMDc6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZG9jdW1lbnQgZGlza2lvIHN1cHBvcnQgZm9yIGxpbnV4CiAgIAoyMDAzLTA0LTI1IDA3OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFBhdGNoICM3MTIyNTkgZnJvbSBKYW1lcyBLbml0dGVyOiBkaXNraW8gc3VwcG9ydCBmb3IgbGludXgKICAgCjIwMDMtMDQtMjUgMDc6MDIgIGhhcmRha2VyCgogICAqIG1hbi9yZWFkX2NvbmZpZy4zLmRlZjoKCiAgIHBhdGNoICM3MTA2ODc6IGZpeCBmb3JtYXR0aW5nIGJ1ZwogICAKMjAwMy0wNC0yNSAwNjo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIGtlcm5lbF9zdW5vczUuaDoKCiAgIHBhdGNoICM3MDIzNTEgZnJvbSBKYW1lcyBJcndpbjogYSBuZXcgZ2V0S3N0YXRTdHJpbmcoKSBmdW5jdGlvbi4KICAgCjIwMDMtMDQtMjUgMDY6MDAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWVudGlvbiB0aGUgLWUgRU5HSU5FSUQgZmxhZyBmb3IgY3JlYXRlVXNlci4KICAgICAtIHBvaW50ZWQgb3V0IGJ5IERhbmEgQ29vawogICAKMjAwMy0wNC0yNCAwODoxOSAgZHRzMTIKCiAgICogYXBwcy86IHNubXB1c20uYywgc25tcHZhY20uYzoKCiAgIEZpeCBhIHR5cG8gaW4gb3V0cHV0IG1lc3NhZ2VzLiAgKFNlZSBCdWcgIzcyNjk0MykKICAgCjIwMDMtMDQtMjQgMDY6MDAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBSZXBvcnQgYmFjayBmYWlsdXJlcyBpbiBuZXRzbm1wX2NhbGxiYWNrX2Nsb3NlIGNvcnJlY3RseS4KICAgUGF0Y2ggIzcyNDkyOCBieSBQZXRlciBXYXJhc2luCiAgIAoyMDAzLTA0LTIzIDA3OjM4ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgUGF0Y2ggIzcyNTE0MSBieSBQZXRlciBXYXJhc2luOiBGaXggc2VnbWVudGF0aW9uIGZhdWx0IG9uIHNubXB0YWJsZQogICAKMjAwMy0wNC0yMyAwNjo1NiAgZHRzMTIKCiAgICogc25tcGxpYi86IGNvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgc25tcHVzbS5jOgoKICAgUGF0Y2ggIzcyNDkxMyBieSBQZXRlciBXYXJhc2luIC0gcmVtb3ZlcyAyIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAzLTA0LTIzIDA2OjQ2ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIFN1YnN0aXR1dGUgc3lzY29uZmRpciBjb3JyZWN0bHkgd2hlbiBidWlsZGluZyBzZWRzY3JpcHQuCiAgIFBhdGNoICM3MTA2ODkgYnkgUGV0ZXIgQnJlaXRlbmxvaG5lcgogICAKMjAwMy0wNC0yMyAwNjozMSAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXMsIG1hbi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgaGVhZGVyIGZpbGVzIGFuZCBtYW4gcGFnZXMgd2l0aCBhcHByb3ByaWF0ZSBwZXJtaXNzaW9ucy4KICAgRnJvbSBwYXRjaCAjNzEwNjg1IGJ5IFBldGVyIEJyZWl0ZW5sb2huZXIKICAgCjIwMDMtMDQtMjMgMDY6MjIgIGR0czEyCgogICAqIEZBUToKCiAgIEZpeCByZWZlcmVuY2VzIHRvIGluY29ycmVjdCBBUEkgY2FsbHMKICAgCjIwMDMtMDQtMjMgMDM6MDYgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQWRkIGFuIGV4cGxpY2l0IGV4YW1wbGUgZm9yIGNvbTJzZWMgYWRkcmVzcyBtYXNraW5nLCBhcyBzdWdnZXN0ZWQgYnkgQW5keSBIb29kLgogICAKMjAwMy0wNC0yMiAwNjo0OCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVzdG9yZSB0aGUgb3JpZ2luYWwgZGVidWcgaW5kZW50YXRpb24gbGV2ZWwgd2hlbiBkdW1waW5nIGFuIFNOTVB2MS92MmMKICAgcmVxdWVzdCBQRFUuICAgUmVwb3J0ZWQgYnkgUGV0ZXIgV2FyYXNpbgogICAKMjAwMy0wNC0xNyAwNzoyMyAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUHJvcGFnYXRlIGVycm9yIHN0YXR1cyB2YWx1ZXMgYmFjayB1cCB0byB0aGUgbWFpbiBhZ2VudCBwcm9jZXNzaW5nCiAgIChzbyB0aGF0IGUuZy4gZmFpbGVkIFNOTVB2MiBzZXQgcmVxdWVzdHMgdXNpbmcgYSByZWFkLW9ubHkgY29tbXVuaXR5CiAgICByZXBvcnQgYSBmYWlsdXJlLCByYXRoZXIgdGhhbiBhcHBlYXJpbmcgdG8gc3VjY2VlZCEpCiAgIAoyMDAzLTA0LTE2IDA2OjM3ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLU1JQi50eHQ6CgogICBEZWZpbmUgYSAicHJpdmF0ZSBleHBlcmltZW50YXRpb24iIGFyZWEgb2YgdGhlIE9JRCB0cmVlLAogICBmb3IgdGhvc2Ugd2hvIHdpc2ggdG8gaGF2ZSBhIHBsYXkgd2l0aCB0aGluZ3MsIGFuZCBkb24ndAogICB5ZXQgaGF2ZSBhbiBlbnRlcnByaXNlIE9JRCBvZiB0aGVpciBvd24uCiAgIAogICBTZWUgdGhlIG5ldC1zbm1wLXVzZXJzIHRocmVhZCAnT0lEIHJlZ2lzdHJhdGlvbicsIGZyb20gTWFyY2gvQXByaWwgMjAwMy4KICAgCjIwMDMtMDQtMTYgMDY6MzIgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgVHdhZWsgdGhlIGRlZmF1bHQgb3V0cHV0IGZvcm1hdCB0byBiZSBiYXJlIHRoZSBzdWZmaXggZm9ybQogICAoYXMgZXhwZWN0ZWQgYnkgU05NUDo6T0lEIHRlc3QgaGFybmVzcykuCiAgIFdlIHNob3VsZCBwcm9iYWJseSBkZWZhdWx0IHRvIE1JQjo6dmFyaWFibGUgZm9ybSwgdG8gbWF0Y2gKICAgdGhlIEMgbGlicmFyeSwgYW5kIHByb3ZpZGUgYSBmbGFnIGZvciB0aGUgYmFyZSBzdWZmaXguCiAgIAoyMDAzLTA0LTE2IDAyOjQ2ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEZpeCBoYW5kbGluZyBvZiAnVXNlTnVtZXJpYycgYW5kICdVc2VMb25nTmFtZXMnIGZvciBnZXQvZ2V0bmV4dC9nZXRidWxrIG1ldGhvZHMuCiAgIAogICBGaXhpbmcgJ2dldG5leHQnLydnZXRidWxrJyBtb3N0bHkgaW52b2x2ZWQgdXBkYXRpbmcgdGhlIGNvbnNvbGlkYXRlZAogICBORVRTTk1QX0RTX0xJQl9PSURfT1VUUFVUX0ZPUk1BVCcgc2V0dGluZywgcmF0aGVyIHRoYW4gdGhlIGluZGl2aWR1YWwgYm9vbGVhbnMuCiAgIEZpeGluZyAnZ2V0JyByZXF1aXJlZCBtb3JlIHNpZ25pZmljYW50IGNoYW5nZXMgdG8gdGhlIG91dHB1dCBjb2RlLCBzbyBJIHNpbXBseQogICBjb3BpZWQgdGhlICdnZXRuZXh0JyByb3V0aW5lIGVuLW1hc3NlLCBhbmQgdHdlYWtlZCBpdCBhcHByb3ByaWF0ZWx5LgogICBUaGVyZSBpcyBhIGxhcmdlIGFtb3VudCBvZiBvdmVybGFwIGJldHdlZW4gdGhlc2UgdGhyZWUgcm91dGluZXMsIGFuZCBpdCBtaWdodAogICBiZSB3b3J0aCBsb29raW5nIGF0IGNvbnNvbGlkYXRpbmcgdGhlIGNvbW1vbiBjb2RlIGluIHNvbWUgd2F5LgogICAKMjAwMy0wNC0xNiAwMjo0MiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYywKICAgcGVybC9TTk1QL1JFQURNRSwgcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzCjoKCiAgIEFwcGx5IEFsZXggQnVyZ2VyJ3MgcGVybCAndHJhbnNsYXRlT2JqJyBoYW5kbGluZyBwYXRjaCAoIzcyMjA3NSkKICAgCjIwMDMtMDQtMTUgMTA6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIFBhdGNoIGZyb20gS2lyaWxsIFNlbWVua292IGZvciBvbmUgbW9yZSBmaXggdG8gbGludXggaW50ZXJmYWNlIHNwZWVkCiAgIGRldGVybWluYXRpb24uCiAgIAoyMDAzLTA0LTEwIDA4OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZGlzay5jLCBocl9kaXNrLmgsCiAgIGhyX3BhcnRpdGlvbi5jOgoKICAgRml4IGhhbmRsaW5nIG9mIGhyUGFydGl0aW9uVGFibGUsIGJyb2tlbiBkdXJpbmcKICAgVGhlIEdyZWF0IFNVU0UgJ3ByaW50ZicgSHVudC4KICAgVGhhbmtzIHRvIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlciBmb3IgdGhpcyBwYXRjaC4KICAgCjIwMDMtMDQtMDkgMDE6NTIgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIEltcG9ydCBTbm1wQWRtaW5TdHJpbmcsIGFzIHN1Z2dlc3RlZCBieSBWYWRpbSBUYXJhc3Nvdi4KICAgCjIwMDMtMDQtMDggMDc6NTcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgRml4IHRoZSBlcnJvciBjb2RlIHVzZWQgZm9yIHVuYXZhaWxhYmxlIHJlc291cmNlcy4KICAgU3BvdHRlZCBieSBjaGljaGllbi4KICAgCjIwMDMtMDQtMDIgMDk6MjMgIHNyYWRtYW4KCiAgICogY29uZmlndXJlLmluOgoKICAgaW1wcm92ZSBsbVNlbnNvcnMgc3VwcG9ydAogICAtIGNoZWNrIGZvciBoZWFkZXJzCiAgIC0gY2hlY2sgZm9yIGxpYnMKICAgCjIwMDMtMDQtMDIgMDY6MzEgIHNyYWRtYW4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmg6CgogICBhZGQgTE0tU0VOU09SUy1NSUIgd2hlbiBtb2R1bGUgaXMgaW5jbHVkZWQKICAgCjIwMDMtMDMtMjggMDY6NDggIGhhcmRha2VyCgogICAqIFJFQURNRS5rcmI1IChWNS0wLXBhdGNoZXMuMSksIFJFQURNRS5rcmI1OgoKICAgS2VuIEhvcm5zdGVpbiBub3RlZCB0aGF0IHRoZSByd3VzZXIgLXMgZmxhZyB3YXMgbWlzc2luZyBpdCdzIGFyZ3VtZW50CiAgIAoyMDAzLTAzLTI4IDA2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcGtzbS5jIChWNS0wLXBhdGNoZXMuMSksIHNubXBrc20uYzoKCiAgIFBhdGNoIGZyb20gS2VuIGZvciBtaXNjIGtyYjUgZml4ZXMgKGVuY3J5cHRpb24gdHlwZXMsIE5ldyBjcnlwdG8gc3VwcG9ydCwuLi4KICAgCjIwMDMtMDMtMjAgMTE6MTggIHNyYWRtYW4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgZml4IGJ1ZyAjNjcyNDY0OiBpZkFkbWluU3RhdHVzIG11c3QgY2hhbmdlIHRvIGRvd24KICAgLSBpZkFkbWluU3RhdHVzIHVwIGlmIGludGVyZmFjZSBpcyBVUAogICAtIGlmT3BlclN0YXR1cyB1cCBpZiBpbnRlcmZhY2UgaXMgVVAgYW5kIFJVTk5JTkcKICAgLSBhZGRlZCBzdXBwb3J0IGZvciB0aGUgImxpbmtfdXAiIGtzdGF0CiAgIC0gYWRkZWQgQ2Fzc2luaSBHaWdhYml0LUV0aGVybmV0IChjZSkgc3VwcG9ydAogICAKMjAwMy0wMy0xOSAxMTo0NSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgcmVtb3ZlIHRyYWlsaW5nIFwgZnJvbSBsYXN0IGxpbmUgb2YgcGVybCBydWxlcwogICAKMjAwMy0wMy0xMyAxNjowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY1LTAtcGF0Y2hlcy4xKSwgc25tcF9hZ2VudC5jOgoKICAgcGF0Y2ggZnJvbSBUb21teSBDaHJpc3RlbnNlbiB0byBmaXggc29tZSBBZ2VudFggKG1vc3RseSkgbWVtb3J5IGxlYWtzCiAgIAoyMDAzLTAzLTEyIDEwOjM5ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW4gKFY1LTAtcGF0Y2hlcy4zKSwgbmV0LXNubXAtY29uZmlnLmluOgoKICAgcGF0Y2ggIzY5OTM4MDogRnJvbSBDaHJpc3RvcGhlIEthbHQ6IG1ha2UgbmV0LXNubXAtY29uZmlnIGRvIHdoYXQgaXQncyBkb2N1bWVudCB0byBkbyAoYWRkIC1MQGxpYmRpckApCiAgIAoyMDAzLTAzLTEyIDA4OjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjUtMC1wYXRjaGVzLjMpLCBzbm1wX2FwaS5jOgoKICAgcGF0Y2ggIzcwMDY3MjogcmVzZXQgaXRtcCB0byB0aGUgbmV3IHZhbHVlIGxlbmd0aCBhZnRlciBkZWNvZGluZyBhIGhleCBzdHJpbmcKICAgCjIwMDMtMDMtMTIgMDg6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcmV0dXJuIGluZGV4ZXMgZm9yIGF1Z21lbnRlZCB0YWJsZXMKICAgCjIwMDMtMDMtMTIgMDg6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBSRUFETUU6CgogICBQYXRjaCAjNzAxMzk4OiBjb20yc2VjdW5peCB0b2tlbiBmcm9tIFhpYW9mZW5nIExpbmcgZm9yIHVuaXggc29ja2V0cwogICAKMjAwMy0wMy0xMiAwNzo1OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IFJFQURNRSwgUlVOVEVTVFM6CgogICB1cGRhdGUgdG8gcmVhbCB3b3JsZCBhbmQgYWRkIGJldHRlciAtaCBvdXRwdXQKICAgCjIwMDMtMDMtMTAgMTc6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIGF0dGVtcHQgdG8gY29ycmVjdCBmb3IgZHluYW1pYyBsb2FkaW5nIG9mIGEgb2xkZXIgb3BlbnNzbCBsaWJyYXJ5LCB3aGljaCBpcyBjb21tb24gaWYgeW91IGhhdmUgdGhlIG1vZF9zc2wgcnBtIGluc3RhbGxlZCBhbmQgYSBuZXdlciBsaWJjcnlwdG8gbGlicmFyeSBhdCB0aGUgc2FtZSB0aW1lCiAgIAoyMDAzLTAzLTEwIDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBhdHRlbXB0IHRvIGZpeCB0aGUgb3BlbnNzbCBmcmVlIGJ1ZyBmb3IgdGhlIGxhc3QgdGltZQogICAKMjAwMy0wMy0wNSAyMjo0MiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSAoVjUtMC1wYXRjaGVzLjIpLCBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KICAgCjIwMDMtMDMtMDUgMjI6MzYgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggZm9yIGxpYndyYXAgdy9uc2wKICAgCjIwMDMtMDMtMDQgMDk6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogbnNNb2R1bGVUYWJsZS5jIChWNS0wLXBhdGNoZXMuMSksCiAgIG5zTW9kdWxlVGFibGUuYzoKCiAgIHdyb25nIHR5cGUgcmV0dXJuZWQgZm9yIG5zTW9kdWxlTW9kZXMgYXMgcmVwb3J0ZWQgYnkgTWljaGFlbCBLaXJraGFtCiAgIAoyMDAzLTAzLTA0IDAxOjU0ICBkdHMxMgoKICAgKiBJTlNUQUxMOgoKICAgTWVudGlvbiB0aGUgbmVlZCB0byBjb25maWd1cmUgdGhlIGFnZW50LgogICAKMjAwMy0wMy0wMSAwNzoyNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IHN1YmFnZW50LmMgKFY1LTAtcGF0Y2hlcy4xKSwgc3ViYWdlbnQuYwo6CgogICBhZ2VudHggcGF0Y2ggZnJvbSBUb21teSBDaHJpc3RlbnNlbjogYmV0dGVyIGVycm9yIGNoZWNraW5nCiAgIAoyMDAzLTAzLTAxIDA2OjU5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgKFY1LTAtcGF0Y2hlcy4xKSwgbWFzdGVyLmMKOgoKICAgYWdlbnR4IHBhdGNoIGZyb20gVG9tbXkgQ2hyaXN0ZW5zZW46IGRvbid0IGNyZWF0ZSBkZWxlZ2F0ZWQgY2FjaGUgZm9yIENMRUFOVVBTRVQKICAgCjIwMDMtMDItMjggMjA6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMIChWNS0wLXBhdGNoZXMuMyksIE1ha2VmaWxlLlBMOgoKICAgdHlwbwogICAKMjAwMy0wMi0yOCAyMDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIFBhdGNoICM1NTE5MDkgZnJvbSBHYXJ5IEVkd2FyZHM6IGRldGVjdCB6b21iaWUgcHJvY2Vzc2VzIGFuZCBwcmV2ZW50CiAgIHRoZW0gZnJvbSBiZWluZyBjb3VudGVkIGFzIHZhbGlkIHVzZXJzLgogICAKMjAwMy0wMi0yOCAyMDoxMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwgKFY1LTAtcGF0Y2hlcy4yKSwgTWFrZWZpbGUuUEw6CgogICBQYXRjaCAjNTk3NjI5IGZyb20gTWF0dCBTZWxza3kgdG8gZml4IG1hbiBwYWdlIGluc3RhbGxhdGlvbgogICAKMjAwMy0wMi0yOCAyMDowMiAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC1zb2xhcmlzLWJ1aWxkLzogREVWRU5WLCBlbGZkZXBlbmQuc2gsCiAgIG5ldC1zbm1wLTUuMC42LWJ1aWxkOgoKICAgcGF0Y2ggIzY1NDU4MSBmcm9tIFN0ZWZhbiBSYWRtYW46IFNvbGFyaXMgUGFja2FnaW5nIGJ1aWxkIHNjcmlwdHMKICAgCjIwMDMtMDItMjggMTk6NDAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBQYXRjaCAjNjk1MzEyIGZyb20gQWxleCBCdXJnZXI6IGFkZCAtdCBzd2l0Y2ggdG8gZGlzYWJsZSBzeXNsb2cuCiAgIAoyMDAzLTAyLTI4IDE5OjM5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgZG9jdW1lbnQgLXQKICAgCjIwMDMtMDItMjggMDI6MDggIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIFNpbXBsZSBwYXRjaCB0byBjYXRjaCByZS1kZWNsYXJhdGlvbnMgb2YgdGhlICJ0b3AtbGV2ZWwiIG9iamVjdHMuCiAgIFN1cHBsaWVkIGJ5IFNlYW4gQnVya2UKICAgCjIwMDMtMDItMjggMDE6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIFJldHVybiB0aGUgY29ycmVjdCB2YWx1ZXMgZm9yIGlwdjZGb3J3YXJkaW5nLgogICBQYXRjaCBzdXBwbGllZCBieSBZaXhpb25nIFpvdSAoQnVnICM2OTQ3NDUpCiAgIAoyMDAzLTAyLTI2IDIxOjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgZGVmYXVsdCBvY3RldCBzdHJpbmdzIHRvIHVuc2lnbmVkIGNoYXIgYXJyYXlzOyBmaXggZXhhbXBsZTsgZml4IGxvZ2ljIG9mCiAgIGNvbmRpdGlvbmFsOyBtYWtlIGNvZGUgcmVmZXJlbmNpbmcgY2FuXyhkZSlhY3RpdmF0ZSBjb25kaXRpb25hbCB3aXRoIHNhbWUgbG9naWMKICAgdXNlZCB0byBnZW5lcmF0ZSB0aGUgZnVuY3Rpb25zIHRoZW1zZWx2ZXMKICAgCjIwMDMtMDItMjYgMTA6MzQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjN2YWNtY29uZmlnLCBTdmFjbWNvbmZpZywKICAgVDEzMHNubXB2MXZhY21nZXQsIFQxMzFzbm1wdjJjdmFjbWdldCwKICAgVDEzMnNubXB2M3ZhY21nZXQsIFQxNDBzbm1wdjF2YWNtZ2V0ZmFpbCwKICAgVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbCwgVDE0MnNubXB2M3ZhY21nZXRmYWlsOgoKICAgUGF0Y2ggIzY4NzgzNyBmcm9tIFhpYW9mZW5nIExpbmcgZm9yIFZBQ00gdGVzdCBjYXNlcwogICAKMjAwMy0wMi0yNiAxMDoxOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIHdpbjMyL2NvbmZpZy5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgUkVBRE1FLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vc2Y1Lmg6CgogICBwYXRjaCAjNjkwMzUzIGZyb20gS2V2aW4gR3JhaGFtOiBwb3J0IHRvIFRydTY0IHY1IC8gb3NmNQogICAKMjAwMy0wMi0yNiAxMDoxMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBwYXRjaCAjNjkyODM0IGZyb20gRGF2aWQgVnJhYmVsOiBhZGQgLS13aXRob3V0LXJwbSBmb3IgZGlzYWJsaW5nIHJwbSBjaGVja3MKICAgCjIwMDMtMDItMjYgMDg6MjggIGR0czEyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIE9vcHMgLSBtaXNzZWQgdGhlIGRlZmluaXRpb24gb2YgJ0lOU1RBTExfREFUQScgZnJvbSBQZXRlcidzIG9yaWdpbmFsIHBhdGNoLgogICBTb3JyeSEKICAgCjIwMDMtMDItMjYgMDc6MTEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIFRoYW5rcyB0byBTcmlrYW50aCBQaW5kaXByb2xpCiAgIAoyMDAzLTAyLTI2IDA3OjEwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIHVwZGF0ZSB0byBwYXRjaCAjNjU1NDQ0OiBkb2N1bWVudCBpbmNsdWRlQWxsRGlza3MgZnJvbSBTcmlrYW50aCBQaW5kaXByb2xpCiAgIAoyMDAzLTAyLTI2IDA0OjQ1ICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBTdG9tcCBvbiB0cmFpbGluZyB3aGl0ZXNwYWNlIGluIGNvbmZpZyBsaW5lcy4KICAgVGhpcyBhbGxvd3MgdG9rZW4gY29tcGFyaXNvbnMgdG8gd29yayBhcyBleHBlY3RlZC4KICAgKFNlZSBidWcgIzY5MDc3MCkKICAgCjIwMDMtMDItMjYgMDQ6MjUgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBGaXggZ2V0b3B0IGhhbmRsaW5nIG9mIC1TIChzZWUgYnVnICM2OTMxNjcpCiAgIAoyMDAzLTAyLTI1IDExOjQ2ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcDoKCiAgIGRvbid0IHRyeSBhbmQgcnVuIGF1dG9jb25mL2F1dG9oZWFkZXIgaWYgbm90IGluc3RhbGxlZAogICAKMjAwMy0wMi0yNSAwNjo0OCAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW46CgogICBBcHBseSBQZXRlciBCcmVpdGVubG9obmVyJ3MgbmV0LXNubXAtY29uZmlnIHBhdGNoICgjNjkyMzczKQogICAKMjAwMy0wMi0yNSAwNjo0MSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIFJlY29nbmlzZSAiZGVmVmVyc2lvbiB2MyIgYXMgd2VsbCBhcyAiZGVmVmVyc2lvbiAzIiBhcyBkb2N1bWVudGVkCiAgIGluIHRoZSBtYW4gcGFnZXMgKHByaW9yIHRvIFBldGVyIEJyZWl0ZW5sb2huZXIncyBjb3JyZWN0aW9uKQogICBbV2UgbWlnaHQgYXMgd2VsbCBzdXBwb3J0IGJvdGggc3R5bGVzLi4uLl0KICAgCjIwMDMtMDItMjUgMDY6MDYgIGR0czEyCgogICAqIG1hbi86IG1pYjJjLjEuZGVmLCByZWFkX2NvbmZpZy4zLmRlZiwgc25tcC5jb25mLjUuZGVmCiwgc25tcF9jb25maWcuNS5kZWYsIHNubXBjbWQuMS5kZWYsCiAgIHNubXBjb25mLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdHJhcGQuOC5kZWYKLCBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIEFwcGx5IFBldGVyIEJyZWl0ZW5sb2huZXIncyBkb2N1bWVudGF0aW9uIGNoYW5nZXMKICAgKHBhdGNoZXMgIzY5MjM4MSwgIDY5MjM4MiBhbmQgIDY5MjM4OCkKICAgCjIwMDMtMDItMjUgMDY6MDQgIGR0czEyCgogICAqIEVYQU1QTEUuY29uZi5kZWYsIEZBUSwgc2Vkc2NyaXB0LmluLAogICBsb2NhbC9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5pbiwgbWFuL01ha2VmaWxlLmluCiwgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuOC5kZWY6CgogICBBcHBseSBQZXRlciBCcmVpdGVubG9obmVyJ3MgY29uZmlndXJhdGlvbi1yZWxhdGVkIGRvY3VtZW50YXRpb24gYW5kIGluc3RhbGxhdGlvbiBjaGFuZ2VzLgogICAocGF0Y2hlcyAjNjkyMzcyLCAgNjkyMzc3LCAgNjkyMzc5IGFuZCA2OTIzODYpCiAgIAoyMDAzLTAyLTI1IDA1OjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3RvcmFnZS5jLCBocl9zdG9yYWdlLmg6CgogICBMaXN0ICJmaXhlZCB0eXBlIiBzdG9yYWdlIGVudHJpZXMgZmlyc3QsIHNvIHRoYXQgdGhlcmUgaXNuJ3QgYW4KICAgYXJiaXRyYXJ5IGxpbWl0IG9mIDEwMCBkaXNrLWJhc2VkIHN0b3JhZ2UgZW50cmllcy4KICAgCjIwMDMtMDItMjUgMDU6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICBIYW5kbGUgdXNlci9ncm91cCBuYW1lcyB3aGVuIHNldHRpbmcgQWdlbnRYIHNvY2tldCBvd25lcnNoaXAuCiAgIAoyMDAzLTAyLTI1IDAzOjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIFByZWxpbWluYXJ5IHBhdGNoIHRvIHN1cHBvcnQgY29uZmlndXJhdGlvbiBvZiBBZ2VudFggc29ja2V0IHBlcm1pc3Npb25zLgogICAKICAgUGVyc29uYWxseSwgSSdtIG5vdCBjb252aW5jZWQgdGhhdCB0aGlzIGlzIHJlYWR5IGZvciBjb21taXR0aW5nIHRvIHRoZQogICBDVlMgdHJlZSB5ZXQsIGJ1dCBNeSBNYXN0ZXIgSGFzIFNwb2tlbiwgYW5kIEkgTXVzdCBPYmV5Li4uLi4uLgogICAKMjAwMy0wMi0yMSAyMDoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpcENpZHJSb3V0ZVRhYmxlLmMsCiAgIGlwQ2lkclJvdXRlVGFibGUuaCwgaXBDaWRyUm91dGVUYWJsZV9hY2Nlc3MuYywKICAgaXBDaWRyUm91dGVUYWJsZV9hY2Nlc3MuaCwgaXBDaWRyUm91dGVUYWJsZV9jaGVja2Zucy5jLAogICBpcENpZHJSb3V0ZVRhYmxlX2NoZWNrZm5zLmgsIGlwQ2lkclJvdXRlVGFibGVfY29sdW1ucy5oCiwgaXBDaWRyUm91dGVUYWJsZV9lbnVtcy5oOgoKICAgQSBiZWdpbm5pbmcgaW1wbGVtZW50YXRpb24gb2YgdGhlIElQLUZPUldBUkQtTUlCOjppcENpZHJSb3V0ZVRhYmxlLgogICAgIC0gdGhpcyB0YWJsZSBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2Jzb2xldGUgaXBSb3V0ZVRhYmxlLCB3aGljaAogICAgICAgaXNuJ3QgZXZlbiBpbXBsZW1lbnRlZCBieSBtb3N0IHZlbmRvcnMgYW55IG1vcmUuCiAgICAgLSBub3QgY29tcGxldGUuICBXcml0ZSBzdXBwb3J0IG5vdCBpbXBsZW1lbnRlZCB5ZXQuICBSZWFkLXN1cHBvcnQKICAgICAgIHdvcmtpbmcgdGhvdWdoLgogICAgIC0gU2hvdWxkIHdvcmsgb24gZXZlcnl0aGluZyBidXQgaHB1eDExPyAgdGVzdGluZyBuZWVkZWQuCiAgICAgLSB0aGlzIGlzIGFub3RoZXIgZXhhbXBsZSBvZiBhIHRhYmxlX2l0ZXJhdG9yIGFwcGxpY2F0aW9uIChkaWZmZXJlbnQKICAgICAgIHRoYW4gdGhlIHJlc3QgdXNpbmcgYWNjZXNzb3JzKS4KICAgCjIwMDMtMDItMjEgMjA6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogcm91dGVfaGVhZGVycy5oLCB2YXJfcm91dGUuYzoKCiAgIG1vdmVkIGhlYWRlcnMgdG8gYSBzZXBhcmF0ZSBmaWxlIHVzYWJsZSBieSBvdGhlciBtb2R1bGVzLgogICBleHBvcnRlZCB0aGUgY29sbGVjdGVkIHJvdXRlIHRhYmxlLgogICAKMjAwMy0wMi0yMSAyMDoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmg6CgogICBtb3ZlZCBoZWFkZXJzIHRvIGEgc2VwYXJhdGUgZmlsZSB1c2FibGUgYnkgb3RoZXIgbW9kdWxlcwogICAKMjAwMy0wMi0yMSAyMDoxMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIEFuIGFsdGVybmF0ZSB0YWJsZV9pdGVyYXRvciAuY29uZiBmaWxlICh0aGF0IG1heSBldmVudHVhbGx5IGJlY29tZSB0aGUKICAgZGVmYXVsdCkuICBUaGlzIG9uZSB1c2VzIGFjY2Vzc29yIGZ1bmN0aW9ucyB0byBnZXQvc2V0IGRhdGEgYW5kIHNob3VsZAogICB0YWtlIGNhcmUgb2YgbW9zdCBvdGhlciBTTk1QIHNwZWNpZmljIHN0dWZmIGZvciB5b3UuICBOb3QgY29tcGxldGUsCiAgIGFuZCBhIGdvb2QgcGVyY2VudGFnZSBvZiB0aGUgY29kZSByZXBldGl0aW9uIHdpbGwgbGlrZWx5IG1vdmUgaW50bwogICBhbm90aGVyIHN1Yi1pdGVyYXRvciBoYW5kbGVyIGluIHRoZSBmdXR1cmUuICBUaGUgaXBDaWRyUm91dGVUYWJsZSBpcwogICBhbiBleGFtcGxlIG9mIHRoaXMgb3V0cHV0LgogICAKMjAwMy0wMi0yMSAyMDoxMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgLSBjb21tZW50IGFkZGl0aW9ucyBhbmQgY2xlYW51cHMuCiAgIC0gcHV0IHRoZSBmcmVlL2V0YyBmdW5jdGlvbiBwb2ludGVycyBpbiBhbiAjaWZkZWYgY2xhdXNlCiAgIAoyMDAzLTAyLTIxIDIwOjA5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb2x1bW5fZW51bXMuY29uZjoKCiAgIGNvbW1lbnQgbW92ZSBmb3IgYmV0dGVyIGZvcm1hdHRpbmcuCiAgIAoyMDAzLTAyLTIxIDIwOjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jaGVja192YWx1ZXMuY29uZjoKCiAgIC0gZ2VuZXJhdGUgYW5kIHVzZSB0aGUgZW51bXMgaGVhZGVyIGZpbGUuCiAgIC0gZ2VuZXJhdGUgYSAuaCBmaWxlLgogICAtIG1pc2MgZml4ZXMuCiAgIAoyMDAzLTAyLTIxIDIwOjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmY6CgogICBBIC5jb25mIGZpbGUgdG8gZ2VuZXJhdGUgZ2V0Xy9zZXRfIGFjY2VzcyBmdW5jdGlvbnMgZm9yIGVhY2ggY29sdW1uLgogICAgIC0gaXRlcmF0b3Igc3BlY2lmaWMuCiAgIAoyMDAzLTAyLTIxIDIwOjA3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gZW51bSBmaXguCiAgIC0gZG9uJ3Qgc291cmNlIChydW4pIC5jb25mIGZpbGVzIHR3aWNlLgogICAKMjAwMy0wMi0yMSAyMDowNiAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3NldF9kYXRhLjMsIG5ldHNubXBfdGFibGUuMywKICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3dhdGNoZXIuMwo6CgogICAtIGRveHlnZW4gdXBkYXRlLgogICAtIGluY2x1ZGVzIG5ldyBuZXRzbm1wX29pZF9zdGFzaCBtYW4gcGFnZS4KICAgCjIwMDMtMDItMjEgMjA6MDYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYwo6CgogICAtIGRveHlnZW4gY29tbWVudCBldmVyeXRoaW5nCiAgIC0gc3RhcnRlZCAobm90IGNvbXBsZXRlKSBhIGdldG5leHQgZnVuY3Rpb24uCiAgIC0gaW1wbGVtZW50ZWQgYSAiZnJlZSB0aGUgdHJlZSIgZnVuY3Rpb24uCiAgIAoyMDAzLTAyLTIxIDIwOjA0ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgYWRkZWQgYXV0b200dGUuY2FjaGUKICAgCjIwMDMtMDItMjEgMjA6MDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkIHRoZSBpbmNsdWRlIGRpcmVjdG9yeSB0byB0aGUgbW9kdWxlIGVncmVwIGNwcCAtSSBsaXN0LgogICAKMjAwMy0wMi0yMSAwMTo1MCAgZHRzMTIKCiAgICogbG9jYWwvRkFRMkhUTUw6CgogICBIVE1MLWVzY2FwZSAnPCcgYW5kICc+JyBjaGFyYWN0ZXJzIGluIEZBUSBlbnRyaWVzCiAgIAoyMDAzLTAyLTIwIDA4OjE3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5zY2FsYXIuY29uZjoKCiAgIFVzZSAnbmV0c25tcF9yZWdpc3Rlcl9zY2FsYXInIGluc3RlYWQgb2YgJ25ldHNubXBfcmVnaXN0ZXJfaW5zdGFuY2UnCiAgIGZvciBoYW5kbGluZyBzY2FsYXIgb2JqZWN0cy4KICAgCjIwMDMtMDItMTkgMjE6MzkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBwYXRjaCAjNjU3ODA4OiBjYWxjdWxhdGUgYSBwcm9wZXIgaWZTcGVlZCB1bmRlciBsaW51eCB3aGVuIHBvc3NpYmxlCiAgIGFuZCBkbyBtb3JlIHByb3BlciBpZk9wZXJTdGF0dXMgc3RhdGUgZGV0ZXJtaW5hdGlvbi4KICAgCjIwMDMtMDItMTkgMjE6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHBhdGNoICM2NTc4MDg6IGNhbGN1bGF0ZSBhIHByb3BlciBpZlNwZWVkIHVuZGVyIGxpbnV4IHdoZW4gcG9zc2libGUKICAgYW5kIGRvIG1vcmUgcHJvcGVyIGlmT3BlclN0YXR1cyBzdGF0ZSBkZXRlcm1pbmF0aW9uLgogICAKMjAwMy0wMi0xOSAxNjo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLmM6CgogICB0b3AgbGV2ZWwgZG94eWdlbiB3ZWIgcGFnZSB0ZXh0CiAgIAoyMDAzLTAyLTE5IDE2OjUyICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBuZXRzbm1wX29sZF9hcGkuMwosIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfc2V0X2RhdGEuMywKICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3dhdGNoZXIuMwo6CgogICBkb3h5Z2VuIHVwZGF0ZS4KICAgCjIwMDMtMDItMTkgMTY6NTIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIHJ1biB0aGUgY29sdW1uX2VudW0gYW5kIGNvbHVtbl9kZWZpbmUgLmNvbmYgZmlsZXMgYW5kIGluY2x1ZGUgdGhvc2UgaGVhZGVycy4KICAgCjIwMDMtMDItMTkgMTY6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQWRkIGEgQHJ1bkAgdGFnIHRvIHJ1biBvdGhlciBtaWIyYyBjb25maWd1cmF0aW9uIGZpbGVzIGZyb20gdGhlCiAgIGN1cnJlbnQgb25lLgogICAKMjAwMy0wMi0xOSAxNjo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBtb3JlIChiYWQpIGRvY3VtZW50YXRpb24gZm9yIHRoZSBpdGVyYXRvciAoZ2FzcCkKICAgCjIwMDMtMDItMTkgMTY6NTAgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIGFkZCBpbmNsdWRlIGRpcmVjdG9yaWVzIGZvciBwcm9jZXNzaW5nLgogICAKMjAwMy0wMi0xOSAxNjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICByZW1vdmUgb2xkIHVudXNlZCBjb21tZW50LgogICAKMjAwMy0wMi0xOSAxMzoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgY29udmVydGVkIGEgYnVuY2ggb2Ygbm9uLWRveHlnZW4gZG9jcyB0byBkb3h5Z2VuIGRvY3MuCiAgIAoyMDAzLTAyLTE5IDEzOjAzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIGRveHlnZW5pemUgYSBmZXcgZGVmaW5lcy4KICAgCjIwMDMtMDItMTggMDc6NTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBjb25maWd1cmUKICAgCjIwMDMtMDItMTcgMTE6MjAgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgc211eCB0byBsaXN0IG9mIG1vZHVsZXMgZm9yIGRpc3RyaWJ1dGlvbjsgbW92ZSB0ZXN0IGZvciBtYWtlIGluc2lkZSBvZgogICBuc2ItbWFrZTsgYWRkIGJsYW5rIGxpbmUgYWJvdmUgQUJPUlQ7IHJlbW92ZSB0ZWUgdG8gbG9nZmlsZSwgYXMgaXQgZWF0cwogICByYyBmcm9tIGNvbW1hbmQ7IGFkZCBOT0FVVE9ERVBTPXkgdG8gYWxsIG1ha2Ugc3RlcHM7IGRvIG1ha2UgdG91Y2hpdCB3aGVuCiAgIHRhcmdldCA9IGFsbDsgdXNlIG5zYi1tYWtlIGZvciBkaXN0Y2xlYW4KICAgCjIwMDMtMDItMTcgMTE6MTggIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGRvbid0IGRvIGFueSBvZiB0aGUgYXV0b2NvbmYvYXV0b2hlYWRlciBkZXBzIGlmIE5PQVVUT0RFUD0qIHNwZWNpZmllZAogICAKMjAwMy0wMi0xNyAxMToxNSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgYWRkIGFub3RoZXIgZGlyIGxldmVsIGZvciBtYWtlIGRlcGVuZHMgKHBlciBEUywgZnJvbSBhIHdoaWxlIGJhY2sgLSB0aG91Z2h0CiAgIHRoaXMgd2FzIGFscmVhZHkgY2hlY2tlZCBpbikKICAgCjIwMDMtMDItMTcgMDc6MzAgIG5iYQoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIE5vdGUgYWJvdXQgYmFkIC91c3IveHBnNC9iaW4vc2VkCiAgIAoyMDAzLTAyLTE3IDA2OjMxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYzoKCiAgIFRoZSBpbmNsdWRlIGZvciBkbWFsbG9jIGJldHRlciBjb21lIGFmdGVyIHRoZSBzdGQgaW5jbHVkZXMKICAgCjIwMDMtMDItMTcgMDU6MzYgIG5iYQoKICAgKiBjb25maWd1cmUuaW46CgogICBEb250IHNlYXJjaCAvdXNyL2xvY2FsIGZvciBkbWFsbG9jIHVubGVzcyB1c2VyIGV4cGxpY2l0bHkgYXNrcyBmb3IgaXQKICAgCjIwMDMtMDItMTcgMDU6MzQgIG5iYQoKICAgKiBjb25maWd1cmUuaW46CgogICBCcmluZyBiYWNrIHRoZSBkZXZlbG9wZXIgd2FybmluZ3MKICAgCjIwMDMtMDItMTcgMDU6MzMgIG5iYQoKICAgKiBjb25maWd1cmUuaW46CgogICBGaXggdGV4dCBmb3Igc29ja2xlbl90CiAgIAoyMDAzLTAyLTE3IDA1OjMxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgU29tZSBlcnJvciBtZXNzYWdlcyBmb3IgU29sYXJpcwogICAKMjAwMy0wMi0xNyAwNDoyMyAgbmJhCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIE5FVC1TTk1QLVRDIG1pYgogICAKMjAwMy0wMi0xNCAwNzo0MSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGluY2x1ZGVBbGxEaXNrcwogICAKMjAwMy0wMi0xNCAwNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNrLmMsIGRpc2suaDoKCiAgIFBhdGNoICM2NTU0NDQgZnJvbSBTcmlrYW50aCBQaW5kaXByb2xpOgogICAgIEltcGxlbWVudCBhIG5ldyBpbmNsdWRlQWxsRGlza3Mgc25tcGQuY29uZiB0b2tlbiB0byBwbGFjZSBhbGwgZm91bmQKICAgICBkaXNrcyBpbnRvIHRoZSBkc2tUYWJsZSBsaXN0aW5nLgogICAKMjAwMy0wMi0xMyAxNzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YXJfcm91dGUuYyAoVjUtMC1wYXRjaGVzLjEpLCB2YXJfcm91dGUuYwo6CgogICBQYXRjaCAjNjU0MzI5OiBkb3VibGUgY2hlY2sgbGVuZ3RocyB3aGVuIGNvcHlpbmcKICAgCjIwMDMtMDItMTMgMTQ6NTkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jCiwgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NjYXBpLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtLWRpc2FibGUtbWliLWxvZGFpbmcgcmVtb3ZlcyB0aGUgbWliIGxvYWRpbmcgY29kZSBmcm9tIGJ1aWxkcy4KICAgICAob2lkIHByaW50aW5nIGFyZSBmb3JjZWQgbnVtZXJpYykKICAgICBUaGlzIHNhdmVzIGFib3V0IGFib3V0IDIwMGsgaW4gYmluYXJ5IHNpemUgb24gYSBsaW51eCBib3guCiAgICAgVGhpcyBzYXZlcyBhYm91dCBhYm91dCAxMDBrIGluIHJ1bm5pbmcgc2l6ZSBvbiBhIGxpbnV4IGJveCAoYXNzdW1pbmcKICAgICAgIHRoZSB3aXRoLW1pYi1sb2FkaW5nIGlzIGFjdHVhbGx5IG5vdCBsb2FkaW5nIGFueXRoaW5nIGp1c3QgdG8gYmUKICAgICAgIGZhaXIsIG90aGVyd2lzZSBpdHMgYWJvdXQgPjUwMGspLgogICAKMjAwMy0wMi0xMyAwODowMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE5FV1MsIGFjbG9jYWwubTQsIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgo6CgogICAtIE1pc2MgY29uZmlndXJlIGNoYW5nZXMvZml4ZXMgKGVnLCBvdXRwdXQgdGhlIGRpc2FibGVkIHN0YXRlcyBmb3IgcGVybCkKICAgLSBBIGJ1bmNoIG9mIG5ldyBjb25maWd1cmUgb3B0aW9uczoKICAgICAtLWRpc2FibGUtYXBwbGljYXRpb25zICAgICAgICAgIERvIG5vdCBidWlsZCB0aGUgYXBwcyAoc25tcGdldCwgLi4uKS4KICAgICAtLWRpc2FibGUtYWdlbnQgICAgICAgICAgICAgICAgIERvIG5vdCBidWlsZCB0aGUgYWdlbnQgKHNubXBkKS4KICAgICAtLWRpc2FibGUtbWFudWFscyAgICAgICAgICAgICAgIERvIG5vdCBpbnN0YWxsIHRoZSBtYW51YWxzLgogICAgIC0tZGlzYWJsZS1zY3JpcHRzICAgICAgICAgICAgICAgRG8gbm90IGluc3RhbGwgdGhlIHNjcmlwdHMgKG1pYjJjLCAuLi4pLgogICAgIC0tZGlzYWJsZS1taWJzICAgICAgICAgICAgICAgICAgRG8gbm90IGluc3RhbGwgdGhlIG1pYiBmaWxlcy4KICAgCjIwMDMtMDItMTMgMDY6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgY2hlY2sgZW50cnkgbm9kZSBhcyBzdWdnZXN0ZWQgYnkgSXJmYW4gU2hlcmlmZgogICAKMjAwMy0wMi0xMyAwNTo1OSAgZHRzMTIKCiAgICogY29uZmlndXJlOgoKICAgUmVtb3ZlIGludmFsaWQgJ3Rlc3RpbmcnIGNvbmZpZ19maWxlIHRhcmdldC4KICAgU2luY2UgdGhpcyBpcyBhIGRpcmVjdG9yeSwgJ2NvbmZpZy5zdGF0dXMnIGZhaWxzIHRvIGNyZWF0ZSBpdC4KICAgCiAgIEknbSBub3QgcXVpdGUgc3VyZSB3aGVyZSB0aGlzIGFwcGVhcmVkIGZyb20uICBJdCdzIG5vdCBwYXJ0IG9mCiAgIHRoZSBjb25maWd1cmUgc2NyaXB0IGdlbmVyYXRlZCBieSBhdXRvY29uZiAyLjUzLCBidXQgaXQgbWlnaHQKICAgaGF2ZSBiZWVuIGludHJvZHVjZWQgYmV0d2VlbiB0aGVyZSBhbmQgMi41Ny4KICAgCjIwMDMtMDItMTMgMDI6MTAgIGR0czEyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBNZWNoYW5pc20gZm9yIHBhc3NpbmcgYWRkaXRpb25hbCBvcHRpb25zIHRvIHRoZSB0ZXN0IHJ1bi4KICAgU3VnZ2VzdGVkIGJ5IEFuZHkgSG9vZC4KICAgCjIwMDMtMDItMTIgMTE6MzAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGluY2x1ZGUgYWdlbnQvbWliZ3JvdXAgaGVhZGVycyBmcm9tICR7c3JjZGlyfQogICAKMjAwMy0wMi0xMiAwOTo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIHVwZ3JhZGUgY29uZmlndXJlIHRvIGF1dG9jb25mIDIuNTcKICAgLSBUaGlzIGlzIGZ1bmN0aW9uYWwgbm93LCBidXQgbm90IGFsbCBmbGFncywgZmVhdHVyZXMgYW5kIHRlc3RzIGhhdmUKICAgICBiZWVuIHRlc3RlZC4gIFBsZWFzZSByZXBvcnQgZXJyb3JzISAgVGhlcmUgYXJlIG1vcmUgdGhpbmdzIHRvIGRvLAogICAgIGxpa2UgY29udmVyc2lvbiBvZiBsb2NhbCBtYWNyb3MgKGVnLCBTVFJVQ1RfRk9SKSB0byBhdXRvY29uZgogICAgIG5ld2VyIHN0YW5kYXJkIG1hY3Jvcy4KICAgCjIwMDMtMDItMTIgMDY6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC86IHR1bm5lbC5oIChWNS0wLXBhdGNoZXMuMSksIHR1bm5lbC5oCiAgIChWNC0yLXBhdGNoZXMuWzEsMV0pLCB0dW5uZWwuaDoKCiAgIHVwZGF0ZQogICAKMjAwMy0wMi0xMSAxODowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYzoKCiAgIG9ubHkgZGVmaW5lIHN0dWZmIGlmIGhhdmVfcmVnZXggaXMgZGVmaW5lZAogICAKMjAwMy0wMi0xMSAxODowMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBydW4gY29uZmlnX3JlcXVpcmUgY2hlY2tzIHRocm91Z2ggY3BwCiAgIAoyMDAzLTAyLTExIDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIElyZmFuIFNoZXJpZmYgcG9pbnRlZCBvdXQgYSBidWcgd2l0aCBnZXRuZXh0IHJlcXVlc3RzIGRpcmVjdGx5IHRvCiAgIGEgY29sdW1uLgogICAKMjAwMy0wMi0xMSAxNTozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgcGF0Y2ggZnJvbSBDaHJpc3RvcGhlIFZhcm9xdWkgdG8gZml4IGRyb3BwaW5nIHN0YXRlIGNoYW5nZSBmb3IgdGhyZXNob2xkcy4KICAgCjIwMDMtMDItMTEgMDg6MjYgIGR0czEyCgogICAqIHNubXBsaWIvOiBzeXN0ZW0uYyAoVjQtMi1wYXRjaGVzLjUpLCBzeXN0ZW0uYzoKCiAgIFJlbW92ZSBsYXN0IHJlbWFpbmluZyB1c2Ugb2YgJ25saXN0JyB1bmRlciBIUC1VWCAxMCAmIDExLgogICBBcyBwZXIgcGF0Y2ggIzY1Njc3MyBmcm9tIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcgogICAKMjAwMy0wMi0xMSAwODoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBDaGVja2luZyB0aGUgbGVuZ3RoIG9mIGEgc3RyaW5nIGJ1ZmZlciBvbmNlIGlzIHN1ZmZpY2llbnQuCiAgIFVzaW5nICdzdHJubmNweScgW3NpY10gdG8gY2hlY2sgdGhpcyBsZW5ndGggdHdpY2UgaXMgdW5uZWNlc3NhcnkuLi4KICAgCjIwMDMtMDItMTEgMDg6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBpZmRlZiBvdXQgdW5saWtlbHktY29ycmVjdC1jb2RlIG9uIHdpbjMyCiAgIAoyMDAzLTAyLTExIDA3OjU1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIE1lc3Mgd2l0aCBvdXRwdXQgb2YgZG94eWdlbiB0byBhZGQgc2YgbG9nb3MsIGV0YywgdG8gdGhlIGJvdHRvbSBvZiB0aGUKICAgZ2VuZXJhdGVkIGh0bWwgZmlsZXMuCiAgIAoyMDAzLTAyLTExIDA3OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgUGF0Y2ggIzY1NTE1NCBmcm9tIEpvZWwgUm9zZGFobDogbW9yZSBwcm9wZXIgZGVtb25pemF0aW9uOgogICAgIC0gY2xvc2Ugc3RkaW4vc3Rkb3V0L3N0ZGVyciBpZiBhcHByb3ByaWF0ZS4KICAgICAtIGRvdWJsZSBmb3JrLgogICAgIC0gY2hkaXIgLyAgIFtJJ20gbm90IGNvbnZpbmNlZCB0aGlzIGlzIGNvcnJlY3QgdW5kZXIgd2luZG93cz8gIEFueW9uZT9dCiAgIAoyMDAzLTAyLTExIDA3OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBwYXRjaCAjNjY3Njk0IChhbm9uKSB0byBhZGQgYmFjayBuZXdsaW5lcyB0byBwYXNzIGNvZGUKICAgCjIwMDMtMDItMTEgMDc6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgUGF0Y2ggIzY2MjE2OSBmcm9tIEphbiBXaWxsZW0gTHVpdGVuOiBkaXNraW8gc3VwcG9ydCBmb3IgRGFyd2luCiAgIAoyMDAzLTAyLTExIDA2OjE0ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvdC86IGJ1bGt3YWxrLnQsIHNldC50OgoKICAgRml4IHRlc3RzIGZvciBidWxrd2FsayAoZHVwbGljYXRlIGhlYWRlcikgYW5kIHNldCAoaW52YWxpZCBPSUQgY29uc3RhbnQpCiAgIAoyMDAzLTAyLTExIDA0OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIEFjY29tbW9kYXRlIGEgZnVzc3kgSVJJWCBlbnZpcm9ubWVudCwgd2hpY2ggaXMgcGlja3kgYWJvdXQgPHVuaXN0ZC5oPgogICBTZWUgYnVnICM2Njc3MjYKICAgCjIwMDMtMDItMTAgMTY6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmM6CgogICBmaXggaW5kZW50IGNvbW1lbnQgZGFtYWdlLgogICAKMjAwMy0wMi0xMCAxNjozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYzoKCiAgIEVYVEVOU0lCTEUgLT4gVUNEQVZJU19NSUIKICAgCjIwMDMtMDItMTAgMTU6MzggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBCcnVjZSBTaGF3IHBvaW50ZWQgb3V0IGEgY29tbWVudCB0eXBvCiAgIAoyMDAzLTAyLTEwIDE1OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIGFnZW50L01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICBTTk1QL01ha2VmaWxlLlBMOgoKICAgZml4IG15IGRlY2xhcmF0aW9ucyBhcyBwb2ludGVkIG91dCBieSBBbmRyZXcgUGFnZQogICAKMjAwMy0wMi0xMCAwOToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIGZpbGUgbmFtZSB0eXBvCiAgIAoyMDAzLTAyLTEwIDA3OjU3ICBuYmEKCiAgICogTWFrZWZpbGUuaW4sIGFjbG9jYWwubTQsIGx0bWFpbi5zaCwKICAgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBjb25maWd1cmUuaW4sCiAgIGNvbmZpZ3VyZToKCiAgIFVwZGF0ZSBsaWJ0b29sIHRvIDEuNC4zCiAgIAoyMDAzLTAyLTEwIDA3OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgdHVybiBvbiBsb2dfbWF0Y2ggYnkgZGVmYXVsdAogICAKMjAwMy0wMi0xMCAwNjozOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgQ2hyaXN0b3BoZSBWYXJvcXVpIHRvIHRoZSB0aGFua3MgZm9yIGhpcyBESVNNQU4gcGF0Y2hlcwogICAKMjAwMy0wMi0wOSAxMDowMiAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBBbiBhZGRpdGlvbmFsIGNoYW5nZSB0byBzdXBwb3J0ICd0JyBoaW50cwogICAKMjAwMy0wMi0wNiAyMToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oOgoKICAgRm9yIGxpbnV4LCB1c2UgL3Byb2MvWC9zdGF0dXMgaW5zdGVhZC4gIEl0IGhhcyB0aGUgbmFtZSBvZiBwcm9jZXNzZXMKICAgd2hlbiAvcHJvYy9jbWRsaW5lIGRvZXMgbm90LiAgQSBkZWZpbmUgKGNvbW1lbnRlZCBvdXQpIHdhcyBwdXQgaW4KICAgc3lzdGVtL2xpbnV4LmggdG8gcmV2ZXJ0IHRvIHByZXZpb3VzIGJlaGF2aW9yIGlmIGRlc2lyZWQuICBJJ20gbm90CiAgIHN1cmUgYXQgd2hpY2gga2VybmVsIHJlbGVhc2UgdGhlIHN0YXR1cyBmaWxlIHdhcyBhZGRlZC4KICAgCjIwMDMtMDItMDYgMjA6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIEFkZCBhIGRlYnVnZ2luZyB0YWcgInByb2MiIHdoaWNoIHByaW50cyBwcm9jZXNzIG5hbWVzIGFzIGZvdW5kIGluIHNvbGFyaXMuCiAgICh0aGlzIHNob3VsZCBiZSBuaWNlIHdoZW4gc2VhcmNoaW5nIGZvciB1bmtub3duIGV4YWN0IHByb2Nlc3MgbmFtZXMpCiAgIAoyMDAzLTAyLTA2IDExOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgcGF0Y2ggIzY3NDIxODogcmVvcGVuIGxvZyBmaWxlcyBvbiBIVVAuCiAgIAoyMDAzLTAyLTA2IDEwOjQyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IG1vbml0b3IgLXQgZm9yIHRocmVzaG9sZCBtb25pdG9yaW5nCiAgIAoyMDAzLTAyLTA2IDEwOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBQYXRjaCBmcm9tIENocmlzdG9waGUgdG8gc3VwcG9ydCBtb25pdG9yIC10IGZvciB0aHJlc2hvbGQgbW9uaXRvcmluZwogICAKMjAwMy0wMi0wNSAyMjowNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzLmNvbmY6CgogICBBIG1pYjJjIGZpbGUgdGhhdCBnZW5lcmF0ZXMgYSBidW5jaCBvZiBmdW5jdGlvbnMgdG8gY2hlY2sgdGhlIHZhbHVlIG9mCiAgIGluY29taW5nIFNFVCByZXF1ZXN0cy4KICAgICAobm90IGNvbXBsZXRlIHlldC4gIE5lZWRzIHN1cHBvcnQgZm9yIEJJVFMgZW51bXMgYW5kIGEgaGVhZGVyIGZpbGUKICAgICB3aXRoIHByb3RvdHlwZXMpCiAgIAogICBIYXBweSBCaXJ0aGRheSAobGF0ZSkgdG8gUm9iZXJ0LgogICAKMjAwMy0wMi0wNSAyMjowNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBTdXBwb3J0IGZvciBmb3JlYWNoIG9uIHJhbmdlcy4KICAgCjIwMDMtMDItMDUgMDM6MjUgIGR0czEyCgogICAqIEZBUToKCiAgIENsYXJpZnkgdGhlIGxvY2FsLW9ubHkgYWNjZXNzIGZvciBub24tc3RhbmRhcmQgcG9ydCBBZ2VudFggY29ubmVjdGlvbnMuCiAgIAoyMDAzLTAyLTA1IDAxOjEzICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBEb24ndCBwcm9tcHQgZm9yIGFuIGF1dGhlbnRpY2F0aW9uIHBhc3MtcGhyYXNlLCBpZiBvbmUgaGFzIGFscmVhZHkKICAgYmVlbiBzdXBwbGllZC4gIFJlcG9ydGVkIGJ5IERhcnJlbiBHYW1ibGUuCiAgIAoyMDAzLTAyLTA0IDA2OjI1ICBkdHMxMgoKICAgKiBGQVE6CgogICBBZGQgYW4gZW50cnkgZGVzY3JpYmluZyBjb25maWd1cmluZyBBZ2VudFggb24gYSBub24tc3RhbmRhcmQgcG9ydC4KICAgCjIwMDMtMDItMDMgMDc6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNS0wLXBhdGNoZXMuMiksIHNubXBfYXBpLmM6CgogICBGcm9tIFJpY2hhcmQgTGFpbmc6IGNoYW5nZSB2YWx1ZSBjaGVjayBvZiBhIHN0cmluZyB0byB1c2UgYSBwcm9wZXIgbGVuZ3RoLgogICAKMjAwMy0wMS0yOSAwNzoxOSAgaGFyZGFrZXIKCiAgICogSU5TVEFMTCwgcGVybC9TTk1QL1JFQURNRToKCiAgIHBlcmwgZG9jdW1lbnRhdGlvbiB1cGRhdGVzIGZyb20gSGFycmllCiAgIAoyMDAzLTAxLTI0IDA3OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIHBhdGNoICM2NzIwMjEgZnJvbSBKb3NodWEgR2lsZXM6IGxhcmdlIHNldCByZXF1ZXN0IGZpeGVzCiAgIAoyMDAzLTAxLTIyIDE0OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGUuYywgdGFibGVfaXRlcmF0b3IuYzoKCiAgIEhhdmluZyBmb3VuZCBhIG5ldyByb3cgdG8gd29yayB3aXRoLCB1cGRhdGUgdGhlIGluZGV4IHZhbHVlcyBhcyB3ZWxsLgogICBUaGlzIHNlZW1zIHRvIGZpeCB0aGUgbWlzbWF0Y2ggYmV0d2VlbiB0aGUgT0lEIGJlaW5nIHByb2Nlc3NlZAogICBhbmQgdGhlIGluZGV4IHZhcmJpbmRzLgogICAKMjAwMy0wMS0yMCAxOToxMSAgcnN0b3J5CgogICAqIHNubXBsaWIvdGVzdF9iaW5hcnlfYXJyYXkuYzoKCiAgIGFkZCBzdHJpbmcgdGVzdCBjYXNlIGZvciBiaW5hcnkgYXJyYXkgdGVzdGluZwogICAKMjAwMy0wMS0yMCAxOToxMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZml4ZXMgZm9yIGFycmF5X3Fzb3J0IC0gbm90IHF1aXRlIHN1cmUgd2h5L2hvdyBpdCB3b3JrZWQgYmVmb3JlLi46LS8KICAgCjIwMDMtMDEtMjAgMTk6MDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgbmV3IG5ldHNubXBfY29tcGFyZV9tZW07IGZpeCB0eXBvIGluIGRlYnVnIG1lc3NhZ2UKICAgCjIwMDMtMDEtMjAgMTk6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgY3JlYXRlIG1kNXN1bXMgYWZ0ZXIgY3JlYXRpbmcgZ3ppcHBlZCB0YXJiYWxsCiAgIAoyMDAzLTAxLTE0IDA2OjE0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBZGQgc3VwcG9ydCBmb3IgMTYtYml0IHJlcXVlc3RJRHMsIGV0YyAtIGZvciB0YWxraW5nIHRvIGJyb2tlbiBhZ2VudHMuCiAgIChBcyBwZXIgYSBzdWdnZXN0aW9uIG9mIE5pZWxzLCBpbiBkaXNjdXNzaW9uIHdpdGggSGVucmlrIE9zdGVyZ2FhcmQgTWFkc2VuKQogICAKMjAwMy0wMS0xNCAwNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYywgZG94eWdlbi5jb25mLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMKLCBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgZG94eWdlbiBjaGFuZ2VzCiAgIAoyMDAzLTAxLTEzIDE4OjQ5ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2hhbmRsZXIuMzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjcKICAgCjIwMDMtMDEtMTMgMTc6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgcmVjb2duaXplIG5ldyAndCcgY29kZSBpbiBkaXNwbGF5IGhpbnRzCiAgIAoyMDAzLTAxLTEzIDE3OjA3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgcGF0Y2ggZm9yIG1lbW9yeSBsZWFrcyBzZW50IHRvIGNvZGVycyBieSBKYXkgUGFybGFyCiAgIAoyMDAzLTAxLTEwIDIyOjI3ICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC43ICkKICAgCjIwMDMtMDEtMTAgMjI6MjYgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC43CiAgIAoyMDAzLTAxLTEwIDIyOjE1ICByc3RvcnkKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBjb25maWd1cmUtc3VtbWFyeQogICAKMjAwMy0wMS0xMCAyMjoxNCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDMtMDEtMTAgMjI6MDggIHJzdG9yeQoKICAgKiAuY3ZzaWdub3JlOgoKICAgaWdub3JlIHZhcmlhdGlvbnMgb2YgY2hhbmdlbG9nLmFkZAogICAKMjAwMy0wMS0xMCAxNzowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2FwaS5jOgoKICAgZG94eWdlbiBvdXRwdXQgdGFncyB0byBwdXQgdGhlIHJlY2VudGx5IGRlZmluZWQgZnVuY3Rpb25zIGludG8gZ3JvdXBzLgogICAKMjAwMy0wMS0xMCAxNzowOSAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIG5ldHNubXBfYWdlbnQuMywKICAgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9kZWJ1Zy4zLAogICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3RhYmxlLjMKLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb3h5Z2VuIHVwZGF0ZXMKICAgCjIwMDMtMDEtMTAgMTQ6MzggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgb3BwcwogICAKMjAwMy0wMS0xMCAxNDoyOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICByZW1vdmUgZG91YmxlIGNoZWNraW5nIG91dHB1dAogICAKMjAwMy0wMS0xMCAxMTozMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDE2MHNubXB2MmNidWxrZ2V0OgoKICAgZml4IHBvc2l0aW9uYWwgYXJndW1lbnRzCiAgIAoyMDAzLTAxLTEwIDA2OjA0ICBkdHMxMgoKICAgKiBGQVE6CgogICBSZWZlcmVuY2UgQnJ1Y2UgU2hhdydzIGRpc2N1c3Npb24gb2YgdGhlIHBlcmwgY29tcGlsYXRpb24gcHJvYmxlbXMKICAgKHNlZSBSRUFETUUuc29sYXJpcykKICAgCjIwMDMtMDEtMTAgMDU6MzEgIGR0czEyCgogICAqIEZBUToKCiAgIE1lbnRpb24gQWdlbnRYIHVuZGVyIHdpbmRvd3MsIGFuZCBiZWVmIHVwIHRoZSBwZXJsIHN0dWZmIGEgYml0LgogICBBZGQgYSBtaXNzaW5nIGVudHJ5IGluIHRoZSBjb250ZW50cyBsaXN0LgogICAoVGhpcyBtYXkgcHJvdmUgdG9vIGxhdGUgZm9yIDUuMC44LCBidXQgYXQgbGVhc3QgaXQnbGwgYmUgcmVhZHkgZm9yIG5leHQgdGltZSEpCiAgIAoyMDAzLTAxLTA5IDE1OjQxICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBtYWtlIGRvYyB1cGRhdGUuCiAgIAoyMDAzLTAxLTA5IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3RhYmxlLjMKLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBtYWtlIGRvYyB1cGRhdGUuCiAgIAoyMDAzLTAxLTA5IDE1OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tb2RlX2VuZF9jYWxsLmg6CgogICBlbmQtb2YtbW9kZSBoZWxwZXIgdG8gY2FsbCBtb3JlIGhhbmRsZXJzIGFmdGVyIHByb2Nlc3NpbmcgdGhlIG1haW4KICAgbGluZS4gIEZ1bmN0aW9uYWxseSBhbGxvd3MgcGFyYWxsZWwgaGFuZGxlciB0cmVlcyBhbmQgY2FsbGJhY2tzIGFmdGVyCiAgIGEgcGFydGljdWxhciBtb2RlIGlzIGNvbXBsZXRlZCAodXNlZnVsIGZvciB0aGluZ3MgcmVnaXN0ZXJlZCB1bmRlciBhCiAgIHNlcmlhbGl6ZSBoYW5kbGVyIHdoZW4geW91IGRvbid0IGtub3cgd2hlbiB0aGUgbW9kZSBpcyBvdmVyKS4KICAgICAgKG5vdCB1c2VkIGFueXdoZXJlIGluIHByb2R1Y3Rpb24gY29kZSB5ZXQuKS4KICAgCjIwMDMtMDEtMDkgMDg6NTUgIGR0czEyCgogICAqIEZBUToKCiAgIE1lbnRpb24gdGhlIHBlcmwgc2hhcmVkL3N0YXRpYyBsaWJyYXJ5IHByb2JsZW0sCiAgIHRoZSB1bnJlc3BvbnNpdmUgYWdlbnQgcHJvYmxlbSAoYW5kIGZpeCksIGFuZAogICBkaXNjbGFpbSBhbGwga25vd2xlZGdlIG9mIERhdmlkIFRvd24ncyBOZXQ6OlNOTVAgbW9kdWxlLAogICAKMjAwMy0wMS0wOSAwNzoyNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMTYwc25tcHYyY2J1bGtnZXQsIFQwMjIwc25tcHYzYnVsa2dldAo6CgogICBHZXRCdWxrIHRlc3Rpbmcgc3VwcGxpZWQgYnkgWGlhb2ZlbmcgTGluZwogICAKMjAwMy0wMS0wOSAwNzoyNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIEFkZCAteCBmbGFnIGZvciBjYWxsaW5nIHN1YnRlc3RzIHdpdGggInNoIC14Ii4KICAgRml4IG51bWJlciBjb3VudGluZyBmb3IgaW50ZXJhY3RpdmUgb3V0cHV0LgogICAKMjAwMy0wMS0wNyAxNTo0OSAgaGFyZGFrZXIKCiAgICogQ09QWUlORyAoVjQtMi1wYXRjaGVzLjgpLCBDT1BZSU5HOgoKICAgeWVhciB1cGRhdGUKICAgCjIwMDMtMDEtMDcgMTA6MTggIGhhcmRha2VyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjgpLCBGQVE6CgogICBpcmMgc2VydmVyIG5hbWUgY2hhbmdlCiAgIAoyMDAzLTAxLTA3IDA4OjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgYnVnICM2NjM2MjggYW5kIHBhdGNoOiBmaXggaXAgYWRkcmVzcyBpbmRleCBwYXJzaW5nIGZyb20gT0lEcwogICAKMjAwMy0wMS0wNyAwMTo1MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgUmVtb3ZlIHJlZHVuZGFudCBjb2RlIHRvIGZyZWUgJ2NhbGxiYWNrX2RhdGFfa2VlcCcgZGF0YS4KICAgVGhpcyBicmFuY2ggd291bGQgbmV2ZXIgYmUgaW52b2tlZCwgYW5kIGlzIGluIHRoZSB3cm9uZwogICBwbGFjZSBhbnl3YXkuICBQYXRjaCBzdXBwbGllZCBieSBKYXkgUGFybGFyCiAgIAoyMDAzLTAxLTA2IDA4OjE2ICBuYmEKCiAgICogTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIFNvbGFyaXMgOSBoZWFkZXIKICAgCjIwMDMtMDEtMDUgMTU6MTQgIG5iYQoKICAgKiB3aW4zMi93aW4zMi5vcHQ6CgogICBNYWtlIGl0IGNvbXBpbGUgd2l0aCBWQysrCiAgIAoyMDAzLTAxLTA1IDE0OjI4ICBuYmEKCiAgICogd2luMzIvOiBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLCB3aW4zMi5vcHQKLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIE1ha2UgaXQgY29tcGlsZSB3aXRoIFZDKysKICAgCjIwMDMtMDEtMDUgMTI6NDUgIG5iYQoKICAgKiBtaWJzLzogTWFrZWZpbGUubWliLCBTTk1QLUZSQU1FV09SSy1NSUIudHh0LAogICBTTk1QLU1QRC1NSUIudHh0LCBTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LAogICBTTk1QLVBST1hZLU1JQi50eHQsIFNOTVAtVEFSR0VULU1JQi50eHQsCiAgIFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0LCBTTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQKLCBTTk1QdjItTUlCLnR4dCwgU05NUHYyLVRNLnR4dCwgcmZjbGlzdDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IFJGQyB2ZXJzaW9ucwogICAKMjAwMy0wMS0wMyAxMjo1MCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZG9uJ3QgY2FsbCBBQ19ESVNBQkxFX1NIQVJFRCwgYXMgc2V0cyB0aGUgZGVmYXVsdCB0byBkaXNhYmxlZCAoaXQncyB2ZXJ5CiAgIHByZXNlbmNlIGluIGNvbmZpZ3VyZS5pbiBnZW5lcmF0ZXMgYSBjb25maWd1cmUgd2l0aCBzaGFyZWQgZGlzYWJsZWQsIGV2ZW4KICAgaWYgaXQgd2FzIGluIGFuIGlmIGJsb2NrOyBmb3IgZGV2ZWxvcGVyIGRlZmF1bHQsIHNldCBlbmFibGVfc2hhcmVkIGRpcmVjdGx5CiAgIHVubGVzcyBpdCB3YXMgcHJldmlvdXNseSBzZXQ7IHRlc3QgdGhhdCBlbmFibGVfc2hhcmVkPXllcyBmb3IgZW1iZWRkZWQtcGVybAogICAKMjAwMy0wMS0wMyAwNTowMiAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNyksIEZBUToKCiAgIE1lbnRpb24gdGhlIFN0cmF0dXMgVk9TIHBvcnQuIChUaGFua3MgdG8gQnJhbmRvbiBIYWxsKQogICAKMjAwMy0wMS0wMiAxNTowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIHBhcmVucyBhcm91bmQgeCBpbiBtYWNybyBpbiBjYXNlIHggaXMgbXVsdGlwbGUgQyB0b2tlbnMKICAgCjIwMDItMTItMjIgMDk6MzIgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIEZBUSwKICAgUkVBRE1FLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNy5wcmUyICkKICAgCjIwMDItMTItMjIgMDk6MzEgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC43LnByZTIKICAgCjIwMDItMTItMjIgMDk6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTEyLTIwIDA0OjU4ICBuYmEKCiAgICogTWFrZWZpbGUuaW46CgogICBjbGVhbiBhd2F5IG5ldC1zbm1wLWNvbmZpZyBvbiBtYWtlIGNsZWFuCiAgIAoyMDAyLTEyLTIwIDA0OjU3ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYwo6CgogICBzdGFzaCB0aGUgb2lkX3N0YXNoIC4uLgogICAKMjAwMi0xMi0yMCAwMTo0OSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEEgcGF0Y2ggZnJvbSBWNCB0aGF0IGRpZG4ndCBtYWtlIGl0IC4uLiBhbGxvdyBsaXN0IG9mIG51bWVyaWMgYml0cyBzZXR0aW5nIEJJVFMKICAgCjIwMDItMTItMTkgMjM6NTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYwo6CgogICBhZGQgYSBnbG9iYWwgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIHJlZ2lzdGVyaW5nIGRpcmVjdGx5IHZpYSBhIGNhbGxiYWNrLgogICAKMjAwMi0xMi0xOSAyMzozNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaDoKCiAgIGFkZCBjYWxsYmFjay5oCiAgIAoyMDAyLTEyLTE5IDIzOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBmaXggcGVyc2lzdGVudCBzdG9yYWdlIGZpbGUgcmVuYW1pbmcuICAoc25wcmludGYgY2hhbmdlIG1pc3Rha2UpCiAgIAoyMDAyLTEyLTE5IDIzOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgc29tZSBuZXcgcm91dGluZXMgZm9yIHNhdmluZyBvaWQgc3Rhc2ggZGF0YSB0byBwZXJzaXN0ZW50IHN0b3JhZ2UuCiAgICAgKG5vdCB1c2VkIGFueXdoZXJlIGluIGN1cnJlbnQgcHJvZHVjdGlvbiBjb2RlKQogICAKMjAwMi0xMi0xOSAxNDo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAtIHdhdGNoIGZvciB1bmRlZnMgcGFzc2VkIGluIGFzIGEgdmFsdWUgdG8gYSBTRVQgY2xhdXNlLgogICAtIGNoYW5nZSBCSVRTIHRvIGEgT2N0ZXQgU3RyaW5nIGFzIGl0IHNob3VsZCBiZS4KICAgICAtIG9uIGEgc2lkZSBub3RlLCBkbyB5b3Uga25vdyB0aGF0IHRoZSBOZXQtU05NUCBwYXJzZXIgZG9lc24ndAogICAgICAgZGlzdGluZ3Vpc2ggYmV0d2VlbiBCSVRTIGFuZCBCSVQgU1RSSU5HIGluIGl0J3MgbGlzdCBvZiB0eXBlcz8gIEkKICAgICAgIGRvbid0IHRoaW5rIGl0J3MgcG9zc2libGUgdG8gdXNlIGJvdGggdHlwZXMgaW4gdGhlIGNvZGUgdG9kYXkKICAgICAgICh3aGljaCBpcyBmaW5lLCBzaW5jZSBCSVQgU1RSSU5HIGlzIG5vdCB1c2VkIGluIFNOTVB2MiBhbmQgYmV5b25kKS4KICAgCjIwMDItMTItMTkgMTQ6NDkgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIHByaW50IGEgd2FybmluZyB3aGVuIHlvdSBjYW4ndCBwYXJzZSBhbiBPSUQgKGVyciwgbm90IGlkZWFsKQogICAKMjAwMi0xMi0xOSAxNDo0OCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gbWlzYyBidWcgZml4ZXMuCiAgIC0gc2tpcCBTRVRpbmcgY29sdW1ucyB3aXRoIG5vIHZhbHVlIHBhc3NlZCBpbi4KICAgCjIwMDItMTItMTkgMTE6NDMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGVzL2V4YW1wbGUuYywgaG9zdC9ocl9uZXR3b3JrLmMKLCBob3N0L2hyX3N3aW5zdC5jOgoKICAgQmVpbmcgYSBiaXQgcXVpY2ssIGVoLCBEYXZlIC4uLgogICAKMjAwMi0xMi0xOSAwODoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jIChWNC0yLXBhdGNoZXMuMiksIGF0LmM6CgogICBFbnN1cmUgdGhlIGlmbmFtZSBidWZmZXIgaXMgYmlnIGVub3VnaCB0byByZWFkIGluIGEgZnVsbC1sZW5ndGggbmFtZS4KICAgKEZyb20gdGhlIFNVU0UgImF1ZGl0IiBwYXRjaCkKICAgCjIwMDItMTItMTkgMDg6MDUgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXBsaWIvbWliLmMKICAgKFY0LTItcGF0Y2hlcy5bOCw5LDMsMywwXSksIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wbGliL21pYi5jOgoKICAgRGV0ZWN0IHdoZW4gbWVtb3J5IGFsbG9jYXRpb25zIGZhaWwsIGFuZCBkb24ndCBwbG91Z2ggb24gcmVnYXJkbGVzcy4KICAgKEJhc2VkIG9uIGNoYW5nZXMgd2l0aGluIHRoZSBTVVNFICJhdWRpdCIgcGF0Y2gpCiAgIAoyMDAyLTEyLTE5IDA3OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi92YWNtLmM6CgogICBUaGUgR3JlYXQgU1VTRSAnc3ByaW50ZicgSHVudC4uLi4uCiAgIAoyMDAyLTEyLTE5IDAzOjAyICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICAgIC0gY29kZSB3aXRoIEJTRGk0CiAgIAoyMDAyLTEyLTE5IDAyOjUwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBjaGFuZ2UgYSBjb21tZW50IHRoYXQgZG9lc24ndCB0YWtlIGludG8gYWNjb3VudCB0aGUgdHJhbnNwb3J0IHN0dWZmCiAgICAgLSBmaXggc29tZSBwYXJ0aWN1bGFybHkgYmFkIGZvcm1hdHRpbmcgaW4gc25tcF9vcGVuX2V4CiAgIAoyMDAyLTEyLTE4IDEwOjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICByZW1vdmUgbWVtLWxlYWsgY29tbWVudC4gIE91dCBvZiBkYXRlIGFuZCB3YXMgZml4ZWQKICAgCjIwMDItMTItMTggMTA6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIGRlbGV0ZSBleHBlcmltZW50YWwgd2FybmluZyBhYm91dCBhZ2VudHgKICAgCjIwMDItMTItMTggMTA6NDAgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIGZpeCBidWcjNjU1NDg4OiBkZXNjcmlwdGlvbnMgb2Ygc3NJT1Jhd1JlY2VpdmVkIGFuZCBzc1Jhd0ludGVycnVwdHMgd2VyZSByZXZlcnNlZAogICAKMjAwMi0xMi0xOCAwNToxOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIHJlc3RhcnQgc3RkZXJyIGxvZ2dpbmcgb24gSFVQIChpZiAtTCB3YXMgZ2l2ZW4gb24gY29tbWFuZCBsaW5lKQogICAKMjAwMi0xMi0xNyAxNjozMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHJlbW92ZSAnOycgZnJvbSBkZWZpbmU7IGlmIHRhYmxlIGhhcyBhIHN0b3JhZ2UgdHlwZSwgY2hlY2sgdGhhdCBpdCdzIG5vdAogICByZWFkIG9ubHkgYmVmb3JlIGFsbG93aW5nIHNldHMKICAgCjIwMDItMTItMTcgMTY6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS1wZXJzaXN0ZW50LmNvbmY6CgogICBuZXZlciBtaW5kCiAgIAoyMDAyLTEyLTE3IDE2OjAyICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC90ZXN0LnBsOgoKICAgRG9uJ3QgY2hlY2sgZm9yIHByZWZpeGVzIGluIHRlc3QuICBUaGV5IGRvbid0IGV4aXN0LiAgSG93ZXZlciwgZG8gc2V0IFNOTVBDT05GUEFUSCBpbiB0ZXN0IGluaXRpYWxpemF0aW9uIHRvIGEgYm9ndXMgdmFsdWUKICAgCjIwMDItMTItMTcgMTU6NTggIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIHJlbW92ZSBkaXJlY3QgY2FsbCB0byBpbml0X3NubXAoKS4gIFRoaXMgaXMgYWxyZWFkeSBjYWxsZWQgYnkgdGhlIC5wbSBmaWxlCiAgIAoyMDAyLTEyLTE3IDA3OjIyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktcGVyc2lzdGVudC5jb25mOgoKICAgcGVyc2lzdGVuY2UgZm9yIGFycmF5LXRhYmxlcwogICAKMjAwMi0xMi0xNyAwNzowNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBhZGQgcmVhZF9jb25maWdfc3RvcmVfZGF0YV9wcmVmaXg7IGFkZCBBU05fVElNRVRJQ0tTIHcvQVNOX1VOU0lHTkVEIGNhc2VzCiAgIAoyMDAyLTEyLTE3IDA2OjQ0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBkb24ndCB1c2UgU09fUkVVU0VfQUREUiBzbyBhZ2VudCBwb3J0IGNhbid0IGJlIGhpamFja2VkCiAgIAoyMDAyLTEyLTE3IDA2OjQzICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgdXNlIGxvY2FsIHZhciBmb3IgYmFzZSBhZ2VudCBsaWJzOyByZW9yZGVyIGJhc2UgYWdlbnQgbGlicyBzbyBzdGF0aWMgbGlua2luZwogICB3b3JrcwogICAKMjAwMi0xMi0xNiAxNTozMiAgbmJhCgogICAqIHNubXBsaWIvc2NhcGkuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5oOgoKICAgWWV0IGFub3RoZXIgY29tcGlsZXIgd2FybmluZyAuLi4KICAgCjIwMDItMTItMTYgMTQ6NTAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIHJlbW92ZSBib2d1cyBjb21tZW50IHJlZmVyZW5jZSB0byB0YWJsZV9kYXRhc2V0IGhlbHBlci4KICAgCjIwMDItMTItMTYgMTQ6NDIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwgYXBwcy9zbm1wdHJhcGQuYwosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmMKOgoKICAgU3ByZWFkIHNvbWUgbWFnaWMgZHVzdCB0byBxdWVsbCBjb21waWxlciB3YXJuaW5ncyAod2h5IGlzbid0IC0tZW5hYmxlLXNsaWVudC1saWJ0b29sIHRoZSBkZWZhdWx0IC4uLikKICAgCjIwMDItMTItMTYgMDg6NDQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIGZpeCBzbWFsbCBtZW1vcnkgbGVhayAocGVlcm5hbWUgaXMgY29waWVkIGJ5IHNubXBfb3Blbl9leCkKICAgCjIwMDItMTItMTYgMDg6MzEgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBmaXggc21hbGwgbWVtb3J5IGxlYWsKICAgCjIwMDItMTItMTYgMDg6MTkgIGpicG4KCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhawogICAKMjAwMi0xMi0xNiAwNzowMiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICByZW1vdmUgcmVkdW5kYW50IGluY2x1ZGUgKGNhdXNlZCBwcm9ibGVtcyBvbiBTdW4gNS43LCByZXBvcnRlZCBieSBqYnBuKQogICAKMjAwMi0xMi0xNiAwNToyMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNvbmZpZ3VyZSB3L291dCBkZXZlbG9wZXIKICAgCjIwMDItMTItMTYgMDU6MTggIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIERFVkZMQUdTPSIiIGlmIG5vdCBkZXZlbG9wZXIKICAgCjIwMDItMTItMTUgMjM6MzkgIG5iYQoKICAgKiBzbm1wbGliLzogb2lkX3N0YXNoLmMsIHNjYXBpLmMsIHNubXBBQUw1UFZDRG9tYWluLmMKLCBzbm1wSVBYRG9tYWluLmMsIHNubXBUQ1BJUHY2RG9tYWluLmMsCiAgIHNubXBVRFBJUHY2RG9tYWluLmM6CgogICBkbWFsbG9jIHN1cHBvcnQKICAgCjIwMDItMTItMTUgMjM6MzkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIFBvc3NpYmxlIGxlYWsgb2YgZmQgb24gZXJyb3IgcmV0dXJuCiAgIAoyMDAyLTEyLTE0IDA3OjIyICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC43LnByZTEgKQogICAKMjAwMi0xMi0xNCAwNzoyMSAgcnN0b3J5CgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjcucHJlMQogICAKMjAwMi0xMi0xNCAwNjo1OSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNoZWNrIGZvciBhZ2VudC9taWJncm91cDsgZml4IG1vZHVsZXMgZm9yIGNvbmZpZ19kaXN0CiAgIAoyMDAyLTEyLTE0IDA2OjU4ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9kZWJ1Zy4zLAogICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgIG5ldHNubXBfdG9kby4zOgoKICAgdXBkYXRlIGZvciA1LjAuNy5wcmUxCiAgIAoyMDAyLTEyLTE0IDA2OjU0ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgYnVtcCByZXYgdG8gNS4wLjcKICAgCjIwMDItMTItMTQgMDY6NDkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCAtbiB0byBncmVwIGZvciBDKysgY29tbWVudHMKICAgCjIwMDItMTItMTQgMDY6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0xMi0xNCAwNjo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgcmVtb3ZlIEMrKyBjb21tZW50cwogICAKMjAwMi0xMi0xNCAwNjozMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgYWRkIGNvbW1lbnRzIHRvIHNvbWUgc3RydWN0dXJlIG1lbWJlcnMKICAgCjIwMDItMTItMTQgMDY6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBlcnJvcnMgZHVyaW5nIGNvbW1pdCB1bmRvIHNob3VsZCBiZSB4eEZBSUxFRDsgdXNlIHNldF9yZXF1ZXN0X2Vycm9yIGluc3RlYWQgb2YKICAgc2V0X21vZGVfcmVxdWVzdF9lcnJvcjsgcmVtb3ZlIGluY29ycmVjdCBjb21tZW50OyBtb3JlIGRlYnVnZ2luZzsgY2hlY2sgZm9yCiAgIGFuZCBjYWxsIGxvd2VyIGhhbmRsZXJzCiAgIAoyMDAyLTEyLTE0IDA2OjI3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgYWx3YXlzIHByb2Nlc3MgbGF0ZXIgcGFzc2VzIG9mIGEgc2V0IHJlcXVlc3QKICAgCjIwMDItMTItMTMgMTM6MDYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgUXVlbGwgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMTItMTMgMTI6NDcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMKOgoKICAgUXVlbGwgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMTItMTMgMTI6NDAgIG5iYQoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBGaXggaW5jb21wbGV0ZSB6ZXJvaW5nIG9mIHNlY3VyaXR5IGRhdGEKICAgCjIwMDItMTItMTMgMTI6MzkgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBGaXggYSBwb3NzaWJsZSBmcmVlaW5nIG9mIGEgTlVMTCBwb2ludGVyCiAgIAoyMDAyLTEyLTEzIDEyOjM4ICBuYmEKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIFF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTEyLTEzIDA4OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBDbGVhciB0aGUgJ3Byb2Nlc3NlZCcgZmxhZyBiZXR3ZWVuIHBhc3Nlcywgc28gdGhhdCBoYW5kbGVycwogICBjYW4gY29ycmVjdGx5IGNsZWFuIHVwIGFmdGVyIGVycm9ycyBoYXZlIGJlZW4gZGV0ZWN0ZWQuCiAgIAoyMDAyLTEyLTEzIDA4OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBhZGQgYXNzZXIgdG8gdHJ5IGFuZCBjYXRoIGludGVybWl0dGVudCBjcmFzaCBpJ3ZlIGJlZW4gc2VlaW5nCiAgIAoyMDAyLTEyLTEzIDA4OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgbG9nIHVua25vd24gYWdlbnR4IG9wZXJhdGlvbgogICAKMjAwMi0xMi0xMyAwNzoxMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGlmIG5vIHJvdyBjcmVhdGUgY2FsbGJhY2sgb24gc2V0LCB1c2UgTk9UV1JJVEFCTEUgaW5zdGVhZCBvZiBOT1NVQ0hJTlNUQU5DRQogICAKMjAwMi0xMi0xMyAwNzowNCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jOgoKICAgZml4IGN1dC1uLXBhc3RlIHNvIGRlbGVnYXRlZCBmbGFnIGRpc3BsYXllZCBwcm9wZXJseQogICAKMjAwMi0xMi0xMyAwNzowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgbG9nIHRleHQgKEFQUHxMSUJ8VE9LKSBpbnN0ZWFkIG9mIHN0b3JlIGlkIGluIGRlYnVnIG1zZ3MKICAgCjIwMDItMTItMTMgMDY6NTMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgLS13aXRoLWxpYndyYXAKICAgCjIwMDItMTItMTMgMDY6NDkgIHJzdG9yeQoKICAgKiBGQVE6CgogICBncmFtbWFyL2luZGVudGlvbiB0d2VhayArIG1lbnRpb24gc3RyaXAgZm9yIG1lbW9yeSBmb290cHJpbnQgcXVlc3Rpb24KICAgCjIwMDItMTItMTMgMDY6MzIgIGR0czEyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIFJlbW92ZSBleHBsaWNpdCBtZW50aW9uIG9mIFNOTVAgbW9kdWxlIGRvY3VtZW50YXRpb24uCiAgIFRoaXMgc2V0dGluZyBkb2Vzbid0IHNlZW0gdG8gYmUgbmVjZXNzYXJ5LCBhbmQgd2l0aG91dCBpdCwKICAgdGhlIG1hbiBwYWdlIGlzIGluc3RhbGxlZCBhdXRvbWF0aWNhbGx5LgogICAKMjAwMi0xMi0xMyAwNDo0NyAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIG1ha2UgLVMgZG8gdGhlIHNhbWUgYXMgc25tcGQgLVMgKHNldCB0aGUgc3lzbG9nIGZhY2lsaXR5KQogICAgIC0gbWFrZSAtbCBwcmludCBhIHdhcm5pbmcgc2F5aW5nIHRoYXQgaXQgaXMgZGVwcmVjYXRlZCBhbmQgLVMgc2hvdWxkCiAgICAgICBiZSB1c2VkIGluc3RlYWQKICAgCjIwMDItMTItMTMgMDQ6MTQgIGpicG4KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGluY3JlYXNlIHdpZHRoIG9mIHRva2VuIGZpZWxkIHRvIGltcHJvdmUgbGVnaWJpbGl0eSBvZgogICAgICAgY29uZmlndXJhdGlvbiBkaXJlY3RpdmUgaGVscCBvdXRwdXQKICAgCjIwMDItMTItMTIgMTQ6NDYgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHVua25vd24gLU8gb3B0aW9ucwogICAKMjAwMi0xMi0xMiAxMjo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgRml4IHNvbWUgc2l6ZV90IHRoYXQgcmVhbGx5IHNob3VsZCBiZSBpbnQKICAgCjIwMDItMTItMTIgMTE6MTggIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIG1hbi9zbm1wLmNvbmYuNS5kZWYsCiAgIG1hbi9zbm1wY21kLjEuZGVmLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgQSBsb25nIG92ZXJkdWUgcGF0Y2ggKCM0MTUyNTIpIGZyb20gUm9iZXJ0IEhhc3RpbmdzIHRoYXQgaW1wbGVtZW50cwogICByZXZlcnNlIERJU1BMQVktSElOVCBwcm9jZXNzaW5nLCBpLmUuIGl0IGFsbG93cyB5b3UgdG8gaW5wdXQgZGF0YQogICBmb3JtYXR0ZWQgbGlrZSB0aGUgRElTUExBWS1ISU5UIHByZXNjcmliZXMuIEVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0CiAgIGNhbiBiZSBkaXNhYmxlZCB3aXRoIHRoZSAtSWggb3B0aW9uIG9yIG5vRGlzcGxheUhpbnQgaW4gc25tcC5jb25mCiAgIAoyMDAyLTEyLTEyIDEwOjU2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBwYXJzZSBvaWRzIGluIHZpZXcgc3RhdGVtZW50cyB0aGUgc2FtZSB3YXkgdGhlIGFwcHMgZG8gaXQgKGNvbnNpc3RlbmN5LCBoZSBzYWlkKQogICAKMjAwMi0xMi0xMiAxMDozNSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIEFkZCBhIGdldFJvb3RPSUQgZnVuY3Rpb24gdG8gdGhlIHJlZ2luZm8gcG9pbnRlciBwYXNzZWQgaW50byBoYW5kbGVycy4KICAgCjIwMDItMTItMTIgMTA6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBjaGFuZ2UgY3JlYXRlIGFuZCBkdXBsaWNhdGUgcm93IHRvIHJldHVybiBzcGVjaWZpYyBjb250ZXh0IGluc3RlYWQgb2YgZ2VuZXJpYwogICBuZXRzbm1wX2luZGV4OyBjYXRjaCBlcnJvciBmcm9tIHBhcnNlX29pZF9pbmRleGVzIG9uIHJvdyBjcmVhdGlvbgogICAKMjAwMi0xMi0xMiAxMDozNCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvbWliLnQ6CgogICBQcmludCBlcnJvcnMgdG8gU1RERVJSIGluc3RlYWQuCiAgICAgKGFjdHVhbGx5IGRvbid0IGJlY2F1c2UgdGhlc2Ugc3RhdGVtZW50cyBhcmUgY29tbWVudGVkIG91dCBpbiB0aGUKICAgICBmaXJzdCBwbGFjZSkKICAgCjIwMDItMTItMTIgMTA6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBSZXZlcnNlIHRoZSBjb250ZXh0IG9mIGEgY29udGV4dCBpZiBzdGF0ZW1lbnQgc28gaWYgbm90IHRoZSBjb250ZXh0CiAgIHRoZW4gZG9uJ3QgdXNlIHRoZSBjb250ZXh0IGluIHRoZSBnaXZlbiBjb250ZXh0LgogICAKMjAwMi0xMi0xMiAwOTo1NiAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIGRyb3AgbG9uZy1kZXByZWNhdGVkIC1xIGFuZCAtUyBvcHRpb25zCiAgICAgLSBtaW5vciBmb3JtYXR0aW5nIGZpeGVzCiAgIAoyMDAyLTEyLTEyIDA5OjM1ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgbWVzc2FnZSBpbiB1c2FnZQogICAKMjAwMi0xMi0xMiAwODozNyAgZHRzMTIKCiAgICogbWFuL3NubXBkLjEuZGVmLCBhZ2VudC9zbm1wZC5jOgoKICAgSW1wbGVtZW50IGEgY29tbWFuZC1saW5lIG9wdGlvbiAoLVMpIHRvIHNldCB0aGUgZmFjaWxpdHkgdG8gdXNlIHdoZW4KICAgbG9nZ2luZyB2aWEgc3lzbG9nLiAgIEJhc2VkIG9uIGFuIGlkZWEgYnkgSm9lbCBSb3NkYWhsIChQYXRjaCAjNjI3NzAxKQogICBOb3RlIHRoYXQgLWwgYW5kIC1MIGFyZSBhbHJlYWR5IHRha2VuOi0oCiAgIAogICBUb0RvOgogICAgIFByb3ZpZGUgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzIGZvciBib3RoIHRoaXMsIGFuZCB0aGUgc3lzbG9nIHRva2VuICgnc25tcGQnKS4KICAgCjIwMDItMTItMTIgMDg6MTggIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKOgoKICAgU3VwcG9ydCBzZXR0aW5nIG9mIHN5c0Rlc2NyIGFuZCBzeXNPYmplY3RJRCB2aWEgc25tcGQuY29uZgogICBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMgKHRob3VnaCBub3QgdmlhIFNOTVAgU0VUIHJlcWVzdHMpLgogICBQYXRjaGVzIHN1cHBsaWVkIGJ5IEpvZWwgUm9zZGFobCAoIzYyNzcwMiBhbmQgIzYyODAxMSkKICAgCjIwMDItMTItMTIgMDc6NTggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiBhbGxfaGVscGVycy5jLCB0YWJsZS5jOgoKICAgU3VwcHJlc3Mgc29tZSBjb21waWxlciB3YXJuaW5ncy4KICAgQmFzZWQgb24gcGF0Y2ggc3VwcGxpZWQgYnkgQ2hyaXMgSm9obnMgKCM2NDQwNDEpCiAgIAoyMDAyLTEyLTEyIDA3OjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9zb2xhcmlzMi5jIChWNC0yLXBhdGNoZXMuNiksCiAgIG1lbW9yeV9zb2xhcmlzMi5jOgoKICAgVXNlICdzeXNjb25mJyB0byByZXBvcnQgb24gU29sYXJpcyBtZW1vcnkgdXNhZ2UuCiAgIEJhc2VkIG9uIHBhdGNoIHN1cHBsaWVkIGJ5IEJlbiBTdGVybiAoIzY1MTE4MikKICAgCjIwMDItMTItMTIgMDc6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIEJhc2ljIHN1cHBvcnQgZm9yIG11bHRpcGxlIEFnZW50WCBzb2NrZXRzIChvbiB0aGUgbWFzdGVyIHNpZGUgYXQgbGVhc3QpLgogICBTZWUgRmVhdHVyZSBSZXF1ZXN0ICM2MzI1NTYKICAgCjIwMDItMTItMTIgMDU6NTcgIHJzdG9yeQoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgY3JlYXRlIHZlcnNpb24gdGFnIGZyb20gdmVyc2lvbiBzbyBjdnMgZXhwb3J0IHdvcmtzOyBmaXggUkVMOyBhZGQgdGFyLmd6CiAgIG9mIHNvdXJjZSBhcyBkZXBlbmRlbmN5IGZvciBycG1maWxlcwogICAKMjAwMi0xMi0xMiAwNTowNCAgbmJhCgogICAqIHNubXBsaWIvOiBkYXRhX2xpc3QuYywgc25tcENhbGxiYWNrRG9tYWluLmMsCiAgIHNubXBUQ1BEb21haW4uYywgc25tcFVEUERvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5jCiwgc25tcF9lbnVtLmMsIHNubXBfc2VjbW9kLmMsIHNubXBfdHJhbnNwb3J0LmMKOgoKICAgZG1hbGxvYyBzdXBwb3J0CiAgIAoyMDAyLTEyLTEyIDA0OjE4ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRG9jdW1lbnQgdGhlIC1PVSBvcHRpb24sIGFuZCBhbHBoYWJldGlzZSB0aGUgaGFuZGxpbmcgb2Ygb3B0aW9ucy4KICAgCjIwMDItMTItMTIgMDM6MjUgIGR0czEyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsICdzbm1waW5mb3JtJyBhcyBhIHJlbGF0aXZlIGxpbmssIHJhdGhlciB0aGFuIGFuIGFic29sdXRlIG9uZS4KICAgRml4IHByb3ZpZGVkIGJ5IHRoZSBpbmRlZmF0aWdhYmxlIFN0ZWZhbiBSYWRtYW4gKEJ1ZyAjNjUyNTg3KQogICAKMjAwMi0xMi0xMiAwMjo1NiAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBRdW90ZSBjb25maWd1cmUgb3B0aW9ucyB3aGVuIGNvbnRydWN0aW5nIG5ldC1zbm1wLWNvbmZpZ3VyZSBhbmQgbmV0LXNubXAtY29uZmlndXJlLmgKICAgVGhpcyBhbGxvd3Mgb3B0aW9ucyBjb250YWluaW5nIHNwYWNlcywgZXRjLCB0byBiZSBoYW5kbGVkIGNvcnJlY3RseS4KICAgKFNlZSBGZWF0dXJlIFJlcXVlc3QgIzU0NzE1MikKICAgCjIwMDItMTItMTEgMTM6NTIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIFBhdGNoIGZvciBGcmVlQlNELiBUaGFua3MgdG8gSnVuIEt1cml5YW1hCiAgIAoyMDAyLTEyLTExIDA5OjE2ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9sb2dnaW5nLmMgKFY0LTItcGF0Y2hlcy40KSwgc25tcF9sb2dnaW5nLmM6CgogICBUcnkgZGlzYWJsaW5nIGxpbmUtYnVmZmVyaW5nIG9uIFdpbmRvd3Mgc3lzdGVtcyAoc2luY2UgaXQKICAgYXBwYXJlbnRseSBlbmFibGVzIGZ1bGwtYnVmZmVyaW5nIGluc3RlYWQpLiAgU2VlIEJ1ZyAjNTU4ODM3LgogICAKMjAwMi0xMi0xMSAwODoyNSAgZHRzMTIKCiAgICogcGVybC9TTk1QL3QvOiBhc3luYy50LCBnZXQudCwgZ2V0bmV4dC50LAogICBub3RpZnkudCwgc2V0LnQ6CgogICBFeHBsaWNpdGx5IHNldCBTTk1QIHZlcnNpb24gPSAxICh0aGUgb3JpZ2luYWwgZGVmYXVsdCBhcyBleHBlY3RlZCBieSB0aGUgdGVzdHMpCiAgIFRoaXMgc2hvdWxkIG5vdyBwYXNzIGFsbCB0ZXN0cyBhcGFydCBmcm9tIGNvbmYudCAjMwogICAKMjAwMi0xMi0xMSAwMzo0NiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0Lmg6CgogICBCZSBtb3JlIHNlbGVjdGl2ZSBpbiB1c2luZyB0aGUgNjQtYml0IHZlcnNpb24gb2Ygbmxpc3QuIChCdWcgIzYxMTY1NSkKICAgCjIwMDItMTItMTEgMDM6MjcgIGR0czEyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgTWVudGlvbiB0aGUgbm9uLWZ1bmN0aW9uYWxpdHkgb2Ygb25lIG9mIHRoZSBzdWdnZXN0ZWQgYXBwcm9hY2hlcy4KICAgKEJ1ZyAjNjE3MTE5KS4gICBSZXBvcnRlZCBieSBRdWFuYWggR2lic29uLU1vdW50CiAgIAoyMDAyLTEyLTExIDAzOjIwICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEVuc3VyZSB0aGF0IHRoZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgZXhpc3RzIGJlZm9yZSBpbnN0YWxsaW5nIHRoZQogICBlbWJlZGRlZCBwZXJsIHNjcmlwdC4gIChCdWcgIzYxNzg5MSkgRml4IHByb3ZpZGVkIGJ5IFN0ZWZhbiBSYWRtYW4uCiAgIAoyMDAyLTEyLTExIDAyOjU2ICBkdHMxMgoKICAgKiBSRUFETUUuc25tcHYzIChWNC0yLXBhdGNoZXMuNCksIFJFQURNRS5zbm1wdjM6CgogICBEb2N1bWVudCB0aGUgbG9jYXRpb24gYXNzdW1wdGlvbnMgYmVpbmcgbWFkZSBpbiB0aGlzIGRlc2NyaXB0aW9uLgogICAKMjAwMi0xMi0xMSAwMTo0NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jLAogICBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIFByb3ZpZGUgYSBtZWNoYW5pc20gZm9yIGZvcmNpbmcgc3RyaW5ncyB0byBiZSBkaXNwbGF5ZWQgaW4gZWl0aGVyCiAgIEFTQ0lJIG9yIEhleCBmb3JtYXQsIGJ5cGFzc2luZyB0aGUgImd1ZXNzIiBtZWNoYW5pc20gYXMgdG8gd2hpY2gKICAgaXMgbW9yZSBhcHByb3ByaWF0ZS4gICBTdWdnZXN0ZWQgYnkgTmljayBLYW5ha2Frb3JuLgogICAgIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IGFmZmVjdCBvYmplY3RzIHdpdGggYSBEaXNwbGF5LUhpbnQgaW4KICAgdGhlaXIgTUlCIGRlZmluaXRpb24uCiAgIAoyMDAyLTEyLTExIDAxOjMwICBkdHMxMgoKICAgKiBhZ2VudC9kc19hZ2VudC5oLCBhZ2VudC9zbm1wZC5jLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gKICAgKFY0LTItcGF0Y2hlcy5bMiw2LDZdKSwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvc25tcGQuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLAogICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBDb21tYW5kLWxpbmUgb3B0aW9uIHRvIGNvbnRyb2wgd2hldGhlciB0byB1bmxpbmsgdGhlIFBJRCBmaWxlIG9yIG5vdC4KICAgTmVjZXNzYXJ5IGZvciBjb3JyZWN0IHRlc3Qgb3BlcmF0aW9uLgogICAKMjAwMi0xMi0xMSAwMToyMSAgZHRzMTIKCiAgICogcGVybC9PSUQvdGVzdC5wbDoKCiAgIFRoZSBsYXRlc3QgbGlicmFyeSBkZWZhdWx0cyB0byBNT0RVTEU6Om5hbWUgc3R5bGUgb3V0cHV0LAogICBzbyBhZGp1c3QgdGhlIGV4cGVjdGVkIG91dHB1dCBjaGVja3MgYWNjb3JkaW5nbHkuCiAgIEFsc28sIHRoZXJlIGFyZSBhY3R1YWxseSAzNiB0ZXN0cywgbm90IDM1IQogICAKMjAwMi0xMi0xMSAwMToxNyAgZHRzMTIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgSW5pdGlhbGlzZSB0aGUgU05NUCBsaWJyYXJpZXMsIHRvIHNldCB1cCB0aGUgT0lEIHRyZWUuCiAgIEFkZHJlc3NlcyBidWdzICM2MzgwMjQgYW5kICM2Mjc2NDMKICAgICBbUW46IERvIHdlIG5lZWQgdG8gc3VwcGx5IGFuICdhcHBuYW1lJyAoYy5kIHRoZSBTTk1QIG1vZHVsZSkgP10KICAgCjIwMDItMTItMTAgMTY6MjkgIG5iYQoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYzoKCiAgIEFsbG93IHJ1bnRpbWUgY29uZmlndXJhdGlvbiBvZiBwZXJzaXN0ZW50IGRpcmVjdG9yeQogICAKMjAwMi0xMi0xMCAxNjoyNCAgbmJhCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFJlcG9ydCBlcnJvcnMgaGFuZGxpbmcgcGVyc2lzdGVudCBzdG9yYWdlIGZpbGVzCiAgIAoyMDAyLTEyLTEwIDE2OjIzICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIFBhc3MgdXAgZXJyb3Igb24gZGlyZWN0b3J5IGNyZWF0aW9uCiAgIAoyMDAyLTEyLTEwIDE0OjI3ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEJldHRlciByZXNwZWN0IGZvciB0aGUgbWF4IHdpZHRoIG9wdGlvbiAoc25tcHRyYW5zbGF0ZSAtVGQpCiAgIAoyMDAyLTEyLTEwIDE0OjI2ICBuYmEKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IHRoZSBvaWRPdXRwdXRGb3JtYXQgb3B0aW9uCiAgIAoyMDAyLTEyLTEwIDE0OjI1ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIENsZWFuIHVwLiBSZW1vdmUgY2FsbHMgdG8gb2Jzb2xldGUgZnVuY3Rpb25zIHNubXBfc2V0X3F1aWNrX3ByaW50LAogICBzbm1wX2dldF9kdW1wX3BhY2tldCwgc25tcF9nZXRfc3VmZml4X29ubHkuIFJlbW92ZSBsYXN0IHRyYWNlcyBvZiB0aGUKICAgbm9uX3NlcXVlbnRpYWwgYmFja3dhcmRzIGhhY2suIE1ha2Ugc3VyZSBpdCB3b3JrcyBmb3IgYWxsIC1PIG9wdGlvbnMuCiAgIAoyMDAyLTEyLTEwIDA4OjU4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYyAoVjQtMi1wYXRjaGVzLjYpLAogICBpbnRlcmZhY2VzLmM6CgogICBQcm90ZWN0IGFnYWluc3QgZW1wdHkgbGluZXMgaW4gL3Byb2MvbmV0L2RldiAgKEJ1ZyAjNjI1NDI2KQogICAKMjAwMi0xMi0xMCAwODo0MSAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXB2My5jIChWNC0yLXBhdGNoZXMuNSksIHNubXB2My5jOgoKICAgRnJlZSBkZXN0aW5hdGlvbiBtZW1vcnkgYmVmb3JlIGNsb25pbmcgU05NUCBFbmdpbmUgSUQuCiAgIEZpeCBwcm92aWRlZCBieSBNYXJ0aW4gQ2FybHNzb24uICAoQnVnICM4MzU0ODEpCiAgIAoyMDAyLTEyLTEwIDA4OjA3ICBkdHMxMgoKICAgKiBwZXJsLzogQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIEFkZCAiJENvbmZpZ3tjY2ZsYWdzfSIgdG8gQ0NGTEFHUy4gICAoU2VlIGJ1ZyAjNjQwODk5KQogICAKMjAwMi0xMi0xMCAwNzo0NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpcEFkZHIuYyAoVjQtMi1wYXRjaGVzLjgpLCBpcEFkZHIuYzoKCiAgIEFkZCBzdXBwb3J0IGZvciBMaW51eCB2aXJ0dWFsIGludGVyZmFjZXMgaW4gdGhlIGlwQWRkcmVzc1RhYmxlLgogICAoTm90ZSB0aGlzIGRvZXMgKm5vdCogaW5jbHVkZSBzZXBhcmF0ZSBwZXItdi1pbnRlcmZhY2Ugc3RhdGlzdGljcwogICAgaW4gdGhlIGludGVyZmFjZXMgdGFibGUpLgogICAKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSmVucyBTaXR0bmVyICgjNjIxMjc0KQogICAKMjAwMi0xMi0xMCAwMTo1OSAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgUmVtb3ZlIGEgY291cGxlIG9mIGV4dHJhbmVvdXMgXk0gY2hhcmFjdGVycy4KICAgCjIwMDItMTItMDkgMjM6MzYgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgV2hlbiB1c2luZyAtT3F2IGFuZCBwcmludGluZyBhbiBlbXB0eSBzdHJpbmcgeW91IGNvdWxkIGVuZCB1cCB3aXRoCiAgIGEgTlVMTCBzdHJpbmcgYW5kIG5vdCBhbiBlbXB0eSBzdHJpbmcgbGVhZGluZyB0byBzb21lIHZlcnkgb2JzY3VyZQogICBwcm9ibGVtcyBpbiBzbm1wdGFibGUgYW5kIG90aGVyIGFwcGxpY2F0aW9ucy4KICAgCjIwMDItMTItMDkgMDg6MTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEhhbmRsZSBtaXNzaW5nIGludGVnZXIgdmFsdWVzICh3aGV0aGVyIDMyLSBvciA2NC1iaXQhKS4gICBPb3BzIQogICAKMjAwMi0xMi0wOSAwNzoxMiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy44KSwgc25tcF9hcGkuYzoKCiAgIEhhbmRsZSBpbnRlZ2VyLWJhc2VkIHZhbHVlcyBjb3JyZWN0bHkgb24gYSA2NC1iaXQgcGxhdGZvcm0uCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IFRob21hcyBXZWJlciAoIzU2MTA3MSkKICAgCjIwMDItMTItMDkgMDY6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIFRha2Ugbm90ZSBvZiBzdWJhZ2VudC1yZXF1ZXN0ZWQgYnl0ZSBvcmRlcmluZyBpbiBzdWJzZXF1ZW50IGNvbW11bmljYXRpb25zLgogICBQYXRjaCBzdXBwbGllZCBieSBVcmJhbiAoIzYzMjI4NCkKICAgCjIwMDItMTItMDkgMDY6MzIgIGR0czEyCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjUpLCBzbm1wZC5jOgoKICAgUmVtb3ZlIHRoZSBQSUQgZmlsZSBvbiBhZ2VudCBzaHV0ZG93bi4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgSm9lbCBSb3NkYWhsICgjNjI3Njk5KQogICAKMjAwMi0xMi0wOSAwNjoyNSAgZHRzMTIKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEhhbmRsZSAnc3RydWN0IHNvY2thZGRyJyB0aGF0IGNvbnRhaW4gJ3NhX2xlbicgZmllbGRzIGRpZmZlcmVudGx5CiAgIHRvIHRob3NlIHRoYXQgZG9uJ3QgKGMuZiBpZmlsdGVyX2lvY3RsLmMgaW4gQklORCA5LjIuMSBzb3VyY2VzKQogICBQYXRjaCBzdXBwbGllZCBieSBKb2VsIFJvc2RhaGwgKCM2Mjc2OTYpCiAgIAoyMDAyLTEyLTA5IDA0OjEyICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFJlY29nbmlzZSBCU0RpNCwgYW5kIHR3ZWFrIHRoZSByZWNvZ25pdGlvbiBvZiAnZGxvcGVuJy4KICAgUGF0Y2hlcyBzdXBwbGllZCBieSBKb2VsIFJvc2RhaGwuCiAgIAoyMDAyLTEyLTA5IDAzOjEwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGludGVyZmFjZXMuYywgaXAuYwo6CgogICBSZW1vdmUgc29tZSB3YXJuaW5ncywgYW5kIHRyeSB0byBjb3BlIHdpdGggJ3N5c2N0bCcgZmFpbHVyZXMuCiAgIFBhdGNoZXMgc3VwcGxpZWQgYnkgQ2hyaXMgSm9obnMuCiAgIAoyMDAyLTEyLTA5IDAxOjIwICBkdHMxMgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIE1lbnRpb24gdGhlIGxpbWl0YXRpb25zIG9uIC91c3IvdWNiL3NlZCwKICAgYW5kIHBvaW50IHBlb3BsZSB0b3dhcmRzIC91c3IvYmluL3NlZCBpbnN0ZWFkLgogICAKMjAwMi0xMi0wNyAwNTo0MSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBJbnNlcnQgbmV3bHktY3JlYXRlZCByb3dzIGludG8gdGhlIHBlci1yZXF1ZXN0IGxpc3RzLCBzbyB0aGF0IGxvd2VyCiAgIGxldmVsIGhhbmRsZXJzIGNhbiBhY2Nlc3MgdGhlbS4KICAgICBbUW46IFNob3VsZCB3ZSBkbyBzb21ldGhpbmcgc2ltaWxhciB3aXRoIHVwZGF0ZWQgbGlzdHMgYXMgd2VsbD9dCiAgIAoyMDAyLTEyLTA3IDA1OjM0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFJlcG9ydCBiYWNrIHRoZSBjb3JyZWN0IGVycm9yIGZvciByb3dzIHRoYXQgY291bGRuJ3QgYmUgY3JlYXRlZC4KICAgCjIwMDItMTItMDcgMDU6MzIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGZyZWVpbmcgYSByb3cgdGhhdCBuZXZlciBnb3QgY3JlYXRlZCBpbiB0aGUgZmlyc3QgcGxhY2UuCiAgIAoyMDAyLTEyLTA2IDE1OjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBTa2lwIG9uIG5vbi1vcGVuc3NsIG1hY2hpbmVzLiAgVEhpcyBzaG91bGQgYmUgY2hhbmdlZCB0byBqdXN0IG5vdCB1c2luZyBlbmNyeXB0aW9uIG9uIHRob3NlIG1hY2hpbmVzLCBidXQgSSBkbyBub3QgaGF2ZSB0aGUgdGltZSBhdCB0aGUgbW9tZW50CiAgIAoyMDAyLTEyLTA2IDEwOjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICByZW1vdmUgdWNkRGVtb1B1YmxpYyBmcm9tIC0tZW5hYmxlLW1pbmktYWdlbnQKICAgCjIwMDItMTItMDYgMTA6MDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHJlbW92ZSB1Y2REZW1vUHVibGljIGZyb20gLS1lbmFibGUtbWluaS1hZ2VudAogICAKMjAwMi0xMi0wNiAwOTowMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBEb24ndCBkZWxldGUgdGhlICJvbGQiIChub24tZXhpc3RlbnQpIHJvdywgd2hlbiB0aWR5aW5nIHVwIGFmdGVyCiAgIGNyZWF0aW5nIGEgbmV3IHJvdy4KICAgCjIwMDItMTItMDYgMDg6NDAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgVHdlYWsgaGFuZGxpbmcgb2YgKGludmFsaWQpIFJvd1N0YXR1cyBjcmVhdGlvbiByZXF1ZXN0cyBpbiBhbgogICAiYXV0b21hdGljIGNyZWF0aW9uIiB0YWJsZS4gICBUaGVzZSBzaG91bGQgcmV0dXJuIHdyb25nVmFsdWUgb3IKICAgaW5jb25zaXN0ZW50VmFsdWUsIHJhdGhlciB0aGFuIG5vdFdyaXRhYmxlLgogICAKMjAwMi0xMi0wNSAwMjo0NyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBTdXBwb3J0IHVzZSBvZiBSb3dTdGF0dXMgb2JqZWN0IHRvIGNvbnRyb2wgY3JlYXRpb24gb2YgbmV3IHJvd3MKICAgKGkuZS4gd2hlbiB0aGUgJ2FsbG93X2NyZWF0aW9uJyBmbGFnIGlzIG5vdCBzZXQpLgogICBUaGlzIHNob3VsZCBkZWFsIHdpdGggZXZlcnl0aGluZyBleGNlcHQgZGV0ZXJtaW5pbmcgd2hldGhlciBhCiAgIHJvdyBpcyByZWFkeSB0byBnbyAnYWN0aXZlJyAoZS5nLiB2aWEgJ2NyZWF0ZUFuZEdvJykuICBTdWNoIGEKICAgZGVjaXNpb24gaXMgaW5oZXJlbnRseSBzcGVjaWZpYyB0byBlYWNoIGluZGl2aWR1YWwgTUlCLCBzbyBtdXN0CiAgIHJlYWxseSBiZSBkb25lIGluIHRoZSBsb3dlci1sZXZlbCBoYW5kbGVyLgogICAKMjAwMi0xMi0wNSAwMjo0MSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBTdG9wIHByb2Nlc3Npbmcgd2hlbiBhICdub24td3JpdGFibGUgY3JlYXRlJyBpcyBkZXRlY3RlZC4KICAgCjIwMDItMTItMDQgMTY6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIC0gQklUX1NUUiAtPiBPQ1RFVF9TVFIsIHdoaWNoIGlzIHdoYXQgaXQgc2hvdWxkIGJlLgogICAtIHJ1biBldmVudFRhYmxlIGVudHJpZXMuCiAgIAoyMDAyLTEyLTA0IDE2OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmM6CgogICBCSVRfU1RSIC0+IE9DVEVUX1NUUiwgd2hpY2ggaXMgd2hhdCBpdCBzaG91bGQgYmUuCiAgIAoyMDAyLTEyLTA0IDE2OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBtdGVPYmplY3RzVGFibGUuYywKICAgbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jOgoKICAgdXNlIG5ldHNubXBfc3RyZHVwX2FuZF9udWxsIHRvIGdldCByZWFsIHN0cmluZ3MgZnJvbSBtaWIgZGF0YS4KICAgCjIwMDItMTItMDQgMTY6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LW1pYi5oLAogICBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaAosIG10ZUV2ZW50VGFibGUuYywgbXRlRXZlbnRUYWJsZS5oOgoKICAgLSBpbXBsZW1lbnRlZCB0aGUgbXRlRXZlbnRUYWJsZSBhbmQgdGhlIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUKICAgICAtIEZZSSwgdG90YWwgaW1wbGVtZW50YXRpb24gdGltZTogYWJvdXQgNCBob3VycwogICAgIC0gbm8gZWFzeS10by11c2UgLmNvbmYgd3JhcHBlcnMgeWV0IHRob3VnaC4gIHNubXBzZXQgc3VwcG9ydCBvbmx5LgogICAKMjAwMi0xMi0wNCAxNjoyOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIC0gdXNlIHRoZSBuZXRzbm1wX3RhYmxlX3NldF9hZGRfaW5kZXhlcyBmdW5jdGlvbiB3aGljaCBhY3R1YWxseSB3b3Jrcy4KICAgCjIwMDItMTItMDQgMTY6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIC0gY3JlYXRlIGEgbmV0c25tcF90YWJsZV9zZXRfYWRkX2luZGV4ZXMgZnVuY3Rpb24uCiAgIC0gQWxsb3cgcm93IGNyZWF0aW9uIHVzaW5nIHJvd1N0YXR1cyB3aGVuIHRoZSBkYXRhIGNvbHVtbiBleGlzdHMsIGJ1dAogICAgIHRoZXJlIGlzIG5vIGFzc2lnbmVkIHZhbHVlIChpZSwgaXMgTlVMTCkuCiAgIC0gdXNlIG5ldHNubXBfc3RyZHVwX2FuZF9udWxsIGluc3RlYWQgb2YgbWVtZHVwIHRvIG1ha2Ugc3VyZSBhbgogICAgIGltcGxpY2l0IE5VTEwgaXMgaW4gcGxhY2UgZm9yIHRoaW5ncyB0aGF0IHVzZSB0aGUgZGF0YSBhbmQgbmVlZCBpdAogICAgIGFzIGEgcmVhbCBzdHJpbmcuCiAgIAoyMDAyLTEyLTA0IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBkb2N1bWVudCAtLXByZWZpeAogICAKMjAwMi0xMi0wNCAxMDoxNiAgaGFyZGFrZXIKCiAgICogTkVXUyAoVjQtMi1wYXRjaGVzLjkpLCBORVdTOgoKICAgZG9jdW1lbnQgNC4yLjYKICAgCjIwMDItMTItMDMgMDE6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIENsb3NlIHByaW50ZXIgZmlsZSBoYW5kbGUgd2l0aCAnZmNsb3NlJyByYXRoZXIgdGhhbiAncGNsb3NlJyB0byBhdm9pZAogICBhIG1lbW9yeSBsZWFrIG9uIFNvbGFyaXMgMi42LiAgIEZpeCBwcm92aWRlZCBieSBKYWNvYm8gTWF0dXRlLgogICAKMjAwMi0xMi0wMyAwMTozMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2RhdGEuYywgdGFibGVfZGF0YXNldC5jOgoKICAgVHJhbnNsYXRlIEdldE5leHQgKGFuZCBHZXRCdWxrKSByZXF1ZXN0cyBpbnRvIHNpbXBsZSBHZXQgcmVxdWVzdHMsCiAgIHdoZW4gcGFzc2luZyB0aGVtIGZyb20gdGhlIHRhYmxlX2RhdGEgaGFuZGxlciB0byB0YWJsZV9kYXRhc2V0LgogICAgIFRoaXMgaXMgYW5hbG9nb3VzIHRvIGhvdyB0aGUgaXRlcmF0ZSBoYW5kbGVyIHdvcmtzLCBhbmQgYWxsb3dzCiAgIGxvd2VyIGxldmVsIGhhbmRsZXJzIHRvIG92ZXJyaWRlIHRoZSBiYXNpYyBiZWhhdmlvdXIgKHdpdGhvdXQKICAgaGF2aW5nIHRvIGR1cGxpY2F0ZSBhbGwgb2YgdGhlICJmaW5kIG5leHQgcm93IiBjb2RlIGV2ZXJ5IHRpbWUpLgogICAKMjAwMi0xMi0wMiAwMTo0OCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgUmV0dXJuIFNOTVB2Mi1zdHlsZSBleGNlcHRpb25zLCByYXRoZXIgdGhhbiB0aGUgU05NUHYxICdub1N1Y2hOYW1lJyBlcnJvci4KICAgVGhpcyB1c2VkIHRvIGJyZWFrIEFnZW50WCBzdWJhZ2VudHMsIGJ1dCB0aGUgbGF0ZXN0IGNoYW5nZSB0byBzbm1wX2FnZW50LmMKICAgKHRvIGNhdGNoIG5vU3VjaHtJbnN0YW5jZSxPYmplY3R9IGV4Y2VwdGlvbnMpIHNlZW1zIHRvIGhhdmUgZml4ZWQgdGhhdCBwcm9ibGVtLgogICAKMjAwMi0xMi0wMiAwMTo0MCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRXhwbGljaXRseSBwYXJlbnRoZXNpc2UgYSBjb21wYXJpc29uLCB0byBrZWVwIHRoZSBjb21waWxlciBoYXBweS4KICAgCjIwMDItMTItMDIgMDE6MzkgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEluY2x1c2l2ZS1yYW5nZSBHZXROZXh0IHJlcXVlc3RzIGFyZSB0cmFuc21pdHRlZCBhcyBHZXQgcmVxdWVzdHMsIHNvIG1heQogICB3ZWxsIHJldHVybiBub1N1Y2h7SW5zdGFuY2UsT2JqZWN0fSBleGNlcHRpb25zLiAgQ2F0Y2ggdGhlc2UgYXMgd2VsbC4KICAgCjIwMDItMTItMDIgMDE6MzYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgQ2F0Y2ggKGFuZCByZWplY3QpIGF0dGVtcHRzIHRvIGNyZWF0ZSBhIG5ldyByb3cgdmlhIGEgbm9uLXdyaXRhYmxlIG9iamVjdC4KICAgCjIwMDItMTEtMjggMDE6MjQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIE51bGwgb3V0IG9uZSBmaW5hbCBsb29wX2NvbnRleHQgcG9pbnRlciBhZnRlciBiZWluZyBmcmVlZC4KICAgKFBhdGNoIHByb3ZpZGVkIGJ5IFJvZ2VyIE1jQ2FsbWFuKQogICAKMjAwMi0xMS0yNiAxNDo1OSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIERpc2NhcmQgdGhlIHNlY29uZGFyeSAoR1JPVVApIERFU0NSSVBUSU9OIGluc2l6ZSBhIE1PRFVMRS1DT01QTElBTkNFCiAgIHRvIGF2b2lkIGxlYWtpbmcgbWVtb3J5LiBUaGFua3MgdG8gRXVnZW5lX0JydWtAYm1jLmNvbQogICAKMjAwMi0xMS0yNiAxNDo1MyAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgUmVpbnN0YXRlIHRoZSAtdyBvcHRpb25zIHRoYXQgd2FzIGxvc3QgaW4gdGhlIGluZGVudCBmdXJ5CiAgIAoyMDAyLTExLTI2IDA3OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIFRoZSBub3RpZmljYXRpb24gdmFyaWFibGUgc2hvdWxkbid0IGJlIHN0YXRpYy4gIEEgYnVnIGZvdW5kIHdoaWxlCiAgIHRyYWNraW5nIGRvd24gYSBwcm9ibGVtIHBvaW50ZWQgb3V0IGJ5IFZlbmljZSBvbiBJUkMuCiAgIAoyMDAyLTExLTI2IDAxOjEwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgRml4IGluY29ycmVjdCB1c2FnZSBvZiBTRV9NQVhfSURTIHZzIFNFX01BWF9TVUJJRFMuCiAgIFJlcG9ydGVkIGJ5ICdzaGluZXBlYWsnCiAgIAoyMDAyLTExLTI1IDE5OjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9GQVEySFRNTDoKCiAgIGhhY2sgb2YgYSBoYWNrIG9mIGEgaGFjaywgb3I6IGZpeCBtdWx0aS1saW5lIEZBUSBxdWVzdGlvbnMKICAgCjIwMDItMTEtMjUgMDc6MDggIGhhcmRha2VyCgogICAqIFJFQURNRS5hZ2VudHg6CgogICBtZW50aW9uIGFnZW50eFBpbmdJbnRlcnZhbAogICAKMjAwMi0xMS0xOCAxODozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4Lmg6CgogICBhcHBsaWVkIHBhdGNoICM1Mjc2NTAKICAgCjIwMDItMTEtMTEgMTQ6MTAgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVzcGVjdCB0aGUgbWliZGlycyBjb25mIGRpcmVjdGl2ZS4gVGhhbmtzIHRvIFN0ZWZhbiBSYWRtYW4gKHNyYWRtYW4pCiAgIAoyMDAyLTExLTExIDEzOjU3ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBGaXggYSBtaXNzaW5nIGVycm9yIHJldHVybgogICAKMjAwMi0xMS0xMSAxMToyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYywgc25tcFVEUERvbWFpbi5jOgoKICAgZml4IHRhZGRyIGdlbmVyYXRpb24vcGFyc2luZyBmb3IgcG9ydCBiYXNlZCB0cmFuc3BvcnRzIHRvIHByb3Blcmx5IHVzZQogICBuZXR3b3JrIGJ5dGUgb3JkZXJpbmcuCiAgIAoyMDAyLTExLTExIDExOjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgZml4IHdyaXRlIHN1cHBvcnQgZm9yIHRoZSB0aW1lb3V0IGNvbHVtbgogICAKMjAwMi0xMS0wOSAwNzowNiAgbmJhCgogICAqIGFnZW50L21pYl9tb2R1bGVzLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmg6CgogICBEbyBhd2F5IHdpdGggYSBidW5jaCBvZiBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0xMS0wOSAwNjo1OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIHVjZC1zbm1wL21lbW9yeS5jLCB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgdWNkLXNubXAvcGFzcy5jLCB1Y2Qtc25tcC9wcm9jLmMsIGhvc3QvaHJfcHJpbnQuYwo6CgogICBaZXJvIGlzIGFuIE9LIGZpbGUgZGVzY3JpcHRvci4gLTEgaXMgdGhlIGVycm9yIHJldHVybgogICAKMjAwMi0xMS0wOSAwNjo1NCAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmM6CgogICBNb3JlIHRvIHRoZSBwb2ludCBtZXNzYWdlIGZvciB1bmRlZmluZWQgaWRlbnRpZmllcnMuIEJyb3VnaHQgZm9yd2FyZCBmcm9tIDQuMgogICAKMjAwMi0xMS0wOSAwNjo1MiAgbmJhCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIFByaW50IHRoZSBlcnJvciBpbmZvcm1hdGlvbiBpbiBjYXNlIG9mIGVycm9yCiAgIAoyMDAyLTExLTA5IDA2OjUxICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHYyIGV4Y2VwdGlvbiByZXN1bHRzCiAgIAoyMDAyLTExLTA5IDA2OjQ5ICBuYmEKCiAgICogc2Vkc2NyaXB0LmluLCBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIFByb3RlY3QgUFJFRklYIHdoZW4gaXQgaXMgdGhlIGVudiB2YXIuIFRoYW5rcyB0byBTdGVmYW4gUmFkbWFuIChzcmFkbWFuKQogICAKMjAwMi0xMS0wOSAwNjo0NyAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIEFkZCBSRkMgMzM3MSBMMlRQLU1JQgogICAKMjAwMi0xMS0wOSAwNjo0NiAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgVXBkYXRlZCBmcm9tIElBTkEKICAgCjIwMDItMTEtMDcgMDI6NTUgIGpicG4KCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgICAgLSBmaXggLUNmIGFuZCAtQ3cgb3B0aW9uIHByb2Nlc3NpbmcgKHByZXZpb3VzbHkgd291bGQgY29yZSBkdW1wIGlmCiAgICAgICBubyBvcHRpb24gcGFzc2VkKSwgYXMgcG9pbnRlZCBvdXQgYnkgaGFtcGEgb24gI25ldC1zbm1wCiAgIAoyMDAyLTExLTA2IDEyOjM1ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgZml4IGN1dC9wYXN0ZQogICAKMjAwMi0xMS0wNiAxMjowNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBjb25maWd1cmUuaW4gJiBtYWtlZmlsZXMKICAgCjIwMDItMTEtMDYgMTE6MDggIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgbWlzc2luZyBlbmQgcXVvdGUKICAgCjIwMDItMTEtMDYgMTA6MzUgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgQERFVkZMQUdTQCB3ZWhlcnZlciB0aGVyZSBpcyBhIEBDRkxBR1NALCBleGNlcHQgZm9yIHRoZSBuZXcgLS1iYXNlLWNmbGFncwogICAKMjAwMi0xMS0wNiAxMDoyMiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGFkZCBAREVWRkxBR1NAIHRvIENGTEFHUwogICAKMjAwMi0xMS0wNiAxMDoyMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHNlcGVyYXRlIGRldmVsb3BlciBjZmxhZ3MgZnJvbSBub3JtYWwgY2ZsYWdzCiAgIAoyMDAyLTExLTA2IDA5OjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgY2hhbmdlIHN0cnVjdC5oIGluY2x1ZGUgdG8gdXNlICIiIGluc3RlYWQgb2YgPG5ldC1zbm1wLz4sIHNpbmNlIGl0IGl0IGEgbG9jYWwKICAgaW5jbHVkZSwgbm90IGEgc3lzdGVtIGluY2x1ZGUKICAgCjIwMDItMTEtMDYgMDk6MzkgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmgsIHdpbjMyL2NvbmZpZy5oLAogICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHB1cmdlIElOX1VDRF9TTk1QX1NPVVJDRQogICAKMjAwMi0xMS0wNSAwOToyNCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBhZGRlZCBhIHhtbHNob3J0IGRlbGltaXRlciBhcyByZXF1ZXN0ZWQgYnkgbGFuZHMgb24gSVJDCiAgIAoyMDAyLTExLTA1IDA4OjU5ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIHRhYnMgLT4gc3BhY2VzIG9ubHkgdHJ5IHRvIGNobW9kIFJPIHNyYyBkaXIgaWYgb3duZXIgb2YgZGlycwogICAKMjAwMi0xMS0wNSAwODo1NiAgcnN0b3J5CgogICAqIG1raW5zdGFsbGRpcnM6CgogICBtYWtpbmcgYSBkaXJlY3RvcnkgaXMgbm90IGFuIGVycm9yLCBzbyBkb24ndCBzZW5kIG91dHB1dCB0byBzdGRlcnIKICAgCjIwMDItMTEtMDQgMDg6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIGFsbG93IHVucmVnaXN0ZXJlZCBzZWN1cml0eSBtb2RlbHMgPD0gMgogICAKMjAwMi0xMS0wNCAwODoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgZW5hYmxlIHJvdyBjcmVhdGlvbiB0byBiZSBiZXR0ZXIgc3VwcG9ydGVkIChyb3dzdGF0dXMgbm8gbG9uZ2VyIGhhcyB0bwogICBiZSBmaXJzdCBpbiB0aGUgbGlzdCwgLi4uKQogICAKMjAwMi0xMS0wNCAwODoxMyAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIGNwcGZsYWdzIHRvIC0tY2ZsYWdzCiAgIAoyMDAyLTExLTA0IDA4OjEzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgYWRkIHN0dWZmIGZvciA1LjAuNyAob3Igd2hhdGV2ZXIpIG1lbnRpb25pbmcgYSBmZXcgbmV3IGZlYXR1cmVzLgogICAKMjAwMi0xMS0wMSAwOTowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4ZWQgYnVnICM2MzIwOTQgdXNpbmcgdGhlIHN1Z2dlc3RlZCBtZXRob2Q6IHdhdGNoIGZvciBOVUxMIHN0cmVycm9yKCkgcmV0dXJuCiAgIAoyMDAyLTExLTAxIDA3OjA5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICB1bmRvIG15IGNoYW5nZXMgZnJvbSByIDUuMTcsIGF0dGVtcHRpbmcgdG8gcmVkdWNlIHJ1bnMgb2YgY29uZmlnLnN0YXR1cwogICBieSB1c2luZyBleHBsaWNpdCBwYXRocyB0byBzcmNkaXIsIGFuZCBsZXQgVlBBVEggZG8gaXQncyB0aGluZwogICAKMjAwMi0xMC0yOSAxMTozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICB0YXJnZXQgdG8gYnVpbGQgYmluYXJ5IGFycmF5IHRlc3QgYXBwOyB0d2VhayB0byBwYXJzZSB0ZXN0IHRhcmdldCAocmVkdWNlcyBtb3N0CiAgIGJ1dCBub3QgYWxsIGV4dGVybmFsIHJlZmVyZW5jZXMpCiAgIAoyMDAyLTEwLTI5IDExOjI3ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmaXggZm9yIGJpbmFyeSBzZWFyY2ggcHJvYmxlbSBub3RlZCBieSBSb215IENocmlzdGVuc2VuIG9uIGNvZGVyczsgcGFydGlhbAogICAoaWZkZWYnZCBvdXQpIGNvZGUgZm9yIGEgYmluYXJ5IGFycmF5IGl0ZXJhdG9yCiAgIAoyMDAyLTEwLTI5IDExOjI1ICByc3RvcnkKCiAgICogc25tcGxpYi90ZXN0X2JpbmFyeV9hcnJheS5jOgoKICAgc2ltcGxlIHRlc3QgcHJvZ3JhbSBmb3IgYmluYXJ5IGFycmF5CiAgIAoyMDAyLTEwLTI5IDA2OjI4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEZpeCBkZWJ1Z2dpbmcgYXMgbm90ZWQgaW4gYnVnICM2MzAzNDgKICAgCjIwMDItMTAtMjggMTY6NDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY2hhbmdlZCAuMS42LjMgdG8gMS4zLjYgYXMgbm90ZWQgaW4gY29tcC5wcm90b2NvbHMuc25tcAogICAKMjAwMi0xMC0yOCAxMjowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jb25mOgoKICAgY2hhbmdlZCBwYXNzd29yZAogICAKMjAwMi0xMC0yOCAxMTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jb25mOgoKICAgbWlzYyB2YWNtIGZpeGVzCiAgIAoyMDAyLTEwLTI4IDA1OjQxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSByZW1vdmUgZXJyb25lb3VzIGZyZWUoKSBvZiByeGJ1ZgogICAKMjAwMi0xMC0yNSAwOTozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4ZWQgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIC0+IE5FVFNOTVBfT1BfQ0FMTEJBQ0tfRElTQ09OTkVDVCBhcyBub3RlZCBieSBUcm9nTCBvbiBJUkMKICAgCjIwMDItMTAtMjUgMDQ6MzQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHBlcmZvcm0gYSBORVRTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgdHlwZSBjYWxsYmFjayBpZiB3ZQogICAgICAgZGVjaWRlIHRvIHNodXRkb3duIGEgc3RyZWFtIHR5cGUgY29ubmVjdGlvbiBiZWNhdXNlIHdlIHJlY2VpdmVkCiAgICAgICBhbiBleGNlc3NpdmVseSBsYXJnZSBwYWNrZXQuCiAgIAoyMDAyLTEwLTI0IDA3OjQxICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGRlZCB0aGUgc3VwZXItYnVnLXBhdGNoIGdlbmVyYXRvciBTdGVmYW4gUmFkbWFuIHRvIHRoZSBUSEFOS1MgbGlzdAogICAKMjAwMi0xMC0yNCAwNzo0MCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgYnVnICM2MTc1MDg6IGFkZGVkIHRoZSBtdGFfc2VuZG1haWwgbW9kdWxlIHRvIC0taGVscAogICAKMjAwMi0xMC0yNCAwNzozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICB1cGRhdGUgaW5zdGFsbCBsaXN0IGZvciBtaWIyYyBjb25mIGZpbGVzIGFuZCByZW1vdmUgb2xkIG9uZQogICAKMjAwMi0xMC0yMyAxNzozNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggaW5jb3JyZWN0IHZhcmlhYmxlIG5hbWUgSSBub3RpY2VkIHdoZW4gY29weWluZyB0byBhIGRpZmZlcmVudCBjb25maWd1cmUgc2NyaXB0IGluIGFub3RoZXIgcGFja2FnZQogICAKMjAwMi0xMC0yMyAxNzoyOCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBGaXhlZCBidWcjNjE3ODM4OiB2ZXJzaW9udGFnIGlzbid0IGRpc3RyaWJ1dGVkIGFuZCBzaG91bGRuJ3QgYmUgYWx3YXlzCiAgIHVzZWQgaW4gdGhlIG1ha2UgZGlzdGNsZWFuIGNhbGxzLgogICAKMjAwMi0xMC0yMyAxNzoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgaW5jb25zZXF1ZW5jaWFsIG1lbW9yeSBsZWFrcyBmaXhlZCAoaW5pdCB0aW1lIGxlYWtzKS4KICAgCjIwMDItMTAtMjMgMTc6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIEZpeGVkIHZhcmlvdXMgbWVtb3J5IGxlYWtzIGluIHRoZSB0YWJsZV9pdGVyYXRvciBhcyBwb2ludGVkIG91dCBieQogICBSb2dlciBNY0NhbG1hbiBhbmQgSmF5IFBhcmxhciBvbiB0aGUgLWNvZGVycyBsaXN0IChpbmNsdWRpbmcgdGhlaXIgcGF0Y2hlcykKICAgCjIwMDItMTAtMjMgMTU6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIHNubXBOb3RpZnlUYWJsZS5jCiAgIAoyMDAyLTEwLTIzIDE1OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBmcmVlIGEgcHJldmlvdXNseSBtYWxsb2NlZCBwb2ludGVyIHRvIHRoZSB3YXRjaCB2YXJpYWJsZSBiZWZvcmUgcmVwbGFjaW5nIGl0LgogICAKMjAwMi0xMC0yMyAxNTo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSB1bnVzZWQgbWFsbG9jLgogICAKMjAwMi0xMC0yMSAwOTo0MyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi45Lmg6CgogICAgIC0gYWRkIHN5c3RlbSBmaWxlIGZvciBTb2xhcmlzIDkKICAgCjIwMDItMTAtMTcgMTk6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2NhbGxiYWNrcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIHNubXBsaWIvdmFjbS5jOgoKICAgT3B0aW1pemVkIHRoZSBWQUNNIGNoZWNrcyBpbiB0aGUgY2FzZSBvZiBnZXRuZXh0L2dldGJ1bGsgc28gdGhhdCB3aGVuCiAgIGxhcmdlIHBvcnRpb25zIG9mIHRoZSBtaWIgdHJlZSBhcmUgZXhjbHVkZWQsIHRoZSBzdWItbWliIGFjY2VzcyBjb2RlCiAgIHdvbid0IGJlIGNhbGxlZCBhdCBhbGwgKGZpbmFsbHkgaW1wbGVtZW50aW5nIGEgdmVyeSBsb25nIG5lZWRlZCBvcHRpbWl6YXRpb24pLgogICAKMjAwMi0xMC0xNyAxOTo0MSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBuZXcgZnVuY3Rpb24gdG8gZmluZCB0aGUgY29tbW9uYWxpdHkgYmV0d2VlbiB0d28gb2lkczogbmV0c25tcF9vaWRfZmluZF9wcmVmaXgKICAgCjIwMDItMTAtMTcgMTk6MzkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIFByaW50IG91dCBhICJzdW1tYXJ5IiBhdCB0aGUgZW5kIG9mIGEgcnVuCiAgIAoyMDAyLTEwLTE3IDAyOjQwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBQcm9wZXJseSB0ZXJtaW5hdGUgYSBsb29wIGNvbnN0cnVjdCAobWlzc2luZyAnQGVuZEAnKQogICBTcG90dGVkIGJ5IEthcmwgQ29vcGVyLiAgICBPb3BzIQogICAKMjAwMi0xMC0xNiAxNDoxOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICByZXN0b3JlIGNvbnRpbnVlIGFmdGVyIEVJTlRSIGNhdXNlZCBieSBzaWduYWwgd2UgaGFuZGxlZCAoaW5zdGVhZCBvZiBmYWxsaW5nCiAgIHRob3JvdWdoIHRvIGV4aXQhKQogICAKMjAwMi0xMC0xNiAxNDowMCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBjaGVjayBmb3Igb3VyIHNpZ25hbCBmbGFncyBvbiBFSU5UUiwgYW5kIG9ubHkgcmVsZXNlY3QgaWYgbm90IGNoYW5nZWQ7CiAgIGRlYnVnIG1zZyB3aGVuIHNpZ25hbHMgcmVnaXN0ZXJlZCBhbmQgZm9yIHNlbGVjdC9mZHNldHM7CiAgIAoyMDAyLTEwLTE2IDEyOjUyICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgbW92ZSBDUFBGTEFHUyBiZWZvcmUgdXNlciBjb25maWd1cmUgQ0ZMQUdTLi4gc28gaWYgYSB1c2VyIGFkZHMgc29tZXRoaW5nCiAgIGxpa2UgL3Vzci9sb2NhbC9pbmNsdWRlIHRvIENGTEFHUywgd2Ugd2lsbCBwaWNrIHVwIG91ciBsb2NhbCBpbmNsdWRlcyBmaXJzdCwKICAgaW5zdGVhZCBvZiBpbmNsdWRlcyBmcm9tIGEgcHJldmlvdXMgcmVsZWFzZS4uCiAgIAoyMDAyLTEwLTE1IDIxOjA2ICByc3RvcnkKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfbG9nLmMsIHNubXB0cmFwZF9sb2cuaAo6CgogICBtYWtlIHN1cmUgc25tcHRyYXBkIGFsd2F5cyBob25vcnMgRFNfQVBQX05VTUVSSUNfSVAgZm9yIGxvZ2dpbmcKICAgCjIwMDItMTAtMTUgMTQ6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgbmV0c25tcF9nZXRfYm9vbGVhbiAtPiBuZXRzbm1wX2RzX2dldF9ib29sZWFuCiAgIAoyMDAyLTEwLTE1IDExOjA4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZml4IGNvbnN0YW50IHVzZWQgaW4gYXNzZXJ0LCBub3RlZCBvbiBjb2RlcnMKICAgCjIwMDItMTAtMTUgMTE6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBpbmNsdWRlIHN5c2xvZyBmb3IgbGlid3JhcCBsb2cgbGV2ZWxzCiAgIAoyMDAyLTEwLTE1IDA3OjM5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIEFkZCB5ZXQgYW5vdGhlciB3YXkgdG8gc3BlY2lmeSB2NiBhZGRyZXNzZXMKICAgCjIwMDItMTAtMTQgMDg6NTQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgZml4IGlwdjYgdHJhbnNwb3J0IGFkZHJlc3Mgc3BlY3MKICAgCjIwMDItMTAtMTEgMTY6MTggIGhhcmRha2VyCgogICAqIFJFQURNRS5jbXUsIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFJlbW92ZSB0aGUgUkVBRE1FLmNtdSBmaWxlIChlbnRpcmVseSBvdXQgb2YgZGF0ZSBhdCB0aGlzIHBvaW50KS4KICAgCjIwMDItMTAtMTEgMTM6NTcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBwYXRjaCAjNjAwOTMzIGZyb20gRG9uYWwgRGlhbW9uZDogZHNrUGVyY2VudE5vZGUgZm9yIEZyZWVCU0Q0CiAgIAoyMDAyLTEwLTExIDEzOjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUGF0Y2ggIzU5ODI4MCBmcm9tIEplZmYgV2F0c29uOiBtYWtlIC1PUSBub3QgcHJpbnQgdHlwZSB3YXJuaW5ncy4KICAgCjIwMDItMTAtMTEgMTM6NDMgIGhhcmRha2VyCgogICAqIGRpc3QvTWFrZWZpbGU6CgogICBmaXggaW5jbHVkZSBkaXJlY3RvcnkKICAgCjIwMDItMTAtMTEgMTM6NDIgIGhhcmRha2VyCgogICAqIGRpc3QvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBycG0gc3ViZGlyCiAgIAoyMDAyLTEwLTExIDEzOjMyICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgYmV0dGVyIGRvY3MgYWJvdXQgYXV0by1leHRyYWN0ZWQgU0YgbmV3cwogICAKMjAwMi0xMC0xMSAxMzowNCAgaGFyZGFrZXIKCiAgICogZGlzdC86IE1ha2VmaWxlLCBuZXQtc25tcC5zcGVjOgoKICAgbWVyZ2UgaW4gcGF0Y2ggIzU5ODg2OTogTWFyayBIYXJpZydzIGJldHRlciBycG0gc3R1ZmYKICAgCjIwMDItMTAtMTEgMTI6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMKOgoKICAgQWx0ZXJuYXRpdmUgdG8gYSBwYXRjaCBzdWdnZXN0aW9uOiBhZGQgLU9VIHRvIG5vdCBwcmludCBVTklUUyBzdWZmaXhlcy4KICAgCjIwMDItMTAtMTEgMTI6MTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgLi4vYWdlbnQvc25tcF9hZ2VudC5jCiAgIAoyMDAyLTEwLTExIDEyOjE0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgZG9udFByaW50VW5pdHMKICAgCjIwMDItMTAtMTEgMTE6NDggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFBhdGNoICM2MTcxNTEgZnJvbSBBbmRyZXcgUnVja2VyIEpvbmVzOiBmaXggbGlid3JhcCBoZWFkZXJzLgogICAgIC0gSSdtIHN0aWxsIHVuaGFwcHkgd2l0aCBob3cgbGlid3JhcCBmdW5jdGlvbnMuLi4gIG5lZWRzIHRoaW5raW5nIGFib3V0LgogICAKMjAwMi0xMC0xMSAxMDo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBQYXRjaCAjMzEyNjk0IGZyb20gSm9obiBTdXJ2ZXlvcjogZml4IGRpc2tpbyBvbiBzb2xhcmlzLgogICAKMjAwMi0xMC0xMSAxMDozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzYyMTM5OCBmcm9tIE1hdHRoZXcgS3JlbnplciB0byBmaXggbGludXggYXJwIHRhYmxlLgogICAKMjAwMi0xMC0xMSAwNjo0NyAgcnN0b3J5CgogICAqIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcDoKCiAgIGNoZyBuZXRzbm1wbWlicyAtPiBuZXRzbm1wbWlic3NrZCAobm90ZWQgb24gY29kZXJzIGJ5IEplZCBXaGl0dGVuKQogICAKMjAwMi0xMC0xMSAwNjo0NSAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgICAgLSBub3RlIHNxdWFyZSBicmFja2V0cyBmb3IgSVB2NiBhZGRyZXNzZXMKICAgCjIwMDItMTAtMTEgMDY6NDAgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSByZXN0YXJ0IHNlbGVjdCgpIG1vcmUgcXVpY2tseSBpZiBhbiBFSU5UUiBoYXBwZW5zCiAgIAoyMDAyLTEwLTEwIDIyOjUxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBhcHBsaWVkIEhhcnJpZSdzIHBhdGNoIGRlc2NyaWJpbmcgbG93IG1lbW9yeSBmb290cHJpbnRzCiAgIAoyMDAyLTEwLTEwIDA4OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIFBhdGNoIGZyb20gS2VuIEhvcnN0ZWluIHRvIGZpeCBLU00gbW9kdWxlCiAgIAoyMDAyLTEwLTEwIDAzOjIyICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgICAgLSByZW1vdmUgYmFkIGlubGluZXMgd2hpY2ggY2F1c2UgZmlsZSBub3QgdG8gY29tcGlsZSB3aXRoIFN1biBDQy4KICAgICAgIFNlZSBidWcgIzYyMDgyNy4KICAgCjIwMDItMTAtMDkgMjM6MDMgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIGFkZCAubGEgZmlsZXMKICAgCjIwMDItMTAtMDkgMjM6MDAgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIG1ha2UgdGhlIC5zcGVjIGZpbGUgYWxtb3N0IHVzYWJsZS4KICAgCjIwMDItMTAtMDggMTU6NTUgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIEZBUSB1cGRhdGVzIGZvciBkb3dubG9hZCBzaXRlcy4KICAgCjIwMDItMTAtMDggMDc6MzYgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIFBhdGNoIGZyb20gSm9zaHVhIEtlcm9lcyBmb3Igc3RyaW5nIGNvbXBhcmlzb25zCiAgIAoyMDAyLTEwLTA3IDEwOjU3ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBhZGRlZCBhIHN0YXRlbWVudCBhYm91dCB0aGUgQ09QWUlORyBmaWxlIChzdWdnZXN0ZWQgYnkgSGFycmllKQogICAKMjAwMi0xMC0wNiAxMTozMiAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBuc2ItKiBsaWtlcyBmdWxsIHBhdGhzLCB1cGRhdGUgZXhhbXBsZXM7IGZpeCBzb3VyY2Vmb3JnZSB1cGxvYWQgc2l0ZQogICAKMjAwMi0xMC0wNSAxNDo0MiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMKLCBGQVEsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC42ICkKICAgCjIwMDItMTAtMDUgMTQ6NDIgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9tdWx0aXBsZXhlci4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9zY2FsYXIuMywKICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF90YWJsZS4zLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBtYWtlIGRvY3MKICAgCjIwMDItMTAtMDUgMTQ6NDEgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjYKICAgCjIwMDItMTAtMDUgMTQ6MzggIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtaXNjIHVwZGF0ZXMKICAgCjIwMDItMTAtMDUgMTQ6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0xMC0wNSAxNDowOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdXBkYXRlIGZvciA1LjAuNgogICAKMjAwMi0xMC0wNSAxNDowOCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHJlbW92ZSBpbGxlZ2FsIGZsYWcgZnJvbSBuc2ItY29uZmlnCiAgIAoyMDAyLTEwLTA1IDEzOjQxICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZWZlbmNlIGlzIHlvdXIgZnJpZW5kOiBkb24ndCBhbGxvY2F0ZSAwIGJ5dGVzCiAgIAoyMDAyLTEwLTA1IDEyOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBlZmVuY2UgaXMgeW91ciBmcmllbmQ6IGRvbid0IHJlZmVyZW5jZSBwdHIgYWZ0ZXIgaXMgaGFzIGJlZW4gZnJlZSdkLgogICAKMjAwMi0xMC0wNCAwNzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IHNlY29uZGFyeSBlZmZlY3Qgb2YgYnVnIDYxMzk4MyBhbmQgcmVhbGx5IGZpeCBpdCB0aGlzIHRpbWUuCiAgIAoyMDAyLTEwLTAyIDEwOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvOiB0dW5uZWwuYyAoVjQtMi1wYXRjaGVzLjIpLCB0dW5uZWwuYwo6CgogICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MgdG8gZml4IHNvbWUgY29kaW5nIGVycm9ycwogICAKMjAwMi0xMC0wMSAwNzozOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgb2ZmaWNhbCBwYXRjaCA2MTcwNDk6IGluaXRpYWxpemUgY29udGFpbmVyIGxpc3QgZWFybGllciAoaW4gaW5pdF9hZ2VudCkKICAgCjIwMDItMTAtMDEgMDc6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIHJlbW92ZSBeTSBjaGFyYWN0ZXJzIChkYW1uIHdpbmRvd3MgZWRpdG9ycykKICAgCjIwMDItMDktMzAgMTU6MTcgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjUgKQogICAKMjAwMi0wOS0zMCAxNToxNiAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBhZGQgaW5mbyBvbiBtZDVzdW1zIGFuZCBncGcgc2lnbmluZwogICAKMjAwMi0wOS0zMCAxNToxNSAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBmaXggY2htb2QgdG8gZG8gd2hhdCBJIHdhbnRlZCwgbm90IHdoYXQgSSB0b2xkIGl0CiAgIAoyMDAyLTA5LTMwIDE1OjE0ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nLCBNYWtlZmlsZS50b3AsIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC41CiAgIAoyMDAyLTA5LTMwIDE0OjI3ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgbWVyZ2UgcHJlIGNoYW5nZXMgaW50byA1LjAuNCBjb21tZW50cwogICAKMjAwMi0wOS0zMCAxNDoyNSAgcnN0b3J5CgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC40CiAgIAoyMDAyLTA5LTMwIDE0OjIzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgTkVXUyB1cGRhdGVzIGZvciA1LjAuNAogICAKMjAwMi0wOS0zMCAxNDowMyAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIHVwZGF0ZSBteSBlbWFpbCBhZGRyZXNzCiAgIAoyMDAyLTA5LTMwIDE0OjAzICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciByZWxlYXNlIDUuMC40CiAgIAoyMDAyLTA5LTMwIDEzOjA4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgbWFrZSBsZW4gYSBzaXplX3QgdG8gZml4IHByb2JsZW0gb24gNjQgYml0IHN5c3RlbSwgcmVwb3J0ZWQgYnkgc2Vibm9kYCBpbiBJUkMKICAgCjIwMDItMDktMzAgMTM6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBkb24ndCB1c2Ugc3RhdGljIGxvY2FsIHZhcnMsIGFzIHRoZXkgYXJlIGxpa2VseSB0byBjYXVzZSBwcm9ibGVtcyB3aXRoIHRocmVhZHMKICAgCjIwMDItMDktMzAgMTI6NDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgbWFrZSBzdXJlIGluc3RhbGwgZGlyIGlzIHJlbGF0aXZlIHRvIGJ1aWxkIGRpcgogICAKMjAwMi0wOS0zMCAxMjoyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgYWRkIG1pc3NpbmcgbmV3bGluZSBpbiBkZWJ1ZwogICAKMjAwMi0wOS0zMCAxMjoxOSAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItZnVuY3Rpb25zLCBuc2ItcGFja2FnZToKCiAgIGZpeCB0eXBvcwogICAKMjAwMi0wOS0zMCAxMjoxOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGF2b2lkIGluZmluaXRlIGxvb3AKICAgCjIwMDItMDktMzAgMTE6NTkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBhc3N1bWUgbWFrZSBpcyBHTlUgbWFrZSwgYW5kIHNlYXJjaCBmb3IgaXQuIHJlcXVpcmUgdXNlciB0byBzZXQgYW4KICAgZW52IHZhciBpZiBubyBHTlUgbWFrZSBpcyBmb3VuZCBpbiBQQVRICiAgIAoyMDAyLTA5LTMwIDExOjU4ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIGlmIENWUyBkaXIgaXMgcm8sIGF1dG9tYWdpY2FsbHkgbWFrZSBpdCBydyBiZWZvcmUgdXBkYXRlIGFuZCBybyBhZnRlciB1cGRhdGUKICAgCjIwMDItMDktMjcgMTE6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG1ha2UgZ2V0X3NldF9jYWNoZSgpIHJldHVybiBhbiBlcnJvciBpZiBubyBwcmV2aW91cyBTRVQgaGFzIGJlZW4gc3RhcnRlZC4KICAgCjIwMDItMDktMjcgMTE6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBkb3VibGUgY2hlY2sgYWdhaW5zdCBzb21lIG51bGwgcG9pbnRlcnMgYmVmb3JlIHVzaW5nIHRoZW0gaW4gdGhlIGNhY2hlIGNvZGUuCiAgIAoyMDAyLTA5LTI3IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBzZXQgdHJlZWNhY2hlX251bSB0byAtMSBhdCBpbml0IG9mIG1lbW9yeSwgdG8gYmUgZXh0cmEgc2FmZS4KICAgCjIwMDItMDktMjYgMTE6NTggIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wZC5jOgoKICAgbW92ZSBsaWJ3cmFwIHZhcmlhYmxlcwogICAKMjAwMi0wOS0yNiAxMTo1NyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIG9rLCByZW1vdmUgdGNwd3JhcHBlcnMgdmFycwogICAKMjAwMi0wOS0yNiAxMDo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGRlZmluZSBzdHVwaWQgdmFyaWFibGVzIG5lZWRlZCBieSB0Y3B3cmFwcGVycyBiZWNhdXNlIHRoZXkgZG9uJ3QgZ2V0CiAgIGNvbmNlcHRzIG9mIGVuY2Fwc3VsYXRpb24uICBhcmcuCiAgIAoyMDAyLTA5LTI2IDA4OjI2ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgY2hhbmdlIGNhbGxfcHYgdG8gcGVybF9jYWxsX3B2IGZvciBvbGRlciB2ZXJzaW9ucyBvZiBwZXJsLgogICAKMjAwMi0wOS0yNiAwODoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHJ1biBzdHJkdXAoKSBvbiBnZXRfbWliX2RpcigpIHJlc3VsdHMgdG8gZml4IGJ1ZyBwb2ludGVkIG91dCBieSBFdWdlbmUgQnJ1ay4KICAgCjIwMDItMDktMjMgMTA6MTQgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtZW50aW9uIGZyZXNobWVhdAogICAKMjAwMi0wOS0yMyAxMDoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0CjoKCiAgIC0gaW1wbGVtZW50IGEgKGxvbmcgbmVlZGVkKSBzZXR0YWJsZSB2YXJpYWJsZSB0byBzdG9yZSB0aGUgY3VycmVudAogICAgIHBlcnNpc3RlbnQgaW5mb3JtYXRpb24uCiAgIAoyMDAyLTA5LTIzIDA5OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIG1ha2Ugbm90IGluIHRpbWUgd2luZG93IHJlcG9ydHMgdHJpZ2dlciBhIHJlc2VuZCBvZiBpbmZvcm1zLgogICAgIChzdWdnZXN0aW9uIGZyb20gRXJpayBBbmdnYXJkKQogICAKMjAwMi0wOS0yMCAwODoyOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaDoKCiAgICAgLSByZW1vdmUgZnVuY3Rpb25zIHZhY21fcGFyc2Vfc2VjdXJpdHkgYW5kIHZhY21fZnJlZV9zZWN1cml0eSB3aGljaAogICAgICAgZG9uJ3QgZXhpc3QKICAgCjIwMDItMDktMTkgMTQ6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICAtIHN1cHBvcnQgYWdlbnQgc2h1dGRvd25zICh3ZWxsLCBvayBpdCdzIGp1c3QgYW4gYXBpIHNpbmNlIGl0IGRvZXNuJ3Qgd29yaykuCiAgIC0gbWlzYyBidWcgZml4ZXMuCiAgIAoyMDAyLTA5LTE5IDEzOjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogYWdlbnQueHMsIG5ldHNubXBfcmVxdWVzdF9pbmZvUHRyLnBtOgoKICAgZml4IGFnZW50IHJlcXVlc3RfaW5mb1B0ciBwcm9ibGVtcy4KICAgCjIwMDItMDktMTkgMDk6MDQgIGR0czEyCgogICAqIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3A6CgogICBDb21waWxlIGFuZCBsaW5rIHdpdGggJ2dldG9wdC5jJyBleHBsaWNpdGx5LgogICAKICAgVGhpcyBzaG91bGQgbm90IGJlIG5lY2Vzc2FyeSwgYnV0IGZvciBzb21lIHJlYXNvbgogICAodGhhdCBjb21wbGV0ZWx5IGVzY2FwZXMgbWUhKSwgdXNpbmcgY29tbWFuZC1saW5lIG9wdGlvbnMKICAgKHN1Y2ggYXMgLUlSKSB3aXRoIHRoZSBSZWxlYXNlIHZlcnNpb24gb2Ygc25tcHRyYW5zbGF0ZQogICBjYXVzZXMgYSBydW4tdGltZSBETEwgZXJyb3IuICAoVGhlIERlYnVnIHZlcnNpb24gaXMgZmluZSkuCiAgIFRoZSBvdGhlciBhcHBsaWNhdGlvbnMgc2VlbSB0byBiZSBPSyAtIHRoaXMgcHJvYmxlbSBvbmx5CiAgIHNlZW1zIHRvIGhpdCBzbm1wdHJhbnNsYXRlLiAgU28gYXMgYSBzdGlja2luZy1wbGFzdGVyLAogICBjb21waWxpaW5nIGdldG9wdC5jIGluIGFzIHBhcnQgb2YgdGhlIHByb2plY3QsIGtlZXBzIGJvdGgKICAgdmVyc2lvbnMgb2YgdGhlIGFwcGxpY2F0aW9uIGhhcHB5LgogICAgIFNvbWVvbmUgd2l0aCBiZXR0ZXIgV2luZG93cyBrbm93bGVkZ2UgdGhhbiBtZSBuZWVkcyB0bwogICBsb29rIGF0IHRoaXMgYW5kIGZpeCBpdCBwcm9wZXJseS4KICAgCjIwMDItMDktMTkgMDM6MTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICAgIC0gdW5kbyB3b3JzdCBvZiBpbmRlbnQgZGFtYWdlCiAgIAoyMDAyLTA5LTE5IDAzOjAzICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgICAtIHJlbW92ZSBfZHBhcnNlIGZ1bmN0aW9ucyAod2hpY2ggZG9uJ3QgZXhpc3QpCiAgIAoyMDAyLTA5LTE4IDA3OjU1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICByZXNldCBTTk1QX1NMRUVQIGFmdGVyIGxvb3AKICAgCjIwMDItMDktMTggMDc6NDEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgICAtIHJlbW92ZSB2ZXJ5IG9ic29sZXRlIChhbmQgbm90IHVzZWQgYW55d2hlcmUpICNkZWZpbml0aW9ucyBvZgogICAgICAgUEFSVFlfTUlCX0JBU0UgYW5kIENPTlRFWFRfTUlCX0JBU0UKICAgCjIwMDItMDktMTcgMjM6NTkgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB0d2VhayBmb3IgNS4wLjQgbGFzdCBtaW51dGUgdXBkYXRlCiAgIAoyMDAyLTA5LTE3IDIzOjQ4ICByc3RvcnkKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgY2hnID4gdG8gLWd0IHRvIGFjaGlldmUgaW50ZW5kZWQgcmVzdWx0CiAgIAoyMDAyLTA5LTE3IDIyOjM5ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjQKICAgCjIwMDItMDktMTcgMjI6MzMgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjQgKQogICAKMjAwMi0wOS0xNyAyMjozMiAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjQKICAgCjIwMDItMDktMTcgMjE6NTkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCAkKHNyY2RpcikgdG8gYSBmZXcgZGVwZW5kZW5jaWVzIHRvIHRyeSBhbmQgcmVkdWNlIHRoZSAjIG9mIHRpbWVzIHRoYXQKICAgY29uZmlnLnN0YXR1cyBpcyBydW4gd2hlbiBidWlsZGluZyBvdXRzaWRlIHRoZSBzcmMgZGlyCiAgIAoyMDAyLTA5LTE3IDIxOjU0ICByc3RvcnkKCiAgICogUkVBRE1FLndpbjMyOgoKICAgdmlzdWFsbHkgcHJvdm9jYXRpdmUgc2VjdGlvbiBoZWFkZXJzOyBhZGQgcmVjZW50IHN0YXR1cyAoYWxsIGJhZCBuZXdzKTsKICAgbm90IHRvIHVzZSBuZXcgd2luMzJzZGsuZHN3IHRvIGdldCBhZGRpdG9uYWwgZnVuY3Rpb25hbGl0eSB3aXRoIHBsYXRmb3JtIHNkazsKICAgcmVtb3ZlIGluZm8gb24gcmVtb3ZpbmcgYWdlbnR4LCBhcyBpdCdzIGJlZW4gYXJvdW5kIG5vdyBmb3IgYSB3aGlsZTsgYWRkCiAgIHNlY3Rpb24gb24gd2hhdCBmaWxlcyB0byBlZGl0IHRvIGFkZCBtaWIyYyBnZW5lcmF0ZWQgY29kZSB0byBhZ2VudDsgcmVtb3ZlCiAgIHJlZmVyZW5jZSB0byBzcGVjaWZpYyByZWxlYXNlIG51bWJlciBpbiBleGFtcGxlCiAgIAoyMDAyLTA5LTE3IDIxOjI1ICByc3RvcnkKCiAgICogd2luMzIvc25tcGRzZGsvc25tcGQuZHNwOgoKICAgdGFrZSAnc2RrJyBvdXQgb2YgZXhlIG5hbWUKICAgCjIwMDItMDktMTcgMjE6MjUgIHJzdG9yeQoKICAgKiB3aW4zMi93aW4zMnNkay5kc3c6CgogICBzd2FwIHNubXBkc2RrIGZvciBzbm1wZAogICAKMjAwMi0wOS0xNyAyMToxNCAgcnN0b3J5CgogICAqIHdpbjMyLzogZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCiwgc25tcGQvc25tcGQuZHNwLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwKICAgc25tcGRmL3NubXBkZi5kc3AsIHNubXBnZXQvc25tcGdldC5kc3AsCiAgIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwCiwgc25tcHNldC9zbm1wc2V0LmRzcCwgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwKICAgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwgc25tcHRyYXAvc25tcHRyYXAuZHNwLAogICBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgc25tcHVzbS9zbm1wdXNtLmRzcCwKICAgc25tcHZhY20vc25tcHZhY20uZHNwLCBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBnZXQgYWxsIG91ciBkdWNrcyBpbiBhIHJvdzogYWRkIGFkdmFwaTMyLmxpYiB0byBsaW5rIGxpbmVzLCBtYWtlIHN1cmUgYWxsCiAgIFJlbGVhc2UgYW5kIERlYnVnIGxpYnMvYXBwcyBhcmUgY29tcGlsZSB3aXRoIHNhbWUgQysrIHNldHRpbmdzCiAgIAoyMDAyLTA5LTE3IDIxOjEyICByc3RvcnkKCiAgICogd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgcmVtb3ZlIHNkayBkZXBlbmRlbnQgbW9kdWxlcwogICAKMjAwMi0wOS0xNyAyMToxMCAgcnN0b3J5CgogICAqIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaDoKCiAgIGdyb3VwIG1vZHVsZXMgdGhhdCBkZXBlbmQgb24gd2luMzIgc2RrIHRvZ2V0aGVyLCB3aXRoIGlmZGVmCiAgIAoyMDAyLTA5LTE3IDIxOjA4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBubyBjYWxsYmFjayBmb3Igd2luMzIgdW50aWwgcGlwZSBmZCBwcm9ibGVtIGlzIGZpeGVkCiAgIAoyMDAyLTA5LTE3IDIxOjA3ICByc3RvcnkKCiAgICogd2luMzIvOiBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsCiAgIHNubXBkc2RrL3NubXBkLmRzcDoKCiAgIG5ldyB2ZXJzaW9ucyBmb3Igc2RrIHVzZXJzCiAgIAoyMDAyLTA5LTE3IDIxOjA1ICByc3RvcnkKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgbmV3IHdvcmtzcGFjZSBmb3Igc2RrIHVzZXJzCiAgIAoyMDAyLTA5LTE2IDEzOjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIG1pYiBtb2R1bGUgbG9hZGluZyBmaXhlcyBieSBjYWxsaW5nIGluaXRfc25tcCBmaXJzdAogICAKMjAwMi0wOS0xMyAxMjowNSAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB0d2VhayBleGFtcGxlIG5zYi1jb25maWcgY29tbWFuZDsgYWRkIC1iIGJhY2sgdG8gY3ZzMmNsLCBvdGhlcndpc2UgeW91CiAgIGdldCBjaGFuZ2Vsb2cgbXNncyBmcm9tIG90aGVyIGJyYW5jaGVzIGFuZCBoYXZlIHRvIHdlZWQgdGhlbSBvdXQKICAgCjIwMDItMDktMTMgMDk6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvT0lELzogT0lELnBtLCBPSUQueHMsIHRlc3QucGw6CgogICBmaXggaWxsZWdhbCBvaWRzIHRvIG5vdCByZXR1cm4gYSBwb2ludGVyLgogICAKMjAwMi0wOS0xMyAwNzo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgICAgLSBtaW5vciBvcHRpbWlzYXRpb247IHdlIGRvbid0IG5lZWQgYSB6ZXJvLXRlcm1pbmF0ZWQgY29tbXVuaXR5CiAgICAgICBzdHJpbmcgZXhjZXB0IGZvciBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKMjAwMi0wOS0xMyAwNzozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGRlZCAtaSBvcHRpb24gdG8gcmVxdWVzdCBpbmRlbnQgbm90IGJlIHJ1bgogICAKMjAwMi0wOS0xMyAwNzowNiAgamJwbgoKICAgKiBDT1BZSU5HOgoKICAgICAtIGFkZCBtaXNzaW5nIHZlcmIgaW4gaW50cm9kdWN0aW9uCiAgIAoyMDAyLTA5LTEyIDEyOjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHByb3RlY3QgY2FsbGluZyBzb21lIFN2SVYgZGVyZWZlcmVuY2UgZnVuY3Rpb25zIGlmIGl0J3Mgbm90IGFuIElWLgogICAgIC0gZWxpbWluYXRlcyB0aGUgcmVtYWluaW5nIHBlcmwgd2FybmluZ3MuCiAgIAoyMDAyLTA5LTEyIDExOjQ1ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBpbmNsdWRlIGxkZmxhZ3Mgd2hlcmUgYXBwcm9wcmlhdGUgKC0tbGlicywgLS1hZ2VudC1saWJzLCAuLi4pCiAgIAoyMDAyLTA5LTExIDIyOjQ4ICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1uaWdodGx5LCBuc2ItcGFja2FnZToKCiAgIGFkZC91c2UgbmV3IG9wdGlvbiB0byByZW1vdmUgYnVpbGQgZGlyIGFmdGVyIHN1Y2Nlc3NmdWwgYnVpbGQKICAgCjIwMDItMDktMTEgMjI6NDcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBwcmludCBidWlsZCBkaXIKICAgCjIwMDItMDktMTEgMjI6MTkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNjb25maWcsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBtdWNoIG1vcmUgY29tcGxleCB0ZXN0cyBvZiBVU00gdXNlciBjcmVhdGlvbi9tb2RpZmljYXRpb24uCiAgIAoyMDAyLTA5LTExIDIyOjA3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogZXZhbF90b29scy5zaCwgdGVzdHMvVDAwMXNubXB2MWdldCwKICAgdGVzdHMvVDAwMnNubXB2MWdldG5leHQsIHRlc3RzL1QwMDNzbm1wdjFnZXRmYWlsLAogICB0ZXN0cy9UMDA0c25tcHYxbm9zdWNoOgoKICAgLSBzdXBwb3J0IGZvciBtdWx0aXBsZSB0ZXN0cyBhdCBvbmNlLgogICAtIG1lcmdlIHYxIHRlc3RzIGludG8gYSBzaW5nbGUgKGZhc3RlcikgdGVzdC4KICAgCjIwMDItMDktMTEgMjE6MzQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBtb25rZXkgYXJvdW5kIHdpdGggcmV0dXJuaW5nIGVycm9yIGNvZGVzLCBqdXN0IGV4aXQ7IG1vcmUgcmVnZXhwIHR3ZWFrcwogICAKMjAwMi0wOS0xMSAxNjozNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgLSB1c2Ugc3ViLXNlY29uZCBzbGVlcHMgaWYgYXZhaWxhYmxlCiAgIC0gc2xlZXAgMSAoc3ViLSlzZWNvbmQgYXQgYSB0aW1lIHdoZW4gd2FpdGluZyBmb3IgcGFydGljdWxhciB0ZXN0cwogICAgIHJhdGhlciB0aGFuIHRoZSBmdWxsIFNOTVBfU0xFRVAgZHVyYXRpb24uCiAgIAoyMDAyLTA5LTExIDE2OjI0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgdXNlIHNubXBfbG9nIGluc3RlYWQgb2YgcHJpbnRmIGZvciBzaHV0ZG93biBtZXNzYWdlLgogICAKMjAwMi0wOS0xMSAxNTo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWlzc2luZyB2YXJpYWJsZSBkZWNsIHBvaW50ZWQgb3V0IGJ5IGlyYzpkZgogICAKMjAwMi0wOS0xMCAxMzoxNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHR3ZWFrIGVycm9yIHJlZ2V4cHMgJiBlcnJvciBtZXNzYWdlcwogICAKMjAwMi0wOS0xMCAxMjoyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGNvbXBpbGVyIHdhcm5pbmdzIGFyZSB5b3VyIGZyaWVuZCE7IGZpeCBlbWJlZGVkIGNvbW1lbnRzOyBmaXggbm9uLXZvaWQKICAgZnVuY3Rpb25zIHcvbm8gcnRuIHZhbHVlczsgY29kZSByZW9yZyB0byBmaXggZW1hY3MgaW5kZW50IGNvbXBsYWludHMKICAgCjIwMDItMDktMTAgMTI6MjYgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG5ldyBzdGFydC1mbGFnIGVuZC1mbGFnIHRhcmdldHMgdG8gaGVscCBuaWdodGx5IGJ1aWxkIHNjcmlwdCBkZXRlcm1pbmUKICAgaWYgYSBtYWtlIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkKICAgCjIwMDItMDktMTAgMTI6MTIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICB0d2Vha3MgZm9yIG5ldyBzY3JpcHQgZm9yIGF1dG9tYXRlZCBuaWdodGx5IGJ1aWxkczsgYWQgbnNiLWFib3J0LCBuc2ItZmxvdzsKICAgZGlyZWN0IHNvbWUgbWVzc2FnZXMgdG8gc3RkZXJyOyB1c2UgbmV3IHN0YXJ0LWZsYWcgZW5kLWZsYWcgbWFrZSB0YXJnZXRzOwogICB1cGRhdGUgZXJyb3IgZ3JlcCB0byBpbmNsdWRlICcqKionOyBjaGVjayBmb3IgbmV3IHZhbHVlIHRvIHJtIC1mUiBidWlsZCBkaXIKICAgCjIwMDItMDktMTAgMTI6MDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgbmV3IHNjcmlwdCBmb3IgYXV0b21hdGVkIG5pZ2h0bHkgYnVpbGRzCiAgIAoyMDAyLTA5LTEwIDEyOjA4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIGFkZCBvcHRpb24gdG8gcm0gLWZSIGJ1aWxkIGRpciBhdCBzdGFydDsgY2hlY2sgc2NyaXAgcGF0aCBmb3IgbnNiLWZ1bmN0aW9uczsKICAgcHJlZml4IGRlZmF1bHQgYnVpbGQgZGlyIHcvdmVyc2lvbjsgZXhpdCB3L3JjIGZyb20gbnNiLWJ1aWxkCiAgIAoyMDAyLTA5LTEwIDEyOjA1ICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1jb25maWcsIG5zYi1wbGF0Zm9ybToKCiAgIGFkZCBjdXJyZW50IHBhdGggdG8gc2NyaXB0IHRvIG5zYi1mdW5jdGlvbiBzZWFyY2ggcGF0aAogICAKMjAwMi0wOS0wOSAwNjoyOCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gZml4IGJ1ZyBwb2ludGVkIG91dCBieSBKYXJlZCBTbWl0aC1NaWNrZWxzb24gKGJ1ZyAjNjA1MTQ3KQogICAgICAgd2hlcmVieSBwYXNzaW5nIGFuIHVua25vd24gdHlwZSBjaGFyYWN0ZXIgdG8gc25tcF9hZGRfdmFyIHdvdWxkCiAgICAgICBjYXVzZSBhIHNlZ2ZhdWx0LgogICAKMjAwMi0wOS0wOSAwNjowOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBkb3VibGUgY2hlY2sgYSBwb2ludGVyIHZhbHVlIGJlZm9yZSB1c2luZyBpdC4KICAgCjIwMDItMDktMDkgMDY6MDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ3VycmVudCBoZWFkZXIgdXBkYXRlIHBhdGNoIGZvciBuZXRic2QgZnJvbSBQYXRyaWNrIFdlbGNoZS4KICAgCjIwMDItMDktMDYgMTU6MzAgIGRyaWVodWlzCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIE1hcmsgdGhlIG5vbi1yYXcgdmFyaWFudHMgb2Ygb2JqZWN0cyB0aGF0IGFyZSBhY2Nlc3NhYmxlIGFzIHJhdyBjb3VudGVycwogICBhcyBkZXByZWNhdGVkLCB0byAoaG9wZWZ1bGx5ISkgY3V0IGRvd24gb24gdGhlIG51bWJlciBvZiB1c2VycyB0aGF0IGdldAogICBiaXR0ZW4gYnkgaXQuLgogICAKMjAwMi0wOS0wNCAxMTozNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBhZGRlZCBCcnVjZSdzIGVtYWlsIGFkZHJlc3MKICAgCjIwMDItMDktMDQgMTE6MjcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlczoKCiAgIGZpeCBwZXJsY2xlYW4KICAgCjIwMDItMDktMDQgMTE6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBGaXggcHJvY2VzcyBncm91cGluZyBieSBjYWxsaW5nIHNldHNpZCgpIChyZXBvcnRlZCBieSBpcmM6VHJvZ0wpCiAgIAoyMDAyLTA5LTA0IDExOjA5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNoZWNrIGZvciBzZXRzaWQoKS4KICAgCjIwMDItMDktMDMgMTA6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZml4IGNhc2VzIHdoZXJlIHRoZXJlIGVpdGhlciBhcmUgbm8gdGFibGVzIG9yIG5vIHNjYWxhcnMuCiAgIAoyMDAyLTA5LTAzIDEwOjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGRvbid0IHVzZSBOVUxMIHZhcmlhYmxlcy4KICAgCjIwMDItMDktMDIgMTk6MzMgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjQucHJlMiApCiAgIAoyMDAyLTA5LTAyIDE5OjMzICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciByZWxlYXNlIDUuMC40LnByZTIKICAgCjIwMDItMDktMDIgMTk6MjIgIHJzdG9yeQoKICAgKiBtYW4vbmV0c25tcF9oYW5kbGVyLjM6CgogICB1cGRhdGVkIGRvY3MKICAgCjIwMDItMDktMDIgMTk6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMDktMDIgMTk6MTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1jb25maWc6CgogICB0cnkgYW5kIGd1ZXNzIGF0IHNyYyBkaXIgaWYgbm90IHNwZWNpZmllZAogICAKMjAwMi0wOS0wMiAxOToxNSAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBhZGQgbm90ZSBhYm91dCBlcnIgd2hlbiBidWlsZGluZyBpbiBhbmQgb3V0IG9mIHNvdXJjZSB0cmVlCiAgIAoyMDAyLTA5LTAyIDE4OjU1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBmdWxsIHBhdGggdG8gdmVyc2lvbnRhZywgaW4gY2FzZSB3ZSBhcmUgYnVpbGRpbnQgb3V0c2lkZSBvZiBzcmMgZGlyZWN0b3J5CiAgIAoyMDAyLTA5LTAyIDE4OjM3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgcmVtb3ZlIGZvcmNlZCBwcm9tcHQgb24gZXJyb3JzCiAgIAoyMDAyLTA5LTAyIDE4OjM2ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgd2FybmluZ3Mgd2hlbiBWRVJTSU9OIGlzIHJlcXVpcmVkOyBhZGQgdGFyY2xlYW4gdGFyZ2V0OyBhZGQgdGFyY2xlYW4gdG8KICAgZGlzdGNsZWFuIHRhcmdldAogICAKMjAwMi0wOS0wMiAxODozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBhZGQgbXNnIG9uIGVycm9yOyBhZGQgY2xlYW4gdGFyZ2V0CiAgIAoyMDAyLTA5LTAyIDE3OjI3ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSB3aW4zMiAmIEFnZW50WCBzdGF0dXMKICAgCjIwMDItMDktMDIgMTc6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgZml4IHRvIGF2b2lkIGxvY2tpbmcgdXAgdGhlIGFnZW50IHdoZW4gYSBzdWdhZ2VudCBkaWVzIGR1cmluZyBhIHNldCByZXF1ZXN0LiBXZQogICBtdXN0IGNsZWFuIHVwIHRoZSBkZWxlZ2F0ZWQgcmVxdWVzdHMgd2hlbiB0aGUgc2Vzc2lvbihzKSBhcmUgY2xvc2VkLCBzbyB0aGF0CiAgIHRoZXkgd2lsbCBiZSBwcm9jZXNzZWQgYW5kIHJlbW92ZWQsIGFsbG93aW5nIGZ1cnRoZXIgcmVxdWVzdHMgdG8gYmUgcHJvY2Vzc2VkLgogICAKMjAwMi0wOS0wMSAxMDo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgY2hhbmdlIHJlc3VsdCB0eXBlIGJhY2sgdG8gaW50LCBhcyBpdCBtYXkgcmVjZWl2ZSBhIG5lZ2F0aXZlIHZhbHVlCiAgIAogICBQTEVBU0UgY2hlY2sgdGhlIHVzZSBvZiBhIHZhcmlhYmxlIGJlZm9yZSBjaGFuZ2luZyBpcyBzaWduZWRuZXNzLCBlc3BlY2lhbGx5CiAgIGFyZW91bmQgcmVsZWFzZSB0aW1lIQogICAKMjAwMi0wOC0zMCAxMjoxOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmg6CgogICBpbmNsdWRlIGNoZWNrX3ZhcmJpbmQuaAogICAKMjAwMi0wOC0zMCAxMjoxOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGNoYW5nZSBOT1NVQ0hOQU1FIHRvIE5PU1VDSElOU1RBTkNFIGFnYWluLCBhcyBpdCBzZWVtcyB0aGUgYWdlbnRYIGZpeCBhbHNvCiAgIGNvcnJlY3RseSBkZWFscyB3aXRoIHRoaXMgZXJyb3IgY29kZQogICAKMjAwMi0wOC0zMCAwNjoxNCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICAtIGRlbGV0ZSBzdW5zaXRlLmNubGFiLXN3aXRjaC5jaCBtaXJyb3IsIGFzIGl0IGlzbid0IG9uZSBhbnltb3JlLgogICAKMjAwMi0wOC0yOSAxMDozMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNoZWNrIGZvciBtb2R1bGVzIGJlZm9yZSBjb25maWd1cmluZyB0aGVtCiAgIAoyMDAyLTA4LTI5IDA3OjUyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBGaXggdGhlIGxhc3QgQUVTIGJ1ZyBJIGtub3cgb2YuICBBRVMxMjggd29ya3MgZ3JlYXQuCiAgICAgSSBzdGlsbCBOZWVkIHRvIGZpeCAxOTIvMjU2IGZvciBsb25nZXIga2V5IGdlbmVyYXRpb24gZnJvbSBNRDUvU0hBCiAgIAoyMDAyLTA4LTI5IDA3OjUyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgdXNlIHRoZSByaWdodCBwZXJsIG1vZHVsZSBuYW1lIGluIHRoZSB1c2UgbGluZS4KICAgCjIwMDItMDgtMjkgMDM6NDcgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICB3aW4zMi9jb25maWcuaDoKCiAgIE1vcmUgV2luMzItcmVsYXRlZCB0aWR5aW5nIHVwLgogICBUaGUgYWdlbnQgbm93IGNvbXBpbGVzIHdpdGggcmVsYXRpdmVseSBmZXcgd2FybmluZ3MuCiAgIAoyMDAyLTA4LTI5IDAxOjUwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmgsCiAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgd2luMzIvY29uZmlnLmgsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRGVjbGFyZSBuZXcgcm91dGluZSAnbmV0c25tcF9vaWRfZXF1YWxzJywgYW5kIGFzc29ydGVkIFdpbjMyIGNsZWFudXAgZml4ZXMuCiAgIAoyMDAyLTA4LTI4IDExOjE1ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGNsYXJpZnkgY3ZzMmNsIHNjcmlwdCBuYW1lOyByZW1vdmUgLWIgZmxhZyBmcm9tIGN2czJjbCBwZXIgRGF2ZTsgYSBsaXR0bGUKICAgcmVvcmdhbml6YXRpb247IHB1dCBjb21tYW5kcyBvbiBzZXBhcmF0ZSBsaW5lcyBwcmVmaXhlZCB3aXRoICQ7IG5vdGUgNS54LzQueAogICBkaWZmZXJlbmNlcyBwZXIgRGF2ZSdzIGVtYWlsOyBwbHVnIG15IG5ldyBzY3JpcHRzIHdoZXJlIGFwcHJvcHJpYXRlCiAgIAoyMDAyLTA4LTI3IDExOjQ4ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGFkZCBVUkwgZm9yIGN2czJjbDsgdXBkYXRlIGN2czJjbCBjbWRzIHRvIGN2czJjbC5wbCwgc2luY2UgdGhhdCdzIHRoZSBmaWxlCiAgIHRoYXQncyBhY3R1YWxseSBkaXN0cmlidXRlZAogICAKMjAwMi0wOC0yNiAyMTo1OSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHVwZGF0ZSBmb3IgcmVsZWFzZSA1LjAuNC5wcmUxCiAgIAoyMDAyLTA4LTI2IDIxOjI1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgRkFRLCBSRUFETUUsCiAgIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjQucHJlMSApCiAgIAoyMDAyLTA4LTI2IDIxOjI0ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciByZWxlYXNlIDUuMC40LnByZTEKICAgCjIwMDItMDgtMjYgMjE6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMDgtMjYgMjE6MTcgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMywKICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgdXBkYXRlIG1hbiBwYWdlcyBmb3IgNS4wLjQucHJlMQogICAKMjAwMi0wOC0yNiAyMToxMCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWNvbmZpZzoKCiAgIG5ldyBmaWxlIHRvIGNvbmZpZ3VyZSB1c2luZyBzYW1lIG9wdGlvbnMgYXMgbnNiLXBhY2thZ2UgZm9yIHRlc3Qgb3IgZGlzdAogICAKMjAwMi0wOC0yNiAyMTowOSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBkb24ndCBhcHBlbmQgc3lzLW5hbWUgd2hlbiBidWlsZGluZyBpbiBzcmMgdHJlZQogICAKMjAwMi0wOC0yNiAyMTowOSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCB0eXBvCiAgIAoyMDAyLTA4LTI2IDIxOjA2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgcmVuYW1lIG5zYi1nZXQtY29uZmcgLT4gbnNiLWNvbmZpZy1kaXN0OyB1c2UgZG91YmxlIHF1b3RlcyBjdXogb2Ygc29tZQogICB3aWVyZCBzaGVsbCB0aGluZyBJIGRvbid0IHlldCB1bmRlcnN0YW5kOyBjaGVjayBmb3Igc3JjIGRpciBpbiBjb25maWcqCiAgIAoyMDAyLTA4LTI2IDIwOjM0ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICB0d2VhayBjb21tZW50Y2hlY2sgdGFyZ2V0IHRvIHdvcmsgb3V0c2lkZSB0aGUgc291cmNlIHRyZWUKICAgCjIwMDItMDgtMjYgMjA6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi93aW5zZXJ2aWNlLmMKOgoKICAgcmVtb3ZlIEMrKyBzdHlsZSBjb21tZW50cyAoYW5kIGFueXRoaW5nIHRoYXQgZXZlbiByZW1vdGVseSByZXNlbWJsZXMgb25lKQogICAKMjAwMi0wOC0yNiAxNDo0NyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHBhc3MgbWFrZSBwYXJhbXMgdG8gbWFrZSwgc28gd2UgZG9uJ3QgdHJ5IHRvIGluc3RhbGwgaW4gL3Vzci9sb2NhbC9iaW4gb2YKICAgdGhlIGNvbXBpbGUgc2VydmVycy4uLjotLwogICAKMjAwMi0wOC0yNiAxNDozOSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG1ha2UgZGlzdCAmIGV4dHJhIHRyYW5zcG9ydHM7IG5vIGlwdjYgb24gRGFyd2luOyBtYWtlIHRvdWNoaXQgYmVmb3JlIG1ha2UKICAgCjIwMDItMDgtMjYgMTQ6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmM6CgogICByZXBsYWNlIHVfaW50MzJfdCwgd2hpY2ggZG9lc24ndCBjb21waWxlIG9uIFN1biA1LjgsIHdpdGggdV9pbnQKICAgCjIwMDItMDgtMjYgMTM6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYzoKCiAgIGZpeCB1bmRlY2xhcmVkIHZhcmlhYmxlIGVycm9yIHNwb3R0ZWQgb24gU3VuLCB3aGljaCBsaW51eCBtaXNzZWQgY29tcGxldGVseS4KICAgSSBoYXZlIG5vIGlkZWEgaG93IHRoaXMgY29tcGlsZWQgYmVmb3JlISEKICAgCjIwMDItMDgtMjYgMTM6NDMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjbGVhbmVyIHdheSB0byBhZGQgc3lzdGVtIHNwZWNpZmljIG1vZHVsZXM7IGRpc2FibGUgcGVybCwgYXMgaXQgYnJlYWtzCiAgIGJ1aWxkcyBvdXRzaWRlIG9mIHRoZSBzb3VyY2UgdHJlZQogICAKMjAwMi0wOC0yNiAxMjo0NSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG9ubHkgY29uZmlndXJlIElQWCBvbiBMaW51eAogICAKMjAwMi0wOC0yNiAxMjo0NCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG9ubHkgY29uZmlndXJlIElQWCBvbiBMaW51eDsgYmFpbCBvbiBjb25maWd1cmUgZXJyb3JzCiAgIAoyMDAyLTA4LTI2IDEyOjA0ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGFkZCBzdWdnZXN0aW9uIHRvIHN5bWxpbmsgbnNiLSogaW4gbG9jYWwgYmluIGRpcgogICAKMjAwMi0wOC0yNiAxMjowMyAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItcGFja2FnZSwgbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCBvcHRpb24gZm9yIHByZS1yZWxlYXNlIHRlc3QgY29uZmlndXJlIG9wdGlvbnMKICAgCjIwMDItMDgtMjYgMTI6MDIgIHJzdG9yeQoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgbWFrZSBzZWN0aW9uIGhlYWRlcnMgc3RhbmQgb3V0IG1vcmU7IG1vdmUgbm90ZSBhYm91dCBlbmNyeXB0aW9uIG5vdCBiZWluZwogICBlbmFibGVkIHRvIGEgbW9yZSBwcm9taW5lbnQgcGxhY2UuCiAgIAoyMDAyLTA4LTIyIDA1OjMxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjcuaDoKCiAgICAgLSBET05UX1VTRV9OTElTVCByZWluc3RhdGVkLCBzbyBOT19LTUVNX1VTQUdFIHJlZHVuZGFudAogICAKMjAwMi0wOC0yMiAwNToyOSAgamJwbgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgICAtIHJlaW5zdGF0ZSB0ZXN0IGZvciBET05UX1VTRV9OTElTVAogICAKMjAwMi0wOC0yMiAwNDoxMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIHN0b3AgYW5kIHJlc3RhcnQgbG9nZ2luZyB3aGVuIEhVUHBlZC4gIFRoaXMgYWxsb3dzIGxvZ2ZpbGVzIHRvIGJlCiAgICAgICByb3RhdGVkIGFuZCBzbyBmb3J0aC4KICAgCjIwMDItMDgtMjIgMDE6MzEgIGR0czEyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICBBZGQgdGhlIG1pc3NpbmcgJy14L1gnIG9wdGlvbnMgdG8gdGhlIGV4YW1wbGUgYXV0aFByaXYgY29tbWFuZCBsaW5lCiAgICAgKHJlcG9ydGVkIGJ5IFByYXNhZGEgUiBWYW5rYXlhbGFwYXRpKQogICAKMjAwMi0wOC0yMCAwODowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgRkFROgoKICAgcXVpZXQgc25tcHRyYXBkIHdoZW4gaXQgY2FuJ3QgY29ubmVjdCB0byB0aGUgYWdlbnR4IG1hc3Rlci4KICAgCjIwMDItMDgtMjAgMDU6NTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNy5oOgoKICAgICAtIGFkZCAjZGVmaW5lIE5PX0tNRU1fVVNBR0UgMSBzaW5jZSBuZXQtc25tcC1jb25maWcuaC5pbiBubyBsb25nZXIKICAgICAgIHBheXMgYXR0ZW50aW9uIHRvIHRoZSBET05UX1VTRV9OTElTVCB0b2tlbi4gIE9taXNzaW9uIG9mIHRoaXMKICAgICAgIGNhdXNlcyB0aGUgYWdlbnQgdG8gZXhpdCB3aXRoIHRoZSBtZXNzYWdlICJpbml0X2ttZW06IGt2bV9vcGVuCiAgICAgICBmYWlsZWQ6IGVycm9yIDAiLgogICAKICAgICAgIE5PVEU6IHRoaXMgbWF5IG5lZWQgYXBwbHlpbmcgdG8gb3RoZXIgbWVtYmVycyBvZiB0aGUgU29sYXJpcyAyCiAgICAgICBmYW1pbHksIGJ1dCBJIGRvbid0IGhhdmUgbWFjaGluZXMgdG8gaGFuZCB0byB0ZXN0IHRoaXMuCiAgIAoyMDAyLTA4LTIwIDA1OjQ4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgICAgLSBkZXRlY3QgZ2lnYWJpdCBldGhlcm5ldCBkZXZpY2VzIChnZU4pCiAgICAgLSB1bmRvIGluZGVudCBtYXloZW0KICAgCjIwMDItMDgtMjAgMDI6NTcgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaDoKCiAgICAgLSBmb3Igbm93LCBkb24ndCAjaW5jbHVkZSBzbm1wX2xvY2tpbmcuaCBzaW5jZSBpdCBicmVha3MgcmUtZW50cmFudAogICAgICAgc3VwcG9ydCAoYmVjYXVzZSBtdXRleF90eXBlIGdldHMgbXVsdGlwbHktZGVmaW5lZCkuICBGdXJ0aGVybW9yZSwgdGhlCiAgICAgICBmdW5jdGlvbnMgaXQgZGVjbGFyZXMgYXJlIG5ldmVyIHVzZWQgYW55d2hlcmUsIG5vciBkZWZpbmVkIGFueXdoZXJlLgogICAKMjAwMi0wOC0yMCAwMjo1NiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oOgoKICAgICAtIGRvbid0IGRlZmluZSAiZG8gbm90aGluZyIgbWFjcm9zIGZvciBzbm1wX3Jlc19sb2NrIGV0IGFsLiBmdW5jdGlvbnMKICAgICAgIG9uIFdpbjMyIHBsYXRmb3JtIChzaW5jZSByZWFsICJkbyBub3RoaW5nIiBmdW5jdGlvbnMgYXJlIHJlcXVpcmVkIGZvcgogICAgICAgcmVhc29ucyBiZXN0IGtub3duIHRvIHNvbWVvbmUgZWxzZSkuCiAgICAgLSB1bm1hbmdsaW5nCiAgIAoyMDAyLTA4LTIwIDAyOjU0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvY2tpbmcuaDoKCiAgICAgLSBmaXggaGlnaGx5IGJvZ3VzIG5vbi1DIHN5bnRheAogICAKMjAwMi0wOC0yMCAwMjo1MyAgamJwbgoKICAgKiBzbm1wbGliL210X3N1cHBvcnQuYzoKCiAgICAgLSBzbm1wX3Jlc19sb2NrIGV0IGFsLiBmdW5jdGlvbnMgbm8gbG9uZ2VyICNkZWZpbmVkIHRvICJkbyBub3RoaW5nIgogICAgICAgdGFyZ2V0cyBmb3IgV2luMzIgaW4gbXRfc3VwcG9ydC5oLCB0aGVyZWZvcmUgbm8gbmVlZCB0byAjdW5kZWYgdGhlbQogICAgICAgaGVyZS4KICAgICAtIHVubWFuZ2xpbmcKICAgCjIwMDItMDgtMTkgMjI6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIGhlYWRlcnMgZm9yIGNhY2hlIGVuYWJsaW5nIGZ1bmN0aW9ucy4KICAgCjIwMDItMDgtMTkgMjI6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGRvbid0IHVzZSBub24tZXhpc3RlbnQgbWVtb3J5IHBvaW50ZXJzIHRvIHRoZSByZXNwb25zZSBkYXRhIChlZzogInRpbWVvdXQiKQogICAKMjAwMi0wOC0xOSAxNDo0NiAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIENoYW5nZSBhIGZldyBjb25kaXRpb25hbHMgdG8gdXNlICNpZiBpbiBwbGFjZSBvZiAjaWZkZWYKICAgCjIwMDItMDgtMTkgMTQ6MjggIG5iYQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICBBbGlnbiB3aXRoIDQuMiBicmFuY2gKICAgCjIwMDItMDgtMTkgMTQ6MjYgIG5iYQoKICAgKiBtaWJzLzogRElTTUFOLVNDSEVEVUxFLU1JQi50eHQsCiAgIElBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0LCBJQU5BaWZUeXBlLU1JQi50eHQKLCBJTkVULUFERFJFU1MtTUlCLnR4dCwgTWFrZWZpbGUubWliLCBpYW5hbGlzdAosIG1pYmZldGNoLCByZmNsaXN0OgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgTUlCcwogICAKMjAwMi0wOC0xOSAxNDoyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgQmFpbCBvdXQgZm9yIGJhZCBzbm1wQWRtaW5TdHJpbmcgdmFsdWUKICAgCjIwMDItMDgtMTkgMDc6NDMgIGpicG4KCiAgICogRkFRIChWNC0yLXBhdGNoZXMuMyksIEZBUToKCiAgICAgLSBkb24ndCB1c2UgcG9zaXRpb25hbCBjb21tdW5pdHkgcGFyYW1ldGVyIGluIGV4YW1wbGVzCiAgICAgLSBicmVhayBhIGNvdXBsZSBvZiBvdmVyLWxvbmcgbGluZXMKICAgICAtIG1lbnRpb24gbmV0c25tcF8gdmFyaWFudCBvZiBkc19zZXRfIGZ1bmN0aW9uCiAgIAoyMDAyLTA4LTE5IDAyOjQ0ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy4yKSwgRkFROgoKICAgQWRkIGFuIGVudHJ5IGFib3V0IHRoZSBzbm1wdHJhcGQvQWdlbnRYIHdhcm5pbmcgbWVzc2FnZS4KICAgCjIwMDItMDgtMTggMTg6MjQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBjb25maWd1cmUgd2l0aCBidWlsZCBpbnN0YWxsIGRpciwgaXQgaXMgYWxyZWFkeSBzcGVjaWZpZWQgb24gY21kIGxpbmUKICAgZm9yIG1ha2UgaW5zdGFsbAogICAKMjAwMi0wOC0xOCAxMDo1OSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIG1vcmUgZGVidWdnaW5nIC0gbG9nIHZhbHVlIHJlcXVlc3QgaXMgdHJ5aW5nIHRvIHNldAogICAKMjAwMi0wOC0xNiAxNToxMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkZWQgQnJ1Y2UgU2hhdyB0byB0aGUgdGhhbmtzIGxpc3QKICAgCjIwMDItMDgtMTYgMTU6MTIgIGhhcmRha2VyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgQSBncmVhdCB1cGRhdGUgdGFsa2luZyBhYm91dCBwZXJsIGFuZCBzb2xhcmlzIGZyb20gQnJ1Y2UgU2hhdwogICAKMjAwMi0wOC0xNiAwMTo1MSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgQ2F0Y2ggZXhwbGljaXRseSAnbm9TdWNoSW5zdGFuY2UnIGV4Y2VwdGlvbnMsIHdoZW4gd2Fsa2luZyBhbgogICBpdGVyYXRvci1oYW5kbGVkIG1vZHVsZSwgc28gdGhhdCBob2xlcyBjYW4gYmUgc2tpcHBlZCBhbmQgdGhlCiAgIG5leHQgcmVhbCBpbnN0YW5jZSByZXRyaWV2ZWQuICAoVGhpcyB3YXMgYWxyZWFkeSBoYW5kbGVkIGZvcgogICBtb2R1bGVzIHRoYXQgZGlkbid0IG1hcmsgbWlzc2luZyBpbnN0YW5jZXMgZXhwbGljaXRseSkuCiAgIAoyMDAyLTA4LTE2IDAwOjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB0dXJuIG9mZiBjYWNoaW5nIGJ5IGRlZmF1bHQsIHNpbmNlIHRoZSBhZ2VudHggY29kZSBhcHBlYXJzIGJyb2tlbi4KICAgCjIwMDItMDgtMTYgMDA6MDMgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgc25tcF9hZ2VudC5jOgoKICAgc3BlZWQgZW5oYW5jZW1lbnRzIHZpYSBpbXBsZW1lbnRpbmcgYSByZWdpc3RyYXRpb24gc3VidHJlZSBsb29rdXAKICAgY2FjaGUuICBncmVhdGx5IHNwZWVkcyB0aGluZ3MgdXAgd2hlbiBzaW1pbGFyIHJlcXVlc3RzIGNvbWUgaW4KICAgKHNubXB3YWxrLCAuLi4pLgogICAKMjAwMi0wOC0xNSAxMDozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgcHJvdGVjdCBhZ2FpbnN0IE5VTEwgbGFiZWxzIGluIHN1YnRyZWVzCiAgIAoyMDAyLTA4LTE1IDA4OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3NubXB1c20uYzoKCiAgIHVzZSBuZXRzbm1wX29pZF9lcXVhbHMgKHdoaWNoIGlzIHNvbWV0aW1lcyBmYXN0ZXIgdGhhbgogICBzbm1wX29pZF9jb21wYXJlKSBpbiBhIGZldyBwbGFjZXMgdG8gYWNoaWV2ZSBiYXJlbHkgbm90aWNlYWJsZSBzcGVlZCBnYWlucy4KICAgCjIwMDItMDgtMTUgMDg6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGRvdWJsZSBjaGVjayBhIHBvaW50ZXIgZXhpc3RzIGJlZm9yZSBwYXNzaW5nIGl0IHRvIHN0cmNtcCgpCiAgIAoyMDAyLTA4LTE1IDA4OjA1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBjaGFuZ2UgTUFOM1BPRFMgdG8gc29tZXRoaW5nIGNvbXBsaWFudCB3aXRoIHRoZSBwZXJsIG1hbnVhbHMuICBJIHRoaW5rLgogICAKMjAwMi0wOC0xNCAxMDo0MiAgcnN0b3J5CgogICAqIGFwcHMvc25tcHNldC5jOgoKICAgYWRkIGRlYnVnIGZvciBsb2NhbCBwYXJzaW5nIG9mIGFyZ3MKICAgCjIwMDItMDgtMTQgMDk6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgbWFzdGVyX2FkbWluLmMsCiAgIHN1YmFnZW50LmM6CgogICBhZGQgbW9yZSBkZXRhaWxlZCBpbiBkZWJ1ZyBtZXNzYWdlczsgYWRkIGEgZmV3IG5ldyBkZWJ1Z3MKICAgCjIwMDItMDgtMTQgMDk6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB3aGVuIGFsbCBkZWxlZ2F0ZWQgcmVxdWVzdHMgaGF2ZSBmaW5pc2hlZCwgY2hlY2sgYWxsIHJlcXVlc3RzIHN0YXR1cyBzbyB0aGF0CiAgIGFzcCBzdGF0dXMgaXMgc2V0LCB3aGljaCBpcyBuZWNlc3NhcnkgZm9yIGNvcnJlY3QgYWdlbnR4IHNldCBwcm9jZXNzaW5nLgogICAobm93IGlmIEkgY2FuIGp1c3QgZ2V0IGFsbCB0aGlzIGhhaXIgb2ZmIHRoZSBmbG9vciwgYW5kIGdsdWUgaXQgYmFjayB0byBteQogICBoZWFkLCBhbmQgdGhlbiBmaXggdGhhdCBkZW50IGluIHRoZSB3YWxsIHdoZXJlIEkndmUgYmVlbiBiYW5naW5nIG15IGhlYWQuLi4uKQogICAKMjAwMi0wOC0xMyAxNDoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4IGEgbGVuZ3RoIGNvbXBhcmlzb24gcHJvYmxlbSB3aXRoIG5ldHNubXBfb2lkX2lzX3N1YnRyZWUoKQogICAKMjAwMi0wOC0xMyAxNDoyNCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGRvY3VtZW50IGEgZmV3IHJlY2VudCBjaGFuZ2VzLgogICAKMjAwMi0wOC0xMyAxNDowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgRml4IG9wZW4gZmlsZSBydW5hd2F5IG9uIHNvbGFyaXMuICBTZWUgYnVnICM1OTI4MDYgcmVwb3J0ZWQgYnkgSmFtZXMgSXJ3aW4uCiAgIAoyMDAyLTA4LTEzIDEyOjA1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgYXJyYXkgb2YgcG9pbnRlcnMgPSBwb2ludGVyIHRvIGEgcG9pbnRlcgogICAKMjAwMi0wOC0wOSAxNjozMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvRkFRMkhUTUw6CgogICBtaXNjIGRvYyBmaXhlcy4KICAgCjIwMDItMDgtMDkgMTY6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLCBzbm1wbGliL3NubXB1c20uYwosIHNubXBsaWIvc25tcHYzLmM6CgogICBpbml0aWFsIEFFUyBzdXBwb3J0LgogICAKMjAwMi0wOC0wOSAxNjozMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBzbGlnaHQgc3BlZWQgdXBzIGZvciBzbm1wX29pZF9jb21wYXJlKCkgdG8gZG8gc2luZ2xlIGludCBjb21wYXJlcyB0aWxsICE9CiAgIAoyMDAyLTA4LTA5IDE2OjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAtIG9wZW5zc2wgMC45Ljcgc3VwcG9ydCBmb3IgREVTIGNoYW5nZXMuCiAgIC0gaW5pdGlhbCBBRVMgc3VwcG9ydC4KICAgCjIwMDItMDgtMDkgMTY6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIGluZGVudCBmaXhlcy4KICAgCjIwMDItMDgtMDkgMTY6MjcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHNjYXBpLmgsIHNubXB1c20uaDoKCiAgIGRlZmluZSBBRVMga2V5IHNwZWNpZmljcwogICAKMjAwMi0wOC0wOSAxNjoyNiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICAtIGNoZWNrIGZvciBvcGVuc3NsIC4wLjkuNyBERVMgc3RydWN0dXJlcyBhbmQgZnVuY3Rpb25zLgogICAtIGNoZWNrIGZvciBBRVMgc3VwcG9ydCBpbiBvcGVuc3NsICg+IDAuOS43KQogICAKMjAwMi0wOC0wOSAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBmaXggbW9kZSBwcm9jZXNzaW5nIGZvciBSRVNFUlZFMS9SRVNFUlZFMiB0ZXN0IGZhaWx1cmVzCiAgIAoyMDAyLTA4LTA5IDE1OjI5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbG9nIG1zZyB3aGVuIHdlIGlnbm9yZS9maXggaWxsZWdhbCBlcnJvcl92YWx1ZXMgZm9yIHRoZSBjbGllbnQgQVBJcwogICAKMjAwMi0wOC0wOSAxNToyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGNvcnJlY3Rpb25zIHRvIGV4YW1wbGUgY29kZQogICAKMjAwMi0wOC0wOSAxNToyNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIHJldmVydCBlcnJvcnMgdG8gdW5pbmZvcm1hdGl2ZSBTTk1QdjEgbm9TdWNoTmFtZSBmb3IgQWdlbnRYIGdldC1uZXh0L2luY2x1c2l2ZQogICBwcm9jZXNzaW5nOyBhbHNvIGFkZCBtb3JlIGNvbW1lbnRzIGhlcmUgYW5kIHRoZXJlCiAgIAoyMDAyLTA4LTA5IDE0OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgZGVidWcgbXNnIGZvciBhZ2VudHggb2lkIGZvciBjYXNlcyBvdGhlciB0aGFuIGdldC9nZXRuZXh0CiAgIAoyMDAyLTA4LTA5IDA4OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgZG9uJ3QgZnJlZSByZWdpc3RyYXRpb24gaW5mbyBvbiBmYWlsdXJlLCBhcyBuZXRzbm1wX3JlZ2lzdGVyX21pYiBhbHJlYWR5IGRpZCBpdAogICAKMjAwMi0wOC0wOSAwNjo1NyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYywgc25tcENhbGxiYWNrRG9tYWluLmMsCiAgIHNubXBJUFhEb21haW4uYywgc25tcFRDUERvbWFpbi5jLCBzbm1wVENQSVB2NkRvbWFpbi5jCiwgc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jLAogICBzbm1wVW5peERvbWFpbi5jLCBzbm1wX3RyYW5zcG9ydC5jOgoKICAgICAtIHJlbmFtZSBzbm1wXzxkb21haW4+X2JsYWggZnVuY3Rpb25zIHRvIG5ldHNubXBfPGRvbWFpbj5fYmxhaAogICAgIC0gbWFrZSB0cmFuc3BvcnQgbWVtYmVyIGZ1bmN0aW9ucyBzdGF0aWMsIHRvIGVtcGhhc2lzZSB0aGF0IHRoZXkgc2hvdWxkCiAgICAgICBub3QgYmUgdXNlZCBkaXJlY3RseQogICAgIC0gaGFuZGxlIEVJTlRSIGluIHNlbmQgYW5kIHJlY3YgZnVuY3Rpb25zIChhcyBwb2ludGVkIG91dCBieSBBbnR0aSBLdW50c2kKICAgICAgIGluIGJ1ZyByZXBvcnQgIzU3NjgwNikKICAgICAtIGZvcm1hdHRpbmcgZml4ZXMKICAgCjIwMDItMDgtMDkgMDY6NTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc25tcEFBTDVQVkNEb21haW4uaCwKICAgc25tcElQWERvbWFpbi5oLCBzbm1wVENQRG9tYWluLmgsIHNubXBUQ1BJUHY2RG9tYWluLmgKLCBzbm1wVURQRG9tYWluLmg6CgogICAgIC0gbWlub3IgZm9ybWF0dGluZyBmaXhlcwogICAKMjAwMi0wOC0wOSAwNjo1NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaDoKCiAgICAgLSBkb24ndCBleHBvcnQgbmV0c25tcF91bml4X2JsYWgoKSBmdW5jdGlvbnMKICAgCjIwMDItMDgtMDkgMDY6NTMgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gZml4IG5hc3R5IGZvcm1hdHRpbmcKICAgCjIwMDItMDgtMDggMDk6MTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgcmV3b3JkIGNvbmZpZ19wZXJyb3IgbXNncyB0byByZW1vdmUgIkVycm9yIiwgYXMgaXQgaXMgcmVkdW5kYW50CiAgIAoyMDAyLTA4LTA4IDA5OjExICByc3RvcnkKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgcmVtb3ZlIGlmZGVmIHRvIGxvZyBtc2cgdG8gdXNlciwgYWZ0ZXIgbWFraW5nIG1zZyBtb3JlIGluZm9ybWF0aXZlOyByZW1vdmUKICAgYW5ub3lpbmcgYmxhbmsgbGluZXMKICAgCjIwMDItMDgtMDggMDg6MzMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgdG8gY29tcGxldGVseSBkaXNhYmxlIGttZW0gdXNhZ2UKICAgCjIwMDItMDgtMDYgMDA6MzAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gc2V0IG1haW5fc2Vzc2lvbiB0byBOVUxMIGluIHN1YmFnZW50X3NodXRkb3duKCkuICBUaGlzIChhbG9uZyB3aXRoIHRoZQogICAgICAgZGVyZWdpc3RyYXRpb24gb2YgYWxsIGFsYXJtcykgYWxsb3dzIEFnZW50WCBmdW5jdGlvbmFsaXR5IHRvIGJlCiAgICAgICBzdG9wcGVkIGFuZCByZXN0YXJ0ZWQgaW4gc3ViYWdlbnRzLgogICAgIC0gVGhhbmtzIHRvIFZpc2hhbCBWZXJtYSBmb3Igb3JpZ2luYWwgcGF0Y2gKICAgCjIwMDItMDgtMDYgMDA6MjcgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaDoKCiAgICAgLSBhZGQgc25tcF9hbGFybV91bnJlZ2lzdGVyX2FsbCgpIGZ1bmN0aW9uCiAgIAoyMDAyLTA4LTA2IDAwOjI2ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2FsYXJtLmMsIHNubXBfYXBpLmM6CgogICAgIC0gYWRkIHNubXBfYWxhcm1fdW5yZWdpc3Rlcl9hbGwoKSBmdW5jdGlvbgogICAgIC0gY2FsbCBpdCBmcm9tIHNubXBfc2h1dGRvd24oKQogICAgIC0gdGhhbmtzIHRvIFZpc2hhbCBWZXJtYSBmb3Igb3JpZ2luYWwgcGF0Y2gKICAgCjIwMDItMDgtMDUgMDc6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtYXRjaCBmdW5jdGlvbiBkZWZpbml0aW9uIHcvTmV0c25tcF8qX0RhdGFQb2ludCB0eXBlZGVmczsgYWRkIGN2cyBJZAogICAKMjAwMi0wOC0wMyAwODo1MiAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBicmVhayB1cCBsaW5lcyBsb25nIHRoYW4gODAgY2hhcnM7IGFiY2RlLCBub3QgYWJjZGQKICAgCjIwMDItMDgtMDMgMDA6MjEgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtb3JlIHVwZGF0ZXMgYWJvdXQgdGhpbmdzIFdlcyBkb2VzIGF0IDEyOjMwIGFtCiAgIAoyMDAyLTA4LTAyIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjMgKQogICAKMjAwMi0wOC0wMiAyMzo0NCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgVXBkYXRlIGZvciA1LjAuMwogICAKMjAwMi0wOC0wMiAyMzo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvLmN2c2lnbm9yZToKCiAgIGFkZCAubGlicwogICAKMjAwMi0wOC0wMiAyMzo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi8uY3ZzaWdub3JlOgoKICAgaWdub3JlIGZpbGUKICAgCjIwMDItMDgtMDIgMjM6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0wOC0wMiAyMzozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZvcmdvdHRlbiB0byBjaGVjayBpbiB0ZXN0IGZvciBwZXJsX2V2IGNoYW5nZXMKICAgCjIwMDItMDgtMDIgMjM6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgcmVtb3ZlIGRlYnVnZ2luZyBwcmludCAob3BwcykKICAgCjIwMDItMDgtMDIgMjM6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBmaXggZGVmYXVsdCB2ZXJzaW9uIHVzYWdlLgogICAKMjAwMi0wOC0wMiAyMzozNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgUGF0Y2ggIzU3MjM5NCBmcm9tIEthdHN1aGlzYSBBQkU6CiAgICAgLSBzdXBwb3J0IGxpbmsgbG9jYWwgYWRkcmVzc2VzCiAgICAgLSBiaW5kIHRvIGlwdjYgb25seSBpZiBJUFY2X1Y2T05MWSBpcyBkZWZpbmVkLgogICAKMjAwMi0wOC0wMiAyMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIGZpeCBjb25maWd1cmUgc3BlY2lmaWVkIGRlZmF1bHQgdmVyc2lvbmluZwogICAKMjAwMi0wOC0wMiAyMjo1OCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBQYXRjaCAjNTcyMzk0OiBhZGQgaXB2NiB0cmFuc3BvcnRzIHdoZW4gLS1lbmFibGUtaXB2NiBkZWZpbmVkLiAgVGhhbmtzIHRvIEthdHN1aGlzYSBBQkUuCiAgIAoyMDAyLTA4LTAyIDE0OjU5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuMwogICAKMjAwMi0wOC0wMiAxNDo1NSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjMuZGVmOgoKICAgdXBkYXRlCiAgIAoyMDAyLTA4LTAyIDE0OjM5ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbW9yZSBkb2NzLgogICAKMjAwMi0wOC0wMiAxNDoyOSAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX211bHRpcGxleGVyLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3dhdGNoZXIuMywgTWFrZWZpbGUuaW46CgogICBkb3h5Z2VuIHVwZGF0ZS4KICAgCjIwMDItMDgtMDIgMTQ6MjYgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB1cGRhdGUgZm9yIHlldCBtb3JlIHN0dWZmLgogICAKMjAwMi0wOC0wMiAxNDoyNiAgaGFyZGFrZXIKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgcmVtb3ZlIGEgZmV3IG1vcmUgZGlzdCByZWxhdGVkIGZpbGVzLgogICAKMjAwMi0wOC0wMiAxNDoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZXJyb3IgbWVzc2FnZSBjaGFuZ2UgdG8gcmVtb3ZlIERFUyBzcGVjaWZpYyBlcnJvciBtc2cuCiAgIAoyMDAyLTA4LTAyIDE0OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L3R5cGVtYXA6CgogICBzcGFjaW5nIGZpeGVzLgogICAKMjAwMi0wOC0wMiAxNDoyMiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IE1ha2VmaWxlLlBMLCBhZ2VudC54czoKCiAgIHJlbmFtZWQgZmlsZS4KICAgCjIwMDItMDgtMDIgMTQ6MjIgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvOiBuZXRzbm1wX3JlcXVlc3RfaW5mby5wbSwKICAgbmV0c25tcF9yZXF1ZXN0X2luZm9QdHIucG06CgogICByZW5hbWVkIGZpbGUKICAgCjIwMDItMDgtMDIgMTQ6MjAgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgQWRkIGEgImV2YWx2YXJzIiBkaXJlY3RpdmUgdG8gZG8gc2ltcGx5IHJlcGxhY2VtZW50cy4KICAgCjIwMDItMDgtMDIgMTQ6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICB1c2UgQ1ZTVVNFUiB2YXJpYWJsZSB3aGVuIGRvaW5nIHN0dWZmIGluc3RlYWQgb2YgbXkgaGFyZC1jb2RlZCBuYW1lLgogICAKMjAwMi0wOC0wMiAxNDoxNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdXBkYXRlIGxpYnRvb2wgdmVyc2lvbiBmb3IgNS4wLjMKICAgCjIwMDItMDgtMDIgMTQ6MTMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgY2hhbmdlIGNoZWNrY29tbWVudCB0YWcgdG8gZXhjbHVkZSB3aW4zMiBmaWxlcy4KICAgCjIwMDItMDgtMDIgMTQ6MTMgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBjaGFuZ2Vsb2cgYnVpbGQgbm90ZXMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZmlsZS4KICAgCjIwMDItMDgtMDIgMTQ6MDEgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBjcmVhdGVkIGEgaG93LXRvIGZpbGUgZm9yIG1ha2luZyByZWxlYXNlcwogICAKMjAwMi0wOC0wMiAxNDowMSAgaGFyZGFrZXIKCiAgICogZGlzdC9jaGFuZ2Vsb2dmaXg6CgogICBjaGFuZ2Vsb2cgZml4LXVwIHNjcmlwdAogICAKMjAwMi0wOC0wMiAxMDoyMSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHRyYW5zbGF0ZSAnLycgaW4gc3lzdGVtIG5hbWUgdG8gJ18nIChmb3IgY3lnd2luKQogICAKMjAwMi0wOC0wMiAwOTo1NiAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBmaXggc2VjdGlvbiBjdnMgZ2V0IGNvbW1hbmQgZXhhbXBsZQogICAKMjAwMi0wOC0wMiAwOTowNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oOgoKICAgU3VwcHJlc3MgJ2lubGluZScgd2hlbiBub3QgdXNpbmcgR0NDLiBTdWdnZXN0ZWQgYnkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyCiAgIAoyMDAyLTA4LTAyIDA4OjU5ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGZpeCBzZWN0aW9uIG9uIHNraXBwaW5nIG1ha2UgdGVzdDsgYWRkIC1wIGZsYWcgdG8gZXhhbXBsZXMKICAgCjIwMDItMDgtMDIgMDg6NTIgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgZGVzY3JpYmUgdXNlIG9mIG5zYi1wYWNrYWdlIHNjcmlwdC4gVGVzdGVycyBhbmQgY29tbWVudHMgYXBwcmVjaWF0ZWQuLi4KICAgCjIwMDItMDgtMDIgMDg6MzMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wbGF0Zm9ybToKCiAgIG91dHB1dCBwbGF0Zm9ybSBpbmZvCiAgIAoyMDAyLTA4LTAyIDA4OjE4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICByZW5hbWVkIHRvIG5zYi1wYWNrYWdlCiAgIAoyMDAyLTA4LTAyIDA4OjE4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIHJlbmFtZWQgbnNiLWJ1aWxkIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIHNjcmlwdCBmdW5jdGlvbgogICAKMjAwMi0wOC0wMiAwODoxNSAgaGFyZGFrZXIKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgQ2hhbmdlIGxvY2F0aW9uIG5hbWUgdG8gVW5rbm93bgogICAKMjAwMi0wOC0wMiAwODowOCAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9BU04ucG0sIGFnZW50L2FnZW50LnBtLAogICBhZ2VudC9uZXRzbm1wX3JlcXVlc3RfaW5mby5wbToKCiAgIG1vcmUgb2xkIHBlcmwgZml4ZXMKICAgCjIwMDItMDgtMDIgMDg6MDQgIGhhcmRha2VyCgogICAqIHBlcmwvOiBPSUQvT0lELnBtLCBhZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0KOgoKICAgbW9yZSBvbGQgcGVybCBmaXhlcwogICAKMjAwMi0wOC0wMiAwODowMCAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICBtb3JlIG9sZCBwZXJsIGZpeGVzCiAgIAoyMDAyLTA4LTAyIDA3OjQ4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IHJldHVybiBjb2RlCiAgIAoyMDAyLTA4LTAyIDA3OjQ4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBkb24ndCBwdWxsIGZpcnN0IGFyZyB0aWwgYWZ0ZXIgZ2V0b3B0cy9zaGlmdDsgbW92ZSBzZXQgb2YgZGVmYXVsdCBvcHRzCiAgIAoyMDAyLTA4LTAyIDA3OjM3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIG9wdGlvbiB0byBza2lwIGJ1aWxkIG9yIHRlc3Qgc3RlcHM7IGFkZCAtZiBvcHRpb24gdG8gcHJvbXB0IHRvIG92ZXJyaWRlCiAgIG5vIHByb21wdCBmbGFnICh1c2VmdWwgZm9yIGVycm9ycyk7IG5ldyBuc2ItbWFrZSBtZXRob2Q7IGNoZWNrIHJjIG9mCiAgIG1ha2UgY2xlYW4KICAgCjIwMDItMDgtMDIgMDc6MzYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGFkZCBvcHRpb24gdG8gc2tpcCBidWlsZCBvciB0ZXN0IHN0ZXBzOyB0d2VhayB1c2FnZQogICAKMjAwMi0wOC0wMiAwNzoxMCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgZml4IHR5cG87IHJlbW92ZSBleHRyYSB0cmFpbGluZyBzbGFzaCBpbiBkaXIKICAgCjIwMDItMDgtMDIgMDY6MzMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGNoZWNrIG1vcmUgcGxhY2VzIHRvIHNvdXJjZSBuc2ItZnVuY3Rpb25zOyBmaXggZm9yIGNtZCBsaW5lIGJ1aWxkIHBhdGgKICAgCjIwMDItMDgtMDIgMDY6MjggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBqdXN0IHNob3cgZXJyb3JzIGFmdGVyIGJ1aWxkLCBub3Qgd2FybmluZ3MKICAgCjIwMDItMDgtMDEgMTc6MDQgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIHJldmVydCB0byBub24tYW5zaSBwcm90b3R5cGVzIGZvciBvbGRlciBwZXJsIHdpdGggb2xkZXIgY29tcGlsZXJzIG9uCiAgIG9sZGVyIHN5c3RlbXMuICBOb3QgdGhhdCBJJ20gZ3J1bXB5LCBvZiBjb3Vyc2UuCiAgIAoyMDAyLTA4LTAxIDE2OjI1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfcGVybC5jOgoKICAgY2hlY2sgZm9yIG9sZGVyIGFuZCBuZXcgZW1iZWRkZWQgcGVybCBjYWxsIGZ1bmN0aW9ucwogICAKMjAwMi0wOC0wMSAxNDowNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IHN5bWxpbmsgdG8gc3JjIGZyb20gYnVpbGQ7IHVwZGF0ZSBuc2ItZ2V0LWNvbmZpZwogICAKMjAwMi0wOC0wMSAxNDowNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgZml4IGZvciBjbWQgbGluZSBidWlsZCBkaXIKICAgCjIwMDItMDgtMDEgMTI6NTggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggY29uZmlnIGluc3RhbGwgcGF0aDsgcmVtb3ZlIHBsYXRmb3JtIHNwZWNpZmljIGZyb20gbnNiLWJ1aWxkCiAgIAoyMDAyLTA4LTAxIDEyOjU2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICByZW1vdmUgaGFyZCBjb2RlZCBpbmZvCiAgIAoyMDAyLTA4LTAxIDEyOjIyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIG9wdGlvbiB0byBza2lwIHByb21wdHM7IHJlbW92ZSBwcmV2aW91cyBpbnN0YWxsczsgdHdlYWsgZXJyIHBhdHRlcm4KICAgCjIwMDItMDgtMDEgMTI6MTQgIGpicG4KCiAgICogbWFuL3NubXBfYWxhcm0uMy5kZWY6CgogICAgIC0gdXNlIG5ldHNubXBfZHNfc2V0X2Jvb2xlYW4oKSBpbnN0ZWFkIG9mIGRzX3NldF9ib29sZWFuKCkKICAgCjIwMDItMDgtMDEgMTI6MTIgIGpicG4KCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjMuZGVmOgoKICAgICAtIGNoYW5nZSBjb2RlIHNhbXBsZSB0byB1c2UgbmV0c25tcF9kc19zZXRfYm9vbGVhbigpCiAgICAgLSB1cGRhdGUgcmVmZXJlbmNlcyB0byBsaWJyYXJpZXMgKHdoaWNoIHdlcmUgc3RpbGwgdGFsa2luZyBhYm91dAogICAgICAgbGlidWNkYWdlbnQgZXQgYWwuKSAtLSBQTEVBU0UgUkVWSUVXIEJFRk9SRSA1LjAuMwogICAKMjAwMi0wOC0wMSAxMjowNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGxvdHMgb2YgZml4ZXMgdG8gcHJldmlvdXNlIHVudGVzdGVkIHNjcmlwdHMKICAgCjIwMDItMDgtMDEgMTI6MDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIHNjcmlwdCB0byBidWlsZCByZWxlYXNlcy4uLiBzdGlsbCBzb21lIGhhcmRjb2Rpbmcgd2hpbGUgdGVzdGluZywgYnV0IGl0cwogICBnZXR0aW5nIHRoZXJlLi4uCiAgIAoyMDAyLTA4LTAxIDExOjUxICByc3RvcnkKCiAgICogZGlzdC86IGN2c3Nob3csIGN2c3VwOgoKICAgdXRpbGl0eSBzY3JpcHRzCiAgIAoyMDAyLTA4LTAxIDA5OjMwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogc2NhbGFyLmMsIHNjYWxhcjIuYzoKCiAgIEdvIHdpdGggdGhlICJzY2FsYXIgYXMgc3VwZXItaGFuZGxlciBvZiBpbnN0YW5jZSIgaW1wbGVtZW50YXRpb24uCiAgIFNjYWxhcjEuYyBpcyBwcm9iYWJseSByZWR1bmRlbnQsIGJ1dCB3ZSBjYW4gcmVtb3ZlIHRoaXMgbGF0ZXIuCiAgIChZdXAgLSBJJ20gYSBjb3dhcmQuLi4uKQogICAKMjAwMi0wOC0wMSAwMToxMSAgZHRzMTIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgTWlub3IgdHlwb3MsIHBsdXMgZW1waGFzaXNlIHRoZSBuZWVkIGZvciB0aGUgSXBIbHBBUEkgbGlicmFyeS4KICAgCjIwMDItMDctMzAgMDg6MjYgIGR0czEyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvb3V0cHV0OgoKICAgUmVjb2duaXNlICcwJyBhcyBhIHZhbGlkIHNldHRpbmcgZm9yIHN1ZmZpeFByaW50aW5nLCBhbmQgdXBkYXRlIHRoZQogICBwcm9tcHRzIHRvIG1hdGNoIHRoZSB2NSBvdXRwdXQgZm9ybWF0cyBkZWZhdWx0cy4gU2VlIEJ1ZyAjNTY3NDUxCiAgIAoyMDAyLTA3LTMwIDA3OjU5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgRmlyc3QgYXR0ZW1wdCBhdCB0YWNrbGluZyBCdWcgIzU3NDQzNAogICBSZWNvZ25pc2UgdGhhdCBkZWZhdWx0IG91dHB1dCBmb3JtYXQgaXMgZXF1aXZhbGVudCB0byAtT1MuCiAgIFNubXB0YWJsZSBzdGlsbCBjcmFzaGVzIHdpdGggLU9mIG9yIC1PdSwgYnV0IGF0IGxlYXN0IHRoZQogICBkZWZhdWx0IGludm9jYXRpb24gd29ya3MuCiAgIAoyMDAyLTA3LTMwIDA1OjQxICBkdHMxMgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEV4cG9ydCBuZXdseS1kZWZpbmVkIHB1YmxpYyBuYW1lcywgYW5kIHJlLWV4cG9ydCBzb21lIHJvdXRpbmVzIHRoYXQKICAgaGF2ZSBjaGFuZ2VkIG5hbWUuICBUaGlzIHNob3VsZCBub3cgY29tcGlsZSB1bmRlciBWaXN1YWwgQysrIGFnYWluLgogICAKMjAwMi0wNy0zMCAwMjoyNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBEb24ndCByZW1vdmUgYSBSb3ctU3RhdHVzIGF1dG8tZGVsZXRlZCByb3cgdW50aWwgdGhlIGxhc3QgbWludXRlLAogICBpbiBjYXNlIG90aGVyIChsb3dlcikgaGFuZGxlcnMgdHJ5IHRvIGFjY2VzcyBpdC4KICAgCjIwMDItMDctMzAgMDE6MzggIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjEpLCBGQVE6CgogICBNZW50aW9uIHRoZSBuZWVkIHRvIGVzY2FwZSBxdW90ZXMgd2hlbiBxdWVyeWluZyBzdHJpbmctaW5kZXhlZCB0YWJsZXMuCiAgIAoyMDAyLTA3LTI5IDIzOjU2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgdXBkYXRlIHJlZ2lzdGVyIGZ1bmN0aW9uIG5hbWUKICAgCjIwMDItMDctMjkgMjM6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBhdXRvZ2VuIGV4YW1wbGUgY29kZSBmb3IgaW5kZXggY2hlY2tpbmcgaW4gZXh0cmFjdF9pbmRleDsgdXBkYXRlIHJlZ2lzdGVyCiAgIGZ1bmN0aW9uIG5hbWU7IHVzZSBjb250YWluZXIgaW4gKl9nZXRfYnlfaWR4KCkKICAgCjIwMDItMDctMjkgMTY6MjMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB1cGRhdGUgZm9yIG5ldyBzdHJ1Y3QgbmFtZTsgYWRkIGV4YW1wbGUgY29kZSBhcyBjb21tZW50cyBpbnN0ZWFkIG9mIHZhcl9YWFgKICAgYW5kIHN1Y2g7IGluIGEgZmV3IGltcG9ydGFudCBwbGFjZXMgYWRkIGNvZGUgd2hpY2ggd2lsbCBhbGxvdyBhIG5ld2x5CiAgIGdlbmVyYXRlZCBtb2R1bGUgdG8gYmUgY29tcGlsZWQgaWYgLURUQUJMRV9DT05UQUlORVJfVE9ETyBpcyBzcGVjaWZpZWQ7CiAgIHByb2JhYmx5IGEgZmV3IG90aGVyIHR3ZWFrcyBJIGZvcmdvdAogICAKMjAwMi0wNy0yOSAwMzowNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2FycmF5LmMsIHRhYmxlLmMsIHRhYmxlX2RhdGEuYwosIHRhYmxlX2RhdGFzZXQuYywgdGFibGVfaXRlcmF0b3IuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBkZWZlcmVuY2luZyBOVUxMIHBvaW50ZXJzLgogICAoTW9zdCBvZiB0aGVzZSBTaG91bGQgTmV2ZXIgSGFwcGVuIGJ1dCBZb3UgQ2FuJ3QgQmUgVG9vIENhcmVmdWwhKQogICAKMjAwMi0wNy0yOSAwMzowMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAgIC0gZGV0ZWN0IGBkbWZlJyBldGhlcm5ldCBjYXJkcyBhcyBmb3VuZCBvbiBOZXRyYSBYMSBtYWNoaW5lcy4KICAgICAgIFRoYW5rcyB0byBKb2huIE9sc29uIGZvciB2ZXJpZnlpbmcgdGhpcyBmaXguCiAgIAogICAgICAgQWxzbyBub3RlIHRoYXQgYGluZGVudCcgaGFzIC0tLS1lZCB0aGUgZm9ybWF0dGluZyBvZiB0aGlzIGZpbGUKICAgICAgIGJleW9uZCBsZWdpYmlsaXR5IGluIHNldmVyYWwgcGxhY2VzLiAgSSBkb24ndCB0aGluayB3ZSB3YW50IHRvCiAgICAgICBkbyAqdGhhdCogYWdhaW4uCiAgIAoyMDAyLTA3LTI5IDAyOjQwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEZ1bGxlciB2YWxpZGF0aW9uIG9mIFJvd1N0YXR1cyB2YWx1ZXMgd3J0IHJvdyBjcmVhdGlvbi9leGlzdGluZyByb3dzLgogICAKMjAwMi0wNy0yOSAwMToyNSAgZHRzMTIKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBUYWtlIGFjY291bnQgb2YgcmVjZW50IGNoYW5nZXMgaW4gbGlicmFyeSBmaWxlcy4KICAgJ1JlbGVhc2UnIGFwcGxpY2F0aW9ucyBzdGlsbCBkb24ndCBsaW5rIHByb3Blcmx5LCBidXQgYXQgbGVhc3QKICAgdGhlIGxpYnJhcmllcyBjb21waWxlLCBhbmQgdGhlICdEZWJ1Zycgc2lkZSBzZWVtcyB0byB3b3JrLgogICAKMjAwMi0wNy0yOSAwMToyMyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4Lmg6CgogICBUd2VhayBpbmxpbmUgaGFuZGxpbmcgZm9yIEFJWCAtIHN1Z2dlc3RlZCBieSBBbmR5IEhvb2QuCiAgIAoyMDAyLTA3LTI2IDEwOjUyICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBhdXRvZGVwZW5kZW5jaWVzIHVudGlsIHBvcnRhYmxlIHNvbHV0aW9uIGNhbiBiZSBmb3VuZAogICAKMjAwMi0wNy0yNiAwODo0MSAgZHRzMTIKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2NvbmZpZy5oLCBtaWJfbW9kdWxlX2luY2x1ZGVzLmgsCiAgIG1pYl9tb2R1bGVfaW5pdHMuaDoKCiAgIFJlbW92ZSBtZW50aW9uIG9mIHRoZSAob2Jzb2xldGUpIHVjZC1zbm1wL3JlZ2lzdHJ5IG1vZHVsZS4KICAgCjIwMDItMDctMjYgMDc6MzIgIGR0czEyCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgUHJvdGVjdCB0aGUgV2luMzIgdmVyc2lvbiBvZiB0aGUgY29uZmlnIGZpbGUsIHNvIHRoYXQgdGhlIG90aGVyIGhlYWRlcgogICBmaWxlcyByZWNvZ25pc2UgdGhhdCBpdCBoYXMgaW5kZWVkIGJlZW4gaW5jbHVkZWQuCiAgIAoyMDAyLTA3LTI2IDA3OjI0ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy4wKSwgRkFROgoKICAgQSBiaXQgbW9yZSBkZXRhaWwgb24gbWliMmMsIHBsdXMgdGhlIG5vbi13cml0ZWFiaWxpdHkgb2Ygc3lze0xvY2F0aW9uLENvbnRhY3R9CiAgIAoyMDAyLTA3LTI2IDA1OjIyICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy45KSwgRkFROgoKICAgQW5vdGhlciBlbnRyeSBhYm91dCBpbnZhbGlkIHVzZSBvZiBtaWIyYy4KICAgCjIwMDItMDctMjYgMDU6MTYgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBTdXBwcmVzcyB0aGUgIm5vbi1zdGFuZGFyZCIgY29uZGl0aW9uYWwgY29uc3RydWN0LAogICBzaW5jZSBpdCdzIG5vdCByZWNvZ25pc2VkIGJ5IHNvbWUgdmVyc2lvbnMgb2YgJ21ha2UnLgogICAKMjAwMi0wNy0yNSAwNTowMCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIEFkZCB0aGUgJ3NjYWxhcicgYW5kICd3YXRjaGVyJyBoZWxwZXJzIHRvIHRoZSBoZWxwZXIgbGlicmFyeS4KICAgCjIwMDItMDctMjUgMDM6MjggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaAo6CgogICBTdXBwb3J0IGZvciB3YXRjaGluZyBhIHN5c1VwVGltZSBtYXJrZXIuCiAgIAoyMDAyLTA3LTI1IDAzOjI0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBOZXcgcm91dGluZSBmb3IgcmV0cmlldmluZyBhIGNvbHVtbiB2YWx1ZSBkaXJlY3RseSBmcm9tIGEgcmVxdWVzdCBzdHJ1Y3R1cmUuCiAgIAoyMDAyLTA3LTI0IDEzOjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICBjaGVjayBmb3Igc2V0dGluZyBzYW1lIHZhbHVlIGluIGRzX3NldF9zdHJpbmcsIHNpbmNlIGl0IGZyZWVzIHRoZSBvbGQKICAgdmFsdWUgYmVmb3JlIGR1cGluZyB0aGUgbmV3IG9uZQogICAKMjAwMi0wNy0yNCAxMTo1OCAgcnN0b3J5CgogICAqIGRpc3Qvc25tcGQtaW5pdC5kOgoKICAgZmlyc3Qgc3RhYiBhdCBpbml0LmQgc3RhcnR1cCBzY3JpcHQgZm9yIHNubXBkCiAgIAoyMDAyLTA3LTI0IDA2OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFdoZW4gcnVubmluZyBvZmYgdGhlIGVuZCBvZiBvbmUgY29sdW1uLCBhbmQgbW92aW5nIG9uIHRvIHRoZSBuZXh0CiAgIChpbiBhIEdldE5leHQpLCB3ZSBuZWVkIHRvIHN0YXJ0IGFnYWluIHdpdGggdGhlIGZpcnN0IHJvdy4KICAgVGhpcyBpcyBwcm9iYWJseSB0aGUgaW50ZW50aW9uIG9mIHRoZSBjb25kaXRpb25hbCBibG9jayBhdCB0aGUgc3RhcnQKICAgb2YgdGhpcyBsb29wLCBidXQgSSBjYW4ndCBzZWUgaG93IHRoaXMgdGVzdCBjb3VsZCBldmVyIHBvc3NpYmx5IG1hdGNoLgogICAKICAgTm90ZSB0aGF0IHRoZXJlIGlzIGFsc28gYSByZWZlcmVuY2UgdG8gdGhlIHJvdyBkYXRhIGFjY2Vzc2libGUgdmlhCiAgIHRoZSAncmVxdWVzdC0+cGFyZW50X2RhdGEnIGRhdGEgbGlzdC4gICBUaGlzIHdpbGwgYWxzbyBuZWVkIHRvIGJlCiAgIHJld291bmQuICBTdWdnZXN0aW9ucyBhcyB0byBob3cgYmVzdCB0byBkbyBzbyBncmF0ZWZ1bGx5IHJlY2VpdmVkLgogICAKMjAwMi0wNy0yNCAwNjozOSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBVc2UgU05NUHYyLXN0eWxlIGV4Y2VwdGlvbnMgcmF0aGVyIHRoYW4gdGhlIHVuaW5mb3JtYXRpdmUgU05NUHYxCiAgICdub1N1Y2hOYW1lJyBlcnJvciBmb3IgbWlzc2luZyB0YWJsZSBvYmplY3RzLgogICAKMjAwMi0wNy0yNCAwNjozNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdGhlIHBvc3NpYmlsaXR5IG9mIGZhaWxpbmcgdG8gZXh0cmFjdCBhIHJvdyBzdHJ1Y3R1cmUuCiAgIAoyMDAyLTA3LTI0IDA2OjM1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIFVzZSBTTk1QdjItc3R5bGUgZXhjZXB0aW9ucyByYXRoZXIgdGhhbiB0aGUgdW5pbmZvcm1hdGl2ZSBTTk1QdjEKICAgJ25vU3VjaE5hbWUnIGVycm9yIGZvciBtaXNzaW5nIHRhYmxlIG9iamVjdHMuCiAgIAoyMDAyLTA3LTI0IDA2OjMyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBVc2UgU05NUHYyLXN0eWxlIGV4Y2VwdGlvbnMgcmF0aGVyIHRoYW4gdGhlIHVuaW5mb3JtYXRpdmUgU05NUHYxCiAgICdub1N1Y2hOYW1lJyBlcnJvciBmb3IgaW52YWxpZCB0YWJsZSBvYmplY3RzLgogICAKMjAwMi0wNy0yMyAxNDo1OSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgbWlzc2luZyBjb21tZW50IHRlcm1pbmF0b3IuOi0oCiAgIAoyMDAyLTA3LTIzIDEyOjAyICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICB1c2UgbmV3IG5ldHNubXBfYXNzZXJ0IGluc3RlYWQgb2YgYXNzZXJ0CiAgIAoyMDAyLTA3LTIzIDEyOjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0LmgsIHNubXBsaWIvTWFrZWZpbGUuaW4KOgoKICAgYWRkIG5ldyBuZXRzbm1wX2Fzc2VydCwgd2hpY2ggZGVmYXVsdHMgdG8gbG9nZ2luZyBhIG1lc3NhZ2UKICAgCjIwMDItMDctMjMgMDc6NDMgIGR0czEyCgogICAqIG1hbi86IG1pYl9hcGkuMyAoVjQtMi1wYXRjaGVzLjMpLCBtaWJfYXBpLjMuZGVmOgoKICAgRml4IHRoZSBkZXNjcmlwdGlvbnMgb2YgdGhlICdzcHJpbnRfcmVhbGxvYycgY2FsbHMsIHRvIGluY2x1ZGUgdGhlICdhbGxvd19yZWFsbG9jJyBwYXJhbWV0ZXIuCiAgIAoyMDAyLTA3LTIyIDEwOjU4ICByc3RvcnkKCiAgICogZGlzdC86IG5ldC1zbm1wLnNwZWMsIG5zYi1mdW5jdGlvbnM6CgogICBuZXcgKGFsbW9zdCBlbXB0eSkgc3BlYyBmaWxlOyBzdGFydCBjcmVhdGluZyBmdW5jdGlvbnMgZm9yIGF1dG9tYXRlZCBidWlsZHMKICAgCjIwMDItMDctMjIgMDE6NDYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaAo6CgogICBBIG1vcmUgZ2VuZXJhbGlzZWQgZm9ybSBvZiB0aGUgJ25zX3JlZ2lzdGVyX3t0eXBlfV9pbnN0YW5jZScgcm91dGluZXMsCiAgIGltcGxlbWVudGVkIGFzIGEgc2VwYXJhdGUgaGVscGVyIG1vZHVsZSwgYW5kIHVzZWFibGUgd2l0aCBib3RoIHRoZQogICBpbnN0YW5jZSBhbmQgc2NhbGFyIGhlbHBlcnMuCiAgICAgVGhpcyBhbHNvIHN1cHBvcnRzIGFyYml0cmFyeSBBU04gdHlwZXMgKGluY2x1ZGluZyBzdHJpbmdzIGFuZCBPSURzKS4KICAgCjIwMDItMDctMjIgMDE6NDMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyMS5jLCBhZ2VudC9oZWxwZXJzL3NjYWxhcjIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zY2FsYXIuaDoKCiAgIEFnZW50IGhlbHBlciBtb2R1bGUgZm9yIHN1cHBvcnQgb2Ygc2NhbGFyIG9iamVjdHMuCiAgIFZlcnkgc2ltaWxhciB0byB0aGUgImluc3RhbmNlIiBoZWxwZXIsIGV4Y2VwdCB0aGF0IHRoaXMgZGVhbHMgd2l0aAogICBpbnZhbGlkIGluc3RhbmNlIHN1YmlkZW50aWZpZXJzIGFzIHdlbGwgKHJlcG9ydGluZyBub1N1Y2hJbnN0YW5jZQogICByYXRoZXIgdGhhdCBub1N1Y2hPYmplY3QpLgogICAKICAgVGhlcmUgYXJlIHR3byBwYXJhbGxlbCBpbXBsZW1lbnRhdGlvbnMgYXMgdGhlIG1vbWVudDoKICAgICAtIHNjYWxhcjEgaXMgZXNzZW50aWFsbHkgYW4gZW5oYW5jZWQgY29weSBvZiB0aGUgaW5zdGFuY2UgaGVscGVyLAogICAgICAgYnV0IGlzIGNvbXBsZXRlbHkgaW5kZXBlbmRlbnQgb2YgaXQuCiAgICAgLSBzY2FsYXIyIHNpdHMgYWJvdmUgdGhlIGluc3RhbmNlIGhlbHBlciwgYW5kIHVzZXMgdGhhdCB0byBkbyBtb3N0CiAgICAgICBvZiB0aGUgcmVhbCBwcm9jZXNzaW5nLgogICBTY2FsYXIxIGlzIHByb2JhYmx5IHNsaWdodGx5IG1vcmUgZWZmaWNpZW50LCB3aGlsZSBzY2FsYXIyIGZlZWxzIG1vcmUKICAgaW4ga2VlcGluZyB3aXRoIHRoZSBnZW5lcmFsIGV0aG9zIG9mIHRoZSBoYW5kbGVyIG1lY2hhbmlzbS4KICAgV2UgcHJvYmFibHkgbmVlZCB0byBkZWNpZGUgd2hpY2ggdG8gYWRvcHQsIGFuZCBqdW5rIHRoZSBvdGhlci4KICAgCjIwMDItMDctMTkgMTQ6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICB1c2UgbmV0IGFnZW50eCByZXRpcmVzL3RpbWVvdXQgZHMgdmFsdWVzCiAgIAoyMDAyLTA3LTE5IDE0OjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIHJlZ2lzdGVyIHBhcnNlciBmb3IgYWdlbnR4VGltZW91dCBhbmQgYWdlbnR4UmV0cmllcyB0b2tlbnMKICAgCjIwMDItMDctMTkgMTQ6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgcmVmcyB0byBub24tZXhpc3RlbnQgbnN0QWdlbnQqIGZpbGVzCiAgIAoyMDAyLTA3LTE5IDE0OjE0ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIG1vdmUgT05FX1NFQyB0byBkZWZpbml0aW9ucy5oOyBhZGQgQUdFTlRYX1RJTUVPVVQgYW5kIEFHRU5UWF9SRVRSSUVTIGRlZmF1bHRzCiAgIAoyMDAyLTA3LTE5IDE0OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgYWRkIEFHRU5UWF9USU1FT1VUIGFuZCBBR0VOVFhfUkVUUklFUwogICAKMjAwMi0wNy0xOSAxNDoxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaDoKCiAgIG1vdmUgZGVmaW5pdGlvbiBvZiBPTkVfU0VDIGhlcmUgZnJvbSBzbm1wZC5jCiAgIAoyMDAyLTA3LTE5IDExOjIzICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHBhc3MgbG9jYWwgb2JqLCBub3QgcmFuZG9tIHVuaXRpYWxpemVkIHBvaW50ZXIuOi0oCiAgIAoyMDAyLTA3LTE5IDA0OjA0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIEhhbmRsZSBzeXN0ZW1zIHdoZXJlIE1BWFBBVEhMRU4gaXNuJ3QgZGVmaW5lZC4KICAgCjIwMDItMDctMTkgMDM6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgVXNlIHRoZSAic3lzdGVtLWluZGVwZW5kZW50IiBTTk1QX01BWFBBVEggbGVuZ3RoIGRlZmluaXRpb24gaW5zdGVhZCBvZiBNQVhQQVRITEVOCiAgIAoyMDAyLTA3LTE4IDIyOjAwICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIHJlZnMgdG8gbm9uZXhpc3RlbnQgbWliZ3JvdXAvbnN0QWdlbnRNb2R1bGVPYmplY3QuaAogICAKMjAwMi0wNy0xOCAxOTo0NCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC4yICkKICAgCjIwMDItMDctMTggMTk6NDMgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjIKICAgCjIwMDItMDctMTggMTk6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIG1pbm9yIHBhdGNoIGZvciBub24tZXhpc3RlbnQgKGRpZWQpIGxvZyBmaWxlcy4KICAgCjIwMDItMDctMTggMTk6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0wNy0xOCAxOTo0MCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjIKICAgCjIwMDItMDctMTggMTk6NDAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgbWFrZSBkZXBlbmQgZml4ZXMuCiAgIAoyMDAyLTA3LTE4IDE4OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uLzogYWxhcm0uYywgZXZlbnQuYzoKCiAgIG1ha2UgdGhlIHJtb24gY29kZSBjb21waWxlLgogICAgLSBuZXcgc3VidHJlZSBwb2ludGVyIHN0cnVjdHVyZS4KICAgIC0gc3ByaW50X29iamlkIC0+IHNucHJpbnRfb2JqaWQKICAgCjIwMDItMDctMTggMTg6MzIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgc2lsZW5jZSBwZXJsIHN1YmRpcmVjdG9yeSBidWlsZCBjb21tYW5kcy4KICAgCjIwMDItMDctMTggMTg6MzEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgLSBVc2UgbmV0c2ggLXQgLWQgeG1sIHRvIGdldCB4bWwgb3V0cHV0IGZyb20gbmV0c2guCiAgICAgKE9rLCBJJ20gc2l0dGluZyBoZXJlIGF0IGFuIElFVEYgY29uZmVyZW5jZSBoYXZpbmcgYW4gYXJndW1lbnQgYWJvdXQKICAgICAgeG1sIHZzIEJFUiBhbmQgbmVlZGVkIGEgWE1MKC1saWtlKSBleGFtcGxlIG9mIGEgaHVnZSBkYXRhIHNldCwgc28gSQogICAgICBtYWRlIG5ldHNoIGRvIGl0LikKICAgCjIwMDItMDctMTggMTc6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIGluaXRpYWwgc3VwcG9ydCBmb3IgZG9pbmcgcmVxdWVzdHMgZnJvbSBtdWx0aXBsZSBob3N0cyAocmV0cmlldmFsLCBub3Qgc2V0cykKICAgCjIwMDItMDctMTggMTc6NTAgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgbW9yZSBmaXhlcyB0byBzdGlsbCB1Z2x5IGNvbG9yaXplZCB0ZXh0ICh3ZWxsLCB0aGUgdGV4dCBpcyBwcmV0dHkgYnV0CiAgIHRoZSBzdXBwb3J0IGlzIHVnbHkpLgogICAKMjAwMi0wNy0xOCAxNzo0MiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgY2hhbmdlIHRleHQgc3RyaW5nIGVycm9yIHRvIG1hdGNoIGZ1bmN0aW9uIG5hbWUgY2FsbGVkLgogICAKMjAwMi0wNy0xOCAxNTozMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwosIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgcmVuYW1lIGZyZWUgLT4gY2ZyZWUgdG8gYXZvaWQgc29tZSBwcm9ibGVtIHdlcyBoYWQuLi4gOy0pCiAgIAoyMDAyLTA3LTE4IDE0OjQxICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHR3byBwZW9wbGUgZml4aW5nIG1lbW9yeSBsZWFrIGluIGRpZmZlcmVudCBwbGFjZXMgPSBzZWdmYXVsdAogICAKMjAwMi0wNy0xOCAxMTowMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgICRuYW1lIC0+ICRpCiAgIAoyMDAyLTA3LTE4IDEwOjU2ICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vYmplY3RfbW9uaXRvci5oOgoKICAgdXBkYXRlIHRvIHVzZSBjb250YWluZXJzCiAgIAoyMDAyLTA3LTE4IDA5OjQwICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIC0tZGVidWctdG9rZW5zLCAtLWluZGVudC1vcHRpb25zCiAgIAoyMDAyLTA3LTE4IDA5OjE4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaCwgc25tcGxpYi9zbm1wLXRjLmMKLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9pcml4Lmg6CgogICBBcHBseSBwYXRjaCBmcm9tIEJ1ZyAjNTgyMzQ3LCBmb3IgSXJpeCA2LjUgc3VwcG9ydC4KICAgU3VibWl0dGVkIGJ5IEphbiBZZW55YSBLYXNwcnphawogICAKMjAwMi0wNy0xOCAwOToxMiAgZHRzMTIKCiAgICogbWFuLzogc25tcHRyYXBkLjggKFY0LTItcGF0Y2hlcy41KSwgc25tcHRyYXBkLjguZGVmOgoKICAgRml4IG1hcmt1cCBwcm9ibGVtIG9uIHNubXB0cmFwZCBtYW4gcGFnZSAoQnVnICM1ODMzMjkpCiAgIAoyMDAyLTA3LTE4IDA5OjEwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIFRoZSBmaXggZm9yIHRoZSB0bV9nbXRvZmYgcHJvYmxlbSBvbiBBSVggKEJ1ZyAjNTY1NzY5KSBhbHNvIGFwcGxpZXMgdG8gQUlYIDUKICAgCjIwMDItMDctMTggMDk6MDYgIGR0czEyCgogICAqIGFwcHMvOiBlbmNvZGVfa2V5Y2hhbmdlLmMgKFY0LTItcGF0Y2hlcy4xKSwgZW5jb2RlX2tleWNoYW5nZS5jCjoKCiAgIEZpeCBvZmYtYnktb25lIGJ1ZmZlciBvdmVyZmxvdyAocGF0Y2ggIzU3NzI2MSkKICAgCjIwMDItMDctMTggMDg6NTEgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIEdlbmVyYXRlIG9uZSBjb2RlLWZpbGUgcGVyIHRhYmxlICh0byBtYXRjaCB0aGUgaGVhZGVyIHN0cnVjdHVyZSkuCiAgIE15IGFwb2xvZ2llcyBpZiB0aGlzIGlzbid0IGNvcnJlY3QsIFJvYmVydCAtIGJ1dCB0aGUgcHJldmlvdXMgYmVoYXZpb3VyCiAgIHNlZW1lZCB0byBiZSBicm9rZW4uCiAgIAoyMDAyLTA3LTE4IDA4OjM3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBUYWNrbGUgc29tZSBvZiB0aGUgaW1tZWRpYXRlIGRlZmljaWVuY2llcyBpbiB0aGUgZmlyc3QgZHJhZnQgb2xkLWFwaSBjb25maWcuCiAgIChOb3cgdGhhdCBXZXMgaGFzIHBvaW50ZWQgbWUgaW4gdGhlIGRpcmVjdGlvbiBvZiB0aGUgZG9jdW1lbnRhdGlvbiEpCiAgIAoyMDAyLTA3LTE4IDA4OjIyICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIEZpeCB0aGUgJ2RlY2wnIHN1YnN0aXR1dGlvbiBoYW5kbGluZyAoc28gaXQgZG9lc24ndCBpbmNsdWRlIHRoZSBpbnRlcm5hbCB0b2tlbiBhcyB3ZWxsKS4KICAgCjIwMDItMDctMTggMDc6MTggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgUHJvdmlkZSB0aGUgbWlzc2luZyBwYXJhbWV0ZXIgaW4gYSByZWFkX29ubHkgaW5zdGFuY2UgcmVnaXN0cmF0aW9uLgogICAKMjAwMi0wNy0xOCAwNzowOSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgKOgoKICAgQnJpbmcgdGhlICdyZWFkX29ubHlfaW50JyBpbnN0YW5jZSBoYW5kbGVyIGluIGxpbmUgd2l0aCB0aGUgcmVzdCBvZgogICB0aGUgY29udmVuaWVuY2UgaW5zdGFuY2UgaGFuZGxlcnMuCiAgIChhbmQgZXZlbiBicmVhayB0aGUgaGFiaXQgb2YgYSBsaWZldGltZSBhbmQgZGVjbGFyZSB0aGUgdGhpbmcuLi4uKQogICAKMjAwMi0wNy0xOCAwNTo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgZml4IGFub3RoZXIgbWVtb3J5IGxlYWsgZHVlIHRvIGFuIGltcHJvcGVyIGlmZGVmZWQgb3V0IHNlY3Rpb24gb2YgY29kZQogICAKMjAwMi0wNy0xOCAwNDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgSSdtIGJlZ2lubmluZyB0byByZWdyZXQgZXZlciBydW5uaW5nIGluZGVudCBvbiB0aGUgY29kZSBiYXNlLi4uCiAgIAoyMDAyLTA3LTE3IDE1OjQzICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBtaWIyYy5jb25mOgoKICAgZG9jdW1lbnQgYW5kIGluc3RhbGwgbWliMmMub2xkLWFwaS5jb25mCiAgIAoyMDAyLTA3LTE3IDEzOjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZml4IHNlZ2ZhdWx0IChwb3NzaWJseSBjcmVhdGluZyBtZW1vcnkgbGVhayk7IGF1dGhvciBuZWVkcyB0byBleGFtaW5lIGNvZGUKICAgCjIwMDItMDctMTcgMDc6NDEgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuYXJyYXktdXNlci5jb25mLCBtaWIyYy5jb25mLAogICBtaWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCBtaWIyYy5pbnRfd2F0Y2guY29uZiwKICAgbWliMmMuaXRlcmF0ZS5jb25mLCBtaWIyYy5zY2FsYXIuY29uZjoKCiAgIERhdmUncyBiZWluZyB1bnJlYXNvbmFibHkgcGlja3kgYWJvdXQgZ3JhbW1hciAmIHNwZWxsaW5nIGFnYWluLgogICBKdXN0IGlnbm9yZSBoaW0sIGFuZCBoZSdsbCBnbyBhd2F5Li4uLi4KICAgCjIwMDItMDctMTcgMDc6MjAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIEluaXRpYWwgc3VwcG9ydCBmb3IgdGhlIG9sZCA0eC1zdHlsZSBhZ2VudCBBUEkgdXNpbmcgdGhlIG5ldyB2ZXJzaW9uIG9mIG1pYjJjLgogICBJdCBkb2Vzbid0IGhhbmRsZSB0eXBlcyBwcm9wZXJseSwgYW5kIEknbSBzdXJlIEknbGwgaGF2ZSBidWdnZXJlZCB1cCBzb21lIG9mCiAgIHRoZSBjb250cm9sIHN0cnVjdHVyZSBoYW5kbGluZywgYnV0IGl0IHNlZW1zIHRvIGdlbmVyYXRlIHNvbWV0aGluZyB0aGF0J3MKICAgcHJldHR5IGNsb3NlIHRvIHRoZSBvbGQgb3V0cHV0LiAgIEl0J3MgYmV0dGVyIHRoYW4gbm90aGluZy4uLi4uCiAgIAoyMDAyLTA3LTE2IDIyOjQwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIHJlc3RvcmUgaW5saW5lIGZ1bmN0aW9ucyAoc2lnaC4gSSBmZWVsIGxpa2UgSSdtIHBsYXlpbmcgcmluZy1hcm91bmQtdGhlLXJvc2llKQogICAKMjAwMi0wNy0xNiAyMTo1OCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICByZW5hbWUgc29tZSBzdHJ1Y3QgbWVtYmVycyB0byBtYWtlIGNvZGUgZWFzaWVyIHRvIHJlYWQ7IGEgYml0IG9mIHJlLW9yZGVyaW5nCiAgIGluIHRoZSBzZXQgY29kZTsgbmV3IGZsYWdzIGZvciBuZXcgYW5kIGRlbGV0ZWQgcm93czsgcm93IGRlbGV0ZXMgbm93CiAgIGFjdHVhbHkgd29yayEKICAgCjIwMDItMDctMTYgMTk6MzIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgY2hhbmdlIGNvbXBsZXggbWFjcm9zIGludG8gZnVuY3Rpb25zLiB3b3VsZCBiZSBuaWNlIGlmIEMgaGFkIGlubGluZS4KICAgCjIwMDItMDctMTYgMTg6MDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICB1bW0sIHRyeSB1c2luZyBjb3JyZWN0IGRlZmluZS46LS8KICAgCjIwMDItMDctMTYgMTg6MDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICB0ZXN0IHRoYXQgbmV0LXNubXAtY29uZmlnLmggaGFzIGJlZW4gaW5jbHVkZWQsIGluc3RlYWQgb2YgYWN0dWFsbHkgaW5jbHVkaW5nIGl0Li4KICAgKHNob3VsZG4ndCB0aGlzIHJlYWxseSBiZSBpbiBhbGwgdGhlIGhlYWRlciBmaWxlcz8pCiAgIAoyMDAyLTA3LTE2IDEyOjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdXBkYXRlIGZvciBjb250YWluZXJzCiAgIAoyMDAyLTA3LTE2IDExOjIwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDctMTYgMTE6MTYgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBvaWRfYXJyYXkgcmVsYXRlZCBkZXBlbmRlbmNpZXMgKGdydW1ibGUgZ3J1bWJsZSkKICAgCjIwMDItMDctMTYgMTE6MTQgIHJzdG9yeQoKICAgKiBhcHBzL01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBvaWRfYXJyYXkgcmVsYXRlZCBkZXBlbmRlbmNpZXMKICAgCjIwMDItMDctMTYgMTE6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmRlcGVuZCwgbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIG9pZF9hcnJheSByZWxhdGVkIGRlcGVuZGVuY2llcwogICAKMjAwMi0wNy0xNiAxMDo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAo6CgogICByZW1vdmUgb2lkX2FycmF5IHJlbGF0ZWQgZGVwZW5kZW5jaWVzCiAgIAoyMDAyLTA3LTE2IDEwOjUwICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBmYWN0b3J5LmMKICAgCjIwMDItMDctMTYgMTA6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGQgbmV0c25tcF9jb250YWluZXJfaW5pdF9saXN0KCkgaW4gc3RhcnR1cCBpbml0cwogICAKMjAwMi0wNy0xNiAxMDoyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCwgc25tcGxpYi9vaWRfYXJyYXkuYwo6CgogICByZW1vdmUgdW51c2VkIGZpbGVzCiAgIAoyMDAyLTA3LTE2IDEwOjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGNoZyBwYXJhbSB0eXBlIGZyb20gdm9pZCogdG8gc3RydWN0ICoKICAgCjIwMDItMDctMTYgMTA6MDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIHJlY2VudGx5IGRlbGV0ZWQgb2lkX2FycmF5Lmg7IGFkZCBmYWN0b3J5LCBiaW5hcnkgYXJyYXkgLltjaF07IGRlcml2ZQogICBPQkpTIGFuZCBMT0JKUyBmcm9tIENTUkNTOyBhZGQgKG9wdGlvbmFsKSBhdXRvIGRlcGVuZGVuY3kgZ2VuZXJhdGlvbgogICAKMjAwMi0wNy0xNiAwOTo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oOgoKICAgcmVtb3ZlIHJlY2VudGx5IGRlbGV0ZWQgb2lkX2FycmF5LmgKICAgCjIwMDItMDctMTYgMDk6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmg6CgogICBzdHJ1Y3Qgc3VidHJlZSAtPiBuZXRzbm1wX3N1YnRyZWUKICAgCjIwMDItMDctMTYgMDk6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHJlbW92ZSBsYXN0IHJlbWFpbmluZyByZWZzIHRvIG5vdyBkZWZ1bmN0IG9pZF9hcnJheQogICAKMjAwMi0wNy0xNiAwOTo0MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5LmgsCiAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZ2VuZXJpYyBiaW5hcnkgYXJyYXkgY29udGFpbmVyIGV4dHJhY3RlZCBmcm9tIG9pZF9hcnJheQogICAKMjAwMi0wNy0xNiAwOTo0MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIGluY2x1ZGUgbmV0LXNubXAtY29uZmlnLmg7IG5ldyB0eXBlZGVmIHN0cnVjdCBuZXRzbm1wX2luZGV4IChvaWQgcHRyICsgbGVuKQogICAKMjAwMi0wNy0xNiAwOTozOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgdXNlIGdlbmVyaWMgY29udGFpbmVyIGludGVyZmFjZTsgdXNlIG5ldyBuZXRzbm1wX2luZGV4IGluc3RlYWQgb2YKICAgb2lkX2FycmF5X2hlYWRlcjsgcmVuYW1lIGFycmF5X2dyb3VwIC0+IHJlcXVlc3RfZ3JvdXAKICAgCjIwMDItMDctMTYgMDk6MzQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgYWRkIGl0ZXJhdG9yczsgbW9yZSBmdW5jdGlvbiB0eXBlZGVmczsgcmVuYW1lIHNvbWUgZnVuYyBwdHJzLCBhZGQgZmluZF9uZXh0LAogICBnZXRfc3Vic2V0LCBnZXRfaXRlcmF0b3IsIGZvcl9lYWNoLCBuY29tcGFyZTsgYWRkIGFiaWxpdHkgdG8gaGF2ZSBuZXN0ZWQKICAgY29udGFpbmVyczsgbW9yZSB1dGlsaXR5IHJvdXRpbmVzOyBjb252ZW5pZW5jZSBtYXJjcm9zOyBzdGFydCBhZGRpbmcgY29tbWVudHMKICAgCjIwMDItMDctMTYgMDk6MjkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmFjdG9yeS5oOgoKICAgZGVjbGFyYXRpb25zIGZvciBhIGdlbmVyaWMgZmFjdG9yeQogICAKMjAwMi0wNy0xNiAwODo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfZHluaXguYywgbWVtb3J5X2hwdXguYwosIHZtc3RhdF9keW5peC5jLCB2bXN0YXRfaHB1eC5jOgoKICAgQXBwbHkgcGF0Y2ggZnJvbSBidWcgcmVwb3J0IDU4MTYxOCAoYWxzbyBhcHBsaWNhYmxlIHRvIGR5bml4KQogICBQcm92aWRlZCBieSBOaWNob2xhcyBMLiBOaWdheQogICAKMjAwMi0wNy0xNiAwNjo1NCAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9BU04ucG0sIE9JRC9PSUQucG0sIGFnZW50L2FnZW50LnBtLAogICBhZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIHJlbW92ZSAib3VyIiBwcm9ibGVtIGFuZCB1c2Ugb2xkZXIgInVzZSB2YXJzIiBpbnN0ZWFkIGZvciBvbGRlciBwZXJsLgogICAgICh0aGlzIHNob3VsZCBtYWtlIGl0IHdvcmsgd2l0aCBwZXJsIDUuMDA1LiAgQ291bGQgc29tZSBvbmUgdGVzdCB0aGlzCiAgICAgIGZvciBtZT8pCiAgIAoyMDAyLTA3LTE1IDA2OjQ1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBuYW1lcyBvZiBuZXRzbm1wX3N1YnRyZWUgZWxlbWVudHMgY2hhbmdlZAogICAKMjAwMi0wNy0xNSAwNjo0MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgCjIwMDItMDctMTUgMDU6MjUgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgU29tZSByZWFsbHkgbmFzdHkgaGFja3MgdG8gZ2V0IGNvbG9yaXplZCB0YWJsZXMgdG8gd29yay4KICAgCjIwMDItMDctMTQgMjA6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90LzogYnVsa3dhbGsudCwgbWliLnQ6CgogICBjb21tZW50IG91dCBicm9rZW4gdGVzdHMgZm9yIG5vdyAoWFhYIG1hcmtlZCkKICAgCjIwMDItMDctMTQgMjA6NTAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGdldGJ1bGsuCiAgIAoyMDAyLTA3LTE0IDIwOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgQSBuZXcgZnVuY3Rpb24gdG8gY2FsbCBhIHN1Yi1oYW5kbGVyIGJ1dCBwYXNzaW5nIGl0IG9ubHkgb25lIHJlcXVlc3QgdG8gaGFuZGxlLgogICAKMjAwMi0wNy0xMCAyMToyMSAgcnN0b3J5CgogICAqIHdpbjMyLzogY29uZmlnLmgsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgZGVmaW5lIExPR19EQUVNT04sIHNpbmNlIHdpbmRvd3MgZG9lc24ndCBoYXZlIGl0CiAgIAoyMDAyLTA3LTEwIDIxOjA3ICByc3RvcnkKCiAgICogd2luMzIvOiBjb25maWcuaCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICByZW1vdmUgZGVmaW5lIG9mIGluX2FkZHJfdCwgd2hpY2ggY2FuIGJlIGZvdW5kIGluIG5ldC1zbm1wL3R5cGVzLmgKICAgCjIwMDItMDctMTAgMDI6MzYgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgIAoyMDAyLTA3LTEwIDAyOjM1ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICAgIC0gZG9uJ3QgdXNlIDAgaW4gJXAgZm9ybWF0IHNwZWNpZmllcnMKICAgCjIwMDItMDctMTAgMDI6MzQgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgICAgLSBmaXggc29tZSBob3JyaWJsZSBpbmRlbnQgYnJva2VuIGZvcm1hdHRpbmcKICAgCjIwMDItMDctMTAgMDI6MzMgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgICAtIHJlbW92ZSBzb21lIG9ic29sZXRlIHZhcmlhYmxlcwogICAKMjAwMi0wNy0xMCAwMjozMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSByZWZsZWN0IGNoYW5nZWQgZnVuY3Rpb24gbmFtZXMgZnJvbSBhZ2VudF9yZWdpc3RyeQogICAKMjAwMi0wNy0xMCAwMjozMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICAgIC0gY2hhbmdlcyBkdWUgdG8gcmVuYW1pbmcgb2Ygc3RydWN0IHN1YnRyZWUgdG8gbmV0c25tcF9zdWJ0cmVlCiAgICAgLSBOT1RFIE1FTU9SWSBMRUFLICh3aGljaCBJIGNhbid0IHNlZSBob3cgdG8gZml4IC0tIG5ldyBhZ2VudCBBUEkKICAgICAgIGV4cGVydHMgcGxlYXNlIGV4YW1pbmUpCiAgIAoyMDAyLTA3LTEwIDAyOjI5ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgICAtIG5hbWUsIHN0YXJ0LCBlbmQgbWVtYmVycyBhcmUgbm93IGR5bmFtaWNhbGx5IGFsbG9jYXRlZCB0byByZWR1Y2UKICAgICAgIHdhc3RlZCBtZW1vcnkgKGJ5IGEgZmFjdG9yIG9mIDUgb3Igc28pCiAgICAgLSBmdW5jdGlvbnMgYXJlIHJlbmFtZWQgY29uc2lzdGVudGx5CiAgIAoyMDAyLTA3LTEwIDAyOjIwICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5oLAogICBuZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oLCBzbm1wX2FnZW50LmgsIHNubXBfdmFycy5oCiwgdmFyX3N0cnVjdC5oOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgIAoyMDAyLTA3LTA5IDA2OjAyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBmcmVlIGNhY2hlX2lkIHN0b3JhZ2Ugd2hlbiBjbG9zaW5nIHNlc3Npb24KICAgCjIwMDItMDctMDkgMDU6NTYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGp1c3QgY2FsbCBuZXRzbm1wX2RzX3NodXRkb3duKCkgb25jZSBpbiBzbm1wX3NodXRkb3duKCkKICAgCjIwMDItMDctMDkgMDQ6MTUgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgaW4gbmV0c25tcF9maXh1cF9taWJfZGlyZWN0b3J5KCkKICAgCjIwMDItMDctMDkgMDM6MTQgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBhZGQgYSBjYXN0IHRvIHF1ZWxsIGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDctMDggMjI6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmg6CgogICBleHRlcm4gQyBmb3IgQysrIGNvbXBpbGVzCiAgIAoyMDAyLTA3LTA4IDA3OjIxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmg6CgogICAgIC0gcmVtb3ZlIG9ic29sZXRlIGZ1bmN0aW9uIHByb3RvdHlwZXMKICAgCjIwMDItMDctMDcgMTk6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB1cGRhdGUgdG8gdXNlIGNvbnRhaW5lcnMKICAgCjIwMDItMDctMDcgMTk6MzggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5Lmg6CgogICBmaXggdHlwbwogICAKMjAwMi0wNy0wNyAxOTozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlzay5jLCBwcm9jLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNy0wNyAxOTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnQvbnNNb2R1bGVUYWJsZS5jLAogICBhZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywgaG9zdC9ocl9zd2luc3QuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA3LTA3IDE5OjAzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJzCiAgIAoyMDAyLTA3LTA3IDE5OjAwICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0wNy0wNyAxODo1MyAgcnN0b3J5CgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTA3LTA3IDE4OjUwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBtYWtlIHBhcmFtIGNvbnN0OyBmaXggY29tcGlsZSBjb25zdCB3YXJuaW5nCiAgIAoyMDAyLTA3LTA3IDE4OjI3ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nOyBmaXggbWVtb3J5IGxlYWs7IHByZXAgYSBmZXcgY29tbWVudHMgZm9yIGluZGVudAogICAKMjAwMi0wNy0wNiAxNDoxMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgIEZBUSwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjIucHJlMSApCiAgIAoyMDAyLTA3LTA2IDE0OjEwICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBjaGFuZ2UgcHJvamVjdCB2ZXJzaW9uIHRvIDUuMC4yCiAgIAoyMDAyLTA3LTA2IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBzbm1wdHJhcGQgaXMgYWN0dWFsbHkgYnVpbHQgaW4gdGhlIGFwcHMgZGlyZWN0b3J5LCBub3QgdGhlIGFnZW50IGRpcmVjdG9yeS4KICAgCjIwMDItMDctMDUgMTE6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGNsYXJpZnkgZGlyZWN0aW9ucyBmb3Igb2J0YWluaW5nIHBlcmwvU05NUCBtb2R1bGUuCiAgIAoyMDAyLTA3LTA1IDA1OjE4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgICAgLSBJIG11c3Qgbm90IGNoZWNrIGluIGNvZGUgd2l0aG91dCBjb21waWxpbmcgaXQKICAgICAtIEkgbXVzdCBub3QgY2hlY2sgaW4gY29kZSB3aXRob3V0IGNvbXBpbGluZyBpdAogICAgIC0gSSBtdXN0IG5vdCBjaGVjayBpbiBjb2RlIHdpdGhvdXQgY29tcGlsaW5nIGl0CiAgICAgLSBJIG11c3Qgbm90IGNoZWNrIGluIGNvZGUgd2l0aG91dCBjb21waWxpbmcgaXQKICAgICAtIC4uLgogICAKMjAwMi0wNy0wNSAwMzoyMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50eC9jbGllbnQuYywgbWliSUkvc3lzdGVtX21pYi5jOgoKICAgICAtIHN5c09iamVjdElEIHdhcyBiZWluZyByZXR1cm5lZCBtaW51cyBpdHMgbGFzdCBzdWItaWRlbnRpZmllciBiZWNhdXNlCiAgICAgICB0aGUgbGVuZ3RoIHZhcmlhYmxlIGhhZCBub3QgYmVlbiB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIGZhY3QgdGhhdCBpdAogICAgICAgaXMgbm93IGxvbmdlci4gIENvZGUgY2hhbmdlZCB0byB1c2Ugc2l6ZW9mKCkgaW5zdGVhZCwgc28gdGhpcyB3b24ndAogICAgICAgaGFwcGVuIGFnYWluLiAgUmVwb3J0ZWQgYnkgU3RpYW4gU29pbGFuZCAoYnVnICM1Nzc0MzkpLgogICAKMjAwMi0wNy0wNCAxMDoxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHVjZC1zbm1wIC0+IG5ldC1zbm1wCiAgIAoyMDAyLTA3LTA0IDA3OjA2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtb2RpZmllZCBoYW5kbGluZyBvZiBvcGFxdWUgcG9pbnRlciBmb3Igc3RyZWFtLWJhc2VkIHRyYW5zcG9ydHMgdG8KICAgICAgIGF2b2lkIGJvdGggbXVsdGlwbGUgZnJlZSgpIHByb2JsZW0gYW5kIHVubmVjZXNzYXJ5IGNvcHlpbmcuCiAgIAoyMDAyLTA3LTA0IDA2OjAwICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMKICAgKFY0LTItcGF0Y2hlcy5bNSw5XSksIG1hbi9zbm1wZC5jb25mLjUuZGVmLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIEFwcGx5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcidzIE5ldHdvcmtEaXNrIHBhdGNoICM1NTQ1NTQKICAgCjIwMDItMDctMDQgMDU6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMsIGhyX2ZpbGVzeXMuaAogICAoVjQtMi1wYXRjaGVzLls1LDFdKSwgaHJfZmlsZXN5cy5jLCBocl9maWxlc3lzLmg6CgogICBBcHBseSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIncyBORlMgZmlsZXN5c3RlbSBwYXRjaCAjNTU0NTUzCiAgIChzaW1wbGlmaWVkIHRvIGF2b2lkIHRoZSByZS1pbmRlbnRhdGlvbiAtIHdoaWNoIG1ha2VzIGl0IGVhc2llciB0byBzZWUKICAgIHdoYXQncyBjaGFuZ2VkLiAgVGhlIHdob2xlIEhvc3RSZXMgZ3JvdXAgbmVlZHMgY2xlYW5pbmcgdXAgYW55d2F5ISkKICAgCjIwMDItMDctMDQgMDU6NTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEVuc3VyZSB0cmFuc3BvcnQgb3BhcXVlIGRhdGEgaXNuJ3QgbXVsdGlwbHkgYXNzaWduZWQKICAgKGFuZCBoZW5jZSBtdWx0aXBseSBmcmVlZCkgZm9yIHN0cmVhbS1iYXNlZCB0cmFuc3BvcnRzLgogICBEYXRhZ3JhbS1iYXNlZCB0cmFuc3BvcnRzIGRvbid0IHN1ZmZlciBmcm9tIHRoaXMgcHJvYmxlbS4KICAgQmFzZWQgb24gUGF0Y2ggNTczNzcxCiAgIAoyMDAyLTA3LTAzIDE2OjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBiZSBwcmVjaXNlIGFib3V0IHdoYXQgZmlsZSBuZWVkcyB0byBiZSBjb25maWd1cmVkIGZvciBhY2Nlc3MgY29udHJvbAogICAKMjAwMi0wNy0wMyAxNDoxMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBmaXggbWlub3IgZ3JhbW1hciBlcnJvcnM7IGFkZCBkZXNjciBmb3IgbWliMmMuYXJyYXktdXNlcjsgYWRkIHNlY3Rpb24gaGVhZGVyCiAgIGZvciBnZW5lcmF0aW5nIGhlYWRlciBkZWZpbml0aW9uIGZpbGVzCiAgIAoyMDAyLTA3LTAzIDEzOjExICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IHR5cGVzLmgsIGxpYnJhcnkvc3lzdGVtLmg6CgogICBtb3ZlIGluY2x1ZGUgZm9yIGluX2FkZHJfdCB0byBuZXQtc25tcC90eXBlcy5oLCB3aGVyZSBpbl9hZGRyX3QgaXMgZGVmaW5lZAogICBmb3Igc3lzdGVtcyB3L291dCBuZXRpbmV0L2luLmgKICAgCjIwMDItMDctMDMgMTI6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5zY2FsYXIuY29uZjoKCiAgIG1vcmUgdHdlYWtzIG5vdGljZWQgb24gdGhlIG1haWxpbmcgbGlzdAogICAKMjAwMi0wNy0wMyAwODoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC90ZXN0LnBsOgoKICAgbWFrZSB0ZXN0IGNsZWFudXBzIHRlc3QucGwKICAgCjIwMDItMDctMDMgMDM6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jIChWNC0yLXBhdGNoZXMuMSksIHV0aWxfZnVuY3MuYwo6CgogICBTaHV0IHRoZSBhZ2VudCBkb3duIGNsZWFubHkgYmVmb3JlIHJlc3RhcnRpbmcuCiAgIFRoaXMgY2xvc2VzIGFueSBTTk1QL0FnZW50WCBwb3J0cyBhcyB3ZWxsLgogICAKMjAwMi0wNy0wMyAwMzoyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgT0lEIHN1Yi1pZGVudGlmaWVycyBhcmUgdW5zaWduZWQsIHNvIHRyZWF0aW5nIHRoZW0gYXMgc2lnbmVkIGNhbgogICBnaXZlIHRoZSB3cm9uZyByZXN1bHRzIHdpdGggbGFyZ2UgdmFsdWVzLgogICAKMjAwMi0wNy0wMyAwMzoyMCAgZHRzMTIKCiAgICogc25tcGxpYi9zeXN0ZW0uaCAoVjQtMi1wYXRjaGVzLjUpLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBFbnN1cmUgaW5fYWRkcl90IGlzIGRlZmluZWQuCiAgIAoyMDAyLTA3LTAzIDAyOjM0ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFRlc3RpbmcgZm9yIDxzeXMvZGlza2xhYmVsLmg+IHJlcXVpcmVzIDxtYWNoaW5lL3R5cGVzLmg+IG9uIE5ldEJTRCAxLjUuCiAgIFJlcG9ydGVkIGJ5IEZlbGljaWEgTmVmZi4KICAgKEFwcGFyZW50bHkgZnJvbSB0aGUgTmV0QlNEIGJ1ZyBkYXRhYmFzZSAtIHdoeSB0aGV5IGRpZG4ndCB0ZWxsIHVzIGFib3V0CiAgIGl0IGlzIGEgbXlzdGVyeSB0byBtZS4uLi4pCiAgIAoyMDAyLTA3LTAzIDAyOjE5ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW46CgogICBGaXggdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHN5c09iamVjdElEIGFzIHJlcG9ydGVkIGluIHRoZSBjb25maWd1cmUgLS1oZWxwIG91dHB1dC4KICAgKFRoZSBhY3R1YWwgdmFsdWUgdXNlZCBpcyBjb3JyZWN0IC0gaXQncyBqdXN0IHRoZSBoZWxwIG91dHB1dCB0aGF0J3Mgd3JvbmcpLgogICBTcG90dGVkIGJ5IFNhbmRoeWEgU2F0eWFuYXJheWFuLgogICAKMjAwMi0wNy0wMiAyMzoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIHVwZGF0ZSB0ZXh0IGZvciB2YXJpb3VzIC5jb25mIGZpbGVzCiAgIAoyMDAyLTA3LTAyIDEzOjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuc2NhbGFyLmNvbmY6CgogICBmaXhlcyBub3RlZCBvbiB0aGUgbWFpbGluZyBsaXN0IGJ5IFBhdHJpY2UgS2FkaW9uaWsgPGthZGlvbmlrQGVuc2VpcmIuZnI+CiAgIAoyMDAyLTA3LTAyIDAyOjM5ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBBZGQgdGhlICdzbm1wZCcgYW5kICdzbm1wdHJhcGQnIGJpbmFyeSBuYW1lcyB0byB0aGUgYXBwcm9wcmlhdGUgcGF0aHMKICAgd2hlbiBzZXR0aW5nIHVwIHRoZSB0ZXN0aW5nIGZyYW1ld29yay4KICAgCjIwMDItMDctMDEgMDc6NTMgIGR0czEyCgogICAqIHNubXBsaWIvOiBhc24xLmMgKFY0LTItcGF0Y2hlcy44KSwgYXNuMS5jOgoKICAgRW5jb2RlL0RlY29kZSBPSURzIG9mIHRoZSBmb3JtIDIuWCAoWCA+IDQwKSBjb3JyZWN0bHkuCiAgIAoyMDAyLTA3LTAxIDAyOjQwICBqYnBuCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgICAtIGZpeCBob3JyaWJsZSBmb3JtYXR0aW5nIGluIGhlbHAgZm9yIHRyYW5zcG9ydHMKICAgCjIwMDItMDctMDEgMDI6MjMgIGR0czEyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIFBpY2sgdXAgdGhlIGNoYW5nZWQgZGVmaW5pdGlvbiBmb3IgdGhlIHJvb3Qgb2YgdGhlIFVDRCBleHRlbnNpYmxlIGFnZW50IHRhYmxlcwogICAoc28gdGhhdCB0aGUgRVhBTVBMRS5jb25mIGZpbGUgZ2V0cyBzZXQgdXAgd2l0aCB0aGUgY29ycmVjdCBudW1lcmljIE9JRHMpCiAgIAoyMDAyLTA2LTI4IDA2OjQ2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIHJlbW92ZSB0cmFuc3BvcnQgc3BlY2lmaWVyIGFuZCBwb3J0IG51bWJlciBmcm9tIHN0cmluZ3MgcmV0dXJuZWQKICAgICAgIGZyb20gc25tcF90Y3BfZm10YWRkcigpIHdoaWNoIGJyZWFrIHRjcF93cmFwcGVycyAoYW5kIHBlcmhhcHMKICAgICAgIG90aGVyIHRoaW5ncykuCiAgIAoyMDAyLTA2LTI4IDA0OjQxICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L3Rlc3QucGw6CgogICBVcGRhdGUgZGVmYXVsdCBzdG9yZSByZXRyaWV2YWwgZnVuY3Rpb25zIHRvIHVzZSB0aGUgY29ycmVjdCBuYW1lLgogICAKICAgTm90ZSB0aGF0IHRoaXMgdGVzdCBzY3JpcHQgYXBwZWFycyB0byBpbmNsdWRlIHR3byBpbmZpbml0ZSBsb29wcy4KICAgSSdtIG5vdCBjbGVhciBob3cgdGhpcyBpcyBleHBlY3RlZCB0byBydW4gc3VjY2Vzc2Z1bGx5ID8KICAgCjIwMDItMDYtMjggMDQ6MzkgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBSZW1vdmUgcmVmZXJlbmNlIHRvIG5vbi1leGlzdGVudCBkZWd1Z2dpbmcgZnVuY3Rpb24uCiAgIAoyMDAyLTA2LTI4IDA0OjM3ICBkdHMxMgoKICAgKiBwZXJsL21hbmFnZXIvOiBNYWtlZmlsZS5QTCwgZGlzcGxheXRhYmxlLnBtLAogICBnZXRWYWx1ZXMucG0sIG1hbmFnZXIucG0sIHNubXB0b3NxbDoKCiAgIEJyaW5nIHBlcmwgJ21hbmFnZXInIG1vZHVsZSB1bmRlciB0aGUgTmV0U05NUCBiYW5uZXIKICAgKGJvdGggaW4gdGVybXMgb2YgbW9kdWxlIGdyb3VwIG5hbWUsIGFuZCByZWZlcmVuY2VzIHRvICd1Y2Qtc25tcCcpLgogICBSZW1vdmUgc29tZSBVQ0Qtc3BlY2lmaWMgc2V0dGluZ3MuCiAgIAogICBOb3RlIHRoYXQgc25tcHRvc3FsIHN0aWxsIHJlZmVycyBleHBsaWNpdGx5IHRvIFdlcycgVUNEIGVtYWlsIGFkZHJlc3MsCiAgIGFuZCBtYW5hZ2VyLnBtIHRvIFdlcycgVUNEIGZpbGVzdG9yZSBwYXRoLiAgVGhlIHJlbGV2YW50IGxpbmVzIGhhdmUKICAgYmVlbiBoaWdobGlnaHRlZCwgdG8gZW5jb3VyYWdlIGFueW9uZSB3aXNoaW5nIHRvIHVzZSB0aGlzIHRvIGNoYW5nZSB0aGVtLgogICAKMjAwMi0wNi0yOCAwNDoxMiAgZHRzMTIKCiAgICogcGVybC86IEFueURhdGFfU05NUC9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICBTTk1QL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgbWFuYWdlci9NYWtlZmlsZS5QTDoKCiAgIFJlbW92ZSBjaGVja2luZyBmb3IgImludGVybmFsIiBwcmVyZXF1aXNpdGVzLCBzbyB0aGF0ICJwZXJsIE1ha2VmaWxlLlBMIgogICBhdCB0aGUgdG9wIGxldmVsIHdpbGwgd29yayAtIGV2ZW4gb24gYSBwcmlzdGluZSBzeXN0ZW0uCiAgIAogICBRbjoKICAgICBJcyBpdCBuZWNlc3NhcnkvZGVzaXJhYmxlIHRvIHNlcGFyYXRlIHRoZSBOZXRTTk1QIG1vZHVsZXMgdG8gdGhpcyBleHRlbnQ/CiAgIFdvdWxkIGl0IG5vdCBiZSBzaW1wbGVyIHRvIGhhdmUgYWxsIG9mIHRoZSBtYWluIC5wbS8ueHMgZmlsZXMgaW4gYSBzaW5nbGUKICAgTmV0U05NUCBkaXJlY3RvcnksIGFuZCBjb21waWxlL2luc3RhbGwgdGhlbSBhbGwgZnJvbSB0aGVyZT8KICAgCjIwMDItMDYtMjggMDE6NDUgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ2hlY2sgZm9yIC0td2l0aC1lbnRlcnByaXNlIChldCBhbCkgYmVpbmcgaW52b2tlZCB3aXRob3V0IGEgdmFsdWUsIGFuZCBib21iIG91dC4KICAgCjIwMDItMDYtMjcgMjE6NDMgIHJzdG9yeQoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIG5ldyBSRUFETUUgZGV0YWlubGluZyB0aGUgdXNlIG9mIFNGSU8gdG8gY2lyY3VtdmVudCB0aGUgMjU1IGZkIGxpbWl0IG9uCiAgIHNvbGFyaXMuCiAgIAoyMDAyLTA2LTI3IDExOjA5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICByZW1vdmUgY2hhbmdpbmcgYXJyYXk7IGFkZCBuZXRzbm1wX3RhYmxlX2FycmF5X3JlbW92ZV9yb3coKQogICAKMjAwMi0wNi0yNyAwNDoxNSAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBTb21lIHZlcnNpb25zIG9mICdtYWtlZGVwZW5kJyAoZS5nLiBSZWRIYXQgNy4xKSwgY2FuJ3QgaGFuZGxlICItb3N1ZmZpeCIKICAgYXMgYSBzaW5nbGUgb3B0aW9uLiAgQWxsIHZlcnNpb25zIHNlZW0gaGFwcHkgd2l0aCAiLW8gc3VmZml4IiBzbyB1c2UgdGhhdC4KICAgCjIwMDItMDYtMjcgMDM6MzEgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBVc2UgRU5WX1NFUEFSQVRPUl9DSEFSIHJhdGhlciB0aGFuIGhhcmR3aXJpbmcgJzonIGluIG5ldHNubXBfc2V0X21pYl9kaXJlY3RvcnkKICAgKGFzIHN1Z2dlc3RlZCBieSBSb2JlcnQpCiAgIAoyMDAyLTA2LTI3IDAzOjIyICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgICAtIHJlbW92ZSB0cmFuc3BvcnQgc3BlY2lmaWVyIGFuZCBwb3J0IG51bWJlciBmcm9tIHN0cmluZ3MgcmV0dXJuZWQKICAgICAgIGZyb20gc25tcF91ZHBfZm10YWRkcigpIHdoaWNoIGJyZWFrIHRjcF93cmFwcGVycyAoYW5kIHBlcmhhcHMKICAgICAgIG90aGVyIHRoaW5ncykuCiAgIAoyMDAyLTA2LTI3IDAzOjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHNubXBfbWliLmMgKFY0LTItcGF0Y2hlcy4yKSwgc25tcF9taWIuYwo6CgogICBWYWxpZGF0ZSBuZXcgc25tcEVuYWJsZUF1dGhlblRyYXBzIHZhbHVlIGJlZm9yZSB0cnlpbmcgdG8gdXNlIGl0LgogICBTcG90dGVkICYgZml4ZWQgYnkgU2hhbnRoYSBLdW1hcmEKICAgCjIwMDItMDYtMjUgMTQ6MDkgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBzZXQuYzoKCiAgIGFkZCBBUFBUT1BTICgtQ3EpIGZvciBzdXBwcmVzc2luZyBvdXRwdXQgb2Ygc2V0IHJlc3VsdHMgb24gc3VjY2VzcwogICAKMjAwMi0wNi0yNSAwOToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgQXBwbHkgcGF0Y2ggIzU1OTg0OCB0byB1c2UgdGhlIC9wcm9jIHBzZXVkby1maWxlc3lzdGVtIHVuZGVyIExpbnV4CiAgIChyYXRoZXIgdGhhbiBwYXJzaW5nIHRoZSBvdXRwdXQgb2YgcHMpCiAgIAoyMDAyLTA2LTI1IDA4OjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIENoZWNrIGZvciAnYWl4NCcgKHdoaWNoIGlzIHRoZSB0b2tlbiBkZWZpbmVkIGluIHRoZSBzeXN0ZW0gaGVhZGVyIGZpbGUpCiAgIHJhdGhlciB0aGFuICdhaXgnLiAgIFNlZSBidWcgIzU2NTc2OQogICAKMjAwMi0wNi0yNSAwODozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgVHJlYXQgJzAnIGFzIGFuIGludmFsaWQgaW5kZXggZm9yIGEgInNpbXBsZSB0YWJsZSIuCiAgIAoyMDAyLTA2LTI1IDA3OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9zeXN0ZW06CgogICBkb2N1bWVudCByZWFkLW9ubHkgbmF0dXJlIG9mIHN5c0NvbnRhY3QuMCBhbmQgc3lzTG9jYXRpb24uMAogICBjb25maWd1cmF0aW9uIHRva2Vucy4KICAgCjIwMDItMDYtMjUgMDY6NDAgIGpicG4KCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuMy5ib3QsCiAgIGRlZmF1bHRfc3RvcmUuMy50b3A6CgogICAgIC0gYWRkIG5ldHNubXBfIHByZWZpeCB0byBkZWZhdWx0X3N0b3JlIGZ1bmN0aW9ucwogICAKICAgICAtIGNsZWFuIHVwIG1hbnBhZ2UgYSBiaXQKICAgCiAgICAgLSBmaXggYnJlYWthZ2UgaW4gZ2VuZXJhdGlvbiBvZiBkZWZhdWx0X3N0b3JlLjMuaCBkdWUgdG8gYXV0by1pbmRlbnRhdGlvbgogICAgICAgb2YgZGVmYXVsdF9zdG9yZS5oCiAgIAoyMDAyLTA2LTI1IDAyOjU1ICBqYnBuCgogICAqIEVYQU1QTEUuY29uZi5kZWYgKFY0LTItcGF0Y2hlcy4zKSwgRVhBTVBMRS5jb25mLmRlZjoKCiAgICAgLSBtZW50aW9uIHRoYXQgc2V0dGluZyBzeXNMb2NhdGlvbiBldCBhbC4gaW4gc25tcGQuY29uZiBtYWtlcyB0aGVtCiAgICAgICByZWFkLW9ubHkKICAgCiAgICAgLSBhbHNvIGNoYW5nZSBzeW50YXggb2YgYWxsIGV4YW1wbGUgY29tbWFuZCBsaW5lIHRvb2xzIHRvIHVzZSBuZXdlcgogICAgICAgLWMgQ09NTVVOSVRZIHN5bnRheCBub3QgcG9zaXRpb25hbCBwYXJhbWV0ZXIKICAgCjIwMDItMDYtMjQgMDg6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgbWFrZSBidWZmZXIgc2l6ZSBpbmNyZWFzZSBub3RlIGEgZGVidWcgc3RhdGVtZW50IHJhdGhlciB0aGFuIGEgZ2VuZXJpYwogICBsb2cgc3RhdGVtZW50LgogICAKMjAwMi0wNi0yMyAxODo0MCAgZHJpZWh1aXMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBIYW5kbGUgQ09VTlRFUjY0IGluIF9fdHJhbnNsYXRlX2Fzbl90eXBlLgogICAKMjAwMi0wNi0yMyAxNjowMyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBkb2N1bWVudGF0aW9uIGZvciB0aGUgc2NyaXB0IGFuZCB0aGUgbGFuZ3VhZ2UgaXQgaG91c2VzLgogICAgIChtYW4gcGFnZSBhdXRvLWdlbmVyYXRlZCBmcm9tIHRoZSBjb250YWluZWQgcG9kIGRvY3VtZW50YXRpb24pCiAgIAoyMDAyLTA2LTIzIDE1OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvUkVBRE1FOgoKICAgdXBkYXRlIHRvIHJlZmVyZW5jZSB0b3AgbGV2ZWwgTWFrZWZpbGUuUEwKICAgCjIwMDItMDYtMjMgMTQ6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAueHMgKFY0LTItcGF0Y2hlcy4xKSwgU05NUC54czoKCiAgIGZpeCByZXBvcnRlZCBieSBXaWxsZW0gRGVra2VyIGZvciBXaW5kb3dzLiAgQnVnICM1NDMxOTQgZml4ZWQuCiAgIAoyMDAyLTA2LTIyIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgdXBkYXRlIGZvciByZWNlbnQgbWV0aG9kb2xvZ2llcwogICAKMjAwMi0wNi0yMSAxNjowNyAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaW5hbCAoaG9wZWZ1bGx5ISkgZml4IGZvciBwYXJzaW5nIGlwIGFkZHJlc3NlcyBmcm9tCiAgICJGY28uIEphdmllciBSaWRydWVqbyIgPGFjYnJpcGVmQHNpLmVodS5lcz4KICAgCjIwMDItMDYtMTkgMTQ6MzggIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9tdWx0aXBsZXhlci4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3RvZG8uMzoKCiAgIHVwZGF0ZSBmcm9tIGRveHlnZW4KICAgCjIwMDItMDYtMTkgMTE6NTAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuaW50X3dhdGNoLmNvbmYsIG1pYjJjLnNjYWxhci5jb25mOgoKICAgc2NhbGFyIG1pYjJjIGNvbmZpZ3VyYXRpb24gZmlsZXMgZm9yIGdlbmVyYXRpbmcgc2NhbGFyIGNvZGUuCiAgIAoyMDAyLTA2LTE5IDExOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmM6CgogICBjbGVhbiB1cCBtdWx0aS1saW5lIGNvbW1lbmQgd2hpY2ggd2FzIG1lc3NlZCB1cCBieSBpbmRlbnQuCiAgIAoyMDAyLTA2LTE5IDExOjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIC0gYWRkIHN1cHBvcnQgZm9yIHByb21wdGluZyBvZiB1bmtub3duIHBhcmFtZXRlcnMgdG8gYWxpYXNlcy4KICAgLSBtaXNjIG90aGVyIGltcHJvdmVtZW50cyAobGlrZSAicmVoYXNoIikKICAgCjIwMDItMDYtMTkgMTE6MzggIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGZpeCBmb3IgbmV3IGRlZmF1bHQgc3RvcmUgQVBJCiAgIAoyMDAyLTA2LTE5IDExOjI5ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLm1ha2VmaWxlcywKICAgTWFrZWZpbGUuc3Vicy5wbCwgbWFrZS1wZXJsLW1ha2VmaWxlcywgQVNOL01ha2VmaWxlLlBMCiwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMLAogICBhZ2VudC9NYWtlZmlsZS5QTCwgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIEFSR0dHR0dHCiAgIEkgbG92ZSBwZXJsLgogICBJIGhhdGUgcGVybCdzIG1ha2Ugc3lzdGVtLgogICBJIGhhdGUgdGhlIGZhY3QgdGhhdCBwZXJsIHNlZ2ZhdWx0cyBpZiBHZXRPcHRpb25zKCkgaXMgY2FsbGVkIG1vcmUKICAgdGhhbiBvbmNlLgogICBzaWdoLgogICBUaGlzIGhvcGVmdWxseSB3aWxsIGZpeCB0aGUgcGVybCBtb2R1bGUgYnVpbGQgcm91dGluZXMgc28gaXQgYXQgbGVhc3QKICAgd29ya3MgKGJ1dCBpdCdzIHN0aWxsIHVnbHkgYW5kIGNvdWxkIHVzZSBtb3JlIGNsZWFuaW5nKS4KICAgCjIwMDItMDYtMTkgMDc6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggaW5maW50ZSBsb29wIGFuZCBhZGQgZGVidWcgaW4gcmVtb3ZlX2RlbGVnYXRlZAogICAKMjAwMi0wNi0xOCAwNzozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgTlVMTCB0aGUgcHJpdiBwb2ludGVyIG9uIHNlc3Npb24gZHVwbGljYXRpb24uICB0aGFua3MgdG8gcmV6aXRvegogICAKMjAwMi0wNi0xNyAwNjoyMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQ2hhbmdlZCBLYXRzdWhpc2EncyBlbWFpbCBhZGRyZXNzLCBvbiByZXF1ZXN0CiAgIAoyMDAyLTA2LTE0IDA3OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBQYXRjaCAjNTY5MDIxOiBmcm9tIExhdXJpIE15bGxhcmkKICAgICAtIGZpeCBtZW1vcnkgbGVhayBpbiB0aGUgdGFibGUgaXRlcmF0b3Igc3VwcG9ydC4KICAgCjIwMDItMDYtMTQgMDc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzU2OTAyMCBmcm9tIHJleml0b3ogb24gSVJDIHRvIGZpeCBub24taW5pdGlhbGl6ZWQgdmFyaWFibGUKICAgCjIwMDItMDYtMTQgMDM6NTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYzoKCiAgIEFkZCAobnVsbCkgY29udGV4dCwgdG8gYnJpbmcgaW50byBsaW5lIHdpdGggdGhlIHY1IHJlZ2lzdHJ5IEFQSXMuCiAgIEZpeGVzIGJ1ZyA1Njg1ODAuCiAgIAoyMDAyLTA2LTE0IDAyOjI3ICBkdHMxMgoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmU6CgogICBVc2UgbWF0Y2hpbmcgJyBhbmQgIiBxdW90ZXMgZm9yIEFJWCBjb25maWd1cmUgdGVzdC4KICAgTWVudGlvbmVkIGluIHBhc3NpbmcgaW4gYnVnIDU2NTc2OS4KICAgCjIwMDItMDYtMTMgMTQ6MzIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L2NvbmYudDoKCiAgIGZpeCBkZWZhdWx0X3N0b3JlIHJvdXRpbmVzCiAgIAoyMDAyLTA2LTEyIDA2OjQzICBkdHMxMgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIEJyaW5nIFdpbmRvd3MgT0lEIHVzYWdlIGludG8gbGluZSB3aXRoIHRoZSBtYWluIGNvbmZpZyBmaWxlIHNldHRpbmdzLgogICAKMjAwMi0wNi0xMiAwNjozNyAgZHRzMTIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENvcnJlY3QgdGhlIGRlZmF1bHQgRW50ZXJwcmlzZSBPSUQgdXNlZCBpbiB0cmFwcywgdG8gYXZvaWQgYSByZXBlYXRlZCAwCiAgIHN1YmlkZW50aWZpZXIuICAoRml4ZXMgYnVnICM1NjY5MTcpCiAgIAoyMDAyLTA2LTEyIDA1OjE0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBEZWZpbmUgJ2xlbmd0aCcgYXMgYSBzaWduZWQgdmFyaWFibGUsIHNvIGl0IGNhbiBoYW5kbGUgYW4gZXJyb3IgdmFsdWUgb2YgLTEuCiAgIFJlcG9ydGVkIGJ5IEpvYWtpbSBBbHRoaW5pLgogICAKMjAwMi0wNi0xMiAwMzoxMSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgTWFrZSBzdXJlIHRoZSBhZGRyZXNzIG9mIHRoZSBuZXh0IGxpbmsgaXMgcHJvcGVybHkgc2F2ZWQsIGJlZm9yZSBmcmVlaW5nIG1lbW9yeS4KICAgUHJvYmxlbSBkaXNjb3ZlcmVkIGJ5IEh1Z28gQ2Fjb3RlLgogICAKMjAwMi0wNi0xMiAwMjoxNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGFnZW50L2FnZW50X2luZGV4LmgsIGFnZW50L2FnZW50X3RyYXAuaAosIGFnZW50L2FsbF9oZWxwZXJzLmgsIGFnZW50L2F1dG9fbmxpc3QuaCwKICAgYWdlbnQvYnVsa190b19uZXh0LmgsIGFnZW50L2RlYnVnX2hhbmRsZXIuaCwKICAgYWdlbnQvbWliX21vZHVsZXMuaCwgYWdlbnQvbXVsdGlwbGV4ZXIuaCwgYWdlbnQvbnVsbC5oCiwgYWdlbnQvb2xkX2FwaS5oLCBhZ2VudC9yZWFkX29ubHkuaCwKICAgYWdlbnQvc2VyaWFsaXplLmgsIGFnZW50L3NldF9oZWxwZXIuaCwKICAgbGlicmFyeS9jbXVfY29tcGF0LmgsIGxpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwKICAgbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwgbGlicmFyeS9zbm1wSVBYRG9tYWluLmgsCiAgIGxpYnJhcnkvc25tcFRDUERvbWFpbi5oLCBsaWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGxpYnJhcnkvc25tcFVEUERvbWFpbi5oLCBsaWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIGxpYnJhcnkvc25tcFVuaXhEb21haW4uaCwgbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgbGlicmFyeS9zbm1wX3NlY21vZC5oLCBsaWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsCiAgIGxpYnJhcnkvdWNkX2NvbXBhdC5oOgoKICAgU3VwcGx5IG1pc3NpbmcgI2lmbmRlZi8jZGVmaW5lLyNlbmRpZiBhbmQgZXh0ZXJuICJDIiB7fSB3cmFwcGVycwogICAKMjAwMi0wNi0xMSAxNzo1NiAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICByZW1vdmUgc3B1cmlvdXMgcHJpbnRmIHRvIHN0ZGVycgogICAKMjAwMi0wNi0xMSAxNDoyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIGFkZCBleHRlcm4gIkMiOyBhZGQgdm9pZF9hcnJheSBzdHJ1Y3QKICAgCjIwMDItMDYtMTEgMTQ6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICByZW1vdmUgdHNlYXJjaDsgdXNlIG5ldyBjb250YWluZXIgaW5zdGVhZAogICAKMjAwMi0wNi0xMSAxNDoxOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHVzZSBjb250YWluZXIgZm9yIHNlY29uZGFyeSBpbmRleAogICAKMjAwMi0wNi0xMSAxNDoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBhZGQgY29udGFpbmVyIHRvIGhlYWRlcnM7IGFkZCBjb250YWluZXIuYwogICAKMjAwMi0wNi0xMSAxNDoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBpbml0IGZ1bmN0aW9ucyBmb3IgYmFzaWMvc29ydGVkIGNvbnRhaW5lcgogICAKMjAwMi0wNi0xMSAxNDoxNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIG1vcmUgbWV0aG9kcyBmb3IgYmFzaWMgY29udGFpbmVyOyBhZGQgc29ydGVkICh3aWxsIHByb2JhYmx5IHJlbmFtZSkgY29uYXRpbmVyCiAgIAoyMDAyLTA2LTExIDEyOjIyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oOgoKICAgcHJvdGVjdCBhZ2FpbnN0IG11bHRpcGxlIGluY2x1ZGVzOyBhZGQgZXh0ZXJuICJDIiBmb3IgX19jcGx1c3BsdXMKICAgCjIwMDItMDYtMTEgMTE6MTEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QLzogSU5TVEFMTCwgTWFrZWZpbGUuUEwsIFJFQURNRQosIG5ldHNoLCBzbm1wc2g6CgogICByZW5hbWVkIHNubXBzaCB0byBuZXRzaCwgYXMgSSBsaWtlIHRoZSBuYW1lIGJldHRlciBhbmQgaXQgYXBwZWFscyB0byBhCiAgIHdpZGVyIG51bWJlciBvZiBwZW9wbGUuCiAgIAoyMDAyLTA2LTEwIDA5OjUzICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgd2hlbiBkZWxldGluZyBhbiBhc3AgcG9pbnRlciwgbWFrZSBzdXJlIGl0IGlzbid0IGluIHRoZSBkZWxlZ2F0ZWQgbGlzdAogICAKMjAwMi0wNi0xMCAwODo0NiAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggcGFyc2Vfb25lX29pZF9pbmRleCB0byBhbGxvdyB0b28gc2hvcnQgSVAgYWRkcmVzcyB3aGVuIGNvbXBsZXRlIGlzCiAgIHNwZWNpZmllZDsgYWRkIG5ldHNubXBfb2lkMmNoYXJzICYgbmV0c25tcF9vaWQyc3RyCiAgIAoyMDAyLTA2LTEwIDA3OjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvOiBkZWZhdWx0X3N0b3JlLnBtLCBkZWZhdWx0X3N0b3JlLnhzCiwgdGVzdC5wbDoKCiAgIHVwZGF0ZSB0byBsYXRlc3QgZGVmYXVsdF9zdG9yZSBkZWZpbmVzCiAgIAoyMDAyLTA2LTEwIDA3OjM5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgcGVybC8uY3ZzaWdub3JlLCBwZXJsL01ha2VmaWxlLlBMOgoKICAgVG9wIGxldmVsIHBlcmwgTWFrZWZpbGUuUEwgdG8gaW5zdGFsbCB0aGUgd2hvbGUgYnVuY2ggdW5kZXJuZWF0aC4KICAgVGhpcyBzaG91bGQgbm93IGJlIHVzZWQgaW5zdGVhZCBvZiB0aGUgbG93ZXIgbGV2ZWwgbWFrZWZpbGVzIGZvcgogICBzaW1wbGljaXR5LgogICAKMjAwMi0wNi0xMCAwNzoyNyAgZHRzMTIKCiAgICogcGVybC9TTk1QL3QvbWliLnQ6CgogICBBY2tub3dsZWRnZSBrbm93biBmYWlsaW5nIHRlc3RzLgogICBUaGlzIG1lc3NhZ2UgY2FuIGJlIHJlbW92ZWQgb25jZSB0aGUgcHJvYmxlbSBoYXMgYmVlbiBpc29sYXRlZCBhbmQgZml4ZWQuCiAgIAoyMDAyLTA2LTEwIDA3OjE3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgc3VwcG9ydCBmb3IgaXBhZGRyZXNzIGJ1aWxkaW5nL3BhcnNpbmcgb2YgT0lEIGluZGV4ZXMuCiAgIAoyMDAyLTA2LTEwIDAyOjA3ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy44KSwgRkFROgoKICAgTWVudGlvbiB0aGUgb3RoZXIgcGVybCBtb2R1bGVzLCBpbnRyb2R1Y2VkIHdpdGggdjUgKHBhcnRpY3VsYXJseSAnZGVmYXVsdF9zdG9yZScpCiAgIAoyMDAyLTA2LTEwIDAxOjI4ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy43KSwgRkFROgoKICAgTmV3IGVudHJ5IGRlc2NyaWJpbmcgcG9zc2libGUgcHJvYmxlbXMgd2l0aCB0cmFwIGhhbmRsZXJzLgogICAKMjAwMi0wNi0wOCAyMTozOSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIGRlZmF1bHRfc3RvcmUgZml4ZXMKICAgCjIwMDItMDYtMDggMjA6NTQgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGJyZWFrIHBlcmwgbWFrZWZpbGUgY3JlYXRpb24gaW50byBzZXBlcmF0ZSBzdGVwOyBvbmx5IGNsZWFuIHBlcmwgZGlyZWN0b3J5CiAgIGlmIHRoZXJlIGlzIGEgbWFrZWZpbGUKICAgCjIwMDItMDYtMDggMjA6MTUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCBwZXJsdGVzdCB0YXJnZXQgdG8gbWFrZSB0ZXN0IGluIGFsbCBwZXJsIGRpcmVjdG9yaWVzCiAgIAoyMDAyLTA2LTA4IDA5OjQ3ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgZml4IHRvIGRlYWwgd2l0aCB1cGRhdGVkIFNRTDo6U3RhdGVtZW50IG1vZHVsZS4KICAgCjIwMDItMDYtMDggMDc6MDggIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICB1cGRhdGUgdG8gU1FMLVN0YXRlbWVudCByZXF1aXJlbWVudCBvZiAxLjAwNAogICAKMjAwMi0wNi0wOCAwNjo0NSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICByZW1vdmUgbWliIGluaXQgY29kZSBmcm9tIEMgc25tcF90cmFuc2xhdGVfb2JqIGNhbGwKICAgCjIwMDItMDYtMDggMDY6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgaW5pdF9zbm1wIGluc2lkZSB0cmFuc2xhdGVPYmoKICAgCjIwMDItMDYtMDggMDY6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIGNoYW5nZSB2ZXJzaW9uIHRvIDAuMQogICAKMjAwMi0wNi0wOCAwNjo0MyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvY29uZmlncy91bml4OgoKICAgQSBmZXcgY2xlYW51cHMgdG8gaWZjb25maWcgYW5kIG5ldHN0YXQgY29tbWFuZHMKICAgCjIwMDItMDYtMDggMDY6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIC0gYmVnaW5uaW5nIHN1cHBvcnQgZm9yIGltcG9ydC9leHBvcnQgb2YgZGF0YSAoY3VycmVudGx5IHRvL2Zyb20gQ1NWKS4KICAgLSBzdXBwb3J0IGZvciAiZGlmZiIgd2hpY2ggY29tcGFyZXMgb2xkIChwb3NzaWJseSBpbXBvcnRlZCBkYXRhKSB0byBjdXJyZW50LgogICAKMjAwMi0wNi0wOCAwNjozNCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvTWFrZWZpbGUuUEw6CgogICBjaGFuZ2UgcmVxdWlyZWQgU05NUCBtb2R1bGUgdmVyc2lvbiBmcm9tIDQgdG8gNQogICAKMjAwMi0wNi0wOCAwNjozNCAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgQWRkIGEgdHV0b3JpYWwgcGxhY2UgaG9sZGVyIGNvbW1lbnQgT0lELgogICAKMjAwMi0wNi0wOCAwNjozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBmaXggdGttaWIgZm9yIG5ld2VyIHBlcmwgbW9kdWxlcy4KICAgCjIwMDItMDYtMDggMDY6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgdHVybiBvZmYgZXh0cmEgYm9sZC91bmRlcmxpbmUgZm9ybWF0dGluZyBieSBkZWZhdWx0LgogICAKMjAwMi0wNi0wNyAxNTowNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIGdlbmVyaWMgY29udGFpbmVyIHN0cnVjdHVyZSBmb3Igc3RvcmluZyBkYXRhCiAgIAoyMDAyLTA2LTA3IDEzOjAxICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnhzOgoKICAgaW5jbHVkZSBuZXQtc25tcC1jb25maWcuaAogICAKMjAwMi0wNi0wNyAxMDozNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBjb25maWd1cmUgdG8ga2VlcCBpbiBsaW5lIHdpdGggY29uZmlndXJlLmluICh3aHk/IHNob3VsZG4ndAogICBjb25maWd1cmUgbm90IGJlIGluIENWUyBhbmQgYmUgYXV0b2dlbmVyYXRlZD8gT25lIG9mIHRoZXNlIGRheXMgSSdtIGdvaW5nCiAgIHRvIGhhdmUgdG8gbGVhcm4gYXV0b2NvbmYuLi4uKQogICAKMjAwMi0wNi0wNyAxMDozNSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlczoKCiAgIGFsd2F5cyBjaGVjayByZXR1cm4gc3RhdHVzIG9mIG1ha2Ugd2hlbiBpbnNpZGUgYSBsb29wLCBhbmQgZXhpdCBvbiBlcnJvcnMKICAgCjIwMDItMDYtMDcgMDg6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jIChWNC0yLXBhdGNoZXMuMyksCiAgIGludGVyZmFjZXMuYzoKCiAgIE9ubHkgbnVsbC10ZXJtaW5hdGUgdGhlIGludGVyZmFjZSBuYW1lIHdoaWxlIGl0J3MgYWN0dWFsbHkgYmVpbmcgY29waWVkLgogICBSZXN0b3JlIHRoZSBkYXRhIGxpbmUgYWZ0ZXJ3YXJkcywgc28gdGhlIGRlYnVnZ2luZyBvdXRwdXQgaXMgbWVhbmluZ2Z1bC4KICAgCjIwMDItMDYtMDcgMDE6MTYgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEZpeCBmb3IgaW5kZXhpbmcgZXJyb3IsIHRoYXQgY2F1c2VzIGEgY3Jhc2ggaWYgbW9yZSB0aGFuIDE2IHZhcmJpbmRzCiAgIGFyZSBhZGRlZCB0byB0aGUgY2FjaGUgaW4gb25lIGdvLiAgU3BvdHRlZCBieSBTaGFudGggS3VtYXJhCiAgIAoyMDAyLTA2LTA2IDAxOjEyICBkdHMxMgoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmUgKFY0LTItcGF0Y2hlcy5bNyw1XSksIGFjbG9jYWwubTQsCiAgIGNvbmZpZ3VyZToKCiAgIERvbid0IGRpZmZlcmVuY2lhdGUgYmV0d2VlbiBlbGYtIGFuZCBhLm91dC1iYXNlZCBOZXRCU0Qgc3lzdGVtcy4KICAgKFByb2JsZW0gaGlnaGxpZ2h0ZWQgYnkgRmVsaWNpYSBOZWZmKQogICAKMjAwMi0wNi0wNSAxODo1MCAgcnN0b3J5CgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBwdXQgZGVmaW5lcyBmb3Igc29ja2xlbl90IGFuZCBpbl9hZGRyX3QgaW4gbmV0LXNubXAvdHlwZXMuaCBpbnN0ZWFkIG9mIGhhdmluZwogICBjb25maWd1cmUgZ2VuZXJhdGUgdGhlbTsgY29uZmlndXJlIGluc3RlYWQgZ2VuZXJhdGVzIEhBVkVfU09DS0xFTl9UIGFuZAogICBIQVZFX0lOX0FERFJfVCBmb3Igc3lzdGVtcyB3aGljaCBkb24ndCBuZWVkIHRoZSBkZWZpbmVzOyB0aGlzIGlzIHByaW1hcmlseQogICBmb3IgdGhlIGJlbmVmaXQgb2YgdGhlIFdpbjMyIHBsYXRmb3JtLCB3aGljaCBkb2Vzbid0IGhhdmUgY29uZmlndXJlLgogICAKMjAwMi0wNi0wNSAwOToyMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIGRvbid0IGFkdmFuY2UgcmVxdWVzdCBwb2ludGVyIGluc2lkZSBmb3IgbG9vcCwgc2luY2UgZm9yIGxvb3AgZG9lcyBpdCBmb3IKICAgdXM7IG90aGVyd2lzZSBmb3IgbG9vcCBtYXkgZW5kIHVwIGRlcmVmZXJlbmNpbmcgTlVMTCBwb2ludGVyLgogICAKMjAwMi0wNi0wNSAwNjo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvY29uZmlncy91bml4OgoKICAgZXhhbXBsZSBjb25maWd1cmF0aW9uIGZpbGUgdG8gZHVwbGljYXRlIHZhcmlvdXMgdW5peCB1dGlsaXRpZXM6CiAgICAtIGN1cnJlbnRseTogbmV0c3RhdCwgcHMsIGRmLCBpZmNvbmZpZwogICAKMjAwMi0wNi0wNSAwNjo0MCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvY29uZmlncy9zY2xpOgoKICAgZXhhbXBsZSBjb25maWd1cmF0aW9uIGZpbGUgdG8gZHVwbGljYXRlIGZ1bmN0aW9uYWxpdHkgaW4gSnVlcmdlbidzCiAgIHNjbGkgY29tbWFuZC4KICAgCjIwMDItMDYtMDUgMDY6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIG5ldyBjb21tYW5kczoKICAgICBzb3VyY2UgZmlsZSAtLSBzb3VyY2VzIGFuIHJjIGZpbGUKICAgICB3YXRjaCBleHByZXNzaW9uIC0tIHJlcGVhdGVkbHkgcnVucyBhIGNvbW1hbmQgYW5kIGNvbG9yaXplcwogICAgICAgZGlmZmVyZW5jZXMgaW4gZGF0YQogICAgIGV2YWwgZXhwcmVzc2lvbiAtLSBldmFsdWF0ZXMgYW4gZXhwcmVzc2lvbiBkaXJlY3RseSBpbiBwZXJsCiAgICAgICAtIGJlZ2lubmluZ3Mgb2Ygb3ZlcmxvYWRzIGluIHBlcmwgc28gdGhhdCBjYWxsaW5nIHN5c0NvbnRhY3QoKQogICAgICAgICB3aWxsIHJldHVybiB0aGUgc3lzQ29udGFjdCB2YWx1ZS4gIHRhYmxlcyBub3QgcmV0dXJuZWQgeWV0LgogICBmaXhlczoKICAgICB0dXJucyBvZiBvcm5hbWVudGFsIHByb21wdCBzdXBwb3J0IChpY2spIGJ5IGRlZmF1bHQKICAgCjIwMDItMDYtMDUgMDQ6NDMgIGR0czEyCgogICAqIG1hbi86IHNubXBjbWQuMSAoVjQtMi1wYXRjaGVzLjgpLCBzbm1wY21kLjEuZGVmOgoKICAgQnJpZWYgbWVudGlvbiBvZiB0aGUgbmVlZCB0byBxdW90ZSBPSURzIGNvbnRhaW5pbmcgc3RyaW5nIGluZGV4ZXMsCiAgIHRvIHByb3RlY3QgdGhlIGRvdWJsZSBxdW90ZXMgZnJvbSB0aGUgc2hlbGwuCiAgIAoyMDAyLTA2LTA0IDEwOjM4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdGVzdCBmb3IgYSBudWxsIHRyZWVjYWNoZSBiZWZvcmUgZGVyZWZlcmVuY2luZyBpdDsgbm90ZWQgb24gdGhlIGNvZGVycwogICBsaXN0IGJ5IGpvYWtpbS5hbHRoaW5pQHJlZGRvLm5ldAogICAKMjAwMi0wNi0wNCAxMDozMyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHRlc3QgZm9yIGFzcC0+cGR1ID09IE5VTEwgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQ7IG5vdGVkIG9uIHRoZSBjb2RlcnMKICAgbGlzdCBieSBqb2FraW0uYWx0aGluaUByZWRkby5uZXQuCiAgIAoyMDAyLTA2LTA0IDA1OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9zbm1wc2g6CgogICBzdXBwb3J0IGZvciBwcmludGYsIHNpbmdsZSBxdWVyeS9zZXRzIG9mIHNjYWxhcnMsIG11bHRpLWxpbmUgYWxpYXNlcy4KICAgCjIwMDItMDUtMzAgMTU6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZGVmYXVsdF9zdG9yZSBmaXhlcwogICAKMjAwMi0wNS0zMCAxNToyMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgbWFrZSBuZXcoKSBvcGVyYXRvciBhIGJpdCBzbWFydGVyCiAgIAoyMDAyLTA1LTI5IDE5OjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hbGFybS5jIChWNC0yLXBhdGNoZXMuMiksIHNubXBfYWxhcm0uYzoKCiAgIHNldCB0aGUgc3RvcmFnZSBwb2ludGVyIHRvIE5VTEwsIGFzIHBvaW50ZWQgb3V0IGJ5IE1hcmsgSG95LgogICAKMjAwMi0wNS0yOSAwOToyMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBBUElpZnkgTUlCRElSUyBzdXBwb3J0CiAgIAoyMDAyLTA1LTI5IDA3OjQzICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy42KSwgRkFROgoKICAgRXhwYW5kIG9uIHdoZW4gT3BlblNTTCBpcyBuZWNlc3NhcnksIGFuZCBob3cgdG8gY29tcGlsZSB1c2luZyBpdC4KICAgCjIwMDItMDUtMjkgMDY6NTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgU2V0IFJFVVNFQUREUiBzbyB0aGF0IHNwZWNpZnlpbmcgdGhlIHNhbWUgcG9ydCB0d2ljZSBkb2Vzbid0IGtpbGwgdGhlIGFnZW50LgogICAoU3VnZ2VzdGVkIGJ5IFJvYmVydCBIYXN0aW5ncykKICAgCjIwMDItMDUtMjkgMDI6NDEgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjUpLCBGQVE6CgogICBSZWZlcmVuY2UgYm90aCB2ZXJzaW9ucyBvZiB0aGUgdHV0b3JpYWwgKHNpbmNlIHRoaXMgZG9jdW1lbnQgaXMgdXNlZAogICBmb3IgYnVpbGRpbmcgdGhlIG9uLWxpbmUgdmVyc2lvbiBvZiB0aGUgRkFRKQogICAKMjAwMi0wNS0yOSAwMjoxNiAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNCksIEZBUToKCiAgIENsYXJpZnkgdGhhdCB0cmFwIGZpbHRlcmluZyBpcyBub3QgeWV0IG9wZXJhdGlvbmFsLgogICAKMjAwMi0wNS0yOCAxNDo1MyAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICByZW1vdmUgXk0gY2hhcnMKICAgCjIwMDItMDUtMjggMTQ6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBmaXggbG9naWMgaW4gY2FuX2RlbGV0ZTsgY29uc29saWRhdGUgdXNlIG9mIG5ldHNubXBfc2V0X21vZGVfcmVxdWVzdCBieSBzZXR0aW5nCiAgIHJjIGZvciB1c2UgYXQgZW5kIG9mIGxvb3A7IGRvbid0IHVzZSByZW1vdmVkIG1hY3JvcyBmb3Igcm93c3RhdHVzL3N0b3JhZ2V0eXBlLAogICB1c2luZyBuZXcgbmV0c25tcF9jaGVja192Yiogcm91dGluZXMgaW5zdGVhZDsgYWRkIGFzc2VydHMgZm9yIGVycm9yIGNhc2VzIHRoYXQKICAgc2hvdWxkIGJlIGNhdWdodCBieSBlYXJsaWVyIHJvdXRpbmVzCiAgIAoyMDAyLTA1LTI4IDE0OjQ3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgYWRkIGNhbGxiYWNrcyBmb3Igcm93IChkZSlhY3RpdmF0aW9uCiAgIAoyMDAyLTA1LTI4IDA2OjIzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBQcm90ZWN0ICIjaW5jbHVkZSA8c2VhcmNoLmg+IiB3aXRoIHRoZSBIQVZFX1NFQVJDSF9IIHRva2VuLiAgKFN1Z2dlc3RlZCBieSBIYXJyaWUpCiAgIAoyMDAyLTA1LTI4IDA2OjIwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmg6CgogICBGaXggdGhlIGRlY2xhcmF0aW9uIG9mIHNubXBfZW5hYmxlX3N5c2xvZ19pZGVudC4gKFNwb3R0ZWQgYnkgSGFycmllKQogICAKMjAwMi0wNS0yNyAwMTo1MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oCiwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIERvbid0IGhhcmR3aXJlIHN5c2xvZyBmYWNpbGl0eSB0byBMT0dfREFFTU9OLgogICBGaXggcHJvdmlkZWQgYnkgSm9ha2ltIEZhbGxzam8uCiAgIAoyMDAyLTA1LTI3IDAxOjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhcHBzL3NubXB0cmFwZC5jCiAgIChWNC0yLXBhdGNoZXMuWzIsOF0pLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhcHBzL3NubXB0cmFwZC5jOgoKICAgVHdlYWsgJ3VzbVVzZXInIGhlbHAgc3RyaW5nIHRvIGFjY3VyYXRlbHkgcmVmbGVjdCB3aGljaCBiaXRzIGFyZSBvcHRpb25hbC4KICAgUmVwb3J0ZWQgYnkgQWxpIENoYW5hdWkuCiAgIAoyMDAyLTA1LTI3IDAxOjIyICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wZC5jb25mLjUuZGVmIChWNC0yLXBhdGNoZXMuNCksIHNubXBkLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCB0aGUgbGltaXQgb24gdGhlIG51bWJlciBvZiAiZmlsZSIgZGlyZWN0aXZlcy4KICAgCjIwMDItMDUtMjcgMDE6MTcgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlIGFuIGV4dHJhbmVvdXMgdHJhaWxpbmcgYmFja3NsYXNoLCB0aGF0IGNvbmZ1c2VzIHNvbWUgJ21ha2UncwogICAKMjAwMi0wNS0yNCAwOTo1NCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9uZXRzbm1wX3JlcXVlc3RfaW5mby5wbToKCiAgIFByb3BlciBjcmVhdGlvbiBvZiByZXR1cm5lZCBOZXRTTk1QOjpPSUQgb2JqZWN0LgogICAKMjAwMi0wNS0yNCAwOTo1NCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGluY3JlYXNlIHJlZmVyZW5jZSBjb3VudHMgb24gcmV0dXJuZWQgbWliIHJlZ2lzdHJhdGlvbiBvYmplY3RzIHNvCiAgIHRoZXkncmUgbm90IGF1dG8tY2xlYW5lZCBieSBwZXJsICh0aGUgYWdlbnQgbm93IGhhcyBhIGNvcHkgb2YgdGhlIHBvaW50ZXIpCiAgIAoyMDAyLTA1LTI0IDA5OjUzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG5ldyBkZWZhdWx0X3N0b3JlIG5ldHNubXBfIHByZWZpeGVzLgogICAKMjAwMi0wNS0yNCAwOTo1MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBzdXBwb3J0IGZvciBzY2FsYXJzIChtaWIyYy5zY2FsYXIuY29uZiBmaWxlIGNvbWluZyBzaG9ydGx5KQogICAKMjAwMi0wNS0yNCAwOTo1MiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBBIG5ldyBydWxlIGNhbGxlZCAiY29tbWVudGNoZWNrIiB0byBncmVwIGFsbCBzb3VyY2VzIGZvciAvLyBjb21tZW50cy4KICAgCjIwMDItMDUtMjQgMDg6MDkgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBEZWNsYXJlICdyZWdpc3Rlcl9taWJfZGV0YWNoX25vZGUnIGJlZm9yZSBpdCdzIHVzZWQgZm9yIHRoZSBmaXJzdCB0aW1lLgogICAoU3BvdHRlZCBieSBYaWFuZyBaaGFuZykKICAgCjIwMDItMDUtMjQgMDc6NDQgIGR0czEyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBSZW1vdmUgZXh0cmFuZW91cyB0cmFpbGluZyBiYWNrc2xhc2guCiAgIChUaGF0ICptaWdodCogYmUgY29uZnVzaW5nIFN1bidzIG1ha2UsIGJ1dCBpcyB3cm9uZyBhbnl3YXkpCiAgIAoyMDAyLTA1LTIzIDAxOjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdC5jLCB2bXN0YXRfYnNkaTQuYywKICAgdm1zdGF0X2R5bml4LmMsIHZtc3RhdF9mcmVlYnNkMi5jLCB2bXN0YXRfaHB1eC5jLAogICB2bXN0YXRfbmV0YnNkMS5jLCB2bXN0YXRfc29sYXJpczIuYzoKCiAgIEJyaW5nIHRoZSB2YXJpb3VzICd2YXJfZXh0ZW5zaWJsZV92bXN0YXQnIGRlZmluaXRpb25zIGludG8gbGluZQogICB3aXRoIHRoZSBkZWNsYXJhdGlvbiBpbiB0aGUgaGVhZGVyIGZpbGUgLSBpLmUuIG5vbi1zdGF0aWMuCiAgIAoyMDAyLTA1LTIxIDE1OjI1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgLUkkKHNyY2RpcikvaW5jbHVkZSB0byBDUFAgcGF0aCBmb3IgcGVvcGxlIGJ1aWxkaW5nIG91dHNpZGUgb2Ygc3JjIHRyZWUKICAgCjIwMDItMDUtMjEgMDg6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBhcHBseSBwYXRjaCBbIDU1ODEyOSBdIE1ha2UgdGhlIHR1bm5lbCBtaWIgY29tcGlsZSBpbiA1LjAuMSwgc3VibWl0dGVkCiAgIGJ5IExvcmVuem8gQ29saXR0aSAobGNvbGl0dGkpLCB3aGljaCBhZGRzIG1pc3NpbmcgbmV0LXNubXAtY29uZmlnLmgKICAgCjIwMDItMDUtMjEgMDU6MzIgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBmaXggY29yZSBkdW1wIGluIC11IG9wdGlvbiBwcm9jZXNzaW5nLCBub3RlZCBieSBBbmRyZWFzIE1hdXMKICAgCjIwMDItMDUtMjEgMDU6MjAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5LmMgKFY0LTItcGF0Y2hlcy45KSwgbWVtb3J5LmMKOgoKICAgTGF0Y2ggbWVtb3J5IHJlcG9ydGluZyBhdCAyXjMxLTEsIHJhdGhlciB0aGFuIDJeMzItMSBzaW5jZSB0aGVzZQogICBvYmplY3RzIGFyZSBkZWZpbmVkIGFzIChzaWduZWQpIEludGVnZXIzMi4KICAgT25seSBsYXRjaCBpZiB0aGUgdmFsdWUgaXMgKmdyZWF0ZXIqIHRoYW4gdGhpcyB0aHJlc2hvbGQsIG5vdCBsZXNzIQogICAKMjAwMi0wNS0yMSAwMToyMCAgamJwbgoKICAgKiBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi91Y2RfY29tcGF0LmMKOgoKICAgICAtIGFkZCBjb21wYXRpYmlsaXR5IGRlZmluaXRpb25zIGFuZCBmdW5jdGlvbnMgZm9yIG5ld2x5LXJlbmFtZWQKICAgICAgIGRlZmF1bHQgc3RvcmUgbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzIChkZWZpbmVkIGlmZgogICAgICAgLS1lbmFibGUtdWNkLWNvbXBhdGliaWxpdHkgaXMgZ2l2ZW4gdG8gYXQgY29uZmlndXJhdGlvbiB0aW1lKQogICAKMjAwMi0wNS0yMSAwMDo1MSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgICAgLSBtb3ZlIGRlZmluaXRpb24gb2YgbmV0c25tcF9kc19yZWFkX2NvbmZpZyB0eXBlIGZyb20gZGVmYXVsdF9zdG9yZS5oCiAgICAgICBpbnRvIGRlZmF1bHRfc3RvcmUuYyAoc2luY2UgaXQgaXMgbm90LCBhbmQgc2hvdWxkIG5vdCwgYmUgdXNlZAogICAgICAgZWxzZXdoZXJlKS4KICAgCjIwMDItMDUtMjAgMDM6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIHJlZ2lzdGVycyB0b2tlbnMgZm9yIGlwdjYgcm8vcncgY29tbXVuaXR5LCBhbmQgbWFrZSBzdXJlIHRvIHBhcnNlIHRoZW0KICAgYXMgaXB2Niwgbm90IHY0LgogICAKMjAwMi0wNS0xOSAxMTozOCAgZHJpZWh1aXMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBCdWdmaXggZm9yIEZyZWVCU0Qgc3VwcG9ydCBvZiB0aGUgZGlza0lPIG1pYi4gVGhlIG9yaWdpbmFsIGNvZGUgbmVnbGVjdGVkCiAgIHRoZSBkZXZpY2UgbnVtYmVyLCB3aGljaCBtYWRlIGRpc3Rpbmd1aXNoaW5nIGJldHdlZW4sIHNheSwgYWQwIGFuZCBhZDEKICAgaW1wb3NzaWJsZS4KICAgCjIwMDItMDUtMTcgMDk6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gc2xpZ2h0bHkgcmVkdWNlIG1lbW9yeSBjb3N0cyBvZiByZWdpc3RhcnRpb25zCiAgIAoyMDAyLTA1LTE2IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBkZWZhdWx0IHN0b3JlIHRhZyBuYW1lcy4KICAgZml4IGluaXRfc25tcCgpIGRlZmluaXRpb24gdG8gbWF0Y2ggbm9ybWFsIHBlcmwgbm9uLWFuc2kgbW9kZS4KICAgCjIwMDItMDUtMTYgMTY6MzkgIGRyaWVodWlzCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIE1ha2Ugc3VyZSAtLWNmbGFncyBzcGl0cyBvdXQgdGhlIHJlcXVpcmVkIGluY2x1ZGUgcGF0aCB3aGVuIGluc3RhbGxpbmcKICAgaW4gYSBub24tZGVmYXVsdCBsb2NhdGlvbiwgYXMgZG9jdW1lbnRlZCBpbiB0aGUgdXNhZ2UgaW5mbyBpbiB0aGUgc2NyaXB0LgogICAKMjAwMi0wNS0xNiAxNTozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvc3lzdGVtOgoKICAgYWRkIGEgbGluZSB0byB0aGUgc3lzU2VydmljZXMgcHJvbXB0IHNheWluZyBpZiB5b3UgZG9uJ3Qga25vdywgc2F5IG5vLgogICAKMjAwMi0wNS0xNiAxMjo1NSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwKICAgZGVmYXVsdF9zdG9yZS54czoKCiAgIHVwZGF0ZSB0byBuZXcgZGVmaW5lIGxpc3QKICAgCjIwMDItMDUtMTYgMTI6NTUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS90ZXN0LnBsOgoKICAgdGVzdCBzY3JpcHQKICAgCjIwMDItMDUtMTYgMTI6NDkgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9nZW46CgogICBhdXRvZ2VuZXJhdGlvbiBzY3JpcHQKICAgCjIwMDItMDUtMTYgMTA6NTggIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sIGRlZmF1bHRfc3RvcmUueHMKLCB0ZXN0LnBsOgoKICAgdXBkYXRlcyB0byBuZXcgLmggdG9rZW5zCiAgIAoyMDAyLTA1LTE2IDEwOjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZ2VuOgoKICAgLmggLT4gcGVybG1vZHVsZSByZWdlbmVyYXRpb24gc2NyaXB0CiAgIAoyMDAyLTA1LTE2IDA3OjA5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBDb25zb2xpZGF0ZSB0aGUgdmFyaW91cyBPSUQgb3V0cHV0IGNvbmZpZ3VyYXRpb24gbWVjaGFuaXNtcyBpbnRvIG9uZS4KICAgVGhpcyBkb2VzIG5vdCBhZmZlY3QgdGhlIGNvbW1hbmQtbGluZSBvcHRpb25zICh5ZXQhKSAtIGp1c3QgdGhlIGludGVybmFscy4KICAgCjIwMDItMDUtMTUgMTc6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBmaXggZGVmYXVsdF9zdG9yZQogICAKMjAwMi0wNS0xNSAxNzoyMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGF1dG9jb25mCiAgIAoyMDAyLTA1LTE1IDE3OjIwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY3JlYXRlIGEgZGVmaW5lIGxvY2F0aW9uIGZvciBIQVZFX0dFVERFVlMKICAgCjIwMDItMDUtMTUgMTc6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBkZXBlbmQgdXBkYXRlLCB3aGljaCBJIG1lYW50IHRvIGNoZWNrIGluIGJlZm9yZSB0aGUgNS4wLjEgcmVsZWFzZQogICAKMjAwMi0wNS0xNSAwNTo1MyAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMsIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50X3JlZ2lzdHJ5LmMsIGF1dG9fbmxpc3QuYywga2VybmVsLmMsCiAgIHNubXBfYWdlbnQuYywgc25tcF9wZXJsLmMsIHNubXBfdmFycy5jLCBzbm1wZC5jCjoKCiAgICAgLSB1c2UgbmV3IG5ldHNubXBfZHNfYmxhaCBmdW5jdGlvbnMgYW5kIGNvbnN0YW50cwogICAKMjAwMi0wNS0xNSAwNTozOSAgamJwbgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywgYXBwcy9ub3RpZmljYXRpb25fbG9nLmgsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYwosIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHVzbS5jLAogICBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgICAgLSB1c2UgbmV3IG5ldHNubXBfZHNfYmxhaCBmdW5jdGlvbnMgYW5kIGNvbnN0YW50cwogICAKMjAwMi0wNS0xNSAwNTozNyAgamJwbgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5jLCBtaWIuYywgcGFyc2UuYywKICAgcmVhZF9jb25maWcuYywgc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jCiwgc25tcF9hbGFybS5jLCBzbm1wX2FwaS5jLCBzbm1wX2xvZ2dpbmcuYywKICAgc25tcF9wYXJzZV9hcmdzLmMsIHNubXBfc2VjbW9kLmMsIHNubXB1c20uYywKICAgc25tcHYzLmMsIHVjZF9jb21wYXQuYywgdmFjbS5jOgoKICAgICAtIHJlbmFtZSBmdW5jdGlvbnMgYW5kIGNvbnN0YW50cyBmcm9tIGRlZmF1bHRfc3RvcmUgZnJvbSBkc19ibGFoCiAgICAgICB0byBuZXRzbm1wX2RzX2JsYWgKICAgCjIwMDItMDUtMTUgMDI6MDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYyAoVjQtMi1wYXRjaGVzLjApLCBzbXV4LmM6CgogICAgIC0gaW5pdGlhbGlzZSBzbXV4X2xpc3Rlbl9zZCB0byBhdm9pZCBwcm9ibGVtcyBub3RlZCBpbiBidWcgIzU0NTQ0OAogICAgICAgKGEgYml0IHVucmVhc29uYWJsZSBpbiBteSB2aWV3IGJ1dCBpdCBjYW4ndCBkbyBhbnkgaGFybSkuCiAgIAoyMDAyLTA1LTE0IDEyOjQwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcHJlY2lzaW9uIGV4dHJhY3Rpb24gb2YgdHVtb3IgaW5zdGVhZCBvZiBhbXB1dGF0aW9uLCBvciwgaWZkZWYgc2VhcmNoLmgKICAgZnVuY3Rpb25zIHRoYXQgYXJlbid0IGVzc2VudGlhbCB0byB0YWJsZV9hcnJheSBvcGVyYXRpb24gYW5kIHdpbGwgcHJvYmFibHkKICAgdmFuaXNoIGluIHRoZSBuZWFyIGZ1dHVyZSBhbnl3YXkuCiAgIAoyMDAyLTA1LTEzIDIwOjE2ICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYzoKCiAgIGZpeCB0eXBlIGluIHNpemVvZgogICAKMjAwMi0wNS0xMyAxMzowNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYwosIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDaGVjayBmb3Igc2VhcmNoLmggYmVmb3JlIGNvbXBpbGluZyB0aGUgdGFibGVfYXJyYXkgaGVscGVyCiAgIAoyMDAyLTA1LTEzIDA4OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIHJlbW92ZSBDKysgY29tbWVudHMKICAgCjIwMDItMDUtMTMgMDA6MzkgIGRyaWVodWlzCgogICAqIENoYW5nZUxvZzoKCiAgIE5vdGUgY2hhbmdlcyB0byBjb25maWd1cmUuaW4uCiAgIAoyMDAyLTA1LTEyIDEwOjMwICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW46CgogICBNYWtlIHN1cmUgdGhlIGNoZWNrcyBmb3Iga3ZtIHJlbGF0ZWQgc3R1ZmYgaGFwcGVucyB3aGVuIC1sa3ZtIGlzIGluIHNjb3BlLgogICBBZGQgZGV0ZWN0aW9uIG9mIHRoZSAtbGRldnN0YXQgcmVxdWlyZW1lbnQgd2hlbiBidWlsZGluZyB3aXRoIHVjZC1zbm1wL2Rpc2tpby4KICAgCjIwMDItMDUtMTAgMjM6MzMgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC4xICkKICAgCjIwMDItMDUtMTAgMjM6MDUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGxpYnRvb2wgdmVyc2lvbiBpbmMKICAgCjIwMDItMDUtMTAgMjI6MzIgIGhhcmRha2VyCgogICAqIE5FV1MsIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjEKICAgCjIwMDItMDUtMTAgMTc6MDkgIGhhcmRha2VyCgogICAqIEZBUSwgTkVXUywgUkVBRE1FLCBSRUFETUUuYWdlbnR4OgoKICAgbWVudGlvbiB0dXRvcmlhbC01IGluc3RlYWQgb2YgdHV0b3JpYWwKICAgCjIwMDItMDUtMTAgMTc6MDQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvOiBNYWtlZmlsZS5QTCwgYWdlbnQucG0sCiAgIG5ldHNubXBfcmVxdWVzdF9pbmZvLnBtOgoKICAgcmVxdWVzdCBpbmZvIHBlcmwgY29kZSBtb3ZlZCB0byBzZXBhcmF0ZSBmaWxlLgogICAKMjAwMi0wNS0xMCAxNzowMSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIE9JRCBidWlsZGluZyBvdmVybG9hZHMuCiAgIAoyMDAyLTA1LTEwIDE2OjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBBZGQgcHJvcGVyIGxlbmd0aCBzZWdtZW50IHRvIHRoZSBidWlsZCB2aWV3IE9JRC4KICAgCjIwMDItMDUtMTAgMTQ6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBuZXcgZG9jIHBhdGNoIGZyb20gQXhlbCBLaXR0ZW5iZXJnCiAgIAoyMDAyLTA1LTEwIDE0OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jIChWNC0yLXBhdGNoZXMuMCksIHZhY21fdmFycy5jCjoKCiAgIGZpeCB2YWNtIHByb2JsZW0gb24gc2V0cyB3aXRoIE9JRHMgY29udGFpbmluZyBsYXJnZSBudW1iZXJzIGFzIG5vdGVkCiAgIGJ5IFZpbmF5IEdhb25rYXIgb24gdGhlIC1jb2RlcnMgbWFpbGluZyBsaXN0LgogICAKMjAwMi0wNS0xMCAxMzo0NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggY2FsbGluZyBvbiBtdWx0aXBsZSB0YWJsZXMKICAgCjIwMDItMDUtMTAgMDM6MjMgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBNZXJnZSAiU1RSSU5HOiBIZXg6IiB0eXBlIHRva2VucyBpbnRvIGEgc2luZ2xlIHRva2VuICJIZXgtU1RSSU5HOiIKICAgCjIwMDItMDUtMTAgMDM6MTIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIFJlcG9ydCBub24tZXhpc3RlbnQgc3ViaW5zdGFuY2VzIGFzICdub1N1Y2hJbnN0YW5jZScgcmF0aGVyIHRoYW4gJ25vU3VjaE9iamVjdCcuCiAgICJzbm1wZ2V0IC4uLi4gLjEuMy42LjEuNi4zLjEyLjEuNS4wLjk5IiBub3cgcmVzcG9uZHMgY29ycmVjdGx5LgogICAodGhvdWdoICJzbm1wZ2V0IC4uLi4gLjEuMy42LjEuNi4zLjEyLjEuNS4xIiBzdGlsbCByZXR1cm5zICdub1N1Y2hPYmplY3QnKQogICAKICAgQWxzbyBndWVzcyB0aGF0IGZhaWxlZCBTRVQgcmVxdWVzdHMgYXJlICdub0NyZWF0aW9uJyBlcnJvcnMgKHdoaWNoIGlzCiAgIHByb2JhYmx5IHRoZSBtb3N0IGxpa2VseSBvcHRpb24pLgogICAKMjAwMi0wNS0wOSAxNTo1NCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBleGl0IHByb3Blcmx5IHdoZW4gYSBzdWJkaXIgZmFpbHMgdG8gbWFrZSBwcm9wZXJseQogICAKMjAwMi0wNS0wOSAxNTozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGNyZWF0ZSBhIHRva2VuIGZvciB0aGUgLU92IGVxdWl2ZWxhbnQKICAgCjIwMDItMDUtMDkgMDk6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X3NvbGFyaXMyLmMgKFY0LTItcGF0Y2hlcy41KSwKICAgbWVtb3J5X3NvbGFyaXMyLmM6CgogICBwYXRjaCBmcm9tIFRha3VtaSBLYWRvZGUgdG8gZml4IG1lbW9yeSB1c2FnZSBvbiBzb2xhcmlzCiAgIAoyMDAyLTA1LTA5IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIHVwZGF0ZXMgZnJvbSBtYWxsb2NlZCB2bXN0YXQgZml4ZXMgZnJvbSBwYXRjaGVzIGJyYW5jaAogICAKMjAwMi0wNS0wOCAxNjozNCAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgbmV3IC0tY29tcGlsZS1zdWJhZ2VudCBmZWF0dXJlczoKICAgICAtLWNmbGFncwogICAgIC0tbm9ybQogICAgIC0tbGRmbGFncwogICAgIGluY2x1ZGVzIGhlYWRlciBmaWxlcwogICAgIG1pc2Mgb3RoZXIgYnVnIGZpeGVzLgogICAKMjAwMi0wNS0wOCAxMzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBtYWtlIHRoZSBzdWJhZ2VudCBwcm9wZXJseSBjYWxsIHRoZSByZXNlcnZlMiBzdGF0ZSBhZ2Fpbi4KICAgCjIwMDItMDUtMDggMTA6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgcnVuIGluZGVudAogICAKMjAwMi0wNS0wOCAwOTowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICB1bSwgdXNlIDMwIHNlY29uZHMgbGlrZSBhZHZlcnRpc2VkLgogICAKMjAwMi0wNS0wOCAwODo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5oLAogICBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBkZWZpbmUgYSBiZXR0ZXIgbm90aWZpY2F0aW9uIGV4YW1wbGUgKG5vIHJlcXVlc3RzLiAganVzdCBhbGFybSAtPiBzZW5kKQogICAKMjAwMi0wNS0wNyAyMjo0NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICB1cGRhdGUgdG8gY3VycmVudCBpbmRlbnQgY29tbWFuZAogICAKMjAwMi0wNS0wNyAyMjo0NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIG1vdmUgdGV4dCBpbiBjb21tZW50IGxlZnQgc2xpZ2h0ICh3YXMgdG9vIGxvbmcpLgogICAKMjAwMi0wNS0wNyAyMjo0MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBlbnVtIGZpeGVzLgogICAKMjAwMi0wNS0wNyAyMjo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgbWliMmMuY29sdW1uX2RlZmluZXMuY29uZiwKICAgbWliMmMuY29sdW1uX2VudW1zLmNvbmYsIG1pYjJjLmNvbmY6CgogICBOZXcgbWliMmMgZmlsZXMgZm9yIGdlbmVyYXRpbmcgaGVhZGVycyBmdWxsIG9mIGNvbHVtbiBudW1iZXIgZGVmaW5lcwogICBhbmQgZW51bSBkZWZpbmVzLgogICAKMjAwMi0wNS0wNyAyMjo0MCAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgLSAtLWNvbXBpbGUtc3ViYWdlbnQgYWdlbnQgbGlicmFyeSByZW9yZGVyaW5nIHNvIGl0IGFjdHVhbGx5IHdvcmtzLgogICAtIC0tY29tcGlsZS1zdWJhZ2VudCBub3cgc3VwcG9ydHMgLm8gZmlsZXMgKHByZWNvbXBpbGVkIGNvZGUpLgogICAKMjAwMi0wNS0wNyAyMjozMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlOgoKICAgaG1tLiAgbWlzc2VkIHNvbWUgY2hlY2tpbiBmaWxlcy4KICAgCjIwMDItMDUtMDcgMTE6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90LzogY29uZnRlc3QuY29uZiwgc3RhcnRhZ2VudC5wbCwgY29uZi50CjoKCiAgIHRlc3QgZm9yIGNvbmZpZ3VyYXRpb24gZmlsZS9kZWZhdWx0X3N0b3JlIHN1cHBvcnQKICAgCjIwMDItMDUtMDcgMTE6MTQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBtYWtlIGluaXRfc25tcCgpIHRha2UgYSBjaGFyICogYXJndW1lbnQgbGlrZSB0aGUgcmVhbCBBUEkKICAgCjIwMDItMDUtMDcgMTE6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIHR5cG9zLgogICAKMjAwMi0wNS0wNyAwOTo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBmaXggdGhlIC1nIGZsYWcuCiAgIAoyMDAyLTA1LTA3IDA5OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBjYWxsIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IgbGlrZSBhIGdvb2QgYm95LgogICAKMjAwMi0wNS0wNiAyMDo0MyAgcnN0b3J5CgogICAqIG1pYnMvTWFrZWZpbGUubWliOgoKICAgZml4IG1pc3NpbmcgJCBub3RlZCBieSBKb2huIE1pbGxzIG9uIHRoZSBjb2RlcnMgbGlzdAogICAKMjAwMi0wNS0wNiAxNjoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLCBzbm1wbGliL3NubXBfYXBpLmMKICAgKFY0LTItcGF0Y2hlcy5bNCwyLDMsM10pLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgdXNlIHNpemVfdCB3aGVuIHNvY2tsZW5fdCBpcyBub3QgYXZhaWxhYmxlIChjb3JyZWN0bHkgZG9uZSB0aGlzIHRpbWUpCiAgIAoyMDAyLTA1LTA2IDE1OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFRDUERvbWFpbi5jLCBzbm1wVENQSVB2NkRvbWFpbi5jLAogICBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKOgoKICAgdXNlIHNpemVfdCB3aGVuIHNvY2tsZW5fdCBpcyBub3QgYXZhaWxhYmxlCiAgIAoyMDAyLTA1LTA2IDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4KICAgKFY0LTItcGF0Y2hlcy5bMyw3LDEsMl0pLCBhY2NvbmZpZy5oLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHVzZSBzaXplX3Qgd2hlbiBzb2NrbGVuX3QgaXMgbm90IGF2YWlsYWJsZQogICAKMjAwMi0wNS0wNiAxNToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfaHB1eC5jLCBtZW1vcnlfaHB1eC5oCiwgdm1zdGF0X2hwdXguYywgdm1zdGF0X2hwdXguaDoKCiAgIHJ1biBpbmRlbnQKICAgCjIwMDItMDUtMDYgMTU6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2hwdXguYywgbWVtb3J5X2hwdXguaAosIHZtc3RhdF9ocHV4LmMsIHZtc3RhdF9ocHV4Lmg6CgogICBQYXRjaGVzICM1NTE5MTQrIGZyb20gR2FyeSBFZHdhcmRzIHRvIHN1cHBvcnQgaHB1eDExIGZvciBtZW1vcnkgYW5kIHZtc3RhdCBtb2R1bGVzCiAgIAoyMDAyLTA1LTA2IDE1OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgYWRkIG5ldyBocHV4IG1vZHVsZXMKICAgCjIwMDItMDUtMDYgMTQ6MzQgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG5ldyBjb250cmlidXRvcnMuCiAgIAoyMDAyLTA1LTA2IDE0OjMyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBtYW4vc25tcGNtZC4xLmRlZgosIHNubXBsaWIvbWliLmM6CgogICBQYXRjaCAjNTUxNDg5OiBGcm9tIEplZmZyZXkgV2F0c29uIHRvIGFkZCBhIC1RIG9wdGlvbiBmb3IgcXVpY2sgYnV0IHcvIGFuICc9JwogICAKMjAwMi0wNS0wNiAxNDoyOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgY2hhbmdlIC1EIGRvY3VtZW50YXRpb24gdG8gcmVmbGVjdCBjdXJyZW50IGNvZGUuCiAgIAoyMDAyLTA1LTA2IDE0OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBtaXNjIHNtYWxsIGJ1Z3MgYW5kIGVycm9yIG1lc3NhZ2Ugd29yZGluZyBmaXhlcy4KICAgCjIwMDItMDUtMDYgMDk6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMgKFY0LTItcGF0Y2hlcy45KSwgc211eC5jOgoKICAgYnVnICM1NDcwMTA6IGZpeCBzbXV4IGF1dGggYnVnIGFzIHJlcG9ydGVkIGFuZCBmaXhlZCBieSBTdGVmYW4gUmFkbWFuCiAgIAoyMDAyLTA1LTAxIDIzOjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdHdlYWtzIGZvciB1cGRhdGUgdG8gdGFibGVfYXJyYXkKICAgCjIwMDItMDUtMDEgMjM6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGFkZCBvYmplY3RfbW9uaXRvciBzdHVmZgogICAKMjAwMi0wNS0wMSAyMjo0NiAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBhZGQgY2hlY2tfdmFyYmluZCBzdHVmZgogICAKMjAwMi0wNS0wMSAyMjo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgY29udmVuaWVuY2UgZnVuY3Rpb25zIGZvciB2YWxpZGF0aW9uIHZhYnJpbmQgaW5mbwogICAKMjAwMi0wNS0wMSAyMjo0MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgZG8gSSByZWFsbHkgaGF2ZSB0byBkbyB0aGlzPyBzaWdoLiBPaywgcmVuYW1lIGRlYnVnIHRva2VuOyByZXZhbXAgbG9naWMgdG8KICAgbW9kaWZ5IHJvd3MgaW4gcGxhY2UsIGtlZXBpbmcgdW5kbyBpbmZvICh2cyBhbHdheXMgY2hhbmdpbmcgYSBjb3B5IG9mIGEgcm93CiAgIGFuZCBzd2FwcGluZyByb3dzIHdoZW4gc2V0IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkpIHRvIGFsbG93IGV4dGVybmFsIGNvZGUKICAgdG8ga2VlcCBwb2ludGVycyB0aGF0IGRvbid0IGRpc2FwcGVhciBvbiB0aGVtOyBhZGQgYSBmZXcgY2FsbGJhY2tzLCBpbmNsdWRpbmcKICAgcm93X2NvbXBhcmUsIHNvIHRhYmxlX2FycmF5IGNhbiBtYWludGFpbiB0aGUgc2Vjb25kYXJ5IGluZGV4IHRyZWU7IGRvbid0IGNhbGwKICAgY2FuX2FjdGl2YXRlL2Nhbl9kZWxldGUgdW5sZXNzIHdlIGFyZSBhY3R1YWxseSB0cnlpbmcgdG8gYWN0aXZhdGUvZGVsZXRlIHJvdzsKICAgYWRkIHNrZWxldG9uIChpZmRlZidkIG91dCkgY29kZSBmb3IgY29vcGVyYXRpdmUgbm90aWZpY2F0aW9ucyBvZiByb3cgZXZlbnRzOwogICB1cGRhdGUgY2hhbmdpbmcgYXJyYXkgaW4gY29tbWl0ICYgdW5kbyBjYXNlcywgbm90IGp1c3QgY29tbWl0OyBjaGFuZ2UgdHlwZGVmcwogICBmb3IgYSBmZXcgY2FsbGJhY2sgcG9pbnRlcnM7IHVtbW1tLi4uIEkgKnRoaW5rKiB0aGF0J3MgaXQuLi4uOi0pCiAgIAoyMDAyLTA1LTAxIDE3OjMwICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IE9JRC5wbSwgT0lELnhzLCB0ZXN0LnBsOgoKICAgQWRkIGluZGV4IGJ1aWxkaW5nIHRvIHRoZSArIG9wZXJhdG9yLgogICAKMjAwMi0wNS0wMSAwOTo1MiAgaGFyZGFrZXIKCiAgICogcGVybC86IE9JRC9PSUQucG0sIE9JRC9PSUQueHMsIGFnZW50L01ha2VmaWxlLlBMCiwgYWdlbnQvYWdlbnQucG0sIGFnZW50L2FnZW50LnhzLCBhZ2VudC90ZXN0LnBsCiwgYWdlbnQvdHlwZW1hcDoKCiAgIE1ha2UgZ2V0T0lEIGZvciByZXF1ZXN0cyByZXR1cm5lZCBhIE5ldFNOTVA6Ok9JRCBibGVzc2VkIHJlZmVyZW5jZS4KICAgSSdtIG5vdCBoYXBweSBhYm91dCBob3cgdGhpcyBpcyBkb25lLCBidXQgYWxsIGF0dGVtcHRzIHRvIGRvIGl0CiAgIGNvcnJlY3RseSBvbmx5IGxlZnQgbWUgaW4gY29uZnVzaW9uLgogICAKMjAwMi0wNS0wMSAwOTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCjoKCiAgIENoYW5nZSB0aGUgZG9tYWluIE9JRHMgdG8gcG9pbnQgdG8gdGhlIG5ldC1zbm1wIGRvbWFpbnMgY3JlYXRlZCBieSBEYXZlLgogICBUaGlzIGZpeGVzIGJ1ZyAjNTQ0MjQ1IGFzIHdlbGwuCiAgIAoyMDAyLTA1LTAxIDA5OjMwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEFkZCB0aGUgT0lEIHBlcmwgbW9kdWxlIHRvIHRoZSBsaXN0IG9mIG1vZHVsZXMuCiAgIAoyMDAyLTA1LTAxIDA3OjQ1ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELVNOTVAtTUlCLnR4dCAoVjQtMi1wYXRjaGVzLjApLCBVQ0QtU05NUC1NSUIudHh0OgoKICAgcmVtb3ZlIG9sZCAoYW5kIGNvbmZsaWN0aW5nIHdpdGggdHJhcHMpIHRyYW5zcG9ydCBkb21haW4gT0lEcwogICAKMjAwMi0wNS0wMSAwNjoxOSAgZHRzMTIKCiAgICogbWFuLzogc25tcGJ1bGtnZXQuMS5kZWYsIHNubXBidWxrd2Fsay4xLmRlZiwKICAgc25tcGNtZC4xLmRlZiwgc25tcGRlbHRhLjEsIHNubXBnZXQuMS5kZWYsCiAgIHNubXBzZXQuMS5kZWYsIHNubXBzdGF0dXMuMS5kZWYsIHNubXB0ZXN0LjEuZGVmLAogICBzbm1wd2Fsay4xLmRlZjoKCiAgIEFkZCB0eXBlIHRhZ3MgIlNUUklORzogIiBhbmQgIklOVEVHRVI6ICIgdG8gZXhhbXBsZSBvdXRwdXQuCiAgIEFkZCBleHBsaWNpdCBzZXR0aW5nIG9mIHByb3RvY29sIHZlcnNpb24gdG8gZXhhbXBsZSBjb21tYW5kcy4KICAgCjIwMDItMDUtMDEgMDM6MzQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi86IGFndXRpbC5jLCBhZ3V0aWwuaCwKICAgYWd1dGlsX2FwaS5oLCBhbGFybS5jLCBhbGFybS5oLCBldmVudC5jLAogICBldmVudC5oLCBoaXN0b3J5LmMsIGhpc3RvcnkuaCwgcm93X2FwaS5oLAogICByb3dzLmMsIHJvd3MuaCwgc3RhdGlzdGljcy5jLCBzdGF0aXN0aWNzLmg6CgogICAgIC0gcmVtb3ZlIENWUyBMb2c6IGVudHJpZXMgd2hpY2ggYXJlIGNhdXNpbmcgcHJvYmxlbXMgc2luY2UgdGhleSBhcmUKICAgICAgIGVtYmVkZGVkIGluIGEgY29tbWVudCwgYnV0IHNvbWUgb2YgdGhlIGxvZyBlbnRyaWVzIGNvbnRhaW4gY29tbWVudAogICAgICAgZGVsaW1pdGVycy4KICAgCjIwMDItMDQtMzAgMjI6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcmVtb3ZlIG5ldHNubXBfcHJvY2Vzc2luZ19zZXQsIGl0IGxpdmVzIGluIHNubXBfYWdlbnQuYwogICAKMjAwMi0wNC0zMCAyMjoxMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsIHNubXBsaWIvc25tcC10Yy5jCjoKCiAgIHJlbW92ZSB1bnVzZWQgcGFyYW1ldGVyOyBhbGxvdyBOT05FIGFzIG9sZCB2YWx1ZSBmb3Igc3RvcmFnZSB0eXBlIHRyYW5zdGlvbnMKICAgCjIwMDItMDQtMzAgMjI6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICByZW1vdmUgb3Zlcmx5IGNvbXBsZXggbWFjcm8gc3R1ZmYgZm9yIHJvd3N0YXR1cy9zdG9yYWdldHlwZQogICAKMjAwMi0wNC0zMCAwOToyOCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiBNYWtlZmlsZS5QTCwgT0lELnBtLCBPSUQueHMsIFJFQURNRQosIHRlc3QucGw6CgogICAtIGFsbG93IGNvbnZlcnNpb25zIHRvIGFuIGFycmF5IChuZWVkcyB0byBiZSB0aWVkIHN0aWxsKS4KICAgLSBkb2N1bWVudGF0aW9uLgogICAKMjAwMi0wNC0zMCAwODoxNSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4zKSwgc25tcGQuYzoKCiAgICAgLSBmaXggYnVnICM1NDU3NzUsIHJlcG9ydGVkIGJ5IERhdmUgRGVuc29uLCB3aGVyZWJ5IHRoZSBQSUQgb2YgYW4KICAgICAgIGFscmVhZHktcnVubmluZyBzbm1wZCB3b3VsZCBiZSBvdmVyd3JpdHRlbiBieSBzdGFydGluZyBhIG5ldyBzbm1wZAogICAgICAgKHdoaWNoIHdvdWxkIHRoZW4gZXhpdCwgbGVhdmluZyB0aGUgb3JpZ2luYWwgc25tcGQgcnVubmluZyBhbmQgdGhlCiAgICAgICB3cm9uZyBQSUQgaW4gdGhlIGZpbGUpLiAgU29sdXRpb24gaXMgbm90IHRvIHdyaXRlIHRoZSBQSUQgdW50aWwgd2UKICAgICAgIGhhdmUgc3VjY2Vzc2Z1bGx5IG9wZW5lZCBhbGwgb3VyIHNvY2tldHMuCiAgIAoyMDAyLTA0LTMwIDA3OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IC5jdnNpZ25vcmUsIENoYW5nZXMsIE1BTklGRVNULAogICBNYWtlZmlsZS5QTCwgT0lELnBtLCBPSUQueHMsIFJFQURNRSwKICAgdGVzdC5wbCwgdHlwZW1hcDoKCiAgIE9JRCBwZXJsIG1vZHVsZSBzbyB5b3UgY2FuIGRvIHNpbXBsZSBPSUQgbWFuaXB1bGF0aW9ucyB3aXRoaW4gcGVybCBlYXNpbHk6CiAgICAgLSBFeGFtcGxlOiAgbmV3IE5ldFNOTVA6Ok9JRCgnaW50ZXJmYWNlcycpID4gbmV3IE5ldFNOTVA6Ok9JRCgnc3lzdGVtJykKICAgCjIwMDItMDQtMjkgMTY6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICByZWdleHAgZml4IGZvciB3aGl0ZSBzcGFjZSBjaGVja3MgaW4gaW5kZW50IGZvcm1hdHRlZCBjb2RlCiAgIAoyMDAyLTA0LTI5IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHJlb3JkZXIgcGVybCBtb2R1bGUgbmFtZXMgdG8gcmVmbGVjdCAobmV3KSBkZXBlbmRlbmNpZXMuCiAgIAoyMDAyLTA0LTI5IDA5OjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9taWIudDoKCiAgIGZpeCBhIGZldyB3YXJuaW5ncyBvbiBmYWlsZWQgdGVzdHMgKGp1c3Qgc2NyZWVuIGNsZWFudXBzKQogICAKMjAwMi0wNC0yOSAwOTo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFNOTVAucG06CgogICBNYWtlIHRoZSBwZXJsIG1vZHVsZSByZXNwZWN0IHNubXAuY29uZiBzZXR0aW5ncyAoZmluYWxseSkuCiAgICAgLSBOb3cgcmVxdWlyZXMgYSBkZXBlbmRlbmN5IG9uIHRoZSBOZXRTTk1QOjpkZWZhdWx0X3N0b3JlIG1vZHVsZSB0aG91Z2guCiAgIAoyMDAyLTA0LTI3IDA4OjE5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZG9uJ3QgcHJvY2VzcyBzZXQgcmVxdWVzdCB0aWxsIGRlbGVnYXRlZCByZXF1ZXN0cyBhcmUgY29tcGxldGUsIGFuZCBxdWV1ZQogICBhbnkgb3RoZXIgcmVjZWl2ZWQgcGFja2V0cyB1bnRpbCBhIHNldCBoYXMgY29tcGxldGVkIHByb2Nlc3NpbmcuCiAgIAoyMDAyLTA0LTI3IDA4OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY2xlYW4gdXAgY29tbWVudHMgbXVuZ2VkIGJ5IGluZGVudAogICAKMjAwMi0wNC0yNyAwODowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oOgoKICAgYWRkIG1pc3NpbmcgcHJvdG90eXBlIHRvIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA0LTI3IDA4OjA3ICByc3RvcnkKCiAgICogYWdlbnQvOiBvYmplY3RfbW9uaXRvci5jLCBoZWxwZXJzL3RhYmxlLmMsCiAgIGhlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGlmZGVmIGd5bW5hc3RpY3MgdG8gbWFrZSBzdXJlIGFzc2VydHMgYXJlIG9ubHkgY29tcGlsZWQgaW4gb25seSBpZiBleHBsaWNpdHkKICAgcmVxdWVzdGVkCiAgIAoyMDAyLTA0LTI2IDIxOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBmaXggdW5iYWxhbmNlZCBlbmRpZiBvbiBsaW51eC4gaG9wZSBJIGRpZG4ndCBicmVhayBhbnl0aGluZyBlbHNlLgogICAKMjAwMi0wNC0yNiAxOToxNCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBmaXggdW51c2VkIHZhciB3YXJuaW5nIGZvciAhd2luZG93cwogICAKMjAwMi0wNC0yNiAxNDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oOgoKICAgZml4IE9JRF9MRU5HVEggZGVmaW5pdGlvbnMKICAgCjIwMDItMDQtMjYgMTA6NTMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBwZXJsL0FTTi9NYWtlZmlsZS5QTCwKICAgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIGZpeCAtLXdpdGgtcGVybC1tb2R1bGVzIGluIG1ha2VmaWxlcy4gIE1ha2UgZXZlcnl0aGluZyB1c2UKICAgbmV0LXNubXAtY29uZmlnLCAuLi4KICAgCjIwMDItMDQtMjYgMTA6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBSRUFETUUsIFNOTVAucG06CgogICAtIENsZWFudXAuCiAgIC0gTWFrZSBidWlsZGFibGUgZnJvbSB3aXRoaW4gdGhlIHNvdXJjZS4KICAgLSBDaGFuZ2UgZG9jdW1lbnRhdGlvbiByZWZlcmVuY2VzIGZvciB1Y2Qtc25tcAogICAtIENoYW5nZSBjb250YWN0IGxvY2F0aW9uIHRvIG5ldC1zbm1wLXVzZXJzIChwZXIgSm9lJ3MgYWdyZWVtZW50KQogICAKMjAwMi0wNC0yNiAxMDoxOSAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlLzogTUFOSUZFU1QsIE1ha2VmaWxlLlBMLCBSRUFETUUKLCBkZWZhdWx0X3N0b3JlLnBtLCB0ZXN0LnBsOgoKICAgLSBjbGVhbnVwLgogICAtIFVzZSBuZXQtc25tcC1jb25maWcgdG8gZmluZCBsaWJyYXJ5LCBldGMuCiAgIC0gTWFrZSBidWlsZGFibGUgZnJvbSB3aXRoaW4gdGhlIHNvdXJjZS4KICAgLSBhIGZldyBtb3JlIHRlc3RzIGFkZGVkCiAgIC0gdXNlIGNvcnJlY3QgbGlicmFyaWVzCiAgIC0gYWRkIGRvY3VtZW50YXRpb24KICAgCjIwMDItMDQtMjYgMDQ6MjIgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRXh0cmFjdGluZyB0aGUgdmVyc2lvbiBmcm9tICdzbm1wbGliL3NubXBfdmVyc2lvbi5jJyBuZWVkcyB0byB0YWtlIGFjY291bnQKICAgb2YgYmxhbmsgc3BhY2UuICBSZXBvcnRlZCBieSBTdGVmYW4gUmFkbWFuIChCdWcgIzU0NzM3OSkKICAgCjIwMDItMDQtMjYgMDQ6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5LmMgKFY0LTItcGF0Y2hlcy44KSwgbWVtb3J5LmMKOgoKICAgSGFuZGxlIG1lbW9yeSB2YWx1ZXMgPiAzMmJpdCAobGF0Y2hpbmcgYXQgMl4zMi0xKQogICBQYXRjaCAjNTQ4NjYzIGZyb20gUm9iIE15ZXJzCiAgIAoyMDAyLTA0LTI2IDAzOjU1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgUmVtb3ZlIHJlZHVuZGFudCAnSW52YWxpZCBvcHRpb24nIG1lc3NhZ2UsIHNpbmNlIHRoaXMgaXMgdHlwaWNhbGx5CiAgIHJlcG9ydGVkIGJ5IGdldG9wdCgpLiAgKFN1Z2dlc3RlZCBieSBBbmRyZXcgUnVja2VyIEpvbmVzIC0gcGF0Y2ggIzU0ODc0OCApCiAgIAoyMDAyLTA0LTI2IDAzOjUxICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgQWRkICd2JyB0byB0aGUgbGlzdCBvZiB2YWxpZCBvcHRpb25zIChwYXRjaCAjNTQ4NzQ4KQogICBUaGFua3MgdG8gQW5kcmV3IFJ1Y2tlciBKb25lcy4KICAgCjIwMDItMDQtMjYgMDM6MzYgIGR0czEyCgogICAqIFJFQURNRS5ocHV4MTEsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaDoKCiAgIEFwcGx5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcidzIGltcHJvdmVkIEhQLVVYIDExIHBhdGNoCiAgICgjNTMwNzI0KSB0byB0aGUgbWFpbiB2NSBsaW5lLCBhcyB3ZWxsIGFzIHRoZSB2NC0yIGJyYW5jaC4KICAgVGhlIGNvZGUgbm93IGNvbXBpbGVzIGNsZWFubHkgdW5kZXIgSFAtVVggMTEgdXNpbmcgZ2NjLgogICAKMjAwMi0wNC0yNSAwNzoxOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIFBhdGNoIGZyb20gQXhlbCBLaXR0ZW5iZXJnIHRvIGZpeCBwb3NzaWJsZSB2YXJpYWJsZSBuYW1lIGNsYXNoCiAgIAoyMDAyLTA0LTI0IDIyOjM5ICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYzoKCiAgIGhhbmRsZSBjYWxsYmFja3Mgc2VuZGluZyBuZXcgbm90aWZpY2F0aW9ucyAod2hpbGUgcHJvY2Vzc2luZyBub3RpZmljYXRpb25zKQogICAKMjAwMi0wNC0yNCAyMTozNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2JqZWN0X21vbml0b3IuaDoKCiAgIGhlYWRlciBmb3IgbmV3IGZ1Y250aW9ucyBmb3IgbW9uaXRvcmluZyBvYmplY3RzCiAgIAoyMDAyLTA0LTI0IDIxOjM0ICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYzoKCiAgIG5ldyBmdW5jdGlvbnMgZm9yIG1vbml0b3Jpbmcgb2JqZWN0IHZhbHVlcwogICAKMjAwMi0wNC0yNCAxNTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICAvcHJvYy9zdGF0IGNhbiBiZSBsYXJnZXIgdGhhbiAxMDI0CiAgIAoyMDAyLTA0LTI0IDA2OjE5ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgbWlzc2luZyAnbWQ1LmgnIGhlYWRlciBmaWxlLgogICAKMjAwMi0wNC0yMyAwOTo0MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZS5jLCB0YWJsZV9hcnJheS5jOgoKICAgcmVtb3ZlIGxhc3Qgb2YgdGhlICN3YXJuaW5ncywgYWRkIHh4eC1ya3MgaWYgbmVjZXNzYXJ5CiAgIAoyMDAyLTA0LTIzIDA3OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICByZW1vdmUgd2FybmluZ3MKICAgCjIwMDItMDQtMjIgMTk6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL1JFQURNRToKCiAgIHVwZGF0ZSBVUkwgdG8gdXNlIGZyZWVubXAuY29tIG1pcnJvciAodW5sZXNzIHNvbWVvbmUga25vd3MgYSBiZXR0ZXIgcGxhY2U/KQogICAKMjAwMi0wNC0yMiAxNDoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBhcHBseSBkb2N1bWVudGF0aW4gcGF0Y2ggZnJvbSBBeGVsIEtpdHRlbmJlcmdlciA8QXhlbC5LaXR0ZW5iZXJnZXJAbWF4eGlvLmNvbT4KICAgCjIwMDItMDQtMjIgMTM6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICByZW1vdmUgZXh0cmEgQGVuZEAgKHN1cmUgd291bGQgYmUgbmljZSBpZiBtaWIyYyB3b3VsZCBjaGVjayBmb3IgdW5iYWxhbmNlZAogICBAZW5kQHMpCiAgIAoyMDAyLTA0LTIyIDA5OjQ4ICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIHVwZGF0ZSBmdW5jdGlvbiBuYW1lcyB0byBtYXRjaCBoZWFkZXIgKG5vIG1peGVkIGNhc2UpCiAgIAoyMDAyLTA0LTIyIDA4OjExICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgZml4IGJ1ZyAjNTQ3MTEwOiBwcm9wZXJseSBzcGVsbCBkZWZpbmUKICAgCjIwMDItMDQtMjEgMTY6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIGFkZCBzdGF0aWMgdG8gYSByZXR1cm5lZCB2YXJpYWJsZQogICAKMjAwMi0wNC0yMSAxNjo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggLS13aXRoLXBlcmwtbW9kdWxlcwogICAKMjAwMi0wNC0yMSAxMTozNyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICA1LjAucHJlMyAtPiA1LjA7IChJJ20gc3VyZSB0aGVyZSBhcmUgb3RoZXIgcGxhY2VzIHRoaXMgbmVlZHMgdG8gY2hhbmdlLAogICBidXQgSSB3YW50ZWQgdG8gZ2V0IHRoZSBmaXJzdCBwb3N0IDUuMCBjaGVja2luLi4uOi0pCiAgIAoyMDAyLTA0LTIwIDAwOjM3ICBoYXJkYWtlcgoKICAgKiBGQVEsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wICkKICAgCjIwMDItMDQtMjAgMDA6MzIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBjaGFuZ2UgdmVyc2lvbiB0byA1LjAKICAgCjIwMDItMDQtMjAgMDA6MjkgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIEFHRU5ULnR4dCwgQ09QWUlORywgQ2hhbmdlTG9nCiwgQ29kaW5nU3R5bGUsIEVYQU1QTEUuY29uZi5kZWYsIEZBUSwKICAgSU5TVEFMTCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzLAogICBNYWtlZmlsZS50b3AsIE5FV1MsIFBPUlRJTkcsIFJFQURNRSwKICAgUkVBRE1FLmFnZW50eCwgUkVBRE1FLmNtdSwgUkVBRE1FLmhwdXgxMSwKICAgUkVBRE1FLmtyYjUsIFJFQURNRS5zbm1wdjMsIFJFQURNRS50aHJlYWQsCiAgIFJFQURNRS53aW4zMiwgVE9ETywgYWNjb25maWcuaCwgYWNsb2NhbC5tNCwKICAgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbgosIGRvdGdkYmluaXQsIGRveHlnZW4uY29uZiwgaW5zdGFsbC1zaCwKICAgbHRtYWluLnNoLCBtYWtlZGVwZW5kLmluLCBtYWtlZmlsZWluZGVwZW5kLnBsLAogICBtYWtlbm9zeXNkZXBlbmQucGwsIG1ha2V0YXJnZXQsIG1raW5zdGFsbGRpcnMsCiAgIG5ldC1zbm1wLWNvbmZpZy5pbiwgcmVtb3ZlLWZpbGVzLCBzZWRzY3JpcHQuaW4sCiAgIHN0YW1wLWgsIHN0YW1wLWguaW4sIGFnZW50Ly5jdnNpZ25vcmUsCiAgIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaW5kZXguYywKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9hdXRvX25saXN0LmMsCiAgIGFnZW50L2F1dG9ubGlzdC5oLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsLmgKLCBhZ2VudC9tMm0uaCwgYWdlbnQvbWliX21vZHVsZXMuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3BlcmwuYywKICAgYWdlbnQvc25tcF9wZXJsLnBsLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYwosIGFnZW50L3NubXBkLmgsIGFnZW50L2RsbW9kcy8uY3ZzaWdub3JlLAogICBhZ2VudC9oZWxwZXJzLy5jdnNpZ25vcmUsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jCiwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywKICAgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYwosIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywgYWdlbnQvaGVscGVycy9udWxsLmMKLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYwosIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBhZ2VudC9taWJncm91cC8uY3ZzaWdub3JlLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvUkVBRE1FCiwgYWdlbnQvbWliZ3JvdXAvUkVBRE1FLnNtdXgsIGFnZW50L21pYmdyb3VwL1Jtb24uaAosIGFnZW50L21pYmdyb3VwL2FnZW50X21pYnMuaCwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4LmgKLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy5oLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5oLCBhZ2VudC9taWJncm91cC9ob3N0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkuaAosIGFnZW50L21pYmdyb3VwL21pYmRlZnMuaCwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oCiwgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLmgsIGFnZW50L21pYmdyb3VwL3NtdXguaAosIGFnZW50L21pYmdyb3VwL3NtdXhfZ2F0ZWQuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oLCBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0LmgsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmgsIGFnZW50L21pYmdyb3VwL3R1bm5lbC5oLAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLmgKLCBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnLCBhZ2VudC9taWJncm91cC9SbW9uL1JFQURNRQosIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmMsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmgsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsX2FwaS5oLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMKLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmgsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5oCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5oLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd19hcGkuaAosIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuaAosIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jLAogICBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi90ZXN0X2FsYXJtLnNoLAogICBhZ2VudC9taWJncm91cC9SbW9uL3Rlc3RfaGlzdC5zaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LW1pYi5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kdW1teS8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9NYWtlZmlsZS5kbG1vZCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNtZHMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZiwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suaAosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9SRUFETUUsCiAgIGFnZW50L21pYmdyb3VwL21pYklJLy5jdnNpZ25vcmUsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvLmN2c2lnbm9yZSwgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jCiwgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5oLAogICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgKLCBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9zbXV4Ly5jdnNpZ25vcmUsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYywKICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC92ZXN0aW50ZXJuZXR0Ly5jdnNpZ25vcmUsIGFwcHMvLmN2c2lnbm9yZQosIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oLCBhcHBzL3NubXBidWxrZ2V0LmMsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGRmLmMKLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMKLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmgsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuaCwKICAgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXBuZXRzdGF0Ly5jdnNpZ25vcmUsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uaAosIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKLCBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmgKLCBpbmNsdWRlL25ldC1zbm1wLy5jdnNpZ25vcmUsCiAgIGluY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKLCBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9wZHVfYXBpLmgKLCBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKLCBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3ZhcmJpbmRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8uY3ZzaWdub3JlLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2NhbGxiYWNrcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9pbmRleC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NldF9oZWxwZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS8uY3ZzaWdub3JlLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvUkVBRE1FLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZ2V0b3B0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkva2V5dG9vbHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tZDUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9ja2luZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdWNkX2NvbXBhdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkLmgKLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGkzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGk0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2N5Z3dpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHluaXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaXJpeC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taXBzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi43LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3Vub3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3ZyNS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zeXN2LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3VsdHJpeDQuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC8uY3ZzaWdub3JlLCBpbmNsdWRlL3VjZC1zbm1wL1JFQURNRSwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9pbmRleC5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3JlYWRfY29uZmlnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF90cmFwLmgsIGluY2x1ZGUvdWNkLXNubXAvYXNuMS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2F1dG9fbmxpc3QuaCwgaW5jbHVkZS91Y2Qtc25tcC9jYWxsYmFjay5oCiwgaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvZHNfYWdlbnQuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9oZWFkZXJfY29tcGxleC5oLCBpbmNsdWRlL3VjZC1zbm1wL2ludDY0LmgKLCBpbmNsdWRlL3VjZC1zbm1wL2tleXRvb2xzLmgsIGluY2x1ZGUvdWNkLXNubXAvbWliLmgKLCBpbmNsdWRlL3VjZC1zbm1wL21pYl9tb2R1bGVfY29uZmlnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvbWliaW5jbC5oLCBpbmNsdWRlL3VjZC1zbm1wL3BhcnNlLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCwgaW5jbHVkZS91Y2Qtc25tcC9zY2FwaS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLXRjLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hbGFybS5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYXBpLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfY2xpZW50LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9kZWJ1Zy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfaW1wbC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2xvZ2dpbmcuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3ZhcnMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdXNtLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB2My5oLCBpbmNsdWRlL3VjZC1zbm1wL3N0cnVjdC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zeXN0ZW0uaCwgaW5jbHVkZS91Y2Qtc25tcC90b29scy5oCiwgaW5jbHVkZS91Y2Qtc25tcC90cmFuc2Zvcm1fb2lkcy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtY29uZmlnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC91dGlsX2Z1bmNzLmgsIGluY2x1ZGUvdWNkLXNubXAvdmFyX3N0cnVjdC5oCiwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmgsIGxvY2FsLy5jdnNpZ25vcmUsCiAgIGxvY2FsL0ZBUTJIVE1MLCBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvUkVBRE1FLm1pYjJjCiwgbG9jYWwvY29udmVydGNvZGUsIGxvY2FsL2ZpeHByb2MsCiAgIGxvY2FsL2lwZi1tb2QucGwsIGxvY2FsL21pYjJjLAogICBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYsIGxvY2FsL21pYjJjLmNvbmYsCiAgIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZgosIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmYsIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3QKLCBsb2NhbC9wYXNzdGVzdCwgbG9jYWwvc25tcC11Y2Quc2gsCiAgIGxvY2FsL3NubXBjaGVjay5kZWYsIGxvY2FsL3NubXBjb25mLCBsb2NhbC90a21pYiwKICAgbG9jYWwvdHJhcHRvZW1haWwsIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvYXV0aG9wdHMKLCBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL2RlYnVnZ2luZywKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9taWJzLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL291dHB1dCwKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9zbm1wY29uZi1jb25maWcsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL2FjbCwKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvYmFzaWNfc2V0dXAsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL2V4dGVuZGluZywKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvbW9uaXRvciwKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvb3BlcmF0aW9uLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9zbm1wY29uZi1jb25maWcsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL3N5c3RlbSwKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvdHJhcHNpbmtzLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcHRyYXBkLWRhdGEvZm9ybWF0dGluZywKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL3NubXBjb25mLWNvbmZpZywKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL3RyYXBoYW5kbGUsIG1hbi8uY3ZzaWdub3JlCiwgbWFuL01ha2VmaWxlLmluLCBtYW4vYWRkX21pYmRpci4zLAogICBtYW4vYWRkX21vZHVsZV9yZXBsYWNlbWVudC4zLCBtYW4vZGVmYXVsdF9zdG9yZS4zLmJvdCwKICAgbWFuL2RlZmF1bHRfc3RvcmUuMy50b3AsIG1hbi9nZXRfbW9kdWxlX25vZGUuMywKICAgbWFuL2luaXRfbWliLjMsIG1hbi9pbml0X21pYl9pbnRlcm5hbHMuMywKICAgbWFuL21pYjJjLjEuZGVmLCBtYW4vbWliX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfYWdlbnQuMwosIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF9kZWJ1Zy4zLAogICBtYW4vbmV0c25tcF9leGFtcGxlX3NjYWxhcl9pbnQuMywgbWFuL25ldHNubXBfaGFuZGxlci4zCiwgbWFuL25ldHNubXBfaW5zdGFuY2UuMywKICAgbWFuL25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zCiwgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywKICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsCiAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zCiwgbWFuL25ldHNubXBfdG9kby4zLCBtYW4vcHJpbnRfZGVzY3JpcHRpb24uMywKICAgbWFuL3ByaW50X21pYi4zLCBtYW4vcHJpbnRfb2JqaWQuMywgbWFuL3ByaW50X3ZhbHVlLjMKLCBtYW4vcHJpbnRfdmFyaWFibGUuMywgbWFuL3JlYWRfYWxsX21pYnMuMywKICAgbWFuL3JlYWRfY29uZmlnLjMuZGVmLCBtYW4vcmVhZF9taWIuMywKICAgbWFuL3JlYWRfbW9kdWxlLjMsIG1hbi9yZWFkX21vZHVsZV9ub2RlLjMsCiAgIG1hbi9yZWFkX29iamlkLjMsIG1hbi9zaHV0ZG93bl9taWIuMywKICAgbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBfYWdlbnRfYXBpLjMuZGVmLAogICBtYW4vc25tcF9hbGFybS4zLmRlZiwgbWFuL3NubXBfYXBpLjMuZGVmLAogICBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjMsIG1hbi9zbm1wX2Nsb3NlLjMsCiAgIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgbWFuL3NubXBfZXJyb3IuMywKICAgbWFuL3NubXBfZnJlZV9wZHUuMywgbWFuL3NubXBfb3Blbi4zLCBtYW4vc25tcF9wZXJyb3IuMwosIG1hbi9zbm1wX3JlYWQuMywgbWFuL3NubXBfc2VsZWN0X2luZm8uMywKICAgbWFuL3NubXBfc2VuZC4zLCBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZiwKICAgbWFuL3NubXBfc2Vzc19hc3luY19zZW5kLjMsIG1hbi9zbm1wX3Nlc3NfY2xvc2UuMywKICAgbWFuL3NubXBfc2Vzc19lcnJvci4zLCBtYW4vc25tcF9zZXNzX2luaXQuMywKICAgbWFuL3NubXBfc2Vzc19vcGVuLjMsIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjMsCiAgIG1hbi9zbm1wX3Nlc3NfcmVhZC4zLCBtYW4vc25tcF9zZXNzX3NlbGVjdF9pbmZvLjMsCiAgIG1hbi9zbm1wX3Nlc3Nfc2VuZC4zLCBtYW4vc25tcF9zZXNzX3Nlc3Npb24uMywKICAgbWFuL3NubXBfc2Vzc190aW1lb3V0LjMsIG1hbi9zbm1wX3NldF9taWJfd2FybmluZ3MuMywKICAgbWFuL3NubXBfc2V0X3NhdmVfZGVzY3JpcHRpb25zLjMsIG1hbi9zbm1wX3RpbWVvdXQuMywKICAgbWFuL3NubXBfdHJhcF9hcGkuMy5kZWYsIG1hbi9zbm1wYnVsa2dldC4xLmRlZiwKICAgbWFuL3NubXBidWxrd2Fsay4xLmRlZiwgbWFuL3NubXBjbWQuMS5kZWYsCiAgIG1hbi9zbm1wY29uZi4xLmRlZiwgbWFuL3NubXBkLjEuZGVmLAogICBtYW4vc25tcGQuY29uZi41LmRlZiwgbWFuL3NubXBkZWx0YS4xLCBtYW4vc25tcGRmLjEKLCBtYW4vc25tcGdldC4xLmRlZiwgbWFuL3NubXBnZXRuZXh0LjEuZGVmLAogICBtYW4vc25tcGluZm9ybS4xLCBtYW4vc25tcG5ldHN0YXQuMSwgbWFuL3NubXBzZXQuMS5kZWYKLCBtYW4vc25tcHN0YXR1cy4xLmRlZiwgbWFuL3NubXB0YWJsZS4xLmRlZiwKICAgbWFuL3NubXB0ZXN0LjEuZGVmLCBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwKICAgbWFuL3NubXB0cmFwLjEuZGVmLCBtYW4vc25tcHRyYXBkLjguZGVmLAogICBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wdXNtLjEuZGVmLAogICBtYW4vc25tcHdhbGsuMS5kZWYsIG1hbi92YXJpYWJsZXMuNS5kZWYsCiAgIG1pYnMvLmN2c2lnbm9yZSwgbWlicy9BR0VOVFgtTUlCLnR4dCwKICAgbWlicy9ESVNNQU4tRVZFTlQtTUlCLnR4dCwgbWlicy9ESVNNQU4tU0NIRURVTEUtTUlCLnR4dAosIG1pYnMvRElTTUFOLVNDUklQVC1NSUIudHh0LCBtaWJzL0V0aGVyTGlrZS1NSUIudHh0CiwgbWlicy9IQ05VTS1UQy50eHQsIG1pYnMvSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwKICAgbWlicy9IT1NULVJFU09VUkNFUy1UWVBFUy50eHQsCiAgIG1pYnMvSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQsCiAgIG1pYnMvSUFOQS1MQU5HVUFHRS1NSUIudHh0LCBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dCwKICAgbWlicy9JRi1JTlZFUlRFRC1TVEFDSy1NSUIudHh0LCBtaWJzL0lGLU1JQi50eHQsCiAgIG1pYnMvSU5FVC1BRERSRVNTLU1JQi50eHQsIG1pYnMvSVAtRk9SV0FSRC1NSUIudHh0LAogICBtaWJzL0lQLU1JQi50eHQsIG1pYnMvSVBWNi1JQ01QLU1JQi50eHQsCiAgIG1pYnMvSVBWNi1NSUIudHh0LCBtaWJzL0lQVjYtVEMudHh0LAogICBtaWJzL0lQVjYtVENQLU1JQi50eHQsIG1pYnMvSVBWNi1VRFAtTUlCLnR4dCwKICAgbWlicy9MTS1TRU5TT1JTLU1JQi50eHQsIG1pYnMvTVRBLU1JQi50eHQsCiAgIG1pYnMvTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUubWliLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQsIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dAosIG1pYnMvTkVULVNOTVAtTUlCLnR4dCwgbWlicy9ORVQtU05NUC1NT05JVE9SLU1JQi50eHQKLCBtaWJzL05FVC1TTk1QLVNZU1RFTS1NSUIudHh0LCBtaWJzL05FVC1TTk1QLVRDLnR4dAosIG1pYnMvTkVUV09SSy1TRVJWSUNFUy1NSUIudHh0LAogICBtaWJzL05PVElGSUNBVElPTi1MT0ctTUlCLnR4dCwgbWlicy9SRUFETUUubWlicywKICAgbWlicy9SRkMtMTIxNS50eHQsIG1pYnMvUkZDMTE1NS1TTUkudHh0LAogICBtaWJzL1JGQzEyMTMtTUlCLnR4dCwgbWlicy9STU9OLU1JQi50eHQsCiAgIG1pYnMvU01VWC1NSUIudHh0LCBtaWJzL1NOTVAtQ09NTVVOSVRZLU1JQi50eHQsCiAgIG1pYnMvU05NUC1GUkFNRVdPUkstTUlCLnR4dCwgbWlicy9TTk1QLU1QRC1NSUIudHh0LAogICBtaWJzL1NOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIG1pYnMvU05NUC1QUk9YWS1NSUIudHh0CiwgbWlicy9TTk1QLVRBUkdFVC1NSUIudHh0LAogICBtaWJzL1NOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0LAogICBtaWJzL1NOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCwgbWlicy9TTk1QdjItQ09ORi50eHQsCiAgIG1pYnMvU05NUHYyLU1JQi50eHQsIG1pYnMvU05NUHYyLVNNSS50eHQsCiAgIG1pYnMvU05NUHYyLVRDLnR4dCwgbWlicy9TTk1QdjItVE0udHh0LAogICBtaWJzL1RDUC1NSUIudHh0LCBtaWJzL1RVTk5FTC1NSUIudHh0LAogICBtaWJzL1VDRC1ERU1PLU1JQi5pbmMsIG1pYnMvVUNELURFTU8tTUlCLnR4dCwKICAgbWlicy9VQ0QtRElTS0lPLU1JQi5pbmMsIG1pYnMvVUNELURJU0tJTy1NSUIudHh0LAogICBtaWJzL1VDRC1ETE1PRC1NSUIuaW5jLCBtaWJzL1VDRC1ETE1PRC1NSUIudHh0LAogICBtaWJzL1VDRC1JUEZJTFRFUi1NSUIuaW5jLCBtaWJzL1VDRC1JUEZJTFRFUi1NSUIudHh0LAogICBtaWJzL1VDRC1JUEZXQUNDLU1JQi5pbmMsIG1pYnMvVUNELUlQRldBQ0MtTUlCLnR4dCwKICAgbWlicy9VQ0QtU05NUC1NSUItT0xELnR4dCwgbWlicy9VQ0QtU05NUC1NSUIuaW5jLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIG1pYnMvVURQLU1JQi50eHQsIG1pYnMvaWFuYWxpc3QKLCBtaWJzL21pYmZldGNoLCBtaWJzL3JmY2xpc3QsIG1pYnMvcmZjbWlicy5kaWZmCiwgbWlicy9zbWlzdHJpcCwgb3YvLmN2c2lnbm9yZSwgb3YvTWFrZWZpbGUuaW4KLCBvdi9SRUFETUUsIG92L1VDRC1Db21wdXRlciwgb3YvVUNELWZpZWxkcywKICAgb3Yvb2lkX3RvX3N5bS5pbiwgb3Yvb2lkX3RvX3R5cGUuaW4sCiAgIG92L2JpdG1hcHMvVUNELjIwLm0sIG92L2JpdG1hcHMvVUNELjIwLnAsCiAgIG92L2JpdG1hcHMvVUNELjI2Lm0sIG92L2JpdG1hcHMvVUNELjI2LnAsCiAgIG92L2JpdG1hcHMvVUNELjMyLm0sIG92L2JpdG1hcHMvVUNELjMyLnAsCiAgIG92L2JpdG1hcHMvVUNELjM4Lm0sIG92L2JpdG1hcHMvVUNELjM4LnAsCiAgIG92L2JpdG1hcHMvVUNELjQ0Lm0sIG92L2JpdG1hcHMvVUNELjQ0LnAsCiAgIG92L2JpdG1hcHMvVUNELjUwLm0sIG92L2JpdG1hcHMvVUNELjUwLnAsCiAgIG92L2JpdG1hcHMvVUNELmZpZWxkcywgcGVybC8uY3ZzaWdub3JlLAogICBwZXJsL0FTTi8uY3ZzaWdub3JlLCBwZXJsL0FTTi9BU04ucG0sIHBlcmwvQVNOL0FTTi54cwosIHBlcmwvQVNOL0NoYW5nZXMsIHBlcmwvQVNOL01BTklGRVNULAogICBwZXJsL0FTTi9NYWtlZmlsZS5QTCwgcGVybC9BU04vdGVzdC5wbCwKICAgcGVybC9BbnlEYXRhX1NOTVAvLmN2c2lnbm9yZSwgcGVybC9BbnlEYXRhX1NOTVAvQ2hhbmdlcwosIHBlcmwvQW55RGF0YV9TTk1QL0RCRF9BbnlEYXRhLnBhdGNoLAogICBwZXJsL0FueURhdGFfU05NUC9Gb3JtYXQucG0sIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEwsCiAgIHBlcmwvQW55RGF0YV9TTk1QL01BTklGRVNULCBwZXJsL0FueURhdGFfU05NUC9NYWtlZmlsZS5QTAosIHBlcmwvQW55RGF0YV9TTk1QL1JFQURNRSwgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbQosIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaCwgcGVybC9TTk1QLy5jdnNpZ25vcmUsCiAgIHBlcmwvU05NUC9CVUcsIHBlcmwvU05NUC9NQU5JRkVTVCwKICAgcGVybC9TTk1QL01BTklGRVNULlNLSVAsIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwKICAgcGVybC9TTk1QL1JFQURNRSwgcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzCiwgcGVybC9TTk1QL1RPRE8sIHBlcmwvU05NUC9wZXJsc25tcC5oLAogICBwZXJsL1NOTVAvdHlwZW1hcCwgcGVybC9TTk1QL2V4YW1wbGVzL2FzeW5jMS5wbCwKICAgcGVybC9TTk1QL2V4YW1wbGVzL2FzeW5jMi5wbCwgcGVybC9TTk1QL2V4YW1wbGVzL2J1bGt3YWxrLnBsCiwgcGVybC9TTk1QL2V4YW1wbGVzL2lwZm9yd2FyZC5wbCwKICAgcGVybC9TTk1QL2V4YW1wbGVzL21pYnRyZWUucGwsIHBlcmwvU05NUC9leGFtcGxlcy9taWJ3YWxrLnBsCiwgcGVybC9TTk1QL2V4YW1wbGVzL3BpbmdtaWIucGwsCiAgIHBlcmwvU05NUC9leGFtcGxlcy90YWJsZXdhbGsucGwsCiAgIHBlcmwvU05NUC9leGFtcGxlcy90ZXN0bGVhay5wbCwKICAgcGVybC9TTk1QL2V4YW1wbGVzL3RyYXAtZXhhbXBsZS5wbCwgcGVybC9TTk1QL2hpbnRzL2lyaXgucGwKLCBwZXJsL1NOTVAvaGludHMvc29sYXJpcy5wbCwgcGVybC9TTk1QL3QvLmN2c2lnbm9yZQosIHBlcmwvU05NUC90L1JFQURNRSwgcGVybC9TTk1QL3QvYXN5bmMudCwKICAgcGVybC9TTk1QL3QvYnVsa3dhbGsudCwgcGVybC9TTk1QL3QvZ2V0LnQsCiAgIHBlcmwvU05NUC90L2dldG5leHQudCwgcGVybC9TTk1QL3QvbWliLnQsCiAgIHBlcmwvU05NUC90L21pYi50eHQsIHBlcmwvU05NUC90L21pYmxvYWQudCwKICAgcGVybC9TTk1QL3Qvbm90aWZ5LnQsIHBlcmwvU05NUC90L3Nlc3Npb24udCwKICAgcGVybC9TTk1QL3Qvc2V0LnQsIHBlcmwvU05NUC90L3NubXB0ZXN0LmNvbmYsCiAgIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGwsIHBlcmwvYWdlbnQvLmN2c2lnbm9yZSwKICAgcGVybC9hZ2VudC9DaGFuZ2VzLCBwZXJsL2FnZW50L01BTklGRVNULAogICBwZXJsL2FnZW50L01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L2FnZW50LnBtLAogICBwZXJsL2FnZW50L2FnZW50LnhzLCBwZXJsL2FnZW50L3Rlc3QucGwsCiAgIHBlcmwvYWdlbnQvdHlwZW1hcCwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlLy5jdnNpZ25vcmUKLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54cywKICAgcGVybC9kZWZhdWx0X3N0b3JlLy5jdnNpZ25vcmUsIHBlcmwvZGVmYXVsdF9zdG9yZS9DaGFuZ2VzCiwgcGVybC9kZWZhdWx0X3N0b3JlL01BTklGRVNULAogICBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54cywKICAgcGVybC9kZWZhdWx0X3N0b3JlL3Rlc3QucGwsIHBlcmwvZGVmYXVsdF9zdG9yZS90eXBlbWFwLAogICBwZXJsL21hbmFnZXIvLmN2c2lnbm9yZSwgcGVybC9tYW5hZ2VyL0lOU1RBTEwsCiAgIHBlcmwvbWFuYWdlci9NYWtlZmlsZS5QTCwgcGVybC9tYW5hZ2VyL2Rpc3BsYXl0YWJsZS5wbSwKICAgcGVybC9tYW5hZ2VyL2dldFZhbHVlcy5wbSwgcGVybC9tYW5hZ2VyL2dyZWVuLmdpZiwKICAgcGVybC9tYW5hZ2VyL21hbmFnZXIucG0sIHBlcmwvbWFuYWdlci9yZWQuZ2lmLAogICBwZXJsL21hbmFnZXIvc2V0dXBhdXRoLCBwZXJsL21hbmFnZXIvc2V0dXBkYiwKICAgcGVybC9tYW5hZ2VyL3NldHVwdXNlciwgcGVybC9tYW5hZ2VyL3NubXB0b3NxbCwKICAgc25tcGxpYi8uY3ZzaWdub3JlLCBzbm1wbGliL01TRzAwMDAxLmJpbiwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY211X2NvbXBhdC5jLCBzbm1wbGliL2RhdGFfbGlzdC5jLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9nZXRvcHQuYywKICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYwosIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvbXRfc3VwcG9ydC5jLCBzbm1wbGliL29pZF9hcnJheS5jLAogICBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wLmMsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwosIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwosIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYwosIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcF9lbnVtLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgIHNubXBsaWIvc25tcF9zZWNtb2QuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBzbm1wbGliL3NubXBrc20uYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc25wcmludGYuYwosIHNubXBsaWIvc3RydG9sLmMsIHNubXBsaWIvc3RydG91bC5jLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsCiAgIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaCwgc25tcGxpYi91Y2RfY29tcGF0LmMsCiAgIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3dpbnNlcnZpY2UuYywKICAgc25tcGxpYi93aW5zZXJ2aWNlLm1jLCBzbm1wbGliL3dpbnNlcnZpY2UucmMsCiAgIHRlc3RpbmcvLmN2c2lnbm9yZSwgdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9SRUFETUUKLCB0ZXN0aW5nL1JVTlRFU1RTLCB0ZXN0aW5nL1QuYywgdGVzdGluZy9UMi5zaAosIHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2UtbWQ1LAogICB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMS1kZXMKLCB0ZXN0aW5nL2RhdGEua3VsLW1kNSwgdGVzdGluZy9kYXRhLmt1bC1zaGExLAogICB0ZXN0aW5nL2V0aW1ldGVzdC5jLCB0ZXN0aW5nL2V2YWxfb25lcHJvZ3JhbS5zaCwKICAgdGVzdGluZy9ldmFsX29uZXNjcmlwdC5zaCwgdGVzdGluZy9ldmFsX3N1aXRlLnNoLAogICB0ZXN0aW5nL2V2YWxfdGVzdGxpc3QsIHRlc3RpbmcvZXZhbF90b29scy5zaCwKICAgdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmMsIHRlc3RpbmcvbWlzY3Rlc3QuYywKICAgdGVzdGluZy9zY2FwaXRlc3QuYywgdGVzdGluZy90ZXN0X2tleWNoYW5nZS5zaCwKICAgdGVzdGluZy90ZXN0X2t1bC5zaCwgdGVzdGluZy90ZXN0cy9TdjFjb25maWcsCiAgIHRlc3RpbmcvdGVzdHMvU3YyY2NvbmZpZywgdGVzdGluZy90ZXN0cy9TdjNERVNjb25maWcsCiAgIHRlc3RpbmcvdGVzdHMvU3YzU0hBREVTY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZywKICAgdGVzdGluZy90ZXN0cy9TdjNjb25maWdzaGEsIHRlc3RpbmcvdGVzdHMvU3Zhbnljb25maWcsCiAgIHRlc3RpbmcvdGVzdHMvVDAwMXNubXB2MWdldCwgdGVzdGluZy90ZXN0cy9UMDAyc25tcHYxZ2V0bmV4dAosIHRlc3RpbmcvdGVzdHMvVDAwM3NubXB2MWdldGZhaWwsCiAgIHRlc3RpbmcvdGVzdHMvVDAwNHNubXB2MW5vc3VjaCwgdGVzdGluZy90ZXN0cy9UMDE0c25tcHYyY2dldAosIHRlc3RpbmcvdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LAogICB0ZXN0aW5nL3Rlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwKICAgdGVzdGluZy90ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICB0ZXN0aW5nL3Rlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwsCiAgIHRlc3RpbmcvdGVzdHMvVDAxOXNubXB2MmNub3N1Y2gsIHRlc3RpbmcvdGVzdHMvVDAyMHNubXB2M2dldAosIHRlc3RpbmcvdGVzdHMvVDAyMXNubXB2M2dldG5leHQsCiAgIHRlc3RpbmcvdGVzdHMvVDAyMnNubXB2M2dldE1ENSwKICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLAogICB0ZXN0aW5nL3Rlc3RzL1QwMjRzbm1wdjNnZXRTSEExLAogICB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsCiAgIHRlc3RpbmcvdGVzdHMvVDAyOHNubXB2M2dldGZhaWwsCiAgIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwKICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLCB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwCiwgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sCiAgIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAKLCB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwKICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLAogICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cAosIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldCwKICAgdGVzdGluZy90ZXN0cy9UMTExYWdlbnR4c2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsCiwgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcCwKICAgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LAogICB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwsIHdpbjMyLy5jdnNpZ25vcmUsCiAgIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi9jb25maWcuaC5ib3JsYW5kLAogICB3aW4zMi9taWJfbW9kdWxlX2NvbmZpZy5oLCB3aW4zMi9taWJfbW9kdWxlX2RvdF9jb25mLmgsCiAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oLAogICB3aW4zMi9taWJfbW9kdWxlX3NodXRkb3duLmgsIHdpbjMyL3NubXBzbV9pbml0LmgsCiAgIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzIub3B0LCB3aW4zMi9iaW4vLmN2c2lnbm9yZQosIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvLmN2c2lnbm9yZSwKICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgd2luMzIvbGliLy5jdnNpZ25vcmUsIHdpbjMyL2xpYmFnZW50Ly5jdnNpZ25vcmUsCiAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRlZiwgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwCiwgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwKICAgd2luMzIvbGlic25tcC8uY3ZzaWdub3JlLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLAogICB3aW4zMi9saWJzbm1wX2RsbC8uY3ZzaWdub3JlLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgd2luMzIvbGlidWNkbWlicy8uY3ZzaWdub3JlLCB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZGVmCiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgsCiAgIHdpbjMyL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgsCiAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKICAgd2luMzIvc25tcGJ1bGtnZXQvLmN2c2lnbm9yZSwKICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLAogICB3aW4zMi9zbm1wYnVsa3dhbGsvLmN2c2lnbm9yZSwKICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHdpbjMyL3NubXBkLy5jdnNpZ25vcmUKLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3AsIHdpbjMyL3NubXBkZWx0YS8uY3ZzaWdub3JlCiwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHdpbjMyL3NubXBkZi8uY3ZzaWdub3JlCiwgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsIHdpbjMyL3NubXBnZXQvLmN2c2lnbm9yZQosIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsCiAgIHdpbjMyL3NubXBnZXRuZXh0Ly5jdnNpZ25vcmUsCiAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgd2luMzIvc25tcG5ldHN0YXQvLmN2c2lnbm9yZSwKICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCB3aW4zMi9zbm1wc2V0Ly5jdnNpZ25vcmUKLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCB3aW4zMi9zbm1wc3RhdHVzLy5jdnNpZ25vcmUKLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICB3aW4zMi9zbm1wdGFibGUvLmN2c2lnbm9yZSwgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AKLCB3aW4zMi9zbm1wdGVzdC8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AKLCB3aW4zMi9zbm1wdHJhbnNsYXRlLy5jdnNpZ25vcmUsCiAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgIHdpbjMyL3NubXB0cmFwLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwKICAgd2luMzIvc25tcHRyYXBkLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiwgd2luMzIvc25tcHVzbS8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwCiwgd2luMzIvc25tcHZhY20vLmN2c2lnbm9yZSwgd2luMzIvc25tcHZhY20vc25tcHZhY20uZHNwCiwgd2luMzIvc25tcHdhbGsvLmN2c2lnbm9yZSwgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwCjoKCiAgIGN2cyBmaWxlIHZlcnNpb24gbnVtYmVyIGNoYW5nZQogICAKMjAwMi0wNC0yMCAwMDoyMCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgY2hhbmdlbG9nCiAgIAoyMDAyLTA0LTIwIDAwOjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2luZGV4LmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYXV0b19ubGlzdC5jLAogICBhZ2VudC9hdXRvbmxpc3QuaCwgYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oCiwgYWdlbnQvbTJtLmgsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9wZXJsLmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLCBhZ2VudC9zbm1wZC5oCiwgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLAogICBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYwosIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywKICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLCBhZ2VudC9oZWxwZXJzL251bGwuYywKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsCiAgIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L21pYmdyb3VwL1Jtb24uaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4LmgsIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMKLCBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0LmgsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCBhZ2VudC9taWJncm91cC9taWJJSS5oCiwgYWdlbnQvbWliZ3JvdXAvbWliZGVmcy5oLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgKLCBhZ2VudC9taWJncm91cC9zbXV4X2dhdGVkLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaCwgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmgKLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaAosIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmMsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmgsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsX2FwaS5oLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMKLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmgsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5oCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5oLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd19hcGkuaAosIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuaAosIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jLAogICBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC1taWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suaAosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuaAosIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmgsIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYwosIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oCiwgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYwosIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmgKLCBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaAosIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oLAogICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsCiAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmgsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuaCwgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywgYXBwcy9ub3RpZmljYXRpb25fbG9nLmgKLCBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmgsIGFwcHMvc25tcHRyYXBkX2xvZy5jLAogICBhcHBzL3NubXB0cmFwZF9sb2cuaCwgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYwosIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmgsCiAgIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLCBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuaAosIGluY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgsIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9wZHVfYXBpLmgKLCBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKLCBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3ZhcmJpbmRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaW5kZXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXRfaGVscGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZ2V0b3B0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkva2V5dG9vbHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tZDUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9ja2luZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdWNkX2NvbXBhdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaTMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaTQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2Rhcndpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9keW5peC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2dlbmVyaWMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9pcml4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2xpbnV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pcHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdW5vcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdnI1LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3VsdHJpeDQuaCwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmgKLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jYWxsYmFjay5jLAogICBzbm1wbGliL2NtdV9jb21wYXQuYywgc25tcGxpYi9kYXRhX2xpc3QuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvZ2V0b3B0LmMsCiAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9rZXl0b29scy5jLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL210X3N1cHBvcnQuYywgc25tcGxpYi9vaWRfYXJyYXkuYywKICAgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcC5jLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKLCBzbm1wbGliL3NubXBJUFhEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMKLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLAogICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc25tcF9lbnVtLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF9zZWNtb2QuYywKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICBzbm1wbGliL3NubXBrc20uYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc25wcmludGYuYywgc25tcGxpYi9zdHJ0b2wuYwosIHNubXBsaWIvc3RydG91bC5jLCBzbm1wbGliL3N5c3RlbS5jLAogICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaCwKICAgc25tcGxpYi91Y2RfY29tcGF0LmMsIHNubXBsaWIvdmFjbS5jLAogICBzbm1wbGliL3dpbnNlcnZpY2UuYywgdGVzdGluZy9ULmMsIHRlc3RpbmcvZXRpbWV0ZXN0LmMKLCB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYywgdGVzdGluZy9taXNjdGVzdC5jLAogICB0ZXN0aW5nL3NjYXBpdGVzdC5jOgoKICAgV2hpdGUgc3BhY2UsIG9oIGdsb3Jpb3VzIHdoaXRlIHNwYWNlLgogICBIb3cgZ3JlYXQgb3VyIHRob3VnaD8KICAgVGhlIGNvZGUgaXMgZmluZS4KICAgV2UgYWdyZWUgb24gZnVuY3Rpb25hbGl0eSBlYXNpbHkuCiAgIFdoYXQgcmVhbGx5IHRyb3VibGVzIHVzPwogICBTb21ldGhpbmcgd2UgY2FuJ3Qgc2VlLgogICBTb21ldGhpbmcgYmV0d2VlbiB0aGUgY29kZS4KICAgV2UgYm93IGRvd24gdG8geW91ciBtYWduaWZpY2VuY2UsCiAgIEZvciB5b3UgYXJlIGV2ZXJ5d2hlcmUsCiAgIEJldHdlZW4gZXZlcnl0aGluZy4KICAgUHJldHR5IG5vdGhpbmduZXNzIHlvdSBhcmUuCiAgIAoyMDAyLTA0LTIwIDAwOjAxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHR1cm4gb24gdWNkIGNvbXBhdCBieSBkZWZhdWx0LgogICAKMjAwMi0wNC0yMCAwMDowMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGxhc3QgdXBkYXRlcwogICAKMjAwMi0wNC0xOSAyMzozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuaDoKCiAgIHJlbW92ZSB0ZXN0ZGVsYXllZAogICAKMjAwMi0wNC0xOSAyMzoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLzogLmN2c2lnbm9yZSwgLmN2c2lnbm9yZToKCiAgIGN2cyBpZ25vcmUgZmlsZQogICAKMjAwMi0wNC0xOSAyMzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBkb24ndCBkaWUgaWYgcGVybCBkb2Vzbid0IGluaXQuCiAgIAoyMDAyLTA0LTE5IDIzOjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUsIFJFQURNRSwgU05NUC5wbToKCiAgIGNoYW5nZSB3YXJuaW5nLgogICAKMjAwMi0wNC0xOSAyMjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZG91YmxlIGNoZWNrIHRoYXQgbXVsdGlwbGUgaW5zZXJ0cyBpbnRvIHRoZSBkZWxlZ2F0ZWQgY2hhaW4gZG9uJ3QKICAgaGFwcGVuIChyZWFkOiB0aGV5IHNob3VsZG4ndCBhbnl3YXksIGJ1dC4uLi4uKS4KICAgCjIwMDItMDQtMTkgMjI6MjkgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgdHlwZWRlZiB1cGRhdGUKICAgCjIwMDItMDQtMTkgMjI6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBGaXggdGhlIGNhbGxiYWNrIGJ1aWxkIGhvb2sgdG8gdHVybiBvZmYgdGhlIGV4cGVjdCByZXNwb25zZSBmbGFnIHdoZW4KICAgbm90IGFwcHJvcHJpYXRlLgogICAKMjAwMi0wNC0xOSAxOTowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaDoKCiAgIHNwZWxsaW5nIG1pc3RlYWs7IHJlbW92ZSBjYXBpdGFsIGxldHRlcnMgaW4gZnVuY3Rpb24gbmFtZXMKICAgCjIwMDItMDQtMTkgMTk6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICB1cGRhdGUgZm9yIGZ1bmN0aW9uIG5hbWUgY2hhbmdlZCBpbiBvaWRfYXJyYXkuaAogICAKMjAwMi0wNC0xOSAxODoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBtYWtlIHRoZSBwZXJsSW5pdEZpbGUgYW5kIGRpc2FibGVQZXJsIHRva2VucyByZWdpc3RlciBhcyBwcmVtaWIgc3VjaAogICB0aGF0IHdoZW4gcGFzc2VkIGFzIGEgLS1GTEFHIGl0J2xsIGFjdHVhbGx5IGRvIHRoZSByaWdodCB0aGluZyBhbmQKICAgZGlzYWJsZSB0aGUgbGF0ZXIgInBlcmwiIHRva2VuIGhhbmRsZXJzLgogICAKMjAwMi0wNC0xOSAxNzoyOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbiwgbWFuL25ldHNubXBfYWdlbnQuMwosIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF9kZWJ1Zy4zLAogICBtYW4vbmV0c25tcF9leGFtcGxlX3NjYWxhcl9pbnQuMywgbWFuL25ldHNubXBfaGFuZGxlci4zCiwgbWFuL25ldHNubXBfaW5zdGFuY2UuMywKICAgbWFuL25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zCiwgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywKICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsCiAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zCiwgbWFuL25ldHNubXBfdG9kby4zOgoKICAgZG9jdW1lbnRhdGlvbi4gIENhbid0IGdldCBlbm91Z2guCiAgICAgLSBtYWtlIGRvY3Mgbm93IGluc3RhbGxzIG1hbiBwYWdlcyBpbnRvIHRoZSBtYW4gZGlyLCB3aGljaCBhcmUgdGhlbiBpbnN0YWxsZWQuCiAgIAoyMDAyLTA0LTE5IDE3OjE0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDExMWFnZW50eHNldCwgVDEyMXByb3h5c2V0OgoKICAgQ29ycmVjdCBmb3IgbmV3IFNUUklORyBwcmVmaXguCiAgIAoyMDAyLTA0LTE5IDE3OjAzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGQgS2F0c3VoaXNhIEFCRQogICAKMjAwMi0wNC0xOSAxNzowMyAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9BU04ueHMsIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54czoKCiAgIGZpeCBoZWFkZXIgZmlsZXMgZm9yIG5ldyBwYXRocy4KICAgCjIwMDItMDQtMTkgMTc6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBtYW4vc25tcGQuY29uZi41LmRlZiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQXBwbHkgcGF0Y2ggIzUzMjU1NTogaXB2NiBjb20yc2VjIHN1cHBvcnQsIHRoYW5rcyB0byBLYXRzdWhpc2EgQUJFLgogICAKMjAwMi0wNC0xOSAxNjoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIGZpeCBzeXNVcFRpbWUgKGFuZCByZWxhdGVkIGZ1bmN0aW9ucykgdG8gaGFuZGxlIG11Y2ggbGFyZ2VyIHVwVGltZQogICB2YWx1ZXMgKGllLCBmaXggc2lnbmVkIGludGVnZXIgd3JhcHBpbmcpLgogICAKMjAwMi0wNC0xOSAxMTozNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBlbWJlZGRlZCBwZXJsIHN1cHBvcnQuCiAgIAoyMDAyLTA0LTE5IDExOjM0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhZ2VudC9zbm1wX3BlcmwuYywgYWdlbnQvc25tcF9wZXJsLnBsLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwKOgoKICAgQWRkIHNvbWUgbmV3IHNubXBkLmNvbmYgdG9rZW5zIGZvciBjb250cm9sbGluZyBwZXJsIGJldHRlci4KICAgRml4IGVtYmVkZGVkIHBlcmwgc3VwcG9ydCBzbyBpdCBhY3R1YWxseSB3b3Jrcy4KICAgCjIwMDItMDQtMTkgMTE6MzIgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS86IC5jdnNpZ25vcmUsIE1ha2VmaWxlLlBMLAogICBkZWZhdWx0X3N0b3JlLnBtLCBkZWZhdWx0X3N0b3JlLnhzOgoKICAgQWRkZWQgbWlzc2luZyBhZ2VudCBkZWZhdWx0X3N0b3JlIHN0dWZmLiAgKHRoZXkgZXhpc3RlZCBvbiBteSBtYWNoaW5lLAogICBJIGRvbid0IGtub3cgd2h5IGV2ZXJ5b25lIGVsc2Ugd2FzIGhhdmluZyBwcm9ibGVtcykKICAgCjIwMDItMDQtMTkgMTA6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB0aGluZ3MgdGhhdCBzaG91bGQgbmV2ZXIgZXZlciBoYXBwZW4KICAgCjIwMDItMDQtMTkgMDM6MTAgIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgPFNpZ2g+IEEgbGl0dGxlIGxlYXJuaW5nIGlzIGEgZGFuZ2Vyb3VzIHRoaW5nLgogICBBcHBseSB0aGUgcmVzdCBvZiB0aGUgcGF0Y2ggZnJvbSBBeGVsIC0gc29ycnkuCiAgIAoyMDAyLTA0LTE5IDAxOjQ5ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbiwgZG94eWdlbi5jb25mOgoKICAgSGFuZGxlIGdlbmVyYXRpbmcgZG9jdW1lbmF0aW9uIHdoZW4gc3JjZGlyICE9IGNvbmZpZ2RpcgogICAoUGF0Y2ggc3VwcGxpZWQgYnkgQXhlbCBLaXR0ZW5iZXJnZXIpCiAgIAoyMDAyLTA0LTE4IDE3OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBJUFhEb21haW4uYzoKCiAgIGZpeCBzbm1wSVBYRG9tYWluIChhZ2FpbikKICAgCjIwMDItMDQtMTggMTc6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgUGF0Y2ggZnJvbSBWaXNoYWwgVmVybWE6IG9ubHkgb3BlbiBzdWJhZ2VudCBjb25uZWN0aW9ucyBvbmNlIGF0IHN0YXJ0dXAKICAgCjIwMDItMDQtMTggMTc6MjggIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBQYXRjaCBmcm9tIFZpc2hhbCBWZXJtYTogZm9yIGRvd24gc3ViYWdlbnQgY2FzZXMsIG1hcmsgcmVnaXN0cmF0aW9ucyBhcyBkZXRhY2hlZAogICAKMjAwMi0wNC0xOCAxNzoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZGVmaW5lIGEgbWF4aW11bSBwYWNrZXQgc2l6ZSB3ZSBjYW4gYWNjZXB0IHRvIHByb3RlY3QgY2VydGFpbiBlcnJvcgogICBjb25kaXRpb25zICgtMSBhZnRlciBjb252ZXJzaW9uIGlzIG5vdyB0b28gbGFyZ2UpLgogICAKMjAwMi0wNC0xOCAxNjoyOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIGNoYW5nZSB0aGUgZW50ZXJwcmlzZSBPSURzIGluIHRoZSBwcm9wZXIgcGxhY2UgKG5ldC1zbm1wLWNvbmZpZy5oLmluCiAgIGlzIGdlbmVyYXRlZCBmcm9tIHRoaXMgZmlsZSkuCiAgIAoyMDAyLTA0LTE4IDEzOjUxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbmV0LXNubXAtY29uZmlnLmluCjoKCiAgIC0gQWRkIHR3byBuZXcgb3B0aW9ucyB0byBuZXQtc25tcC1jb25maWcgYXMgcmVxdWVzdGVkIG9uIHRoZSBJUkMgY2hhbm5lbC4KICAgICAtLWNvbmZpZ3VyZS1vcHRpb25zCiAgICAgLS1zbm1wZC1tb2R1bGUtbGlzdAogICAKMjAwMi0wNC0xOCAxMTo0MyAgcnN0b3J5CgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIGFkZCBtaXNzaW5nIGNvbW1hCiAgIAoyMDAyLTA0LTE4IDA3OjM5ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENhbGN1bGF0ZSB0aGUgbGVuZ3RoIG9mIHN1cHBsaWVkIGVudGVycHJpc2UgT0lEcyBjb3JyZWN0bHkKICAgKGFuZCB1c2UgYSBtb3JlIG1lYW5pbmdmdWwgb3V0cHV0IG1lc3NhZ2UpCiAgIAogICBTaGFtZSB0aGVzZSBzZXR0aW5ncyBhcmVuJ3QgY2FjaGVkIGZvciBsYXRlciByZS11c2UuLi4uCiAgIAoyMDAyLTA0LTE4IDA3OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgTm90aWZ5IG9uIGFnZW50IHJlY29uZmlndXJhdGlvbi4KICAgCjIwMDItMDQtMTggMDc6MTYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgdGhlIE5ldC1TTk1QIG5vdGlmaWNhdGlvbnMgYnkgZGVmYXVsdCwgcmF0aGVyIHRoYW4gdGhlIHVjZGF2aXMgb25lcy4KICAgCjIwMDItMDQtMTggMDc6MDggIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIEZpeCB0aGUgdGFibGUtb2YtY29udGVudHMgc2VxdWVuY2UgZm9yIHRoZSBuc01vZHVsZVRhYmxlLCBhZGQgbm90aWZpY2F0aW9uCiAgIGRlZmluaXRpb25zIGZvciB0aGUgYWdlbnQsIGFuZCBkZWZpbmUgZ3JvdXBzIGZvciBldmVyeXRoaW5nLgogICAKMjAwMi0wNC0xOCAwMjo1MiAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEJyaW5nIGludGVnZXIgYW5kIHN0cmluZyBvdXRwdXQgZm9ybWF0cyBpbnRvIGxpbmUgd2l0aCB0aGUgb3RoZXIgdHlwZXMKICAgYnkgcHJpbnRpbmcgYSB0eXBlIHRva2VuIGJlZm9yZSB0aGUgdmFsdWUgKHVubGVzcyBzdXByZXNzZWQgYnkgJ3F1aWNrIHByaW50JykKICAgVGhhbmtzIHRvIEVyaWsgZm9yIHRoZSBwYXRjaAogICAKMjAwMi0wNC0xOCAwMTo0NiAgZHRzMTIKCiAgICogRkFROgoKICAgUmVwbGFjZSB0aGUgZGxtb2QgJ1dIRVJFJyB3aXRoIHNvbWV0aGluZyBtb3JlIG1lYW5pbmdmdWwuLi4uCiAgIAoyMDAyLTA0LTE3IDEyOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBJUFhEb21haW4uYzoKCiAgIGRlZmluZSB0aGUgaXB4RG9tYWluIHZhcmlhYmxlcwogICAKMjAwMi0wNC0xNyAxMjoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgRXJyb3IgY29uZGl0aW9uIHRlc3RzCiAgIAoyMDAyLTA0LTE3IDEwOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIE9oLCBqdXN0IGEgc21hbGwgcGF0Y2ggdG8gbWFrZSBpdCBwb3NzaWJsZSB0byBtYWtlIG1vZHVsZXMgcmVxdWVzdAogICB0aGF0IGFsbCBxdWVyaWVzIHRvIGEgc2V0IG9mIHJlZ2lzdHJhdGlvbnMgZ2V0IHBhc3NlZCBhbGwgYXQgb25jZQogICAod2hpY2ggYXBwYXJlbnRseSBpcyBpbXBvcnRhbnQgZm9yLCBvaCwgYWdlbnR4KQogICAKMjAwMi0wNC0xNyAxMDowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgbWlzYyBub24tY2hhbmdlIGNsZWFuIHVwcwogICAKMjAwMi0wNC0xNyAxMDowMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgcmVuYW1lIHN0cnVjdHVyZXMgYmVnaW5uaW5nIHdpdGggXyB0byBlbmRpbmcgd2l0aCBfcwogICAKMjAwMi0wNC0xNyAxMDowMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBhZGQgYSB2b2lkICogcG9pbnRlciBmb3IgdGhlIHNlc3Npb24gY3JlYXRvciB0byB1c2UgYXQgd2lsbCAoZGlmZmVyZW50CiAgIGZyb20gdGhlIGNhbGxiYWNrIG1hZ2ljKS4KICAgCjIwMDItMDQtMTcgMDk6MDAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVXNlIHRoZSBOZXQtU05NUCBzeXNPSURzIGJ5IGRlZmF1bHQsIHJhdGhlciB0aGFuIHRoZSB1Y2RhdmlzIG9uZXMuCiAgIAoyMDAyLTA0LTE3IDA4OjI2ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgQmxhbmsgY29udGludWF0aW9uIGxpbmVzIGNvbmZ1c2UgSFAncyB2ZXJzaW9uIG9mIG1ha2UuCiAgIAoyMDAyLTA0LTE3IDA4OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEJsYW5rIGNvbnRpbnVhdGlvbiBsaW5lcyBjb25mdXNlIEhQJ3MgdmVyc2lvbiBvZiBtYWtlCiAgIAoyMDAyLTA0LTE3IDA2OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIG1vdmUgbnNNb2R1bGVUYWJsZSBpbnRvIERhdmUncyBzdHJ1Y3R1cmUuCiAgIAoyMDAyLTA0LTE3IDA2OjU0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBzbm1wVENQSVB2NkRvbWFpbi5oLCBzbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgZml4IGRlY2xhcmF0aW9ucyBvZiBEb21haW4gb2JqZWN0cyAoY29uc3QgLT4gZXh0ZXJuKQogICAKMjAwMi0wNC0xNyAwNjozMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyLzogc25tcC1kYXRhL3NubXBjb25mLWNvbmZpZywKICAgc25tcGQtZGF0YS9zbm1wY29uZi1jb25maWcsIHNubXB0cmFwZC1kYXRhL3NubXBjb25mLWNvbmZpZwo6CgogICBzbm1wY29uZiBjb25maWd1cmF0aW9uIGRhdGEKICAgCjIwMDItMDQtMTcgMDM6MDEgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQnJpbmcgdGhlIHJlcG9ydGVkIGRlZmF1bHQgc2V0dGluZ3MgZm9yIHN5c29pZCAmIG5vdGlmaWNhdGlvbiBPSURzCiAgIGJhY2sgaW50byBsaW5lIHdpdGggd2hhdCB3ZSBhY3R1YWxseSB1c2UgKGkuZS4gdGhlIHVjZGF2aXMgT0lEcykuCiAgIAogICBRbjogIERvIHdlIHdhbnQgdG8gc3dpdGNoIHRvIHVzaW5nIHRoZSBuZXQtc25tcCBlcXVpdmFsZW50IHN5c09JRHM/CiAgIFFuOiAgV2hhdCBhYm91dCBkZWZpbmluZyBuZXQtc25tcCBub3RpZmljYXRpb25zPwogICAKMjAwMi0wNC0xNyAwMjo1NSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBGaXggLS13aXRoLWVudGVycHJpc2Utc3lzb2lkIGFuZCAtLXdpdGgtZW50ZXJwcmlzZS1ub3RpZmljYXRpb24tb2lkLAogICBhbmQgdHJ5IHRvIGNsYXJpZnkgdGhhdCB0aGVzZSBhcmUgT0lEcywgd2hpbGUgLS13aXRoLWVudGVycHJpc2Utb2lkCiAgIGlzIGFjdHVhbGx5IGp1c3QgdGhlIGVudGVycHJpc2UgKm51bWJlcioKICAgCiAgIFFuOiAgc2hvdWxkIHdlIGNoYW5nZSB0aGUgbmFtZSBvZiB0aGUgY29uZmlndXJlIG9wdGlvbiB0byByZWZsZWN0IHRoaXM/CiAgIAoyMDAyLTA0LTE2IDEwOjA0ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIEZBUSwKICAgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLnByZTMgKQogICAKMjAwMi0wNC0xNiAxMDowMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgZGVsZXRlIHRvcCBkaXNjbGFpbWVycwogICAKMjAwMi0wNC0xNiAxMDowMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1pc2MgdXBkYXRlcwogICAKMjAwMi0wNC0xNiAxMDowMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBtaXNjIGJ1ZyBmaXhlcwogICAKMjAwMi0wNC0xNiAwODoxOSAgZHRzMTIKCiAgICogRkFROgoKICAgQWRkIGFuIGVudHJ5IGNvbmNlcm5pbmcgdGhlICdsaWJjcnlwdG8nIFJQTSBkZXBlbmRlbmN5LgogICAKMjAwMi0wNC0xNiAwODowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgZml4IG1lbW9yeSBsZWFrCiAgIAoyMDAyLTA0LTE2IDA3OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgYSBubyBsb25nZXIgYXBwcm9wcmlhdGUgdG9kbyBjb21tZW50CiAgIAoyMDAyLTA0LTE2IDA3OjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBJIGd1ZXNzIEkgZm9yZ290IHRvIHJ1biBhdXRvY29uZgogICAKMjAwMi0wNC0xNSAwODo1OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBzbm1wY29uZiwgTWFrZWZpbGUuaW46CgogICBtb3ZlIHNubXBjb25mIGRhdGEgZGlyZWN0b3JpZXMgdG8gZGlmZmVyZW50IG5hbWVzIHRvIGF2b2lkIGNvbmZ1c2lvbgogICAKMjAwMi0wNC0xNSAwODozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyLzogc25tcC1kYXRhL2F1dGhvcHRzLAogICBzbm1wLWRhdGEvZGVidWdnaW5nLCBzbm1wLWRhdGEvbWlicywgc25tcC1kYXRhL291dHB1dAosIHNubXBkLWRhdGEvYWNsLCBzbm1wZC1kYXRhL2Jhc2ljX3NldHVwLAogICBzbm1wZC1kYXRhL2V4dGVuZGluZywgc25tcGQtZGF0YS9tb25pdG9yLAogICBzbm1wZC1kYXRhL29wZXJhdGlvbiwgc25tcGQtZGF0YS9zeXN0ZW0sCiAgIHNubXBkLWRhdGEvdHJhcHNpbmtzLCBzbm1wdHJhcGQtZGF0YS9mb3JtYXR0aW5nLAogICBzbm1wdHJhcGQtZGF0YS90cmFwaGFuZGxlOgoKICAgZGF0YSBmaWxlIG1vdmluZwogICAKMjAwMi0wNC0xMiAxNDozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBNYXNzaXZlIGNsZWFudXAgZWZmb3J0LiAgSXQgc2hvdWxkIG5vdyByZXNwZWN0IG9yZGVyaW5nIGluIHRoZQogICBzbm1wY29uZiBjb25maWd1cmF0aW9uIGZpbGVzIGFzIHdlbGwuCiAgIAoyMDAyLTA0LTEyIDEzOjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgZml4IGZvciBvdmVyemVhbG91cyBwZXJsIHNjcmlwdAogICAKMjAwMi0wNC0xMiAwOTo0NyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY29weSB1Y2QgcGVyc2lzZW50IGRpcmVjdG9yeSB0byBuZXQtc25tcCAocHJvbXB0cywgZmxhZ3MgYW5kIG90aGVyIGZ1bikKICAgCjIwMDItMDQtMTIgMDc6NTcgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCB0cmFwdG9lbWFpbAogICAKMjAwMi0wNC0xMiAwNzo1NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgcmVtb3ZlIHRyYXBub3RpZgogICAKMjAwMi0wNC0xMiAwNzo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgcnNubXA6CgogICByZW1vdmUgcnNubXAsIHdoaWNoIGlzIHZlcnkgdmVyeSBvbGQgYW5kIG91dCBvZiBkYXRlCiAgIAoyMDAyLTA0LTEyIDA3OjQ3ICBoYXJkYWtlcgoKICAgKiBtYW4vOiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgbWliMmMuMS5kZWY6CgogICBBIG1hbnVhbCBwYWdlIGZvciBtaWIyYyAoaGVscCwgSSdtIHR1cm5pbmcgaW50byBEYXZlKQogICAKMjAwMi0wNC0xMiAwNzoyOCAgaGFyZGFrZXIKCiAgICogZG90Z2RiaW5pdDoKCiAgIGEgZ2RiIGluaXRpYWxpemF0aW9uIGZpbGUgd2l0aCBoZWxwZnVsIGZ1bmN0aW9ucwogICAKMjAwMi0wNC0xMiAwMjo0MiAgZHRzMTIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBBZGQgJ3NubXBjb25mJyBhbmQgJ21pYjJjJyB0byB0aGUgbGlzdCBvZiBzY3JpcHRzIHRvIGluc3RhbGwuCiAgIAogICBJJ3ZlIGxlZnQgJ3RyYXB0b2VtYWlsJyBvZmYgdGhpcyBsaXN0LCBzaW5jZSBpdCBzYXlzIGl0J3Mgbm90IGludGVuZGVkCiAgIGFzIGEgZGlyZWN0bHkgdXNlci1pbnZva2VkIGNvbW1hbmQsIHNvIHByb2JhYmx5IG91Z2h0IG5vdCB0byBiZSBpbnN0YWxsZWQKICAgaW50byBhIGJpbmFyeSBkaXJlY3RvcnkuCiAgIAoyMDAyLTA0LTEyIDAyOjQxICBkdHMxMgoKICAgKiBsb2NhbC9yc25tcDoKCiAgIEZpeCB0aGUgcGF0aCBvZiBzbm1wd2FsayB0byBiZSBzb21ldGhpbmcgbW9yZSBwbGF1c2libGUuCiAgIChJJ20gbm90IGNvbnZpbmNlZCBhYm91dCB0aGUgdmFsaWRpdHkgb2YgdGhhdCBpbml0aWFsICdydG9wbWliJyBPSUQgbWluZCEpCiAgIAoyMDAyLTA0LTEyIDAyOjM2ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgRml4IHR5cG8gaW4gcmVmZXJlbmNlIHRvICdtaWIyYy5pdGVyYXRlLmNvbmYnCiAgIAoyMDAyLTA0LTEyIDAyOjMzICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlcywgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIG1haW4gbGlicmFyeSBhcyAnbGlic25tcCcgaWYgY29uZmlndXJlZCB1c2luZyBVQ0QgY29tcGF0aWJpbGl0eS4KICAgVGhpcyBzaG91bGQgaGFuZGxlIHRoZSByZXF1aXJlbWVudHMgb2YgYXBwbGljYXRpb24gY29tcGF0aWJpbGl0eS4KICAgQWdlbnQgbGlicmFyeSBjb21wYXRpYmlsaXR5IGlzIGxpa2VseSB0byBwcm92ZSBhIGhhcmRlciBwcm9ibGVtCiAgIChzaW5jZSB0aGVyZSBhcmUgbm93IHRocmVlIGxpYnJhcmllcywgbm90IGp1c3QgdHdvLi4uKQogICAKMjAwMi0wNC0xMSAyMjoyOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIHNldCBTTk1QQ09ORlBBVEggaWZmIFtzaWNdIG5vdCBzZXQKICAgCjIwMDItMDQtMTEgMjI6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgcmV0dXJuIGZyb20gaW5pdE1pYiBiZWZvcmUgZG9pbmcgYW55dGhpbmcuCiAgIAoyMDAyLTA0LTExIDIyOjI2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICB0dXJuIG9mZiBjb21wbGllciB3YXJuaW5ncwogICAKMjAwMi0wNC0xMSAyMjoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgc3VwcG9ydCAic2hvdyBjb2x1bW5zIGZyb20gVEFCTEUiCiAgIAoyMDAyLTA0LTExIDIyOjI1ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBBZGQgYSBuZXcgZGVtbyBzY2FsYXI6IHRoZSBzbGVlcGVyLiAgKGRhaCBkYWggZGFoIGR1bW1tbW0pCiAgIAoyMDAyLTA0LTExIDIyOjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmM6CgogICBpbmRlbnQuCiAgIAoyMDAyLTA0LTExIDIyOjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGVzLmgsIGV4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYwosIGV4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuaDoKCiAgIEFkZCBhIGRlbGF5ZWQgaW5zdGFuY2UgZXhhbXBsZSwgc2hvd2luZyBob3cgdG8gcmV0dXJuIG1pYiByZXF1ZXN0CiAgIHJlc3VsdHMgbGF0ZXIgcmF0aGVyIHRoYW4gaW1tZWRpYXRlbHkuCiAgIAoyMDAyLTA0LTExIDIyOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jOgoKICAgcmVtb3ZlIGxlZ2FjeSBleGFtcGxlLgogICAKMjAwMi0wNC0xMSAyMjoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgYWRkIGNvbW1lbnQgYWJvdXQgcG9zc2libHkgZml4aW5nIGluY2x1c2l2ZSByZXF1ZXN0cyBpbiB0aGUgZnV0dXJlLgogICAKMjAwMi0wNC0xMSAxNzowOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgY2hhbmdlIG1vZHVrZXMtPiBtb2R1bGVzCiAgIAoyMDAyLTA0LTExIDA3OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgdHVybiBvZmYgZGVidWdnaW5nIHdoZW4gY2FsbGluZyBsb2dnaW5nIGNhbGxiYWNrcwogICAKMjAwMi0wNC0xMCAxMjo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIGZpeCBwZXJsIG1vZHVsZSBpbiBtYW55IG1hbnkgcGxhY2VzLiAgbW9zdCB0ZXN0cyBub3cgcGFzcy4KICAgCjIwMDItMDQtMTAgMTI6NTAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBmb3JjZSBzZXR0aW5nIHRvIGEgImJvZ3VzIiBTTk1QQ09ORlBBVEguCiAgIAoyMDAyLTA0LTEwIDEyOjQ4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmM6CgogICBFeHBvcnRpbmcgZnVuY3Rpb25zIGdvb2QuICBJbnRlcm5hbGl6aW5nIGJhZC4KICAgCjIwMDItMDQtMTAgMDk6MjggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgb3Bwcy4gIHNpZ2guCiAgIAoyMDAyLTA0LTEwIDA5OjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG9wcHMuICByZW1vdmUgZGVidWdnaW5nIHN0YXRlbWVudHMuCiAgIAoyMDAyLTA0LTEwIDA5OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIC0gTWFrZSB0aGUgcGVybCBtb2R1bGUgY2FsbCBpbml0X3NubXAoKQogICAgIC0gdGhpcyBpcyBhIGZhaXJseSBtYWpvciBjaGFuZ2UsIGlzIGl0IG5vdyB3aWxsIHJlYWQgLmNvbmYgZmlsZXMuCiAgICAgLSBtYW55IHBlb3BsZSBoYXZlIGFza2VkIGZvciB0aGlzLgogICAtIG1pc2MgY2xlYW4gdXBzLgogICAKMjAwMi0wNC0xMCAwOToxOCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBEb24ndCByZWN1cnNlIGludG8gc3ViZGlyZWN0b3JpZXMgZm9yIHRoZSBjb25zaXR1ZW50IHN1YnRhcmdldHMgb2YgIm1ha2UgaW5zdGFsbCIKICAgCjIwMDItMDQtMTAgMDk6MDkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGRlZCBhIGZldyB0aGluZ3MsIHNlcGFyYXRlZCBwZXJsIHN0dWZmIGludG8gaXQncyBvd24gc2VjdGlvbi4KICAgCjIwMDItMDQtMTAgMDg6NDYgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQnJpbmcgdGhlIGhlbHAgbWVzc2FnZSBmb3IgdGhlIFVDRCBjb21wYXRhYmlsaXR5IG9wdGlvbiBpbnRvIGxpbmUgd2l0aAogICB3aGF0J3MgYWN0dWFsbHkgcmVjb2duaXNlZC4KICAgCjIwMDItMDQtMTAgMDc6NTIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGNoYW5nZSBsaWJ0b29sIHZlcnNpb25pbmcgdG8gdGhlaXIgcmVjb21tZW5kZWQgbWV0aG9kIG9mIGRvaW5nIHRoaW5ncwogICAod2hpY2ggSSBoYXRlLCBidXQgaXMgc3RpbGwgYmV0dGVyIHRoYW4gd2hhdCB3ZSB3ZXJlIGRvaW5nLCBJIGd1ZXNzKQogICAKMjAwMi0wNC0xMCAwNzoxMCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBCcmluZyB1c2Ugb2YgQlVJTFRTVUJESVIgd2l0aGluICdpbnN0YWxsbG9jYWxoZWFkZXJzJyBpbnRvIGxpbmUKICAgd2l0aCB0aGUgcHJlY2VkaW5nIGNvbW1lbnQsIGFuZCBhY3R1YWwgdXNhZ2UuCiAgIChpLmUuIElOU1RBTExCVUlMVFNVQkRJUiByYXRoZXIgdGhhbiBJTkNMVURFQlVJTFRTVUJESVIpCiAgIAoyMDAyLTA0LTEwIDA1OjU4ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgVHlwbyBpbiBzZWN1cml0eS1pbmNsdWRlIGhlYWRlciBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgdmFyaWFibGUKICAgCjIwMDItMDQtMTAgMDU6NTUgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgRW5zdXJlIHRoZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgZXhpc3RzIGJlZm9yZSBpbnN0YWxsaW5nIG1pYjJjIGNvbmYgZmlsZXMuCiAgIAoyMDAyLTA0LTEwIDAxOjU1ICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAwNHNubXB2MW5vc3VjaCwgVDAxOXNubXB2MmNub3N1Y2g6CgogICBUd28gbmV3IHRlc3RzIHRvIGNoZWNrIGhhbmRsaW5nIG9mIEdFVGluZyBub24tZXhpc3RhbnQgaW5zdGFuY2VzCiAgIAoyMDAyLTA0LTEwIDAxOjU0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBBIGZpeCBmb3IgU05NUHYxIGVycm9ycyB0aGF0IGRvZXNuJ3QgZW5kIHVwIGJyZWFraW5nIEFnZW50WCBlcnJvciBoYW5kbGluZy4KICAgCjIwMDItMDQtMDkgMTA6MzggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFBhdGNoIGZyb20gRGF2ZSB0byBmaXggdjEgZXJyb3IgcmVzdWx0cy4KICAgCjIwMDItMDQtMDggMjE6MDggIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgZml4IGluY29ycmVjdCBsZW5ndGggcmV0dXJuIHZhbHVlCiAgIAoyMDAyLTA0LTA4IDE4OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaDoKCiAgIGRvbid0IGFsbG93IG5vLWNvbmZpZ3VyYXRpb24gYWNjZXNzIGFueW1vcmUuCiAgIAoyMDAyLTA0LTA4IDE3OjU5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcHVzbS5jCjoKCiAgIG1vcmUgdW5jb25zdCBjb3JyZWN0bmVzcwogICAKMjAwMi0wNC0wOCAxNzozMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBzaXplX3QgZXh0ZXJucyBmb3IgZXhwb3J0ZWQgb2lkcwogICAKMjAwMi0wNC0wOCAxNzozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVtb3ZlIHRlbXBvcmFyeSBkZWJ1Z2dpbmcgc3RhdGVtZW50cyB0aGF0IGFjY2lkZW50YWxseSBiZWNhbWUgcGVybWFuZW50LgogICAKMjAwMi0wNC0wOCAxNzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBVRFBEb21haW4uYywgc25tcF90cmFuc3BvcnQuYzoKCiAgIGRlZmluZSBsZW5ndGggc2l6ZV90J3MgZm9yIG9pZCB2YXJpYWJsZXMuCiAgIAoyMDAyLTA0LTA4IDE2OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIHN1cHBvcnQgIm51bGwiIHR5cGVzLgogICAKMjAwMi0wNC0wOCAxNjo1MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGluaXRpYWxpemUgbm90aWZpY2F0aW9uIGxvZyBtaWIgc3VwcG9ydCBiZWZvcmUgLUggdXNhZ2UuCiAgIAoyMDAyLTA0LTA4IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jOgoKICAgZml4IGEgZmV3IHRoaW5ncyBhbmQgbWFrZSBzdWJoYW5kbGVycyBub3QgYWJsZSB0byB0ZWxsIHRoZXJlIHdlcmUgbW9yZSByZXF1ZXN0cy4KICAgCjIwMDItMDQtMDggMTY6NDMgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICBBIGNvLXdvcmtlciBwb2ludGVkIG91dCB0aGF0IHRoZSBJTlNUQUxMIHNjcmlwdCBzdGlsbCBzYWlkIHRvIGVkaXQgY29uZmlnLmgKICAgCjIwMDItMDQtMDggMTU6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgdW5zdGF0aWMtaXplIGEgZmV3IG9pZHMgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIGV4dGVybmFsCiAgIAoyMDAyLTA0LTA4IDE0OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYywgc25tcFRDUERvbWFpbi5jLAogICBzbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jLAogICBzbm1wVW5peERvbWFpbi5jLCBzbm1wX2FwaS5jLCBzbm1wX3RyYW5zcG9ydC5jCiwgc25tcHVzbS5jOgoKICAgQ2hhbmdlIGNvbnN0IG9pZCBkZWNsYXJhdGlvbnMgaW50byBzdGF0aWMgb25lcyBzaW5jZSBzaGFyZWQgbGlicmFyaWVzCiAgIGhhdmUgYSBwcm9ibGVtIHdpdGggaW5pdGlhbGl6aW5nIHRoZW0gb24gbGludXggc3lzdGVtcyBhdCBsZWFzdC4KICAgCjIwMDItMDQtMDggMTE6NDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWluaW1hbCBkb2N1bWVudGF0aW9uIGZvciBkZWJ1Z2dpbmcgYW5kIHRoZSBpbmplY3RIYW5kbGVyIHRva2VuCiAgIAoyMDAyLTA0LTA1IDE0OjMyICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wdHJhcGQuOC5kZWYsIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIE5PVElGSUNBVElPTi1MT0ctTUlCIHN1cHBvcnQuCiAgIAoyMDAyLTA0LTA1IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IGNvbnRleHQgbmFtZSBzdXBwb3J0IGluIHByb3h5IGNvZGUuCiAgIAoyMDAyLTA0LTA1IDEzOjUxICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHRoZSBkaXNtYW4gZXZlbnQgbWliIHN1cHBvcnQgZm9yIHNlbmRpbmcgdHJhcHMgdmlhIG1vbml0b3JlZCBPSURzLgogICAKMjAwMi0wNC0wNSAxMDoxMiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBwdXQgdHJhcCBjb25maWcgaW50byBpdHMgb3duIHNlY3Rpb24uCiAgIGRvY3VtZW50IHRoZSAib3ZlcnJpZGUiIHRva2VuLgogICAKMjAwMi0wNC0wNSAwNjozOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIGNoYW5nZSBkZWZhdWx0IGNvbnRleHQgdG8gYW4gZW1wdHkgc3RyaW5nCiAgIAoyMDAyLTA0LTA0IDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgKFY0LTItcGF0Y2hlcy41KSwgYWdlbnRfcmVnaXN0cnkuYwo6CgogICBkZWFsIHdpdGggZmQgdW5yZWdpc3RyYXRpb25zIHByb3Blcmx5LgogICAKMjAwMi0wNC0wMyAwOToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLmgKLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBNYWtlIGFuIGV4YW1wbGUgZGF0YXNldCB0YWJsZSB0byBob2xkIGFuZCBzdG9yZSBkYXRhIGluIChhZG1pdHRlZGx5CiAgIHVzZWxlc3MgZGF0YSBmcm9tIGEgbmV0d29yayBtYW5hZ2VtZW50IHBvaW50IG9mIHZpZXcsIGJ1dCBpdCdzIGFuIGV4YW1wbGUpLgogICAKMjAwMi0wNC0wMiAyMjoxMiAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgZml4IGluc3RhbGxhdGlvbiBmcm9tIHN1YmRpciBidWlsZCBjYXNlLgogICAKMjAwMi0wNC0wMiAyMTo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzIGZyb20gZnJvbSBidWlsZCBkaXIuCiAgIAoyMDAyLTA0LTAyIDIxOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbWliX21vZHVsZV9jb25maWcuaCBhbmQgbWliX21vZHVsZV9pbmNsdWRlcy5oIGZyb20gYnVpbGQgZGlyLgogICAKMjAwMi0wNC0wMiAyMTo0MyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG5ldC1zbm1wLWNvbmZpZy5oIGZyb20gdGhlIGJ1aWxkIGRpci4KICAgCjIwMDItMDQtMDIgMjE6NDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgY3JlYXRlIHNvbWUgaW5zdGFsbCBmcm9tIGJ1aWx0IGhlYWRlciBydWxlcy4KICAgCjIwMDItMDQtMDIgMTc6MjcgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjLmNvbmY6CgogICByZW1vdmUgZGVsZXRlZCBhcnJheS1hdXRvIGZyb20gLmNvbmYgaW5zdGFsbC9yZWZlcmVuY2UgbGlzdHMKICAgCjIwMDItMDQtMDIgMTU6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgdWNkLXNubXAvcmVnaXN0cnkuYywKICAgdWNkLXNubXAvcmVnaXN0cnkuaDoKCiAgIHJlbW92ZSB0aGUgcmVnaXN0cnkgbW9kdWxlLCBhcyBpdCdzIG9ic29sZXRlIGR1ZSB0byBjb250ZXh0cy4gIFVzZSB0aGUgbnNNb2R1bGVUYWJsZSBpbnN0ZWFkCiAgIAoyMDAyLTA0LTAyIDE0OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgKFY0LTItcGF0Y2hlcy43KSwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaDoKCiAgIEFwcGx5IHBhdGNoICM1MjQ0MjQgZm9yIGRhcndpbiBmaXhlcyBmb3IgdWNkLXNubXAvZGlzay5jCiAgIAoyMDAyLTA0LTAyIDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYyAoVjQtMi1wYXRjaGVzLjgpLAogICBrZXJuZWxfc3Vub3M1LmM6CgogICBhcHBseSBwYXRjaCA1Mjc1NzMgdG8gZml4IDY0IGJpdCB0eXBlcyBvbiBzb2xhcmlzCiAgIAoyMDAyLTA0LTAyIDA3OjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBjaGVjayBjaGFyIGZvciBOVUxMIGJlZm9yZSBzZXR0aW5nIHRvOgogICAKMjAwMi0wNC0wMSAyMjoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy45KSwgY211X2NvbXBhdC5jLAogICBzbm1wX2FwaS5jOgoKICAgTGV0IGluaXRfc25tcCBwcm90ZWN0IGl0c2VsZi4KICAgCjIwMDItMDMtMjkgMTU6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB0d2Vha3MgJiB1cGRhdGVzCiAgIAoyMDAyLTAzLTI5IDEwOjQwICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGFkZCBjb21tZW50CiAgIAoyMDAyLTAzLTI5IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgYWRkIGEgYWxsb3dfY3JlYXRpb24gZGVmaW5pdGlvbi4KICAgCjIwMDItMDMtMjkgMDg6MjIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgbWFrZSBuZXQtc25tcC1jb25maWcgZXhlY3V0YWJsZSBhZnRlciBpdCdzIGJ1aWx0CiAgIAoyMDAyLTAzLTI5IDA4OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHNldFNlcmlhbE5vLmMsIHNldFNlcmlhbE5vLmg6CgogICBvcHBzLiAgZm9yZ290IHRvIGNoZWNrIHRoZSBzZXRTZXJpYWwgY29kZSBpbgogICAKMjAwMi0wMy0yOCAyMzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMgKFY0LTItcGF0Y2hlcy40KSwgcGFzcy5jOgoKICAgZW5hYmxlIHJvdyBjcmVhdGlvbiBmb3IgcGFzcyBtb2R1bGVzLiAgUGF0Y2ggIzQ4MjAwNQogICAKMjAwMi0wMy0yOCAyMzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMgKFY0LTItcGF0Y2hlcy4yKSwKICAgaW50ZXJmYWNlcy5jOgoKICAgcGF0Y2ggIzUxNzM0MDogZnJlZWJzZDUgc3VwcG9ydAogICAKMjAwMi0wMy0yOCAyMzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYyAoVjQtMi1wYXRjaGVzLjQpLCBocl9maWxlc3lzLmMKOgoKICAgYXBwbHkgZnJlZWJzZDUgcGF0Y2ggIzUxNzMzMwogICAKMjAwMi0wMy0yOCAyMzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N5c3RlbS5jLCBtaWJJSS9pbnRlcmZhY2VzLmMKLCBtaWJJSS9pcEFkZHIuYzoKCiAgIEFwcGx5IG5ldGJzZCBmaXggcGF0Y2ggIzUyOTczMwogICAKMjAwMi0wMy0yOCAyMzowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy44KSwgc25tcF9hcGkuYywKICAgc25tcF9hcGkuYzoKCiAgIHVzZSBhIHN0YXRpYyB2YXJpYWJsZSBmb3IgaW5pdCBjaGVja2luZy4gIEJ1ZyAjNTM2Mzg2LgogICAKMjAwMi0wMy0yOCAxNToyNSAgZHRzMTIKCiAgICogbWFuLzogZGVmYXVsdF9zdG9yZS4zLnRvcCwgcmVhZF9jb25maWcuMy5kZWYsCiAgIHNubXBfYXBpLjMuZGVmOgoKICAgVHdlYWsgdG8gdXNlIHRoZSBuZXcgaW5jbHVkZSBzdHJ1Y3R1cmUuCiAgIAoyMDAyLTAzLTI4IDE1OjIzICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy44KSwgRkFROgoKICAgQWRkIGEgZmV3IG5ldyBlbnRyaWVzIChtb3N0bHkgcmVsYXRpbmcgdG8gdHJhcHMpCiAgIAoyMDAyLTAzLTI4IDE0OjU2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcmVuYW1lL3ByZWZpeCBmdW5jdGlvbnM7IGFkZCBkb3h5Z2VuIGRvY3VtZW50YXRpb24KICAgCjIwMDItMDMtMjggMTM6MDAgIHJzdG9yeQoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBhZGQgZGVmaW5lIGZvciBleGNsdWRpbmcgc3R1ZmYgKERPWFlHRU5fU0hPVUxEX1NLSVBfVEhJUykKICAgCjIwMDItMDMtMjggMTI6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICBhZGQgc2V0U2VyaWFsTm8KICAgCjIwMDItMDMtMjggMTI6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgZml4IGEgbmV2ZXItc2Vlbi1idXQtdmVyeS1vbGQtYnVnIHVzaW5nIHRoZSB3cm9uZyBkZWZhdWx0X3N0b3JlIHRva2VuLgogICAKMjAwMi0wMy0yOCAxMjo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgb25seSBzZXQgdGhlIGRlZmF1bHQgb3V0cHV0IHN0eWxlIGlmIGl0J3Mgbm90IGFscmVhZHkgc2V0IHRvIHNvbWV0aGluZy4KICAgCjIwMDItMDMtMjggMTI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICB3cmFwcGluZy4KICAgCjIwMDItMDMtMjggMTI6MTcgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIGNoYW5nZSB2ZXJzaW9uIG51bWJlcgogICAKMjAwMi0wMy0yOCAxMjowOCAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgYmFjayBvdXQgY2hhbmdlIGZyb20gdmVyc2lvbiAxLjY1IHVudGlsIGJldHRlciBzb2x1dGlvbiBjYW4gYmUgZm91bmQ7CiAgIGJ1ZyAjNTM1MDI5CiAgIAoyMDAyLTAzLTI4IDEyOjAzICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIHJldHVybiBzcGVjaWZpYyByZXN1bHQgY29kZSBmb3IgcmVnaXN0cmF0aW9uIGZhaWx1cmUgaWYgYXZhaWxhYmxlLgogICAKMjAwMi0wMy0yOCAxMTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKOgoKICAgcGVybCB0eXBvCiAgIAoyMDAyLTAzLTI3IDE1OjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mOgoKICAgZGVsZXRlIG9sZCwgdW51c2VkIGNvbmYgZmlsZQogICAKMjAwMi0wMy0yNyAwODoyNyAgaGFyZGFrZXIKCiAgICogYXBwcy86IG5vdGlmaWNhdGlvbl9sb2cuYywgbm90aWZpY2F0aW9uX2xvZy5oLAogICBzbm1wdHJhcGQuYzoKCiAgIGFkZCAiZG9udFJldGFpbkxvZ3MiIHRva2VuIHRvIHNubXB0cmFwZC5jb25mIHRvIG5vdCBlbmFibGUgdGhlCiAgIG5vdGlmaWNhdGlvbiBsb2cgbWliLgogICAKMjAwMi0wMy0yNyAwMTo1NCAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUgKFY0LTItcGF0Y2hlcy5bMSwxXSksIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgVXNlIHRoZSBjb3JyZWN0IG5hbWUgb2YgdGhlIFdpbmRvd3MgSVAgSGVscGVyIEFQSSBsaWJyYXJ5LgogICAoQ29tcHV0ZXJzIGNhbiBiZSBzb29vbyBwaWNreSEpCiAgIAoyMDAyLTAzLTI2IDIzOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYwosIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgLSBSZWFsbHkgZml4IHRoZSAidW5kbyBmYWlsZWQiIHByb2JsZW0uICBJRSwgbm90IGp1c3QgYW55IG9sZCBlcnJvcgogICAgIHdpbGwgY2F1c2UgYW4gdW5kbyBmYWlsZWQgbWVzc2FnZSB0byBnZXQgc2VudCBiYWNrLiAgT25seSB2YXJiaW5kcwogICAgIHdpdGggYW4gdW5kbyBmYWlsZWQgZXJyb3IgY29kZSB3aWxsIGNhdXNlIGFuIHVuZG8gZmFpbGVkIHJlc3VsdC4KICAgICB1bmRvIGZhaWxlZCByZXN1bHRzIGRvIHN0aWxsIHN1cGVyc2VkZSBhbGwgb3RoZXIgZXJyb3IgY29kZXMsCiAgICAgaG93ZXZlciwgd2hpY2ggaXMgd2hhdCB0aGUgb3JpZ2luYWwgcHJvYmxlbSB3YXMgYWxsIGFib3V0LiAgV2Ugc3RpbGwKICAgICBoYXZlIHRvIGRlcGVuZCBvbiB0aGUgbW9kdWxlcyByZXR1cm5pbmcgdGhlIHJpZ2h0IGVycm9yIGNvZGUgKGJ1dAogICAgIHRoYXQncyB0aGVpciBmYXVsdCBpZiB0aGV5IGRvbid0KS4KICAgLSBtaXNjIGNsZWFudXBzIGFuZCByZW5hbWVzCiAgIAoyMDAyLTAzLTI2IDIzOjIwICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGQgQ3JhaWcgU2V0ZXJhCiAgIAoyMDAyLTAzLTI2IDE0OjA3ICByc3RvcnkKCiAgICogVE9ETzoKCiAgIGFkZCBjcmVhdGluZyBzcmMgcnBtIHNwZWMgZmlsZQogICAKMjAwMi0wMy0yNiAwODoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNraW8uYyAoVjQtMi1wYXRjaGVzLjIpLCBkaXNraW8uYwo6CgogICBlbmFibGUgZGlza2lvIG9uIGZyZWVic2Q1LiAgSW1wbGVtZW50cyBwYXRjaCA1MTczMjggaW4gYSBkaWZmZXJlbnQgd2F5LgogICAKMjAwMi0wMy0yNiAwNzo1OCAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBmb3Igb3RoZXItZGlyIGJ1aWxkcwogICAKMjAwMi0wMy0yNiAwNzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gaW5mbyBpbiBzcGxpdF9zdWJ0cmVlCiAgIAoyMDAyLTAzLTI2IDA3OjQzICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjQtMi1wYXRjaGVzLlswLDBdKSwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICBBZGQgL2V0Yy9maWxlc3lzdGVtcyB0byBsaXN0IG9mIG1vdW50IHRhYmxlIGZpbGVzIChmb3IgQUlYKQogICBTaG91bGQgZml4IGJ1Z3MgMjMyNTg4IGFuZCAoPyk1MTcxMTMKICAgCjIwMDItMDMtMjYgMDc6MzkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluIChWNC0yLXBhdGNoZXMuWzksOV0pLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIFJlbW92ZSB0cmFpbGluZyAnOicgZnJvbSBsaXN0IG9mIE1JQiBtb2R1bGUgbmFtZXMgaW4gY29uZmlndXJlIG91dHB1dCwKICAgdG8gYXZvaWQgY29uZnVzaW9uIChzZWUgQnVnICM0OTExMjkpCiAgIAoyMDAyLTAzLTI2IDA2OjQxICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCAnLWxobHBhcGknIHRvIHRoZSBsaXN0IG9mIGFnZW50IGxpYnJhcmllcywgd2hlbiBydW5uaW5nIG9uIFdpbmRvd3MKICAgKHVzaW5nIEN5Z3dpbikuICBTaG91bGQgZml4IEJ1ZyAjNTM0NDA5LgogICAKMjAwMi0wMy0yNSAyMjozMyAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBwYXJzZS5jIChWNC0yLXBhdGNoZXMuMyksIHBhcnNlLmM6CgogICBmaXggYnVnIzUyMDQ3OCBzaG93TWliRXJyb3JzIHRva2VuIGlzIGludmVydGVkCiAgIAoyMDAyLTAzLTI1IDE1OjE4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmg6CgogICByZW1vdmUgXk0gY2hhcmFjdGVycwogICAKMjAwMi0wMy0yNSAxNDo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaAo6CgogICB1c2UgZW1hY3MgdG8gZml4IHBlcmwgc2VhcmNoIGFuZCByZXBsYWNlIGVycm9ycywgb2YgY291cnNlCiAgIAoyMDAyLTAzLTI1IDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsCiAgIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHVzZSBwZXJsIHRvIHNlYXJjaCBhbmQgcmVwbGFjZSBwZXJsIHNlYXJjaCBhbmQgcmVwbGFjZSBlcnJvcnMsIG9mIGNvdXJzZQogICAKMjAwMi0wMy0yNSAxNDoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBhcGkgY2hhbmdlcwogICAKMjAwMi0wMy0yNSAwODo0MyAgZHRzMTIKCiAgICogd2luMzIvOiB3aW4zMi5vcHQsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCiwgc25tcGQvc25tcGQuZHNwLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwKICAgc25tcGRmL3NubXBkZi5kc3AsIHNubXBnZXQvc25tcGdldC5kc3AsCiAgIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwCiwgc25tcHNldC9zbm1wc2V0LmRzcCwgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcAosIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLCBzbm1wdGVzdC9zbm1wdGVzdC5kc3AKLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwLAogICBzbm1wdXNtL3NubXB1c20uZHNwLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsCiAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIFJlbW92ZSByZWR1bmRhbnQgZGVjbGFyYXRpb25zIG9mICdnZXRvcHQuYycgYW5kICdzbm1wX3BhcnNlX2FyZ3MuYycgaW4KICAgZWFjaCBpbmRpdmlkdWFsIGFwcGxpY2F0aW9uIHByb2plY3QuICBUaGVzZSByb3V0aW5lcyBhcmUgaW5jbHVkZWQgd2l0aGluCiAgIHRoZSBsaWJyYXJpZXMsIHNvIHdlIG1pZ2h0IGFzIHdlbGwgdXNlIHRob3NlLgogICAKMjAwMi0wMy0yNSAwNTo1MyAgZHRzMTIKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2luaXRzLmgsIHdpbjMyLm9wdCwKICAgbGlic25tcF9kbGwvbGlic25tcC5kZWYsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgc25tcGQvc25tcGQuZHNwOgoKICAgR290Y2hhISAgRXZlcnl0aGluZyBub3cgYnVpbGRzIChtb3JlLW9yLWxlc3MpIGNsZWFubHkgdW5kZXIgVmlzdWFsIEMrKy4KICAgWW91IHN0aWxsIGhhdmUgdG8gdXNlIHRoZSAiQmF0Y2ggQnVpbGQiIG1lY2hhbmlzbSAob3IgZWxzZSBiZSBjYXJlZnVsIHdoaWNoCiAgIG9mIGxpYnNubXAvbGlic25tcF9kbGwgeW91IGJ1aWxkIGluIGVhY2ggb2YgdGhlIERlYnVnICYgUmVsZWFzZSBtb2RlcyksCiAgIGFuZCB5b3UgbmVlZCB0byBidWlsZCB0d2ljZSBpbiBvcmRlciB0byBnZXQgZW5jb2RlX2tleWNoYW5nZSBsaW5raW5nLgogICBCdXQgdGhpbmdzICpkbyogZmluYWxseSBidWlsZC4KICAgCjIwMDItMDMtMjQgMDU6MjEgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgT29wcyAtIHNucHJpbnRfKiBjYW5ub3QgcmVhbGxvYwogICAKMjAwMi0wMy0yMyAwOTo0MCAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIHJlYWxseSBmaXggc25tcGluZm9ybSBpbnN0YWxscyB0aGlzIHRpbWUuCiAgIAoyMDAyLTAzLTIyIDIyOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGZpbmFsIGNsZWFudXBzIG9mIG5vdGlmaWNhdGlvbiBsb2cgc3VwcG9ydAogICAKMjAwMi0wMy0yMiAyMjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBpbnN0YWxsYXRpb24gb2Ygc25tcGluZm9ybQogICAKMjAwMi0wMy0yMiAyMjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIFJlbmFtZSBzdHVmZi4gIEZpeCBzdHVmZi4gIFlvdSBrbm93LCBub3JtYWwgcm91dGluZS4KICAgCjIwMDItMDMtMjIgMjI6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IHZlcnNpb24gZmlsZSBsb2NhdGlvbiBmb3Igbm9uLXNvdXJjZWRpciBidWlsZHMKICAgCjIwMDItMDMtMjIgMTQ6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgZm9yZ290IHRvIGNvbW1pdCBhIHByb3RvdHlwZS4KICAgCjIwMDItMDMtMjIgMTQ6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICByZWdpc3Rlcl9taWJfY29udGV4dDIgLT4gbmV0c25tcF9yZWdpc3Rlcl9taWIgKGFuZCBtYXJrZWQgYXMgaW50ZXJuYWwpCiAgIAoyMDAyLTAzLTIyIDE0OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgc3ViYWdlbnQuYzoKCiAgIHVzZSBuZXcgZXJyb3IgbG9nZ2luZyBhcGkgd2hlbiAhcm9vdAogICAKMjAwMi0wMy0yMiAxNDowMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZW5hYmxlIGxvZ2dpbmcgc2Vzc2lvbiBlcnJvcnMgdG8gc29tZSBsb2cgbGV2ZWwgb3RoZXIgdGhhbiBFUlIuCiAgIAoyMDAyLTAzLTIyIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgc3ViYWdlbnQuYzoKCiAgIGJldHRlciBhZ2VudHggY29ubmVjdGlvbiByZWxhdGVkIGVycm9yIG1lc3NhZ2VzLgogICAKMjAwMi0wMy0yMiAwOTozNSAgZHRzMTIKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyLm9wdCwKICAgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgc25tcGQvc25tcGQuZHNwOgoKICAgU2xvd2x5IG1ha2luZyBwcm9ncmVzcyBvbiA1LjAgV2luZG93cyBidWlsZC4KICAgRXZlcnl0aGluZyBub3cgY29tcGlsZXMsIHRob3VnaCB0aGUgUmVsZWFzZSB2ZXJzaW9uIGRvZXNuJ3QgbGluay4KICAgICAoY29tcGxhaW5zIGFib3V0IGFzc29ydGVkIHVua25vd24gcm91dGluZXMgdGhhdCBhcmUgdGhlcmUsCiAgICAgIHN0YXJpbmcgaXQgaW4gdGhlIGZhY2UuICBHcnJyISEhISkKICAgCjIwMDItMDMtMjIgMDg6MjQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gZG8gbm90ICJ0d2VhayIgcmFuZ2Vfc3ViaWQgd2hlbiBkZWFsaW5nIHdpdGggY29tcHJlc3NlZCBPSURzLgogICAgICAgVGhhbmtzIHRvIENyYWlnIFNldGVyYSBmb3IgcG9pbnRpbmcgb3V0IHRoaXMgZGV2aWF0aW9uIGZyb20gUkZDCiAgICAgICAyNzQxLgogICAKMjAwMi0wMy0yMiAwNzo1MCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvb2lkX2FycmF5LmMKLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFZhcmlvdXMgbWlub3IgaW5jb25zaXN0ZW5jaWVzIChtb3N0bHkgdG8gZG8gd2l0aCBzdWJ0bGUgdmFyaWF0aW9ucyBpbiB0eXBlcykKICAgCjIwMDItMDMtMjIgMDc6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgZml4IHR5cG8KICAgCjIwMDItMDMtMjIgMDc6MjkgIGR0czEyCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9pbmNsdWRlcy5oLCBtaWJfbW9kdWxlX2luaXRzLmgsCiAgIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICBuZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oOgoKICAgQnJpbmcgV2luZG93cyB2ZXJzaW9ucyBvZiAiYXV0b21hdGljYWxseS1nZW5lcmF0ZWQiIGhlYWRlciBmaWxlcyB1cCB0byBkYXRlLgogICAKMjAwMi0wMy0yMiAwMjoyMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAgIC0gZG9uJ3QgdXNlICJyZWciIGFzIGEgcGFyYW1ldGVyIG5hbWUgaW4ga2VybmVsX3N1bm9zNV9jYWNoZV9hZ2UoKQogICAgICAgYXMgL3Vzci9pbmNsdWRlL2luZXQvY29tbW9uLmggc2F5czoKICAgICAgICNkZWZpbmUgcmVnIHJlZ2lzdGVyCiAgICAgICAoISkgd2hpY2ggdGhlIGNvbXBpbGVyIHRoZW4gYmFyZnMgb24uICBSZXBvcnRlZCBhcyBidWcgIzUzMzMzNiBieQogICAgICAgQW5vbnltb3VzLgogICAKMjAwMi0wMy0yMSAwOToyNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMKOgoKICAgLSBzbm1wX2NvbmZpZyogLT4gbmV0c25tcF9jb25maWcgKGZvciBuZXcgZnVuY3Rpb25zIG9ubHkpCiAgIC0gZml4IGJ1ZyB3aGVyZSBzbm1wX2NvbmZpZygpIHN0cmluZ3Mgd2VyZSBnZXR0aW5nIHBhcnNlZCB0d2ljZS4KICAgCjIwMDItMDMtMjEgMDk6MjMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICB3cmFwIGFnZW50eCBzdHVmZiBpbiBhIHN0aWxsIHVudXNlZCB2YXJpYWJsZSAoYXQgdGhpcyBwb2ludCkuCiAgIAoyMDAyLTAzLTIxIDA5OjIzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCiAgIAoyMDAyLTAzLTIxIDA5OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIGZpeCBvaWQgcGFyc2luZy4KICAgCjIwMDItMDMtMjEgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogUm1vbi9hbGFybS5jLCBSbW9uL3N0YXRpc3RpY3MuYywKICAgbWliSUkvYXQuYzoKCiAgIGNoYW5nZSAvLyBjb21lbnRzIHRvIC8qICovIGNvbW1lbnRzIChiYWQgYmFkIGJhZCkKICAgCjIwMDItMDMtMjEgMDY6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgY2hhbmdlIC8vIGNvbWVudHMgdG8gLyogKi8gY29tbWVudHMgKGJhZCBiYWQgYmFkKQogICAKMjAwMi0wMy0yMCAyMDoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIGEgbGlzdCBvZiByZWdpc3RlcmVkIHRleHQgZW51bXMgdG8gQVNOXyogdmFsdWVzLgogICAgIChJbiBwcm9iYWJseSB0aGUgd3JvbmcgcGxhY2UuKQogICAKMjAwMi0wMy0yMCAyMDoxMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy5oLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmg6CgogICBjcmVhdGUgYSBuZXcgIm92ZXJyaWRlIiBkaXJlY3RpdmUgdG8gZm9yY2UgYW4gT0lEIHRvIGEgcGFydGljdWxhciB2YWx1ZQogICAtIG5vdCBmaW5pc2hlZC4gIEl0J3MgZGVzaWduZWQgdG8gZG8gcmVhZC13cml0ZSBhcyB3ZWxsLCBidXQgZG9lc24ndC4KICAgCjIwMDItMDMtMjAgMjA6MDggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIGNoZWNrIGZvciBpbmNsdXNpdmUKICAgCjIwMDItMDMtMjAgMTE6MzcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgaW5jbHVkZSBuZXcgZGVsZXRlL3JlbW92ZSBicmVha2Rvd24gQVBJcwogICAKMjAwMi0wMy0yMCAxMTozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBBUEkgY2hhbmdlLgogICAKMjAwMi0wMy0yMCAxMTozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBzb21lICJ0aGlzIHdpbGwgY2hhbmdlIiBlYXJseSByb3cgc3RhdHVzIGltcGxlbWVudGF0aW9uLgogICAgLSAodGhpcyB3aWxsIG1vdmUgdG8gYSBzZXBhcmF0ZSBoYW5kbGVyKQogICAKMjAwMi0wMy0yMCAxMTozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBwb2ludGVyIGNoZWNraW5nIGFnYWluc3QgaWxsZWdhbCBhZGRzIChpZSwgc2hvdWxkbid0IGhhcHBlbiBidXQgY2hlY2sgYW55d2F5KQogICAKMjAwMi0wMy0yMCAwODo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIE9rLCBJIG1ha2UgbWlzdGFrZXMuICBJIGFkbWl0IGl0LiAgSXQgcmVhbGx5IHNob3VsZCBoYXZlIGJlZW4gYSBOVUxMLgogICAKMjAwMi0wMy0yMCAwODozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIGFkZCBtaXNzaW5nIGNvbW1hCiAgIAoyMDAyLTAzLTIwIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmg6CgogICBzZXBhcmF0ZSBvdXQgZGVsZXRlL3JlbW92ZSByb3cgZnVuY3Rpb25hbGl0eQogICAKMjAwMi0wMy0yMCAwNzo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXN0ZW1fbWliLmMgKFY0LTItcGF0Y2hlcy42KSwKICAgc3lzdGVtX21pYi5jOgoKICAgcmVtb3ZlIGlsbGVnYWwgU0VUIHN1cHBvcnQgZm9yIHN5c0Rlc2NyLgogICAKMjAwMi0wMy0yMCAwNjoyNyAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGUsIGxvY2FsL21pYjJjOgoKICAgLSBhZGQgbWFueSBtYW55IC1UIGZsYWdzIGZvciBkZWZpbmluZyB0eXBlcy4KICAgCjIwMDItMDMtMTkgMjE6MTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBmb3JjZSBzZXR0aW5nIG9mICchcm9vdCcgZmxhZyBzbyB0aGF0IGl0IHdpbGwgcnVuIGZvciBub24tcHJpdmlsZWdlZAogICB1c2VycyBvciB3aGVuIGFuIGFnZW50eCBtYXN0ZXIgc2ltcGx5IGhhcyBuZXZlciBleGlzdGVkLgogICAKMjAwMi0wMy0xOSAxNjowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgLSBhbGxvdyB0YWJsZXMgdG8gYmUgbWFya2VkIHdoZXRoZXIgdGhleSBzaG91bGQgc3VwcG9ydCBjcmVhdGlvbiBvciBub3QuCiAgIC0gYnVnIGZpeGVzCiAgIAoyMDAyLTAzLTE5IDA3OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfZGF0YS5jLCB0YWJsZV9kYXRhc2V0LmM6CgogICBkb2N1bWVudGF0aW9uIGNsZWFuIHVwCiAgIAoyMDAyLTAzLTE5IDA3OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYywgaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBkb2N1bWVudGF0aW9uIGNsZWFuIHVwCiAgIAoyMDAyLTAzLTE5IDA3OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYywgaGVscGVycy9idWxrX3RvX25leHQuYywKICAgaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIG1pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYwo6CgogICBkb2N1bWVudGF0aW9uIGNsZWFuIHVwCiAgIAoyMDAyLTAzLTE5IDA2OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy90YWJsZS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYwosIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwKICAgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwgcGVybC9hZ2VudC9hZ2VudC54cywKICAgc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIC0gcmVuYW1lZCBhIGZldyBiYWRseSBuYW1lZCBmdW5jdGlvbnMgKG5ldHNubXBfIGFwcGVhcmVkIHR3aWNlKS4KICAgLSBpbXBsZW1lbnRlZCB0aGUgYmVnaW5uaW5nIG9mIGNyZWF0aW9uIHN1cHBvcnQgZm9yIGRhdGFzZXRzLgogICAKMjAwMi0wMy0xOSAwNjozNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgQXBwYXJlbnRseSBJIHJhbiBhdXRvY29uZiBlYXJsaWVyIGFuZCBtaXNzZWQgY2hlY2tpbmcgaW4gdGhlIHJlc3VsdHMuCiAgIAoyMDAyLTAzLTE5IDA2OjM1ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIGFkZCAtbmZjYQogICAKMjAwMi0wMy0xNyAxNjoyNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgU2V0IGRlZmF1bHQgcG9ydCB0byAxNjIuCiAgIAoyMDAyLTAzLTE3IDE1OjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmM6CgogICBpbXByb3ZlZCBmb3JtYXR0aW5nIHN0cmluZ3Mgc2hvd2luZyBib3RoIHRyYW5zcG9ydCB0eXBlIGFuZCBwb3J0IG51bWJlci4KICAgCjIwMDItMDMtMTMgMjM6MzAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgYWRkIG1pc3NpbmcgImluc3RhbGxzdWJkaXJzIiB0YXJnZXQgbWlzc2luZyAodGhhbmtzIHRvIEthdHN1aGlzYSBBQkUpCiAgIAoyMDAyLTAzLTEzIDIzOjI3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCAtLWNyZWF0ZS1zbm1wdjMtdXNlciB0byBhdXRvbWF0ZSBhZGRpbmcgYSB2MyB1c2VyIHRvIGJvdGggdGhlIHVzbQogICBhbmQgdmFjbSB0YWJsZXMgKGJ5IGFkZGluZyBsaW5lcyB0byBib3RoIHRoZSBwZXJzaXN0ZW50IGFuZCBub3JtYWwKICAgY29uZiBmaWxlcykuCiAgIAoyMDAyLTAzLTEzIDE2OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICBidWcgZml4IGZvciBwcmUtcHJvY2Vzc2VkIHJlcXVlc3RzLgogICAKMjAwMi0wMy0xMyAxNjozMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X2luZGV4LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3RyYXAuaCwgaW5jbHVkZS91Y2Qtc25tcC9hc24xLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvYXV0b19ubGlzdC5oLCBpbmNsdWRlL3VjZC1zbm1wL2NhbGxiYWNrLmgKLCBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9kc19hZ2VudC5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2hlYWRlcl9jb21wbGV4LmgsIGluY2x1ZGUvdWNkLXNubXAvaW50NjQuaAosIGluY2x1ZGUvdWNkLXNubXAva2V5dG9vbHMuaCwgaW5jbHVkZS91Y2Qtc25tcC9taWIuaAosIGluY2x1ZGUvdWNkLXNubXAvbWliX21vZHVsZV9jb25maWcuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9taWJpbmNsLmgsIGluY2x1ZGUvdWNkLXNubXAvcGFyc2UuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9yZWFkX2NvbmZpZy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NjYXBpLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAtdGMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FsYXJtLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hcGkuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcF9jbGllbnQuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2RlYnVnLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9pbXBsLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfbG9nZ2luZy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfcGFyc2VfYXJncy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfdmFycy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB1c20uaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcHYzLmgsIGluY2x1ZGUvdWNkLXNubXAvc3RydWN0LmgKLCBpbmNsdWRlL3VjZC1zbm1wL3N5c3RlbS5oLCBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3RyYW5zZm9ybV9vaWRzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3V0aWxfZnVuY3MuaCwgaW5jbHVkZS91Y2Qtc25tcC92YXJfc3RydWN0LmgKLCBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaDoKCiAgIC0gLS1lbmFibGUtdWNkLXNubXAtY29tcGF0aWJpbGl0eSBhY3R1YWxseSBpbnN0YWxscyBoZWFkZXJzIChhcyBvcHBvc2VkCiAgICAgdG8gYWx3YXlzLCB3aGljaCBpcyB3aGF0IGl0IHVzZWQgdG8gZG8pLgogICAtIGFkZCBhZ2VudF9taWJzIHRvIGNvbmZpZ3VyZSBkZWZhdWx0IG1pYiBtb2R1bGVzIGFuZCBkb2N1bWVudC4KICAgLSBjaGFuZ2UgaGVscCBkb2N1bWVudGF0aW9uIGEgYml0IGZvciB0aGUgbWliIG1vZHVsZXMuCiAgIC0gYWRkIGEgZm9yY2VkIGRlcGVuZGVuY3kgZm9yIG1pYl9tb2R1bGVzLmxvCiAgIAoyMDAyLTAzLTEzIDE2OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC5oOgoKICAgb3Bwcy4gIGR1cGxpY2F0ZXMgZXhpc3RpbmcgYWdlbnRfbWlicy5oCiAgIAoyMDAyLTAzLTEzIDE1OjUwICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELURFTU8tTUlCLnR4dCwgVUNELURJU0tJTy1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLnR4dCwKICAgVUNELUlQRklMVEVSLU1JQi50eHQsIFVDRC1JUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQKICAgKFY0LTItcGF0Y2hlcy5bMSwxLDEsMSwxLDldKSwgVUNELURFTU8tTUlCLnR4dCwKICAgVUNELURJU0tJTy1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLnR4dCwKICAgVUNELUlQRklMVEVSLU1JQi50eHQsIFVDRC1JUEZXQUNDLU1JQi50eHQsCiAgIFVDRC1TTk1QLU1JQi50eHQ6CgogICBhZGRyZXNzIGNoYW5nZXMgZm9yIHVjZC1zbm1wIC0+IG5ldC1zbm1wIG5vdGUgc2F5aW5nIHRoZXNlIG1pYnMgYXJlIG5vCiAgIGxvbmdlciBzdXBwb3J0ZWQgYnkgVUNELgogICAKMjAwMi0wMy0xMyAxNTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmgsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIEFkZGVkIGEgbnNNb2R1bGVUYWJsZSB0YWJsZSB3aGljaCByZXBsYWNlcyB0aGUgb2xkZXIgbXJUYWJsZS4KICAgRnVuY3Rpb25hbGx5LCB0aGlzIGlzIGEgbGlzdCBvZiBhbGwgcmVnaXN0ZXJlZCBpdGVtcyB3aXRoaW4gdGhlIE1JQgogICB0cmVlIGp1c3QgbGlrZSB0aGUgbXJUYWJsZSB3YXMsIGJ1dCB3aXRoIHN1cHBvcnQgZm9yIGNvbnRleHRzIGFuZCBmb3IKICAgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbnMgd2l0aCBkaWZmZXJlbnQgcHJpb3JpdGllcy4KICAgCjIwMDItMDMtMTMgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiB0b29scy5jIChWNC0yLXBhdGNoZXMuNCksIHRvb2xzLmM6CgogICBtYWxsb2MgYXQgbGVhc3Qgb25lIGJ5dGUgaW4gaGV4X3RvX2JpbmFyeTIKICAgCjIwMDItMDMtMTMgMTU6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHJlbW92ZSB1bm5lZWRlZCBkZWJ1ZyBzdGF0ZW1lbnQKICAgCjIwMDItMDMtMTMgMTQ6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBVc2UgbG9jYWwgdmFyaWFibGUgbmFtZSBidWZmZXJzIGJ5IGRlZmF1bHQgd2hlbiBidWlsZGluZyBvaWQgc2VnbWVudHMuCiAgIAoyMDAyLTAzLTEzIDE0OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAvKiBzdG9wIHdhdGVyIGZyb20gZmxvd2luZyB0aHJvdWdoIGRhbSAqLwogICBmaW5nZXItPmluc2VydCgiaG9sZSIpCiAgIAoyMDAyLTAzLTEzIDA0OjAzICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy43KSwgRkFROgoKICAgQWRkIGEgZGVzY3JpcHRpb24gb2YgInVubGlua2VkIE9JRHMiLgogICAKMjAwMi0wMy0xMiAyMTozMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCBtaWIyYy5pdGVyYXRlLmNvbmYKOgoKICAgZml4IGhlYWRlcnMuCiAgIAoyMDAyLTAzLTEyIDIxOjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBkb24ndCBmb3JtYXQgY29tbWVudHMgb3B0aW9uCiAgIAoyMDAyLTAzLTEyIDIxOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGZpeCBmb3IgdGFibGVzIHdpdGggaG9sZXMuCiAgIAoyMDAyLTAzLTEyIDIxOjA5ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgbW92ZSBkZWZhdWx0IG1pYnMgdG8gdGhlaXIgb3duIHZhcmlhYmxlLgogICAKMjAwMi0wMy0xMiAyMTowNiAgaGFyZGFrZXIKCiAgICogcGVybC86IFNOTVAvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICBhZ2VudC9hZ2VudC54cywgYWdlbnQvdHlwZW1hcDoKCiAgIC0gdXNlIG5ldC1zbm1wLWNvbmZpZyB0byBmaWd1cmUgdGhpbmdzIG91dC4KICAgLSB1cGRhdGUgaGVhZGVycyBhbmQgdHlwZWluZm8gZm9yIHJlY2VudCBjaGFuZ2VzLgogICAKMjAwMi0wMy0xMiAyMDozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBGQVEySFRNTCwgUkVBRE1FLm1pYjJjLCBtaWIyYywgdGttaWIKLCBtaWIyYy5hcnJheS1hdXRvLmNvbmYsIG1pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHVjZC1zbm1wIC0+IG5ldC1zbm1wIGNoYW5nZXMuCiAgIAoyMDAyLTAzLTEyIDIwOjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICByZW1vdmUgb2Jzb2xldGUgbWliMmMuY29uZiBmaWxlCiAgIAoyMDAyLTAzLTEyIDE4OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGRvbid0IGZvcmdldCB0byBzZXQgcm93LT5uZXh0LT5wcmV2IHRvIHNvbWV0aGluZyB3aGVuIHJlbW92aW5nIHJvdy4KICAgCjIwMDItMDMtMTIgMTc6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGZpeCBhZ2VudHggaW5jbHVzaXZlIHNlYXJjaGVzIHRvIGlnbm9yZSBnZXQgZXJyb3JzLgogICAKMjAwMi0wMy0xMiAxNzo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIHNvbWUgbWluaW1hbCBkdW1wIGRlYnVnZ2luZy4KICAgCjIwMDItMDMtMTIgMDg6MzQgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjYpLCBGQVE6CgogICBVcGRhdGluZyBvZiB0aGUgRkFRIHJlYWR5IGZvciB0aGUgbmV4dCByZWxlYXNlLgogICAoTW9zdGx5IHJlcGhyYXNpbmcgb2YgZXhpc3RpbmcgZW50cmllcywgYnV0IGEgZmV3IG5ldyBxdWVzdGlvbnMpCiAgIAoyMDAyLTAzLTExIDE4OjAwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBjYXN0IC0xIHRvIHVfY2hhciBzbyB0ZXN0IGRvZXNuJ3QgYWx3YXlzIGZhaWwgKGZpeCBjb21waWxlciB3YXJuaW5nKQogICAKMjAwMi0wMy0xMSAxNzoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgdHJlYXQgKGlsbGVnYWwpIGVycm9ycyBmcm9tIHN1YmFnZW50cyBzcGVjaWFsbHkgZm9yIGdldG5leHQgY2FzZXMuCiAgIAoyMDAyLTAzLTExIDEzOjQxICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgb3VyIHNubXAgbGlicmFyaWVzIHRvIG91dHB1dAogICAKMjAwMi0wMy0xMSAxMDozNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC86IHRhYmxlX2RhdGEuaCwgdGFibGVfZGF0YXNldC5oCjoKCiAgIGRlbGV0ZS9yZW1vdmUgc3VwcG9ydCBoZWFkZXIgY2hhbmdlcy4KICAgCjIwMDItMDMtMTEgMDk6MTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gYWxsb3cgY29tcGlsYXRpb24gLS13aXRoLW91dC10cmFuc3BvcnRzPVRDUAogICAKMjAwMi0wMy0xMSAwODoyMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgICAtIGZpeGVzIGZvciAtLWRpc2FibGUtZGVidWdnaW5nCiAgIAoyMDAyLTAzLTExIDA3OjQxICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy41KSwgRkFROgoKICAgQnJpbmcgdGhlIDR4LSBhbmQgbWFpbi1icmFuY2ggRkFRcyBpbnRvIGFncmVlbWVudC4KICAgCjIwMDItMDMtMTEgMDY6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIHVzZSBjb3JyZWN0IHNlc3Npb24gSUQgd2hlbiB0YWxraW5nIHRvIHN1YmFnZW50cy4gIFRoYW5rcyB0byBDcmFpZwogICAgICAgU2V0ZXJhIGZvciB0aGlzIGZpeC4KICAgCjIwMDItMDMtMTEgMDU6MjAgIGpicG4KCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgICAtIGZpeCBiYWQgdHlwZSBhc3NpZ25tZW50IGluIGJ1aWxkX3RyYW5zbGF0aW9uX3RhYmxlKCksIG5vdGljZWQgYnkKICAgICAgIFBldGVyIFN0ZXZlbnMuCiAgIAoyMDAyLTAzLTExIDAwOjEzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgY2hlY2sgZm9yIE5VTEwgZnJlZXMsIGV2ZW4gdGhvdWdoIGl0J3Mgc3VwcG9zZWQgdG8gYmUgb2sgYWNjb3JkaW5nIHRvIGFuc2kuCiAgIAoyMDAyLTAzLTExIDAwOjEyICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGJlZ2lubmluZyBzdXBwb3J0IGZvciBtYXhpbXVtIGxvZ2dlZCBjaGVja2luZy4KICAgCjIwMDItMDMtMTEgMDA6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgLSByZW1vdmUvZGVsZXRlIHJvdyBzdXBwb3J0LgogICAtIG51bGwgY2hlY2sKICAgLSBkb2MgY29tbWVudHMuCiAgIAoyMDAyLTAzLTExIDAwOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIHJlbW92ZS9kZWxldGUgcm93IHN1cHBvcnQuCiAgIAoyMDAyLTAzLTExIDAwOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBjYWxsIG5leHQgaGFuZGxlcnMgKG9wcHMpLgogICAKMjAwMi0wMy0xMCAxNDoxMSAgbmJhCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgRml4IG9uZSBzcHJpbnRfdmFyaWFibGUgPT4gc25wcmludF92YXJpYWJsZQogICAKMjAwMi0wMy0xMCAxNDowNiAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYzoKCiAgIEFkZCBzbnByaW50XyogZnVuY3Rpb25zIHRoYXQgd2VyZSBzcHJpbnRfKiBpbiB1Y2Qtc25tcCA0CiAgIAoyMDAyLTAzLTEwIDE0OjA1ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCBzbm1wbGliL3NubXBJUFhEb21haW4uYwosIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIEZpeCBjb21waWxhdGlvbiB3aGVuIElQWC10cmFuc3BvcnQgZW5hYmxlZAogICAKMjAwMi0wMy0xMCAxNDowMyAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBGaXggY29tcGlsYXRpb24gb3V0c2lkZSBzb3VyY2UgZGlyZWN0b3J5CiAgIAoyMDAyLTAzLTA4IDIyOjI2ICBoYXJkYWtlcgoKICAgKiBGQVEsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0sCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLnByZTIgKQogICAKMjAwMi0wMy0wOCAxODoyMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgbWlzYyBjaGFuZ2VzLgogICAKMjAwMi0wMy0wOCAxODoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBuZXcgYXBpIGNoYW5nZXMKICAgCjIwMDItMDMtMDggMTc6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jOgoKICAgUGF0Y2ggZnJvbSBMYXdyZW5jZSBHcmVlbmZpZWxkIHRvIGRlYWwgd2l0aCBTZW5kbWFpbCA4LjEyIHF1ZXVlZ3JvdXBzLgogICAKMjAwMi0wMy0wOCAxNjo1OSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIHBhdGNoIGZyb20gY3NldGUgdG8gZml4IHdpbjMyIGJ1aWxkcwogICAKMjAwMi0wMy0wOCAxNjo1NSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBhZGQgQ2FsbGJhY2sgdHJhbnNwb3J0IHRvIGN5Z3dpbgogICAKMjAwMi0wMy0wOCAxNjo0OSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gcm1vbiBzdXBwb3J0LgogICAKMjAwMi0wMy0wOCAxNjozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byByZW1vdmUgb2xkIGFuIHVudXNlZCBwb2ludGVyCiAgIAoyMDAyLTAzLTA4IDE2OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmgsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaAosIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYwosIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oLCBhcHBzL3NubXBidWxrZ2V0LmMsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGRmLmMKLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMKLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5oLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jCiwgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2luZGV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwKICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsCiAgIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZiwgcGVybC9TTk1QL1NOTVAueHMsCiAgIHNubXBsaWIvY211X2NvbXBhdC5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF9zZWNtb2QuYywKICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jCiwgc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBzdHJ1Y3Qgc25tcF9zZXNzaW9uIHR5cGVkZWZlZCB0byBuZXRzbm1wX3Nlc3Npb24uICAmIHBkdS4gJiAuLi4KICAgCjIwMDItMDMtMDggMTQ6MDAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZ2V0X3N5bWJvbCAtPiBnZXRfdHJlZQogICAKMjAwMi0wMy0wOCAwNzo0NSAgaGFyZGFrZXIKCiAgICogcGVybC86IFNOTVAvU05NUC54cywgYWdlbnQvYWdlbnQucG0sIGFnZW50L2FnZW50LnhzCiwgYWdlbnQvdGVzdC5wbDoKCiAgIG1pc3NlZCB1cGRhdGVzCiAgIAoyMDAyLTAzLTA4IDA3OjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGF0YV9saXN0LmMsIGRlZmF1bHRfc3RvcmUuYywgbWliLmMKLCBvaWRfYXJyYXkuYywgb2lkX3N0YXNoLmMsIHJlYWRfY29uZmlnLmMKLCBzbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wQ2FsbGJhY2tEb21haW4uYywKICAgc25tcElQWERvbWFpbi5jLCBzbm1wVENQRG9tYWluLmMsIHNubXBUQ1BJUHY2RG9tYWluLmMKLCBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMsCiAgIHNubXBVbml4RG9tYWluLmMsIHNubXBfYXBpLmMsIHNubXBfZGVidWcuYywKICAgc25tcF90cmFuc3BvcnQuYywgc25tcHYzLmM6CgogICBtaXNzaW5nIHVwZGF0ZWQgY29kZQogICAKMjAwMi0wMy0wOCAwMjowNyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICAgIC0gc29tZSBzbm1wIC0+IG5ldHNubXAgZml4ZXMKICAgCjIwMDItMDMtMDcgMTM6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYwosIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmYsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgosIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsCiAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1hc3NpdmUgbmV0c25tcF8gcHJlZml4aW5nIG9mIHN0dWZmIChwYXNzIDQpCiAgIAoyMDAyLTAzLTA3IDEzOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsCiAgIGFnZW50L2hlbHBlcnMvbnVsbC5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwosIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZiwgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mCiwgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwKICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWFzc2l2ZSBuZXRzbm1wXyBwcmVmaXhpbmcgb2Ygc3R1ZmYgKHBhc3MgMykKICAgCjIwMDItMDMtMDcgMTM6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwosIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLAogICBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBtYXNzaXZlIG5ldHNubXBfIHByZWZpeGluZyBvZiBzdHVmZiAocGFzcyAyKQogICAKMjAwMi0wMy0wNyAwODo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYwosIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywKICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLCBhZ2VudC9oZWxwZXJzL251bGwuYywKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsCiAgIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMKLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5oLAogICBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYwosIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2V0X2hlbHBlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLAogICBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmYsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgosIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsCiAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1hc3NpdmUgbmV0c25tcF8gcHJlZml4aW5nIG9mIHN0dWZmIChwYXNzIDEpCiAgIAoyMDAyLTAzLTA3IDA2OjIxICBqYnBuCgogICAqIG1hbi9zbm1wX3Nlc3NfYXBpLjMuZGVmOgoKICAgICAtIHN0eWxlIHVwZGF0ZQogICAKMjAwMi0wMy0wNyAwNTo0NyAgamJwbgoKICAgKiBtYW4vc25tcF90cmFwX2FwaS4zLmRlZjoKCiAgICAgLSBtaW5vciB1cGRhdGVzCiAgIAoyMDAyLTAzLTA3IDA1OjM5ICBqYnBuCgogICAqIG1hbi9zbm1wX2FsYXJtLjMuZGVmOgoKICAgICAtIHN0eWxlIHVwZGF0ZQogICAKMjAwMi0wMy0wNyAwNTowMCAgamJwbgoKICAgKiBtYW4vcmVhZF9jb25maWcuMy5kZWY6CgogICAgIC0gbWFrZSBwcm90b3R5cGVzIG1hdGNoIGhlYWRlcgogICAKICAgICAtIG1ha2Ugc3R5bGUgY29uc2lzdGVudCB3aXRoIG1pYl9hcGkKICAgCjIwMDItMDMtMDcgMDM6MDcgIGpicG4KCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICAgIC0gZml4IHVwIHNucHJpbnRfIGRlY2xhcmF0aW9ucywgZml4IHNtYWxsIHR5cG8uICBQYXRjaCBieSBHdXkKICAgSGFycmlzLgogICAKMjAwMi0wMy0wNyAwMjo0NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmg6CgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBkZWNsYXJhdGlvbiBvZiBzcHJpbnRfcmVhbGxvY19ieV90eXBlLCBhcyBub3RlZAogICAgICAgYnkgR3V5IEhhcnJpcy4KICAgCjIwMDItMDMtMDYgMTc6MTUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvLmN2c2lnbm9yZSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Ly5jdnNpZ25vcmUsIHBlcmwvU05NUC90Ly5jdnNpZ25vcmUKOgoKICAgbmV3IGlnbm9yZSBmaWxlcwogICAKMjAwMi0wMy0wNiAxNzoxMyAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBkb2NzCiAgIAoyMDAyLTAzLTA2IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy5oOgoKICAgZXhhbXBsZXMgbW9kdWxlIHdyYXBwZXIgdG8gaW5jbHVkZSBhbGwgKG5ldykgZXhhbXBsZXMuCiAgIAoyMDAyLTAzLTA2IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmM6CgogICBkb2N1bWVudCBiZXR0ZXIuCiAgIAoyMDAyLTAzLTA2IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBzZWFyY2ggZXhhbXBsZXMgZm9yIGRvY3MuCiAgIAoyMDAyLTAzLTA2IDE2OjI5ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBleGFtcGxlIE1JQiB0ZW1wbGF0ZSAoYW5kIG9uZSBub2RlKQogICAKMjAwMi0wMy0wNiAxNjoyOCAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1NSUIudHh0OgoKICAgaW5zdGFudGlhdGUgZXhhbXBsZXMKICAgCjIwMDItMDMtMDYgMTY6MjcgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIHNvbWUgTlMgbWlicwogICAKMjAwMi0wMy0wNiAxNjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiBzY2FsYXJfaW50LmMsIHNjYWxhcl9pbnQuaDoKCiAgIEV4YW1wbGUgaW1wbGVtZW50YXRpb24gb2YgYSBTTk1QIGVuYWJsZWQgaW50IHJlZ2lzdGVyZWQgYXQgYSBzY2FsYXIuCiAgIAoyMDAyLTAzLTA2IDE2OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaAo6CgogICBtYW55IGNoYW5nZXMgZm9yIGluc3RhbmNlcy4gIFNwZWNpZmljaWNhbGx5OgogICAgIC0gYWxsb3cgZm9yIHN1YmhhbmRsZXJzLgogICAgIC0gcHJvdmlkZSBhbiBpbnQgd3JhcHBlci4KICAgICAtIHJldXNlIG1vcmUgY29kZS4KICAgICAtIG51bWVyb3VzIGJ1ZyBmaXhlcy4KICAgCjIwMDItMDMtMDYgMTQ6MDUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICByZW1vdmUgYSBibGFuayBsaW5lLgogICAKMjAwMi0wMy0wNiAxNDowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIG1hc3Rlcl9hZG1pbi5jOgoKICAgRml4IG1hc3RlciBhZ2VudCBnZXRidWxrIHN1cHBvcnQuICB0aGlzIGhhcyB0byBiZSBpbmRlcGVuZGVudGx5IG9mIHRoZQogICBub3JtYWwgYnVsay0+bmV4dCBmaXhlcyBkdWUgdG8gZGVsZWdhdGlvbi4gIExvbmcgc3RvcnkuCiAgIAoyMDAyLTAzLTA2IDE0OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgbW92ZSBidWxrX3RvX25leHQgZml4aW5nIGZ1bmN0aW9uYWxpdHkgaW50byBhIHNlcGFyYXRlIGZ1bmN0aW9uIGZvciByZXVzZS4KICAgCjIwMDItMDMtMDYgMTA6MjYgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jOgoKICAgICAtIHNwcmlua2xlIG1hZ2ljIGNvbnN0IGR1c3QKICAgCjIwMDItMDMtMDYgMTA6MTggIGpicG4KCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICAgIC0gZG9jdW1lbnQgY2hhbmdlZCBBUEksIGluY29ycG9yYXRpbmcgcGF0Y2hlcyBieSBHdXkgSGFycmlzLgogICAKMjAwMi0wMy0wNiAwOTozNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTJhZ2VudHhzZXRmYWlsLCBUMTIycHJveHlzZXRmYWlsOgoKICAgZml4IHRlc3RzLgogICAKMjAwMi0wMy0wNiAwOToyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIHJlLWVuYWJsZSBzZXR0aW5nIG9wdGluZCB0byAxIHRpbGwgRGF2ZSB0ZWxscyBtZSB3aGVyZSB0aGlzIGJyZWFrcy4KICAgCjIwMDItMDMtMDYgMDk6MDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDUxc25tcHYyY3RyYXAsIFQwNTJzbm1wdjJjaW5mb3JtLAogICBUMDU4YWdlbnRhdXRodHJhcDoKCiAgIGZpeGVzIGZvciBuZXcgY29tbWFuZCBsaW5lIHVzYWdlLgogICAKMjAwMi0wMy0wNiAwOTowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgbW9yZSBpbXByb3ZlZCBlcnJvciBtZXNzYWdlcyAobW9zdGx5KQogICAKMjAwMi0wMy0wNiAwODo1NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgYXV0b2NvbmYKICAgCjIwMDItMDMtMDYgMDg6NDEgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYyAoVjQtMi1wYXRjaGVzLjMpLCBzbm1wdjMuYzoKCiAgIEZpeCBhIGNvbmZ1c2lvbiBiZXR3ZWVuIGRlZkF1dGhUeXBlIGFuZCBkZWZQcml2VHlwZS4KICAgCjIwMDItMDMtMDYgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBwcm90b2NvbC5jOgoKICAgcHJvcGVyIGZpeCBmb3Igbm90IHJlcXVpcmluZyByZXNwb25zZXMgdG8gQ0xFQU5VUCBtZXNzYWdlcy4KICAgCjIwMDItMDMtMDYgMDY6MDcgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHplcm8gdGhlIG5hbWUgb2YgZWxlbWVudHMgb2YgdGhlIGJ1bGsgY2FjaGUKICAgCjIwMDItMDMtMDYgMDY6MDYgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBjYWxsb2MoKSBub3QgbWFsbG9jKCkgaW4gYSBmZXcgcGxhY2VzIHRvIGluaXRpYWxpc2Ugc29tZSBidWZmZXJzCiAgICAgICB0byB6ZXJvZXMuCiAgIAoyMDAyLTAzLTA2IDA1OjUyICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjQtMi1wYXRjaGVzLjYpLCBzbm1wX2FwaS5jOgoKICAgQWN0dWFsbHkgdXNlIHRoZSBjb21tb24gJ2RlZlBhc3NwaHJhc2UnIHZhbHVlIGlmICdkZWZ7QXV0aCxQcml2fVBhc3NwaHJhc2UnIGlzbid0IHNldC4KICAgUW46IFNob3VsZCB0aGUgQXV0aFBhc3NwaHJhc2UgYWxzbyBiZSB1c2VkIGZvciBwcml2YWN5IGlmIG5vIG90aGVyIHZhbHVlIGlzIGF2YWlsYWJsZT8KICAgCjIwMDItMDMtMDYgMDU6NDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIGRvbid0IHNlbmQgcmVxdWVzdHMgZm9yIE9JRHMgcHJlY2VlZGluZyB0aGUgc3RhcnQgb2YgYSByZWdpb24KICAgICAgICh0aGlzIGNhbiBsZWFkIHRvIGxvb3BzIGlmIGUuZy4gYSBzdWJhZ2VudCBoYXMgcmVnaXN0ZXJlZCB0d28KICAgICAgIGFkamFjZW50IHJvd3MpLgogICAKMjAwMi0wMy0wNiAwNTowNyAgamJwbgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgICAtIGlnbm9yZSBlcnJvcnMgZG9pbmcgcm0gLXJmIC90bXAvc25tcC10ZXN0KiB3aGVuIG1ha2luZyB0ZXN0Y2xlYW4KICAgCjIwMDItMDMtMDYgMDI6MjYgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSB1c2UgbW9yZSBlZmZpY2llbnQgZ2V0X3RyZWUoKSBpbiBzcHJpbnRfcmVhbGxvY192YWx1ZSgpCiAgIAoyMDAyLTAzLTA1IDE4OjI4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAxNXNubXB2MmNnZXRuZXh0LCBUMDAxc25tcHYxZ2V0LAogICBUMDAyc25tcHYxZ2V0bmV4dCwgVDAwM3NubXB2MWdldGZhaWwsIFQwMTRzbm1wdjJjZ2V0CiwgVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICBUMDE4c25tcHYxdG92MmNnZXRmYWlsLCBUMTAwYWdlbnRodXA6CgogICBmaXhlcyBmb3IgbmV3IGZvcmNlZCAtYyBmbGFncwogICAKMjAwMi0wMy0wNSAxODoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICByZW1vdmUgbm8gbG9uZ2VyIGFwcHJvcHJpYXRlIGNvbW1lbnQuCiAgIAoyMDAyLTAzLTA1IDE4OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGZpeCBkdXBsaWNhdGUgZnJlZSBieSBjbG9uaW5nIHRoZSBwZHUgYmVmb3JlIHNlbmRpbmcgaXQgb3V0IGFnYWluCiAgICh0aG91Z2h0IEkgaGFkIGRvbmUgdGhpcyBvbmNlIGluIHRoZSBwYXN0IGFscmVhZHksIGJ1dCBJIGdvdCAxLzIgZnVuY3Rpb25zKS4KICAgCjIwMDItMDMtMDUgMTg6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgVGVtcG9yYXJ5IGZpeCB0byBmaXggZm9yIGFnZW50eCBTRVQgcmVxdWVzdHMuICBUaGlzIHJldmVyc2VzIGEKICAgcHJldmlvdXMgSm9obiBjaGFuZ2Ugd2hlcmUgcmVzcG9uc2VzIHRvIGNsZWFudXBzIGFyZSBub3cgZXhwZWN0ZWQKICAgYWdhaW4uICBUaGlzIHRvb2sgbWUgYSBnb29kIDIgZGF5cyB0byB0cmFjayBkb3duLCBzaWdoLi4uCiAgIAoyMDAyLTAzLTA1IDE4OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAtIGFkZCAoYXNjaWkpIGFnZW50eCBzdGF0ZSBkaWFncmFtCiAgIAoyMDAyLTAzLTA1IDE4OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIG11bHRpcGxlIGZyZWUgYnVnIGZpeGVzLgogICAtIGltcHJvdmVkIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgogICAKMjAwMi0wMy0wNSAxMDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX3JlcXVlc3QuYywgbWFzdGVyX3JlcXVlc3QuaAo6CgogICByZW1vdmVkIHVudXNlZCBmaWxlcwogICAKMjAwMi0wMy0wNSAxMDozMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBvb3BzLCBmaXggYmFkIGN1dCBhbmQgcGFzdGUKICAgCjIwMDItMDMtMDUgMTA6MjUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gcmVpbnRyb2R1Y2Ugc2NvcGUgcHJvY2Vzc2luZyAoc2VlIFJGQyAyNzQxLCBwLiA2Niwgc2VjdGlvbiA3LjIuMy4yCiAgICAgICBwYXJhZ3JhcGggMik6ICJJZiB0aGUgc3ViYWdlbnQgY2FuJ3QgbG9jYXRlIGFuIGFwcHJvcHJpYXRlCiAgICAgICB2YXJpYWJsZSwgX192Lm5hbWVfaXNfc2V0X3RvX3RoZV9zdGFydGluZ19PSURfXyBbdGhlIGltcG9ydGFudAogICAgICAgYml0XSBhbmQgdGhlIFZhckJpbmQgaXMgc2V0IHRvIGBlbmRPZk1pYlZpZXcnIgogICAKMjAwMi0wMy0wNSAwOTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIGltcG9zZSBtYXggbGVuZ3RoIHJlc3RyaWN0aW9uIHN1cHBsaWVkIGJ5IG1pYiBmb3IgY29uZmlndXJhdGlvbiBvcHRpb25zLgogICAKMjAwMi0wMy0wNSAwODo0OCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMsIHNubXBfYWdlbnQuYywKICAgaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSB1c2UgbmV3IERFQlVHTVNHVkFSIG1hY3JvIGluIGEgZmV3IHBsYWNlcwogICAKMjAwMi0wMy0wNSAwODo0NSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgICAgLSBhZGQgREVCVUdNU0dWQVIgbWFjcm8gdG8gcHJpbnQgb3V0IGEgdmFyaWFibGUKICAgCjIwMDItMDMtMDUgMDg6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBwcmludF92YWx1ZSBmdW5jdGlvbiB1cGRhdGVzLgogICAKMjAwMi0wMy0wNSAwODowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiB1Y2REZW1vUHVibGljLmMgKFY0LTItcGF0Y2hlcy4yKSwKICAgdWNkRGVtb1B1YmxpYy5jOgoKICAgQWRkIG1pc3NpbmcgInN0YW5kYXJkIiBoZWFkZXJzLCBhbmQgdHdlYWsgYSB0eXBlIHNsaWdodGx5LgogICAoQmFzZWQgb24gcmVxdWVzdHMgZnJvbSBHcmVnb3J5IFRvdGgpLgogICAKMjAwMi0wMy0wNSAwODowNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZ3JyciwgYm90Y2hlZCBsYXN0IGZpeAogICAKMjAwMi0wMy0wNSAwODowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBTZXQgdGhlIGRlZmF1bHQgY2FsbGJhY2sgc2Vzc2lvbiB2ZXJzaW9uIG51bWJlciB0byB0aGUgZ2VuZXJpYyAtMQogICB2ZXJzaW9uIGFsbG93aW5nIHRoZSBwZHUgdG8gcGFzc2VkIHdpdGhvdXQgdmVyc2lvbiBjaGVja2luZy4KICAgCjIwMDItMDMtMDUgMDc6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIG1vdmUgTlVMTCBjaGVjayB0byAqYmVmb3JlKiB5b3UgYWN0dWFsbHkgdXNlIHRoZSBwb2ludGVyLgogICAKMjAwMi0wMy0wNSAwNzo1OSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gbWFyayBJTkNMVVNJVkUgcmVxdWVzdHMgYXMgc3VjaAogICAKMjAwMi0wMy0wNSAwNzo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAtIHVzZSBhIGZvciBsb29wIGluc3RlYWQgb2YgYSB3aGlsZSBsb29wLCBqdXN0IGEgcHJlY2F1dGlvbiBmb3IgZnV0dXJlIHByb2JsZW1zLgogICAKMjAwMi0wMy0wNSAwNzo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9jaGVja19wYXJzZSkgYWxsb3cgaW50ZXJuYWwgc2V0IHRyYW5zYWN0aW9ucyB0byBiZSBwYXNzZWQgdG8KICAgICB0aGUgYWdlbnQsIHNpbmNlIGFnZW50eCBzZW5kcyB0aGVtLgogICAKMjAwMi0wMy0wNSAwNzoyMSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGRvbid0IGFkZCB0aGUgIm1vZHVsZSBJRCIgdG8gT0lEcyBpZiBpdCBpcyBudW1lcmljIGJlY2F1c2Ugd2UKICAgICAgIGNvdWxkbid0IGxvb2sgaXQgdXAgcHJvcGVybHkgKHRvIGF2b2lkIGhvcnJpYmxlIGxvb2tpbmcgb3V0cHV0CiAgICAgICBsaWtlIHRoaXM6ICJPSUQ6ICMtMTo6aXNvLjIuMy40LjUuIikKICAgCjIwMDItMDMtMDUgMDc6MDUgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIHJlbW92ZSByZWZlcmVuY2UgdG8gMmMgaW4gZXJyb3IgbWVzc2FnZSBmcm9tIHZlcnNpb24gcHJvbXB0CiAgIAoyMDAyLTAzLTA1IDA3OjAxICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSByZW1vdmUgZHVwbGljYXRlIHRlc3RzCiAgIAoyMDAyLTAzLTA1IDA2OjUxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gcmUtZW1waGFzaXMgYSBzdWdnZXN0aW9uIHRvIHN3aXRjaCB0byBhIHNlY3VyZSB2ZXJzaW9uIG9mIHRoZSBwcm90b2NvbC4KICAgLSBkZWxldGUgbm90aW9uIHRoYXQgdjMgd2l0aG91dCBhdXRoL3ByaXYgcHJvdmlkZXMgYmV0dGVyIHNlY3VyaXR5IChpdCBkb2Vzbid0KS4KICAgLSBEb24ndCBhY2NlcHQgdjJjIGFzIGFuIGFjY2VwdGVkIHZhbHVlLCBhcyBpdCdzIHVzZWQgYXMgYW4gaW50LgogICAgIC0gYnV0IGRvIGNoYW5nZSBoZWxwIG1lc3NhZ2VzLCBldGMsIHRvIHJlZmxlY3QgdGhhdCAyID0gdjJjLgogICAKMjAwMi0wMy0wNSAwNjo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIENhc3QgYSBjYWxsb2MgYXBwcm9wcmlhdGVseSAocmVxdWVzdGVkIGJ5IEdyZWdvcnkgVG90aCkKICAgCjIwMDItMDMtMDUgMDY6MjAgIGpicG4KCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSBmaXggdHlwbyBpbiBPQkpTIGRlZmluaXRpb24KICAgCjIwMDItMDMtMDUgMDY6MTggIGpicG4KCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAgIC0gY2xlYW4gdGFyZ2V0IGRlcGVuZHMgb24gJChPQkpTKSBhbmQgJChMT0JKUyksIHNvIGRlZmluZSB0aGVtCiAgIAoyMDAyLTAzLTA1IDAzOjUyICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBmaXggZGVmYXVsdCB2ZXJzaW9uIHRlc3RzIChzcGxpdHRpbmcgdGhlbSBvdmVyIHNldmVyYWwgbGluZXMKICAgICAgIGNvbmZ1c2VzIHNoIG9uIFNvbGFyaXMsIGF0IGxlYXN0KS4KICAgCiAgICAgLSBkaXNhbWJpZ3VhdGUgc29tZSBpbnN0YW5jZXMgb2YgInZlcnNpb24iIGluIGRlZmF1bHQgdmVyc2lvbgogICAgICAgcHJvbXB0IHRleHQuCiAgIAoyMDAyLTAzLTA1IDAyOjM0ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENvcnJlY3RseSBkZXRlY3Qgd2hlbiBubyBpbml0aWFsIGRlZmF1bHQgdmVyc2lvbiBoYXMgYmVlbiBzZXQuCiAgIEFjY2VwdCAnMmMnIGFzIHdlbGwgYXMgJzInIGZvciBhIGRlZmF1bHQgdmVyc2lvbiBjaG9pY2UuCiAgIEZpeCB0aGUgdGl0bGUgZm9yIHRoaXMgcHJvbXB0LCBhbmQgcmV3b3JkIHRoZSBkZXNjcmlwdGlvbiB0bwogICBtYWtlIGl0IGEgKnNsaWdodGx5KiBsZXNzIGxlYWRpbmcgcXVlc3Rpb24sIG0nbHVkLgogICAKICAgUW46IFNob3VsZCB3ZSBzdXBwb3J0IGEgIm5vIGRlZmF1bHQgdmVyc2lvbiIgb3B0aW9uID8KICAgICAoaGVuY2UgYWxsb3cgdGhlIGFkbWluIHRvIGZvcmNlIHRoZSBkZWNpc2lvbiBkb3duIHRvIHRoZSB1c2VyKQogICAKMjAwMi0wMy0wNCAxODoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgdWNkLXNubXAgLT4gbmV0LXNubXAgY2hhbmdlCiAgIAoyMDAyLTAzLTA0IDE4OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICAoVG8gSm9obik6IGRvIG5vdCBmcmVlIHRoZSBteXZvaWQgcG9pbnRlciBpbiBhIGhhbmRsZXIuICBZb3UgY2FuIG5vdAogICBhc3N1bWUgdGhhdCBpdCdzIGEgZnJlZWFibGUgcmVzb3VyY2UuICBGb3IgaW5zdGFuY2UsIHRoZSBhZ2VudHggbWFzdGVyCiAgIGFnZW50IHdhcyB1c2luZyBpdCB0byBzdG9yZSB0aGUgbWFzdGVyIHNlc3Npb24gcG9pbnRlciBpbiBpdCAod2hpY2gKICAgd291bGQgZXhpc3QgaW4gbXVsdGlwbGUgcmVnaXN0ZXJlZCBub2RlcykuCiAgIAoyMDAyLTAzLTA0IDE3OjI2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzX2FwaS5oLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgdXNlIGEgY29uZmlndXJlIGdlbmVyYXRlZCB3cmFwcGVyIGhlYWRlciBmb3IgdjMgc2VjdXJpdHkgbW9kdWxlcy4KICAgCjIwMDItMDMtMDQgMTE6NTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIGFkZCBkbWFsbG9jLmggdG8gdGhlIHByb3BlciBwbGFjZS4KICAgCjIwMDItMDMtMDQgMTE6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIHN0cmluZyBjbGVhbiB1cHMuCiAgIAoyMDAyLTAzLTA0IDExOjUyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIEltcGxlbWVudCBhIGRlZmF1bHQgdmVyc2lvbiBwcm9tcHQgZm9yIGNvbmZpZ3VyZS4KICAgIC0gKFdlcyBkdWNrcyBhcyB0aGlzIGlzIGN1cnJlbnRseSBzZXQgdG8gJzMnIHdoaWNoIGhlIG1heSBoYXZlIHRvCiAgICAgICBjaGFuZ2UgYXMgaXQgaGFzbid0IGV4YWN0bHkgYmVlbiBhZ3JlZWQgdXBvbiBhcyB0aGUgcHJvcGVyIGRlZmF1bHQgeWV0KS4KICAgIC0gLS13aXRoLWRlZmF1bHQtc25tcC12ZXJzaW9uIGFsc28gY3JlYXRlZC4KICAgIC0gY2hhbmdlZCBoYW5kbGluZyBvZiBkZWZhdWx0IHN0b3JlIC8gc25tcC5jb25mIHVzYWdlIGJ1dCBpbXBhY3QKICAgICAgc2hvdWxkIGJlIGxvdywgaG9wZWZ1bGx5LgogICAKMjAwMi0wMy0wNCAxMTo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYSBmZXcgZXJyb3Igc3RyaW5ncyBzbGlnaHRseSBpbXByb3ZlZC4gIFdlIHJlYWxseSBuZWVkIHRvIGNoYW5nZSB0aGUKICAgd2F5IHRoZXNlIGFyZSBoYW5kbGVkIHRvIGdldCBiZXR0ZXIgaW1wcm92ZW1lbnQuCiAgIAoyMDAyLTAzLTA0IDA3OjQ5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgc2VwYXJhdGUgb3V0IHRoZSBjbGVhbmluZyBvZiAvdG1wIGZyb20gdGhlIG1haW4gY2xlYW5pbmcgdG8gcHJvdmlkZSBpdAogICBhcyBhIHNwZWNpYWwgdGFyZ2V0LgogICAKMjAwMi0wMy0wNCAwNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtV2FsbCBmaXhlcy4KICAgCjIwMDItMDMtMDQgMDU6MzIgIGpicG4KCiAgICogbWFuLzogc25tcGJ1bGtnZXQuMS5kZWYsIHNubXBidWxrd2Fsay4xLmRlZiwKICAgc25tcGdldC4xLmRlZiwgc25tcGdldG5leHQuMS5kZWYsIHNubXBzdGF0dXMuMS5kZWYKLCBzbm1wdGVzdC4xLmRlZiwgc25tcHRyYXAuMS5kZWY6CgogICAgIC0gcmVtb3ZlIGZ1cnRoZXIgaW5zdGFuY2VzIG9mIHBvc2l0aW9uYWwgY29tbXVuaXR5IHN0cmluZyBwYXJhbWV0ZXIsCiAgICAgICBhZnRlciBQYXRyaWNrIFdlbGNoZQogICAKMjAwMi0wMy0wNCAwNToyNSAgamJwbgoKICAgKiBtYW4vOiBzbm1wZC5jb25mLjUuZGVmLCBzbm1wd2Fsay4xLmRlZjoKCiAgICAgLSBwYXRjaGVzIGZyb20gUGF0cmljayBXZWxjaGUKICAgCjIwMDItMDMtMDQgMDE6MTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5LmMgKFY0LTItcGF0Y2hlcy42KSwgbWVtb3J5LmMKOgoKICAgQ29ycmVjdCBkZWJ1ZyBvdXRwdXQgbWVzc2FnZSAodGhhbmtzIHRvIEplcm9lbiBSdWlncm9rKQogICAKMjAwMi0wMy0wMSAyMjo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBtYWtpbmcgdGhlIChzYW1lKSBkZWJ1Z2dpbmcgc3RhdGVtZW50IG1vcmUgdXNlZnVsLgogICAKMjAwMi0wMy0wMSAyMjo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBhZGQgbWlzc2luZyBuZXdsaW5lIHRvIGEgZGVidWdnaW5nIHN0YXRlbWVudC4KICAgCjIwMDItMDMtMDEgMTI6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBrZXl0b29scy5jLCBtaWIuYywgc25tcF9hcGkuYywKICAgc25tcF9jbGllbnQuYywgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB2My5jOgoKICAgRmlyc3QgcGFzcyBhdCBhIGZldyBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMuCiAgIAoyMDAyLTAzLTAxIDEyOjAxICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgZG9uJ3QgaW5zdGFsbCBoZWFkZXJzIGhlcmUuCiAgIAoyMDAyLTAzLTAxIDA1OjQxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYzoKCiAgICAgLSBhZGQgc25wcmludF92YWx1ZSwgc25wcmludF92YXJpYWJsZSwgc25wcmludF9vYmppZAogICAKMjAwMi0wMi0yOCAwNjo1NCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsCiAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCjoKCiAgIEFkZCBiYWNrIHRoZSAnc25tcENhbGxiYWNrJyBkb21haW4gdW5kZXIgV2luZG93cy4KICAgCjIwMDItMDItMjcgMTA6MDQgIGpicG4KCiAgICogYXBwcy86IHNubXBidWxrZ2V0LmMsIHNubXBidWxrd2Fsay5jLCBzbm1wZ2V0LmMKLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYwosIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMKLCBzbm1wdHJhcC5jLCBzbm1wdXNtLmMsIHNubXB3YWxrLmM6CgogICAgIC0gdGFydCB1cCB1c2FnZSBtZXNzYWdlcywgbWFrZSB0aGVtIG1vcmUgY29uc2lzdGVudCBhbmQgYnJpbmcgaW4gbGluZQogICAgICAgd2l0aCBtYW51YWwgcGFnZXMKICAgCjIwMDItMDItMjcgMTA6MDMgIGpicG4KCiAgICogbWFuLzogc25tcHNldC4xLmRlZiwgc25tcHRhYmxlLjEuZGVmLCBzbm1wdHJhcC4xLmRlZgosIHNubXB1c20uMS5kZWY6CgogICAgIC0gbWlub3IgZm9ybWF0dGluZyBjaGFuZ2VzCiAgIAoyMDAyLTAyLTI3IDEwOjAzICBqYnBuCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgc25tcF9wYXJzZV9hcmdzLmMKOgoKICAgICAtIGRyb3AgY29tbXVuaXR5IHBvc2l0aW9uYWwgcGFyYW1ldGVyCiAgIAogICAgIC0gdGFydCB1cCB1c2FnZSBtZXNzYWdlcyB0byBiZSBtb3JlIGNvbnNpc3RlbnQgYW5kIGluIGxpbmUgd2l0aCBtYW51YWwKICAgICAgIHBhZ2VzCiAgIAoyMDAyLTAyLTI3IDA5OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliLzogdmFjbS5jIChWNC0yLXBhdGNoZXMuNCksIHZhY20uYzoKCiAgIEhhbmRsZSB2aWV3cyB0aGF0IHNwZWNpZnkgYSBmdWxsIGluc3RhbmNlIE9JRC4KICAgKFNpbmNlIHRoZSBpbnRlcm5hbGx5IHN0b3JlZCBPSUQgcHJlcGVuZHMgdGhlIGxlbmd0aCBhcyB3ZWxsLAogICAgdGhlIGFwcGFyZW50IGxlbmd0aCBpcyBvbmUgZ3JlYXRlciB0aGFuIGl0IHJlYWxseSBpcykKICAgCjIwMDItMDItMjcgMDY6NTAgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBbQUREUkVTU0VTXSAtPiBbTElTVEVOSU5HIEFERFJFU1NFU10gaW4gdXNhZ2UgbWVzc2FnZSwgdG8gbWF0Y2gKICAgICAgIG1hbnVhbCBwYWdlLgogICAKMjAwMi0wMi0yNyAwNjowOSAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkcm9wIG9wdGlvbmFsIHBvc2l0aW9uYWwgY29tbXVuaXR5IHBhcmFtZXRlciBmcm9tIHRyYXBzZXNzCiAgICAgICBkZXNjcmlwdGlvbi4KICAgCjIwMDItMDItMjcgMDU6NTEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jOgoKICAgICAtIGRyb3Agc3ByaW50X2JsYWggZnVuY3Rpb25zCiAgIAogICAgIC0gbm8gc25wcmludF9ibGFoIHlldAogICAKMjAwMi0wMi0yNyAwNTo0MyAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X2JsYWggZnVuY3Rpb25zCiAgIAoyMDAyLTAyLTI3IDA1OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfYmxhaCBmdW5jdGlvbnMKICAgCiAgICAgLSBkcm9wIGFyY2hhaWMgREVCVUdQIGZ1bmN0aW9ucwogICAKMjAwMi0wMi0yNyAwNTozNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYzoKCiAgIFVzZSB0aGUgbW9yZSBpbmZvcm1hdGl2ZSAnb3V0cHV0X2FwaS5oJyBoZWFkZXIgZmlsZSBuYW1lCiAgICAgKEkgbXVzdCBoYXZlIG1pc3NlZCB0aGVzZSBlYXJsaWVyKQogICAKMjAwMi0wMi0yNyAwNTozNSAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgICAgLSBkcm9wIGNvbW11bml0eSBwb3NpdGlvbmFsIHBhcmFtZXRlcgogICAKICAgICAtIHllcywgZm9yIG9uY2UgdGhlIGRvY3VtZW50YXRpb24gaGFzIGJlZW4gdXBkYXRlZCAqYmVmb3JlKiB0aGUKICAgY29kZSEKICAgCjIwMDItMDItMjcgMDU6MTIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgICAtIGRvbid0IHVzZSBvYnNvbGV0ZSBERUJVR1AgZnVuY3Rpb24KICAgCjIwMDItMDItMjcgMDU6MTEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc25tcF9hcGkuaCwgc25tcF9kZWJ1Zy5oLAogICBzeXN0ZW0uaDoKCiAgICAgLSBkcm9wIGFyY2hhaWMgREVCVUdQIGZ1bmN0aW9ucwogICAKMjAwMi0wMi0yNyAwNToxMCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaDoKCiAgICAgLSBkb24ndCB1c2Ugb2Jzb2xldGUgREVCVUdQTCBmdW5jdGlvbgogICAKMjAwMi0wMi0yNyAwNDozMiAgamJwbgoKICAgKiBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wd2Fsay5jCiwgYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfYmxhaCBmdW5jdGlvbnMKICAgCjIwMDItMDItMjcgMDI6MjYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfdmFyaWFibGUKICAgCjIwMDItMDItMjcgMDI6MDggIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfdmFyaWFibGUsIG5vLCBJIE1FQU4gaXQgdGhpcyB0aW1lCiAgIAoyMDAyLTAyLTI3IDAyOjA1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X3ZhcmlhYmxlCiAgIAoyMDAyLTAyLTI2IDEyOjQ2ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY2xlYXIgbmV3IG1lbW9yeSBhZnRlciByZWFsbG9jKCkgc2luY2UgcmVhbGxvYyBkb2Vzbid0IGRvIGl0LgogICAKMjAwMi0wMi0yNiAxMjozMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBhZGQgVU5TSUdORUQzMgogICAKMjAwMi0wMi0yNiAwODo1NSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywga2VybmVsX3N1bm9zNS5oLAogICBtaWJJSS9hdC5jLCBtaWJJSS9pY21wLmMsIG1pYklJL2ludGVyZmFjZXMuYywKICAgbWliSUkvaXAuYywgbWliSUkvdGNwLmMsIG1pYklJL3VkcC5jLAogICBtaWJJSS92YXJfcm91dGUuYzoKCiAgICAgLSBjaGFuZ2UgY2FjaGUgaW1wbGVtZW50YXRpb24gYWZ0ZXIgc29tZSBpbnRlcmVzdGluZyBwcm9maWxpbmcgKHNlZQogICAgICAgbGVuZ3RoeSBuZXcgY29tbWVudCBpbiBrZXJuZWxfc3Vub3M1LmMpCiAgIAoyMDAyLTAyLTI2IDA4OjEzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBzbm1wbGliL3NubXAtdGMuYywKICAgc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBSZW1vdmUgYXNzb3J0ZWQgZXh0cmFuZW91cyBeTSdzCiAgIAoyMDAyLTAyLTI2IDA3OjE0ICBkdHMxMgoKICAgKiBSRUFETUUud2luMzI6CgogICBBIHF1aWNrIGd1aWRlIHRvIGluc3RhbGxpbmcgdGhlIENvcmUgUGxhdGZvcm0gU0RLLCBuZWVkZWQgZm9yIHRoZSBXaW5kb3dzIGFnZW50LgogICAKMjAwMi0wMi0yNiAwNzowMyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiwgYXBwcy9zbm1wdHJhcGRfbG9nLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXB2My5jLAogICBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIEFzc29ydGVkIG1pbm9yIHR3ZWFrcyB0byBlbnN1cmUgdGhhdCB0aGUgcHJvamVjdCBidWlsZHMgdW5kZXIgVmlzdWFsIEMrKy4KICAgTW9zdGx5IGJlY2F1c2UgVkMrKyBpcyBmdXNzeSBhYm91dCBzb3J0LW9mLWNvbXBhdGlibGUgZGF0YSB0eXBlcwogICAgIChlLmcuIHNpZ25lZCB2cyB1bnNpZ25lZCBpbnRlZ2VycykuCiAgIAoyMDAyLTAyLTI2IDA3OjAwICBkdHMxMgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfaW5pdHMuaCwgd2luMzIuZHN3LCB3aW4zMi5vcHQKLCBsaWJhZ2VudC9saWJhZ2VudC5kc3AsIGxpYnNubXAvbGlic25tcC5kc3AsCiAgIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AsIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKICAgc25tcGQvc25tcGQuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIFJlbmFtZSAnbGlidWNkbWlicycgdG8gcmVmbGVjdCB0aGUgY2hhbmdlIG9mIHByb2plY3QgbmFtZSwKICAgYW5kIGFzc29ydGVkIHR3ZWFrcyBzbyB0aGF0IHRoZSBmdWxsIHByb2plY3QgYnVpbGRzIHVuZGVyIFZpc3VhbCBDKysuCiAgICAgKE4uQjogVGhlIGFnZW50IHJlcXVpcmVzICJNaWNyb3NvZnQgUGxhdGZvcm0gQ29yZSBTREsiIGluIG9yZGVyCiAgICAgICB0byBidWlsZCB0aGUgJ25ldHNubXBtaWJzJyBwcm9qZWN0KQogICAKMjAwMi0wMi0yNiAwNjo1MyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIHJlbW92ZSBkdXBsaWNhdGUgdmFyaWFibGUgaW4gYSB3YXJuaW5nCiAgIAoyMDAyLTAyLTI2IDA2OjQwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgICAtIGluY2x1ZGUgbmV0LXNubXAtY29uZmlnLmgKICAgCjIwMDItMDItMjUgMjE6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtb3JlIGluc3RhbGwgY2hhbmdlcwogICAKMjAwMi0wMi0yNSAyMTowOCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1lbnRpb24gaW5zdGFsbGluZyBEQkQ6OkZpbGUuCiAgIAoyMDAyLTAyLTI1IDIwOjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgb25lIHRvbyBtYW55ICcwJ3MgaW4gYSB1cmwuCiAgIAoyMDAyLTAyLTI1IDIwOjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgcmV3b3JkLgogICAKMjAwMi0wMi0yNSAyMDozMCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIG1vdmUgd2FybmluZyBvdXRzaWRlIHNlY29uZGFyeSB3YXJuaW5nIGF1Z21lbnRhdGlvbiBsb29wLgogICAKMjAwMi0wMi0yNSAyMDoyOSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIHVwZGF0ZSBTUUw6OlN0YXRlbWVudCBtb2R1bGUuCiAgIAoyMDAyLTAyLTI1IDE2OjI1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgYWRkIGZpbmRfdGFibGVfYXJyYXlfaGFuZGxlcigpOyByZW1vdmUgZGVidWdnaW5nIGNvZGUvY29tbWVudHM7CiAgIG1ha2Ugc3VyZSB3ZSBoYXZlIHRoZSByaWdodCBoYW5kbGVyIGJlZm9yZSB1c2luZyB0aGUgdm9pZCBwb2ludGVyOwogICByZW1vdmUgXk0gY2hhcmFjdGVycwogICAKMjAwMi0wMi0yNSAxMTo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oCjoKCiAgIDIgbmV3IGZ1bmN0aW9ucy4KICAgCjIwMDItMDItMjUgMTE6MTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgc2V0IHNlY3VyaXR5IG1vZGVsCiAgIAoyMDAyLTAyLTI1IDA4OjE1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jCiwgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLCB3aW4zMi93aW4zMi5kc3c6CgogICBDb250aW51aW5nIGltcHJvdmVtZW50cyB0byBjb21waWxhdGlvbiBvZiB0aGUgbGF0ZXN0IGNvZGUgdW5kZXIgVmlzdWFsIEMrKy4KICAgVGhlICdsaWJoZWxwZXJzJyBwcm9qZWN0IG5vdyBjb21waWxlcywgYW5kIHRoaXMgYWxzbyBhZGRyZXNzZXMgYSBudW1iZXIKICAgb2Ygd2FybmluZ3MgYW5kIGVycm9ycyBpbiB0aGUgbGliYWdlbnQgYW5kIGxpYnVjZG1pYnMgcHJvamVjdHMuCiAgICAgQnV0IHRoZXNlIHR3byBzdGlsbCBmYWlsIG9uICdPSURfTEVOR1RIJyBhbmQgJ2lwaGxwYXBpLmgnCiAgIAoyMDAyLTAyLTI1IDA3OjAwICBkdHMxMgoKICAgKiB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgUHJvdmlkZSBhIHBsYXVzaWJsZSBtb2R1bGUgY29uZmlndXJhdGlvbiBsaXN0IGZvciB0aGUgV2luZG93cyBhZ2VudC4KICAgCjIwMDItMDItMjUgMDY6MDQgIGpicG4KCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgICAtIHJlc29sdmUgY29uZmxpY3RpbmcgU1lOVEFYZXMgZm9yIG5zVHJhbnNhY3Rpb25Nb2RlCiAgIAogICAgIC0gYWRkIHJhbmdlIGZvciBpbmRleCBuc1RyYW5zYWN0aW9uSUQKICAgCjIwMDItMDItMjUgMDM6MjMgIGR0czEyCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCjoKCiAgIEVuc3VyZSB0aGUgbWFpbiBsaWJyYXJ5IGNvbXBpbGVzIGFuZCB3b3JrcyB1bmRlciBXaW5kb3dzLgogICAKMjAwMi0wMi0yNSAwMzoxOSAgZHRzMTIKCiAgICogYXBwcy86IG5vdGlmaWNhdGlvbl9sb2cuaCwgc25tcHRyYXBkLmM6CgogICBFbnN1cmUgc25tcHRyYXBkIGNvbXBpbGVzIHVuZGVyIFdpbmRvd3MuCiAgIAoyMDAyLTAyLTI1IDAzOjA5ICBkdHMxMgoKICAgKiBzbm1wbGliLzogb2lkX2FycmF5LmMsIG9pZF9zdGFzaC5jLCBzbm1wLXRjLmMsCiAgIHVjZF9jb21wYXQuYzoKCiAgIE1pbm9yIHR3ZWFrcyB0byBrZWVwIFZpc3VhbCBDKysgaGFwcHkuCiAgIAoyMDAyLTAyLTI1IDAyOjU3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaDoKCiAgIFdyYXAgd2l0aCAiZXh0ZXJuIEMiCiAgIAoyMDAyLTAyLTI1IDAyOjU2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oOgoKICAgUGFuZGVyIHRvIENQUCdzIGluY3JlZGlibHkgZnVzc3kgbmF0dXJlLCBhbmQgcHJvdmlkZSB0aGUgY29ycmVjdCBoZWFkZXIgZmlsZSBuYW1lLgogICAKMjAwMi0wMi0yNSAwMToyMSAgZHRzMTIKCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMSksIHNubXBkLmM6CgogICBTcGVjaWZ5IHRoZSBjb3JyZWN0IGRlYnVnIHRva2VuIGZvciBkaXNwbGF5aW5nIHRoZSBsaXN0IG9mIG1vZHVsZXMKICAgKHNwb3R0ZWQgYnkgQnJpYW4gU2hhdmVyKQogICAKMjAwMi0wMi0yMiAxMDo1NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBzdXBwb3J0IEBmb3JlYWNoICR2YXIxICR2YXIyIGVudW1zQAogICAKMjAwMi0wMi0yMiAxMDo1NiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgcmVtb3ZlIHRyYWlsaW5nIDsncyBmcm9tIHNxbCBzdGF0ZW1lbnRzLgogICAKMjAwMi0wMi0yMiAxMDo1NSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIGRlZmluZSBuZXRzbm1wX3N0cmR1cF9hbmRfbnVsbAogICAKMjAwMi0wMi0yMiAxMDo1MyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgaW5jbHVkZSB1dGlsaXRpZXMuCiAgIAoyMDAyLTAyLTIyIDEwOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAtIGRvbid0IGxvb3AgYWdhaW4gZm9yIHNlY29uZGFyeSBTRVQgbW9kZXMgYW5kIGNhY2hlIGluZm9ybWF0aW9uIGluc3RlYWQuCiAgIC0gdmFyaW91cyBmaXhlcy4KICAgCjIwMDItMDItMjIgMTA6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBmaXggaW5zdGFsbCBkaXJlY3RvcmllcyBmb3IgaGVhZGVycwogICAKMjAwMi0wMi0yMiAxMDo0OSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIC0tY29tcGlsZS1zdWJhZ2VudCBmb3IgYXV0b21hdHRlZCBzdWJhZ2VudCBjb21waWxhdGlvbiBmcm9tCiAgIG1pYm1vZHVsZSAuYyBmaWxlcyA7LSkKICAgCjIwMDItMDItMjIgMDk6MjcgIGR0czEyCgogICAqIHNubXBsaWIvOiBNU0cwMDAwMS5iaW4sIHdpbnNlcnZpY2UubWMgKFY0LTItcGF0Y2hlcy5bMSwxXSksCiAgIE1TRzAwMDAxLmJpbiwgd2luc2VydmljZS5tYzoKCiAgIEFkZCBtaXNzaW5nIGZpbGVzIGZvciBXaW5kb3dzIHNlcnZpY2Ugb3BlcmF0aW9uLgogICAKMjAwMi0wMi0yMiAwODo1NSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEp1c3QgY2xvc2UgdGhlIG1haW4gc2Vzc2lvbiB3aGVuIHNodXR0aW5nIGRvd24gdW5kZXIgV2luZG93cywKICAgbm90IGV2ZXJ5dGhpbmcgKHNvIHRoYXQgaXQgY2FuIHN0aWxsIGdlbmVyYXRlIHRoZSBzaHV0ZG93biB0cmFwKS4KICAgCjIwMDItMDItMjIgMDg6NDAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgVHdlYWtzIHJlcXVpcmVkIHRvIGdldCB0aGUgbGlicmFyeSBjb21waWxpbmcgdW5kZXIgV2luZG93cyBWQysrCiAgIAoyMDAyLTAyLTIyIDA4OjM3ICBkdHMxMgoKICAgKiB3aW4zMi86IHNubXBzbV9pbml0LmgsCiAgIGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCBsaWJhZ2VudC9saWJhZ2VudC5kc3AsCiAgIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsIGxpYnNubXAvbGlic25tcC5kc3AsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcAosIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwKICAgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHNubXBkL3NubXBkLmRzcCwKICAgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHNubXBkZi9zbm1wZGYuZHNwLAogICBzbm1wZ2V0L3NubXBnZXQuZHNwLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgc25tcHNldC9zbm1wc2V0LmRzcCwKICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcAosIHNubXB0cmFwL3NubXB0cmFwLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AKLCBzbm1wdXNtL3NubXB1c20uZHNwLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsCiAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIFByb3ZpZGUgV2luZG93cy1zcGVjaWZpYyB2ZXJzaW9ucyBvZiBhdXRvbWF0aWNhbGx5LWdlbmVyYXRlZCBoZWFkZXIgZmlsZXMsCiAgIGFuZCBhZGQgdGhlIG5ldyBpbmNsdWRlIHN0cnVjdHVyZSB0byB0aGUgcHJvamVjdCBmaWxlcy4KICAgCjIwMDItMDItMjIgMDc6MjQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oOgoKICAgRGVmaW5lIHN0YW5kYXJkIE9JRCBsZW5ndGhzIGhlcmUgKHdoZXJlIHRoZXkncmUgYXZhaWxhYmxlIHRvIGFueQogICBmaWxlIHdhbnRpbmcgdG8gYWNjZXNzIHRoZSBPSUQgc3RydWN0dXJlcykKICAgCjIwMDItMDItMjIgMDM6MjQgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHYzLmM6CgogICBTdXBwb3J0ICIuLi4uIC0zdSB7c2VjTmFtZX0gLi4uLiIgc3ludGF4CiAgIChpbiB0aGUgbm9ybWFsIGdldG9wdCBzdHlsZSAtIGkuZS4gbm8gbmVlZCBmb3Igc3Vycm91bmRpbmcgcXVvdGVzKQogICAKICAgSXQgc2hvdWxkIG5vdyBiZSBwb3NzaWJsZSB0byBzd2l0Y2ggdG8gdGhpcyBhcyB0aGUgcmVjb21tZW5kZWQgZm9ybQogICBmb3IgU05NUHYzIG9wdGlvbnMgLSBpZiB0aGF0J3Mgd2hhdCB3ZSB3YW50IHRvIGRvLgogICAgIFFuOiAgRG8gd2Ugd2FudCB0bz8KICAgCjIwMDItMDItMjEgMDg6MzkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBTdXBwb3J0ICItM3Uge3NlY05hbWV9IiBzeW50YXggKCp3aXRoKiB0aGUgcXVvdGVzLCB1bmZvcnR1bmF0ZWx5KS4KICAgTm93IGNvbWVzIHRoZSBmdW4gYml0Li4uLi4KICAgCjIwMDItMDItMjEgMDc6NTQgIGR0czEyCgogICAqIHdpbjMyL3NubXBkL3NubXBkLmRzcDoKCiAgIEZpeCBib2d1cyBzdHJ1Y3R1cmUgY29tbWVudHMgaW4gdGhlIHNubXBkIHByb2plY3QgZmlsZS4KICAgCjIwMDItMDItMjEgMDc6MzAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvOiBub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAgIC0gZHJvcCBpbmxpbmUgKG1vcmUgdHJvdWJsZSB0aGFuIGl0IGlzIHdvcnRoKQogICAKMjAwMi0wMi0yMSAwNTowMCAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdjMuYzoKCiAgIEZpcnN0IHBhc3MgYXQgYW4gU05NUHYzICJjb21iaW5lZC1vcHRpb24iIGNvbW1hbmQtbGluZSBmbGFnICgtM3gpLgogICAoSW4gKmFkZGl0aW9uKiB0byB0aGUgY3VycmVudCBjb21tYW5kLWxpbmUgZmxhZ3MsIEkgaGFzdGVuIHRvIGFkZCEpCiAgIAogICBTdXBwb3J0cyAgIi4uLiAtM3V7c2VjTmFtZX0gLi4uIiBhbmQgIi4uLiAtM3U9e3NlY05hbWV9IC4uLiIgc3ludGF4LAogICBidXQgbm90IHRoZSBzZXBhcmF0ZSAiLi4uIC0zdSB7c2VjTmFtZX0gLi4uIiBzdHlsZS4KICAgCiAgIEkgaGF2ZW4ndCB0b3VjaGVkIHRoZSBkb2N1bWVudGF0aW9uIG9yIHVzYWdlIG1lc3NhZ2UgdG8gbWVudGlvbiB0aGlzLgogICAKMjAwMi0wMi0yMCAxODoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgdXNlIGZvciBpbnN0ZWFkIG9mIGNvbnRpbnVlIGZvciBsb29wcy4KICAgCjIwMDItMDItMjAgMTM6NDIgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIC0gQWRkIGEgLS1xdWl0IG9wdGlvbiAoYW5kIGEgY29uZmlndXJhdGlvbiB0b2tlbikgc28gdGhhdCB5b3UgY2FuIG5vdwogICAgIGNyZWF0ZSBuZXcgdXNlcnMgYnkgc2ltcGx5IGNhbGxpbmcgc25tcGQgYXM6CiAgICAgICBzbm1wZCAtLWNyZWF0ZVVzZXI9Im15dXNlciBNRDUgbXlwYXNzd29yZCIgLS1xdWl0CiAgIC0gQ2hhbmdlIFJFQURNRS5zbm1wdjMgZG9jdW1lbnRhdGlvbiB0byBtYWtlIHVzZSBvZiB0aGlzIGZlYXR1cmUuCiAgIAoyMDAyLTAyLTIwIDA2OjE2ICBqYnBuCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHRyYXBkLmMsIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGFkZCBsaWJ3cmFwIHN1cHBvcnQgdG8gc25tcHRyYXBkICh1bnRlc3RlZCkKICAgCiAgICAgLSBtaW5vciBjaGFuZ2VzIHRvIHNubXBkIGxpYndyYXAgc3VwcG9ydAogICAKICAgICAtIGNvbmZpZ3VyZSBmaXhlcyBmb3IgbGlid3JhcAogICAKMjAwMi0wMi0yMCAwMzowNyAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSB1c2UgY2FsbG9jIGluc3RlYWQgb2YgbWFsbG9jIHRvIG1ha2Ugc3VyZSBidWZmZXIgaXMgaW5pdGlhbGx5CiAgICAgICB6ZXJvLXRlcm1pbmF0ZWQgKGluIGNhc2Ugb2YgMCB2YXJiaW5kcykuICBCdWcgIzUxODcwMCwgbm90ZWQgYnkKICAgICAgIEFuZHJlYXMgSGFydG1hbm4uCiAgIAoyMDAyLTAyLTIwIDAzOjA2ICBqYnBuCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICAgIC0gaW5pdGlhbGlzZSBzb21lIGJ1ZmZlcnMsIHRvIGF2b2lkIGdhcmJhZ2UgcHJpbnRpbmcgcHJvYmxlbXMsIGFzCiAgICAgICBub3RlZCBieSBBbm9ueW1vdXMgaW4gYnVnICM1MjAyMjAuCiAgIAoyMDAyLTAyLTIwIDAzOjAzICBkdHMxMgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgQ2xlYW4gdXAgdGhlIG9iamVjdCBmaWxlcyBhcyB3ZWxsCiAgIAoyMDAyLTAyLTIwIDAxOjQxICBkdHMxMgoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIElnbm9yZSB0aGUgbmV3IGNyb3Agb2YgZ2VuZXJhdGVkIG1hbiBwYWdlcy4KICAgCjIwMDItMDItMjAgMDE6MzcgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIFN1cHBseSBtaXNzaW5nIGRvdWJsZS1xdW90ZSAgKG9vcHMpCiAgIAoyMDAyLTAyLTE5IDA0OjAxICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIEluaXRpYWxpc2UgdGhlIGxpYnJhcnkgaW50ZXJuYWxzICpiZWZvcmUqIHBhcnNpbmcgdGhlIGNvbW1hbmQgbGluZSwKICAgc28gdGhhdCBkZWZhdWx0cyBjYW4gYmUgb3ZlcnJpZGRlbiBieSBjb21tYW5kIGxpbmUgb3B0aW9ucy4KICAgICBRbjogIFNob3VsZCAnX2luaXRfc25tcCcgYmUgaW52b2tlZCBieSAnc25tcF9wYXJzZV9hcmdzJyBpdHNlbGY/CiAgIAoyMDAyLTAyLTE5IDAzOjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgTWFrZSBzdXJlIHRoYXQgbXVsdGlwbGUgb3V0cHV0IGZvcm1hdCBmbGFncyB3b3JrIGluIGEgY29uc2lzdGVudCBtYW5uZXIuCiAgIChpLmUuIHRoZSBsYXN0IG9uZSBpcyB1c2VkLCByYXRoZXIgdGhhbiByZWx5aW5nIG9uIGludGVybmFsIG9yZGVyaW5nKS4KICAgCjIwMDItMDItMTggMjE6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdGVzdGRlbGF5ZWQuYywgdGVzdGhhbmRsZXIuYzoKCiAgIGluY2x1ZGUgc3RkbGliLmgKICAgCjIwMDItMDItMTggMjE6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgZml4IGluY2x1ZGVzCiAgIAoyMDAyLTAyLTE4IDIxOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIC0gbWFrZSBjYXBhYmlsaXR5IHRvIGNyZWF0ZSBkYXRhIGNvbnRleHRzIGZyb20gYSBsb29wIGNvbnRleHQgKGxlc3MKICAgICBtYWxsb2NzIHdoZW4gbWFsbG9jcyBhcmVuJ3Qgb3RoZXJ3aXNlIGF2b2lkYWJsZSkuCiAgIC0gZG9uJ3QgZG91YmxlIGZyZWUgdGhlIGRhdGEgY29udGV4dCBwb2ludGVyLgogICAKMjAwMi0wMi0xOCAyMTo1MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgaW5jbHVkZSBhbGwgYWdlbnQgaGVscGVycy4KICAgCjIwMDItMDItMTggMjE6NDkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaDoKCiAgIHByb3RlY3QgaW5jbHVkZSBmcm9tIGRvdWJsZSBpbmNsdWRlCiAgIAoyMDAyLTAyLTE4IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmg6CgogICBmaXggaW5jbHVkZSBwYXRocwogICAKMjAwMi0wMi0xOCAwMjozNSAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBUd2VhayB0aGUgbGlzdCBvZiBoZWFkZXIgZmlsZXMgdG8gYmUgaW5zdGFsbGVkICh0aGFua3MgdG8gQ2hyaXN0b3BoIE1hbW1pdHpzY2gpCiAgIAoyMDAyLTAyLTE4IDAyOjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3RvcmFnZS5jIChWNC0yLXBhdGNoZXMuNyksIGhyX3N0b3JhZ2UuYwo6CgogICBSZW1vdmUgYSBjb3VwbGUgb2YgdW5oZWxwZnVsIE9TRiBkZWZpbml0aW9ucyAodGhhbmtzIHRvIEplcm9lbiBSdWlncm9rKQogICAKMjAwMi0wMi0xOCAwMDoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYyAoVjQtMi1wYXRjaGVzLjMpLCBhc24xLmM6CgogICBkb24ndCBidWlsZCBvaWQncyB3aXRoID4xMjggbGVuZ3RoIHN1Ymlkcy4gIChzZWUgYnVnICM1MTg4NTUpCiAgIAoyMDAyLTAyLTE2IDIzOjE4ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogTkVULVNOTVAtTUlCLnR4dCwgTkVULVNOTVAtTU9OSVRPUi1NSUIudHh0LAogICBORVQtU05NUC1TWVNURU0tTUlCLnR4dCwgTkVULVNOTVAtVEMudHh0OgoKICAgd2hpdGUgc3BhY2UgY2xlYW4gdXAuICAoQUdFTlQtTUlCIG5vdCBjaGVja2VkIGluIGR1ZSB0byBvdGhlcgogICBpbmNvbXBsZXRlIGNoYW5nZXMpLgogICAKMjAwMi0wMi0xNiAwMDoxNyAgaGFyZGFrZXIKCiAgICogTkVXUywgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYwosIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIGZpbmlzaCBpbXBsZW1lbnRpbmcgc25tcF9jb25maWcoIm15IGNvbmZpZyBsaW5lIikKICAgICAtIHdhcyBkb25lIGJlZm9yZSwgYnV0IHByZXZpb3VzbHkgaGFkIHRvIGJlIGNhbGxlZCBvbmx5IGFmdGVyCiAgICAgICBjb25maWd1cmF0aW9uIGZpbGVzIGhhZCBiZWVuIHJlYWQuICBOb3cgY2FuIGJlIGNhbGxlZCBhdCBhbnkgdGltZS4KICAgLSBtYWtlIGFsbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXZhaWxhYmxlIGFzIC0tbG9uZ29wdHMgY29tbWFuZCBsaW5lIG9wdGlvbnMuCiAgICAgLSAtLXNvbWV0aGluZz12YWx1ZSAtPiAic29tZXRoaW5nIHZhbHVlIgogICAgIC0gLS1zb21ldGhpbmcgICAgICAgLT4gInNvbWV0aGluZyAxIiAod29ya3MgZm9yIHNldHRpbmcgYm9vbGVhbnMgdG8gdHJ1ZSkKICAgCjIwMDItMDItMTYgMDA6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBtaWJfbW9kdWxlX2NvbmZpZy5oCiAgIAoyMDAyLTAyLTE2IDAwOjAxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBycG0gZm9yIDQuMC4zIGFuZCBhYm92ZSAob3Igd2hlbmV2ZXIgaXQgd2FzIHRoYXQgd2Ugbm93IG5lZWQgbGlicnBtZGIpCiAgIAoyMDAyLTAyLTE2IDAwOjAxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXM6CgogICBmaXggbmV0LXNubXAtY29uZmlnIGluc3RhbGwvY2xlYW4vZXRjLgogICAKMjAwMi0wMi0xNSAyMjozNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzOgoKICAgaW5zdGFsbCBhbGwgc3lzdGVtIGFuZCBtYWNoaW5lIGZpbGVzLCBzaW5jZSB0aGV5IGluY2x1ZGUgZWFjaCBvdGhlcgogICAKMjAwMi0wMi0xNSAwOToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dCwgbWlicy9ORVQtU05NUC1NSUIudHh0LAogICBtaWJzL05FVC1TTk1QLU1PTklUT1ItTUlCLnR4dCwgbWlicy9ORVQtU05NUC1TWVNURU0tTUlCLnR4dAosIG1pYnMvTkVULVNOTVAtVEMudHh0OgoKICAgU2tlbGV0b24gZnJhbWV3b3JrIGZvciB0aGUgTmV0LVNOTVAgZW50ZXJwcmlzZSB0cmVlLgogICAoaW5jb3Jwb3JhdGluZyB0aGUgaW5pdGlhbCAnbnNUcmFuc2FjdGlvblRhYmxlJywgYnV0IG5vdGhpbmcgZWxzZSBhcyB5ZXQpCiAgIAoyMDAyLTAyLTE1IDA5OjEwICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIFJlbW92ZSBzdXBwb3J0IGZvciBkZXByZWNhdGVkIGNvbW1hbmQtbGluZSBvcHRpb25zLgogICAKMjAwMi0wMi0xNSAwNzoyOCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwgc25tcGxpYi93aW5zZXJ2aWNlLmMKLCBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL3dpbnNlcnZpY2UucmMsIHdpbjMyL3NubXBkL3NubXBkLmRzcDoKCiAgIFN1cHBvcnQgZm9yIHJ1bm5pbmcgYXMgYSBXaW5kb3dzIHNlcnZpY2UuCiAgIChTdXBwbGllZCBieSBSYWp1IEtyaXNobmFwcGEgJiBMYXRodSBQcmFiaHUpCiAgIAoyMDAyLTAyLTE1IDA3OjI1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBTdG9rZSBXZXMnIHNlbnNlIG9mIHBhcmFub2lhIGJ5IGNvbmNlZGluZyB3aXRob3V0IGNvbW1lbnQuCiAgICAgICAoV2hhdCBtaWdodCBTaGllbGQgYmUgcGxvdHRpbmcgbm93Li4uLi4uKQogICAKMjAwMi0wMi0xNSAwNzoxOSAgamJwbgoKICAgKiBtYW4vc25tcHVzbS4xLmRlZjoKCiAgICAgLSBmaXggdGlueSBmb3JtYXR0aW5nIGVycm9yCiAgIAoyMDAyLTAyLTE1IDA3OjE3ICBkdHMxMgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBOT1RJRklDQVRJT04tTE9HLU1JQiAoc2luY2UgaXQncyBvbmUgb2YgdGhlIGRlZmF1bHQgbG9hZCBsaXN0ISkKICAgCjIwMDItMDItMTUgMDY6NDcgIGR0czEyCgogICAqIHNubXBsaWIvd2luc2VydmljZS5yYzoKCiAgIGZpbGUgd2luc2VydmljZS5yYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAyLTAyLTE1IDA2OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuaDoKCiAgIGZpbGUgd2luc2VydmljZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDItMDItMTUgMDY6NDcgIGR0czEyCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgZmlsZSB3aW5zZXJ2aWNlLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMi0wMi0xNSAwNjowOCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgSW5jbHVkZSB0aGUgPHN5cy90aW1lLmg+IGNhc2NhZGUsIHRvIHBpY2sgdXAgdGhlIGRlZmluaXRpb24gb2YgJ3RpbWV2YWwnCiAgIAoyMDAyLTAyLTE1IDA0OjI5ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gbWlub3IgY2hhbmdlIHRvIGJyaW5nIHVzYWdlIG1lc3NhZ2UgaW4gbGluZSB3aXRoIG1hbnBhZ2UKICAgCjIwMDItMDItMTUgMDM6MjkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBDYXRjaCB1c2Ugb2YgdGhlIHRyYW5zcG9ydCBhbmQgcG9ydCBvcHRpb25zLCBhbmQgaXNzdWUgYW4gYXBwcm9wcmlhdGUKICAgZXJyb3IgbWVzc2FnZSwgZGVzY3JpYmluZyB1c2Ugb2YgdGhlIDxob3N0bmFtZT4gcGFyYW1ldGVyIGluc3RlYWQuCiAgIAoyMDAyLTAyLTE1IDAzOjExICBkdHMxMgoKICAgKiBzbm1wbGliLzogbWliLmMsIHNubXBfYXBpLmM6CgogICBTZXQgdGhlIGRlZmF1bHQgb3V0cHV0IGZvcm1hdCAqYmVmb3JlKiBwcm9jZXNzaW5nIGNvbW1hbmQgbGluZSBvcHRpb25zLAogICByYXRoZXIgdGhhbiBhZnRlci4gIFRoYXQncyBwcm9iYWJseSBhIGJpdCBtb3JlIGZsZXhpYmxlOi0pCiAgIAoyMDAyLTAyLTE1IDAyOjM3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogY29uZmlnX2FwaS5oLCBkZWZpbml0aW9ucy5oLAogICBtaWJfYXBpLmgsIG91dHB1dF9hcGkuaCwgcGR1X2FwaS5oLCBzZXNzaW9uX2FwaS5oCiwgc25tcHYzX2FwaS5oLCB0eXBlcy5oLCB1dGlsaXRpZXMuaCwKICAgdmFyYmluZF9hcGkuaDoKCiAgIFJlbW92ZSAnbmV0LXNubXAtY29uZmlnLmgnIGZyb20gdGhlIG1haW4gQVBJIGhlYWRlciBmaWxlcy4KICAgVGhpcyB3aWxsIGhhdmUgdG8gYmUgI2luY2x1ZGVkIHNlcGFyYXRlbHkgKGVpdGhlciBleHBsaWNpdGx5CiAgIG9yIHZpYSB0aGUgYWxsLWluLW9uZSAnbmV0LXNubXAtaW5jbHVkZXMuaCcgaGVhZGVyKQogICAKMjAwMi0wMi0xNSAwMjozMSAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIFJFQURNRSB0byBkZXNjcmliZSB0aGUgc3RhdHVzIG9mIDxuZXQtc25tcC9saWJyYXJ5PiBhbmQgPG5ldC1zbm1wPiBoZWFkZXIgZmlsZXMuCiAgIAoyMDAyLTAyLTE1IDAyOjEzICBkdHMxMgoKICAgKiBtYW4vTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSB7c3lzdGVtLG1hY2hpbmV9LyouaCBoZWFkZXIgZmlsZXMgYXMgd2VsbC4KICAgCiAgIERvaW5nIHRoaXMgdmlhIHRoZSAnbWFuJyAmICdtaWJzJyBNYWtlZmlsZXMgaXMgYSBncm9zcyBoYWNrLAogICBhbmQgcmVhbGx5IG5lZWRzIHRvIGJlIGhhbmRsZWQgbW9yZSBjbGVhbmx5LiAgQnV0IGl0J3MgdGhlCiAgIGJlc3QgSSBjYW4gY29tZSB1cCB3aXRoIGF0IHRoZSBtb21lbnQuICBTb3JyeSAtIERhdmUuCiAgIAoyMDAyLTAyLTE1IDAxOjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIFVDRC1jb21wYXRhYmlsaXR5IGhlYWRlcnMgYXMgd2VsbC4KICAgCjIwMDItMDItMTUgMDE6NTcgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgT25seSBpbnN0YWxsIHN1YmRpcmVjdG9yeSBzdHVmZiAqb25jZSouICAoRG9uJ3QgYmUgc28gZW50aHVzaWFzdGljLCBEYXZlISkKICAgCjIwMDItMDItMTUgMDE6MzEgIGR0czEyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICBSZW1vdmUgcmVkdW5kZW50ICctQ04nIGFuZCAnLUNPJyBvcHRpb25zIGZyb20gdGhlIGV4YW1wbGUgc25tcHVzbSBjb21tYW5kLgogICAgIChhcyBtZW50aW9uZWQgYnkgV2VzIG9uIHRoZSB1c2VycyBtYWlsaW5nIGxpc3QgMjAwMi0wMi0xMykKICAgICBRbjogRG9lcyB0aGlzIG5lZWQgdG8gYmUgZG9uZSBvbiB0aGUgVjQtMi1wYXRjaGVzIGJyYW5jaCBhcyB3ZWxsPwogICAKMjAwMi0wMi0xNSAwMToxNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCwgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmVyc2lvbi5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaCwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIFJlc3RvcmUgJ3ZlcnNpb24uaCcgYXMgYmVpbmcgYSAidG9wLWxldmVsIiBoZWFkZXIgZmlsZS4KICAgCjIwMDItMDItMTUgMDE6MTMgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBmdWxsIHNldCBvZiBsaWJyYXJ5IGhlYWRlciBmaWxlcywKICAgcmV0YWluaW5nIHRoZSB0b3AtbGV2ZWwgdnMgbGlicmFyeSBzdWJkaXJlY3Rvcnkgc3BsaXQuCiAgIAoyMDAyLTAyLTE1IDAxOjEwICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIExvb2sgZm9yIHRyYW5zcG9ydC1yZWxhdGVkIGhlYWRlciBmaWxlcyBpbiB0aGUgY29ycmVjdCBsb2NhdGlvbi4KICAgCjIwMDItMDItMTUgMDE6MDkgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgRW5zdXJlIHBhcnRpYWwgaW5zdGFsbCB0YXJnZXRzIHJlY3Vyc2UgcHJvcGVybHkuCiAgIAoyMDAyLTAyLTE0IDA4OjE4ICBkdHMxMgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBMb29rIGZvciBtaWJfbW9kdWxlX2NvbmZpZy5oIGluIHRoZSBjb3JyZWN0IGxvY2F0aW9uCiAgIAoyMDAyLTAyLTE0IDA4OjA2ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBmaXggbWFuOCBpbnN0YWxsIGRlZmluaXRpb25zCiAgIAoyMDAyLTAyLTE0IDA3OjQ4ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlcywgbmV0LXNubXAtY29uZmlnLmluOgoKICAgU3Vic3RpdHV0ZSB2YWx1ZXMgaW50byAnbmV0LXNubXAtY29uZmlnJyBwcm9wZXJseSwgYW5kIGRvbid0ICdtYWtlIGNsZWFuJyBpdCBhd2F5LgogICAKMjAwMi0wMi0xNCAwNzoyMiAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgVGlkeSB1cCBhZnRlciBtb3ZpbmcgdGhlIGxpYnJhcnkgaGVhZGVyIGZpbGVzCiAgIAoyMDAyLTAyLTE0IDA3OjE0ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFRpZHkgdXAgYWZ0ZXIgbW92aW5nIHRoZSBsaWJyYXJ5IGhlYWRlciBmaWxlcyAoaW5jbHVkaW5nIE1ha2VmaWxlIGRlcGVuZGVuY2llcykKICAgCjIwMDItMDItMTQgMDc6MTAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsCiAgIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jCiwgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgYWdlbnQvYWdlbnRfdHJhcC5jCiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaAosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oOgoKICAgVGlkeSB1cCBhZnRlciBtb3ZpbmcgdGhlIGxpYnJhcnkgaGVhZGVyIGZpbGVzIChpbmNsdWRpbmcgTWFrZWZpbGUgZGVwZW5kZW5jaWVzKQogICAKMjAwMi0wMi0xNCAwNzowOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBhbiBleHRyYW5lb3VzIHNwYWNlIGZyb20gQ1BQRkxBR1MKICAgCjIwMDItMDItMTQgMDY6MjMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBjb25maWdfYXBpLmgsIGRlZmluaXRpb25zLmgsCiAgIG1pYl9hcGkuaCwgbmV0LXNubXAtaW5jbHVkZXMuaCwgb3V0cHV0X2FwaS5oLAogICBwZHVfYXBpLmgsIHNlc3Npb25fYXBpLmgsIHNubXB2M19hcGkuaCwgdHlwZXMuaAosIHV0aWxpdGllcy5oLCB2YXJiaW5kX2FwaS5oOgoKICAgU2VwYXJhdGUgb3V0IHRvcC1sZXZlbCAicHVibGljIEFQSSIgbGlicmFyeSBoZWFkZXIgZmlsZXMgZnJvbSB0aGUgImludGVybmFsIgogICBsaWJyYXJ5IGhlYWRlciBmaWxlcy4gIFRoZXNlIGFyZSBzdGlsbCBhdmFpbGFibGUgZm9yIHVzZSBieSBhcHBsaWNhdGlvbgogICBkZXZlbG9wZXJzLCBidXQgdGhpcyBzcGxpdCBtYWtlcyBpdCBjbGVhcmVyIHdoYXQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlCiAgIGFuZCB3aGF0IGNhbiBiZSByZWxpZWQgdXBvbiB0byBiZSBzdGFibGUuCiAgIAoyMDAyLTAyLTE0IDA2OjE5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FzbjEuaCwgaW5jbHVkZS9uZXQtc25tcC9jYWxsYmFjay5oLAogICBpbmNsdWRlL25ldC1zbm1wL2NtdV9jb21wYXQuaCwgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2xpc3QuaAosIGluY2x1ZGUvbmV0LXNubXAvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2dldG9wdC5oLCBpbmNsdWRlL25ldC1zbm1wL2ludDY0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAva2V5dG9vbHMuaCwgaW5jbHVkZS9uZXQtc25tcC9sY2RfdGltZS5oCiwgaW5jbHVkZS9uZXQtc25tcC9saWJzbm1wLmgsIGluY2x1ZGUvbmV0LXNubXAvbWQ1LmgKLCBpbmNsdWRlL25ldC1zbm1wL21pYi5oLCBpbmNsdWRlL25ldC1zbm1wL210X3N1cHBvcnQuaAosIGluY2x1ZGUvbmV0LXNubXAvb2lkX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvb2lkX3N0YXNoLmgsIGluY2x1ZGUvbmV0LXNubXAvcGFyc2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9yZWFkX2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL3NjYXBpLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXAtdGMuaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcElQWERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBUQ1BEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVRFBEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVbml4RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hbGFybS5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfY2xpZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9kZWJ1Zy5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfZW51bS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2ltcGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2xvY2tpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2xvZ2dpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3NlY21vZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfdHJhbnNwb3J0LmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcGtzbS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzLmgKLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS5oLCBpbmNsdWRlL25ldC1zbm1wL3Rvb2xzLmgKLCBpbmNsdWRlL25ldC1zbm1wL3RyYW5zZm9ybV9vaWRzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvdWNkX2NvbXBhdC5oLCBpbmNsdWRlL25ldC1zbm1wL3ZhY20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9SRUFETUUKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZ2V0b3B0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkva2V5dG9vbHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tZDUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9ja2luZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdWNkX2NvbXBhdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmVyc2lvbi5oLCBpbmNsdWRlL3VjZC1zbm1wL2FzbjEuaAosIGluY2x1ZGUvdWNkLXNubXAvY2FsbGJhY2suaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmgsIGluY2x1ZGUvdWNkLXNubXAvaW50NjQuaAosIGluY2x1ZGUvdWNkLXNubXAva2V5dG9vbHMuaCwgaW5jbHVkZS91Y2Qtc25tcC9taWIuaAosIGluY2x1ZGUvdWNkLXNubXAvbWliaW5jbC5oLCBpbmNsdWRlL3VjZC1zbm1wL3BhcnNlLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3JlYWRfY29uZmlnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc2NhcGkuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLXRjLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcC5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWxhcm0uaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FwaS5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfY2xpZW50LmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfZGVidWcuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2xvZ2dpbmcuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF92YXJzLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcHVzbS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdjMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zeXN0ZW0uaAosIGluY2x1ZGUvdWNkLXNubXAvdG9vbHMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC90cmFuc2Zvcm1fb2lkcy5oLCBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaAosIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvZGF0YV9saXN0LmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIva2V5dG9vbHMuYywKICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9tdF9zdXBwb3J0LmMsIHNubXBsaWIvb2lkX2FycmF5LmMsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXAuYywKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfc2VjbW9kLmMsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywKICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jCiwgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIFNlcGFyYXRlIG91dCB0b3AtbGV2ZWwgInB1YmxpYyBBUEkiIGxpYnJhcnkgaGVhZGVyIGZpbGVzIGZyb20gdGhlICJpbnRlcm5hbCIKICAgbGlicmFyeSBoZWFkZXIgZmlsZXMuICBUaGVzZSBhcmUgc3RpbGwgYXZhaWxhYmxlIGZvciB1c2UgYnkgYXBwbGljYXRpb24KICAgZGV2ZWxvcGVycywgYnV0IHRoaXMgc3BsaXQgbWFrZXMgaXQgY2xlYXJlciB3aGF0IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZQogICBhbmQgd2hhdCBjYW4gYmUgcmVsaWVkIHVwb24gdG8gYmUgc3RhYmxlLgogICAKMjAwMi0wMi0xNCAwNDo0MSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2ltcGwuaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzX2FwaS5oLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2tleXRvb2xzLmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXAuYywKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICBzbm1wbGliL3NubXBfc2VjbW9kLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywKICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jCiwgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIEZpcnN0IG1vdmVzIHRvd2FyZHMgdXNpbmcgdGhlICJwdWJsaWMiIEFQSSBoZWFkZXIgZmlsZXMgaW4gdGhlIGxpYnJhcnkKICAgY29kZSBhcyB3ZWxsIChjb25jZW50cmF0aW5nIG9uIG91dHB1dC9jb25maWcvdXRpbGl0eSBoZWFkZXIgZmlsZXMpLgogICAKMjAwMi0wMi0xNCAwMzoxNyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDbG9zZSBhIGRhbmdsaW5nICJpZiIgYmxvY2suICAgKG9vcHMhKQogICAKMjAwMi0wMi0xNCAwMTo0NyAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMgKFY0LTItcGF0Y2hlcy40KSwgaWYuYzoKCiAgIENoZWNrIGZvciBydW5uaW5nIG9mZiB0aGUgZW5kIG9mIEkvRiB0YWJsZSAocGF0Y2ggZnJvbSBSZWRIYXQpCiAgIAoyMDAyLTAyLTE0IDAxOjQzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgTGF0ZXN0IFJlZEhhdCBycG0tcmVsYXRlZCBwYXRjaAogICAKMjAwMi0wMi0xNCAwMTozOSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZG9wdCBSZWRIYXQncyBjb25maWd1cmUgdGVzdGluZyBmb3IgUlBNIGxpYnJhcmllcwogICAKMjAwMi0wMi0xMyAwODozOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBNYWtlIEpvaG4gdHJ1c3QgaGlzIGNvZGUKICAgCjIwMDItMDItMTMgMDg6MzQgIGpicG4KCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAgIC0gdHJhbnNwb3J0IGZpeGVzICh1bnRlc3RlZCwgc3RpbGwgI2lmIDApCiAgIAoyMDAyLTAyLTEzIDA4OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG1hcmsgc29tZSBKb2huLXRvLWRvLXNlY3Rpb25zCiAgIAoyMDAyLTAyLTEzIDA3OjU3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RlZmF1bHRfc3RvcmUuaCwgbWFuL3NubXBjbWQuMS5kZWYsCiAgIHNubXBsaWIvbWliLmM6CgogICBTd2l0Y2ggdG8gdXNpbmcgLU9TIHN0eWxlIG91dHB1dCBieSBkZWZhdWx0LCBhbmQgZHJvcCB0aGUgcmVxdWlyZW1lbnQKICAgZm9yIGZ1bGwgT0lEcyB0byBzdGFydCB3aXRoICcuJywgcGx1cyBjb21tYW5kLWxpbmUgb3B0aW9ucyB0byByZXN0b3JlCiAgIHRoZSBvcmlnaW5hbCBVQ0Qtc3R5bGUgYmVoYXZpb3VyLgogICAKMjAwMi0wMi0xMyAwNzozNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEFwcGx5IEpvaG4ncyBmaXggZm9yIGJ1Z3MgIzQ4OTMzNiBhbmQgIzUwODE0NiAoZHVwbGljYXRlIGNvbHVtbnMgYW5kCiAgIGNvbHVtbnMgaW4gd3Jvbmcgb3JkZXIpIHRvIHRoZSBtYWluIGJyYW5jaCBhcyB3ZWxsLgogICAKMjAwMi0wMi0xMiAxNjo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgY29uc3QgY2hhbmdlcy4KICAgCjIwMDItMDItMTIgMTY6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvOiAuY3ZzaWdub3JlLCBBU04vLmN2c2lnbm9yZSwgYWdlbnQvLmN2c2lnbm9yZQosIGRlZmF1bHRfc3RvcmUvLmN2c2lnbm9yZToKCiAgIGFkZCAuY3ZzaWdub3JlIGZpbGUuCiAgIAoyMDAyLTAyLTEyIDE2OjM4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBhZGQgYWdlbnQvYWdlbnRfaGFuZGxlci5oCiAgIAoyMDAyLTAyLTEyIDE2OjM4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3NubXBfY2xpZW50Lmg6CgogICBjb25zdCBhZGRpdGlvbnMuCiAgIAoyMDAyLTAyLTEyIDE2OjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBBZGQgc3RyaW5nLmgKICAgCjIwMDItMDItMTIgMTY6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGFkZCBoZWFkZXIuCiAgIAoyMDAyLTAyLTEyIDE2OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBmaXhlcyB0byByZWVuYWJsZSBkaXNtYW4gZXZlbnQgc3R1ZmYgZm9yIDUuMCBjb2RlLiAgTm90IGRvbmUgdGhlCiAgICJyaWdodCIgd2F5LCBidXQgaXQgd29ya3MuCiAgIAoyMDAyLTAyLTEyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIC0gLVdhbGwgZml4ZXMKICAgCjIwMDItMDItMTIgMTY6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIC0gYWRkIHN0ZGxpYi5oCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KICAgCjIwMDItMDItMTIgMTY6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSBubyBsb25nZXIgdXNlZCAiZHVtcF92YXIiIHJvdXRpbmUuCiAgIAoyMDAyLTAyLTEyIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgY29uc3Qgc3BlY2lmaWMgY2hhbmdlcy4KICAgCjIwMDItMDItMTIgMTY6MzQgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGRlZCBuZXcgcGVybCBzcGVjaWZpYyBmZWF0dXJlcy4KICAgCjIwMDItMDItMTIgMTY6MzQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLlBITk9ZIG1vZHMKICAgCjIwMDItMDItMTIgMDc6MjIgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xvZ2dpbmdfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oCjoKCiAgIFJlbmFtZSB0aGUgbG9nZ2luZyAmIHJlbGF0ZWQgb3V0cHV0IEFQSSBoZWFkZXIgZmlsZSwgdG8gYmV0dGVyCiAgIHJlZmxlY3QgdGhlIHNjb3BlIG9mIHRoaXMgQVBJLiAgKEFzIHN1Z2dlc3RlZCBieSBXZXMgJiBKb2huKQogICAKMjAwMi0wMi0xMiAwNzoyMSAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gYW1lbmQgZml4IHRvIGJ1ZyAjNTE2Mzg5ICh1Y2Qtc25tcCA0LjIuMyBsaWJ3cmFwIHN1cHBvcnQgYnJva2VuKSB0bwogICAgICAgYWN0dWFsbHkgYWRkIC1sbnNsIHRvIGxpbmsgcGFyYW1ldGVycyEKICAgCjIwMDItMDItMTIgMDU6MzkgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIGZpeCBidWcgIzUxNjM4OSAodWNkLXNubXAgNC4yLjMgbGlid3JhcCBzdXBwb3J0IGJyb2tlbikgLS0gVVNFX0xJQldSQVAKICAgICAgIHdhcyBub3QgYmVpbmcgI2RlZmluZWQgaW4gdGhlIGNhc2Ugd2hlcmUgLWxuc2wgaXMgbmVlZGVkIGluIGFkZGl0aW9uCiAgICAgICB0byAtbHdyYXAuCiAgIAoyMDAyLTAyLTExIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGxpYiBkZXBlbmRlbmN5IGZpeCBmb3Igc25tcGQgdGFyZ2V0CiAgIAoyMDAyLTAyLTExIDA4OjI5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2NtdV9jb21wYXQuaCwgaW5jbHVkZS9uZXQtc25tcC9taWIuaAosIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvcGFyc2UuaCwgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvdWNkX2NvbXBhdC5oLCBzbm1wbGliL2NtdV9jb21wYXQuYywKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIEV4dHJhY3QgQ01VX0NPTVBBVEFCSUxJVFkgY29kZSwgYW5kIGV4cGxpY2l0bHkgZGVwcmVjYXRlZCBVQ0QgY29kZSBpbnRvIHNlcGFyYXRlIGZpbGVzLgogICAKMjAwMi0wMi0xMSAwODoyMyAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfcGFyc2VfYXJncy5jIChWNC0yLXBhdGNoZXMuMiksIHNubXBfcGFyc2VfYXJncy5jCjoKCiAgIFVzZSB0aGUgJ2RzX3NldF94eHgnIGxpYnJhcnkgcm91dGluZXMsIHJhdGhlciB0aGFuIHRoZSBvbGQgJ3NubXBfc2V0X3h4eCcgY2FsbHMKICAgCjIwMDItMDItMTEgMDQ6NDUgIGpicG4KCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwKICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBtaW5vciBzcGVsbGluZyB0d2Vha3MKICAgCjIwMDItMDItMTEgMDQ6MjcgIGpicG4KCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuMy50b3AsIG1pYl9hcGkuMwosIG1pYl9hcGkuMy5kZWYsIHNubXBfYWdlbnRfYXBpLjMsCiAgIHNubXBfYWdlbnRfYXBpLjMuZGVmLCBzbm1wX2FsYXJtLjMsIHNubXBfYWxhcm0uMy5kZWYKLCBzbm1wX2FwaS4zLCBzbm1wX2FwaS4zLmRlZiwgc25tcF9zZXNzX2FwaS4zCiwgc25tcF9zZXNzX2FwaS4zLmRlZiwgc25tcF90cmFwX2FwaS4zLAogICBzbm1wX3RyYXBfYXBpLjMuZGVmLCB2YXJpYWJsZXMuNSwgdmFyaWFibGVzLjUuZGVmCjoKCiAgICAgLSBnZW5lcmF0ZSB0aGUgcmVzdCBvZiB0aGUgbWFudWFsIHBhZ2VzICh0byBnZXQgdmVyc2lvbiBpbiBmb290ZXIpCiAgIAoyMDAyLTAyLTA4IDE1OjU2ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBtaWJfbW9kdWxlX2NvbmZpZy5oLAogICBtaWJfbW9kdWxlX2luaXRzLmgsIGxpYnNubXAvbGlic25tcC5kc3AsCiAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AsIHNubXBkL3NubXBkLmRzcDoKCiAgIHdpbjMyIHNwZWNpZmljIHBvcnRpb25zIG9mIHBhdGNoIDUwMzI1NgogICAKMjAwMi0wMi0wOCAxNTo1MyAgaGFyZGFrZXIKCiAgICogd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcDoKCiAgIHBhdGNoIzUwMzI1NjogaGVscGVycyBsaWJyYXJ5IGRlZmluaXRpb24gZm9yIHdpbjMyCiAgIAoyMDAyLTAyLTA4IDA5OjA4ICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIG1pbm9yIGZvcm1hdCB0d2Vha2FnZQogICAKMjAwMi0wMi0wOCAwODoyMiAgZHRzMTIKCiAgICogbWFuLzogbWliX2FwaS4zLCBzbm1wX2FnZW50X2FwaS4zLCBzbm1wX2FsYXJtLjMKLCBzbm1wX2FwaS4zLCBzbm1wX3Nlc3NfYXBpLjMsIHNubXBfdHJhcF9hcGkuMwo6CgogICBSZWZlcmVuY2UgdGhlIG5ldyBoZWFkZXItZmlsZXMgaW4gc2VjdGlvbiAzIG1hbiBwYWdlIHN5bm9wc2VzLgogICAKMjAwMi0wMi0wOCAwNzo1MCAgamJwbgoKICAgKiBtYW4vOiBtaWJfYXBpLjMsIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wX2FnZW50X2FwaS4zCiwgc25tcF9jb25maWcuNS5kZWYsIHNubXBfdHJhcF9hcGkuMywKICAgc25tcGNtZC4xLmRlZiwgc25tcGNvbmYuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsCiAgIHZhcmlhYmxlcy41OgoKICAgICAtIG1vcmUgbWlub3IgdHdlYWtzICh1Y2Qtc25tcCAtPiBOZXQtU05NUCBldGMuKQogICAKMjAwMi0wMi0wOCAwNzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIGxvY2FsIG1vZHVsZXMgZnJvbSBkZXBlbmRlbmN5IGxpc3QKICAgCjIwMDItMDItMDggMDc6NDUgIGR0czEyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jLCBhZ2VudF9pbmRleC5jLAogICBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF90cmFwLmMKLCBhdXRvX25saXN0LmMsIGtlcm5lbC5jLCBtaWJfbW9kdWxlcy5jLAogICBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCBoZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgaGVscGVycy9pbnN0YW5jZS5jLCBoZWxwZXJzL211bHRpcGxleGVyLmMsCiAgIGhlbHBlcnMvbnVsbC5jLCBoZWxwZXJzL29sZF9hcGkuYywgaGVscGVycy9yZWFkX29ubHkuYwosIGhlbHBlcnMvc2VyaWFsaXplLmMsIGhlbHBlcnMvdGFibGUuYywKICAgaGVscGVycy90YWJsZV9hcnJheS5jLCBoZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIGhlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLAogICBtaWJncm91cC90ZXN0ZGVsYXllZC5jLCBtaWJncm91cC90ZXN0aGFuZGxlci5jLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmMsIG1pYmdyb3VwL1Jtb24vYWd1dGlsLmMsCiAgIG1pYmdyb3VwL1Jtb24vYWxhcm0uYywgbWliZ3JvdXAvUm1vbi9ldmVudC5jLAogICBtaWJncm91cC9SbW9uL2hpc3RvcnkuYywgbWliZ3JvdXAvUm1vbi9yb3dzLmMsCiAgIG1pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jLAogICBtaWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jCiwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwosIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLAogICBtaWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIG1pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsIG1pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jCiwgbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jCiwgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgbWliZ3JvdXAvbWliSUkvYXQuYwosIG1pYmdyb3VwL21pYklJL2ljbXAuYywgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiwgbWliZ3JvdXAvbWliSUkvaXAuYywgbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsCiAgIG1pYmdyb3VwL21pYklJL2lwdjYuYywgbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsCiAgIG1pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLCBtaWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jCiwgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKLCBtaWJncm91cC9taWJJSS90Y3AuYywgbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwosIG1pYmdyb3VwL21pYklJL3VkcC5jLCBtaWJncm91cC9taWJJSS91ZHBUYWJsZS5jCiwgbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYwosIG1pYmdyb3VwL21pc2MvZGxtb2QuYywgbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKLCBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgbWliZ3JvdXAvc211eC9zbXV4LmMsIG1pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywgbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jCiwgbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIG1pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBtaWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMKLCBtaWJncm91cC90dW5uZWwvdHVubmVsLmMsIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYwosIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCBtaWJncm91cC91Y2Qtc25tcC9kbG1vZC5jCiwgbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCBtaWJncm91cC91Y2Qtc25tcC9maWxlLmMKLCBtaWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLCBtaWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMKLCBtaWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMKLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKLCBtaWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMKLCBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBtaWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCBtaWJncm91cC91Y2Qtc25tcC92bXN0YXQuYwosIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYywKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgVXNlIHRoZSBuZXcgJ25ldC1zbm1wLWluY2x1ZGVzJyBzaW5nbGUtaW5jbHVkZSBoZWFkZXIgZmlsZXMsCiAgIGluIHBsYWNlIG9mIHRoZSAodW5pbnN0YWxsZWQpICdtaWJpbmNsLmgnLgogICAgIFdoZWVlZWUuLi4uLi4KICAgCjIwMDItMDItMDggMDc6MTcgIGpicG4KCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmLCBzbm1wX2FnZW50X2FwaS4zLAogICBzbm1wX2FsYXJtLjMsIHNubXBfYXBpLjMsIHNubXBfY29uZmlnLjUuZGVmLAogICBzbm1wX3Nlc3NfYXBpLjMsIHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmLAogICBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgICAgLSBzb21lIGVkaXRpbmcgdG8gbWFrZSBzdHlsZSBjb25zaXN0ZW50LCBhZGQgc29tZSBtaXNzaW5nIG9wdGlvbnMsCiAgICAgICBjaGFuZ2UgdWNkLXNubXAgdG8gTmV0LVNOTVAgYW5kIHRoaW5ncyBsaWtlIHRoYXQuCiAgIAoyMDAyLTAyLTA4IDA3OjE0ICBqYnBuCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgICAgLSBnZW5lcmF0ZSBtYW4gcGFnZXMgYXQgY29tcGlsZSB0aW1lCiAgIAoyMDAyLTAyLTA4IDA3OjE0ICBqYnBuCgogICAqIG1hbi86IHNubXBidWxrZ2V0LjEsIHNubXBidWxrd2Fsay4xLAogICBzbm1wYnVsa2dldC4xLmRlZiwgc25tcGJ1bGt3YWxrLjEuZGVmLCBzbm1wY21kLjEKLCBzbm1wY21kLjEuZGVmLCBzbm1wY29uZi4xLCBzbm1wY29uZi4xLmRlZgosIHNubXBnZXQuMSwgc25tcGdldC4xLmRlZiwgc25tcGdldG5leHQuMSwKICAgc25tcGdldG5leHQuMS5kZWYsIHNubXBzZXQuMSwgc25tcHNldC4xLmRlZiwKICAgc25tcHN0YXR1cy4xLCBzbm1wc3RhdHVzLjEuZGVmLCBzbm1wdGFibGUuMSwKICAgc25tcHRhYmxlLjEuZGVmLCBzbm1wdGVzdC4xLCBzbm1wdGVzdC4xLmRlZiwKICAgc25tcHRyYW5zbGF0ZS4xLCBzbm1wdHJhbnNsYXRlLjEuZGVmLCBzbm1wdHJhcC4xCiwgc25tcHRyYXAuMS5kZWYsIHNubXB1c20uMSwgc25tcHVzbS4xLmRlZiwKICAgc25tcHdhbGsuMSwgc25tcHdhbGsuMS5kZWYsIHNubXB0cmFwZC44LAogICBzbm1wdHJhcGQuOC5kZWY6CgogICAgIC0gcmVuYW1lIG1hbiBwYWdlcyB3aGljaCBhcmUgbm93IGdlbmVyYXRlZCBhdCBjb21waWxlIHRpbWUgaW4gb3JkZXIKICAgICAgIHRvIHBpY2sgdXAgdGhlIHZlcnNpb24gKHdoaWNoIGdldHMgcHV0IGluIHRoZSBmb290ZXIpLgogICAKICAgICAtIGFsc28gc29tZSBlZGl0aW5nIHRvIG1ha2Ugc3R5bGUgY29uc2lzdGVudCwgYWRkIHNvbWUgbWlzc2luZyBvcHRpb25zLAogICAgICAgY2hhbmdlIHVjZC1zbm1wIHRvIE5ldC1TTk1QIGFuZCB0aGluZ3MgbGlrZSB0aGF0LgogICAKMjAwMi0wMi0wOCAwNjo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSkouaDoKCiAgIFJlbW92ZSB0aGUgYXR0ZW1wdGVkICdtaWJJSScgcmUtd3JpdGUuCiAgIElmIHdlIHdhbnQgdG8gdGlkeSB1cCBtaWJJSSwgaXQgbWFrZXMgbW9yZSBzZW5zZSB0byB1c2UgdGhlIG5ldyBhZ2VudCBBUElzLgogICAKMjAwMi0wMi0wOCAwNjo0NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IG5ldC1zbm1wLWluY2x1ZGVzLmgsCiAgIGFnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBCcmluZyBzaW5nbGUtaW5jbHVkZSBoZWFkZXIgZmlsZXMgY2xvc2VyIGluIGxpbmUgd2l0aCB0aGUgZXhpc3RpbmcgIm1pYmluY2wuaCIgZmlsZQogICAKMjAwMi0wMi0wOCAwNjowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXNPUlRhYmxlLmggKFY0LTItcGF0Y2hlcy4xKSwKICAgc3lzT1JUYWJsZS5oOgoKICAgRW5zdXJlIHRoZSBudWxsIHZlcnNpb25zIG9mIHRoZSB0d28gUkVHSVNURVIgbWFjcm9zIHN3YWxsb3cgdGhlaXIgcGFyYW1ldGVycy4KICAgCjIwMDItMDItMDggMDQ6MzYgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEltcGxlbWVudCB0aGUgbWlzc2luZyBvdXRnb2luZyBlcnJvciBzdGF0aXN0aWNzIGNvdW50ZXJzCiAgIChwYXRjaCAjNTEwMTk0IGZyb20gTGF0aGEgUHJhYmh1KQogICAKMjAwMi0wMi0wOCAwMjo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N0b3JhZ2UuYywgdWNkLXNubXAvbWVtb3J5LmMKICAgKFY0LTItcGF0Y2hlcy5bNiwzXSksIGhvc3QvaHJfc3RvcmFnZS5jLCB1Y2Qtc25tcC9tZW1vcnkuYwo6CgogICBBZGRlZCBzdXBwb3J0IGZvciBtZW1vcnkgYW5kIHN3YXAgZW50cmllcyBpbiBoclN0b3JhZ2VUYWJsZSBmb3IgU29sYXJpcwogICAoZnJvbSBwYXRjaCAjNTA1NDk4IC0gdGhhbmtzIHRvIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcikKICAgCjIwMDItMDItMDggMDI6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBDb25zb2xpZGF0ZSBpZGVudGljYWwgTUlCIG9iamVjdCBlbnRyaWVzIChXSU4zMi9ub24tV0lOMzIpCiAgIAoyMDAyLTAyLTA4IDAwOjUwICBqYnBuCgogICAqIG1hbi9SRUFETUU6CgogICAgIC0gcmVtb3ZlIGNocm9uaWNhbGx5IGRhdGVkIHVuaGVscGZ1bCBSRUFETUUKICAgCjIwMDItMDItMDcgMTM6MzMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlcywgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIG1ha2VmaWxlaW5kZXBlbmQucGwsCiAgIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliX21vZHVsZXMuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbgosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbgosIG1hbi9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICByZW1ha2UgbWFrZSdzIE1ha2VmaWxlJ3MgdG8gbWFrZSBiZXR0ZXIgbWFraW5nCiAgIAoyMDAyLTAyLTA3IDEzOjMxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBjaGVjayBsb2NhbCBwYXRoZXMKICAgCjIwMDItMDItMDcgMTI6NTQgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEVuc3VyZSBhZ2VudCByZXR1cm5zIHRoZSBjb3JyZWN0IGVycm9yIGNvZGVzIGZvciBVTkRPIGFuZCBDT01NSVQgZmFpbHVyZXMuCiAgIAoyMDAyLTAyLTA3IDExOjE4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCwgU05NUC54cywgdC9zdGFydGFnZW50LnBsCjoKCiAgIGF0dGVtcHQgYXQgcG9ydGluZyBKb2UncyBTTk1QIG1vZHVsZSB0byBuZXQtc25tcC4KICAgSXQgY29tcGlsZXMsIGJ1dCBvbmx5IHNvbWUgb2YgdGhlIHRlc3RzIHN1Y2NlZWQuCiAgIAoyMDAyLTAyLTA3IDEwOjA5ICBqYnBuCgogICAqIG1hbi86IGRlZmF1bHRfc3RvcmUuMy50b3AsIG1pYl9hcGkuMywKICAgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZiwgc25tcF9hZ2VudF9hcGkuMwosIHNubXBfYWxhcm0uMywgc25tcF9hcGkuMywgc25tcF9jb25maWcuNS5kZWYKLCBzbm1wX3Nlc3NfYXBpLjMsIHNubXBfdHJhcF9hcGkuMywgc25tcGJ1bGtnZXQuMQosIHNubXBidWxrd2Fsay4xLCBzbm1wY29uZi4xLCBzbm1wZC5jb25mLjUuZGVmCiwgc25tcGRlbHRhLjEsIHNubXBkZi4xLCBzbm1wZ2V0LjEsCiAgIHNubXBnZXRuZXh0LjEsIHNubXBuZXRzdGF0LjEsIHNubXBzZXQuMSwKICAgc25tcHN0YXR1cy4xLCBzbm1wdGFibGUuMSwgc25tcHRlc3QuMSwKICAgc25tcHRyYW5zbGF0ZS4xLCBzbm1wdHJhcC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZgosIHNubXB1c20uMSwgc25tcHdhbGsuMSwgdmFyaWFibGVzLjU6CgogICAgIC0gYWRkIE5ldC1TTk1QIGluIGhlYWRlciBvZiBhbGwgbWFuIHBhZ2VzCiAgIAoyMDAyLTAyLTA3IDA5OjUyICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAgIC0gdXBkYXRlIHN0eWxlIHRvIG1hdGNoIHNubXBkIGFuZCBzbm1wdHJhcGQgbWFuIHBhZ2VzCiAgIAoyMDAyLTAyLTA3IDA4OjE1ICBqYnBuCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgICAgLSBmaXggc3BlZWxpbmcgbWlzdGFrZQogICAKMjAwMi0wMi0wNyAwODowMCAgamJwbgoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICAgIC0gYnJpbmcgdXAgdG8gZGF0ZSB3aXRoIHNubXB0cmFwZAogICAKMjAwMi0wMi0wNyAwNzoyOCAgZHRzMTIKCiAgICogUkVBRE1FLmhwdXgxMSwgYWNjb25maWcuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBTdXBwb3J0IGZvciBIUC1VWCAxMSwgY291cnRlc3kgb2YgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyLgogICAKMjAwMi0wMi0wNyAwNjozMCAgamJwbgoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICAgIC0gYWxwaGFiZXRpc2Ugb3B0aW9ucwogICAKICAgICAtIGJyaW5nIG1hbiBwYWdlIGluIGxpbmUgd2l0aCBuZXcgcG9zaXRpb25hbCBhcmd1bWVudHMgbGlzdGVuaW5nCiAgICAgICBhZGRyZXNzIHNwZWNpZmljYXRpb24gYW5kIGFkZCBzZWN0aW9uIGRlc2NyaWJpbmcgdGhhdAogICAKICAgICAtIHB1dCBOZXQtU05NUCBpbiBoZWFkZXIKICAgCjIwMDItMDItMDYgMTA6MDYgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zY2FwaS5oOgoKICAgICAtIGZpeCBidWcgbm90ZWQgYnkgTmllbHMKICAgCjIwMDItMDItMDYgMDk6MjUgIGpicG4KCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYywgc25tcHVzbS5jOgoKICAgICAtIG1pbm9yIHR3ZWFrcyBkdWUgdG8gY2hhbmdlIGluIGRlZmluaXRpb24gb2YgVVNNIE9JRHMuCiAgIAoyMDAyLTAyLTA2IDA5OjE3ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbS5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2My5oCiwgaW5jbHVkZS9uZXQtc25tcC90cmFuc2Zvcm1fb2lkcy5oLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgICAgLSBtb3ZlIFVTTSBPSUQgZGVmaW5pdGlvbnMgaW50byBzbm1wdXNtLmMsIG1ha2UgdGhlbSBjb25zdAogICAKICAgICAtIGNvbnNlcXVlbnQgaW5jcmVhc2UgaW4gY29uc3QtbmVzcyBpbiBzb21lIGZ1bmN0aW9uIHByb3RvdHlwZXMKICAgCjIwMDItMDItMDYgMDk6MTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIHJlbW92ZSBpbnRlcm5hbCBub3RlIGFib3V0IHYzIGFwaSwgd2hpY2ggc2hvdWxkIGJlIHB1YmxpYwogICAKMjAwMi0wMi0wNiAwOToxMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtX2luaXQuaDoKCiAgIHJlbW92ZWQgdW5uZWVkZWQgZmlsZQogICAKMjAwMi0wMi0wNiAwOTowNiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2tleXRvb2xzLmgsIGluY2x1ZGUvbmV0LXNubXAvc2NhcGkuaAosIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9zY2FwaS5jOgoKICAgICAtIGFkZCBjb25zdC1uZXNzIGZvciB0cmFuc2Zvcm0gdHlwZSBhcmdzCiAgIAoyMDAyLTAyLTA2IDA5OjAxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbWliLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9kZWJ1Zy5oCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICAgIC0gYWRkIHNvbWUgY29uc3QtbmVzcyBmb3IgT0lEIGFyZ3MgKG1haW5seSBzbyB0aGF0IGRlYnVnbXNnX29pZCB0YWtlcwogICAgICAgY29uc3QpLgogICAKMjAwMi0wMi0wNiAwODo0NCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaAosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHluaXguaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIFN1cHBvcnQgZm9yIER5bml4L1BUWCA0LjQsIGNvdXJ0ZXN5IG9mIFBhdHJpY2sgSGVzcy4KICAgCjIwMDItMDItMDYgMDc6NDEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbWFrZSBmaXJzdCBhcmd1bWVudCBvZiBzbm1wX2R1cF9vYmppZCgpIGNvbnN0LgogICAKICAgICAtIGJldHRlciBoYW5kbGUgTlVMTCB2YWx1ZXMgaW4gc25tcF9kdXBfb2JqaWQoKS4KICAgCjIwMDItMDItMDYgMDc6MDkgIGR0czEyCgogICAqIEZBUSwgbWFuL3NubXBfdHJhcF9hcGkuMzoKCiAgIENsYXJpZnkgdGhlIGFwcGxpY2FiaWxpdHkgb2YgJ3NubXBfdHJhcF9hcGkoMyknIHJvdXRpbmVzIHRvIEFnZW50WCBzdWJhZ2VudHMuCiAgIAoyMDAyLTAyLTA2IDA1OjU4ICBkdHMxMgoKICAgKiBhcHBzLzogZW5jb2RlX2tleWNoYW5nZS5jLCBub3RpZmljYXRpb25fbG9nLmMsCiAgIHNubXBidWxrZ2V0LmMsIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywKICAgc25tcGRmLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jCiwgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywKICAgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywKICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXB0cmFwZF9sb2cuYywgc25tcHVzbS5jCiwgc25tcHZhY20uYywgc25tcHdhbGsuYywgc25tcG5ldHN0YXQvaWYuYwosIHNubXBuZXRzdGF0L2luZXQuYywgc25tcG5ldHN0YXQvaW5ldDYuYywKICAgc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgQXBwbGljYXRpb25zIGFtZW5kZWQgdG8gdXNlIHRoZSBuZXctc3R5bGUgbGlicmFyeSBoZWFkZXIgc3RydWN0dXJlLgogICAoSW4gbW9zdCBjYXNlcywgc2ltcGx5IGluY2x1ZGluZyB0aGUgc2luZ2xlICJmdWxsIEFQSSIgaGVhZGVyIGZpbGUpCiAgIAoyMDAyLTAyLTA2IDA1OjU1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogYXNuMS5oLCBjb25maWdfYXBpLmgsCiAgIGRlZmluaXRpb25zLmgsIGxvZ2dpbmdfYXBpLmgsIG1pYl9hcGkuaCwKICAgbmV0LXNubXAtaW5jbHVkZXMuaCwgcGR1X2FwaS5oLCBzZXNzaW9uX2FwaS5oLAogICBzbm1wdjNfYXBpLmgsIHR5cGVzLmgsIHV0aWxpdGllcy5oLCB2YXJiaW5kX2FwaS5oCjoKCiAgIEZyYW1ld29yayBmb3IgbmV3IGxpYnJhcnkgaGVhZGVyIGZpbGUgb3JnYW5pc2F0aW9uLCB3aXRoIGVpZ2h0IG1haW4gZ3JvdXBzCiAgIG9mIEFQSSByb3V0aW5lcy4gIEN1cnJlbnRseSB0aGVzZSBzdGlsbCByZWZlciB0byB0aGUgVUNELXN0eWxlIHN0eWxlIGhlYWRlcgogICBmaWxlcyBmb3IgdGhlIGFjdHVhbCBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuCiAgIAoyMDAyLTAyLTA2IDA1OjMxICBqYnBuCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgICAgLSByZXBsYWNlIHVzZSBvZiAkPCB3aXRoIGV4cGxpY2l0IGZpbGVuYW1lLCBzaW5jZSBub24tR05VIG1ha2VzIHNlZW0KICAgICAgIHRvIGJhcmYgb24gaXQKICAgCjIwMDItMDItMDYgMDM6MzEgIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgRml4IGluY29ycmVjdCBkaXJlY3Rvcnkgc3BlY2lmaWNhdGlvbiBpbiAnbWFrZSBjbGVhbicKICAgCjIwMDItMDItMDYgMDM6MTggIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBQcm90ZWN0IHRoZSBwcm9qZWN0IGNvbmZpZyBmaWxlIGFnYWluc3QgbXVsdGlwbGUgaW5jbHVzaW9uLgogICAKMjAwMi0wMi0wNiAwMzowNyAgamJwbgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICAgIC0gcmVtb3ZlICNpbmNsdWRlICIuLi9zbm1wbGliL3N5c3RlbS5oIiB3aGljaCBubyBsb25nZXIgZXhpc3RzIGFuZAogICAgICAgaXMgYXBwYXJlbnRseSB1bm5lY2Vzc2FyeSBhbnl3YXkuCiAgIAoyMDAyLTAyLTA2IDAyOjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgICAgLSByZW1vdmUgI2luY2x1ZGUgIi4uLy4uL3NubXBsaWIvc3lzdGVtLmgiIHdoaWNoIG5vIGxvbmdlciBleGlzdHMKICAgICAgIGFuZCBpcyBhcHBhcmVudGx5IHVubmVjZXNzYXJ5IGFueXdheS4KICAgCjIwMDItMDItMDUgMTE6NDQgIGhhcmRha2VyCgogICAqIENPUFlJTkcgKFY0LTItcGF0Y2hlcy43KSwgQ09QWUlORzoKCiAgIGNvcHlyaWdodCB5ZWFyIHVwZGF0ZSBmb3IgTkFJIGFuZCBDYW1icmlkZ2UKICAgCjIwMDItMDItMDUgMDk6NTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBwZXJsIGZpeGVzCiAgIAoyMDAyLTAyLTA1IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmgKLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIG1vdmUgdGhlIG9pZHRyZWVfY29tcGFyZSBmdW5jdGlvbiB0bwogICB0aGUgbWFpbiBsaWJyYXJ5LgogICAKMjAwMi0wMi0wNSAwOTo1MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCjoKCiAgIHBlcmwgYnVpbGQgZml4ZXMuCiAgIAoyMDAyLTAyLTA1IDA3OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIG9wcHMuICBSZW1vdmVkIGZvcmNlZCBwZXJsIGVtYmVkZGluZwogICAKMjAwMi0wMi0wNCAxNjoyMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHRoaXMgZmlsZSBzaG91bGRuJ3QgYmUgY2hlY2tlZCBpbgogICAKMjAwMi0wMi0wNCAxNjoyMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvc25tcF9wZXJsLmMKLCBhZ2VudC9zbm1wX3BlcmwucGwsIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBTdXBwb3J0IGZvciBlbWJlZGRpbmcgcGVybCBzdWJyb3V0aW5lcyBpbnRvIHRoZSBhZ2VudCB0byBiZSBjYWxsZWQKICAgICBhcyBoYW5kbGVycy4KICAgLSBOZXcgY29uZmlndXJlIG9wdGlvbnM6CiAgICAgLS13aXRoLXBlcmwtbW9kdWxlcyBhdHRlbXB0cyB0byBidWlsZCBjb250YWluZWQgbW9kdWxlcyAocG9vcmx5IGN1cnJlbnRseSkuCiAgICAgLS1lbmFibGUtZW1iZWRkZWQtcGVybCBhY3R1YWxseSBzcGVjaWZpZXMgdG8gZG8gcGVybCBlbWJlZGRpbmcKICAgICB3aXRoaW4gdGhlIGFnZW50LgogICAKMjAwMi0wMi0wNCAxNjoxNiAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9BU04ucG0sIEFTTi9BU04ueHMsIEFTTi9DaGFuZ2VzLAogICBBU04vTUFOSUZFU1QsIEFTTi9NYWtlZmlsZS5QTCwgQVNOL3Rlc3QucGwsCiAgIGFnZW50L0NoYW5nZXMsIGFnZW50L01BTklGRVNULCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvYWdlbnQucG0sIGFnZW50L2FnZW50LnhzLCBhZ2VudC90ZXN0LnBsLAogICBhZ2VudC90eXBlbWFwLCBkZWZhdWx0X3N0b3JlL0NoYW5nZXMsCiAgIGRlZmF1bHRfc3RvcmUvTUFOSUZFU1QsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzLCBkZWZhdWx0X3N0b3JlL3Rlc3QucGwsCiAgIGRlZmF1bHRfc3RvcmUvdHlwZW1hcDoKCiAgIEJlZ2lubmluZ3Mgb2YgbmV3IHBlcmwgbW9kdWxlcyBuZWVkZWQgdG8gaW1wbGVtZW50IGFuIFNOTVAgYWdlbnQgKG9yCiAgIGFnZW50eCBzdWJhZ2VudCkgaW5zaWRlIHBlcmwuCiAgICAgLSBub3QgY29tcGxldGUgeWV0LgogICAgIC0gbWF5IGNoYW5nZS4KICAgICAtIGJ1dCB3b3Jrcy4KICAgCjIwMDItMDItMDQgMDQ6MzkgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBjb3JyZWN0IHByb2Nlc3NpbmcgZm9yIHRpbWV0aWNrcyB3aGVuIERTX0xJQl9OVU1FUklDX1RJTUVUSUNLUyBpcwogICAgICAgc2V0IChjb3JyZWN0cyBidWcgIzUxMTc5MywgcmVwb3J0ZWQgYnkgQW5vbnltb3VzKS4KICAgCjIwMDItMDItMDEgMDE6NTAgIGR0czEyCgogICAqIEZBUToKCiAgIENsYXJpZnkgdGhlIHByb2NlZHVyZSBmb3IgY29tcGlsaW5nIHdpdGggJ2NjJyByYXRoZXIgdGhhbiAnZ2NjJwogICAKMjAwMi0wMS0zMSAxNDo1OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgcy9zbm1wbGliXC8vLzsKICAgCjIwMDItMDEtMzEgMDY6NTUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgZml4IG1ha2UgY2xlYW4gYXMgcmVwb3J0ZWQgYnkgQnJhZGxleSBCb3phcnRoLgogICAKMjAwMi0wMS0zMCAwODowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIEJyaW5nIE1JQiB2YXJpYWJsZSB2ZXJzaW9uVGFnIGludG8gbGluZSB3aXRoIHRoZSBuZXcgPG5ldC1zbm1wL3ZlcnNpb24uaD4gdXNhZ2UKICAgCjIwMDItMDEtMjkgMTc6NTMgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCwgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaCwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmgsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICBNb3ZlZCB2ZXJzaW9uaW5nIGluZm9ybWF0aW9uIGZyb20gdmVyc2lvbi5oIHRvOgogICAgIC0gc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKICAgICAgIC0gZGVmaW5lIG5ldHNubXBfZ2V0X3ZlcnNpb24oKTsKICAgICAgIC0gY3JlYXRlIGEgY29uc3QgY2hhciAqTmV0U25tcFZlcnNpb25JbmZvCiAgICAgLSBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaDoKICAgICAgIC0gZXh0ZXJuIHRoZSBhYm92ZSBjaGFyICoKICAgICAgIC0gcHJvdG90eXBlIHRoZSBmdW5jdGlvbgogICAgIC0gaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmg6CiAgICAgICAtIGNyZWF0ZSBhIHN0YXRpYyB2YXJpYWJsZSAodGhlIG9sZCB3YXkpIGFuZCBzZXQgaXQgdG8gTmV0U25tcFZlcnNpb25JbmZvCiAgIAoyMDAyLTAxLTI5IDE2OjA5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogZXZhbF90b29scy5zaCwgdGVzdHMvVDA0OXNubXB2M2luZm9ybSwKICAgdGVzdHMvVDA1MHNubXB2M3RyYXAsIHRlc3RzL1QwNTFzbm1wdjJjdHJhcCwKICAgdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sIHRlc3RzL1QwNTNhZ2VudHYxdHJhcCwKICAgdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLAogICB0ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLCB0ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCwKICAgdGVzdHMvVDExM2FnZW50eHRyYXA6CgogICB0cmFwIHRlc3QgZml4ZXMgc28gdGhlIG1ham9yaXR5IG9mIHRoZSB0ZXN0cyBub3cgd29yay4KICAgCjIwMDItMDEtMjkgMTY6MDggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgZG9uJ3QgZ2VuZXJhdGUgdWNkLXNubXAtY29uZmlnLmggYW55IGxvbmdlci4KICAgCjIwMDItMDEtMjkgMTU6MjMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL25ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkLmgKLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGkzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGk0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2N5Z3dpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaXJpeC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taXBzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi43LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3Vub3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3ZyNS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zeXN2LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3VsdHJpeDQuaDoKCiAgIG1vdmVkIHMvKi5oIGZpbGVzIHRvIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLyouaAogICBtb3ZlZCBtL2dlbmVyaWMuaCBmaWxlcyB0byBpbmNsdWRlL25ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oCiAgIAoyMDAyLTAxLTI5IDA5OjI0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZml4IC1jIGFyZ3VtZW50IHBhcnNpbmcuCiAgIAoyMDAyLTAxLTI5IDA5OjEwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICByZWZlcmVuY2UgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBpbnN0ZWFkIG9mIGp1c3QgY29uZmlnLmgKICAgCjIwMDItMDEtMjkgMDk6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgYXR0ZW1wdCB0byBmaXggdGhlIHVua25vd24gZW5naW5laWQvdW5rbm93biB1c2VyIHByb2JsZW1zIG9uY2UgYW5kIGZvciBhbGwuCiAgIAoyMDAyLTAxLTI4IDIxOjExICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHdob29wcy4gIE1pc3NlZCBzb21lIC5oIGZpbGUgY2hlY2tzIGluIGNvbmZpZ3VyZS4gIFRoYW5rcyBSb2JlcnQuCiAgIAoyMDAyLTAxLTI4IDIxOjAzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9jb252ZXJ0Y29kZToKCiAgIG1pbm9yIGZpeC4KICAgCjIwMDItMDEtMjggMjE6MDIgIGhhcmRha2VyCgogICAqIGxvY2FsL2NvbnZlcnRjb2RlOgoKICAgYWRkZWQgY29kZSBjb252ZXJ0IHNjcmlwdCBmb3IgdWNkLXNubXAgLT4gbmV0LXNubXAgaGVhZGVyIGNvbnZlcnNpb24KICAgCjIwMDItMDEtMjggMjA6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsCiAgIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLAogICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jCiwgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMKLCBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYwosIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgaW5jbHVkZS9uZXQtc25tcC9hc24xLmgKLCBpbmNsdWRlL25ldC1zbm1wL2NhbGxiYWNrLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9saXN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvZGVmYXVsdF9zdG9yZS5oLCBpbmNsdWRlL25ldC1zbm1wL2dldG9wdC5oCiwgaW5jbHVkZS9uZXQtc25tcC9pbnQ2NC5oLCBpbmNsdWRlL25ldC1zbm1wL2tleXRvb2xzLmgKLCBpbmNsdWRlL25ldC1zbm1wL2xjZF90aW1lLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlic25tcC5oLCBpbmNsdWRlL25ldC1zbm1wL21kNS5oLAogICBpbmNsdWRlL25ldC1zbm1wL21pYi5oLCBpbmNsdWRlL25ldC1zbm1wL210X3N1cHBvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9vaWRfYXJyYXkuaCwgaW5jbHVkZS9uZXQtc25tcC9vaWRfc3Rhc2guaAosIGluY2x1ZGUvbmV0LXNubXAvcGFyc2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9yZWFkX2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL3NjYXBpLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXAtdGMuaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcElQWERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBUQ1BEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVRFBEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVbml4RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hbGFybS5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfY2xpZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9kZWJ1Zy5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfZW51bS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2ltcGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2xvY2tpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2xvZ2dpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3NlY21vZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfdHJhbnNwb3J0LmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcGtzbS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbV9pbml0LmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzLmgKLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS5oLCBpbmNsdWRlL25ldC1zbm1wL3Rvb2xzLmgKLCBpbmNsdWRlL25ldC1zbm1wL3RyYW5zZm9ybV9vaWRzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvdmFjbS5oLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaAosIG1hbi9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvYXNuMS5oLCBzbm1wbGliL2NhbGxiYWNrLmMKLCBzbm1wbGliL2NhbGxiYWNrLmgsIHNubXBsaWIvZGF0YV9saXN0LmMsCiAgIHNubXBsaWIvZGF0YV9saXN0LmgsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9nZXRvcHQuaCwKICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2ludDY0LmgsIHNubXBsaWIva2V5dG9vbHMuYwosIHNubXBsaWIva2V5dG9vbHMuaCwgc25tcGxpYi9sY2RfdGltZS5jLAogICBzbm1wbGliL2xjZF90aW1lLmgsIHNubXBsaWIvbGlic25tcC5oLCBzbm1wbGliL21kNS5jCiwgc25tcGxpYi9tZDUuaCwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaAosIHNubXBsaWIvbXRfc3VwcG9ydC5jLCBzbm1wbGliL210X3N1cHBvcnQuaCwKICAgc25tcGxpYi9vaWRfYXJyYXkuYywgc25tcGxpYi9vaWRfYXJyYXkuaCwKICAgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9vaWRfc3Rhc2guaCwKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5oLAogICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc2NhcGkuaCwgc25tcGxpYi9zbm1wLXRjLmMKLCBzbm1wbGliL3NubXAtdGMuaCwgc25tcGxpYi9zbm1wLmMsCiAgIHNubXBsaWIvc25tcC5oLCBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uaCwgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwosIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmgsIHNubXBsaWIvc25tcElQWERvbWFpbi5jCiwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmgsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVENQRG9tYWluLmgsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uaCwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBEb21haW4uaCwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5oLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMKLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmgsIHNubXBsaWIvc25tcF9hbGFybS5jCiwgc25tcGxpYi9zbm1wX2FsYXJtLmgsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9jbGllbnQuaCwKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5oLAogICBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXBfZW51bS5oLAogICBzbm1wbGliL3NubXBfaW1wbC5oLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5oLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5oLCBzbm1wbGliL3NubXBfc2VjbW9kLmMsCiAgIHNubXBsaWIvc25tcF9zZWNtb2QuaCwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmgsIHNubXBsaWIvc25tcGtzbS5jLAogICBzbm1wbGliL3NubXBrc20uaCwgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHVzbS5oLCBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3NubXB2My5oCiwgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwKICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3Rvb2xzLmgsCiAgIHNubXBsaWIvdHJhbnNmb3JtX29pZHMuaCwgc25tcGxpYi92YWNtLmMsCiAgIHNubXBsaWIvdmFjbS5oLCB0ZXN0aW5nL1JVTlRFU1RTLAogICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsIGluY2x1ZGUvdWNkLXNubXAvYXNuMS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2NhbGxiYWNrLmgsIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9pbnQ2NC5oLCBpbmNsdWRlL3VjZC1zbm1wL2tleXRvb2xzLmgKLCBpbmNsdWRlL3VjZC1zbm1wL21pYi5oLCBpbmNsdWRlL3VjZC1zbm1wL21pYmluY2wuaAosIGluY2x1ZGUvdWNkLXNubXAvcGFyc2UuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9yZWFkX2NvbmZpZy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NjYXBpLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAtdGMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWxhcm0uaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FwaS5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfY2xpZW50LmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfZGVidWcuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2xvZ2dpbmcuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF92YXJzLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcHVzbS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdjMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zeXN0ZW0uaAosIGluY2x1ZGUvdWNkLXNubXAvdG9vbHMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC90cmFuc2Zvcm1fb2lkcy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3V0aWxfZnVuY3MuaDoKCiAgIE1ham9yIGZpbGUgbW92aW5nIGFuZCBlZGl0aW5nIG9mIGluY2x1ZGUgZGlyZWN0aXZlcy4KICAgICAtIGVzc2VudGlhbGx5IGFkZHMgdXAgdG86CiAgICAgICAtIG12IHNubXBsaWIvKi5oIGluY2x1ZGUvbmV0LXNubXAvCiAgICAgICAtIGxvY2FsL2NvbnZlcnRjb2RlIGBmaW5kIC4gLW5hbWUgXCouYyBcKi5oYAogICAKMjAwMi0wMS0yOCAyMDo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMsIGFnZW50X2luZGV4LmMsCiAgIGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3RyYXAuYwosIGF1dG9fbmxpc3QuYywga2VybmVsLmMsIG1pYl9tb2R1bGVzLmMsCiAgIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsCiAgIGhlbHBlcnMvYnVsa190b19uZXh0LmMsIGhlbHBlcnMvZGVidWdfaGFuZGxlci5jLAogICBoZWxwZXJzL2luc3RhbmNlLmMsIGhlbHBlcnMvbXVsdGlwbGV4ZXIuYywKICAgaGVscGVycy9udWxsLmMsIGhlbHBlcnMvb2xkX2FwaS5jLCBoZWxwZXJzL3JlYWRfb25seS5jCiwgaGVscGVycy9zZXJpYWxpemUuYywgaGVscGVycy90YWJsZS5jLAogICBoZWxwZXJzL3RhYmxlX2FycmF5LmMsIGhlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBoZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIG1pYmdyb3VwL2hvc3RfcmVzLmgsCiAgIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgbWliZ3JvdXAvbWliaW5jbC5oLAogICBtaWJncm91cC90ZXN0ZGVsYXllZC5jLCBtaWJncm91cC90ZXN0aGFuZGxlci5jLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmMsIG1pYmdyb3VwL1Jtb24vYWxhcm0uYywKICAgbWliZ3JvdXAvUm1vbi9ldmVudC5jLCBtaWJncm91cC9SbW9uL2hpc3RvcnkuYywKICAgbWliZ3JvdXAvUm1vbi9yb3dzLmMsIG1pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwosIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLAogICBtaWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsIG1pYmdyb3VwL2hvc3QvaHJfZGlzay5jCiwgbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBtaWJncm91cC9ob3N0L2hyX3N3aW5zdC5jCiwgbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jCiwgbWliZ3JvdXAvbWliSUkvYXQuYywgbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL21pYklJL2lwLmMsCiAgIG1pYmdyb3VwL21pYklJL2lwQWRkci5jLCBtaWJncm91cC9taWJJSS9pcHY2LmMsCiAgIG1pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLCBtaWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jCiwgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKLCBtaWJncm91cC9taWJJSS90Y3AuYywgbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwosIG1pYmdyb3VwL21pYklJL3VkcC5jLCBtaWJncm91cC9taWJJSS91ZHBUYWJsZS5jCiwgbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuaAosIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBtaWJncm91cC9taXNjL2RsbW9kLmMKLCBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgbWliZ3JvdXAvc211eC9zbXV4LmMsIG1pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywgbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYwosIG1pYmdyb3VwL3NubXB2My91c21Vc2VyLmg6CgogICBNYWpvciBmaWxlIG1vdmluZyBhbmQgZWRpdGluZyBvZiBpbmNsdWRlIGRpcmVjdGl2ZXMuCiAgICAgLSBlc3NlbnRpYWxseSBhZGRzIHVwIHRvOgogICAgICAgLSBtdiBzbm1wbGliLyouaCBpbmNsdWRlL25ldC1zbm1wLwogICAgICAgLSBsb2NhbC9jb252ZXJ0Y29kZSBgZmluZCAuIC1uYW1lIFwqLmMgXCouaGAKICAgCjIwMDItMDEtMjggMTk6NDIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtY29uZmlnLmg6CgogICByZW1vdmUgVUNEX0NPTVBBVCBmbGFnIGFuZCBERUZJTkUgSVQgaW5zdGVhZAogICAKMjAwMi0wMS0yOCAxOTo0MSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1jb25maWcuaDoKCiAgIHJlbW92ZSBVQ0RfQ09NUEFUIGZsYWcgYW5kIGRlZmluZSBpdCBpbnN0ZWFkCiAgIAoyMDAyLTAxLTI1IDExOjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBwYXJzZV9vbmVfb2lkX2luZGV4OgogICAgIC0gdXNlIGFuIHVuc2lnbmVkIGludCBmb3IgbGVuZ3RoJ3MgcHVsbGVkIGZyb20gdGhlIG9pZC4KICAgICAtIE1ha2Ugc3VyZSB0aGV5J3JlIGFsd2F5cyA8IDEyOAogICAKMjAwMi0wMS0yNSAwOToxMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgICAtIGNsb3NlciBhZGhlcmVuY2UgdG8gc3RhdGUgbWFjaGluZXMgZGVzY3JpYmVkIGluIFJGQyAyNTc0CiAgIAoyMDAyLTAxLTI1IDA5OjEwICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIGNhdXNlIHVzbURlY3J5cHRpb25FcnJvciByZXBvcnRzIHRvIGJlIHNlbnQgaW4gYSBjb3VwbGUgb2YgZXh0cmEKICAgICAgIGNhc2VzOiBiYWQgc2FsdCAobGVuZ3RoICE9IDgpIGFuZCBsZW5ndGggb2YgZW5jcnlwdGVkIGRhdGEgbm90IGEKICAgICAgIG11bHRpcGxlIG9mIDggb2N0ZXRzIChwZXIgUkZDIDI1NzQpLgogICAKMjAwMi0wMS0yNSAwOTowNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZm9yIHVua25vd24gbWVzc2FnZSB0eXBlcywgaW5jcmVtZW50IHNubXBJbkFTTlBhcnNlRXJycyBhbmQgZmFpbAogICAgICAgYXQgdGhlIHBvc3QtcGFyc2Ugc3RhZ2UuCiAgIAogICAgIC0gZm9yIG5vdGlmaWNhdGlvbiB0eXBlcywgaW5jcmVtZW50IHNubXBVbmtub3duUERVSGFuZGxlcnMgYW5kIGJhaWwKICAgICAgIG91dCBlYXJseS4KICAgCjIwMDItMDEtMjUgMDk6MDEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGZvciB1bmhhbmRsZWQgbWVzc2FnZXMgKGUuZy4gUkVTUE9OU0UgbWVzc2FnZXMgc2VudCB0byBhZ2VudHMpLAogICAgICAgaW5jcmVtZW50IHRoZSBzbm1wVW5rbm93blBEVUhhbmRsZXJzIGNvdW50ZXIuCiAgIAogICAgIC0gdHJ5IHRvIGZyZWUgc2VjdXJpdHlTdGF0ZVJlZnMgd2hlbiBwb3N0LXBhcnNlIGZhaWxzLgogICAKMjAwMi0wMS0yNSAwNjoyNiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jIChWNC0yLXBhdGNoZXMuNiksIHZhY21fdmFycy5jCjoKCiAgICAgLSBmaXggbWlub3IgcHJvYmxlbSB3aXRoIHN0b3JhZ2VUeXBlIChhbHdheXMgb2theSB0byBzZXQgdG8gY3VycmVudAogICAgICAgdmFsdWUpLgogICAKICAgICAtIGRvbid0IHJlc2V0IHNvbWUgdmFyaWFibGVzIHRvIG9sZCB2YWx1ZSB1bmxlc3Mgd2UgYWN0dWFsbHkgc2V0CiAgICAgICB0aGVtIGluIHRoZSBmaXJzdCBwbGFjZSEKICAgCjIwMDItMDEtMjUgMDU6MDAgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgICAtIGRvbid0IHByaW50IG91dCBkZWJ1Z2dpbmcgaW5mbyBpbiBhIGZ1cnRoZXIgY2FzZSB3aGVyZSBpdCBoYXMgYmVlbgogICAgICAgZnJlZSgpZC4KICAgCiAgICAgLSBzZXQgdGhlIGV4Y2VwdGlvbiBub1N1Y2hJbnN0YW5jZSByYXRoZXIgdGhhbiBlcnJvciBub1N1Y2hOYW1lIHdoZW4KICAgICAgIHdlIGhhdmUgdGhlIGluY29ycmVjdCBudW1iZXIgb2YgaW5kaWNlcy4KICAgCjIwMDItMDEtMjUgMDQ6NTQgIGR0czEyCgogICAqIHNubXBsaWIvUkVBRE1FLm5ld2xpYjoKCiAgIGZpbGUgUkVBRE1FLm5ld2xpYiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctTElCUkFSWS1BUEkuCiAgIAoyMDAyLTAxLTI1IDA0OjQ5ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgICAgLSBtb3ZlIGRlYnVnZ2luZyBvdXRwdXQgdG8gYmVmb3JlIHdoZXJlIChwb3RlbnRpYWxseSkgdGhlIGRhdGEgaXQgaXMKICAgICAgIHRyeWluZyB0byBwcmludCBnZXRzIGZyZWUoKWQuCiAgIAoyMDAyLTAxLTI1IDA0OjQwICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBrZWVwIGFzcC0+dmJjb3VudCBjb3JyZWN0IGluIGNyZWF0ZV9zdWJ0cmVlX2NhY2hlKCkgaWYgd2UgZHVtcAogICAgICAgdmFyYmluZHMgaW4gdGhlIEdFVE5FWFQgY2FzZSBiZWNhdXNlIG51bXZhcmJpbmRzID4gbm9uLXJlcGVhdGVycy4KICAgICAgIEZhaWxpbmcgdG8gZG8gdGhpcyB3aWxsIGNhdXNlIHByb2JsZW1zIGxhdGVyIHdoZW4geW91IGl0ZXJhdGUgb3ZlcgogICAgICAgMCAuLiBhc3AtPnZiY291bnQgLSAxIGluIHJlYXNzaWduX3JlcXVlc3RzKCkuCiAgIAoyMDAyLTAxLTI0IDE1OjExICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgdXBkYXRlIG1hY3JvcyB0byBwdXQgcGFyZW5zIGFyb3VuZCBwYXJhbWV0ZXJzIHdoZW4gdXNlZCwgaW4gY2FzZSBhIHBhcmFtZXRlciBpcyBhbiBleHByZXNzaW9uLCB3aGljaCBtaWdodCBtdWNrIGFib3V0IHdpdGggb3BlcmF0b3IgcHJlY2VkZW5jZSBydWxlcyBhbmQgY2F1c2UgdW5leHBlY3RlZCBhbmQgdW5kZXNpcmFibGUgYmVoYXZpb3IuCiAgIAoyMDAyLTAxLTI0IDExOjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdHJ5IHRvIGZpbmQgJiBoYW5kbGUgZXh0ZXJuYWwgaW5kZXhlczsgdXNlIG5ldyBzdHlsZSBuZXQtc25tcCBpbmNsdWRlczsgYWRkCiAgIHJvd19jb3B5OyB1c2UgY29udGV4dCB0eXBlcyAmIGNhc3RzIGluIHBhcmFtZXRlcnMgaW5zdGVhZCBvZiBnZW5lcmljIHR5cGVzCiAgIHJlY2FzdCBpbnNpZGUgbWV0aG9kCiAgIAoyMDAyLTAxLTI0IDA2OjAzICBqYnBuCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jIChWNC0yLXBhdGNoZXMuMyksIHJlYWRfY29uZmlnLmM6CgogICAgIC0gYXZvaWQgZm9ybWF0IHN0cmluZyBuYXN0aWVzIGluIHJlYWRfY29uZmlnX3N0b3JlKCkgd2hlbiB3cml0aW5nIHRvCiAgICAgICBmaWxlcyAoZXhwb3NlZCBlLmcuIGJ5IHRoZSBwZXJzaXN0ZW50IHN5c05hbWUuMCBzdHVmZiAtLSB0cnkKICAgICAgIHNubXBzZXQgaG9zdCBzeXNOYW1lLjAgcyAiJTA4eCIgLS0gb29wcykKICAgCjIwMDItMDEtMjQgMDQ6MzQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gZG9uJ3QgYXV0b21hdGljYWxseSBhY2NlcHQgYSBtc2dVc2VyTmFtZSBvZiAiIiB3aGVuIHByb2Nlc3NpbmcKICAgICAgIGluY29taW5nIG1lc3NhZ2VzLgogICAKMjAwMi0wMS0yNCAwNDozMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gYmlnZ2VyIGJ1ZmZlciBmb3IgbXNnQXV0aG9yaXRhdGl2ZUVuZ2luZUlEIGZpZWxkIHNpbmNlIGl0IGlzIG5vdAogICAgICAgbGltaXRlZCB0byAzMiBieXRlcyBsaWtlIFNubXBFbmdpbmVUQy4gIFJlYWxseSB0aGlzIG5lZWRzIHRvIGJlCiAgICAgICBhbGxvY2F0ZWQgYnkgdGhlIHNlY3VyaXR5IG1vZHVsZSBidXQgZm9yIG5vdyB3ZSdsbCBqdXN0IG1ha2UgaXQKICAgICAgIHR3aWNlIGFzIGJpZy4KICAgCjIwMDItMDEtMjQgMDM6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgc25tcGxpYi9zbm1wLXRjLmM6CgogICBBSVggc3VwcG9ydCBmb3IgdGhlIEhvc3QgUmVzb3VyY2VzIG1vZHVsZS4KICAgICAgKFRoYW5rcyB0byBBbmR5IEhvb2QpCiAgIAoyMDAyLTAxLTIzIDA4OjI4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIHNldCB2aWV3VHlwZSB0byB0aGUgREVGVkFMIGluY2x1ZGVkKDEpIGZvciBuZXcgcm93cwogICAKMjAwMi0wMS0yMyAwNzo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gc2VjTW9kZWwgb2YgMCBpcyBhIHBhcnNlIGVycm9yIGluIEhlYWRlckRhdGEKICAgCjIwMDItMDEtMjMgMDc6MjMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGJlIGNhcmVmdWwgdG8gZnJlZSBzZWN1cml0eVN0YXRlUmVmIGluIGEgY291cGxlIG9mIGVycm9yIGNhc2VzIGluCiAgICAgICBzbm1wdjNfcGFyc2UgLS0gZml4ZXMgbWVtb3J5IGxlYWtzIHdoZW4gbWFsZm9ybWVkIFBEVXMgYXJlCiAgICAgICByZWNlaXZlZC4KICAgCjIwMDItMDEtMjIgMTk6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIGNoZyBhcGkgZm9yIHNubXBfb2lkX25jb21wYXJlLCBkb24ndCBpbXBsZW1lbnQgaXQgdmkgc25tcF9vaWRfY29tcGFyZQogICAKMjAwMi0wMS0yMiAxOTo0NiAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBvaWRfYXJyYXkuYywgb2lkX2FycmF5Lmg6CgogICBhZGQgR2V0X29pZF9kYXRhX2NvdW50KCk7IGFkZCBzdWJzZXQgc3VwcG9ydAogICAKMjAwMi0wMS0yMiAxOTo0NCAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmg6CgogICBhZGQgbmV0c25tcF9zdHIyb2lkKCkKICAgCjIwMDItMDEtMjIgMTk6NDEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBhZGQgc3Vic2V0IGZ1bmN0aW9uCiAgIAoyMDAyLTAxLTIyIDE5OjQwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgYWRkIHN1YnNldCBmdW5jdGlvbjsgYWRkIHByZWxpbWluYXJ5IGxvY2tpbmcgY29kZTsgYWRkIHRhX2NoZWNrX3Jvd19zdGF0dXMKICAgCjIwMDItMDEtMjIgMDY6MzMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAoVjQtMi1wYXRjaGVzLjQpLCB2YWNtX3ZhcnMuYwo6CgogICAgIC0gZml4IGJ1ZyBqdXN0IGludHJvZHVjZWQgd2hlcmUgc2V0dGluZyBhbiBleGlzdGluZyByb3cncyBzdGF0dXMgdG8KICAgICAgIGNyZWF0ZUFuZEdvKDQpIG9yIGNyZWF0ZUFuZFdhaXQoNSkgd291bGQgZGVsZXRlIHRoZSByb3cuCiAgIAoyMDAyLTAxLTIyIDA0OjU4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIGNhdXNlIGEgcGFyc2UgZXJyb3IgaWYgd2UgcmVjZWl2ZSBVc21TZWN1cml0eVBhcmFtZXRlcnMgd2l0aCBhCiAgICAgICBtc2dVc2VyTmFtZSB0aGF0IGlzIGlsbGVnYWxseSBsb25nLgogICAKMjAwMi0wMS0yMiAwMzoxMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICAgIC0gb29wcywgbGVmdCBvbGQgY29kZSBpbiAjaWYgMCBicmFuY2ggQUdBSU4uICBJIGFtIGdldHRpbmcgaW50byBiYWQKICAgICAgIGhhYml0cyEKICAgCjIwMDItMDEtMjIgMDM6MDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVha3MgaW4gcm93IGNyZWF0aW9uL2Rlc3RydWN0aW9uCiAgIAogICAgIC0gbW9yZSBhZ2dyZXNzaXZlIHZhbGlkaXR5IGNoZWNraW5nIG9mIHNubXBOb3RpZnlUYWcsIHNubXBOb3RpZnlUeXBlCiAgICAgICBhbmQgc25tcE5vdGlmeVN0b3JhZ2VUeXBlLgogICAKICAgICAtIHBhc3NlcyA2LjUuMS4wIC0tIDYuNS44LjMKICAgCjIwMDItMDEtMjIgMDE6NDcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5Lmg6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lcyBmb3Igc25tcFRhcmdldFBhcmFtc1RhYmxlCiAgIAoyMDAyLTAxLTIxIDIzOjQ4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAgIC0gdGlkeSB0aGluZ3MgdXAgYSBiaXQgKGhhZCBsZWZ0IHNvbWUgb2xkIGNvZGUgc2l0dGluZyBpZiAjaWYgMAogICAgICAgYnJhbmNoKS4KICAgCiAgICAgLSByZW1lbWJlciB0byBjbG9zZSAodGFyZ2V0LT5zZXNzKSB3aGVuIHdlIG1vdmUgYSB0YXJnZXQgdG8KICAgICAgIG5vdEluU2VydmljZSgyKS4KICAgCjIwMDItMDEtMjEgMTE6MDQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmVzIGZvciBzbm1wVGFyZ2V0QWRkclRhYmxlCiAgIAoyMDAyLTAxLTIxIDA2OjQ3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgc25tcFRhcmdldEFkZHJFbnRyeS5oOgoKICAgICAtIGltcGxlbWVudCBzbm1wVGFyZ2V0U3BpbkxvY2sgb2JqZWN0CiAgIAoyMDAyLTAxLTE4IDA5OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZSBmb3IgdmFjbVZpZXdUcmVlRmFtaWx5VGFibGUuICBQYXNzZXMgYWxsIHRoZQogICAgICAgcmVsZXZhbnQgU2lsdmVyY3JlZWsgVkFDTSB0ZXRzdC4KICAgCjIwMDItMDEtMTggMDg6NDkgIGpicG4KCiAgICogc25tcGxpYi86IHZhY20uYywgdmFjbS5oOgoKICAgICAtIGFkZCBhIHN3aXRjaCB0byB2YWNtX2dldFZpZXdFbnRyeSgpIHRvIGFsbG93IHRoZSBtYXNrIGVudHJpZXMKICAgICAgIHRvIGJlIGlnbm9yZSAod2hpY2ggaXMgd2hhdCB5b3Ugd2FudCB3aGVuIHlvdSBhcmUganVzdCB1c2luZyB0aGlzCiAgICAgICBmdW5jdGlvbiB0byBsb29rIHVwIGFuIGVudHJ5IGluIHRoZSB0YWJsZSBpbiBvcmRlciB0byB3cml0ZSBzb21lIG5ldwogICAgICAgdmFsdWUgdG8gb25lIG9mIHRoZSBjb2x1bW5hciBvYmplY3RzKS4KICAgCjIwMDItMDEtMTggMDY6MDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lIGZvciB2YWNtQWNjZXNzVGFibGUuICBQYXNzZXMgYWxsIHRoZSByZWxldmFudAogICAgICAgU2lsdmVyY3JlZWsgVkFDTSB0ZXRzdC4KICAgCjIwMDItMDEtMTggMDQ6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lIGZvciB2YWNtU2VjdXJpdHlUb0dyb3VwVGFibGUgKGkuZS4gZG9uJ3QKICAgICAgIGp1c3QgZG8gZXZlcnl0aGluZyBpbiB0aGUgQ09NTUlUIHBoYXNlKS4gIFBhc3NlcyBhbGwgdGhlIHJlbGV2YW50CiAgICAgICBTaWx2ZXJjcmVlayBWQUNNIHRldHN0LgogICAKMjAwMi0wMS0xOCAwNDowOCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZG9uJ3Qgb3ZlcndyaXRlIGFuIGV4aXN0aW5nIGVycm9yIHN0YXR1cyBhZnRlciBDT01NSVQgb3IgVU5ETwogICAgICAgcGhhc2VzIHdpdGggY29tbWl0RmFpbGVkIG9yIHVuZG9GYWlsZWQgKGJ1dCBkbyB0cmFuc2xhdGUgZXJyb3IKICAgICAgIHJldHVybnMgZnJvbSB0aG9zZSBwaGFzZXMgaW50byB0aG9zZSBlcnJvcnMgd2hlbiB3ZSBkb24ndCBoYXZlIGFuCiAgICAgICBleGlzdGluZyBlcnJvciBzdGF0dXMpLgogICAKMjAwMi0wMS0xNyAwNjo1NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gaGFuZGxlIGlsbGVnYWwgdmFsdWVzIG9mIG1zZ0lEIGNvcnJlY3RseSAoYnkgZHJvcHBpbmcgdGhlIHBhY2tldAogICAgICAgYW5kIGluY3JlbWVudGluZyBzbm1wSW5BU05QYXJzZUVycnMpCiAgIAoyMDAyLTAxLTE3IDA2OjM4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBoYW5kbGUgaWxsZWdhbCB2YWx1ZXMgb2YgbXNnTWF4U2l6ZSBjb3JyZWN0bHkgKGJ5IGRyb3BwaW5nIHRoZQogICAgICAgcGFja2V0IGFuZCBpbmNyZW1lbnRpbmcgc25tcEluQVNOUGFyc2VFcnJzKQogICAKMjAwMi0wMS0xNSAwODoxNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIHRvcCBsZXZlbCBpbmNsdWRlIHdoaWNoIGluY2x1ZGVzIHVzZWZ1bCBzbm1wbGliIGhlYWRlcnMKICAgCjIwMDItMDEtMTUgMDg6MTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL3VjZC1zbm1wLzogYWdlbnRfaW5kZXguaCwgYWdlbnRfcmVhZF9jb25maWcuaAosIGFnZW50X3JlZ2lzdHJ5LmgsIGFnZW50X3RyYXAuaCwgYXNuMS5oLAogICBhdXRvX25saXN0LmgsIGNhbGxiYWNrLmgsIGRlZmF1bHRfc3RvcmUuaCwKICAgZHNfYWdlbnQuaCwgaGVhZGVyX2NvbXBsZXguaCwgaW50NjQuaCwga2V5dG9vbHMuaAosIG1pYi5oLCBtaWJfbW9kdWxlX2NvbmZpZy5oLCBtaWJpbmNsLmgsCiAgIHBhcnNlLmgsIHJlYWRfY29uZmlnLmgsIHNjYXBpLmgsIHNubXAtdGMuaCwKICAgc25tcC5oLCBzbm1wX2FnZW50LmgsIHNubXBfYWxhcm0uaCwgc25tcF9hcGkuaAosIHNubXBfY2xpZW50LmgsIHNubXBfZGVidWcuaCwgc25tcF9pbXBsLmgsCiAgIHNubXBfbG9nZ2luZy5oLCBzbm1wX3BhcnNlX2FyZ3MuaCwgc25tcF92YXJzLmgsCiAgIHNubXB1c20uaCwgc25tcHYzLmgsIHN0cnVjdC5oLCBzeXN0ZW0uaCwKICAgdG9vbHMuaCwgdHJhbnNmb3JtX29pZHMuaCwgdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaAosIHVjZC1zbm1wLWNvbmZpZy5oLCB1Y2Qtc25tcC1pbmNsdWRlcy5oLAogICB1dGlsX2Z1bmNzLmgsIHZhcl9zdHJ1Y3QuaCwgdmVyc2lvbi5oOgoKICAgY3JlYXRlIDQueCBoZWFkZXJzIHRoYXQgYXJlIHdyYXBwZXJzIHBvaW50aW5nIHRvIG5ldyBoZWFkZXJzCiAgIAoyMDAyLTAxLTE0IDE1OjA4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgYWRkIFVzZXJSb3dBY3Rpb24gYW5kIHZvaWQgcG9pbnRlcgogICAKMjAwMi0wMS0xNCAxMzo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywgTWFrZWZpbGUuaW46CgogICAtPiBuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAgIAoyMDAyLTAxLTE0IDEzOjQwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICByZW1vdmVkCiAgIAoyMDAyLTAxLTE0IDEzOjI5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgY29weSB1Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oIGFuZCB1cGRhdGUgdG8gbmV0LXNubXAgdXNlIG5ldyBhZ2VudCBkaXIKICAgCjIwMDItMDEtMTQgMDg6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwKICAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2FnZW50X2luZGV4LmgsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYWdlbnRfdHJhcC5oLAogICBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L2F1dG9fbmxpc3QuaCwKICAgYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQva2VybmVsLmMsIGFnZW50L21pYl9tb2R1bGVzLmMKLCBhZ2VudC9taWJfbW9kdWxlcy5oLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oLCBhZ2VudC92YXJfc3RydWN0LmgsCiAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsCiAgIGFnZW50L2hlbHBlcnMvbnVsbC5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaAosIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwosIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLAogICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCwgYXBwcy9zbm1wdHJhcGQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaW5kZXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgbW92ZWQgdGhlIC9hZ2VudCBpbnN0YWxsZWQgaGVhZGVycyB0byAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50CiAgIAoyMDAyLTAxLTEzIDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGFkZCBhIGNvdXBsZSBtb3JlIGluc3RhbGwgaGVhZGVycy4KICAgCjIwMDItMDEtMTEgMTQ6MTggIGhhcmRha2VyCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgTW92ZSBhbGwgYWdlbnQvaGVscGVycy8qLmggZmlsZXMgdG8gaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8gYW5kIGNoYW5nZQogICByZWZlcmVuY2VzLgogICAKMjAwMi0wMS0xMSAxNDoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvbWliX21vZHVsZXMuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaCwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYwosIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmgsCiAgIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuaAosIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5oCiwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLAogICBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmgsIGFnZW50L2hlbHBlcnMvbnVsbC5jLAogICBhZ2VudC9oZWxwZXJzL251bGwuaCwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5oLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5oLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLAogICBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5oLCBhZ2VudC9oZWxwZXJzL3NldF9oZWxwZXIuaCwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmgsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5oCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5oCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5oLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmgsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jCiwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2V0X2hlbHBlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBNb3ZlIGFsbCBhZ2VudC9oZWxwZXJzLyouaCBmaWxlcyB0byBpbmNsdWRlL25ldC1zbm1wL2FnZW50LyBhbmQgY2hhbmdlCiAgIHJlZmVyZW5jZXMuCiAgIAoyMDAyLTAxLTExIDA4OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIEFkZCAtSSQodG9wX3NyY2RpcikvaW5jbHVkZSB0byBpbmNsdWRlIHBhdGguCiAgIC0gUmVuYW1lIDMgYWdlbnQgbGlicmFyaWVzIGZyb20gbGlidWNkKiAtPiBsaWJuZXRzbm1wKgogICAKMjAwMi0wMS0xMSAwNzo1OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBkb24ndCB1c2Ugd2hpbGUoeC0tID49IDApIGxvb3BzIGZvciBuZXcgdW5zaWduZWQgaW5kZXggY29tcG9uZW50cwogICAKMjAwMi0wMS0xMSAwNToyNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBiZSBjYXJlZnVsIGFib3V0IHNpZ25lZGVzcyBvZiBpbmRleCBjb21wb25lbnRzIGluIHRhYmxlcwogICAKMjAwMi0wMS0xMCAxMzoxMiAgbmJhCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ3JlYXRlIHRoZSBpbmNsdWRlIGRpcmVjdG9yeSB3aGVuIGJ1aWxkaW5nIG91dHNpZGUgc291cmNlIGRpcmVjdG9yeQogICAKMjAwMi0wMS0xMCAwODoyMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAgIC0gdXNlIGFuIHVuc2lnbmVkIGxvbmcgbG9vcCB2YXJpYWJsZSBpbiB2YXJfc3lzT1JUYWJsZSgpIHRvIGF2b2lkCiAgICAgICBpbmNvcnJlY3QgbGV4aS1vcmRlcmluZyB3aGVuIGRvaW5nIHJlcXVlc3RzIGxpa2UgR0VUTkVYVAogICAgICAgc3lzT1JEZXNjci40Mjk0OTY3Mjk1LgogICAKICAgICAtIG1pbm9yIGRlYnVnZ2luZyBvdXRwdXQgY2hhbmdlcwogICAKMjAwMi0wMS0xMCAwNzozMiAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZml4IG1pbm9yIG1lbW9yeSBsZWFrIGluIHJlYXNzaWduX3JlcXVlc3RzKCkKICAgCjIwMDItMDEtMTAgMDc6MjEgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHNldCB0eXBlIGZvciB1bmhhbmRsZWQgR0VUIHJlcXVlc3RzIGluIGhhbmRsZV9wZHUoKSB0byBiZQogICAgICAgbm9TdWNoSW5zdGFuY2UgcmF0aGVyIHRoYW4gbm9TdWNoT2JqZWN0IChub1N1Y2hPYmplY3QgZXhjZXB0aW9ucwogICAgICAgYXJlIGRldGVjdGVkIGFuZCBleHBsaWNpdGx5IHNldCBlYXJsaWVyKS4KICAgCjIwMDItMDEtMTAgMDU6NTIgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAgIC0gY29ycmVjdCB0eXBvIHRoYXQgbWVhbnQgZXJyb3IgcmV0dXJucyBmcm9tIG9sZC1hcGkgd3JpdGUgbWV0aG9kcwogICAgICAgd2VyZSBpZ25vcmVkLgogICAKMjAwMi0wMS0xMCAwNTowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gY2hhbmdlIHZhbHVlIG9mIFNUQVRfVEFSR0VUX1NUQVRTX0VORCBzbyB0aGF0IG1pYklJL3NubXBfbWliLmMgY2FuCiAgICAgICByZXR1cm4gdmFsdWVzIG9mIG1hbmRhdG9yeSBvYmplY3RzIHNubXBTaWxlbnREcm9wcyBhbmQKICAgICAgIHNubXBQcm94eURyb3BzLgogICAKMjAwMi0wMS0wOSAwODo1MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbWFrZSB1bmtub3duL2lsbGVnYWwgdmFyYmluZCB0eXBlcyBpbiB2MS92MmMgUERVcyBjYXVzZQogICAgICAgc25tcEluQVNOUGFyc2VFcnJzIHRvIGJlIGluY3JlbWVudGVkLgogICAKMjAwMi0wMS0wOSAwNzo1NSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsKICAgCjIwMDItMDEtMDkgMDc6MzIgIGpicG4KCiAgICogYXBwcy9zbm1wYnVsa2dldC5jOgoKICAgICAtIGJyaW5nIGFwcC1zcGVjaWZpYyBvcHRpb25zIGluIGxpbmUgd2l0aCBzbm1wYnVsa3dhbGsgKC1DIHJhdGhlcgogICAgICAgdGhhbiAtQikKICAgCjIwMDItMDEtMDkgMDc6MzEgIGpicG4KCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYzoKCiAgICAgLSBmb3JtYXR0aW5nIGNoYW5nZSB0byB1c2FnZSBtZXNzYWdlCiAgIAoyMDAyLTAxLTA5IDA2OjM1ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgICAgLSBmaXggbWlub3IgbWVtb3J5IGxlYWsKICAgCjIwMDItMDEtMDggMDg6NTUgIGpicG4KCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYzoKCiAgICAgLSBhZGQgb3B0aW9ucyBmcm9tIHNubXB3YWxrCiAgIAogICAgIC0gYWxsb3cgbm9uLXJlcGVhdGVycyBhbmQgbWF4LXJlcGVhdGVycyB0byBiZSBzZXQKICAgCiAgICAgLSBjaGFuZ2UgZGVmYXVsdCB2YWx1ZSBvZiBtYXgtcmVwZWF0ZXJzIHRvIGEgbG93ZXIgdmFsdWUgdG8gYXZvaWQKICAgICAgIHRpbWVvdXRzIHdpdGggc2xvd2VyIGFnZW50cwogICAKMjAwMi0wMS0wOCAwODoxNyAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZG9uJ3QgdHJ5IHRvIG1hbGxvYygpIGEgemVyby1sZW5ndGggYnVmZmVyLCBpbiBjYXNlIHNvbWUgbWFsbG9jKClzCiAgICAgICBjb21wbGFpbi4KICAgCjIwMDItMDEtMDggMDg6MTUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGhvcGVmdWxseSBmaW5hbCBHRVRCVUxLIGZpeCAtLSBwYXNzZXMgYWxsIFNpbHZlckNyZWVrJ3MgR0VUQlVMSwogICAgICAgdGVzdHMgKGluY2wuIG5lZ2F0aXZlIG5vbi1yZXBlYXRlcnMgYW5kIG1heC1yZXBlYXRlcnMpCiAgIAoyMDAyLTAxLTA4IDA2OjU5ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsCiAgIGhlbHBlcnMvYnVsa190b19uZXh0LmM6CgogICAgIC0gR0VUQlVMSyBmaXggdG8gaWdub3JlIHZhcmJpbmRzIGZvciB3aGljaCB6ZXJvIHJlcGV0aXRpb25zIGFyZQogICAgICAgY2FsbGVkIGZvcgogICAKICAgICAtIGRyb3AgYXNwLT5zdGFydCBhbmQgYXNwLT5lbmQgd2hpY2ggYXJlIGhhcmRseSB1c2VkIGFuZCB3aGljaCBnZXQKICAgICAgIGluIHRoZSB3YXkgb2YgdGhpcyB0eXBlIG9mIHByb2Nlc3NpbmcKICAgCiAgICAgLSBpZ25vcmUgbmVnYXRpdmUgcmVwZXRpdGlvbnMgaW4gYnVsa190b19uZXh0IGhhbmRsZXIKICAgCjIwMDItMDEtMDcgMDg6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci8uY3ZzaWdub3JlOgoKICAgaWdub3JlIGZpbGUKICAgCjIwMDItMDEtMDcgMDg6MzggIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci9JTlNUQUxMOgoKICAgUE5HR3JhcGggLT4gR0Q6OkdyYXBoCiAgIAoyMDAyLTAxLTA0IDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGZpeCBkZXBlbmRlbmNpZXMKICAgCjIwMDItMDEtMDQgMTM6MjQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvYWNjb25maWcuaDoKCiAgIG1vdmUgYWNjb25maWcuaCBiYWNrIHRvIHRoZSB0b3AgZGlyIHdoZXJlIGl0cyBhcHBhcmVudGx5IHN1cHBvc2VkIHRvIGxpdmUuCiAgIAoyMDAyLTAxLTA0IDEzOjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1vcmUgdWNkLXNubXAgLT4gbmV0LXNubXAgdHJhbnNsYXRpb25zLiAgd2FybmluZzogaW5jbHVkZXMgdGhlIGRlZmF1bHQgcGVyc2lzdGVudCBzdG9yZS4KICAgCjIwMDItMDEtMDQgMTM6MDQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvOiBuZXQtc25tcC8uY3ZzaWdub3JlLCB1Y2Qtc25tcC8uY3ZzaWdub3JlOgoKICAgaWdub3JlIGZpbGVzCiAgIAoyMDAyLTAxLTA0IDEzOjAyICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgaWdub3JlIGJ1aWx0IG5ldC1zbm1wLWNvbmZpZwogICAKMjAwMi0wMS0wNCAxMzowMCAgaGFyZGFrZXIKCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBlbmNvZGVfa2V5Y2hhbmdlLmMsCiAgIG5vdGlmaWNhdGlvbl9sb2cuYywgc25tcGJ1bGtnZXQuYywgc25tcGJ1bGt3YWxrLmMKLCBzbm1wZGVsdGEuYywgc25tcGRmLmMsIHNubXBnZXQuYywKICAgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsCiAgIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMsCiAgIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYwosIHNubXB0cmFwZF9sb2cuYywgc25tcHVzbS5jLCBzbm1wdmFjbS5jCiwgc25tcHdhbGsuYzoKCiAgIGJlZ2lubmluZ3Mgb2YgdWNkLXNubXAgLT4gbmV0LXNubXAgc3RydWN0dXJhbCBjaGFuZ2VzLgogICAgIC0gY29uZmlnLmggLT4gaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogICAgICAgLSB0aGlzLCBvZiBjb3Vyc2UsIGNoYW5nZXMganVzdCBhYm91dCBldmVyeSBmaWxlIGluIHRoZSByZXBvc2l0b3J5LgogICAKMjAwMi0wMS0wNCAxMjo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jOgoKICAgYmVnaW5uaW5ncyBvZiB1Y2Qtc25tcCAtPiBuZXQtc25tcCBzdHJ1Y3R1cmFsIGNoYW5nZXMuCiAgICAgLSBjb25maWcuaCAtPiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAgICAgICAtIHRoaXMsIG9mIGNvdXJzZSwgY2hhbmdlcyBqdXN0IGFib3V0IGV2ZXJ5IGZpbGUgaW4gdGhlIHJlcG9zaXRvcnkuCiAgIAoyMDAyLTAxLTA0IDEyOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiwgaW5jbHVkZS9uZXQtc25tcC9hY2NvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL3VjZC1zbm1wL1JFQURNRSwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9kYXRhX2xpc3QuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsCiAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9rZXl0b29scy5jLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL210X3N1cHBvcnQuYywgc25tcGxpYi9vaWRfYXJyYXkuYywKICAgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcC5jLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKLCBzbm1wbGliL3NubXBJUFhEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMKLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMKLCBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXBfZW51bS5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICBzbm1wbGliL3NubXBfc2VjbW9kLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywKICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jCiwgc25tcGxpYi9zbnByaW50Zi5jLCBzbm1wbGliL3N0cnRvbC5jLAogICBzbm1wbGliL3N0cnRvdWwuYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jCiwgc25tcGxpYi92YWNtLmMsIHRlc3RpbmcvVC5jLAogICB0ZXN0aW5nL2V0aW1ldGVzdC5jLCB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYywKICAgdGVzdGluZy9taXNjdGVzdC5jLCB0ZXN0aW5nL3NjYXBpdGVzdC5jOgoKICAgYmVnaW5uaW5ncyBvZiB1Y2Qtc25tcCAtPiBuZXQtc25tcCBzdHJ1Y3R1cmFsIGNoYW5nZXMuCiAgICAgLSBjb25maWcuaCAtPiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAgICAgICAtIHRoaXMsIG9mIGNvdXJzZSwgY2hhbmdlcyBqdXN0IGFib3V0IGV2ZXJ5IGZpbGUgaW4gdGhlIHJlcG9zaXRvcnkuCiAgIAoyMDAyLTAxLTA0IDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLCBhZ2VudC9NYWtlZmlsZS5pbgosIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaW5kZXguYywKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9hdXRvX25saXN0LmMsCiAgIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLAogICBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYwosIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jCiwgYWdlbnQvaGVscGVycy9udWxsLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYwosIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwosIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMKLCBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIGJlZ2lubmluZ3Mgb2YgdWNkLXNubXAgLT4gbmV0LXNubXAgc3RydWN0dXJhbCBjaGFuZ2VzLgogICAgIC0gY29uZmlnLmggLT4gaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogICAgICAgLSB0aGlzLCBvZiBjb3Vyc2UsIGNoYW5nZXMganVzdCBhYm91dCBldmVyeSBmaWxlIGluIHRoZSByZXBvc2l0b3J5LgogICAKMjAwMi0wMS0wNCAxMjo0NyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICByZW1vdmVkIHVuZWVkZWQgb2xkZXIgZmlsZXMKICAgCjIwMDItMDEtMDMgMTQ6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcGF0Y2ggIzQ5MjA3MiB0byBtYWluIGJyYW5jaAogICAKMjAwMi0wMS0wMyAxNDowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgY2hlY2sgcmVzdWx0cyBvZiBzZXRtbnRlbnQgYmVmb3JlIHVzaW5nIHRoZW0uCiAgIAoyMDAyLTAxLTAzIDEzOjU3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBjaGVjayBhZ2FpbnN0IGdyb3dpbmcgc2VydmVyIHJldHVybnMgYXMgcG9pbnRlZCBvdXQgYnkgYnVnICM0OTg5NTYKICAgCjIwMDItMDEtMDMgMTE6NDAgIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci9kaXNwbGF5dGFibGUucG06CgogICBQTkdHcmFwaCAtPiBHREdyYXBoCiAgIAoyMDAyLTAxLTAzIDExOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgY2hhbmdlIGV4cG9ydCBuYW1lIHRvICJuZXQtc25tcCIgZnJvbSAidWNkLXNubXAiCiAgIAoyMDAyLTAxLTAzIDExOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLAogICBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYKOgoKICAgbWFrZSB1c2Ugb2YgdGhlIG5ldyBtdWx0aS1hZGQgZnVuY3Rpb25zLgogICAKMjAwMi0wMS0wMyAxMTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2RhdGFzZXQuYywgdGFibGVfZGF0YXNldC5oOgoKICAgYWRkIG11bHRpcGxlIGRlZmF1bHQgcm93IGNvbHVtbiBkZWZpbml0aW9ucyB1c2luZyBvbmUgZnVuY3Rpb24gY2FsbCAodmFyYXJncykuCiAgIAoyMDAyLTAxLTAzIDExOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGUuYywgdGFibGUuaDoKCiAgIGFkZCBtdWx0aXBsZSBpbmRleGVzIHVzaW5nIG9uZSBmdW5jdGlvbiBjYWxsICh2YXJhcmdzKS4KICAgCjIwMDItMDEtMDMgMTE6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5oOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBkZWZpbmVkIHY0IGFwaSBmdW5jdGlvbnMgKGdldFN0YXRQdHIgbm8gbGVzcykuCiAgIAoyMDAyLTAxLTAzIDExOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50Lmg6CgogICByZW1vdmUgbm8gbG9uZ2VyIGRlZmluZWQgdjQgYXBpIGZ1bmN0aW9ucy4KICAgCjIwMDItMDEtMDMgMTA6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgb2lkX3N0YXNoLmMsIG9pZF9zdGFzaC5oCjoKCiAgIGRhdGEgc3Rhc2hpbmcgYmFzZWQgb24gYW4gb2lkIGNhY2hpbmcgdHJlZS4KICAgCjIwMDEtMTItMjYgMTU6MzYgIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci86IElOU1RBTEwsIE1ha2VmaWxlLlBMLCBtYW5hZ2VyLnBtCjoKCiAgIHVwZGF0ZSB0byBtYWtlIGl0IGEgYml0IGVhc2llciB0byBpbnN0YWxsIChpbmNsdWRpbmcgYSBNYWtlZmlsZSBmb3IKICAgYXV0b21hdGVkIGluc3RhbGxhdGlvbikuCiAgIAoyMDAxLTEyLTI2IDEzOjIwICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvOiBJTlNUQUxMLCBkaXNwbGF5dGFibGUucG0sIGdldFZhbHVlcy5wbQosIGdyZWVuLmdpZiwgbWFuYWdlci5wbSwgcmVkLmdpZiwgc2V0dXBhdXRoCiwgc2V0dXBkYiwgc2V0dXB1c2VyLCBzbm1wdG9zcWw6CgogICBtb3ZpbmcgbWFuYWdlciB0byBwZXJsL21hbmFnZXIKICAgCjIwMDEtMTItMjQgMTY6MTAgIGhhcmRha2VyCgogICAqIEZBUSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsCiAgIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLnByZTEgKQogICAKMjAwMS0xMi0yNCAxNjowNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgbWliMmMsIG1pYjJjLmNvbmY6CgogICBVcGRhdGUgdG8gbWFrZSBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IGl0J3Mgbm90IGZpbmlzaGVkIGFuZCB5b3UgbXVzdAogICByZWZlcmVuY2UgYSBwYXJ0aWN1bGFyIGNvbmZpZ3VyYXRpb24gZmlsZSBhdCB0aGlzIHBvaW50LgogICAKMjAwMS0xMi0yNCAxNTo1MSAgaGFyZGFrZXIKCiAgICogRkFRLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwKICAgcGVybC9TTk1QL1NOTVAucG06CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAubm90LmV2ZW4uY2xvc2UgKQogICAKMjAwMS0xMi0yNCAxNTo1MCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgbW9yZSBjb21tZW50cy4KICAgCjIwMDEtMTItMjQgMTU6NDEgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgbW9yZSB1cGRhdGVzCiAgIAoyMDAxLTEyLTI0IDE1OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIGRveHlnZW4gY29tbWVudHMKICAgCjIwMDEtMTItMjQgMTU6MjAgIGhhcmRha2VyCgogICAqIE5FV1MsIFJFQURNRToKCiAgIDUuMCBjb21tZW50IHVwZGF0ZXMuCiAgIAoyMDAxLTEyLTI0IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBkb3h5Z2VuIGNvbW1lbnRzIG9uIGEgZmV3IGZ1bmN0aW9ucy4KICAgCjIwMDEtMTItMjQgMTU6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIG1lbW9yeSBsZWFrcy4KICAgCjIwMDEtMTItMjQgMTA6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGRlcGVuZGVuY2llcyBmb3Igbm9uLWV4aXN0ZW50IG1vZHVsZXMKICAgCjIwMDEtMTItMjMgMTU6NDcgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZzoKCiAgIG9wcHMuICBEb24ndCBjaGVjayBpbiBnZW5lcmF0ZWQgZmlsZXMuCiAgIAoyMDAxLTEyLTIzIDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBmaXggcnBtIHVzYWdlIChJIGhvcGUpLgogICAKMjAwMS0xMi0yMyAxNDo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvLmN2c2lnbm9yZToKCiAgIGFkZGVkIC5jdnNpZ25vcmUgZmlsZQogICAKMjAwMS0xMi0yMyAxNDo0OSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG5ldC1zbm1wLWNvbmZpZy4KICAgCjIwMDEtMTItMjMgMTQ6NDcgIGhhcmRha2VyCgogICAqIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBuZXQtc25tcC1jb25maWcsIG5ldC1zbm1wLWNvbmZpZy5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSBjcmVhdGVkIGEgbmV0LXNubXAtY29uZmlnIHNjcmlwdCB0byByZXBvcnQgY29tcGlsZWQgbGlicy4KICAgLSBzZXBhcmF0ZWQgbGlicyBuZWVkZWQgYnkgYWdlbnQgZnJvbSB0aG9zZSBuZWVkZWQgYnkgdGhlIHJlc3Qgb2YgdGhlCiAgICAgYXBwbGljYXRpb25zLgogICAKMjAwMS0xMi0yMSAxNjo1MyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1lbnRpb24gaG93IHRvIGluc3RhbGwgREJJCiAgIAoyMDAxLTEyLTIxIDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9NYWtlZmlsZS5QTDoKCiAgIHJlbW92ZSB2ZXJzaW9uIHJlcXVpcmVtZW50IGZvciBBbnlEYXRhCiAgIAoyMDAxLTEyLTIxIDE2OjM3ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbWFrZSBpbnN0YWxsIGFzIHJvb3QuCiAgIAoyMDAxLTEyLTIxIDE2OjMyICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC86IElOU1RBTEwsIElOU1RBTEwsIElOU1RBTEwsCiAgIElOU1RBTEw6CgogICBiZXR0ZXIgZGVzY3IKICAgCjIwMDEtMTItMjEgMTY6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1JFQURNRToKCiAgIG1pbm9yIHdvcmRpbmcgY2hhbmdlLgogICAKMjAwMS0xMi0yMSAxNjowNyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1lbnRpb24gaXQncyB2ZXJ5IGFscGhhIGNvZGUuCiAgIAoyMDAxLTEyLTIxIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbmV3IGluc3RydWN0aW9ucwogICAKMjAwMS0xMi0yMSAxMDoxOCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gZG94eWdlbi4KICAgCjIwMDEtMTItMjEgMTA6MTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmg6CgogICBjb21waWxlIGluIGFnZW50IHNwZWNpZmljIHN1cHBvcnQgbWlicy4KICAgCjIwMDEtMTItMjEgMDk6NDkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAoc3RpbGwgaW5jb21wbGV0ZSkgMm5kIHVwZGF0ZSBmb3IgNS4wCiAgIAoyMDAxLTEyLTIxIDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgKGluY29tcGxldGUpIHVwZGF0ZSBmb3IgNS4wCiAgIAoyMDAxLTEyLTE5IDE3OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeCByZWFsbG9jIGZsb2F0IGFuZCBkb3VibGUgYnVpbGRzLgogICAKMjAwMS0xMi0xOSAxNjozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWlzYyBmaXhlcy4KICAgCjIwMDEtMTItMTkgMTY6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZGVmaW5lIGEgQyBkYXRhdHlwZSBhcyAkdmFyLmRlY2wgKHBlciBSb2JlcnQncyBzdWdnZXN0aW9uLiAgUm9iZXJ0OiB3ZQogICBwcm9iYWJseSB3YW50IHBvaW50ZXJzIGZvciB0aGluZ3MgbGlrZSBzdHJpbmdzLCBubz8gIG1heWJlIG9uZSB0eXBlCiAgIHRoYXQgaXMgYWx3YXlzIGEgcG9pbnRlciBhbmQgYW5vdGhlciB0aGF0IGlzIHNvbWV0aW1lcyBkZXBlbmRpbmcgb24KICAgdGhlIHR5cGU/KQogICAKMjAwMS0xMi0xOSAxNjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYzoKCiAgIGNoYW5nZSBkZWZhdWx0IGJ1bGsgbnVtYmVyIHRvIDEwMCBmcm9tIHRoZSByaWRpY3Vsb3VzIDEwMDAuCiAgIAoyMDAxLTEyLTE5IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBtYWtlIGRlcGVuZAogICAKMjAwMS0xMi0xOSAwODoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIGhlbHBlcnMvYnVsa190b19uZXh0LmM6CgogICBnZXRidWxrIHVwZGF0ZXMgdG8gbWFrZSBpdCB0aGUgbW9kdWxlcyByZXNwb25zaWJpbGl0eSB0byB1cGRhdGUgdGhlCiAgIHZhcmJpbmQgY2hhaW4gYW4gdGhlIHJlcGVhdCBjb3VudGVyLgogICAKMjAwMS0xMi0xOSAwNzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMsIHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oCiwgaGVscGVycy9NYWtlZmlsZS5pbiwgaGVscGVycy9hbGxfaGVscGVycy5jLAogICBoZWxwZXJzL2FsbF9oZWxwZXJzLmgsIGhlbHBlcnMvYnVsa190b19uZXh0LmMsCiAgIGhlbHBlcnMvYnVsa190b19uZXh0Lmg6CgogICBHRVRCVUxLIHN1cHBvcnQgZm9yIHRoZSBuZXcgQVBJLgogICAgIC0gbWF5IG5lZWQgdG8gbWFrZSBzb21lIHNsaWdodCBtb2RpZmljYXRpb25zLgogICAgIC0gZGVmYXVsdHMgdG8gR0VUTkVYVCBmb3IgYW55IGhhbmRsZXIgdGhhdCBkb2Vzbid0IHNldCBIQU5ETEVSX0NBTl9HRVRCVUxLLgogICAgIC0gZG9lc24ndCBkZWFsIHByb3Blcmx5IHlldCB3aXRoIGVuZC1vZi1taWIgY29uZGl0aW9uIHJlbW92YWwuCiAgIAoyMDAxLTEyLTE5IDA2OjA1ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gZHJvcCAtcCBvcHRpb24uICBBZGRyZXNzZXMgdG8gbGlzdGVuIG9uIG5vdyBjb21lIGFzIG9wdGlvbmFsCiAgICAgICBhcmd1bWVudHMgYXQgdGhlIGVuZCBvZiB0aGUgY29tbWFuZCBsaW5lLgogICAKICAgICAtIGRyb3AgKGxvbmctZGVwcmVjYXRlZCkgLXEgb3B0aW9uLgogICAKICAgICAtIHJlLW9yZGVyZWQgb3B0aW9ucyBpbiB1c2FnZSBtZXNzYWdlIHRvIGJlIGFscGhhYmV0aWNhbCwgYW5kCiAgICAgICBjaGFuZ2VkIGRlc2NyaXB0aW9uIG9mIHNvbWUgb3B0aW9ucyB0byBiZSBtb3JlIHNpbWlsYXIgdG8gc25tcGQKICAgICAgIG9wdGlvbnMgKHdoZXJlIGFwcHJvcHJpYXRlKS4KICAgCjIwMDEtMTItMTkgMDQ6MzggIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBkcm9wIC1wIGFuZCAtVCBvcHRpb25zLiAgQWRkcmVzc2VzIHRvIGxpc3RlbiBvbiBub3cgY29tZSBhcwogICAgICAgb3B0aW9uYWwgYXJndW1lbnRzIGF0IHRoZSBlbmQgb2YgdGhlIGNvbW1hbmQgbGluZS4KICAgCiAgICAgLSByZS1vcmRlcmVkIG9wdGlvbnMgaW4gdXNhZ2UgbWVzc2FnZSB0byBiZSBhbHBoYWJldGljYWwsIHBsdXMKICAgICAgIG1pbm9yIGZvcm1hdHRpbmcgdHdlYWtzLgogICAKICAgICAtIHJlLXdyaXR0ZW4gb3B0aW9ucyBwcm9jZXNzaW5nIGxvb3AgdG8gdXNlIG9wdGFyZygpLgogICAKMjAwMS0xMi0xOCAwODo0NCAgamJwbgoKICAgKiBtaWJzLzogVUNELVNOTVAtTUlCLnR4dCAoVjQtMi1wYXRjaGVzLjUpLCBVQ0QtU05NUC1NSUIudHh0CjoKCiAgICAgLSBhZGQgT0JKRUNUIElERU5USUZJRVIgZm9yIHdpbjMyIGFnZW50CiAgIAoyMDAxLTEyLTE4IDA4OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIHdhcm5pbmcgLT4gZGVidWcuCiAgIAoyMDAxLTEyLTE3IDEwOjE1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBoYW5kbGUgZ2V0TmV4dCBxdWVyaWVzIHdoZXJlIHRoZSBpbml0aWFsIHZhcmJpbmQtPnR5cGUgaXMKICAgICAgIEFTTl9QUklWX0lOQ0xfUkFOR0UgKHRoZXNlIGN1cnJlbnRseSBhcmlzZSBvbmx5IGluIEFnZW50WAogICAgICAgc3ViYWdlbnRzIGJ1dCB0aGUgaGFuZGxpbmcgaXMgbm90IHNwZWNpZmljIHRvIEFnZW50WCkuCiAgIAogICAgICAgQmFzaWNhbGx5IHRoaXMgaXMgZG9uZSBieSBwZXJmb3JtaW5nIGEgR0VUIGZpcnN0IG9uIGFsbCB0aGUKICAgICAgIHZhcmlhYmxlcyBpbiBhIHJlcXVlc3QuICBGb3IgdmFyaWFibGVzIHRoYXQgaGFkIGFuIGluaXRpYWwgdHlwZSBvZgogICAgICAgQVNOX1BSSVZfSU5DTF9SQU5HRSBhbmQgd2VyZSBzYXRpc2ZpZWQgYnkgdGhpcyBpbml0aWFsIEdFVCwgd2UgdXNlCiAgICAgICB0aGlzIHZhbHVlIGFzIHRoZSByZXN1bHQuICBGb3IgdmFyaWFibGVzIHRoYXQgZGlkIG5vdCBoYXZlIGFuCiAgICAgICBpbml0aWFsIHR5cGUgb2YgQVNOX1BSSVZfSU5DTF9SQU5HRSwgb3IgdmFyaWFibGUgdGhhdCBoYWQgYW5kCiAgICAgICBpbml0aWFsIHR5cGUgb2YgQVNOX1BSSVZfSU5DTF9SQU5HRSBidXQgd2VyZSBub3Qgc2F0aXNmaWVkIGJ5IHRoaXMKICAgICAgIEdFVCByZXF1ZXN0LCB3ZSBwcm9jZWVkIHRvIHBlcmZvcm0gYSBHRVQtTkVYVCB0eXBlIHJlcXVlc3QgYXMKICAgICAgIG5vcm1hbC4KICAgCjIwMDEtMTItMTcgMTA6MDQgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAgIC0gYWRkIGZ1bmN0aW9uIHJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSB3aGljaCBlbXVsYXRlcyBvbGQKICAgICAgIGZ1bmN0aW9uYWxpdHkuCiAgIAogICAgIC0gdXNlIHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZSgpIGluIHJlZ2lzdGVyX29sZF9hcGkoKS4KICAgCjIwMDEtMTItMTcgMDk6MzkgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBmaXggYm9ndXMgaW5kZW50CiAgIAoyMDAxLTEyLTE3IDA5OjM4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSByaWdodCBudW1iZXIgb2YgYXJndW1lbnRzIGZvciByZWdpc3Rlcl9taWJfY29udGV4dDIoKSBpbgogICAgICAgcmVnaXN0ZXJfYWdlbnR4X2xpc3QoKS4KICAgCiAgICAgLSB1c2Ugc25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9mcmVlKCkgaW4gZGl0dG8uCiAgIAoyMDAxLTEyLTEzIDE5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICByZW1vdmUgaGFuZGxlciBpbmplY3Rpb24gb3JkZXIgKHNlcmlhbGl6ZSBuZWVkcyB0byBiZSBjYWxsZWQgZmlyc3QpCiAgIAoyMDAxLTEyLTEzIDE5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgdW5uZWVkZWQgY2hlY2sgZm9yIGFscmVhZHkgYW5zd2VyZWQgQVNOX05VTExzIGluIGZpcnN0IHBhc3MuCiAgIAoyMDAxLTEyLTEyIDA5OjMxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC86IC5jdnNpZ25vcmUsIElOU1RBTEwsIE1BTklGRVNUCiwgUkVBRE1FLCBzbm1wc2g6CgogICAtIGRvYyB1cGRhdGUuCiAgIC0gc25tcHNoIG5vdyBzdXBwb3J0cyBhbGlhc2VzIHNvIHlvdSBjYW4gZGVmaW5lIGNvbW1hbmQgc2V0cy4KICAgLSBzbm1wc2ggbm93IHJlYWRzIGEgfi8uc25tcHNocmMgZmlsZSBmb3Igc3RvcmluZyB0aGVzZSBkZWZpbmVkIGFsaWFzZXMuCiAgIAoyMDAxLTEyLTEyIDA2OjQyICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gbmV3IGZ1bmN0aW9uIGpvaW5fc3VidHJlZSgpIHdoaWNoIHJlcGFpcnMgInB1bmN0dXJlZCIgc3VidHJlZXMKICAgICAgICh0aGVzZSBhcmlzZSBpbiBwYXJ0aWN1bGFyIHdoZW4gQWdlbnRYIHJvdyByZWdpc3RyYXRpb25zIGFyZQogICAgICAgd2l0aGRyYXduKS4KICAgCiAgICAgLSBjb3B5IHJlZ2luZm8gd2hlbiBkb2luZyBhIHJhbmdlIHJlZ2lzdHJhdGlvbiAoYXMgd2UgdXNlZCB0byBkbwogICAgICAgd2l0aCB0aGUgdmFyaWFibGUgc3RydWN0dXJlKSwgc2luY2UgZWFjaCBub2RlIG11c3Qgc3RhbmQgYWxvbmUuCiAgIAogICAgIC0gYWRkIHBhcmFtZXRlciB0byByZWdpc3Rlcl9taWJfY29udGV4dDIgdG8gYWxsb3cgUkVHSVNURVJfT0lECiAgICAgICBjYWxsYmFja3MgdG8gYmUgd2l0aGhlbGQgKGZvciBpbnN0YW5jZSwgeW91IG5lZWQgdGhpcyB0byBhdm9pZAogICAgICAgZXhjZXNzIEFnZW50WCB0cmFmZmljIGZvciByb3cgcmVnaXN0cmF0aW9ucykuCiAgIAogICAgIC0gcmVtb3ZlIHJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSAtLSB0aGlzIGhhcyBtb3ZlZCB0byBvbGRfYXBpLmMKICAgCiAgICAgLSBjYWxsIGpvaW5fc3VidHJlZSgpIGluIHVucmVnaXN0ZXJfbWlic19ieV9zZXNzaW9uKCkuCiAgIAoyMDAxLTEyLTEyIDA2OjMzICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jLCBhZ2VudF9oYW5kbGVyLmg6CgogICAgIC0gYWRkIGZ1bmN0aW9ucyBzbm1wX2hhbmRsZXJfZnJlZSgpLCBzbm1wX2hhbmRsZXJfZHVwKCksCiAgICAgICBzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2R1cCgpIGFuZAogICAgICAgc25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9mcmVlKCkuCiAgIAoyMDAxLTEyLTExIDE4OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIEZpeCBidWcgd2hlcmUgcGR1LT5jb250ZXh0TmFtZSBpcyBOVUxMLgogICAKMjAwMS0xMi0xMSAwNzozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBCSVRTOiBpcGFkZHIgLT4gb2N0ZXRfc3RyCiAgIAoyMDAxLTEyLTExIDA0OjExICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBzZW5kIElOQ0xVU0lWRSBzZWFyY2ggcmFuZ2VzIGlmIGFwcHJvcHJpYXRlCiAgIAoyMDAxLTEyLTEwIDIwOjQzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgbm9hY2Nlc3MgZmxhZyBmb3Igbm90LWFjY2Vzc2libGUgbm9kZXMKICAgCjIwMDEtMTItMTAgMTQ6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QLzogQ2hhbmdlcywgREJEX0FueURhdGEucGF0Y2gsCiAgIEZvcm1hdC5wbSwgSU5TVEFMTCwgTUFOSUZFU1QsIE1ha2VmaWxlLlBMLAogICBTdG9yYWdlLnBtLCBzbm1wc2g6CgogICBGaXJzdCB2ZXJzaW9uCiAgIAoyMDAxLTEyLTEwIDAzOjIwICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICAgIC0gZG9uJ3Qgc3RyZHVwIGFyZyB0byBkc19zZXRfc3RyaW5nCiAgIAoyMDAxLTEyLTEwIDAzOjE5ICBqYnBuCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgICAgLSBkaXR0byBpbiBzZXRfcGVyc2lzdGVudF9kaXJlY3RvcnkoKQogICAKMjAwMS0xMi0xMCAwMzoxOCAgamJwbgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAgIC0gZG9uJ3Qgc3RyZHVwKCkgaW4gc2V0X2NvbmZpZ3VyYXRpb25fZGlyZWN0b3J5KCkgYmVjYXVzZQogICAgICAgZHNfc2V0X3N0cmluZygpIGFscmVhZHkgZG9lcyB0aGF0IGZvciB5b3UuCiAgIAoyMDAxLTEyLTA3IDA5OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGhlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgaGVscGVycy90YWJsZV9pdGVyYXRvci5oCiwgbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIG1pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jOgoKICAgLSBJbXBsZW1lbnQgbmV3IG1hbnRyYTogImFsd2F5cyBwYXNzIG1vcmUgaW5mb3JtYXRpb24sIHJhdGhlciB0aGFuIGxlc3MiLgogICAtIGZpeCB0YWJsZSBpdGVyYXRlciBHRVRORVhUcyBmb3IgbWlzc2luZyBkYXRhIHBvaW50cy4KICAgLSBhZGQgYSBuZXcgaG9vayB0byBmcmVlIGxvb3AgY29udGV4dHMgYXQgdGhlIGVuZCBvZiB0aGUgZW50aXJlIGl0ZXJhdGlvbi4KICAgCjIwMDEtMTItMDYgMDY6NTggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMgKEpCUE4tQ0JMLTQuMSksIGNsaWVudC5jOgoKICAgICAtIGlmIHJlcXVlc3QgSURzIGRvbid0IG1hdGNoLCB0aGVuIGNhbGwgaGFuZGxlX2FnZW50eF9wYWNrZXQoKSAtLQogICAgICAgY29wZXMgYmV0dGVyIHdpdGggdW5leHBlY3RlZCBwYWNrZXRzLCBpbiBwYXJ0aWN1bGFyIGZpeGVzCiAgICAgICBpbnRlcm1pdHRlbnQgZHVwbGljYXRlIHRyYXAgaXNzdWUgKGR1ZSB0byByZXNlbnQKICAgYWdlbnR4LU5vdGlmeS1QRFUpLgogICAKMjAwMS0xMi0wNSAxMzo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBBaGVtLiAgT3Bwcy4gIE1pc3NpbmcgaW5jbHVkZXMuCiAgICAgLSBub3RlIHRvIHNlbGY6IGNvbXBpbGUgZmlyc3QsICp0aGVuKiBjaGVjayBpbiBjaGFuZ2VzLgogICAKMjAwMS0xMi0wNSAxMzo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBhZGQgaW4gdGhlIG1pc3NpbmcgZnVuY3Rpb25zIGZyb20gdGhlIE5FVy1BR0VOVC1BUEkgYnJhbmNoLgogICAgIChhbmQgdG8gYW5zd2VyIFJvYmVydCdzIHBlbmRpbmcgcXVlc3Rpb24gb2Ygd2hhdCBoYXBwZW5lZCwgaXQgd2FzCiAgICAgIGxpa2VseSBvbmUgb2YgdGhlIGZpbGVzIHRoYXQgZmFpbGVkIHRvIGNvbW1pdCBvbiBteSBzaWRlIHRoYXQgeW91CiAgICAgIHRyaWVkIHRvIGZpeCBhbmQgc29tZXdoZXJlIGJldHdlZW4gdGhlIHR3byBvZiB1cyB0aGUgY2hhbmdlcyB3ZXJlIGxvc3QpLgogICAKMjAwMS0xMi0wNSAxMDowMyAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIG1pbm9yIHR3ZWFrcwogICAKMjAwMS0xMi0wNSAwOToxNCAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIGFkZCBUQ1AvSVB2NiBkb21haW4gdG8gQUdFTlQgU1BFQyBzZWN0aW9uCiAgIAogICAgIC0gaW5jb3Jwb3JhdGUgc3VnZ2VzdGlvbnMgZnJvbSByc3RvcnkKICAgCjIwMDEtMTItMDUgMDg6NDcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgICAtIHVzZSBTT0NLX1NUUkVBTSBub3QgU09DS19ER1JBTSAoZHVoISkuICBZb3Ugd291bGRuJ3QgYmVsaWV2ZSBob3cKICAgICAgIGNvbmZ1c2luZyB0aGlzIHdhcyAtLSBlLmcuIGhvdyBvbiAqZWFydGgqIGNhbiB0aGF0IGNvbm5lY3QoKSBiZQogICAgICAgc3VjY2VlZGluZyEKICAgCjIwMDEtMTItMDUgMDg6MzYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gbWFrZSBzdXJlIHRvIGNsb3NlIHNvY2tldCBpZiB5b3UgY2FuJ3QgbWFsbG9jIHRoZSBlbmNvZGVkIGZhci1lbmQKICAgICAgIGFkZHJlc3MgaW4gc25tcF90Y3BfdHJhbnNwb3J0KCkKICAgCjIwMDEtMTItMDUgMDg6MjcgIGhhcmRha2VyCgogICAqIHdpbjMyLzogc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgc25tcHRyYXAvc25tcHRyYXAuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwKICAgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHZhY20vc25tcHZhY20uZHNwOgoKICAgbWVyZ2UgZnJvbSA0LjIgcGF0Y2hlcyB0byBtYWluIGxpbmUKICAgCjIwMDEtMTItMDUgMDg6MjMgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgRkFRLCBORVdTLCBSRUFETUUsCiAgIFJFQURNRS53aW4zMiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4sCiAgIGFnZW50L2FnZW50X2NhbGxiYWNrcy5oLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGxvY2FsL21pYjJjLCBsb2NhbC90a21pYgosIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQsCiAgIHBlcmwvU05NUC9TTk1QLnBtLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5oLAogICBzbm1wbGliL3NubXAuaCwgc25tcGxpYi9zbm1wX2FwaS5jLAogICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AsIHdpbjMyL2NvbmZpZy5oLAogICB3aW4zMi9taWJfbW9kdWxlX2NvbmZpZy5oLCB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsCiAgIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwgd2luMzIvd2luMzIuZHN3LAogICB3aW4zMi93aW4zMi5vcHQsIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AKLCB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwLAogICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsCiAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3AKLCB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgd2luMzIvc25tcGRmL3NubXBkZi5kc3AKLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLAogICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcAosIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AKOgoKICAgbWVyZ2UgZnJvbSA0LjIgcGF0Y2hlcyB0byBtYWluIGxpbmUKICAgCjIwMDEtMTItMDUgMDc6NTEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgICAtIGZpeCBidWcgaW4gYWRkcmVzcyBwYXJzZXIKICAgCjIwMDEtMTItMDUgMDc6NDggIGpicG4KCiAgICogc25tcGxpYi86IHNubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmM6CgogICAgIC0gbWlub3IgY2hhbmdlcyB0bywgYWhlbSwgbWFrZSBpdCBjb21waWxlCiAgIAoyMDAxLTEyLTA1IDA3OjQyICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIGNvbmRpdGlvbmFsaXNlICNpbmNsdWRlIDxmY250bC5oPgogICAKMjAwMS0xMi0wNSAwNzozOCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICAgIC0gZml4IHR5cG8KICAgCjIwMDEtMTItMDUgMDc6MjkgIGpicG4KCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluOgoKICAgICAtIG1lbnRpb24gdGhlIFRDUC9JUHY2IHRyYW5zcG9ydCBpbiBjb25maWcsIGFuZCBhZGQgYSAjZGVmaW5lIGZvciBpdAogICAgICAgaWYgYXBwcm9wcmlhdGUKICAgCjIwMDEtMTItMDUgMDc6MjggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgICAtIGNhbGwgc25tcF90Y3A2X2N0b3IoKSBpZiBhcHByb3ByaWF0ZQogICAKMjAwMS0xMi0wNSAwNzoyNyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcFRDUElQdjZEb21haW4uYywgc25tcFRDUElQdjZEb21haW4uaDoKCiAgICAgLSBUQ1AvSVB2NiB0cmFuc3BvcnQgZG9tYWluLiAgVW50ZXN0ZWQuCiAgIAoyMDAxLTEyLTA1IDA3OjE5ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgICAgLSBtYWtlIGVuY29kZWQgYWRkcmVzc2VzIGF0IHRyYW5zcG9ydCBvcGVuIHRpbWUKICAgCjIwMDEtMTItMDUgMDc6MTcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYywgc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSBtb3ZlICNkZWZpbml0aW9uIG9mIFNOTVBfU1RSRUFNX1FVRVVFX0xFTiBmcm9tIHNubXBUQ1BEb21haW4uYwogICAgICAgdG8gc25tcF90cmFuc3BvcnQuaAogICAKMjAwMS0xMi0wNSAwNzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jOgoKICAgcmVtb3ZlIHNvbWUgdW5uZWVkZWQgZnVuY3Rpb25zIGxpa2UsIG9oLCBJIGRvbid0IGtub3csIGdldFN0YXRQdHIoKS4KICAgCjIwMDEtMTItMDUgMDU6NDMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIHJlbW92ZSBsZWdhY3kgY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTEyLTA1IDA1OjA2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgICAgLSBjaGFuZ2VkIHRleHR1YWwgYWRkcmVzcyBwYXJzaW5nCiAgIAoyMDAxLTEyLTA0IDIyOjUyICBuYmEKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgRml4IGJpbmQgcGFyYW1ldGVycywgc28gdGhhdCB0aGUgYWdlbnQgd29ya3MKICAgCjIwMDEtMTItMDQgMTM6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuaCwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZgo6CgogICAtIG1vdmUgZm9yZ290dGVuIGZ1bmN0aW9uIHR5cGVkZWZzIHRvIGl0ZXJhdG9yIHNwZWNpZmljIGhlYWRlciBmaWxlLgogICAtIGFkZCBhIHZvaWQgKiBwb2ludGVyIGZvciB0aGUgY2FsbGJhY2tzIHRvIG1ha2UgZnVuY3Rpb25zIG1vcmUgcmV1c2FibGUuCiAgIAoyMDAxLTEyLTA0IDEzOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmgsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYKOgoKICAgbW92ZSBpdGVyYXRvciBzcGVjaWZpYyB0YWJsZSBpbmZvcm1hdGlvbiBpbnRvIGl0cyBvd24gc3RydWN0dXJlLgogICAKMjAwMS0xMi0wNCAxMjoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5oOgoKICAgRml4IHByb3RvdHlwZSBhcyBwb2ludGVkIG91dCBieSBKZXJvbWUgUGVkdWNhc3NlCiAgIAoyMDAxLTEyLTA0IDEwOjEwICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAgIC0gbWVudGlvbiB0aGF0IG5vdCBhbGwgdHJhbnNwb3J0IGRvbWFpbnMgYXJlIGFsd2F5cyBhdmFpbGFibGUuCiAgIAoyMDAxLTEyLTA0IDA5OjU1ICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAgIC0gcmVtb3ZlIC1wIGFuZCAtVCBvcHRpb25zIGZyb20gZG9jdW1lbnRhdGlvbi4KICAgCiAgICAgLSBhZGQgbGVuZ3RoeSBuZXcgc2VjdGlvbiBkZXNjcmliaW5nIG5ldyB0cmFuc3BvcnQgYWRkcmVzcwogICAgICAgc3BlY2lmaWNhdGlvbiBmb3JtYXQsIHdpdGggZXhhbXBsZXMgYW5kIGV2ZXJ5dGhpbmchCiAgIAoyMDAxLTEyLTA0IDA3OjE0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAgIC0gZHJvcCAtcCBhbmQgLVQgb3B0aW9ucyBmb3IgYXBwcy4KICAgCjIwMDEtMTItMDQgMDM6MTAgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBVRFBJUHY2RG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmg6CgogICAgIC0gYWRkIGNyZWF0ZV9vc3RyaW5nIG1ldGhvZCwgZXhwb3J0IHVjZFNubXBVRFBJUHY2RG9tYWluW10KICAgCjIwMDEtMTItMDQgMDI6MTkgIGpicG4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgICAtIG1lbnRpb24gSVB2NiB0cmFuc3BvcnQgZG9tYWluIE9JRHMgaW4gcmVsZXZhbnQgY29tbWVudC4KICAgCjIwMDEtMTItMDMgMTU6MDcgIG5iYQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFF1ZWxsIGEgY29uc3QgY2FzdCB3YXJuaW5nLgogICAKMjAwMS0xMi0wMyAxNTowNyAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBkZWJ1ZyBvdXRwdXQgZnJvbSByZXRyaWVzLgogICAKMjAwMS0xMi0wMyAxNTowNiAgbmJhCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLCBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgSEFWRV9TWVNfVFlQRVNfSCBpcyBub3QgY29uZGl0aW9uYWwuCiAgIAoyMDAxLTEyLTAzIDE1OjA0ICBuYmEKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIEZpeCB0byBhbGxvdyBjb21waWxhdGlvbnMgb3V0c2lkZSBzb3VyY2UgZGlyZWN0b3J5LgogICAKMjAwMS0xMi0wMyAxNTowMyAgbmJhCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBGaXhlcyB0byBtYWtlIFVEUElQdjYgdHJhbnNwb3J0IHdvcmsgZm9yIFNvbGFyaXMsIExpbnV4IGFuZCBGcmVlQlNELgogICBJdCBjb21waWxlcywgYW5kIHRoZSBhcHBzIHNlbmQgdjYgcGFja2V0cy4gQWdlbnQgbm90IHlldCB0ZXN0ZWQuCiAgIAoyMDAxLTEyLTAzIDA5OjQ4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLml0ZXJhdGUuY29uZiwgbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZgo6CgogICBjb3B5IHJvYmVydHMgc3BpZmZ5IGhlYWRlciB0ZXh0CiAgIAoyMDAxLTEyLTAzIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGRhdGVudGltZSBjb2x1bW4uCiAgIAoyMDAxLTEyLTAzIDA4OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggcHJvYmxlbSB3aXRoIGRvdWJsZSBkZWxlZ2F0ZWQgcmVxdWVzdHMgYWZ0ZXIgZ2V0bmV4dCBsb29wLgogICAKMjAwMS0xMi0wMyAwODowMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIG1pYnMvTk9USUZJQ0FUSU9OLUxPRy1NSUIudHh0OgoKICAgbm90aWZpY2F0aW9uIGxvZyBtaWIgYWRkZWQgdG8gZGVmYXVsdCBsaXN0LgogICAKMjAwMS0xMi0wMyAwNTozMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSByZW1vdmUgc3B1cmlvdXMgZGVidWdnaW5nIG91dHB1dCAoImJsYWgiKQogICAKMjAwMS0xMS0zMCAyMzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMsIHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oCjoKCiAgIENoYW5nZSBob3cgcmVxdWVzdCBwcm9jZXNzaW5nIGdldHMgZG9uZSBzdWNoIHRoYXQgcmVxdWVzdCBvYmplY3RzIGFyZQogICBhbGwgY2FsbG9jZWQgYXQgb25jZSBhbmQgZ2V0IHJldXNlZCBpbnN0ZWFkIG9mIHJlYWxsb2NhdGVkLiAgQmlnIHNwZWVkCiAgIGltcHJvdmVtZW50cy4KICAgCjIwMDEtMTEtMzAgMTU6MjIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBkb3h5Z2VuLmNvbmY6CgogICAibWFrZSBkb2MiIHRvIHJ1biBkb3h5Z2VuLgogICAKMjAwMS0xMS0zMCAxMDozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IGRlYnVnX2hhbmRsZXIuYywgbXVsdGlwbGV4ZXIuaDoKCiAgIGRveHlnZW4gZml4ZXMKICAgCjIwMDEtMTEtMzAgMDk6MjYgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgICAtIHVzZSBERUJVR01TR09JRFJBTkdFIGluIHJlZ2lzdGVyX2hhbmRsZXIoKSBpZiBhcHByb3ByaWF0ZS4KICAgCjIwMDEtMTEtMzAgMDk6MjQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhayBpbiByZWdpc3Rlcl9hZ2VudHhfbGlzdCgpIHdoZW4gc3ViYWdlbnQgdHJpZXMgdG8KICAgICAgIHJlZ2lzdGVyIGEgTUlCIHJlZ2lvbiB0aGF0IGZhaWxzIGVpdGhlciBiZWNhdXNlIGl0IGlzIGEgZHVwbGljYXRlCiAgICAgICBvciBiZWNhdXNlIG9mIHNvbWUgb3RoZXIgcmVhc29uLgogICAKMjAwMS0xMS0zMCAwODo0NCAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgb2Ygb2xkX2luZm8gKHRoYXQgbmV2ZXIgc2VlbXMgdG8gZ2V0IHVzZWQgZm9yCiAgICAgICBhbnl0aGluZyBhbnl3YXk/KQogICAKICAgICAtIGZpeCBtZW1vcnkgbGVhayB0aGF0IGFyaXNlcyBkdXJpbmcgcm93IHJlZ2lzdHJhdGlvbiAoaW4gQWdlbnRYCiAgICAgICBzdWJhZ2VudHMpIGJlY2F1c2Ugc3VjY2Vzc2l2ZSB2YXJzIGNhdXNlIGFwcGFyZW50IGR1cGxpY2F0ZQogICAgICAgcmVnaXN0cmF0aW9ucyAodGhpcyBpcyBhIGRlZmljaWVuY3kpIC0tIGJ1dCBpdCB3b3VsZCBhcHBlYXIgdGhpcwogICAgICAgY291bGQgYXJpc2UgaW4gb3RoZXIgc2l0dWF0aW9ucyB0b28gKGdlbnVpbmUgZHVwbGljYXRlCiAgICAgICByZWdpc3RyYXRpb25zKS4KICAgCjIwMDEtMTEtMzAgMDY6MzMgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgICAtIGZpeCBicm9rZW4gcGFyc2luZyBpbiBzbm1wZF9wYXJzZV9jb25maWdfdHJhcHNlc3MoKSAtLSBsb29wIHdhcwogICAgICAgY29weWluZyB0aGUgc2FtZSAoZmlyc3QpIHRva2VuIE1BWF9BUkdTIHRpbWVzLgogICAKICAgICAtIGVsaW1pbmF0ZSBtZW1vcnkgbGVhayBpbiBkaXR0by4KICAgCiAgICAgLSBmaXggdHlwbyAoIlBhdXNpYmxlIGNhdXNlIiAtPiAiUG9zc2libGUgY2F1c2UpIGluIGRpdHRvLgogICAKMjAwMS0xMS0zMCAwNjoyOSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcHJpbnQgZmQgaW4gc2Vzc19wcm9jZXNzX3BhY2tldCgpIC0tIHVzZWZ1bCBmb3IgZGVidWdnaW5nCiAgIAoyMDAxLTExLTMwIDA2OjI4ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcENhbGxiYWNrRG9tYWluLmg6CgogICAgIC0gcmVtb3ZlIGEgY291cGxlIG9mIHVubmVjZXNzYXJ5ICNpbmNsdWRlcyBmcm9tIHNubXBDYWxsYmFja0RvbWFpbi5oCiAgIAogICAgIC0gc2V0ICpvcGFxdWUgdG8gTlVMTCBhZnRlciB3ZSBmcmVlIGl0IC0tIGl0IG1pZ2h0IG1hdHRlci4KICAgCjIwMDEtMTEtMzAgMDM6NDcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gY2xvbmUgUERVIGluIGhhbmRsZV9hZ2VudHhfc3ViYWdlbnQoKSBiZWZvcmUgc2VuZGluZyBpdCBvbiBjYWxsYmFjawogICAgICAgc2Vzc2lvbiB0byBhdm9pZCBkb3VibGUgZnJlZSgpIGFuZCBmcmVlKClkIG1lbW9yeSByZWFkcy4KICAgCiAgICAgLSBtb3JlIGNvbmNpc2UgKGFoZW0pIGRlY2xhcmF0aW9uIG9mIG15Y2FsbGJhY2sgaW4gaGFuZGxlX2FnZW50eF9wYWNrZXQoKS4KICAgCjIwMDEtMTEtMjkgMDU6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIHB1dCBzZXNzaW9uIGFuZCBzdWJzZXNzaW9uIGluIHN1YmFnZW50IGRlc2NyaXB0aW9uIChoZWxwZnVsIGZvcgogICAgICAgZGVidWdnaW5nKQogICAKMjAwMS0xMS0yOSAwNTo0OSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgICAtIGZpeCBJTlNUQUxMSEVBREVSUwogICAKMjAwMS0xMS0yOSAwNTo0OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBhZGQgc29tZSBkZWJ1Z2dpbmcgdG8gaW5pdF9zdWJhZ2VudCgpICh3aGljaCBzaG93ZWQgdGhhdCBpdCB3YXNuJ3QKICAgICAgIGJlaW5nIGNhbGxlZCwgc28uLi4pLgogICAKICAgICAtIGZpeCBjYXN0IGluIGhhbmRsZV9zdWJhZ2VudF9zZXRfcmVzcG9uc2UoKQogICAKMjAwMS0xMS0yOSAwNTo0NiAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBtYWtlIHN1cmUgaW5pdF9zdWJhZ2VudCgpIGdldHMgY2FsbGVkCiAgIAoyMDAxLTExLTI4IDA5OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgY2hlY2sgZm9yIHNlc3Npb24gcmVnaXN0cmF0aW9ucyBpbiBhbGwgY29udGV4dHMuCiAgIAoyMDAxLTExLTI4IDA2OjM5ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywgc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIEFkZCBzeXMvdHlwZXMuaCBmb3IgYnVnICM0ODYyNzcuCiAgIAoyMDAxLTExLTI4IDA0OjAzICBqYnBuCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgICAtICNpbmNsdWRlIDxuZXRkYi5oPgogICAKMjAwMS0xMS0yOCAwNDowMyAgamJwbgoKICAgKiBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAgIC0gaW5zdGFsbCBzbm1wX3RyYW5zcG9ydC5oIGFuZCBzbm1wKkRvbWFpbi5oIChmb3IgdGhlIGNvbmZpZ3VyZWQKICAgICAgIHRyYW5zcG9ydCBkb21haW5zKQogICAKMjAwMS0xMS0yOCAwMzoyOSAgamJwbgoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICAgIC0gcmV2ZXJzZSBteXN0ZXJ5IHJlbW92YWwgb2YgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4gYW5kICNpbmNsdWRlCiAgIDxzeXMvdGltZS5oPgogICAKMjAwMS0xMS0yNyAxNzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgIG1vcmUgaW50ZWxsaWdlbnRseSBhbGxvY2F0ZSB0cmVlIHNwYWNlIGJhc2VkIG9uIG51bWJlciBvZiB2YXJiaW5kcyBpbiByZXF1ZXN0LgogICAKMjAwMS0xMS0yNyAxNDoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgIG1hbGxvYyBvbmUgbGFyZ2UgdHJlZV9jYWNoZSBhcnJheSByYXRoZXIgdGhhbiBhbiBhcnJheSBvZiB0cmVlX2NhY2hlIHBvaW50ZXJzLgogICAKMjAwMS0xMS0yNyAxMjoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5oOgoKICAgaW5jbHVkZSBmaWxlIG5hbWUgY2hhbmdlLgogICAKMjAwMS0xMS0yNyAxMTo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY29tbWVudCBjaGFuZ2VzLgogICAKMjAwMS0xMS0yNyAwNzo1MiAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGZpeGVkIE1ha2VmaWxlIGZvciBzbm1wdHJhcGQuCiAgIAoyMDAxLTExLTI3IDA3OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogTWFrZWZpbGUuaW4sIGFsbF9oZWxwZXJzLmMsCiAgIGFsbF9oZWxwZXJzLmgsIGRlYnVnX2hhbmRsZXIuYywgZGVidWdfaGFuZGxlci5oOgoKICAgZGVidWcgaGFuZGxlciBjcmVhdGVkIGZvciBpbnNlcnRpbmcgZGVidWdnaW5nIG91dHB1dCBpbnRvIHRoZSBjYWxsaW5nIGNoYWluLgogICAKMjAwMS0xMS0yNyAwNzo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgZW51bSBkZWZpbml0aW9ucyBmb3IgbW9kZXMgYW5kIGNhbl9tb2Rlcy4KICAgCjIwMDEtMTEtMjYgMTU6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHNldCBQRFUgdmFyaWFibGUgdG8gTlVMTCB0byBhdm9pZCBmcmVlaW5nIGl0IHR3aWNlLgogICAKMjAwMS0xMS0yNiAxMToyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIHBsdWcgYW5vdGhlciBtZW1vcnkgbGVhay4KICAgCjIwMDEtMTEtMjYgMDk6MDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIwc25tcHYzZ2V0LCBUMDIxc25tcHYzZ2V0bmV4dCwKICAgVDAyMnNubXB2M2dldE1ENSwgVDAyM3NubXB2M2dldE1ENURFUywKICAgVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVMsCiAgIFQwMjhzbm1wdjNnZXRmYWlsLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uLAogICBUMDUzYWdlbnR2MXRyYXAsIFQwNTRhZ2VudHYyY3RyYXAsIFQwNTVhZ2VudHYxbWludHJhcAosIFQwNTZhZ2VudHYyY21pbnRyYXAsIFQxMTBhZ2VudHhnZXQsCiAgIFQxMTFhZ2VudHhzZXQsIFQxMTJhZ2VudHhzZXRmYWlsLCBUMTEzYWdlbnR4dHJhcCwKICAgVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQsIFQxMjJwcm94eXNldGZhaWw6CgogICBkb24ndCB1c2UgY29udGV4dHMgaW4gdGVzdHMuCiAgIAoyMDAxLTExLTI2IDA4OjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgZml4IG1lbW9yeSBsZWFrLgogICAKMjAwMS0xMS0yNiAwODo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0ZXN0ZGVsYXllZC5jLCBhZ2VudHgvbWFzdGVyLmMsCiAgIHVjZC1zbm1wL3Byb3h5LmM6CgogICB1c2UgZnJlZV9kZWxlZ2F0ZWRfY2FjaGUoKSB0byBwbHVnIG1lbW9yeSBsZWFrcy4KICAgCjIwMDEtMTEtMjYgMDg6NDggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jLCBhZ2VudF9oYW5kbGVyLmg6CgogICBmcmVlX2RlbGVnYXRlZF9jYWNoZSgpIHJvdXRpbmUKICAgCjIwMDEtMTEtMjYgMDg6MTkgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBhZGQgdGhlIGFiaWxpdHkgdG8gbGlzdGVuIGZvciB0cmFwcyBvbiBtdWx0aXBsZSB0cmFuc3BvcnRzIHZpYSB0aGUKICAgICAgIC1wIG9wdGlvbiAoY29uc2lzdGVudCB3aXRoIHNubXBkKS4KICAgCjIwMDEtMTEtMjYgMDU6NDQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgICAtIHVzZSBzbm1wX3Rkb21haW5fdHJhbnNwb3J0X29pZCgpIHRvIGRvIHNlc3Npb24gY3JlYXRpb24gZnJvbQogICAgICAgPHREb21haW4tb2lkLCB0QWRkcmVzcy1vY3RldC1zdHJpbmc+IHBhaXIsIHRvIGFsbG93IGNyZWF0aW9uIG9mCiAgICAgICBub24tSVB2NCBzZXNzaW9ucyBpbiBzbm1wVGFyZ2V0QWRkclRhYmxlLgogICAKMjAwMS0xMS0yNiAwNDo0NSAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYywgc25tcElQWERvbWFpbi5jLAogICBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYywgc25tcFVuaXhEb21haW4uYwosIHNubXBfdHJhbnNwb3J0LmMsIHNubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gYWRkIHN1cHBvcnQgZm9yIGNyZWF0aW5nIGEgdHJhbnNwb3J0IGZyb20gYQogICAgICAgPHREb21haW4tb2lkLCB0QWRkcmVzcy1vY3RldC1zdHJpbmc+IHBhaXIuCiAgIAoyMDAxLTExLTI2IDAzOjA2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgICAgLSB1c2Ugc25tcF90ZG9tYWluX3N1cHBvcnQoKSB0byBkZXRlcm1pbmUgd2hldGhlciBhIHRyYW5zcG9ydCBkb21haW4KICAgICAgIGlzIHN1cHBvcnRlZC4KICAgCjIwMDEtMTEtMjMgMTA6MjQgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBhZGQgbXVsdGlwbGUgdHJhbnNwb3J0IGRvbWFpbiBzdXBwb3J0IGZvciB0cmFwZCAtLSB0aGlzIHdhcyByZWFsbHkKICAgICAgIFJFQUxMWSBlYXN5IQogICAKMjAwMS0xMS0yMyAwOToyNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIHJlbW92ZSBsZWdhY3kgZnVuY3Rpb24gc25tcF90cmFuc3BvcnRfc3VwcG9ydCgpIChyZXBsYWNlZCB3aXRoCiAgICAgICBzbm1wX3Rkb21haW5fc3VwcG9ydCgpKS4KICAgCjIwMDEtMTEtMjMgMDg6NTcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jOgoKICAgICAtIHVzZSBuZXR3b3JrIG9yZGVyIGZvciBBQUw1UFZDIHRyYW5zcG9ydCBhZGRyZXNzIGVuY29kaW5nCiAgIAoyMDAxLTExLTIzIDA4OjQ3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wSVBYRG9tYWluLmMsCiAgIHNubXBVbml4RG9tYWluLmM6CgogICAgIC0gc2V0IGxvY2FsX2xlbmd0aCwgcmVtb3RlX2xlbmd0aCBhcyBhcHByb3ByaWF0ZQogICAKMjAwMS0xMS0yMyAwODozOSAgamJwbgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgICAtIGZpeCB0eXBvCiAgIAoyMDAxLTExLTIzIDA4OjM0ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICAgIC0gbWFrZSB0cmFwcyB3b3JrIHdpdGggbmV3LXN0eWxlIGFkZHJlc3NlcywgdXNlIGRvbWFpbi1iYXNlZCBhZGRyZXNzCiAgICAgICBlbmNvZGluZ3MgaW4gc25tcFRhcmdldEFkZHJUYWJsZS4gIE5vdGUgeW91IGNhbiBub3cgc2VuZCB0cmFwcy9pbmZvcm1zCiAgICAgICBvdmVyIGFueSBzdXBwb3J0ZWQgdHJhbnNwb3J0IHR5cGUgYnkgdXNpbmcgdGhlIHRyYXBzZXNzIGRpcmVjdGl2ZSBhbmQKICAgICAgIGEgdHJhbnNwb3J0OmFkZHJlc3MgdHlwZSBzcGVjaWZpY2F0aW9uLgogICAKMjAwMS0xMS0yMyAwODozMSAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYywgc25tcElQWERvbWFpbi5jLAogICBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYywgc25tcFVuaXhEb21haW4uYwo6CgogICAgIC0gY3JlYXRlIGFwcHJvcHJpYXRlbHktZW5jb2RlZCBsb2NhbCBvciByZW1vdGUgZW5kcG9pbnQgYWRkcmVzc2VzIGF0CiAgICAgICB0cmFuc3BvcnQgb3BlbiB0aW1lLgogICAKMjAwMS0xMS0yMyAwNjo1MCAgamJwbgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgICAtIHVwZGF0ZSBkZXBlbmRlbmNpZXMgZm9yIHRyYW5zcG9ydHMKICAgCjIwMDEtMTEtMjIgMDk6MDggIGpicG4KCiAgICogdGVzdGluZy86IFRFU1RDT05GLnNoLCBldmFsX3Rvb2xzLnNoLAogICB0ZXN0cy9UMDAxc25tcHYxZ2V0LCB0ZXN0cy9UMDAyc25tcHYxZ2V0bmV4dCwKICAgdGVzdHMvVDAwM3NubXB2MWdldGZhaWwsIHRlc3RzL1QwMTRzbm1wdjJjZ2V0LAogICB0ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsIHRlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwKICAgdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbAosIHRlc3RzL1QwMjBzbm1wdjNnZXQsIHRlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LAogICB0ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LCB0ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLAogICB0ZXN0cy9UMDI0c25tcHYzZ2V0U0hBMSwgdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUywKICAgdGVzdHMvVDAyOHNubXB2M2dldGZhaWwsIHRlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24sCiAgIHRlc3RzL1QwNDlzbm1wdjNpbmZvcm0sIHRlc3RzL1QwNTBzbm1wdjN0cmFwLAogICB0ZXN0cy9UMDUxc25tcHYyY3RyYXAsIHRlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLAogICB0ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RzL1QwNTRhZ2VudHYyY3RyYXAsCiAgIHRlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwgdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwKICAgdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsIHRlc3RzL1QxMDBhZ2VudGh1cCwKICAgdGVzdHMvVDExMGFnZW50eGdldCwgdGVzdHMvVDExMWFnZW50eHNldCwKICAgdGVzdHMvVDExMmFnZW50eHNldGZhaWwsIHRlc3RzL1QxMTNhZ2VudHh0cmFwLAogICB0ZXN0cy9UMTIwcHJveHlnZXQsIHRlc3RzL1QxMjFwcm94eXNldCwKICAgdGVzdHMvVDEyMnByb3h5c2V0ZmFpbDoKCiAgICAgLSB1c2UgdWRwOjxob3N0bmFtZT46PHBvcnQ+IGluc3RlYWQgb2YgLXAgdG8gbWFrZSB0ZXN0cyB3b3JrIGFnYWluCiAgIAoyMDAxLTExLTIyIDAwOjIwICBoYXJkYWtlcgoKICAgKiBhcHBzLzogbm90aWZpY2F0aW9uX2xvZy5jLCBub3RpZmljYXRpb25fbG9nLmg6CgogICBtb3JrIHdvcmUgb24gdGhlIG5vdGlmaWNhdGlvbiBsb2cgbWliLiAgSXQgbm93IHN1cHBvcnRzIHZhcmlhYmxlCiAgIHN0b3JhZ2UsIGJ1dCBzZWdmYXVsdHMgb24gYWNjZXNzIGR1ZSB0byBwZHUgY2xvbmluZyBwcm9ibGVtcyBJJ20gbm90CiAgIGdvaW5nIHRvIHdvcmsgb3V0IHJpZ2h0IG5vdy4KICAgCjIwMDEtMTEtMjEgMjM6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBmaXggc25tcHRyYXBkIGxpbmtpbmcuCiAgIAoyMDAxLTExLTIxIDIyOjU4ICByc3RvcnkKCiAgICogc25tcGxpYi9hc24xLmg6CgogICByZW1vdmUgZHVwbGljYXRlIE9JRF9MRU5HVEg7IHVzZSBhY3R1YWwgb2lkIHR5cGUgaW4gY2FsY3VsYXRpb24KICAgCjIwMDEtMTEtMjEgMjI6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBhZGQgTlVMTCBwb2ludGVyIGZvciByYnVpbGQgaW4gc2Vzc2lvbiBjcmVhdGlvbi4KICAgCjIwMDEtMTEtMjEgMjI6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jCjoKCiAgIG5ldGluZXQvaW4uaCBuZWVkZWQuCiAgIAoyMDAxLTExLTIxIDIyOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIHZhcmlhYmxlIGNsZWFuIHVwcy4KICAgCjIwMDEtMTEtMjEgMjI6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsIGxvY2FsL21pYjJjLAogICBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmYsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgosIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsCiAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgbG9jYWwvbWliMmMudmFydHlwZXMuY29uZiwKICAgbWFuL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQsIHBlcmwvU05NUC9TTk1QLnhzLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmgsCiAgIHNubXBsaWIvc25tcC10Yy5oLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9jbGllbnQuaCwKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmgsCiAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oLCBzbm1wbGliL3ZhY20uYwo6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjI6MDggIHJzdG9yeQoKICAgKiBzbm1wbGliLzogdmFjbS5oLCBhc24xLmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjE6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBDYWxsYmFja0RvbWFpbi5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIxOjQwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wLmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjE6MzMgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogb2lkX2FycmF5LmMsIG9pZF9hcnJheS5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIxOjMwICByc3RvcnkKCiAgICogc25tcGxpYi86IGRhdGFfbGlzdC5jLCBkYXRhX2xpc3QuaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAxODo1NiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgdmVyc2lvbi5oLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGFnZW50L21pYl9tb2R1bGVzLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF9hZ2VudC5oLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYwosIGFnZW50L3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsIGFnZW50L3Zhcl9zdHJ1Y3QuaAosIGFnZW50L2hlbHBlcnMvLmN2c2lnbm9yZSwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbgosIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywKICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5oLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuaCwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLAogICBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmgsIGFnZW50L2hlbHBlcnMvbnVsbC5jLAogICBhZ2VudC9oZWxwZXJzL251bGwuaCwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5oLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5oLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLAogICBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5oLCBhZ2VudC9oZWxwZXJzL3NldF9oZWxwZXIuaCwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmgsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5oCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5oCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5oLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmgsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oCiwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC90YXJnZXQuaAosIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmgsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaAosIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suaAosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywgYXBwcy9ub3RpZmljYXRpb25fbG9nLmgsCiAgIGFwcHMvc25tcHRyYXBkLmM6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMDY6NDMgIGpicG4KCiAgICogY29uZmlnLmguaW46CgogICAgIC0gSVB2NiBjb25maWcgZGVmcwogICAKMjAwMS0xMS0yMSAwNjozNiAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSByZW1vdmUgbm93LWV4dHJhbmVvdXMgI2luY2x1ZGUgInNubXBCbGFoRG9tYWluLmgiIGxpbmVzCiAgIAoyMDAxLTExLTIxIDAzOjM5ICBqYnBuCgogICAqIGFwcHMvLmN2c2lnbm9yZToKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDEtMTEtMjAgMDk6MzggIGpicG4KCiAgICogc25tcGxpYi86IHNubXBJUFhEb21haW4uYywgc25tcElQWERvbWFpbi5oOgoKICAgICAtIGR1aC4gIEZvcmdvdCBhIGNvdXBsZSBvZiB0aGluZ3MgdG8gZG8gd2l0aCBkb21haW4tYmFzZWQgdHJhbnNwb3J0CiAgICAgICBhZGRyZXNzIHBhcnNpbmcuCiAgIAoyMDAxLTExLTIwIDA5OjI5ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB1c2UgbmV3IGRvbWFpbi1iYXNlZCB0cmFuc3BvcnQgYWRkcmVzcyBwYXJzaW5nIGZvciBhZ2VudCBOU0FQcwogICAKMjAwMS0xMS0yMCAwOToyNyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYywgc25tcEFBTDVQVkNEb21haW4uaCwKICAgc25tcElQWERvbWFpbi5jLCBzbm1wVENQRG9tYWluLmMsIHNubXBUQ1BEb21haW4uaAosIHNubXBVRFBEb21haW4uYywgc25tcFVEUERvbWFpbi5oLAogICBzbm1wVW5peERvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5oLCBzbm1wX2FwaS5jLAogICBzbm1wX3RyYW5zcG9ydC5jLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIGRvbWFpbi1iYXNlZCB0cmFuc3BvcnQgYWRkcmVzcyBwYXJzaW5nCiAgIAoyMDAxLTExLTIwIDA5OjE2ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgICAtIFVEUC9JUHY2IHRyYW5zcG9ydCBkb21haW4uICBOb3RlOiBpbmNvbXBsZXRlIQogICAKMjAwMS0xMS0yMCAwODoyOSAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMsIGFnZW50X2luZGV4Lmg6CgogICAgIC0gdW5yZWdpc3Rlcl97c3RyaW5nLGludCxvaWR9X2luZGV4KCkgdXRpbGl0eSBmdW5jdGlvbnMgY29udHJpYnV0ZWQKICAgICAgIGJ5IERhbWlhbiBHaWxtdXJyYXkuCiAgIAoyMDAxLTExLTIwIDAyOjI2ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5oIChWNC0yLXBhdGNoZXMuMSksIHNubXBfYXBpLmg6CgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBkZWZpbml0aW9uIG9mIFNOTVBfTUFYX1NFQ19OQU1FX1NJWkUsIG5vdGVkIGJ5CiAgICAgICBLYXJsIE0uIEhlZ2Jsb29tLgogICAKMjAwMS0xMS0xOSAxNjo1OSAgZHJpZWh1aXMKCiAgICogc25tcGxpYi9hc24xLmg6CgogICBGaXggdHlwbyBpbiBjb21tZW50IFtrYXJsaGVnQG1pY3Jvc2hhcnAuY29tXQogICAKMjAwMS0xMS0xNiAwODozNCAgamJwbgoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAgIC0gYWRkIHN1cHBvcnQgZm9yIFVuc2lnbmVkMzIvR2F1Z2UzMiB0eXBlcwogICAKMjAwMS0xMS0xNSAxMDowMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBwcm90b2NvbC5jIChWNC0yLXBhdGNoZXMuNSksIHByb3RvY29sLmMKOgoKICAgICAtIHN0cmljdGVyIHRlc3QgZm9yIG51bGwgT0lEcwogICAKMjAwMS0xMS0xNSAwODo0NCAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkb2N1bWVudCByZWFkLW9ubHkgbmF0dXJlIG9mIHNubXBFbmFibGVBdXRoZW5UcmFwcy4wIGlmIHZhbHVlIGlzCiAgICAgICBjb25maWd1cmVkIHZpYSB0aGUgYXV0aHRyYXBlbmFibGUgdG9rZW4KICAgCjIwMDEtMTEtMTUgMDg6NDQgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF90cmFwLmMsCiAgIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmM6CgogICAgIC0gbWFrZSB2YWx1ZSBvZiBzbm1wRW5hYmxlQXV0aGVuVHJhcHMuMCBwZXJzaXN0ZW50LiAgU2V0dGluZyB2aWEKICAgICAgIGEgcmVhZC1vbmx5IGNvbmZpZ3VyYXRpb24gZmlsZSBhbHNvIG1ha2VzIG9iamVjdCBub3RXcml0YWJsZSAoYXMKICAgICAgIHN5c0NvbnRhY3QuMCBldCBhbC4pLgogICAKMjAwMS0xMS0xNSAwNjo1NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBsZXQgVkFDTSBjaGVja3Mgc3VjY2VlZCBmb3Igbm9uLUlQdjQgdHJhbnNwb3J0cwogICAKMjAwMS0xMS0xNSAwNToxOSAgamJwbgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDExMWFnZW50eHNldCwgVDEyMXByb3h5c2V0OgoKICAgICAtIHVzZSBwc3lzY29udGFjdCBub3Qgc3lzY29udGFjdCB0byBzZXQgaW5pdGlhbCB2YWx1ZSBvZiBzeXNDb250YWN0LjAKICAgICAgIG9iamVjdCBzaW5jZSB0aGUgbGF0dGVyIGFsc28gbWFrZXMgdGhlIG9iamVjdCByZWFkLW9ubHkuCiAgIAoyMDAxLTExLTE1IDA1OjA3ICBqYnBuCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjYpLCBzbm1wZC5jOgoKICAgICAtIG1pbm9yIGZpeCB0byBmb3JtYXR0aW5nIG9mIHVzYWdlIG1lc3NhZ2UKICAgCjIwMDEtMTEtMTUgMDQ6MDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgICAgLSBhZGQgbWlzc2luZyAjaW5jbHVkZSAic25tcGQuaCIgKGZvciAjZGVmaW5pdGlvbiBvZiBNQVNURVJfQUdFTlQpCiAgICAgLSBkb24ndCBzdHJkdXAoKSBhZ2VudHhzb2NrZXQgdmFsdWUgLS0gZHNfc2V0X3N0cmluZyBkb2VzIGl0IGZvciB5b3UKICAgICAtIGNoYW5nZSBkZWJ1Z2dpbmcgdG8gZml0IGluIGJldHRlciB3aXRoIHJlc3Qgb2YgbW9kdWxlCiAgIAoyMDAxLTExLTE0IDE2OjA1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjQtMi1wYXRjaGVzLls3LDddKSwgY29uZmlnLmguaW4KLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHBhdGNoIGZyb20gSGFycmllIHRvIGZpeCBpbml0IGZ1bmN0aW9uIGNoZWNraW5nIGluIG1vZHVsZXMKICAgCjIwMDEtMTEtMTQgMTY6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGFnZW50eF9jb25maWcuYywgYWdlbnR4X2NvbmZpZy5oCiwgbWFzdGVyLmMsIG1hc3Rlci5oLCBzdWJhZ2VudC5oOgoKICAgc2xpZ2h0bHkgbW9kaWZpZWQgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gbW92ZSBhZ2VudHggY29uZmlndXJhdGlvbiBpbnRvCiAgIGEgc2VwYXJhdGUgZmlsZS4KICAgCjIwMDEtMTEtMTMgMTM6NTcgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgZmlsZSBub3RpZmljYXRpb25fbG9nLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMTM6NTcgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgZmlsZSBub3RpZmljYXRpb25fbG9nLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMTM6NTUgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIGZpbGUgTkVULVNOTVAtQUdFTlQtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMyAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmM6CgogICBmaWxlIG5zVHJhbnNhY3Rpb25UYWJsZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaDoKCiAgIGZpbGUgbnNUcmFuc2FjdGlvblRhYmxlLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMDU6MjkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2ggdG8gcXVpZXRlbiBzb21lIG5vaXN5IGxvZ2dpbmcKICAgCjIwMDEtMTEtMTMgMDQ6MTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIHVzZSB1bnJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSB3aGVuIGFwcHJvcHJpYXRlIGluCiAgICAgICB1bnJlZ2lzdGVyX2FnZW50eF9saXN0KCkuCiAgIAoyMDAxLTExLTEzIDAzOjIzICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gcmVzZXQgdnItPm5hbWVsZW4gd2hlbiB3ZSd2ZSBmaW5pc2hlZCB3aXRoIGl0CiAgIAoyMDAxLTExLTEyIDIzOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmM6CgogICBmaWxlIGFsbF9oZWxwZXJzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTIgMjM6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaDoKCiAgIGZpbGUgYWxsX2hlbHBlcnMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0wOCAwODowOSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIGJldHRlciBpbXBsZW1lbnRhdGlvbiBvZiB1bnJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSwgd2hpY2ggdXNlcwogICAgICAgcmFuZ2VzIHByb3Blcmx5IGluIHRoZSBjYWxsYmFjayAoaGVuY2UgbXVjaCBtb3JlIGVmZmljaWVudCBmb3IKICAgICAgIEFnZW50WCkuCiAgIAoyMDAxLTExLTA3IDA5OjU2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIHJlbW92ZSBub3ctcmVkdW5kYW50IGFnZW50eF9idWlsZCBmdW5jdGlvbnMKICAgCjIwMDEtMTEtMDcgMDY6MzEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMsIG1hc3Rlcl9hZG1pbi5jLAogICBwcm90b2NvbC5jOgoKICAgICAtIHVzZSBERUJVR01TR09JRFJBTkdFKCkgaW4gYSBjb3VwbGUgb2YgcGxhY2VzIGZvciBtb3JlIGNvbXByZWhlbnNpdmUKICAgICAgIGRlYnVnZ2luZyBvdXRwdXQuCiAgIAogICAgIC0gcGFyc2UgdW5yZWdpc3RlciByYW5nZXMgcHJvcGVybHksIGFuZCB1c2UgdGhlIHJhbmdlIHByb3Blcmx5IGZvcgogICAgICAgcGFzc2luZyB0byB1bnJlZ2lzdGVyX21pYl9jb250ZXh0KCkuCiAgIAoyMDAxLTExLTA3IDAzOjMzICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaDoKCiAgICAgLSBhZGQgREVCVUdTTVNHT0lEUkFOR0UoKSBtYWNybyBmb3IgZGVidWdnaW5nIE9JRCByYW5nZXMKICAgCjIwMDEtMTEtMDYgMDY6MDQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gcmVzZXQgdGhlIGluY2x1c2l2ZSBmbGFnIGluIGEgY291cGxlIG9mIGNhc2VzLCB0byBwcmV2ZW50IHNwdXJpb3VzCiAgICAgICBJTkNMVVNJVkUgZ2V0TmV4dCBiZWhhdmlvdXIKICAgCjIwMDEtMTEtMDUgMDg6MDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gY29ycmVjdCBidWcgaW4gcmFuZ2Vfc3ViaWQgdHdlYWsgY29kZQogICAKMjAwMS0xMS0wNSAwNTowMCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIGNhbGN1bGF0ZSB1cHBlciBib3VuZCBmb3IgdGFibGUgcm93IHJlZ2lzdHJhdGlvbnMgc2xpZ2h0bHkgZGlmZmVyZW50bHkKICAgCjIwMDEtMTEtMDEgMDk6MzUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIHByb3RvY29sLmMsCiAgIHByb3RvY29sLmgsIHN1YmFnZW50LmM6CgogICAgIC0gaW1wbGVtZW50IHJlbG9jYXRpbmcgYnVmZmVyIHZlcnNpb24gb2YgYWdlbnR4X2J1aWxkKCkgcm91dGluZXMsCiAgICAgICBhbmQgdXNlIHRoZW0uCiAgIAoyMDAxLTExLTAxIDA5OjMzICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgICAtIHN1cHBvcnQgZm9yIHJlbG9jYXRhYmxlIGJ1ZmZlciBidWlsZCBjYWxsYmFja3MgdmlhIG9wZW5fZXggY2FsbHMKICAgCjIwMDEtMTAtMzAgMDc6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgICAtIGZpeCBidWcgd2hlcmVieSBpbnRlcmZhY2UgY291bnRlciBpcyBub3QgcmVzZXQsIG5vdGVkIGJ5IChhbW9uZ3N0CiAgICAgICBvdGhlcnMpIFZpY3RvciBLaXJoZW5zaHRlaW4gaW4gcGF0Y2ggIzQ3NDA2NC4KICAgCjIwMDEtMTAtMzAgMDM6MjQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1ha2UgdGhlIGluaXRpYWwgYnVmZmVyIHNpemUgMjA0OCBpbiBzbm1wX3Jlc2VuZF9yZXF1ZXN0IChhcyBpbgogICAgICAgX3Nlc3NfYXN5bmNfc2VuZCkgdG8gbWFrZSBzdWNjZXNzL2ZhaWwgYmVoYXZpb3VyIGZvciBBZ2VudFggbW9yZQogICAgICAgcHJlZGljdGFibGUgKHNpbmNlIEFnZW50WCBTVElMTCBkb2Vzbid0IHVzZSByZWxvY2F0aW5nIGJ1ZmZlcnMsCiAgICAgICBib28gaGlzcykuCiAgIAoyMDAxLTEwLTI5IDIzOjE2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgZmlsZSBtaWIyYy5hcnJheS11c2VyLmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjkgMjM6MTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmY6CgogICBmaWxlIG1pYjJjLmFycmF5LWF1dG8uY29uZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOCAxNDo1MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGZpbGUgdGFibGVfYXJyYXkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOCAxNDo1MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuaDoKCiAgIGZpbGUgdGFibGVfYXJyYXkuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOCAxNDo1MCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5Lmg6CgogICBmaWxlIG9pZF9hcnJheS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI4IDE0OjUwICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIGZpbGUgb2lkX2FycmF5LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjYgMTk6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIHBhdGNoIGZyb20gSGFycmllIHRvIGZpeCBmdW5jdGlvbiBuYW1lIGluIGVycm9yIG1lc3NhZ2UKICAgCjIwMDEtMTAtMjYgMDY6MDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaDoKCiAgICAgIC0gYWRkIHN1cHBvcnQgZm9yIHJ4IGFuZCB0eCBkcm9wIGNvdW50cyAoaWZJbkRpc2NhcmRzIGFuZAogICAgICAgIGlmT3V0RGlzY2FyZHMpIGZvciBMaW51eCAoMi4yKykKICAgCjIwMDEtMTAtMjYgMDU6NTcgIGpicG4KCiAgICogYWNsb2NhbC5tNDoKCiAgICAgLSBhZGQgaWZfaXFkcm9wcyBtZW1iZXIgdG8gc3RydWN0IGlmbmV0CiAgIAoyMDAxLTEwLTI2IDA0OjAzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgICAgLSBhZGQgdHJhbnNsYXRpb24gZm9yIGF0bSgzNykgdHlwZSBpbnRlcmZhY2VzIGZvciBMaW51eAogICAKMjAwMS0xMC0yNiAwMzo0MyAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkb2N1bWVudCB0aGUgZmFjdCB0aGF0IHNldHRpbmcgc3lzTG9jYXRpb24uMCAoZXQgYWwuKSB2aWEgYQogICAgICAgc3lzbG9jYXRpb24gKG9yIGVxdWl2YWxlbnQpIHRva2VuIG1ha2VzIHRoZSBvYmplY3QgcmVhZC1vbmx5LAogICAgICAgcmV0dXJuaW5nIGEgbm90V3JpdGFibGUgZXJyb3IgcmVzcG9uc2UgaWYgYW4gYXR0ZW1wdCBpcyBtYWRlIHRvCiAgICAgICBTRVQgaXQuCiAgIAoyMDAxLTEwLTI0IDEwOjA3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzdGVtX21pYi5jIChWNC0yLXBhdGNoZXMuNCksCiAgIHN5c3RlbV9taWIuYzoKCiAgICAgLSBmaXggdHlwbyBub3RlZCBieSBUaW0gRGlldHoKICAgCjIwMDEtMTAtMjQgMDg6NDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXN0ZW1fbWliLmMsIHN5c3RlbV9taWIuaDoKCiAgICAgLSBpbXBsZW1lbnQgcGVyc2lzdGVuY2UgZm9yIHN5c0xvY2F0aW9uLjAsIHN5c0NvbnRhY3QuMCBhbmQgc3lzTmFtZS4wCiAgIAogICAgIC0gcHJlc2VuY2Ugb2YgYSBzeXNsb2NhdGlvbiB0b2tlbiBpbiBzbm1wZC5jb25mIG1ha2VzIHN5c0xvY2F0aW9uLjAKICAgICAgIG5vbi13cml0YWJsZSAocmV0dXJucyBub3RXcml0YWJsZSBvbiBTRVQgYXR0ZW1wdHMpCiAgIAoyMDAxLTEwLTI0IDA1OjA4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zd2luc3QuYyAoVjQtMi1wYXRjaGVzLjIpLCBocl9zd2luc3QuYwo6CgogICAgIC0gZml4IHNtYWxsIG1lbW9yeSBsZWFrIGp1c3QgaW50cm9kdWNlZAogICAKMjAwMS0xMC0yNCAwMzo0MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgICAtIHVzZSBwa2dpbmZvIGludGVyZmFjZSB0byBkZXRlcm1pbmUgdHlwZSBvZiBzb2Z0d2FyZSBwYWNrYWdlIG1vcmUKICAgICAgIHNwZWNpZmljYWxseSBpZiBwb3NzaWJsZS4gIFNsaWdodCB2YXJpYXRpb24gb24gcGF0Y2ggIzQ3MzY2OSwgc3VibWl0dGVkCiAgICAgICBieSBTdGVmYW4gUmFkbWFuLgogICAKMjAwMS0xMC0yNCAwMzozOCAgamJwbgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW46CgogICAgIC0gYXV0b2NvbmYgc3VwcG9ydCBmb3IgZGV0ZWN0aW5nIHBrZ2luZm8gaW50ZXJmYWNlIGluIGxpYmFkbS4gIFRoYW5rcwogICAgICAgdG8gU3RlZmFuIFJhZG1hbiAocGF0Y2ggIzQ3MzY2OSkuCiAgIAoyMDAxLTEwLTIxIDA3OjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBmaWxlIG1pYjJjLml0ZXJhdGUuY29uZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0xOSAwOTo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIGZpbGUgbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0xNyAwNzo1MiAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuMiksIEZBUToKCiAgIE1lbnRpb24gdGhlIE1SVEcgdHV0b3JpYWwgd2ViIHBhZ2VzCiAgICAgKGFzIHN1Z2dlc3RlZCBieSBDaHJpc3RpYW4gUm9ib3R0b20gUmVpcykKICAgCjIwMDEtMTAtMTUgMDY6NDkgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBJUFhEb21haW4uYywgc25tcFVEUERvbWFpbi5jOgoKICAgICAtIHplcm8gc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlcy4gIEhvcGVmdWxseSBmaXhlcyBwcm9ibGVtcyBvbiBOZXRCU0QKICAgICAgIG5vdGVkIGJ5IEpvYWtpbSBBbHRoaW5pIChyZWxhdGVkIHRvIHNhX2xlbiBtZW1iZXIgcHJvYmFibHk/PykuCiAgIAoyMDAxLTEwLTExIDE2OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE9wcHNlcy4KICAgCjIwMDEtMTAtMTEgMTQ6MTUgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBfYXBpX2VycnN0cmluZy4zLAogICBtYW4vc25tcF9jb25maWcuNS5kZWYsIG1hbi9zbm1wX2Vycm9yLjMsCiAgIG1hbi9zbm1wX3BlcnJvci4zLCBtYW4vc25tcF9zZXNzX3BlcnJvci4zLAogICBtYW4vc25tcGNtZC4xLCBtYW4vc25tcGQuMS5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmCiwgbWFuL3NubXBzZXQuMSwgbWFuL3NubXB0cmFuc2xhdGUuMSwKICAgbWFuL3NubXB0cmFwZC44LCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYsCiAgIG1hbi9zbm1wd2Fsay4xLCBtaWJzL0RJU01BTi1TQ1JJUFQtTUlCLnR4dCwKICAgbWlicy9JQU5BaWZUeXBlLU1JQi50eHQsIG1pYnMvTWFrZWZpbGUubWliLAogICBtaWJzL1JFQURNRS5taWJzLCBtaWJzL1NNVVgtTUlCLnR4dCwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0LCBtaWJzL21pYmZldGNoLCBtaWJzL3JmY2xpc3QKLCBtaWJzL3NtaXN0cmlwLCBwZXJsL1NOTVAvU05NUC54cywKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL2ludDY0LmMsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgsIHNubXBsaWIvbXRfc3VwcG9ydC5jCiwgc25tcGxpYi9tdF9zdXBwb3J0LmgsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NjYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMKLCBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmgsIHRlc3RpbmcvTWFrZWZpbGUuaW4KLCB3aW4zMi9jb25maWcuaCwgd2luMzIvY29uZmlnLmguYm9ybGFuZDoKCiAgIG1hc3NpdmUgbWVyZ2UgZnJvbSB0aGUgcGF0Y2hlcyBicmFuY2ggdG8gdGhlIG1haW4gbGluZS4KICAgCjIwMDEtMTAtMTEgMTQ6MDEgIGhhcmRha2VyCgogICAqIENPUFlJTkcsIENoYW5nZUxvZywgRkFRLCBNYWtlZmlsZS5pbiwKICAgTkVXUywgUkVBRE1FLCBhY2NvbmZpZy5oLCBhY2xvY2FsLm00LAogICBjb25maWcuZ3Vlc3MsIGNvbmZpZy5oLmluLCBjb25maWcuc3ViLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbHRjb25maWcsIGx0bWFpbi5zaAosIG1ha2VmaWxlaW5kZXBlbmQucGwsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oCiwgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FnZW50X2luZGV4LmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3RyYXAuYywKICAgYWdlbnQvc25tcF9hZ2VudC5oLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgKLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsIGFwcHMvTWFrZWZpbGUuaW4KLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jCiwgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiwgbG9jYWwvbWliMmMuY29uZiwgbG9jYWwvbWliMmMudmFydHlwZXMuY29uZiwKICAgbG9jYWwvcGFzc19wZXJzaXN0dGVzdCwgbG9jYWwvdGttaWI6CgogICBtYXNzaXZlIG1lcmdlIGZyb20gdGhlIHBhdGNoZXMgYnJhbmNoIHRvIHRoZSBtYWluIGxpbmUuCiAgIAoyMDAxLTEwLTA5IDA3OjE0ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIFNvbWV0aW1lcyB3ZSBmZWVsIGxpa2UgYSAtbnV0CiAgIAoyMDAxLTEwLTA5IDA2OjE1ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gcHJvcGVybHkgYWNjb3VudCBmb3IgdGhlIGxlbmd0aCBvZiB0aGUgc3VmZml4IGluIHRoZSB2YXJpYWJsZQogICAgICAgdGFibGUgaW4gcmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpCiAgIAoyMDAxLTEwLTA4IDA4OjUzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgICAgLSBkZWNsYXJlIHZlcnNpb25fc3lzb2lkX2xlbiBhcyBleHRlcm4gSU5UIG5vdCBleHRlcm4gb2lkLCBzbyBhcyB0bwogICAgICAgbWF0Y2ggaXRzIGFjdHVhbCBkZWZpbml0aW9uIGluIHN5dGVtX21pYi5jLiAgVGhpcyBjYXVzZWQgYWxsIGtpbmRzIG9mCiAgICAgICBmdW4gJiBnYW1lcyBvbiBMaW51eCBvbiBhIEFscGhhLgogICAKMjAwMS0xMC0wNCAwODozMSAgamJwbgoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suYywgY2FsbGJhY2suaDoKCiAgICAgLSBhZGQgZnVuY3Rpb24gc25tcF9jYWxsYmFja19saXN0KCkgdG8gcmV0dXJuIGxpc3Qgb2YgY2FsbGJhY2tzIGZvciBhCiAgICAgICBnaXZlbiA8bWFqb3IsIG1pbm9yPiBwYWlyLgogICAKMjAwMS0xMC0wNCAwNzoxNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvcGFzc19wZXJzaXN0dGVzdDoKCiAgIGZpbGUgcGFzc19wZXJzaXN0dGVzdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTEwLTAzIDA1OjQyICBqYnBuCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgICAgLSBjaGFuZ2UgZXhwcmVzc2lvbiBhdCBsLiA0MTUgZnJvbToKICAgCiAgICAgICAgICAgKmtjc3RyaW5nKysgPSAqa2NzdHJpbmcgXiAqbmV3a2V5Kys7CiAgIAogICAgICAgd2hpY2ggaGFzIHVuZGVmaW5lZCBiZWhhdmlvdXIgdG86CiAgIAogICAgICAgICAgICprY3N0cmluZysrIF49ICpuZXdrZXkrKzsKICAgCiAgICAgICB3aGljaCBpcyBva2F5IChzaW5jZSAqa2NzdHJpbmcgaXMgb25seSBldmFsdWF0ZWQgb25jZSkuICBTaW1pbGFybHkKICAgICAgIGF0IGwuIDUzMC4gIFRoZSBwcmV2aW91cyBjb25zdHJ1Y3RzIGNhdXNlIHdhcm5pbmdzIHdpdGggR0NDMyBhbmQKICAgICAgIHNvbWUgb3RoZXIgY29tcGlsZXJzLiAgVGhhbmtzIHRvIE5pZWwgTWFya3dpY2sgd2hvIG5vdGVkIHRoaXMgaW4KICAgICAgIGJ1ZyAjNDY1OTY5LgogICAKMjAwMS0xMC0wMyAwMzoxMSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIGRvIFNOTVBEX0NBTExCQUNLX1VOUkVHSVNURVJfT0lEIGNhbGxiYWNrcyBpbgogICAgICAgdW5yZWdpc3Rlcl9taWJzX2J5X3Nlc3Npb24oKSAtLSBjYWxsZWQgd2hlbiBBZ2VudFggc3ViYWdlbnRzCiAgICAgICBkaXNhcHBlYXIuCiAgIAoyMDAxLTEwLTAyIDA2OjAxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGRvbid0IHNlbmQgQVNOX1BSSVZfSU5DTF9SQU5HRSBhbmQgQVNOX1BSSVZfRVhDTF9SQU5HRSBvbi10aGUtd2lyZQogICAKMjAwMS0wOS0yNiAwODowMyAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIGFsbG93IHNwbGl0X3N1YnRyZWUoKSB0byBkbyBhIHNwbGl0IGluIHRoZSBtaWRkbGUgb2YgYSBjb2x1bW4sCiAgICAgICBrZWVwaW5nIHRoZSByZWxldmFudCB2YXJpYWJsZSBpbiBib3RoIHRoZSBvbGQgdHJlZSBhbmQgdGhlIG5ldwogICAgICAgdHJlZSAoYXJpc2VzIGluIEFnZW50WCByb3cgcmVnaXN0cmF0aW9ucykuCiAgIAogICAgIC0gcGF0Y2ggZnJvbSBEYW1pYW4gR2lsbXVycmF5IGZvciByZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgd2hpY2gKICAgICAgIGFsbG93cyBpdCB0byBjb3BlIHdpdGggbm9uLXplcm8gbGVuZ3RoIHZhcmlhYmxlcyBhbmQgYWxzbwogICAgICAgbm9uLWNvbnRpZ3VvdXMgT0lEcyBmb3IgYWRqYWNlbnQgY29sdW1ucy4KICAgCiAgICAgLSByZXdyaXR0ZW4gZHVtcF9yZWdpc3RyeSgpIHRoYXQgdXNlcyByZWFsbG9jYXRpbmcgcHJpbnQgZnVuY3Rpb25zCiAgICAgICBhbmQgYWxzbyBwcmludHMgb3V0IHZhcmlhYmxlIGxpc3RzLgogICAKMjAwMS0wOS0yNiAwNzo0NSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBhbGxvdyBmb3IgdGhlIHBvc3NpYmlsaXR5IG9mIHN1YnRyZWUgbmFtZSBiZWluZyBsb25nZXIgdGhhbgogICAgICAgcmVxdWVzdGVkIG5hbWUgd2hlbiBjYWxjdWxhdGluZyB0aGUgc3VmZml4IGZvciB2YXJpYWJsZSBtYXRjaGluZy4KICAgCiAgICAgLSBiZSBzdHJpY3QgYWJvdXQgc3VidHJlZSBjaHVua3MgYmVpbmcgaW5jbHVzaXZlIG9mIHRoZSBzdGFydCBPSUQKICAgICAgIGFuZCBleGNsdXNpdmUgb2YgdGhlIGVuZCBPSUQgKHNob3dzIHVwIGJpZyB0aW1lIGluIEFnZW50WCkuCiAgIAoyMDAxLTA5LTI2IDA3OjIyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIGRvbid0IGRvIGdldE5leHQgcmVxdWVzdHMgb24gZXhjbHVzaXZlIHNlYXJjaFJhbmdlcyB0aGF0IGJlZ2luIGluCiAgICAgICBhIHRyZWUgbWFya2VkIGFzIGEgZnVsbHktcXVhbGlmaWVkIGluc3RhbmNlICh0aGV5IGFyZSBkb29tZWQgdG8KICAgICAgIGZhaWwpLiAgU2tpcCB0byB0aGUgbmV4dCBwYXJ0IG9mIHRoZSB0cmVlIHN0cmFpZ2h0IGF3YXkuCiAgIAoyMDAxLTA5LTI2IDA3OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBicmluZyBkZWJ1Z2dpbmcgdG9rZW5zIGludG8gbGluZSB3aXRoIHJlc3Qgb2YgQWdlbnRYIGNvZGUKICAgCjIwMDEtMDktMjUgMDg6MTUgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gcmVpbnN0YXRlIGEgbWlzc2luZyBzcGFjZSBjaGFyYWN0ZXIKICAgCjIwMDEtMDktMjUgMDM6NTggIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gcmVtb3ZlIHNwdXJpb3VzIGNhc3QKICAgCjIwMDEtMDktMjUgMDM6NDUgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBmaXggcG9zc2libGUgaW5mZWxpY2l0eSB3aGVuIHByaW50aW5nIGFuZCBzeXNsb2dnaW5nIChub3Qgc3VyZSB0aGlzIGlzCiAgICAgICBhY3R1YWxseSBwb3NzaWJsZSBidXQpCiAgIAoyMDAxLTA5LTI1IDAzOjA5ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gaW50ZWdyYXRlIHNvbWUgY2hhbmdlcyBmcm9tIHRoZSBWNC0yLXBhdGNoZXMgYnJhbmNoOiBIYXJyaWUncwogICAgICAgcHJvdG90eXBlcyBhbmQgV2VzJ3MgZml4IGZvciBidWcgICM0NjMyMjYuCiAgIAoyMDAxLTA5LTI1IDAzOjAxICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIGZpeCBzaWduZWRuZXNzIG9mIHRpbWUgc3R1ZmYKICAgCjIwMDEtMDktMjUgMDI6NDcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaDoKCiAgICAgLSBtYWtlIGFyZ3VtZW50IG9mIHNubXBfZW5hYmxlX3N5c2xvZ19pZGVudCBjb25zdAogICAKICAgICAtIGRvbid0IHN0cmR1cCBERUZBVUxUX0xPR19JRCBpZiBhIE5VTEwgYXJnIGlzIGdpdmVuCiAgIAoyMDAxLTA5LTI0IDA5OjM5ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gbWFrZSB1c2Ugb2YgcmV3cml0dGVuIG91dHB1dCBmdW5jdGlvbnMgaW4gc25tcHRyYXBkX2xvZy5jIHdoaWNoCiAgICAgICBhdm9pZCBmaXhlZCBsZW5ndGggYnVmZmVycy4KICAgCiAgICAgLSBmaXggYnVnIG5vdGVkIGluIHN1cHBvcnQgcmVxdWVzdCAjNDU2NjQ2IChjdXN0b20gdHJhcCBmb3JtYXQgd2FzCiAgICAgICBiZWluZyBpZ25vcmVkIGZvciB2MiB0cmFwcyBhbmQgaW5mb3JtcykuICBUaGFua3MgdG8KICAgICAgIEcuUHJpbmNpcGF0b0Btb3Rvcm9sYS5jb20gZm9yIHNwb3R0aW5nIHRoaXMgb25lLgogICAKICAgICAtIGNvcnJlY3QgdXNhZ2UgZm9yIC1QIG9wdGlvbiB0byByZWZsZWN0IHRoYXQgaXQgY2F1c2VzIG91dHB1dCBvbgogICAgICAgc3RkZXJyIG5vdCBzdGRvdXQuCiAgIAoyMDAxLTA5LTI0IDA5OjM2ICBqYnBuCgogICAqIGFwcHMvOiBzbm1wdHJhcGRfbG9nLmMsIHNubXB0cmFwZF9sb2cuaDoKCiAgICAgLSByZXdyaXRlIG9mIG91dHB1dCBmdW5jdGlvbnMgdG8gYXZvaWQgdXNlIG9mIGZpeGVkLWxlbmd0aCBidWZmZXJzCiAgIAoyMDAxLTA5LTIwIDEzOjA0ICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICBuZXcgbG9nbWF0Y2ggbWliIGZyb20gU3RlcGhhbiBXZW56ZWwuCiAgIAoyMDAxLTA5LTE1IDA4OjQwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIG92ZXJyaWRlIGV4Y2x1c2l2ZSBzZWFyY2hSYW5nZSBnZXROZXh0IG9wZXJhdGlvbnMgd2hlbiByZXRyeWluZwogICAgICAgb3BlcmF0aW9ucwogICAKMjAwMS0wOS0xNSAwODozOSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oOgoKICAgICAtIGltcHJvdmVkIHN1cHBvcnQgZm9yIEFnZW50WC1zdHlsZSBpbmNsdXNpdmUgc2VhcmNoUmFuZ2UgZ2V0TmV4dAogICAKMjAwMS0wOS0xNCAxNDo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBwYXRjaCAjNDQzMTE1IGZyb20gWWltaW4gR2U6IGRpc2tpbyBzdXBwb3J0IGZvciBmcmVlYnNkNAogICAKMjAwMS0wOS0xNCAxNDozNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaDoKCiAgIFBhdGNoICM0NDAzMjAgZnJvbSBNYXJrIEZlcmxhdHRlOgogICAKICAgMSkgQWRkcyBhIG5ldyBmdW5jdGlvbiB0byB0aGUgc25tcF9sb2dnaW5nIEFQSQogICAgICAoc25tcF9lbmFibGVfc3lzbG9nX2lkZW50KGNoYXIgKmlkZW50KSkKICAgCiAgIDIpIFBvcnRzIHNubXB0cmFwZCB0byB1c2UgdGhlIGV4aXN0aW5nIHNubXBfbG9nZ2luZyBBUEkgaW5zdGVhZCBvZgogICAgICB1c2luZyBzeXNsb2cgZGlyZWN0bHkuCiAgIAogICAzKSBQb3J0cyBzbm1wX2xvZ2dpbmcuW2NoXSB0byB1c2UgdGhlIFdpbjMyIEV2ZW50IExvZyB3aGVuIGNvbXBpbGVkIG9uCiAgICAgIFdpbjMyLiBJIGRpZG4ndCB1cGRhdGUgdGhlIFZpc3VhbCBDIHByb2plY3QgZmlsZXMsIGJlY2F1c2UgSSBvbmx5CiAgICAgIGhhdmUgYWNjZXNzIHRvIGEgbmV3ZXIgdmVyc2lvbiBvZiBWQywgYW5kIEkgZGlkbid0IGtub3cgaWYgeW91CiAgICAgIHdhbnRlZCB0aGVtIHVwZGF0ZWQuIFRoZSBhZHZhcGkzMiBsaWJyYXJ5IG5lZWRzIHRvIGJlIGFkZGVkIHRvIHRoZQogICAgICBwcm9qZWN0IGluIG9yZGVyIGZvciB0aGlzIHRvIHdvcmsgb24gV2luMzIgKHRoYXQncyB3aGVyZSB0aGUgZXZlbnQKICAgICAgbG9nIEFQSSBpcykuCiAgIAoyMDAxLTA5LTE0IDE0OjIyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlOgoKICAgSSwgdWgsIGNvdWdoLCB1aCBmb3Jnb3QgdG8gcnVuIGF1dG9jb25mL2F1dG9oZWFkZXIuICBEYXZlOiBkb24ndCBraWxsIG1lLgogICAKMjAwMS0wOS0xNCAxNDoxOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIFBhdGNoICM0Mjg4ODQ6IEFkZCAtUFIgbGlrZSBvcHRpb24gdG8gcGVybCBtb2R1bGUgKGZyb20gSm9lIENsYXJrZSkuCiAgIAoyMDAxLTA5LTE0IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmgKLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uaAosIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi9hc24xLmg6CgogICBBcHBsaWVkIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiBwYXRjaCAjNDI3MzQzIGZyb20gSGFycmllOgogICAgIG1ha2UgZW50ZXJwcmlzZSBJRCByZWxvY2F0YWJsZSB3aGVyZSBsZWdhbCB0byBkbyBzbwogICAKMjAwMS0wOS0xNCAxMjowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICBBbHRlcm5hdGl2ZSBzb2x1dGlvbiB0byBwYXRjaCAjMzEyNjk0OgogICAgIG1vdmUgZGF0ZV9uX3RpbWUgdXRpbGl0aWVzIHRvIHNubXBsaWIvc25tcC10Yy5jLgogICAKMjAwMS0wOS0xNCAxMjowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3V0aWxzLmMsIGhyX3V0aWxzLmg6CgogICByZW1vdmVkLiAgRnVuY3Rpb25hbGl0eSBtb3ZlZCB0byBzbm1wbGliL3NubXAtdGMuW2NoXQogICAKMjAwMS0wOS0xNCAxMjowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYywgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcC10Yy5oOgoKICAgQWx0ZXJuYXRpdmUgc29sdXRpb24gdG8gcGF0Y2ggIzMxMjY5NDoKICAgICBtb3ZlIGRhdGVfbl90aW1lIHV0aWxpdGllcyB0byBzbm1wbGliL3NubXAtdGMuYy4KICAgCjIwMDEtMDktMTQgMDk6NDggIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQ6CgogICBmaWxlIGNvbmZpZy5oLmJvcmxhbmQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOS0xNCAwNjoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgbWFzdGVyX3JlcXVlc3QuYywKICAgbWFzdGVyX3JlcXVlc3QuaDoKCiAgICAgLSB1c2UgaW5jbHVzaXZlIHNlYXJjaCByYW5nZSBvbmx5IHdoZW4gYXBwcm9wcmlhdGUgZm9yIGdldE5leHQKICAgICAgIHF1ZXJpZXMKICAgCjIwMDEtMDktMTIgMDY6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBmaWxlIHNubXBDYWxsYmFja0RvbWFpbi5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA5LTEyIDA2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5oOgoKICAgZmlsZSBzbm1wQ2FsbGJhY2tEb21haW4uaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOS0wNiAwNzo0MCAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF92YXJzLmM6CgogICAgIC0gaWYgaW5jbHVkZSBiaXQgaXMgc2V0IGluIGFuIEFnZW50WCBTZWFyY2hSYW5nZSAoaGVuY2UgdHlwZSBvZiB2YXJiaW5kCiAgICAgICBpcyBBU05fUFJJVl9JTkNMX1JBTkdFKSwgdHJ5IGFuIGV4YWN0IHF1ZXJ5IGZpcnN0IGJlY2F1c2UgYW4gb2JqZWN0CiAgICAgICB3aG9zZSBuYW1lIGlzIGxleGktZXF1YWwgaXMgYSB2YWxpZCByZXNwb25zZTsgaWYgZXhhY3QgcXVlcnkgZmFpbHMKICAgICAgIHRoZW4gZmFsbCBiYWNrIHRvIGFuIGluZXhhY3QgcXVlcnkuCiAgIAoyMDAxLTA5LTA2IDA3OjM4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBtYXN0ZXJfcmVxdWVzdC5jLAogICBwcm90b2NvbC5jLCBzdWJhZ2VudC5jOgoKICAgICAtIG9vcHMsIHVzZWQgSU5DTC9FWENMIHdyb25nIHdheSByb3VuZCBpbiBhIGNvdXBsZSBvZiBwbGFjZXMKICAgCiAgICAgLSBiZXR0ZXIgdGVzdCBmb3Igc2NvcGluZyByZXF1aXJlbWVudHMgaW4gc3ViYWdlbnQKICAgCjIwMDEtMDktMDQgMDc6MTQgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBhZGQgbWlzc2luZyBicmVhazsgYWZ0ZXIgcHJvY2Vzc2luZyAtUCBvcHRpb24sIG5vdGVkIGJ5IEJvdG9uZAogICAgICAgVGFybmF5IChzZWUgcGF0Y2ggIzQ1ODMyNykKICAgCjIwMDEtMDgtMjggMDM6MDQgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTItcGF0Y2hlcy43KSwgc25tcF9hZ2VudC5jOgoKICAgICAtIGFkZCBtaXNzaW5nICNpbmNsdWRlIDx0Y3BkLmg+IGlmIHVzaW5nIGxpYndyYXAsIG5vdGVkIGJ5IE5hdGhhbgogICAgICAgTmV1bGluZ2VyIChwYXRjaCAjNDUzODMxKS4KICAgCjIwMDEtMDgtMjggMDI6MzggIGpicG4KCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMSksIHNubXBkLmM6CgogICAgIC0gYXZvaWQgdXNlIG9mIHByZS1wcm9jZXNzb3IgZGlyZWN0aXZlcyBpbnNpZGUgcHJpbnRmKCkgY2FsbCwgd2hpY2gKICAgICAgIGlzIGEgbWFjcm8gaW4gZ2xpYmMsIG1ha2luZyB0aGlzIGFuIHVuZGVmaW5lZCBiZWhhdmlvdXIKICAgICAgIGNvbnN0cnVjdCAod2hpY2ggR0NDIDMuMCByZWZ1c2VzIHRvIGNvbXBpbGUpLiAgU2VlIGJ1ZyAjNDU1ODA0IGZvcgogICAgICAgZnVydGhlciBkZXRhaWxzLgogICAKMjAwMS0wOC0yNCAxMDowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvZGF0YV9saXN0Lmg6CgogICBmaWxlIGRhdGFfbGlzdC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTI0IDEwOjAwICByc3RvcnkKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIGZpbGUgZGF0YV9saXN0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMjIgMDg6NDUgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBhZGQgY2hlY2tpbmcgdGhhdCByZXN1bHRzIHRvIGJlIHJldHVybmVkIHRvIG1hc3RlciBhZ2VudCBhcmUgaW4KICAgICAgIHJlcXVlc3RlZCBzY29wZSAoaWYgYW55KSAoZ2V0QnVsayBub3QgeWV0IGRvbmUpCiAgIAoyMDAxLTA4LTE1IDA5OjMxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgICAtIHVzZSBzcHJpbnRfcmVhbGxvY19vYmppZCBpbiBkZWJ1Z21zZ19vaWQgdG8gcHJpbnQgbG9uZyBPSURzLgogICAKMjAwMS0wOC0xNSAwODozNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBpbmNyZW1lbnQgdGhlIHZhbHVlIG9mIHNubXBJbkJhZENvbW11bml0eVVzZXMgd2hlbiBhdHRlbXB0aW5nIGFuCiAgICAgICBvcGVyYXRpb24gbm90IHBlcm1pdHRlZCBieSB0aGUgZ2l2ZW4gY29tbXVuaXR5LCBwZXIgUkZDIDE5MDcuCiAgIAoyMDAxLTA4LTE1IDA4OjM0ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB3aGVuIHRyYW5zbGF0aW5nIHRoZSB2MisgZXJyb3Itc3RhdHVzIHZhbHVlIGF1dGhvcml6YXRpb25FcnJvcgogICAgICAgaW50byBub1N1Y2hOYW1lIGZvciBhIHYxIHNlc3Npb24sIGluY3JlbWVudCB0aGUgdmFsdWUgb2YKICAgICAgIHNubXBJbkJhZENvbW11bml0eVVzZXMsIHBlciBSRkMgMjU3Ni4KICAgCjIwMDEtMDgtMTQgMDM6MjIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgICAtIGluIHNubXBfc2V0X3Zhcl9vYmppZCgpLCB0cnkgdG8gZGV0ZWN0IGEgcHJldmlvdXNseS1tYWxsb2MoKWVkCiAgICAgICBidWZmZXIgZm9yIHRoZSB2YXJpYWJsZSBuYW1lLCBhbmQgZnJlZSgpIGl0LCB0byBhdm9pZCBtZW1vcnkKICAgbGVha3MuCiAgIAoyMDAxLTA4LTEzIDAzOjQ3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIHVzZSBXaW4zMiBjYWxscyB0byBjaGFuZ2UgYmxvY2tpbmcgc3RhdGUgb2Ygc29ja2V0cyBpZgogICAgICAgYXBwcm9wcmlhdGUuICBUaGFua3MgdG8gSm9lcmcgTWF0dGVzIGZvciBoZWxwIGRlYnVnZ2luZyB0aGlzLgogICAKMjAwMS0wOC0xMyAwMzozNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcGVyZm9ybSBhbiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgYW5kIGNsb3NlIHRoZSBjb25uZWN0aW9uIGlmCiAgICAgICB3ZSBnZXQgYW4gZXJyb3Igb24gYSBzdHJlYW0gcmVjZWl2ZSwgYXMgd2VsbCBhcyBpZiBpdCBpcyBjbG9zZWQgaW4KICAgICAgIGFuIG9yZGVybHkgZmFzaGlvbi4gIFRoaXMgbWFrZXMgbGlmZSBlYXNpZXIgb24gV2luMzIgaW5wYXJ0aWN1bGFyLgogICAgICAgVGhhbmtzIHRvIEpvZXJnIE1hdHRlcyBmb3IgaGVscCB3aXRoIGRlYnVnZ2luZyB0aGlzLgogICAKMjAwMS0wOC0wOSAwMzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBmaWxlIHRhYmxlX2RhdGFzZXQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wOSAwMzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0Lmg6CgogICBmaWxlIHRhYmxlX2RhdGFzZXQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wOCAwMTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBmaWxlIHRhYmxlX2RhdGEuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wOCAwMTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmg6CgogICBmaWxlIHRhYmxlX2RhdGEuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMzoKCiAgIGZpbGUgc25tcF9hcGlfZXJyc3RyaW5nLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIG1hbi9zbm1wX2Vycm9yLjM6CgogICBmaWxlIHNubXBfZXJyb3IuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTA4LTA3IDEzOjU5ICBuYmEKCiAgICogbWFuL3NubXBfcGVycm9yLjM6CgogICBmaWxlIHNubXBfcGVycm9yLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjM6CgogICBmaWxlIHNubXBfc2Vzc19wZXJyb3IuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTA4LTA2IDA0OjI5ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZml4IGZvciBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IGluIGxvZ2ZpbGUgYXJndW1lbnQgaGFuZGxpbmcsCiAgICAgICBub3RlZCBieSBBbm9ueW1vdXMgKGJ1ZyAjNDQ4MjQzKS4gIEFsc28gdXNlIGEgbGFyZ2UgZW5vdWdoIGJ1ZmZlcgogICAgICAgdG8gaGFuZGxlIGZpbGVuYW1lcyBvZiBsZW5ndGggUEFUSF9NQVggKGlmIHBvc3NpYmxlKS4KICAgCjIwMDEtMDctMzAgMTA6MDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSBtb3ZlIHNubXBfc29ja2V0X2xlbmd0aCBmdW5jdGlvbiB0byBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYwogICAgICAgZnJvbSBzbm1wX2FwaS5jIC0tIHRoaXMgaXMgdGhlIG9ubHkgcmVtYWluaW5nIHBsYWNlIHRoYXQgdXNlcyB0aGlzCiAgICAgICBmdW5jdGlvbiwgd2hpY2ggY2VydGFpbmx5IGRvZXNuJ3QgYmVsb25nIGluIHNubXBfYXBpLmMgYWZ0ZXIgdGhlCiAgICAgICB0cmFuc3BvcnQgYWJzdHJhY3Rpb24gbWFsYXJrZXkuCiAgIAoyMDAxLTA3LTMwIDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBmaWxlIGFnZW50X2hhbmRsZXIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0zMCAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgZmlsZSBhZ2VudF9oYW5kbGVyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMzAgMDc6MDYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAgIC0gdHJ5IHRvIHJldHVybiBpbnZhbGlkKDIpIGZvciB0aGUgaXBSb3V0ZVR5cGUgY29sdW1uIGlmIHRoZSByb3V0ZQogICAgICAgaXMgbm90IHVwLiAgU2VlIGJ1ZyAjNDI2NzEwLCByZXBvcnRlZCBieSBwandlYmVyLgogICAKMjAwMS0wNy0yNyAwNzozMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgICAtIHNldCBkZWZhdWx0QXV0aFR5cGUgdG8gdXNtSE1BQ1NIQTFBdXRoUHJvdG9jb2wgaWYgU0hBIHNwZWNpZmllZAogICAgICAgKHdhcyBzZXQgdG8gdXNtSE1BQ01ENUF1dGhQcm90b2NvbCBpbiB0aGlzIGNhc2UpLiAgU3BvdHRlZCBieQogICAgICAgV2lsbGlhbSBLZW5uZW1lciAoYnVnICM0NDQ4NjApCiAgIAoyMDAxLTA3LTI3IDA2OjU5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIGNoYW5nZSB0byBoYW5kbGVfYWdlbnR4X3Jlc3BvbnNlIE9OTFkgdG8gc2VuZCBORVdMWSBkZWxlZ2F0ZWQKICAgICAgIHJlcXVlc3RzIGFmdGVyIHByb2Nlc3NpbmcgYSBzdWNjZXNzZnVsIHJlc3BvbnNlLiAgVGhpcyBpcyBhY2hpZXZlZAogICAgICAgYnkgc2F2aW5nIHRoZSB2YWx1ZSBvZiBhc3AtPm91dHN0YW5kaW5nX3JlcXVlc3RzIGFuZCB0ZW1wb3JhcmlseQogICAgICAgc2V0dGluZyBpdCB0byBOVUxMLiAgQWZ0ZXIgcHJvY2Vzc2luZyBhbGwgdmFyYmluZHMgaW4gdGhlCiAgICAgICByZXNwb25zZSwgdGhlcmVmb3JlLCBhc3AtPm91dHN0YW5kaW5nX3JlcXVlc3RzIGNvbnRhaW5zIG9ubHkgbmV3bHkKICAgICAgIGRlbGVnYXRlZCByZXF1ZXN0cywgaWYgYW55LiAgQWZ0ZXIgc2VuZGluZyB0aGVzZSwgdGhlIG5ldyByZXF1ZXN0cwogICAgICAgYXJlIG1lcmdlZCB3aXRoIHRoZSBzYXZlZCBxdWV1ZS4KICAgCiAgICAgICBUaGlzIGZpeGVzIGEgYnVnIHRoYXQgYXJpc2VzIGlmIHlvdSByZXF1ZXN0IHZhcmlhYmxlcyBmcm9tIHR3byBvcgogICAgICAgbW9yZSBzZXBhcmF0ZSBzdWJhZ2VudHMgc2ltdWx0YW5lb3VzbHkuICBXaGF0IHVzZWQgdG8gaGFwcGVuIGlzCiAgICAgICB0aGF0LCB1cG9uIHJlY2VpdmluZyB0aGUgZmlyc3QgcmVzcG9uc2UsIHRoZSBtYXN0ZXIgYWdlbnQgd291bGQKICAgICAgIG5vdGljZSB0aGF0IGl0IGhhZCBhbiBvdXRzdGFuZGluZyByZXF1ZXN0LCBhbmQgcmV0cmFuc21pdCBpdC4KICAgICAgIFRoZW4gdGhlIHNlY29uZCByZXNwb25zZSBhcnJpdmVzLCBhbmQgdGhlIG1hc3RlciBhZ2VudCBzZW5kcyB0aGUKICAgICAgIHJlcGx5IHRvIHRoZSAoU05NUCkgcmVxdWVzdGVyIGFuZCBmcmVlcyB0aGUgcmVxdWVzdHMgKGluY2x1ZGluZwogICAgICAgY2FsbGJhY2sgZGF0YSkuICBGaW5hbGx5LCBhbm90aGVyIEFnZW50WCByZXNwb25zZSAodG8gdGhlCiAgICAgICBlcnJvbmVvdXNseSB0cmFuc21pdHRlZCByZXF1ZXN0KSBhcnJpdmVzIGFuZCB0aGUgY2FsbGJhY2sgaXMKICAgICAgIGNhbGxlZCByZWZlcmVuY2luZyBkZWFsbG9jYXRlZCBtZW1vcnksIHdoaWNoIGNhdXNlcyBhIHNlZ2ZhdWx0LgogICAKMjAwMS0wNy0yNiAwNzoyOCAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKE5FVy1MSUJSQVJZLUFQSS40KSwgc25tcF9hcGkuYzoKCiAgIEFkZGluZyBhICdkb3VibGUnLXZhbHVlZCB2YXJiaW5kIGlzbid0IGluaGVyZW50bHkgYW4gaW50ZXJuYWwgZXJyb3IhCiAgIAoyMDAxLTA3LTI1IDA1OjQ3ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZGlzYWJsZSBzdGRlcnIgbG9nZ2luZyAoaWYgcmVxdWVzdGVkKSBiZWZvcmUgY2FsbGluZyBpbml0X21pYl9tb2R1bGVzKCkuCiAgICAgICBUaGlzIHNob3VsZCBmaXggdGhlIHByb2JsZW0gbm90ZWQgYnkgTmlnZWwgTWV0aGVyaW5naGFtIGluIGJ1ZyAjNDE4ODU3CiAgICAgICB3aGVyZWJ5IHRoZSBBZ2VudFggbWFzdGVyIG1vZHVsZSBwcmludHMgYSBtZXNzYWdlIHRvIHN0ZGVyciB3aGljaCBjYXVzZXMKICAgICAgIGEgU0lHUElQRSB3aGVuIHRoZSBhZ2VudCBpcyBzdGFydGVkIGFzIGEgZGFlbW9uLgogICAKMjAwMS0wNy0yNSAwMjoxOCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSBpbml0aWFsaXNlIGJ1ZmZlcnMgdG8gemVybyBpbiBoYW5kbGVfd3JhcF9mbXQsIHRvIGF2b2lkIGdhcmJhZ2UgaW4KICAgICAgIGRpc3BsYXkgb2Ygc2VjdXJpdHkgcGFyYW1ldGVycywgYXMgbm90ZWQgYnkgV2lsbGlhbSBGcmF1ZW5ob2ZlcgogICAgICAgKGJ1ZyAjNDM3MjMxKS4KICAgCiAgICAgLSBhZGQgY2xvc2luZyBwYXJlbnRoZXNpcyBhZnRlciAodmlhIDxhZGRyZXNzPiBpbiBmb3JtYXRfcGxhaW5fdHJhcAogICAKMjAwMS0wNy0yMyAwNzo1MyAgamJwbgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICAgIC0gcmVtb3ZlIGV4Y2Vzc2l2ZSBkZWJ1Z2dpbmcgZnJvbSBzbm1wXyhyZSlhbGxvYyBmdW5jdGlvbnMKICAgCjIwMDEtMDctMjMgMDQ6MzcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgICAtIG1pbm9yIGZpeCB0byBkZWJ1Z2dpbmcgb3V0cHV0IHRvIHByaW50IGxvc2luZyBwYXRoIGNvcnJlY3RseSB3aGVuCiAgICAgICBhIHJlbW90ZSBjb25uZWN0IGZhaWxzLgogICAKMjAwMS0wNy0xNyAwOTo1NiAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICB1cGRhdGUgZm9yIG5hbWluZyBjb252ZW50aW9ucyBhbmQgZm9yIHN0cnVjdHVyZSBkZWZpbml0aW9ucy4KICAgCjIwMDEtMDctMTcgMDk6MDcgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgaW5pdGlhbCBjb2Rpbmcgc3R5bGUgZ3VpZGVsaW5lIGRvY3VtZW50LgogICAKMjAwMS0wNy0xNyAwOTowMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSByZW1lbWJlciB0byByZW1vdmVfdHJhcF9zZXNzaW9uKG91ci1zZXNzaW9uLXdpdGgtbWFzdGVyLWFnZW50KQogICAgICAgaWYgdGhlIG1hc3RlciBhZ2VudCBzZXNzaW9uIGdvZXMgYXdheSwgYmVjYXVzZSBvdGhlcndpc2UgeW91CiAgICAgICBtYXkgc3Vic2VxdWVudGx5IHRyeSB0byB1c2UgaXQsIHdoaWNoIHdpbGwgcHJvYmFibHkgZHVtcCBjb3JlLAogICAgICAgYW5kIGlzIGNlcnRhaW5seSBhbiBlcnJvci4KICAgCiAgICAgLSBhbHNvIGNoYW5nZSB3aGVuIHRyYXAgc2Vzc2lvbiBpcyByZWdpc3RlcmVkIHRvIGJlaW5nIGltbWVkaWF0ZWx5CiAgICAgICB0aGUgc2Vzc2lvbiBpcyBvcGVuZWQgc28gdHJhcHMgY2FuIGJlIHNlbnQsIGUuZy4gZnJvbSB0aGUKICAgICAgIElOREVYX1NUQVJUIGNhbGxiYWNrIChmb3IgZXhhbXBsZSBsaW5rVXAgdHJhcHMgaW4gc3ViYWdlbnRzIHRoYXQKICAgICAgIHJlZ2lzdGVyIGEgcm93IG9mIGlmVGFibGUpLgogICAKMjAwMS0wNy0xNyAwODo0OCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAgIC0gY2hhbmdlIHRvIHJlbW92ZV90cmFwX3Nlc3Npb24oKSwgc28gYXMgbm90IHRvIGNsb3NlIGFuIFNOTVAKICAgICAgIHNlc3Npb24gc2ltcGx5IGJlY2F1c2Ugd2UgYXJlIHJlbW92aW5nIGl0IGZyb20gdGhlIHRyYXBfc2luawogICAgICAgbGlzdC4gIFRoZSByYXRpb25hbGUgaXMgdGhhdCB0aGUgc2Vzc2lvbiBtYXkgc3RpbGwgYmUgaW4gdXNlIGZvcgogICAgICAgb3RoZXIgcHVycG9zZXMsIG9yIChtb3JlIHRvIHRoZSBwb2ludCkgeW91IG1heSBiZSBjYWxsaW5nIHRoaXMKICAgICAgIGZ1bmN0aW9uIGZyb20gdGhlIHNlc3Npb24ncyBjYWxsYmFjayAoZnJvbSB3aGVyZSBjbG9zaW5nIHRoZQogICAgICAgc2Vzc2lvbiBpc24ndCBhIGdvb2QgaWRlYSkuCiAgIAoyMDAxLTA3LTEzIDA2OjAyICBkdHMxMgoKICAgKiBzbm1wbGliL25ldHNubXAuaDoKCiAgIGZpbGUgbmV0c25tcC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1MSUJSQVJZLUFQSS4KICAgCjIwMDEtMDctMTIgMTI6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGZpbGUgdGFibGVfaXRlcmF0b3IuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMiAxMjowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oOgoKICAgZmlsZSB0YWJsZV9pdGVyYXRvci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEyIDAyOjIxICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwosIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIGZpeCBmb3IgYnVnICM0MzkwOTQsIHJlcG9ydGVkIGJ5IEV2ZXJ0LUphbiB2YW4gVHVpamwsIHdoZXJlYnkKICAgICAgIHRoZSBBZ2VudFggbWFzdGVyIGFnZW50IGV4cGVjdHMgYSByZXNwb25zZSB0byBhbiBhZ2VudHgtQ2xlYW51cFNldC1QRFUKICAgICAgIG1lc3NhZ2UgKGluY29ycmVjdGx5KS4gIFRoaXMgb25seSBzaG93cyB1cCB3aGVuIHRlc3RpbmcgYWdhaW5zdCBvdGhlcgogICAgICAgc3ViYWdlbnRzIChlLmcuIGpheCkgYmVjYXVzZSB0aGUgbmV0LXNubXAgc3ViYWdlbnQgc2VuZHMgYSByZXNwb25zZQogICAgICAgdG8gdGhlIGFnZW50eC1DbGVhbnVwU2V0LVBEVSAoaW5jb3JyZWN0bHkpLgogICAKMjAwMS0wNy0xMCAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmM6CgogICBmaWxlIHZhY21fY29udGV4dC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEwIDE2OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaDoKCiAgIGZpbGUgdmFjbV9jb250ZXh0Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTAgMTY6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaDoKCiAgIGZpbGUgdGFyZ2V0X2NvdW50ZXJzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTAgMTY6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYzoKCiAgIGZpbGUgdGFyZ2V0X2NvdW50ZXJzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMDUgMDY6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaDoKCiAgICAgLSBtYWtlIEludGVyZmFjZV9TY2FuX0dldF9Db3VudCBub24tc3RhdGljIGFzIGl0J3MgdmVyeSB1c2VmdWwKICAgCjIwMDEtMDctMDUgMDM6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gZnJlZSB0aGUgY2FjaGVkIHNlY3VyaXR5IHBhcmFtZXRlcnMgd2hlbiB3ZSBoYXZlIGEgcGFyc2UgZXJyb3IKICAgICAgIG9uIGlucHV0LCBvdGhlcndpc2Ugd2UgbGVhayBtZW1vcnkgKHRyaWdnZXJlZCBieSBTQyAzLjAuMTMuezIsM30pLgogICAKMjAwMS0wNy0wNCAwOTo1MSAgdWlkNDQ4MTAKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGNhdGNoIHNvbWUgbWFsZm9ybWVkIFNOTVB2MyBwYWNrZXRzCiAgIAoyMDAxLTA3LTA0IDA3OjQyICB1aWQ0NDgxMAoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gZml4IGJhZCBtaXN0YWtlIGluIHNubXB2M19zY29wZWRQRFVfaGVhZGVyX3JlYWxsb2NfcmJ1aWxkIHdoaWNoCiAgICAgICB3YXMgZW5jb2RpbmcgdGhlIHdyb25nIGxlbmd0aCBpbnRvIHRoZSBTY29wZWRQRFUgU0VRVUVOQ0UgaGVhZGVyCiAgICAgICAod2Fzbid0IGluY2x1ZGluZyBsZW5ndGggb2YgYWN0dWFsIGRhdGEsIGkuZS4gUERVISkuICBUb3RhbGx5IG15CiAgICAgICBmYXVsdCAtLSBpbnRyb2R1Y2VkIHdoZW4gY2hhbmdpbmcgb3ZlciB0byByZWFsbG9jYXRpbmcgYnVmZmVyCiAgICAgICB0eXBlIGZ1bmN0aW9ucy4gIEFtYXppbmcgdGhpcyBoYXNuJ3QgY2F1c2VkIGFsbCBzb3J0cyBvZiB0cm91YmxlCiAgICAgICBmb3IgcGVvcGxlIQogICAKMjAwMS0wNy0wMiAxODowNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgZmlsZSBzbm1wLXRjLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMDIgMDk6MzMgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHNsaWdodCBjaGFuZ2UgdG8gZ2VuZXJhdGlvbiBvZiBlcnJvci1pbmRleDoKICAgCiAgICAgICAtIGV4cGxpY2l0bHkgdGVzdCBmb3IgZXJyb3Itc3RhdHVzID09IG5vRXJyb3IsIGFuZCBzZXQgZXJyb3ItaW5kZXgKICAgICAgICAgdG8gemVybyBpbiB0aGlzIGNhc2U7CiAgIAogICAgICAgLSBvdGhlcndpc2UgdXNlIHRoZSBjYWNoZWQgdmFsdWU7CiAgIAogICAgICAgLSBkb24ndCB6ZXJvIHRoZSBjYWNoZWQgdmFsdWUgaW4gaGFuZGxlX3Zhcl9saXN0IGlmIGhhbmRsZV9vbmVfdmFyCiAgICAgICAgIHJldHVybnMgbm9FcnJvcgogICAKICAgICAtIHRoaXMgY29wZXMgcHJvcGVybHkgd2l0aCBTRVQgcmVxdWVzdHMsIHdoZXJlIGEgZmFpbGluZyBTRVQgd2lsbCBoYXZlCiAgICAgICBhIEZSRUUgcGhhc2Ugd2hpY2ggd2lsbCB0eXBpY2FsbHkgcmV0dXJuIG5vRXJyb3IuICBQcmV2aW91c2x5IHRoaXMKICAgICAgIHdvdWxkIGVycm9uZW91c2x5IGNhdXNlIHRoZSBlcnJvci1pbmRleCB0byBiZSBzZXQgdG8gemVyby4KICAgCjIwMDEtMDctMDIgMDg6MTQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgICAtIGZpeCBiYWQgYmVoYXZpb3VyIGluIGhlYWRlcl9zaW1wbGVfdGFibGUgd2hlbiB0aGUgaW5kZXggaXMKICAgICAgIGVxdWFsIHRvIFVMT05HX01BWAogICAKMjAwMS0wNi0yOCAxMDowMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgICAtIGNoYW5nZSBzZW5zZSBvZiBzbm1wX29pZF9jb21wYXJlKCkgcmVzdWx0IGNoZWNrIGluIHZhcl91c21Vc2VyCiAgICAgICB0byBkbyBsZXhpLW9yZGVyaW5nIGNvcnJlY3RseQogICAKMjAwMS0wNi0yOCAwNzoyMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gY291bnQgbW9yZSB2MS92MmMgcGFyc2UgZXJyb3JzIChTQyAxLjEuMTIuMTApCiAgIAoyMDAxLTA2LTI4IDA1OjU2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBjaGVjayB0aGF0IHZlcnNpb24gZmllbGQgb2YgUERVIGlzIG9mIGludGVnZXIgdHlwZSByYXRoZXIgdGhhbiBqdXN0CiAgICAgICBhc3N1bWluZyBpdCBpcyAoU0MgMS4xLjEyLjIuMSkKICAgCjIwMDEtMDYtMjggMDQ6NDAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gaW5jcmVtZW50IHNubXBJbkJhZENvbW11bml0eU5hbWVzIHdoZW4gd2Ugc2VlIHVua25vd24gY29tbXVuaXR5CiAgICAgICBuYW1lcywgcGVyIFJGQzE5MDcKICAgCjIwMDEtMDYtMjcgMDg6MDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gbWFrZSB1c2Ugb2YgbmV3IGZ1bmN0aW9uIHJlZ2lzdGVyX21pYl9kZXRhY2goKSB0byBtYXJrIGFsbCBvdXIKICAgICAgIG5vZGVzIGFzIGRldGFjaGVkIHdoZW4gd2UgZ2V0IGEgdHJhbnNwb3J0IGRpc2Nvbm5lY3QgaW5kaWNhdGlvbi4KICAgCjIwMDEtMDYtMjcgMDg6MDcgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICB2YXJfc3RydWN0Lmg6CgogICAgIC0gYWRkIGFkZGl0aW9uYWwgZmxhZyB0byBzdWJ0cmVlIHN0cnVjdHVyZSB0aGF0IHN1YmFnZW50cyBjYW4gdXNlCiAgICAgICB0byBkZXRlcm1pbmUgd2hldGhlciBhbiBhdHRlbXB0IGhhcyBiZWVuIG1hZGUgdG8gcmVnaXN0ZXIgYW5kIE9JRAogICAgICAgd2l0aCBhIG1hc3RlciBhZ2VudCBkdXJpbmcgYSBzZXNzaW9uJ3MgbGlmZXRpbWUuICBUaGlzIGFsbG93cwogICAgICAgbWFudWFsIHJlLXJlZ2lzdHJhdGlvbiBhbmQgYXV0b21hdGljIHJlLXJlZ2lzdHJhdGlvbiB0byBiZSBtaXhlZAogICAgICAgd2l0aGluIGEgc3ViYWdlbnQgKHBlcmhhcHMgYmVjYXVzZSB5b3UgYXJlIGRvaW5nIGluZGV4IHN0dWZmKS4KICAgCiAgICAgLSBhZGQgZnVuY3Rpb24gcmVnaXN0ZXJfbWliX2RldGFjaCgpIHdoaWNoIHVuc2V0cyB0aGlzIGZsYWcgZm9yCiAgICAgICBhbGwga25vd24gbm9kZXMgKHN1YmFnZW50IHdvdWxkIHR5cGljYWxseSBjYWxsIHRoaXMgb24gZGlzY29ubmVjdAogICAgICAgaW5kaWNhdGlvbikuCiAgIAogICAgIC0gYWRkIGZ1bmN0aW9uIHVucmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpCiAgIAogICAgIC0gY29ycmVjdCBiYWQgcmVjdXJzaXZlIGJlaGF2aW91ciBpbiByZWdpc3Rlcl9taWJfcmVhdHRhY2goKSB3aGljaAogICAgICAgdXNlZCB0byB0cnkgdG8gcmUtcmVnaXN0ZXIgTiBub2RlcyBOISB0aW1lcy4gIE9uY2Ugd2lsbCBub3JtYWxseQogICAgICAgYmUgZW5vdWdoLgogICAKICAgICAtIGNoYW5nZSB0byBkdW1wX3JlZ2lzdHJ5KCkgZm9ybWF0IHRvIGluY2x1ZGUgaGV4IGRpc3BsYXkgb2YKICAgICAgIGZsYWdzIGZpZWxkLgogICAKMjAwMS0wNi0yNiAwOToyNiAgZHRzMTIKCiAgICogRkFROgoKICAgRml4IGVycm9yIGluIFNOTVB2MiB0cmFwIGV4YW1wbGVzICAoSWRlbnRpZmllZCBieSBEaXdha2FyIFNoZXR0eSkuCiAgIAoyMDAxLTA2LTI2IDAyOjM1ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gY29ycmVjdGVkIHNlbnNlIG9mIGR1bXBfcmVhbGxvY19vaWRfdG9fc3RyaW5nKCkgcmV0dXJuIHZhbHVlCiAgICAgICBjaGVja3MsIGFzIHNwb3R0ZWQgYnkgUm9iZXJ0IFN0b3J5LgogICAKMjAwMS0wNi0yNSAwNjozMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBzbWFsbCB0d2VhayBpbiBoYW5kbGVfYWdlbnR4X3Jlc3BvbnNlKCkgd2hlbiByZXRyeWluZyB1bmZ1bGZpbGxlZAogICAgICAgcmVxdWVzdHM6IGNvbnRpbnVlIGZyb20gdGhlICJzdGFydCIgT0lEIG9mIHRoZSBuZXh0IG5vZGUgb2YgdGhlCiAgICAgICB0cmVlLCBub3QgZnJvbSB0aGUgIm5hbWUiIE9JRCwgd2hpY2ggY2F1c2VzIGxvb3BpbmcuCiAgIAoyMDAxLTA2LTIxIDA5OjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIGhhbmRsZSAiaG9sZXMiIGluIHJvd3Mgb2YgdGFibGVzIHRoYXQgYXJlIGhhbmRsZWQgYnkgc3ViYWdlbnRzCiAgIAogICAgICAgU2luY2UgdGhlIGZ1bGx5LXF1YWxpZmllZCBpbnN0YW5jZSBpcyByZWdpc3RlcmVkLCB3ZSBpbnRlcnByZXQKICAgICAgIGEgcmV0dXJuIG9mIG5vU3VjaEluc3RhbmNlIHdoZW4gZG9pbmcgYW4gaW5leGFjdCBxdWVyeSBhcyBtZWFuaW5nCiAgICAgICB3ZSBzaG91bGQgcmV0cnkgdGhlIHF1ZXJ5LgogICAKMjAwMS0wNi0yMSAwMjo1MCAgamJwbgoKICAgKiBzbm1wbGliL21pYi5oOgoKICAgICAtIGZvcmdvdCB0byBjb21taXQgYXQgdGhlIHNhbWUgdGltZSBhcyBsYXN0IG1pYi5jIGNvbW1pdDsgdXBkYXRlZAogICAgICAgcHJvdG90eXBlIGZvciBzcHJpbnRfcmVhbGxvY19oaW50ZWRfaW50ZWdlcgogICAKMjAwMS0wNi0yMCAwNjo0NCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMsIGFnZW50X2luZGV4Lmg6CgogICAgIC0gYWRkIGZ1bmN0aW9uIGNvdW50X2luZGV4ZXMgd2hpY2ggcmV0dXJucyB0aGUgbnVtYmVyIG9mIGluZGV4ZXMKICAgICAgIGFsbG9jYXRlZCBmb3IgYSBnaXZlbiBPSUQuICBUaGlzIGNhbiBiZSB1c2VmdWwgZm9yIGltcGxlbWVudGluZwogICAgICAgInJvdyBjb3VudCIgb2JqZWN0cywgZS5nLiBpZk51bWJlci4KICAgCjIwMDEtMDYtMjAgMDU6MzcgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9jYWxsYmFja3MuaCwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMKOgoKICAgICAtIGFkZCBTTk1QRF9DQUxMQkFDS19JTkRFWF9TVEFSVCBhbmQgU05NUERfQ0FMTEJBQ0tfSU5ERVhfU1RPUAogICAgICAgY2FsbGJhY2tzIHdoaWNoIG1heSBiZSB1c2VkIHRvIG1hbmFnZSBpbmRleCBhbGxvY2F0aW9ucy4KICAgCiAgICAgICBNYXN0ZXIgYWdlbnQgc2hvdWxkIHByb2JhYmx5IGNhbGwgdGhlc2UgY2FsbGJhY2tzIHRvbywgYWx0aG91Z2gKICAgICAgIGl0J3MgYSBiaXQgb2YgYSBkZWdlbmVyYXRlIGNhc2UuCiAgIAoyMDAxLTA2LTE5IDA5OjQ0ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICAgIC0gdXNlIGFuIGV4cGxpY2l0IGZpZWxlZCAiYWxsb2NhdGVkIiBpbiBzbm1wX2luZGV4IHN0cnVjdHVyZSB0bwogICAgICAgaW5kaWNhdGUgd2hldGhlciBvciBub3QgYSB2YWx1ZSBpcyBjdXJyZW50bHkgYWxsb2NhdGVkLCByYXRoZXIKICAgICAgIHRoYW4gb3ZlcmxvYWRpbmcgYSBOVUxMIHNlc3Npb24gdG8gbWVhbiB0aGF0IGl0IGlzIG5vdC4KICAgCiAgICAgICBUaGlzIGFsbG93cyBzdGFydHVwIGNvZGUgaW4gYSBtYXN0ZXIgYWdlbnQgdG8gcHJlLXJlZ2lzdGVyIGluZGljZXMKICAgICAgIHdoZW4gdGhlcmUgYXJlIG5vIHNlc3Npb25zIG9wZW4uCiAgIAoyMDAxLTA2LTE5IDA4OjM0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9hZG1pbi5jLCBtYXN0ZXJfcmVxdWVzdC5jCjoKCiAgICAgLSAga2VlcCB0aGUgdmFsdWUgb2YgTkVUV09SS19CWVRFX09SREVSIGZyb20gaC5mbGFncyBpbiB0aGUKICAgICAgICBhZ2VudHgtT3Blbi1QRFUgYW5kIHVzZSBpdCBmb3Igc3Vic2VxdWVudCBtYXN0ZXItaW5pdGlhdGVkCiAgICAgICAgQWdlbnRYIHByb3RvY29sIG9wZXJhdGlvbnMsIHBlciBSRkMgMjc0MSAoc2VjdGlvbiA3LjEuMSwKICAgICAgICBwYXJhZ3JhcGggNCkuCiAgIAogICAgICAgIEZvciBub3csIHdlIGFyZSBzdG9yaW5nIHRoaXMgaW4gdGhlIGZsYWdzIGZpZWxkIG9mIGEKICAgICAgICBzdWJzZXNzaW9uLiAgVGhpcyBpcyBsaWtlbHkgdG8gc3RvcCB3b3JraW5nIGlmIHRoZSBmbGFncwogICAgICAgIGRlZmluaXRpb25zIGNoYW5nZSAoaS5lLiBpdCdzIG5vdCBhIGdyZWF0IHNvbHV0aW9uKQogICAKICAgICAtICBUaGFua3MgdG8gUGV0ZXIgS29yc3RlbiAoc2V2ZXJpdHlvbmUgYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0KQogICAgICAgIGZvciBpZGVudGlmeWluZyB0aGlzIGJ1ZywgYW5kIGZvciBoZWxwIGRlYnVnZ2luZyB0aGlzIGZpeC4KICAgCjIwMDEtMDYtMTkgMDI6MzUgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSByZWluc3RhdGUgc3BhY2UgYmV0d2VlbiBudW1iZXJzIGFuZCB1bml0cy4KICAgCiAgICAgLSByZXNwZWN0IERJU1BMQVktSElOVHMgZm9yIFVuc2lnbmVkMzIsIEdhdWdlLCBHYXVnZTMyIHR5cGVzLgogICAKMjAwMS0wNi0xMyAwMzoyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBtaW5vciBjaGFuZ2UgdG8gZGVidWdnaW5nIHRvIHJlZHVjZSAibm9pc2UgbGV2ZWwiIGZyb20gUHVyaWZ5CiAgIAoyMDAxLTA2LTEyIDEwOjM1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBoYW5kbGUgbm9uLXJlcGVhdGVycyBhbmQgbWF4LXJlcGV0aXRpb25zIGZpZWxkIHZhbHVlcyBvZiA8IDAgKGJ5CiAgICAgICBzZXR0aW5nIHRoZW0gdG8gMCwgcGVyIFJGQyAxOTA1KQogICAKMjAwMS0wNi0xMiAxMDowNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZml4IGJ1ZyB0aGF0IGNhdXNlZCBhIG51bGwgcG9pbnRlciB0byBiZSBmb2xsb3dlZCB3aGVuIHByb2Nlc3NpbmcgYQogICAgICAgR0VUQlVMSyByZXF1ZXN0IHdpdGggbm9uLXJlcGVhdGVycyA+IDAsIG1heC1yZXBldGl0aW9ucyA9PSAwIGFuZCBubwogICAgICAgdmFyYmluZHMgaW4gdGhlIHJlcXVlc3QuCiAgIAoyMDAxLTA2LTEyIDA3OjI0ICBkdHMxMgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYyAoVjQtMi1wYXRjaGVzLjEpLCByZWFkX2NvbmZpZy5jOgoKICAgRml4ICd1bnJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyJyB0byBoYW5kbGUgdGFncyBvdGhlcgogICB0aGFuIHRoZSBmaXJzdCBpbiB0aGUgbGlzdC4gIChUaGFua3MgdG8gUGF1bCBTZXJpY2UpLgogICAKMjAwMS0wNi0wNiAwNzozOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gZnJlZSgpIHJldHVybiB2YWx1ZSBmcm9tIHJlZ2lzdGVyX2luZGV4KCkgY2FsbHMKICAgCjIwMDEtMDYtMDYgMDc6MzcgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgICAgLSBtb3JlIHVuaWZvcm0gcmV0dXJuIHZhbHVlIGZyb20gcmVnaXN0ZXJfaW5kZXgoKTogbWFrZSBpdCBhbHdheXMgYQogICAgICAgdmFyYmluZCB3aGljaCB0aGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBmcmVlKClpbmcsIG9yIGVsc2UgTlVMTC4KICAgCjIwMDEtMDYtMDUgMDM6MTAgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgICAgLSBmaXggZm9yIGluZGV4IGFsbG9jYXRpb24sIHN1Y2ggdGhhdCByZXF1ZXN0cyBmb3Igc3BlY2lmaWMgaW5kaWNlcyB3aGljaAogICAgICAgaGF2ZSBwcmV2aW91c2x5IGJlZW4gYWxsb2NhdGVkLCBidXQgYXJlIG5vdCBjdXJyZW50bHkgaW4gdXNlLCBzdWNjZWVkLgogICAKICAgICAtIG1vcmUgZGVidWdnaW5nIG91dHB1dC4KICAgCjIwMDEtMDYtMDEgMDg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmM6CgogICBmaWxlIHRlc3RoYW5kbGVyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmM6CgogICBmaWxlIHRlc3RkZWxheWVkLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmg6CgogICBmaWxlIHRlc3RkZWxheWVkLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmg6CgogICBmaWxlIHRlc3RoYW5kbGVyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuaDoKCiAgIGZpbGUgbXVsdGlwbGV4ZXIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgZmlsZSBpbnN0YW5jZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL251bGwuaDoKCiAgIGZpbGUgbnVsbC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5oOgoKICAgZmlsZSByZWFkX29ubHkuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy8uY3ZzaWdub3JlOgoKICAgZmlsZSAuY3ZzaWdub3JlIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmM6CgogICBmaWxlIG11bHRpcGxleGVyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmM6CgogICBmaWxlIHNlcmlhbGl6ZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmg6CgogICBmaWxlIHRhYmxlLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuaDoKCiAgIGZpbGUgaW5zdGFuY2UuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZmlsZSB0YWJsZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5oOgoKICAgZmlsZSBzZXJpYWxpemUuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXRfaGVscGVyLmg6CgogICBmaWxlIHNldF9oZWxwZXIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9udWxsLmM6CgogICBmaWxlIG51bGwuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGZpbGUgTWFrZWZpbGUuaW4gd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5oOgoKICAgZmlsZSBvbGRfYXBpLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmM6CgogICBmaWxlIHJlYWRfb25seS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIGZpbGUgb2xkX2FwaS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA3OjM5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIG1pc2MgZml4ZXMgZm9yIG9pZCBmb3JtYXR0aW5nIHByb2JsZW1zLgogICAKMjAwMS0wNi0wMSAwNzozNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkIE1hcnRpbiBPbGRmaWVsZC4KICAgCjIwMDEtMDYtMDEgMDI6NTAgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaCwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gZml4IGZvciBhYnNvbHV0ZWx5IG1pbmQtYmVuZGluZyBtZW1vcnkgbGVhayB3aGVuIEFnZW50WCBzZXNzaW9ucwogICAgICAgdGltZW91dC4gIGFnZW50X3Nlc3Npb25fbGlzdCBob2xkcyBhIHF1ZXVlIG9mIHNlc3Npb25zIHdpdGggb3V0c3RhbmRpbmcKICAgICAgIHJlcXVlc3RzLiAgV2hlbiBhIHNlc3Npb24gdGltZXMgb3V0LCB0aGlzIG11c3QgYmUgc2NhdmVuZ2VkIHRvIG1ha2UKICAgICAgIHN1cmUgdGhlIHNlc3Npb25zIHRoYXQgaGF2ZSB0aW1lZCBvdXQsIGFuZCB0aGVpciBhc3NvY2lhdGVkIHJlcXVlc3RzCiAgICAgICBhcmUgZnJlZSgpZC4KICAgCjIwMDEtMDUtMzAgMDM6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gcmV0cnkgaW5pdGlhbCBvcGVuIG9mIEFnZW50WCBtYXN0ZXIgc29ja2V0IGlmIEFnZW50WCBwaW5ncyBhcmUKICAgICAgIGVuYWJsZWQgKHNob3VsZCByZWFsbHkgYmUgYSBzZXBhcmF0ZSBkZWZhdWx0X3N0b3JlIG9wdGlvbiBidXQKICAgICAgIG5ldmVyIG1pbmQpCiAgIAoyMDAxLTA1LTMwIDAzOjI3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIG1vcmUgYWdncmVzc2l2ZSBoYW5kbGluZyBvZiB0aW1lb3V0IGNvbmRpdGlvbnMgKGFsc28gZml4IG1lbW9yeQogICAgICAgbGVhaykKICAgCjIwMDEtMDUtMzAgMDM6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIG1vcmUgaW5mb3JtYXRpdmUgZGVidWdnaW5nCiAgIAoyMDAxLTA1LTMwIDAyOjM3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgICAtIHJlbW92ZSBub2lzeSBkZWJ1Z2dpbmcKICAgCjIwMDEtMDUtMzAgMDI6MzcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1vcmUgY29tcGFjdCBkZWJ1Z2dpbmcgaW4gX3Nlc3Nfc2VsZWN0X2luZm8KICAgCjIwMDEtMDUtMzAgMDI6MzQgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBjb3B5IGZsYWdzIGluIHJlYXR0YWNoX3N1YnRyZWUgKG5lZWRlZCBmb3IgQWdlbnRYIHJvdyByZWdpc3RyYXRpb24pCiAgIAoyMDAxLTA1LTI4IDA4OjU0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBjbGllbnQuaCwKICAgbWFzdGVyX2FkbWluLmMsIG1hc3Rlcl9yZXF1ZXN0LmMsIHN1YmFnZW50LmM6CgogICAgIC0gc3R1ZmYgZnJvbSBwYXRjaCAjNDE2MDI2IChzdWJtaXR0ZWQgYnkgYW5vbnltb3VzKSBmb3IgQWdlbnRYIHJvdwogICAgICAgcmVnaXN0cmF0aW9uCiAgIAoyMDAxLTA1LTI4IDA4OjQ5ICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIHR3ZWFrIHRvIGdldFN0YXRQdHIgdG8gaGFuZGxlIGdldE5leHQgb3BlcmF0aW9ucyBpbiBjb21iaW5hdGlvbiB3aXRoCiAgICAgICBGVUxMWV9RVUFMSUZJRURfSU5TVEFOQ0Ugbm9kZXMgKHdoaWNoIGFyaXNlIGluIEFnZW50WCByb3cgcmVnaXN0cmF0aW9uKS4KICAgCjIwMDEtMDUtMjggMDg6NDYgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICB2YXJfc3RydWN0Lmg6CgogICAgIC0gc3R1ZmYgZnJvbSBwYXRjaCAjNDE2MDI2IChzdWJtaXR0ZWQgYnkgYW5vbnltb3VzKSBmb3IgQWdlbnRYIHJvdwogICAgICAgcmVnaXN0cmF0aW9uCiAgIAoyMDAxLTA1LTI4IDA4OjQyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBzbWFsbCB0d2VhayB0byBkZWJ1Z2dpbmcgb3V0cHV0CiAgIAoyMDAxLTA1LTI4IDA4OjM5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGRvIHBhcnNpbmcvYnVpbGRpbmcgb2YgQVNOX1BSSVZfRVhDTF9SQU5HRSBhbmQKICAgICAgIEFTTl9QUklWX0lOQ0xfUkFOR0UgdHlwZXMgKnByb3Blcmx5Ki4KICAgCjIwMDEtMDUtMjggMDQ6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGZpeCBwb3NzaWJsZSBtZW1vcnkgbGVhayBpbiBfc2Vzc19hc3luY19zZW5kIGVycm9yIGNhc2VzCiAgIAoyMDAxLTA1LTI4IDA0OjI3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGFkZCBwYXJzaW5nL2J1aWxkaW5nIG9mIEFTTl9QUklWX0VYQ0xfUkFOR0UgYW5kCiAgICAgICBBU05fUFJJVl9JTkNMX1JBTkdFIHR5cGVzLgogICAKMjAwMS0wNS0yMyAwOToyMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcmVzcGVjdCBtc2dNYXhTaXplIGluIHJlY2VpdmVkIHYzIFBEVXMgKGluIHRoZSB3ZWFrIHNlbnNlIHRoYXQgaWYKICAgICAgIHRoZSBzZXJpYWxpemVkIHJlc3BvbnNlIFBEVSBpcyBtb3JlIHRoYW4gaXQsIHdlIGRvbid0IHNlbmQgaXQpCiAgIAogICAgIC0gcmVtb3ZlZCBmdW5jdGlvbnMgYXNjaWlfdG9fYmluYXJ5LCBoZXhfdG9fYmluYXJ5LiAgVXNpbmcgdGhlc2UKICAgICAgIGZ1bmN0aW9ucyBpcyByZWFsbHkgYmFkLCBzaW5jZSB0aGV5IHdpbGwgaGFwcGlseSBvdmVyZmxvdyBidWZmZXJzLgogICAgICAgVGhlIHN1cGVyaW9yIGFsdGVybmF0aXZlcywgZGVmaW5lZCBpbiB0b29scy5oLCBhcmUKICAgICAgIHNubXBfe2RlY2ltYWwsIGhleH1fdG9fYmluYXJ5LgogICAKMjAwMS0wNS0yMyAwOTowMCAgamJwbgoKICAgKiBhcHBzL3NubXBzdGF0dXMuYzoKCiAgICAgLSByZW1vdmUgdW51c2VkIHZhcmlhYmxlIHN0cnVjdCBzb2NrYWRkcl9pbiByZXNwSXAKICAgCjIwMDEtMDUtMjMgMDg6NTggIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGVhcmx5IGJhaWwgb3V0IG9mIGhhbmRsZV9zbm1wX3BhY2tldCgpIGlmIHRoZSBjYWxsYmFjayBvcGVyYXRpb24KICAgICAgIHR5cGUgaXMgbm90IFNOTVBfQ0FMTEJBQ0tfT1BfUkVDRUlWRURfTUVTU0FHRS4gIEluIHByYWN0aWNlLCB0aGUKICAgICAgIG9ubHkgd2F5IHRoaXMgYXJpc2VzIGN1cnJlbnRseSBpcyB3aGVuIGEgc3RyZWFtIHRyYW5zcG9ydCBiYXNlZAogICAgICAgY29ubmVjdGlvbiBnb2VzIGF3YXkgYW5kIGEgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIG9jY3Vycy4KICAgCjIwMDEtMDUtMjMgMDg6NDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIG5ldyBmaWVsZHMgcmN2TXNnTWF4U2l6ZSBhbmQgc25kTXNnTWF4U2l6ZSBpbiBzbm1wX3Nlc3Npb24KICAgICAgIHN0cnVjdHVyZSB0byBzdXBwb3J0IHYzIG1zZ01heFNpemUKICAgCiAgICAgLSByZW1vdmVkIGZ1bmN0aW9ucyBhc2NpaV90b19iaW5hcnksIGhleF90b19iaW5hcnkgZnJvbSBwdWJsaWMKICAgICAgIGludGVyZmFjZS4gIFVzaW5nIHRoZXNlIGZ1bmN0aW9ucyBpcyByZWFsbHkgYmFkLCBzaW5jZSB0aGV5CiAgICAgICB3aWxsIGhhcHBpbHkgb3ZlcmZsb3cgYnVmZmVycy4gIFRoZSBzdXBlcmlvciBhbHRlcm5hdGl2ZXMsCiAgICAgICBkZWZpbmVkIGluIHRvb2xzLmgsIGFyZSBzbm1wX3tkZWNpbWFsLCBoZXh9X3RvX2JpbmFyeS4KICAgCjIwMDEtMDUtMjMgMDg6MzcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBJUFhEb21haW4uYywKICAgc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKLCBzbm1wX3RyYW5zcG9ydC5jLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIGFkZCBtc2dNYXhTaXplIGZpZWxkIHRvIHNubXBfdHJhbnNwb3J0IHN0cnVjdHVyZSB0byBzdXBwb3J0CiAgICAgICBtc2dNYXhTaXplIG5lZ290aWF0aW9uIGZvciB2MwogICAKMjAwMS0wNS0yMyAwNzoxNCAgamJwbgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAgIC0gdXNlIHNwcmludF9yZWFsbG9jX2hleHN0cmluZyBpbnN0ZWFkIG9mIHNwcmludF9oZXhzdHJpbmcgZm9yCiAgICAgICBTTk1QX1RFU1RJTkdfQ09ERSBkZWJ1Z2dpbmcgb3V0cHV0IG9mIElWLCBrZXkgYW5kIHBsYWludGV4dAogICAKMjAwMS0wNS0yMyAwNToyNSAgamJwbgoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAgIC0gZnJlZSgpIGJ1ZmZlcnMgaW4gYSBjb3VwbGUgb2YgZXJyb3IgY2FzZXM7IG5vIGJpZyBkZWFsCiAgIAoyMDAxLTA1LTIzIDA0OjM5ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAgIC0gdXNlIG5ldyBzbm1wX2hleF90b19iaW5hcnkgZnVuY3Rpb24gZm9yIGVuZ2luZSBJRCBwYXJzaW5nIGluIC1lCiAgICAgICBvcHRpb24sIHJhdGhlciB0aGFuIGFyY2hhaWMgaGV4X3RvX2JpbmFyeQogICAKMjAwMS0wNS0yMyAwNDoyMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIGZyZWUoKSBidWZmZXJzIGluIGEgY291cGxlIG9mIGVycm9yIGNhc2VzOyBubyBiaWcgZGVhbAogICAKMjAwMS0wNS0yMyAwNDoxNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIHVzZSBuZXcgc25tcF9oZXhfdG9fYmluYXJ5IGZ1bmN0aW9uIGZvciBlbmdpbmUgSUQgcGFyc2luZyBpbiAtZQogICAgICAgYW5kIC1FIG9wdGlvbnMsIHJhdGhlciB0aGFuIGFyY2hhaWMgaGV4X3RvX2JpbmFyeQogICAKMjAwMS0wNS0yMyAwMzo1NiAgamJwbgoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAgIC0gdXNlIG5ldyBzbm1wX3tkZWNpbWFsLCBoZXh9X3RvX2JpbmFyeSBmdW5jdGlvbnMgZm9yIGlucHV0IHN0cmluZwogICAgICAgdG8gT0NURVQgU1RSSU5HIGNvbnZlcnNpb24sIHJhdGhlciB0aGFuIGFyY2hhaWMgYXNjaWlfdG9fYmluYXJ5CiAgICAgICBhbmQgaGV4X3RvX2JpbmFyeQogICAKICAgICAtIG9taXQgdHJhaWxpbmcgbmV3bGluZSBmcm9tIHN0cmluZyAoaGVscGZ1bCBmb3Igb2JqZWN0cyB0aGF0IGRvbid0CiAgICAgICBhbGxvdyBub24tcHJpbnRpbmcgY2hhcmFjdGVycywgZS5nLiBzeXNMb2NhdGlvbi4wKQogICAKMjAwMS0wNS0yMCAwODoxMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcmV3cml0dGVuIF9zZXNzX3JlYWQoKSBmdW5jdGlvbjoKICAgCiAgICAgICAtIGJldHRlciBoYW5kbGluZyBvZiBsb25nIHBhY2tldHMKICAgICAgIC0gemVyby1jb3B5IHJlY2VwdGlvbiBvZiBwYWNrZXRzIG9uIHN0cmVhbSB0cmFuc3BvcnRzCiAgICAgICAtIGxvd2VyIG1lbW9yeSBvdmVyaGVhZHMgZm9yIHBhY2tldCBmcmFnbWVudCBoYW5kbGluZyBmb3Igc3RyZWFtCiAgICAgICAgIHRyYW5zcG9ydHMKICAgCiAgICAgLSBhbGxvdyBwYXJzaW5nIG9mIGxhcmdlIG9iamVjdHMgKD44MTkyIG9jdGV0cykKICAgCjIwMDEtMDUtMjAgMDU6NDggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSBkb24ndCBzdHJkdXAoKSBjb250ZXh0TmFtZSwgc2VjdXJpdHlOYW1lIC0tIGNhdXNlcyBtaW5vciBtZW1vcnkKICAgICAgIGxlYWsuCiAgIAoyMDAxLTA1LTIwIDA1OjA0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIHRlc3QgcmV0dXJuIG9mIGZjbnRsKEZfR0VURkwpLCBzbyBhcyBub3QgdG8gc2V0IGZsYWdzIHRvIGdhcmJhZ2UKICAgCiAgICAgLSBjb3JyZWN0aW9uIHRvIGNvbW1lbnQgLS0gc2V0IHNvY2tldCB0byAqYmxvY2tpbmcqIQogICAKICAgICAtIGNoZWNrIG9wYXF1ZSBiZWZvcmUgd3JpdGluZyB0byBpdCBpbiByZWN2CiAgIAoyMDAxLTA1LTIwIDA1OjAyICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgICAgLSBwcm9wZXIgaGFuZGxpbmcgb2YgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIGluIHNubXBfc3luY2hfaW5wdXQ6CiAgICAgICBzZXQgYW4gZXJyb3IgY29uZGl0aW9uLCB3aXRoIGVycm5vIFNOTVBFUlJfQUJPUlQgKCJTZXNzaW9uIGFib3J0CiAgICAgICBmYWlsdXJlIiksIHdoaWNoIHNlZW1zIGxpa2UgYSBnb29kIGVub3VnaCBtYXRjaC4KICAgCjIwMDEtMDUtMTggMDk6NTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gbWFrZSBuZXdseS1hY2NlcHQoKWVkIHNvY2tldHMgYmxvY2tpbmc7IG90aGVyd2lzZSBwcm9ibGVtcyBhcmlzZQogICAgICAgbGF0ZXIgd2hlbiBzZW5kKClpbmcgbGFyZ2UgUERVcyAoc2luY2Ugb25seSBhIHNpbmdsZSBzb2NrZXQgYnVmZmVyJ3MKICAgICAgIHdvcnRoIG9mIGRhdGEgYXQgbW9zdCBjYW4gYmUgc2VudCB3aXRob3V0IGJsb2NraW5nKS4KICAgCjIwMDEtMDUtMTggMDc6MTcgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHVzZSBzcHJpbnRfcmVhbGxvY19vYmppZCBhbmQgc3ByaW50X3JlYWxsb2NfdmFyaWFibGUgaW5zdGVhZCBvZgogICAgICAgc3ByaW50X29iamlkIGFuZCBzcHJpbnRfdmFyaWFibGUgcmVzcGVjdGl2ZWx5LCB0byBhbGxvdyBsYXJnZSBQRFVzCiAgICAgICB0byBiZSBwcmludGVkIHdoZW4gZGVidWdnaW5nCiAgIAoyMDAxLTA1LTE4IDA3OjE2ICBqYnBuCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgICAgLSBpbXByb3ZlZCBkZWJ1Z2dpbmcgb3V0cHV0IGZyb20gc25tcF9yZWFsbG9jKCkKICAgCjIwMDEtMDUtMTggMDc6MTUgIGpicG4KCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaDoKCiAgICAgLSByZW1vdmUgZGVidWdnaW5nIGZyb20gb3V0cHV0IHJvdXRpbmVzCiAgIAogICAgIC0gbmV3IGZ1bmN0aW9uIHNwcmludF9yZWFsbG9jX29iamlkCiAgIAogICAgIC0gbWFrZSBzcHJpbnRfcmVhbGxvY19vYmppZCBhbmQgc3ByaW50X3JlYWxsb2NfdmFyaWFibGUgZXh0ZXJuYWxseQogICAgICAgdmlzaWJsZQogICAKMjAwMS0wNS0xOCAwNjoyOCAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSBpbXByb3ZlZCBkZWJ1Z2dpbmcgb3V0cHV0IGZyb20gYXNuX3JlYWxsb2MoKQogICAKMjAwMS0wNS0xNSAwNDoxMCAgamJwbgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAgIC0gYWRkIE9JRHMgZm9yIFVEUC9JUHY2IGFuZCBUQ1AvSVB2NgogICAKMjAwMS0wNS0xNCAwMjoyMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgICAgLSBhZGRlZCBcbiB0byB0ZXh0IG9mIHNubXBfbG9nKCkgbWVzc2FnZXMgKGJ1ZyAjNDIyOTc4KQogICAKMjAwMS0wNS0xMSAwNzozMCAgamJwbgoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oOgoKICAgICAtIGFkZGVkIHNwcmludF9yZWFsbG9jXzx0eXBlPiBmYW1pbHkgb2YgZnVuY3Rpb25zIHdoaWNoIHRha2UgZXh0cmEKICAgICAgIHBhcmFtZXRlcnMgYW5kIHVzZSByZWxvY2F0aW5nIGJ1ZmZlcnMgdG8gcmVtb3ZlIGxpbWl0YXRpb25zIGR1ZSB0bwogICAgICAgZml4ZWQtc2l6ZSBidWZmZXJzIChlLmcuIHNlZSBidWcgIzQwOTE4MSkuCiAgIAogICAgIC0gYWxzbyBmaXhlcyBwb3RlbnRpYWwgcHJvYmxlbSBub3RlZCBhcyBidWcgIzQxNDgwMwogICAKICAgICAtIGZwcmludF92YXJpYWJsZSwgZnByaW50X29iamlkIGFuZCBmcHJpbnRfdmFsdWUgdXNlIG5ldyBmdW5jdGlvbnMKICAgICAgIHN1Y2ggdGhhdCBzbm1wZ2V0IGV0Yy4gYXJlIGltcHJvdmVkIGltbWVkaWF0ZWx5CiAgIAogICAgIC0gb2xkIGZ1bmN0aW9ucyByZW1haW4gKkZPUiBOT1cqIC0tIGJ1dCByZWFsbHkgdGhleSBzaG91bGQgYmUKICAgICAgIGNvbnNpZGVyZWQgdG8gYmUgZGVwcmVjYXRlZCAobmV3IGZ1bmN0aW9ucyBwcm92aWRlIGEgc3VwZXJzZXQgb2YKICAgICAgIHRoZWlyIGZ1bmN0aW9uYWxpdHkpLgogICAKMjAwMS0wNS0xMSAwNzoxNCAgamJwbgoKICAgKiBzbm1wbGliL3BhcnNlLmg6CgogICAgIC0gYWRkZWQgYWRkaXRpb25hbCBmdW5jdGlvbiBwb2ludGVyIHRvIHN0cnVjdCB0cmVlIHRvIHBvaW50IGF0CiAgICAgICByZWxvY2F0aW5nIGJ1ZmZlciBjb21wYXRpYmxlIG91dHB1dCBmdW5jdGlvbgogICAKMjAwMS0wNS0xMSAwNjo1NyAgamJwbgoKICAgKiBzbm1wbGliLzogdG9vbHMuYywgdG9vbHMuaDoKCiAgICAgLSBhZGRlZCB1dGlsaXR5IGZ1bmN0aW9uIHNubXBfc3RyY2F0LCB3aGljaCBhcHBlbmRzIGEgc3RyaW5nIHRvIGEKICAgICAgIHJlbG9jYXRhYmxlIGJ1ZmZlcgogICAKMjAwMS0wNS0xMCAxMToyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggYnVnICM0MjMxMDkgaW5jb3JyZWN0IGluZGV4IHBhcnNpbmcKICAgCjIwMDEtMDUtMDkgMTY6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBmaXggc25tcF9jbGllbnQuYzo1Njk6IHdhcm5pbmc6IGNvbnRyb2wgcmVhY2hlcyBlbmQgb2Ygbm9uLXZvaWQgZnVuY3Rpb24KICAgCjIwMDEtMDUtMDkgMTI6MzYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBSbW9uLmgsIFJtb24vUkVBRE1FLCBSbW9uL2FndXRpbC5jCiwgUm1vbi9hZ3V0aWwuaCwgUm1vbi9hZ3V0aWxfYXBpLmgsIFJtb24vYWxhcm0uYwosIFJtb24vYWxhcm0uaCwgUm1vbi9ldmVudC5jLCBSbW9uL2V2ZW50LmgsCiAgIFJtb24vaGlzdG9yeS5jLCBSbW9uL2hpc3RvcnkuaCwgUm1vbi9yb3dfYXBpLmgsCiAgIFJtb24vcm93cy5jLCBSbW9uL3Jvd3MuaCwgUm1vbi9zdGF0aXN0aWNzLmMsCiAgIFJtb24vc3RhdGlzdGljcy5oLCBSbW9uL3Rlc3RfYWxhcm0uc2gsCiAgIFJtb24vdGVzdF9oaXN0LnNoOgoKICAgSW5jbHVkZSBBbGV4IFJvemluJ3MgUm1vbi4KICAgCjIwMDEtMDUtMDcgMTA6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2NsaWVudC5jLCBzbm1wX2NsaWVudC5oOgoKICAgQWRkZWQgYSBjb3VwbGUgb2YgY29udmVuaWVuY2UgZnVuY3Rpb25zIGZvciBtYW5pcHVsYXRpbmcgdmFyYmluZGxpc3RzOgogICAgIGludCBzbm1wX3NldF92YXJfdHlwZWRfdmFsdWUoc3RydWN0IHZhcmlhYmxlX2xpc3QgKm5ld3ZhciwgdV9jaGFyIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2NoYXIgKnZhbF9zdHIsIHNpemVfdCB2YWxfbGVuKTsKICAgICB2b2lkIHNubXBfcmVwbGFjZV92YXJfdHlwZXMoc3RydWN0IHZhcmlhYmxlX2xpc3QgKnZibCwgaW50IG9sZF90eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmV3X3R5cGUpOwogICAgIHZvaWQgc25tcF9yZXNldF92YXJfdHlwZXMoc3RydWN0IHZhcmlhYmxlX2xpc3QgKnZibCwgaW50IG5ld190eXBlKTsKICAgCjIwMDEtMDUtMDcgMTA6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuaDoKCiAgIGRlZmluZSBTTk1QX01BTExPQ19UWVBFREVGKCkKICAgCjIwMDEtMDUtMDUgMDc6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICBmaXggc3RvcmVfIG5hbWU7IGRvbid0IGNhc3QgdG8gYXNueSB0eXBlIGlmIHBhcm0gZXhwZWN0aW5nIHVfY2hhcio7IGZpeCBfdmFyaWFibGVfb2lkCiAgIG5hbWluZzsgY2FzdCBwYXJtIDIgb2YgbWVtZHVwIHRvIHVfY2hhcioKICAgCjIwMDEtMDUtMDMgMTQ6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4ZWQgcmF1dGggb2Zmc2V0IGluY3JlbWVudGluZzogd2FzIGluY3JlbWVudGluZyB0aGUgcG9pbnRlciwgbm90IHRoZSB2YWx1ZS4KICAgICAtLSBtb3JlIGluc3RhbmNlcyBvZiB0aGUgc2FtZSBwcm9ibGVtIGZvdW5kLgogICAKMjAwMS0wNS0wMyAxNDoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXhlZCByYXV0aCBvZmZzZXQgaW5jcmVtZW50aW5nOiB3YXMgaW5jcmVtZW50aW5nIHRoZSBwb2ludGVyLCBub3QgdGhlIHZhbHVlLgogICAKMjAwMS0wNS0wMyAxMDowOCAgaGFyZGFrZXIKCiAgICogYWNsb2NhbC5tNCwgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLAogICBjb25maWd1cmUsIGx0bWFpbi5zaDoKCiAgIHVwZGF0ZWQgdG8gbGlidG9vbCAxLjQKICAgCjIwMDEtMDUtMDEgMTM6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgdXNlIHJlYWxsb2Mgcm91dGluZXMuCiAgIAoyMDAxLTA1LTAxIDEzOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBmaXggdmFyaWFibGUgZGVjbGFyYXRpb24uCiAgIAoyMDAxLTA1LTAxIDEzOjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRG9uJ3QgcHJpbnQgaGV4IGZvciBzdHJpbmcgbGVuZ3RocyBsZXNzIHRoYW4gNC4gIFNob3VsZCBoYXZlIGRpZWQgYWdlcyBhZ28uCiAgIAoyMDAxLTA1LTAxIDEzOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaDoKCiAgIEZpeCBwcm90b3R5cGUgc28gaXRzIG5vdCBzdGF0aWMgKGl0IHNob3VsZG4ndCBiZSkuCiAgIAoyMDAxLTA1LTAxIDEzOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgbWFrZSBST05MWSB2YXJpYWJsZXMgd3JpdGFibGUgKHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsuICBJJ20gYmV0dGluZyBub3QuKQogICAKMjAwMS0wNS0wMSAxMzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoyMDAxLTA1LTAxIDEzOjI4ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3IgYW4gcnBtIHN1YmRpcmVjdG9yeS4KICAgCjIwMDEtMDQtMjMgMjA6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgYmlnIGNsZWFudXAgYW5kIG90aGVyIGZpeGVzIEkndmUgYWxyZWFkeSBmb3Jnb3R0ZW4gaW4gdGhlIGxhc3QgZmV3IG1pbnV0ZXMuCiAgIAoyMDAxLTA0LTIzIDIwOjM0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIERvbid0IHdhbGsgb2ZmIGVuZCBvZiBtaWIgdHJlZSAoc2lnaCkuCiAgIAoyMDAxLTA0LTIzIDIwOjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGZpeCB0aGUgbWliIGluZm8gZGlzcGxheSBvcHRpb25zLgogICBzYXZlIHRoZW0gYXBwcm9wcmlhdGVseS4KICAgCjIwMDEtMDQtMjMgMTg6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgbW9yZSBzYXZhYmxlIG9wdGlvbiBpdGVtcy4KICAgdXNlIERhdGE6OkR1bXBlciB0byBzYXZlIG1vc3Qgc3R1ZmYuCiAgIAoyMDAxLTA0LTIzIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIERvbid0IHNhdmUgc2Vzc2lvbiBvcHRpb25zIHR3aWNlLgogICBNYWtlIGNvbG9yIG9mIHdyaXRhYmxlIG9iamVjdHMgYSB2YXJpYWJsZS4KICAgCjIwMDEtMDQtMjMgMTc6MDggIGhhcmRha2VyCgogICAqIGxvY2FsLzogdGttaWIgKFY0LTItcGF0Y2hlcy4yKSwgdGttaWI6CgogICBmaXggd2FsayBwcm9ibGVtIG9uY2UgYW5kIGZvciBhbGwuCiAgIAoyMDAxLTA0LTIzIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIHJlZHVjZSBzY3JlZW4gcmVhbGVzdGF0ZSBhbGwgb3ZlciB0aGUgcGxhY2UKICAgCjIwMDEtMDQtMjMgMTY6MzUgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgdGVzdCBhZ2FpbnN0IHZlcnNpb24gNQogICAKMjAwMS0wNC0xOCAwODo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5oLCBtaWJzL0xNLVNFTlNPUlMtTUlCLnR4dAosIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIEFkZGVkIExNLVNFTlNPUlMtTUlCIHN1cHBvcnQgKGRpc2tpbyBleHRlbnNpb24pIGZyb20gTWFydGluIE9sZGZpZWxkCiAgIAoyMDAxLTA0LTE4IDA1OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBoYWNraW5nIG9uIHNubXBfYWRkX3ZhciB0byBoYW5kbGUgbG9uZyB2YWx1ZXMKICAgCiAgICAgICAtIHVzZSBzbm1wX3toZXgsZGVjaW1hbH1fdG9fYmluYXJ5IGluc3RlYWQgb2YgaGV4X3RvX2JpbmFyeQogICAgICAgICBhbmQgYXNjaWlfdG9fYmluYXJ5OyB0aGVzZSBzaG91bGQgYmUgcmVtb3ZlZAogICAKICAgICAgIC0gZG9uJ3QgdXNlIHN0cnRvayBpbiBwcm9jZXNzaW5nIGJpdHN0cmluZ3MKICAgCjIwMDEtMDQtMTggMDQ6NTggIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gdXNlIHRoZSBnZW5lcmljIHNubXBfcmVhbGxvYyBmdW5jdGlvbiBpbiBhc25fcmVhbGxvYwogICAKMjAwMS0wNC0xOCAwMjo0MCAgamJwbgoKICAgKiBzbm1wbGliLzogdG9vbHMuYywgdG9vbHMuaDoKCiAgICAgLSBuZXcsIHJlYWxsb2NhdGluZyB1dGlsaXR5IGZ1bmN0aW9ucyBzbm1wX2hleF90b19iaW5hcnkgYW5kCiAgICAgICBzbm1wX2RlY2ltYWxfdG9fYmluYXJ5IHRvIGNvbnZlcnQgaGV4IGFuZCBkZWNpbWFsIHN0cmluZ3MgdG8gb2N0ZXQKICAgICAgIHN0cmluZ3MgcmVzcGVjdGl2ZWx5LgogICAKICAgICAtIG5ldyB1dGlsaXR5IGZ1bmN0aW9uIHNubXBfcmVhbGxvYyB0byBwZXJmb3JtIGJ1ZmZlciAocmUtKWFsbG9jYXRpb24KICAgCjIwMDEtMDQtMTIgMDU6MTIgIGR0czEyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0yLXBhdGNoZXMuNiksIHNubXBfYWdlbnQuYzoKCiAgIEJldHRlciBmaXggZm9yIGJ1ZyAjNDE0ODU1IGZyb20gYXJhamVzaAogICBIYW5kbGVzIG5vbi1yZXBlYXRlcnM9MCBhcyB3ZWxsLCBhbmQgYXZvaWRzIG1lbW9yeSBsZWFrcy4KICAgCjIwMDEtMDQtMTEgMTA6MDYgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmg6CgogICAgIC0gc2Vjb25kIGluY2FybmF0aW9uIG9mIGFzbl9yZWFsbG9jX3JidWlsZF88dHlwZT4gZnVuY3Rpb25zLCB3aGljaAogICAgICAgbm93IHRha2UgYW4gYWRkaXRpb25hbCBhcmd1bWVudCB0aGF0IG1heSBiZSB1c2VkIHRvIGluZGljYXRlIHRoYXQKICAgICAgIHJlYWxsb2NhdGlvbiBzaG91bGQgbm90IGJlIGRvbmUuCiAgIAogICAgIC0gb2xkIF9yYnVpbGQgQVBJIGlzIGdvbmUuCiAgIAogICAgIC0gZXh0ZW5kZWQgKGFuZCBjb3JyZWN0ZWQhKSBjb21tZW50YXJ5IG9uIGNvcnJlY3QgdXNhZ2Ugb2YgbmV3IEFQSS4KICAgCjIwMDEtMDQtMTEgMTA6MDUgIGpicG4KCiAgICogc25tcGxpYi86IHNubXAuYywgc25tcC5oOgoKICAgICAtIHVzZSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgX3JlYWxsb2NfcmJ1aWxkIGZ1bmN0aW9ucy4KICAgCiAgICAgLSBvbGQgX3JidWlsZF92YXJfb3AgQVBJIGlzIGdvbmUuCiAgIAoyMDAxLTA0LTExIDEwOjA0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIHVzZSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgYXNuX3JlYWxsb2NfcmJ1aWxkXzx0eXBlPiBmdW5jdGlvbnMuCiAgIAoyMDAxLTA0LTExIDEwOjAzICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSB1c2Ugc2Vjb25kIGluY2FybmF0aW9uIG9mIF9yZWFsbG9jX3JidWlsZCBmdW5jdGlvbnMuCiAgIAogICAgIC0gb2xkIF9yYnVpbGQgQVBJIGlzIGdvbmUuCiAgIAoyMDAxLTA0LTExIDEwOjAyICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBhc25fcmVhbGxvY19yYnVpbGRfPHR5cGU+IGZ1bmN0aW9ucywgd2hpY2gKICAgICAgIG5vdyB0YWtlIGFuIGFkZGl0aW9uYWwgYXJndW1lbnQgdGhhdCBtYXkgYmUgdXNlZCB0byBpbmRpY2F0ZSB0aGF0CiAgICAgICByZWFsbG9jYXRpb24gc2hvdWxkIG5vdCBiZSBkb25lLgogICAKICAgICAtIG9sZCBfcmJ1aWxkIEFQSSBpcyBnb25lLgogICAKICAgICAtIGFzbl9yZWFsbG9jKCkgZnVuY3Rpb24gY2hlY2tzIHdoZXRoZXIgaXQgaGFzIGJlZW4gcGFzc2VkIGEgTlVMTAogICAgICAgcG9pbnRlciBhbmQgdXNlcyBtYWxsb2MoKSBpbiB0aGF0IGNhc2UgKHRoYW5rcyB0byBNaWNoYWVsIFNsaWZjYWsKICAgICAgIGZvciBwb2ludGluZyBvdXQgdGhlIGRhbmdlciBoZXJlKS4KICAgCjIwMDEtMDQtMTEgMDY6MTMgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEhhbmRsZSBHZXRCdWxrIHJlcXVlc3RzIHdpdGggbWF4LXJlcGV0aXRpb25zPTAgcHJvcGVybHkgKGJ1ZyAjNDE0ODU1KQogICAKMjAwMS0wNC0xMCAwNDo0NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgICAgLSBzZXQgU09fU05EQlVGIGFuZCBTT19SQ1ZCVUYgdG8gMTI4S2IgZm9yIG5ld2x5LW9wZW5lZCBVRFAgc29ja2V0cywKICAgICAgIHRvIGVuYWJsZSBsYXJnZSBQRFVzIHRvIGJlIHNlbnQgYW5kIHJlY2VpdmVkLiAgU29tZQogICAgICAgaW1wbGVtZW50YXRpb25zIGRlZmF1bHQgdmVyeSBsb3cgKFNvbGFyaXMgMi43IDhLYiwgTGludXggMi40CiAgICAgICA2NEtiKS4KICAgCjIwMDEtMDQtMDkgMTA6MDUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gbW9kaWZpZWQgdXNtX3JnZW5lcmF0ZV9vdXRfbXNnKCkgdG8gbWFrZSB1c2Ugb2YgcmVhbGxvY2F0aW5nCiAgICAgICByZXZlcnNlIGVuY29kZSBmdW5jdGlvbnMuCiAgIAoyMDAxLTA0LTA5IDEwOjAzICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5oOgoKICAgICAtIGFkZGl0aW9uYWwgcGFyYW1ldGVyIHRvIHVzbV9yZ2VuZXJhdGVfb3V0X21zZygpIHRvIGVuYWJsZSB1c2Ugb2YKICAgICAgIHJlYWxsb2NhdGluZyByZXZlcnNlIGVuY29kZSBmdW5jdGlvbnMuCiAgIAoyMDAxLTA0LTA5IDA5OjU3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9zZWNtb2QuaDoKCiAgICAgLSBhbGxvdyBhZGRpdGlvbmFsIHBhcmFtZXRlciBmb3Igb3V0Z29pbmcgcGFyYW1zIHRvIGVuYWJsZSB1c2Ugb2YKICAgICAgIHJlYWxsb2NhdGluZyByZXZlcnNlIGVuY29kZSBmdW5jdGlvbnMuCiAgIAoyMDAxLTA0LTA5IDA5OjU1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSBwcm90b3R5cGVzIGZvciByZWFsbG9jYXRpbmcgcmV2ZXJzZSBlbmNvZGUgZnVuY3Rpb25zCiAgIAoyMDAxLTA0LTA5IDA5OjU0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtb2RpZmllZCB0byB1c2UgcmVhbGxvY2F0aW5nIHJldmVyc2UgQVNOLjEgZW5jb2RlciBmdW5jdGlvbnMgaWYKICAgICAgIHVzaW5nIHJldmVyc2UgZW5jb2RpbmcgYXQgYWxsLgogICAKMjAwMS0wNC0wOSAwOTo0OSAgamJwbgoKICAgKiBzbm1wbGliL3NubXAuYzoKCiAgICAgLSBhZGQgbmV3IGZ1bmN0aW9uIHNubXBfcmVhbGxvY19yYnVpbGRfdmFyX29wKCkgd2hpY2ggdXNlcwogICAgICAgcmVhbGxvY2F0aW5nIHJldmVyc2UgQVNOLjEgZW5jb2RlciBmdW5jdGlvbnMgdG8gZW5jb2RlIHZhcmJpbmRzLgogICAKMjAwMS0wNC0wOSAwOTo0NyAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgICAgLSBwcm90b3R5cGUgZm9yIG5ldyBzdWl0ZSBvZiBmdW5jdGlvbnMgYXNuX3JlYWxsb2NfcmVidWlsZF88dHlwZT4sCiAgICAgICB3aGljaCBwZXJmb3JtIHJldmVyc2UgZW5jb2RpbmcgaW50byBhIGJ1ZmZlciBhbmQgZ3JvdyBpdCBpZiB0aGVyZQogICAgICAgaXMgbm90IGVub3VnaCBzcGFjZSBmb3IgdGhlIGVuY29kaW5nLgogICAKICAgICAtIGNvbW1lbnRhcnkgb24gY29ycmVjdCB1c2FnZSBvZiBhYm92ZS4KICAgCjIwMDEtMDQtMDkgMDk6NDMgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gbmV3IHN1aXRlIG9mIGZ1bmN0aW9ucyBhc25fcmVhbGxvY19yZWJ1aWxkXzx0eXBlPiwgd2hpY2ggcGVyZm9ybQogICAgICAgcmV2ZXJzZSBlbmNvZGluZyBpbnRvIGEgYnVmZmVyIGFuZCBncm93IGl0IGlmIHRoZXJlIGlzIG5vdCBlbm91Z2gKICAgICAgIHNwYWNlIGZvciB0aGUgZW5jb2RpbmcuCiAgIAoyMDAxLTA0LTA2IDEyOjEyICBoYXJkYWtlcgoKICAgKiBBR0VOVC50eHQsIENPUFlJTkcsIENoYW5nZUxvZywKICAgRVhBTVBMRS5jb25mLmRlZiwgRkFRLCBORVdTLCBQT1JUSU5HLAogICBSRUFETUUsIFJFQURNRS5hZ2VudHgsIFJFQURNRS5zbm1wdjMsIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgKLCBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2RzX2FnZW50LmgsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsIGFwcHMvc25tcGRlbHRhLmMKLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYywgbG9jYWwvc25tcGNvbmYKLCBsb2NhbC90a21pYiwgbG9jYWwvd2VzcmVzdGFydCwgbWFuL3NubXBjbWQuMQosIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtYW4vc25tcGRlbHRhLjEsCiAgIG1pYnMvcmZjbGlzdCwgbWlicy9yZmNtaWJzLmRpZmYsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHRlc3RpbmcvZXZhbF90b29scy5zaCwgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQ6CgogICBtZXJnZTMgLT4gbWVyZ2U0LiAgSSBkb24ndCAqdGhpbmsqIEkgYnJva2UgYW55dGhpbmcuCiAgICAgLSBUaGUgbWFpbiBsaW5lIHNob3VsZCBub3cgY29udGFpbiBhbGwgdGhlIDQuMi4xIHBhdGNoZXMuCiAgICAgLSBJIG1heSBkb3VibGUgY2hlY2sgdGhpcyBhdCBhIGxhdGVyIGRhdGUuCiAgIAoyMDAxLTA0LTA1IDA2OjM3ICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDaGFuZ2UgJ0xpbmUnIHZhcmlhYmxlIG5hbWUsIHRvIGFzc2lzdCB3aXRoIE1hYyBwb3J0LgogICAKMjAwMS0wNC0wNSAwNjoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgSGFuZGxlIHNldHRpbmcgbnVsbCBzdHJpbmcgdmFsdWVzIHZpYSB0aGUgJ3Bhc3MnIG1lY2hhbmlzbS4gKFN1cHBvcnQjNDA2NzI4KQogICBBbHNvIGhhbmRsZSBlbWJlZGRlZCB3aGl0ZXNwYWNlIGluIHN1Y2ggdmFsdWVzLgogICBBbHNvIGFwcGxpZWQgdG8gJ3Bhc3NfcGVyc2lzdCcuCiAgIAoyMDAxLTA0LTA1IDA2OjA3ICBkdHMxMgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3RyYXAuYywga2VybmVsLmMKLCBtaWJfbW9kdWxlcy5jLCBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaAosIHNubXBfdmFycy5jLCBtaWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKLCBtaWJncm91cC9ob3N0L2hyX2Rpc2suYywgbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMKLCBtaWJncm91cC9ob3N0L2hyX3ByaW50LmMsIG1pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jCiwgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBtaWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2hwdXguYywgbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIEtlZXAgb25lIG9mIHRoZSBwaWNraWVyIGNvbXBpbGVycyAoSFAncyBhQ0MpIGhhcHB5LgogICAKMjAwMS0wNC0wNSAwNjowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgRW5zdXJlIHRoYXQgY2hlY2tpbmcgZm9yICdzdGF0dmZzJyBpcyBkb25lIGNvbnNpc3RlbnRseQogICAKMjAwMS0wNC0wNSAwNjowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgZW5zdXJlIHRoYXQgJ2V4ZWNfY29tbWFuZCcgaXMgdXNlZCBjb25zaXN0ZW50bHkgd2l0aCB0aGUgYXZhaWxhYmlsaXR5IG9mIGV4ZWN2CiAgIChBIGNsZWFuZXIgYXBwcm9hY2ggdGhhbiB0aGUgcHJldmlvdXMgcGF0Y2gpCiAgIAoyMDAxLTA0LTA1IDA2OjAxICBkdHMxMgoKICAgKiBhZ2VudC86IGF1dG9fbmxpc3QuYywgYXV0b19ubGlzdC5oOgoKICAgZml4IGZvciBhdXRvX25saXN0IGJvZ3VzIGRlZmluaXRpb25zIGZvciBtYWNoaW5lcyB3aXRob3V0IG5saXN0LgogICAKMjAwMS0wNC0wNSAwNDo1MSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgLSBzYXZlIGEgc3RyY3B5KCkgYW5kIGFsbG93IGxvbmcgb2N0ZXQgc3RyaW5nIHZhbHVlcyB3aXRob3V0IGNyYXNoaW5nCiAgICAgICh0aG91Z2ggdGhlcmUgYXJlIHN0aWxsIHByb2JsZW1zIGR1ZSB0byB0aGUgbGliZXJhbCB1c2Ugb2YgZml4ZWQKICAgICAgc2l6ZSBidWZmZXJzIHdpdGggbm8gYm91bmRzIGNoZWNraW5nIGFsbCBvdmVyIHRoZSBwbGFjZS4gIFNpZ2gpLgogICAKMjAwMS0wNC0wNCAwNjo0NiAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgIC0gY2FsbCBleHRlcm5hbCBzaWduYWwgaGFuZGxlcnMgYmVmb3JlIGNhbGxpbmcgc25tcF9zZWxlY3RfaW5mbygpLAogICAgICByYXRoZXIgdGhhbiBhZnRlciBjYWxsaW5nIHNubXBfc2VsZWN0X2luZm8oKSBidXQgYmVmb3JlIHNlbGVjdCgpLgogICAgICBUaGlzIGZpeGVzIGEgcG90ZW50aWFsIHByb2JsZW0gdGhhdCBjb3VsZCBhcmlzZSBpZiBhIHNpZ25hbCBoYW5kbGVyCiAgICAgIGNsb3NlZCBhIHNlc3Npb24sIHdoaWNoIHdvdWxkIGNhdXNlIHNlbGVjdCgpIHRvIHJldHVybiAtMSB3aXRoCiAgICAgIEVCQURGLCBhbmQgdGh1cyB0ZXJtaW5hdGUgdGhlIGFnZW50LgogICAKMjAwMS0wNC0wMyAwOTozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgRW5zdXJlIHRoYXQgdGhlICdleHRtcCcgY29tbWFuZCB2YXJpYWJsZSBpcyBhY2Nlc3NpYmxlIG9uIHN5c3RlbXMgd2l0aG91dCBFWEVDVi4KICAgCjIwMDEtMDQtMDMgMDk6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIEtlZXAgb25lIG9mIHRoZSBwaWNraWVyIGNvbXBpbGVycyAoSFAncyBhQ0MpIGhhcHB5LgogICAKMjAwMS0wNC0wMyAwOToyMiAgZHRzMTIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfbG9nLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDMgMDk6MTUgIGR0czEyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcmVhZF9jb25maWcuYywgc25tcFRDUERvbWFpbi5oCiwgc25tcFVEUERvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5jLAogICBzbm1wVW5peERvbWFpbi5oLCBzbm1wX2FwaS5jLCBzbm1wX2xvZ2dpbmcuYywKICAgc25tcF90cmFuc3BvcnQuYywgc25tcF90cmFuc3BvcnQuaCwgc3lzdGVtLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDMgMDY6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jOgoKICAgUGx1ZyBmaWxlLWRlc2NyaXB0b3IgbGVhayB3aGVuIHVzaW5nIGNhY2hlZCBkYXRhLiAgKEJ1ZyM0MTIwMDApCiAgIAoyMDAxLTA0LTAyIDEwOjExICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAtIGNoZWNrIGZvciBsaW1pdHMuaCBwcm9wZXJseQogICAKMjAwMS0wNC0wMiAxMDoxMCAgamJwbgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMzoKCiAgICAtIG1pbm9yIHR5cGVmYWNlIGNoYW5nZXMKICAgCjIwMDEtMDMtMzEgMDY6MjcgIGpicG4KCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjM6CgogICAgLSB1cGRhdGUgZG9jdW1lbnRhdGlvbiBvZiBhZ2VudF9jaGVja19hbmRfcHJvY2VzcyB0byByZWZsZWN0CiAgICAgIGN1cnJlbnQgYmVoYXZpb3VyCiAgIAogICAgICAgICoqIE5PVEU6IGN1cnJlbnRseSByZXR1cm5zIGNvbnRyb2wgdG8gdXNlciB3aGVuIGFuIGFsYXJtcyBydW5zICoqCiAgICAgICAgKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKioKICAgICAgICAqKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIG1heSBjaGFuZ2UgICAgICAgICAgICAgICAgICAgICAqKgogICAKMjAwMS0wMy0zMSAwNjoyNSAgamJwbgoKICAgKiBtYW4vc25tcF9hbGFybS4zOgoKICAgIC0gZG9jdW1lbnQgdGhlIHNubXBfYWxhcm1fcmVnaXN0ZXJfaHIgZnVuY3Rpb24KICAgCiAgICAtIGV4cGFuZCB0aGUgTk9URVMgc2VjdGlvbiBkaXNjdXNzaW5nIHVzZSBvZiBTSUdBTFJNIChvciBub3QpCiAgIAoyMDAxLTAzLTMxIDA2OjE3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgIC0gTWFrZSB1c2Ugb2YgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHRyYW5zcG9ydCBkaXNjb25uZWN0CiAgICAgIGluZGljYXRpb24gdG8gc2h1dCBkb3duIEFnZW50WCBzZXNzaW9ucyBjbGVhbmx5IGFuZCBjYW5jZWwgYWxsCiAgICAgIGNhbGxiYWNrcyB3aGljaCBtYWtlIHJlZmVybmNlIHRvIHRoZSBBZ2VudFggc2Vzc2lvbi4KICAgCjIwMDEtMDMtMzEgMDY6MTUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgIC0gRml4IG11bHRpcGxlIGZyZWUoKSBvZiBwYXJ0cyBvZiB0aGUgc3Vic2Vzc2lvbiBieSB6ZXJvaW5nIG91dAogICAgICBmaWVsZHMgdGhhdCB3ZSBkb24ndCB1c2UuCiAgIAogICAgLSBNYWtlIHVzZSBvZiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgdHJhbnNwb3J0IGRpc2Nvbm5lY3QKICAgICAgaW5kaWNhdGlvbiB0byBzaHV0IGRvd24gQWdlbnRYIHNlc3Npb25zIGNsZWFubHkuCiAgIAoyMDAxLTAzLTMxIDA2OjEzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgIC0gTWFrZSB1c2Ugb2YgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHRyYW5zcG9ydCBkaXNjb25uZWN0CiAgICAgIGluZGljYXRpb24gdG8gc2h1dCBkb3duIEFnZW50WCBzZXNzaW9ucyBjbGVhbmx5LgogICAKMjAwMS0wMy0zMSAwNjoxMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgLSBGaXggbWVtb3J5IGxlYWsgaW4gaGFuZGxlX29uZV92YXIgd2hlcmUgbG9uZyB2YXJiaW5kcyB3ZXJlbid0CiAgICAgIGNvcnJlY3RseSBmcmVlKClkLgogICAKICAgIC0gQ2hhbmdlIGJlaGF2aW91ciBvZiBhZ2VudF9jaGVja19hbmRfcHJvY2VzcyBzbyB0aGF0IGFsYXJtcyBydW4KICAgICAgY29ycmVjdGx5LgogICAKICAgICAgICAqKiBOT1RFOiBjdXJyZW50bHkgcmV0dXJucyBjb250cm9sIHRvIHVzZXIgd2hlbiBhbiBhbGFybXMgcnVucyAqKgogICAgICAgICoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqCiAgICAgICAgKiogICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBtYXkgY2hhbmdlICAgICAgICAgICAgICAgICAgICAgKioKICAgCjIwMDEtMDMtMzEgMDY6MDUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgIC0gQ2hhbmdlZCBwYWNrZXQgaGFuZGxpbmcgb24gc3RyZWFtLWxpa2UgdHJhbnNwb3J0cyBzbyB0aGF0IGFsbAogICAgICBjb21wbGV0ZSByZWNlaXZlZCBwYWNrZXRzIGFyZSBwcm9jZXNzZWQ6CiAgIAogICAgICBfc2Vzc19yZWFkIGlzIHJlZmFjdG9yZWQgaW50byB0d28gZnVuY3Rpb25zOiBfc2Vzc19yZWFkIHJlbWFpbnMKICAgICAgcmVzcG9uc2libGUgZm9yIHJlYWRpbmcgZGF0YSBmcm9tIHRoZSB0cmFuc3BvcnQgbGF5ZXIsIGJ1dCB0aGVuCiAgICAgIGNhbGxzIChwZXJoYXBzIG1vcmUgdGhhbiBvbmNlKSBfc2Vzc19wcm9jZXNzX3BhY2tldCB0byBkaXNwYXRjaAogICAgICBlYWNoIHBhY2tldCByZWFkLgogICAKICAgIC0gVGhlIHByZXNlbmNlIG9mIGEgc2Vzc2lvbiB3aXRoIGEgYnVmZmVyZWQgcGFydGlhbCBwYWNrZXQgbm8gbG9uZ2VyCiAgICAgIGNhdXNlcyBzbm1wX3NlbGVjdF9pbmZvIHRvIHJldHVybiB3aXRoIGEgdGltZW91dCBvZiB6ZXJvLgogICAKICAgIC0gRnJlZSB0aGUgc3Vic2Vzc2lvbnMgb2YgYSBzZXNzaW9uIHdoZW4gZG9pbmcgYW4gc25tcF9zZXNzX2Nsb3NlOwogICAgICB0aGlzIGZpeGVzIGFuIEFnZW50WCBtZW1vcnkgbGVhayB3aGVuIHN1YmFnZW50cyBjb21lIGFuZCBnby4KICAgCiAgICAtIFBlcmZvcm0gY2FsbGJhY2tzIHdpdGggYW4gb3BlcmF0aW9uIGFyZ3VtZW50IG9mCiAgICAgIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB3aGVuIHlvdSBnZXQgYSB0cmFuc3BvcnQgZGlzY29ubmVjdAogICAgICBpbmRpY2F0aW9uLgogICAKMjAwMS0wMy0zMSAwNTo1NiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICBNYWRlIHRyYW5zcG9ydCBkb21haW4gY29uc3QKICAgCjIwMDEtMDMtMzEgMDU6NTUgIGpicG4KCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgRml4IG1lbW9yeSBsZWFrIHRoYXQgY2FuIG9jY3VyIHdoZW4gZGVyZWdpc3RlcmluZyBjYWxsYmFja3MKICAgCjIwMDEtMDMtMzAgMDg6MDUgIGhhcmRha2VyCgogICAqIFJFQURNRS5hZ2VudHg6CgogICBmaWxlIFJFQURNRS5hZ2VudHggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0yOSAyMTo0MyAgaGFyZGFrZXIKCiAgICogSVNTVUVTIChWNC0yLXBhdGNoZXMuMSksIElTU1VFUzoKCiAgIHJtIElTU1VFUwogICAKMjAwMS0wMy0yOSAwODoyMSAgc2xpZgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC86IGxpYnNubXAuZGVmIChWNC0yLXBhdGNoZXMuMyksIGxpYnNubXAuZGVmCjoKCiAgIEFkZCB2YWNtX2lzX2NvbmZpZ3VyZWQuCiAgIAoyMDAxLTAzLTI4IDA2OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBtYXN0ZXJfcmVxdWVzdC5jOgoKICAgIC0gdXNlIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0wMy0yOCAwNjowMCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgIC0gdXNlIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0wMy0yOCAwNTozNiAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcGQuYzoKCiAgICAtIHVzZSBTTk1QX0NBTExCQUNLX09QXzxuYW1lPiBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMDMtMjggMDU6MDYgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfY2xpZW50LmMsIHNubXBfYXBpLmM6CgogICAgLSB1c2UgU05NUF9DQUxMQkFDS19PUF88bmFtZT4gY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTAzLTI4IDA1OjA0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAtIHJlbmFtZSBjYWxsYmFjayBvcGVyYXRpb25zIHRvIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+CiAgICAtIGFkZCBuZXcgb3BlcmF0aW9ucyBTTk1QX0NBTExCQUNLX09QX0NPTk5FQ1QsIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVAogICAgLSBhZGQgbGVnYWN5IGRlZmluaXRpb25zIGZvciBSRUNFSVZFRF9NRVNTQUdFLCBUSU1FRF9PVVQsIFNFTkRfRkFJTEVECiAgIAoyMDAxLTAzLTI3IDE1OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBtdGVPYmplY3RzVGFibGUuYywKICAgbXRlVHJpZ2dlclRhYmxlLmM6CgogICBjaGFuZ2UgZnByaW50ZiAtPiBzbm1wX2xvZy4KICAgRG9uJ3QgYWxsb3cgbW9kaWZpY2F0aW9ucyBvZiByZWFkLW9ubHkgcm93cyBpbiBtdGVPYmplY3RzVGFibGUuCiAgIAoyMDAxLTAzLTI3IDEwOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGRzX2FnZW50LmgsIG1pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYwosIG1pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaCwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYzoKCiAgIFN1cHBvcnQgZm9yIG5ldyBmZWF0dXJlcyBpbiB0aGUgRElTTUFOLUVWRU5ULU1JQiBjb2RlOgogICAgIE5ldyBzbm1wZC5jb25mIHRva2VuczoKICAgICAgLSBtb25pdG9yIFstbyBvaWQuLi5dIFstdSB1c2VyXSBvaWQgWyg9fCE9fDw9fC4uLikgVkFMVUVdLgogICAgICAtIGRlZmF1bHRNb25pdG9ycyB5ZXMKICAgCjIwMDEtMDMtMjcgMTA6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBNb3ZlZCAqIGZyb20gYmVnaW5uaW5nIG9mIHJvdXRpbmUgdG8gdGhlIHNhbWUgbGluZSBhcyB0aGUgcmV0dXJuCiAgIHZhcmlhYmxlIGRlY2xhcmF0aW9uLiAgV2FzIGNhdXNpbmcgZXRhZ3MgZ3JpZWYgdGhlIG90aGVyIHdheS4KICAgCjIwMDEtMDMtMjcgMTA6NTIgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgcGF0Y2ggZnJvbSBLZW4gSG9ybnN0ZWluOiB1c2UgJXMgaW5zdGVhZCBvZiBAcyBmb3Igc2VhcmNoL3JlcGxhY2UgZGVsaW1pdGVycy4KICAgCjIwMDEtMDMtMjcgMTA6MjkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBVc2Ugc25tcF9sb2cgd2l0aCAlcyB0byBwcmV2ZW50ICUgZXhwYW5zaW9uIGluIG9jdGV0IHN0cmluZ3MgY29udGFpbmluZyBhICVzLgogICB0cmFwX2ZtdF9mcmVlIG5lZWRzICgpcy4KICAgCjIwMDEtMDMtMjcgMDg6MTMgIGR0czEyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYwo6CgogICBIYW5kbGUgbm9uLXJlc3BvbnNpdmUgQWdlbnRYIHN1Yi1hZ2VudHMgbW9yZSByb2J1c3RseS4KICAgICAgKEJhc2VkIG9uIHN1Z2dlc3Rpb25zIGZyb20gSGFycmllIEhhemV3aW5rZWwgJiBQYXVsIFJhc211c3NlbikKICAgCjIwMDEtMDMtMjcgMDg6MDMgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEF2b2lkIGRvdWJsZS1mcmVlaW5nIG9mIGNhY2hlZCBhZGRyZXNzIHN0cmluZ3MuCiAgICAgIChKb2huJ3MgaW1wcm92ZW1lbnQgdG8gbXkgc3VnZ2VzdGVkIGZpeCkuCiAgIAoyMDAxLTAzLTI3IDAyOjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIFJlc2V0IGNvdW50IG9mIGF1dGhvcml6ZWQgcGVlcnMgb24gY2xvc2Vkb3duLiAgKFRoYW5rcyB0byBWbGFkIFR1bmlrKQogICAKMjAwMS0wMy0yNiAxODowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaAogICAoVjQtMi1wYXRjaGVzLlsxLDIsMV0pLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgc25tcGxpYi92YWNtLmMsIHNubXBsaWIvdmFjbS5oOgoKICAgRml4ZWQgdmFjbSB0byBkcm9wIHYxL3YyYyBwYWNrZXRzIHByb3Blcmx5IHdoZW4gbm8gY29tMnNlYyBlbnRyaWVzIGFyZSBmb3VuZC4KICAgCjIwMDEtMDMtMjYgMTE6MDQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogaXBmLW1vZC5wbCAoVjQtMi1wYXRjaGVzLjEpLCBpcGYtbW9kLnBsOgoKICAgYWRkIHVzYWdlIGNvbW1lbnQgYXQgdG9wCiAgIAoyMDAxLTAzLTIyIDA3OjU1ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBVc2UgQVNOX09DVEVUX1NUUiByYXRoZXIgdGhhbiB0aGUgaGlzdG9yaWMgQVNOX0JJVF9TVFIgZm9yICdiJyBvYmplY3QgdmFsdWVzCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcy4KICAgCjIwMDEtMDMtMjIgMDc6NDYgIGR0czEyCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jIChWNC0yLXBhdGNoZXMuMyksIGFnZW50X3RyYXAuYzoKCiAgIEZpeCBmb3IgbWlub3IgbWVtb3J5IGxlYWsgd2l0aCB0cmFwLXJlbGF0ZWQgdmFyYmluZCB2YWx1ZXMuCiAgIFRoYW5rcyB0byBKb2huIFZpbGxhbG92b3MgKGFuZCB0aGUgSW50ZWwgU05NUCB0ZWFtKQogICAKMjAwMS0wMy0yMSAxNzozMCAgZHJpZWh1aXMKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEF2b2lkIGNyYXNoIGluIHNubXBfc2h1dGRvd24gb24gcGxhdGZvcm1zIHRoYXQgY2hlY2sgcG9pbnRlciB2YWxpZGl0eQogICBpbiBmcmVlKDMpLCBlLmcuIEZyZWVCU0QuCiAgIAoyMDAxLTAzLTIxIDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYwosIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKLCBzbm1wbGliL3JlYWRfY29uZmlnLmgsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgY29weV9ud29yZCBjcmVhdGVkIHRoYXQgY2hlY2tzIGJ1ZmZlciBsZW5ndGhzLgogICBNYWRlIGV2ZXJ5dGhpbmcgdXNlIGl0LgogICAKMjAwMS0wMy0yMSAwODozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICBLU00gcGF0Y2ggZnJvbSBLZW4gSG9ybnN0ZWluCiAgIAoyMDAxLTAzLTIwIDA5OjEzICBqYnBuCgogICAqIGFnZW50Ly5jdnNpZ25vcmU6CgogICBJZ25vcmUgUHVyaWZ5IGFuZCBORlMgc3R1ZmYKICAgCjIwMDEtMDMtMTYgMTA6MTQgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgYWRkZWQgTUlUX05FV19DUllQVE8gKGZvciBrc20pIGRlZmluaXRpb24gd2hpY2ggd2FzIG1pc3NpbmcKICAgCjIwMDEtMDMtMTYgMDI6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZml4IHJpZGljdWxvdXMgbWVtb3J5IGxlYWsgaW4gZGlzY29udGludWl0eSBwcm9jZXNzaW5nCiAgIAoyMDAxLTAzLTE1IDExOjA0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXA6CgogICB3aG9vcHMuICBNaXNzZWQgYSBtZXJnZSBjb25mbGljdCBsaW5lCiAgIAoyMDAxLTAzLTE1IDEwOjU5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIFJFQURNRS53aW4zMiwgYWdlbnQvbWliX21vZHVsZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBjbWQuMSwgbWFuL3NubXB0cmFwZC44CiwgbWlicy9JQU5BaWZUeXBlLU1JQi50eHQsIG1pYnMvTVRBLU1JQi50eHQsCiAgIG1pYnMvTWFrZWZpbGUubWliLCBtaWJzL1JFQURNRS5taWJzLAogICBtaWJzL1RVTk5FTC1NSUIudHh0LCBtaWJzL2lhbmFsaXN0LCBtaWJzL21pYmZldGNoCiwgbWlicy9yZmNsaXN0LCBtaWJzL3JmY21pYnMuZGlmZiwgbWlicy9zbWlzdHJpcAosIHBlcmwvU05NUC9TTk1QLnhzLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYwosIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmgsIHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvc3lzdGVtLmgsIHRlc3RpbmcvZXZhbF90b29scy5zaCwKICAgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwCiwgd2luMzIvY29uZmlnLmgsIHdpbjMyL21pYl9tb2R1bGVfY29uZmlnLmgsCiAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZiwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcDoKCiAgIG1lcmdlIGZyb20gcGF0Y2hlcyBicmFuY2g6IG1lcmdlMi0+My4KICAgCjIwMDEtMDMtMTUgMTA6MjIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oOgoKICAgZXh0cmEgbWVtYmVycyBmb3IgZGlzY29udGludWl0eSBwcm9jZXNzaW5nCiAgIAoyMDAxLTAzLTE1IDA3OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzIHRvIHJ1biBzaWduYWwgaGFuZGxlcnMgZWFybGllcgogICAKMjAwMS0wMy0xNCAxNDozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmggKFY0LTItcGF0Y2hlcy4yKSwgYWdlbnRfdHJhcC5oOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDogbWFrZSBzZW5kX2VudGVycHJpc2VfdHJhcF92YXJzIGEgcHVibGljIGZuLgogICAKMjAwMS0wMy0xNCAxMjoxNiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBVc2UgY29uZmlnLmgsIGRvbid0IHVzZSB1Y2Qtc25tcCBkaXJlY3RvcnkgdG8gYnVpbGQgaW4gdGhlIG1pYmdyb3VwIHRyZWUuCiAgIAoyMDAxLTAzLTE0IDExOjA1ICBzbGlmCgogICAqIHRlc3RpbmcvOiBNYWtlZmlsZS5pbiwgUlVOVEVTVFMsIFRFU1RDT05GLnNoCiwgZXZhbF9vbmVzY3JpcHQuc2gsIGV2YWxfdG9vbHMuc2g6CgogICBtZXJnZSB0aGUgdGVzdCBzY3JpcHQgY2hhbmdlcyBtYWRlIGluIHRoZSBWNC0yLXBhdGNoZXMgYnJhbmNoLgogICAKMjAwMS0wMy0xNCAxMDo1NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBDaGFuZ2UgdG8gZGlzY29udGludWl0eSBwcm9jZXNzaW5nIHRvIHN0b3AgaXQgcmV0dXJuaW5nIFRSVUUgYWxsIHRoZQogICB0aW1lCiAgIAoyMDAxLTAzLTE0IDEwOjUyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgICAtIHJvdWdoIHN0YWIgYXQgZGlzY29udGludWl0eSBwcm9jZXNzaW5nCiAgICAtIGJhaWwgb3V0IG9mIGdldE5leHQtdHlwZSBsb29wcyBvbiBhIGJhZFR5cGUgY29uZGl0aW9uCiAgIAoyMDAxLTAzLTE0IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBSRUFETUUua3JiNToKCiAgIGtlcmJlcm9zIFJFQURNRSBmaWxlIGZyb20gS2VuIEhvcm5zdGVpbgogICAKMjAwMS0wMy0xNCAxMDoyOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYzoKCiAgIEdldCByZXR1cm5lZCAqdmFyX2xlbiByaWdodCBmb3IgbXRlVHJpZ2dlckRlbHRhRGlzY29udGludWl0eUlECiAgIAoyMDAxLTAzLTE0IDEwOjE5ICBzbGlmCgogICAqIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYwosIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgcGF0Y2ggc3VibWl0dGVkIGJ5IEhhcnJpZSBIYXpld2lua2VsIHRvIHF1aWV0IHNvbWUgd2FybmluZ3MuCiAgIAoyMDAxLTAzLTE0IDEwOjE5ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBrc20uYywKICAgc25tcGxpYi9zbm1wa3NtLmg6CgogICBLU00gcGF0Y2ggZnJvbSBLZW4gSG9ybnN0ZWluLgogICAKMjAwMS0wMy0xNCAwNTo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N3cnVuLmMgKFY0LTItcGF0Y2hlcy41KSwgaHJfc3dydW4uYwo6CgogICBGaXggTGludXggZmlsZSBkZXNjcmlwdG9yIGxlYWsgKHJlcG9ydGVkIGJ5IE9saXZlciBG5G5nZXIpCiAgIAoyMDAxLTAzLTE0IDA1OjIyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi8uY3ZzaWdub3JlOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMS0wMy0xNCAwMjoyMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBtdGVUcmlnZ2VyVGFibGUuYywKICAgbXRlVHJpZ2dlclRhYmxlLmg6CgogICAgLSBzYXZlIG9yaWdpbmFsIFBEVSdzIHRyYW5zcG9ydCBkb21haW4gLS0gbmVjZXNzYXJ5IGZvcgogICAgICBjb21tdW5pdHkgc3RyaW5nIHByb2Nlc3NpbmcKICAgCiAgICAgIENBVVRJT046IGluY29tcGF0aWJsZSBjaGFuZ2UgaW4gZm9ybWF0IG9mIG10ZVRyaWdnZXJUYWJsZQogICAgICAgICAgICAgICBjb25maWd1cmF0aW9uIGVudHJ5CiAgIAogICAgLSBmaXggbWVtb3J5IGxlYWsgaW4gbXRlX3J1bl90cmlnZ2VyIGJ5IHJlbGVhc2luZyBQRFVzCiAgIAogICAgLSBzZW5kICJiYWQgdHlwZSIgbm90aWZpY2F0aW9ucyBpbiBzb21lIGNhc2VzCiAgIAogICAgLSBvdGhlciBtaW5vciBtZW1vcnkgbGVha3MKICAgCiAgICAtICJkZWx0YSIgc2FtcGxlVHlwZSBoYW5kbGVkIGZvciBib29sZWFuIHRyaWdnZXJzCiAgIAogICAgLSBtb3JlICJYWFg6IiBjb21tZW50cyEKICAgCjIwMDEtMDMtMTMgMTM6NTIgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggc3VwcG9ydCBmb3IgSW50ZWdlcjMyCiAgIAoyMDAxLTAzLTExIDA4OjQzICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX3RyYW5zcG9ydC5jLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgQWRkIGEgZnVuY3Rpb24gdG8gdGVzdCB3aGV0aGVyIGFuIE9JRCBjb3JyZXNwb25kcyB0byBhIHN1cHBvcnRlZCB0cmFuc3BvcnQKICAgZG9tYWluLgogICAKMjAwMS0wMy0xMSAwNzo1NSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uaDoKCiAgIEFkZCAjaW5jbHVkZXMgdG8gbWFrZSBzdHJ1Y3Qgc29ja2FkZHJfaW4gY29tcGxldGUKICAgCjIwMDEtMDMtMTEgMDc6NTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5oOgoKICAgUmVtb3ZlIHNwdXJpb3VzICNpbmNsdWRlCiAgIAoyMDAxLTAzLTA5IDA3OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIEZpeCByd3VzZXIgLXMgbW9kZWwgdG8gYWN0dWFsbHkgd29yay4KICAgCjIwMDEtMDMtMDkgMDU6NTIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICBTZXQgYSBQRFUncyBvcGFxdWUgZGF0YSBvbiBhIHRjcF9yZWN2OyB0aGlzIGlzbid0IG5lY2Vzc2FyeSB0byBzZW5kCiAgIHJlcGxpZXMgKGJlY2F1c2UgdGhlIHVuZGVybHlpbmcgc29ja2V0IGlzIHN0cm9uZ2x5IGNvbm5lY3RlZCkgYnV0IGlmCiAgIHlvdSBkb24ndCBkbyB0aGlzIHRoZW4geW91IGNhbid0IGRvICJjb20yc2VjIiB0eXBlIHByb2Nlc3NpbmcgZm9yIFBEVXMKICAgcmVjZWl2ZWQgb24gVENQIHNlc3Npb25zLi4uIGludGVyZXN0aW5nLgogICAKMjAwMS0wMy0wOSAwMzozMyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEZpeCBiYWQgYXNzdW1wdGlvbiB0aGF0IGNvbW11bml0eSBzdHJpbmcgaXMgemVyby10ZXJtaW5hdGVkCiAgIAoyMDAxLTAzLTA4IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBjb3JyZWN0IHZlcnNpb24gc3RhdGVtZW50cyB0byBpbmRpY2F0ZSBuZXQtc25tcC4KICAgLSByZW1vdmUgbXkgbmFtZSBhcyBhdXRob3IgKEknbSBjZXJ0YWlubHkgbm90IHRoZSBvbmx5IG9uZSkKICAgLSBhZGQgd2ViIGFkZHJlc3MuCiAgIAoyMDAxLTAzLTA4IDE1OjMxICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIEFkZGVkIEtlbiBIb3Juc3RlaW4ncyBuYW1lIHRvIGNvbnRyaWJ1dGVycyBsaXN0LgogICAtIFJlbW92ZWQgbWluZSBmcm9tIGJlaW5nIGxpc3RlZCBzZXBhcmF0ZWx5LgogICAKMjAwMS0wMy0wOCAxNDo1MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3NubXBrc20uYywKICAgc25tcGxpYi9zbm1wa3NtLmg6CgogICBBZGRlZCBhIGtlcmJlcm9zIGJhc2VkIHNlY3VyaXR5IG1vZHVsZSAoa3NtKS4KICAgICBIb3dldmVyLCBOZWVkcyBsaWJyYXJpZXMgKC1sa3JiNSAtbGNvbV9lcnIpIG5vdCBiZWluZyBjaGVja2VkIGZvciBjdXJyZW50bHkuCiAgIAoyMDAxLTAzLTA4IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBXaG9vcHMuICBTaG91bGRudCBoYXZlIGEgbmVnYXRpb24gc2lnbiBvbiB0aGUgbW9zdCByZWNlbnQgY2hlY2tpbi4KICAgCjIwMDEtMDMtMDggMTQ6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIElmIE5PX1BST0JFIGlzIHNldCwgZG9uJ3QgZG8gYW55IHBvc3QgcHJvYmluZyBhY3Rpdml0aWVzIGVpdGhlciBsaWtlCiAgIHRpbWUgdXBkYXRpbmcgYW5kIHVzZXIgY3JlYXRpb24uCiAgIAoyMDAxLTAzLTA4IDA4OjE0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIFJlbW92ZSBzdHJkdXAoKXMgb24gc29tZSBzZXNzaW9uIHBhcmFtZXRlcnMgd2hpY2ggY2F1c2UgbWVtb3J5IGxlYWtzCiAgIChzaW5jZSBzbm1wX29wZW4gZGVlcCBjb3BpZXMgdGhlIGlucHV0IHNlc3Npb24gYW55d2F5KQogICAKMjAwMS0wMy0wOCAwODoxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgTWFrZSBzdXJlIHNlc3MgZmllbGQgb2YgbmV3IGVudHJpZXMgaXMgaW5pdGlhbGlzZWQgdG8gTlVMTC4KICAgCjIwMDEtMDMtMDggMDc6NDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgTWFrZSBjb25maWcgdG9rZW4gcGFyc2VyIHVwZGF0ZSB0aW1lc3RhbXAgb24gZW50cnkgaXQgY3JlYXRlczsKICAgbW92ZSB1cGRhdGVfdGltZXN0YW1wIGZ1bmN0aW9uLgogICAKMjAwMS0wMy0wNyAwNzo0NSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogUkVBRE1FLCBTTk1QLnBtLCBTTk1QLnhzOgoKICAgUGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2UgdG8gcmVtb3ZlIHVubmVlZGVkIHRpbWVzdGFtcCBzdXBwb3J0CiAgIAoyMDAxLTAzLTA2IDIwOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9jbGllbnQuYywgc25tcF9zZWNtb2QuYwosIHNubXBfc2VjbW9kLmgsIHNubXB1c20uYzoKCiAgIHNlY21vZCBzdHJ1Y3Qgc3ltYm9sIG5hbWUgY2hhbmdlcyB0byBzb21ldGhpbmcgbW9yZSBpbnRlbGxpZ2libGUuCiAgIAoyMDAxLTAzLTA2IDE2OjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9jbGllbnQuYzoKCiAgIC0gc2V0IHRoZSBkZWZhdWx0IHBkdSBzZWN1cml0eSBtb2RlbCB0byBTTk1QX0RFRkFVTFRfU0VDTU9ERUwgKG5vdCAwKS4KICAgLSBkb24ndCBmb3JjZSB0aGUgc2VjdXJpdHkgbW9kZWwgb2YgdGhlIHNlc3Npb24gb24gdGhlIHBkdSBpZiBhbHJlYWR5IHNldC4KICAgCjIwMDEtMDMtMDYgMTY6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgaG9wZWZ1bGx5IGZpeCB0byBhbGxvdyBvdGhlciAocmVnaXN0ZXJlZCkgc2VjdXJpdHkgbW9kZWxzIHRvIGJlIHVzZWQuCiAgIAoyMDAxLTAzLTA2IDA5OjIzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGRlZCBKb2huIE5heWxvbiB0byB0aGUgUkVBRE1FIGZpbGUuCiAgIAoyMDAxLTAzLTA2IDA5OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9zZWNtb2QuaDoKCiAgIENyZWF0ZSBhIG5ldyBzZWNtb2QgY2FsbGJhY2sgd2hlbiBhIHRpbWVvdXQgb24gYSBwZHUgb2NjdXJzLgogICAKMjAwMS0wMy0wNiAwOToxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBwcm9wZXJseSBpbnN0YWxsIHNlY21vZCBoZWFkZXIgbGlzdC4KICAgCjIwMDEtMDMtMDYgMDg6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX3NlY21vZC5oOgoKICAgLSBidWcgZml4ZXMgZm9yIHNlY21vZCByZWxhdGVkIHN0dWZmIChpdCBjb21waWxlcyBub3cgKG9wcHMpKS4KICAgCjIwMDEtMDMtMDYgMDg6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX3NlY21vZC5oOgoKICAgLSB0d28gbmV3IHNlY21vZCBjYWxsYmFja3MgZm9yIGZyZWVpbmcgYSBwZHUgYW5kIGEgc2Vzc2lvbi4KICAgLSBtb3ZlIHRyYW5zcG9ydCBjbG9zaW5nIGluIHNubXBfc2Vzc19jbG9zZSgpIHRvIGFmdGVyIHBlbmRpbmcKICAgICByZXF1ZXN0cyBhcmUgZnJlZWQvY2xvc2VkIGluIGNhc2Ugc29tZXRoaW5nIG5lZWRzIHRvIG1ha2UgdXNlIG9mIHRoZQogICAgIHRyYW5zcG9ydCBiZWZvcmUgaXQgY2xvc2VzLgogICAKMjAwMS0wMy0wNiAwNzo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfc2VjbW9kLmg6CgogICBQYXNzIGluIHBkdSB0byBzZWNtb2QgZW5jb2RlL2RlY29kZSByb3V0aW5lcy4KICAgCjIwMDEtMDMtMDYgMDM6MzUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgTW9kaWZpZWQgZnVuY3Rpb24gSW50ZXJmYWNlX0luZGV4X0J5X05hbWUgKFNvbGFyaXMgc3BlY2lmaWMpIHRvIGNvcGUgbW9yZQogICBncmFjZWZ1bGx5IHdpdGggbGFyZ2UgbnVtYmVycyBvZiBpbnRlcmZhY2VzLiAgQWxzbyBzdG9wcyBQdXJpZnkgb24gU29sYXJpcwogICBjb21wbGFpbmluZyBhYm91dCB1bmluaXRpYWxpc2VkIG1lbW9yeSByZWFkcy4KICAgCjIwMDEtMDMtMDUgMTY6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJldmVyc2UgY2FsbGJhY2sgb3JkZXJpbmcgb2Ygbm9ybWFsIGNhbGxiYWNrL3NlY21vZCBjYWxsYmFjawogICBwcm9jZXNzaW5nIGluIHNlc3NfY29weSgpLgogICAKMjAwMS0wMy0wNSAxNjoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3NlY21vZC5jOgoKICAgcmVtb3ZlIHVudXNlZCBmcmVlIGZ1bmN0aW9uIGNhbGxzIGZvciBzZWN1cml0eSBtb2R1bGUgdW5yZWdpc3RyYXRpb25zLgogICAKMjAwMS0wMy0wNSAxNjoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfc2VjbW9kLmg6CgogICBtaW5vciBBUEkgY2hhbmdlcyB0byB0aGUgcGx1Z2dhYmxlIHNlY3VyaXR5IG1vZGVsIGhhbmRsaW5nLgogICAKMjAwMS0wMy0wNSAxNjoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcHJvcGVybHkgcmVzcGVjdCB0aGUgRE9OVF9QUk9CRV9GTEFHLgogICAKMjAwMS0wMy0wNSAxNTozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfc2VjbW9kLmgKOgoKICAgYWRkIGEgc2Vzc2lvbiBwb2ludGVyIHRvIHRoZSB2MyBidWlsZCByb3V0aW5lcy4KICAgCjIwMDEtMDMtMDUgMTU6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgQWRkIGEga3JiNSBzcGVjaWZpYyBlcnJvciBjb2RlLgogICAKMjAwMS0wMy0wNSAxNDo1OCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtYWtlIGNvbmZpZ3VyZSBwcm9wZXJseSBoYW5kbGUgcGx1Z2dhYmxlIHNlY3VyaXR5IG1vZHVsZXMKICAgCjIwMDEtMDMtMDUgMTQ6NDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgbWFrZSBjb25maWd1cmUgbWtkaXIgc25tcGxpYiBiZWZvcmUgY3JlYXRpbmcgYSBmaWxlIGluIGl0CiAgIAoyMDAxLTAzLTA1IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1ha2UgY29uZmlndXJlIHJlc3BlY3Qgbm9uLWxvY2FsIHNyY2RpcnMgZm9yIHRyYW5zcG9ydC9zZWNtb2RzCiAgIAoyMDAxLTAzLTA1IDEwOjQwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X2luZGV4LmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYl9tb2R1bGVzLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMKLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhcHBzL3NubXB0cmFwZC5jCiwgc25tcGxpYi8uY3ZzaWdub3JlLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL2NhbGxiYWNrLmgsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB1c20uaCwKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIHN1cHBvcnQgZm9yIHBsdWdnYWJsZSBzZWN1cml0eSBtb2RlbHMuICBDdXJyZW50bHkgb25seSB0aGUgVVNNIGlzCiAgIGF2YWlsYWJsZSwgYnV0IGEgbmV3IGtlcmJlcm9zIGJhc2VkIHNlY3VyaXR5IG1vZGVsIHdpbGwgYmUgYXZhaWxhYmxlCiAgIHNob3J0bHkuICBUaGVzZSBjaGFuZ2VzIHNpbXBseSBtYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSBtb3JlIHRoYW4gb25lCiAgIHNlY3VyaXR5IHNlcnZpY2UuCiAgIAoyMDAxLTAzLTA1IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9zZWNtb2QuYywgc25tcF9zZWNtb2QuaDoKCiAgIEFkZGVkIEpvaG4gTmF5bG9uIHRvIHRoZSBhdXRob3JzIGxpc3QuCiAgIAoyMDAxLTAzLTA1IDEwOjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZW51bS5oOgoKICAgQ29tbWVudCByZS1hcnJhbmdpbmcgdG8gYWN0dWFsbHkgYmUgbmVhciB0aGUgZnVuY3Rpb25zIHRoZXkncmUgZGVzY3JpYmluZy4KICAgCjIwMDEtMDMtMDUgMDY6MTAgIGpicG4KCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIE1vZGlmaWVkIGdldF9teWFkZHIoKSBmdW5jdGlvbiB0byBjb3BlIG1vcmUgZ3JhY2VmdWxseSB3aXRoIGxhcmdlIG51bWJlcnMKICAgb2YgaW50ZXJmYWNlcywgYW5kIHdpdGggdGhlIHBvc3NpYmlsaXR5IG9mIG5vbi1JUHY0IGFkZHJlc3NlcyBvbiBzb21lCiAgIGludGVyZmFjZXMuICBBbHNvIHN0b3BzIFB1cmlmeSBvbiBTb2xhcmlzIGNvbXBsYWluaW5nIGFib3V0IHVuaW5pdGlhbGlzZWQKICAgbWVtb3J5IHJlYWRzLiAgVXNlICJvZmZpY2lhbCIgZGVmaW5pdGlvbiBvZiBJTkFERFJfTE9PUEJBQ0suCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy9SRUFETUUubWliczoKCiAgIGZpbGUgUkVBRE1FLm1pYnMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvaWFuYWxpc3Q6CgogICBmaWxlIGlhbmFsaXN0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBmaWxlIHJmY2xpc3Qgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvcmZjbWlicy5kaWZmOgoKICAgZmlsZSByZmNtaWJzLmRpZmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0wMSAxOToyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgc25tcF9hcGkuYzoKCiAgIEZpeCBzbm1wX29pZF9jb21wYXJlIGFuZCByZXZlcnNlIGVuY29kaW5ncyB0byBkZWFsIHdpdGggbnVtYmVycyA+IDJeMzEuCiAgIAoyMDAxLTAyLTI4IDIzOjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwKICAgc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIGltcGxlbWVudGVkIHNubXBfY29uZmlnKGNoYXIgKmxpbmUpIHRvIHBhcnNlIGEgLmNvbmYgY29uZmlndXJhdGlvbgogICAgIGxpbmUgYXQgYW55IHRpbWUgaW4gdGhlIGNvZGUgKGhhbmRsZXJzIG11c3QgYmUgcmVnaXN0ZXJlZCBiZWZvcmUgaGFuZCkuCiAgIC0gaW1wbGVtZW50ZWQgc25tcF9jb25maWdfcmVtZW1iZXIoY2hhciAqbGluZSkgdG8gbWVtb3JpemUgaXQgZm9yCiAgICAgbGF0ZXIgdXNlLgogICAtIHJlYWRfY29uZmlncywgZXQgYWwsIHdpbGwgYXV0b21hdGljYWxseSBjYWxsIHRoZW0gYWZ0ZXIgcmVhZGluZwogICAgIGV2ZXJ5dGhpbmcgZWxzZS4KICAgLSBBZGRlZCBhIC1ZIGZsYWcgdG8gc25tcF9wYXJzZV9hcmdzIHRvIHN0b3JlIHJlYWQgY29uZmlnIGRpcmVjdGl2ZXMKICAgICBmb3IgbGF0ZXIgdXNlLCB0aHVzIGFsbG93aW5nIHlvdSB0byBzcGVjaWZ5IC5jb25mIGRpcmVjdGl2ZXMgb24gdGhlCiAgICAgY29tbWFuZCBsaW5lLgogICAKMjAwMS0wMi0yNyAwNzoyOCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBBdm9pZCBpbmZpbml0ZSBsb29wIHdpdGggQWdlbnRYIHN1YmFnZW50cyBhbmQgVkFDTSBjaGVja2luZyBpbnRlcmFjdGlvbi4KICAgKEZpeCBwcm92aWRlZCBieSBGcmFuayBTdHJhdXNzKQogICAKMjAwMS0wMi0yMSAxNToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHVjZC1zbm1wLWluY2x1ZGVzLmggKFY0LTItcGF0Y2hlcy4xKSwKICAgdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzgwNSBmcm9tIGJjb2xsYXI6IGFkZCBzeXMvdGltZS5oIHRvIHVjZC1zbm1wLWluY2x1ZGVzLmgKICAgCjIwMDEtMDItMjEgMTU6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBpbnQ2NC5jIChWNC0yLXBhdGNoZXMuMiksIGludDY0LmM6CgogICBmaXggYnVnICMxMzM0MTYgKHU2NFN1YnRyYWN0aW9uIG1hdGgpIGFzIHN1Z2dlc3RlZCBieSB0aGUgc3VibWl0dG9yCiAgIAoyMDAxLTAyLTE2IDE1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHZhcl9zdHJ1Y3QuaCAoVjQtMi1wYXRjaGVzLjEpLCB2YXJfc3RydWN0Lmg6CgogICAtIGluY3JlYXNlIFVDRF9SRUdJU1RSWV9PSURfTUFYX0xFTiB0byAxMjggYXQgRnJhbmsncyByZXF1ZXN0CiAgIAoyMDAxLTAyLTE2IDA0OjE2ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIENoYW5nZSBiZWhhdmlvdXIgb24gY3lnd2luIHRvIGV4Y2x1ZGUgVW5peCBkb21haW4gdHJhbnNwb3J0cyBieSBkZWZhdWx0CiAgIG9uIGN5Z3dpbiwgYW5kIGFsc28gZml4IGEgbWlub3IgYnVnLCB0aGFua3MgdG8gc3VnZ2VzdGlvbnMgYnkgUGV0ZXIgRm9say4KICAgCjIwMDEtMDItMTQgMTg6MTQgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYyAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wdHJhcGQuYzoKCiAgIHJlbW92ZWQgdW51c2VkIHNubXBfYWxhcm0uaCBpbmNsdWRlCiAgIAoyMDAxLTAyLTEyIDE0OjExICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgYWRkZWQgS2FybCdzIHBhdGNoIGZvciB1c2VudW1lcmljCiAgIAoyMDAxLTAyLTEyIDEzOjU0ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IE1BTklGRVNULCBTTk1QLnBtLCBTTk1QLnhzLAogICBleGFtcGxlcy90cmFwLWV4YW1wbGUucGw6CgogICBhZGRlZCB0cmFwIHJlY2VwdGlvbiBBUEkgZnJvbSBQaGlsaXAgUHJpbmRldmlsbGUgPHBoaWxpcHBAY2lzY28uY29tPgogICAKMjAwMS0wMi0xMSAwODoyMyAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgVXNlIHNubXBfYWRkIG5vdCBzbm1wX3Nlc3NfYWRkICh0aGUgbGF0dGVyIGRvZXNuJ3QgYWRkIGEgc2Vzc2lvbiB0bwogICB0aGUgU2Vzc2lvbiBsaXN0LCBhbmQgaXQgdGhlcmVmb3JlIHdvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgc2VsZWN0KCkKICAgZmRzZXQsIGhlbmNlIHNubXB0cmFwZCB3aWxsIG5ldmVyIHJlY2VpdmUgdmVyeSBtdWNoKS4KICAgCjIwMDEtMDItMTEgMDg6MjAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBGaXggaW1wcm9wZXJseS10ZXJtaW5hdGVkIGxpc3QgaW4gY29tMnNlYyBoYW5kbGluZy4KICAgCjIwMDEtMDItMTEgMDc6NDUgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIENsZWFuIHVwIG1lcmdlICg+Pj4+Pj4sID09PT09PSBldGMuIGxlZnQgYmVoaW5kKS4KICAgCjIwMDEtMDItMTAgMDk6MjYgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgRml4IHR5cG8uCiAgIAoyMDAxLTAyLTEwIDA5OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBtYXN0ZXJfYWRtaW4uYywKICAgc3ViYWdlbnQuYzoKCiAgIE1lbW9yeSBsZWFrIHBhdGNoZXMgKHNvdXJjZWZvcmdlIHBhdGNoICMxMDM2MDUpLgogICBSZW1vdmUgYSBmZXcgc3RyZHVwKClzLCBhbmQgY2FsbCBmcmVlX2FnZW50X3NubXBfc2Vzc2lvbigpIHJhdGhlciB0aGFuCiAgIGZyZWUoKSBpbiBzdWJhZ2VudC5jOmhhbmRsZV9hZ2VudHhfcGFja2V0KCkgZm9yIEFHRU5UWF9NU0dfUkVTUE9OU0UKICAgYW5kIGRlZmF1bHQgY2FzZXMsIHRvIGVuc3VyZSBmcmVlKClpbmcgb2YgY2xvbmVkIFBEVSBhbGxvY2F0ZWQgYnkKICAgaW5pdF9hZ2VudF9zbm1wX3Nlc3Npb24uCiAgIAoyMDAxLTAyLTEwIDA3OjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYywgc25tcEFBTDVQVkNEb21haW4uaCwKICAgc25tcElQWERvbWFpbi5jLCBzbm1wSVBYRG9tYWluLmgsIHNubXBUQ1BEb21haW4uYwosIHNubXBUQ1BEb21haW4uaCwgc25tcFVEUERvbWFpbi5jLAogICBzbm1wVURQRG9tYWluLmgsIHNubXBVbml4RG9tYWluLmMsIHNubXBVbml4RG9tYWluLmgKLCBzbm1wX3RyYW5zcG9ydC5jLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgV2hvb3BzLiAgRm9yZ290IHRoZSBuZXcgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwbHVnZ2FibGUgdHJhbnNwb3J0IHN0dWZmLgogICAKMjAwMS0wMi0wOSAxMToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQtbWliLmgsIG10ZU9iamVjdHNUYWJsZS5jCiwgbXRlT2JqZWN0c1RhYmxlLmgsIG10ZVRyaWdnZXJCb29sZWFuVGFibGUuYywKICAgbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsIG10ZVRyaWdnZXJUYWJsZS5jLAogICBtdGVUcmlnZ2VyVGFibGUuaCwgbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmM6CgogICBJbXBsZW1lbnRlZCBhbmQgbWFkZSB1c2Ugb2YgbXRlT2JqZWN0c1RhYmxlIHRvIHNlbmQgYWRkaXRpb25hbCBvYmplY3RzIG91dCB3aXRoIHRyYXBzIGdlbmVyYXRlZC4gIEFsc28sIGRvbid0IHJldHVybiBkYXRhIGZvciBtaXNjIHRhYmxlcyB3aGVuIHRoYXQgdHJpZ2dlciBpc24ndCBkZWZpbmVkIHRvIHVzZSB0aGF0IHRlc3QgdHlwZS4KICAgCjIwMDEtMDItMDkgMTE6MTYgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjIpLCBzbm1wZC5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjEzOiBmaXggbWVtb3J5IGxlYWsgaW4gc25tcGQgcG9ydCBzcGVjaWZpY2F0aW9uIC0+IGRlZmF1bHRfc3RvcmUuCiAgIAoyMDAxLTAyLTA5IDExOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYl9tb2R1bGVzLmMgKFY0LTItcGF0Y2hlcy4yKSwgbWliX21vZHVsZXMuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMjogZml4IG1lbW9yeSBsZWFrIGluIG1pYl9tb2R1bGUgaW5pdCBjb2RlCiAgIAoyMDAxLTAyLTA5IDExOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgKFY0LTItcGF0Y2hlcy4xKSwgYWdlbnRfcmVnaXN0cnkuYwo6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTE6IGZpeCBtZW1vcnkgbGVhayBmb3IgZHVwbGljYXRlIG9pZCByZWdpc3RyYXRpb25zLgogICAKMjAwMS0wMi0wOSAxMTowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfZnJlZWJzZDIuYywgcHJveHkuYwogICAoVjQtMi1wYXRjaGVzLlsxLDRdKSwgbWVtb3J5X2ZyZWVic2QyLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM3MDI6IGZpeCBzd2FwIHJlcG9ydGluZyBvbiBmcmVlYnNkIDQuMgogICAKMjAwMS0wMi0wOSAxMDoxMiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYwosIGFnZW50L3NubXBfYWdlbnQuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hbGFybS5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3ZhY20uaDoKCiAgIEFwcGxpZWQgcGF0Y2ggMTAzNTEwOiBkb21haW4gdHJhbnNwb3J0IGluZGVwZW5kZW5jZS4gIE5vdGU6IFRyYXBzL1ZBQ00gYnJva2VuLgogICAKMjAwMS0wMi0wOSAwODo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMDFzbm1wdjFnZXQsIFQwMDJzbm1wdjFnZXRuZXh0LAogICBUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNHNubXB2MmNnZXQsIFQwMTVzbm1wdjJjZ2V0bmV4dAosIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwgVDAyMHNubXB2M2dldCwKICAgVDAyMXNubXB2M2dldG5leHQsIFQwMjJzbm1wdjNnZXRNRDUsCiAgIFQwMjNzbm1wdjNnZXRNRDVERVMsIFQwMjRzbm1wdjNnZXRTSEExLAogICBUMDI1c25tcHYzZ2V0U0hBREVTLCBUMDI4c25tcHYzZ2V0ZmFpbCwKICAgVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwgVDA1M2FnZW50djF0cmFwLAogICBUMDU0YWdlbnR2MmN0cmFwLCBUMDU1YWdlbnR2MW1pbnRyYXAsCiAgIFQwNTZhZ2VudHYyY21pbnRyYXAsIFQwNThhZ2VudGF1dGh0cmFwLCBUMTAwYWdlbnRodXAKLCBUMTEwYWdlbnR4Z2V0LCBUMTExYWdlbnR4c2V0LCBUMTEyYWdlbnR4c2V0ZmFpbAosIFQxMTNhZ2VudHh0cmFwLCBUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldAosIFQxMjJwcm94eXNldGZhaWw6CgogICB1cGRhdGVkIG1vc3QgdGVzdHMgdG8gdXNlIG51bWVyaWMgT0lEcyBzbyBhcyB0byBub3QgcmVseSBvbiBtaWIgcGFyc2luZwogICAKMjAwMS0wMi0wOSAwNzoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oOgoKICAgcmVtb3ZlIHVudXNlZCBwcm90b3R5cGU6IGdldF9hZ2VudHhfdHJhbnNJRAogICAKMjAwMS0wMi0wOCAxNDoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL3RyYXB0b2VtYWlsLAogICBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICB0cmFwdG9lbWFpbCBwZXJsIHNjcmlwdCBjcmVhdGVkIGFzIGFuIGV4YW1wbGUgdHJhcGhhbmRsZSBzY3JpcHQKICAgCjIwMDEtMDItMDggMTQ6MDEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FnZW50X3RyYXAuYywKICAgYWdlbnQvbWliX21vZHVsZXMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5oLCBhcHBzL3NubXBkZWx0YS5jCiwgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBsb2NhbC9taWIyYywgbWFuL3NubXBjbWQuMSwgbWlicy9STU9OLU1JQi50eHQsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwgcGVybC9TTk1QL1NOTVAucG0sCiAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgTWVyZ2UgZnJvbSBWNC0yLXBhdGNoZXM6IG1lcmdlIDEtPjIKICAgCjIwMDEtMDEtMzAgMTc6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlzay5jIChWNC0yLXBhdGNoZXMuMSksIGRpc2suYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzQxNDogZml4IGRpc2sgaW5mbyBmb3IgYmxvY2sgc2l6ZXMgb3RoZXIgdGhhbiAxMDI0LgogICAKMjAwMS0wMS0zMCAxMzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgdXNlIHNubXBfZW51bSdzIHByb3Blcmx5IChzdHJkdXAoKSB0aGUgc3RyaW5ncyBmaXJzdCkKICAgCjIwMDEtMDEtMzAgMTM6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2VudW0uYywgc25tcF9lbnVtLmg6CgogICBwcm9wZXIgY29uc3RuZXNzIGZvciBzb21lIG9mIHRoZSBmdW5jdGlvbiBhcmd1bWVudHMuCiAgIAoyMDAxLTAxLTMwIDEzOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBmaXggYnVnIEkganVzdCBpbnRyb2R1Y2VkIChyZXR1cm5pbmcgcHJvcGVyIHNhdmV0byBwb2ludGVyKQogICAKMjAwMS0wMS0zMCAxMzoxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtIHNubXBzZXRzIGFyZSBzdXBwb3J0ZWQKICAgICAtIEEgbmV3ICJzZXQiIGJ1dHRvbiBoYXMgYmVlbiBhZGRlZCB0byBwZXJmb3JtIHNldHMgb24gYW4gb2lkLgogICAgIC0gQWxsIHdyaXRhYmxlIG9iamVjdHMgaW4gYSB0YWJsZSBhcmUgbm93IGJ1dHRvbnMgdGhhdCBicmluZyB1cCB0aGUKICAgICAgIHNldCB3aW5kb3cgd2l0aCB0aGUgY3VycmVudCB2YWx1ZSBpbnN0YXRlZC4KICAgICAtIEFsbCB3cml0YWJsZSBvYmplY3RzIGluIHRoZSBvdXRwdXQgb2Ygc25tcHtnZXQsd2FsayxnZXRuZXh0fQogICAgICAgYnV0dG9ucyBhcmUgZGlzcGxheWVkIGFzIGJsdWUgYW5kIGFyZSBjbGlja2FibGUgdG8gY2hhbmdlIHRoZWlyCiAgICAgICB2YWx1ZXMuCiAgIC0gc2V0dGluZ3MgY29uZmlndXJlZCB2aWEgdGhlIG9wdGlvbnMgbWVudSBjYW4gbm93IGJlIHNhdmVkLgogICAtIHVzZSBHZXRvcHQ6OlN0ZCBub3cuCiAgIC0gc3VwcG9ydHMgbW9zdCBvZiB0aGUgaW1wb3J0YW50IHNubXBjbWQoMSkgZmxhZ3MgZm9yIHNlc3Npb24gc2V0dXAuCiAgIAoyMDAxLTAxLTMwIDEzOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBldmVudC1taWIuaCwKICAgbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgsCiAgIG10ZVRyaWdnZXJEZWx0YVRhYmxlLmMsIG10ZVRyaWdnZXJEZWx0YVRhYmxlLmgsCiAgIG10ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCBtdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaCwKICAgbXRlVHJpZ2dlclRhYmxlLmMsIG10ZVRyaWdnZXJUYWJsZS5oLAogICBtdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmg6CgogICBJbml0aWFsIChub3QtY29tcGxldGUpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBESVNNQU4tRVZFTlQtTUlCOgogICAgIC0gSW1wbGVtZW50cyBhbGwgMyB0ZXN0cyAoYm9vbGVhbiwgdGhyZXNob2xkIGFuZCBleGlzdGVuY2UpLgogICAgIC0gbm90IHJpZ29yb3VzbHkgdGVzdGVkLgogICAgIC0gQ3VycmVudGx5IG9ubHkgc3VwcG9ydHMgcXVlcnlpbmcgdGhlIGxvY2FsIGFnZW50CiAgICAgICAobXRlVHJpZ2dlclRhcmdldFRhZyBtdXN0IGJlICcnKS4KICAgICAtIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHNlbmRpbmcgdHJhcHMgYW5kIHRoZSBtdGVPYmplY3RzVGFibGUgaXMKICAgICAgIG5vdCBpbXBsZW1lbnRlZCAobXkgbmV4dCB0b2RvIGl0ZW0pCiAgICAgLSBPbmx5IHRoZSBkZWZhdWx0IHRyYXBzIGFyZSBzZW50LiAgVGhlIG10ZUV2ZW50KiBvYmplY3RzIGhhdmVuJ3QKICAgICAgIGJlZW4gaW1wbGVtZW50ZWQgKG5vIHNlbGYtZGVmaW5lZCB0cmFwcy9zZXRzKS4KICAgICAtIG5vIGVhc3kgdG8gdXNlIGNvbmZpZ3VyYXRpb24geWV0IChzb29uKS4KICAgICAtIGNvbmZpZ3VyZSB3aXRoIC0td2l0aC1taWItbW9kdWxlcz1kaXNtYW4vZXZlbnQtbWliCiAgIAoyMDAxLTAxLTMwIDEzOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBVc2UgbWVtY3B5IGluc3RlYWQgb2Ygc3ByaW50ZiBmb3Igc3RyaW5ncyB0aGF0IG1heSBub3QgYmUgbnVsbCB0ZXJtaW5hdGVkLgogICAKMjAwMS0wMS0zMCAxMjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgIEltcGxlbWVudGVkIGdldF9jdXJyZW50X2FnZW50X3Nlc3Npb24oKSBhbmQgc2V0X2N1cnJlbnRfYWdlbnRfc2Vzc2lvbigpOgogICAgIC0gVGhlc2UgYWxsb3cgYSBtaWIgbW9kdWxlIHRvIHJldHJpZXZlIHRoZSBjdXJyZW50CiAgICAgICBhZ2VudF9zbm1wX3Nlc3Npb24gcG9pbnRlciBmb3IgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24uCiAgICAgLSBUaGlzIHNob3VsZCBwcm9iYWJseSBkb25lIGRpZmZlcmVudGx5IGxhdGVyIHdoZW4gd2UgY2hhbmdlIHRoZSBtaWIKICAgICAgIG1vZHVsZSBhcGkuCiAgICAgLSBUaGlzIHdpbGwgY29tcGxldGVseSBmYWlsIHRvIHdvcmsgcHJvcGVybHkgaW4gYSBtdWx0aS10aHJlYWRlZAogICAgICAgYWdlbnQgKHdoaWNoIHdlIGN1cnJlbnRseSBkb24ndCBzdXBwb3J0IGFueXdheSkuCiAgIAoyMDAxLTAxLTI5IDExOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBkZWJ1Z2dpbmcgc3RhdGVtZW50IGF0IGluaXRpYWxpemF0aW9uIHRpbWUuCiAgIAoyMDAxLTAxLTI5IDExOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBwcm9wZXJseSBtYWxsb2MgYSAxIGJ5dGUsIE5VTEwgY2hhcmFjdGVyIHN0cmluZyBmb3IgIiIgcmVhZCBzdHJpbmdzLgogICAKMjAwMS0wMS0yOSAxMTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oOgoKICAgZGF0YSBzZXBlcmF0aW9uIGFuZCBuZXcgZnVuY3Rpb25zOgogICAgIGhlYWRlcl9jb21wbGV4X2dldF9mcm9tX29pZCgpCiAgICAgaGVhZGVyX2NvbXBsZXhfYWRkX2RhdGFfYnlfb2lkKCkKICAgCjIwMDEtMDEtMTIgMDg6MjIgIGhhcmRha2VyCgogICAqIG1pYnMvRElTTUFOLUVWRU5ULU1JQi50eHQ6CgogICAtIERJU01BTi1FVkVOVC1NSUIgYWRkZWQgdG8gbWliIHJlcG9zaXRvcnkuIChPciwgZ3Vlc3Mgd2hhdCBJIGRpZCBkdXJpbmcgYSA2IGhvdXIgcGxhbmUgZmxpZ2h0PykKICAgCjIwMDEtMDEtMTIgMDg6MTYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgc3VwcG9ydCBiaXQgc3RyaW5ncwogICAKMjAwMS0wMS0xMiAwODowMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy41KSwgc25tcF9hcGkuYzoKCiAgIC0gYml0X3N0cmluZyBmaXhlcwogICAtIG1ha2Ugc25tcF9hZGRfdmFyIGNhbGwgc25tcF9wYXJzZV9vaWQoKSBpbnN0ZWFkIG9mIHJlYWRfb2JqaWQoKS4KICAgCjIwMDEtMDEtMTIgMDc6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gbmV3IGRhdGEgdHlwZXMgc3VwcG9ydGVkIGZvciByZWFkX2NvbmZpZyByb3V0aW5lczogdW5zaWduZWQsIGJpdF9zdHIuCiAgIAoyMDAxLTAxLTEyIDA3OjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jIChWNC0yLXBhdGNoZXMuMyksIGFzbjEuYzoKCiAgIGNvbW1lbnQgb3V0IHJlYWxseSBvZGQgKGFuZCBicm9rZW4pIGNoZWNrIGZyb20gYXNuX2JpdHN0cmluZ19jaGVjaz8/PwogICAKMjAwMS0wMS0xMiAwNzo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBtb3ZlIGNvbmZpZyBzdHJpbmcgaW5pdGlhbGl6ZXIgYWJvdmUgc3ViYWdlbnQgY2hlY2sgc28gaXRzIGtub3duIGV2ZW4KICAgaWYgbm90IHVzZWQuCiAgIAoyMDAxLTAxLTEyIDA3OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLnN0b3JhZ2UuY29uZiwgbWliMmMudmFydHlwZXMuY29uZgogICAoVjQtMi1wYXRjaGVzLlsxLDFdKSwgbWliMmMuc3RvcmFnZS5jb25mLAogICBtaWIyYy52YXJ0eXBlcy5jb25mOgoKICAgLSBtaXNjIGJ1ZyBmaXhlcy4KICAgLSBuZXcgZGF0YSB0eXBlcyAodWludDMyLCB1bnNpZ25lZCwgYml0cykuCiAgIAoyMDAxLTAxLTA5IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgIGRzX2FnZW50LmgsIHZhcl9zdHJ1Y3QuaCwgbWliZ3JvdXAvbWliaW5jbC5oLAogICBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwosIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmgKOgoKICAgU3ViQWdlbnQgcGluZyBzdXBwb3J0OgogICAgIC0gYWdlbnR4UGluZ0ludGVydmFsIHNwZWNpZmllcyBTRUNPTkRTIGJldHdlZW4gd2hlbiB0aGUgc3ViYWdlbnQKICAgICAgIHRyaWVzIHRvIHBpbmcgdGhlIG1hc3RlciBhZ2VudC4KICAgICAtIGlmIG5vIHJlc3BvbnNlIGlzIHJlY2VpdmVkLCBpdCB0cmllcyB0byByZWNvbm5lY3QuCiAgICAgLSBmYWlsaW5nIHRoYXQgaXQgdHJpZXMgZXZlcnkgU0VDT05EUyBhZ2FpbiB0aWxsIGl0IHN1Y2NlZWRzLgogICAgIC0gcmUtcmVnaXN0ZXJzIGl0cyBvaWQncyBiYXNlZCBvbiB0aGUgY3VycmVudCBzdWJ0cmVlIGxpc3QuCiAgICAgICAtIG1heSBuZWVkIHNvbWUgdGhvdWdodC4gIEFzc3VtZXMgKmFsbCogbmVlZCB0byBiZSByZS1yZWdpc3RlcmVkLgogICAgICAgLSBuZWVkcyB0byByZS1yZWdpc3RlciBzeXNvcnRhYmxlIGVudHJpZXMgdG9vLCBidXQgZG9lc24ndC4KICAgICAtIGN1cnJlbnRseSBzZWctZmF1bHRzIG9uIGFib3V0IHRoZSAyLTR0aCB0aW1lIG9yIHNvLiAgTm90IHN1cmUgd2h5LgogICAgIC0gU2hvdWxkIG1ha2UgRGF2ZSBzbWlsZSBvciBjcmluZ2Ugb3IgZ2lnZ2xlLCBub3Qgc3VyZSB3aGljaC4KICAgCjIwMDEtMDEtMDkgMTc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBjYWxsYmFjay5jLCBjYWxsYmFjay5oOgoKICAgQWxsb3cgZGVyZWdpc3RlcmluZyBvZiBjYWxsYmFja3MKICAgCjIwMDEtMDEtMDkgMDY6MjAgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXBuZXRzdGF0Lzogc25tcG5ldHN0YXQuZHNwIChWNC0yLXBhdGNoZXMuMSksCiAgIHNubXBuZXRzdGF0LmRzcDoKCiAgIGFkZGVkIGdldG9wdC5jIHRvIGxpc3QKICAgCjIwMDEtMDEtMDQgMTY6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2VudW0uYywgc25tcF9lbnVtLmg6CgogICAtIGdlbmVyaWMgc25tcCBlbnVtIGxpc3Qgc3VwcG9ydC4gIE5vdCB1c2VkIGFueXdoZXJlICh5ZXQpLgogICAKMjAwMS0wMS0wNCAxNjo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X2NhbGxiYWNrcy5oCiwgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9hZ2VudF90cmFwLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsCiAgIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAKLCB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwKICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLAogICB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwOgoKICAgLSBtZXJnZWQgcGF0Y2hlcyBmcm9tIFY0LTItcGF0Y2hlcyBicmFuY2ggdG8gbWFpbiBicmFuY2guCiAgIAoyMDAxLTAxLTA0IDEwOjM3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmLCBtYW4vc25tcGNtZC4xLCBzbm1wbGliL21pYi5jCjoKCiAgIC0gYWRkZWQgbmV3IHByaW50SGV4VGV4dCBzbm1wLmNvbmYgdG9rZW4uCiAgIC0gZG9jdW1lbnRlZCAtT1QsIGFuZCB0aGUgdG9rZW4uCiAgIAoyMDAxLTAxLTA0IDEwOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oLCBtaWIuYzoKCiAgIFBhdGNoICMxMDMwOTEgYXBwbGllZDoKICAgICAtIEFkZGVkIC1PVCBvcHRpb24gdG8gdmlldyBoZXggc3RyaW5ncyB3aXRoIHRleHQgaW4gdGhlbS4KICAgCjIwMDAtMTItMjcgMTY6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwOgoKICAgZmlsZSBUMDU1YWdlbnR2MW1pbnRyYXAgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMC0xMi0yNyAxNjo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwOgoKICAgZmlsZSBUMDU2YWdlbnR2MmNtaW50cmFwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDAtMTItMjIgMDc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgZml4IHZpZXcgcHJvY2Vzc2luZyB0byB3YXRjaCBmb3IgbGVuZ3RoIHByZWZpeC4gIFRoZSBsZW5ndGggcHJlZml4CiAgIHJlYWxseSByZWFsbHkgc2hvdWxkbid0IGJlIHN0b3JlZCBkaXJlY3RseSBpbiB0aGUgb2lkLiAgTmllbHM/CiAgIAoyMDAwLTEyLTE5IDA3OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgbWFrZSBpbml0X3NubXB2MygpIGRlYWwgd2l0aCBhIE5VTEwgYXJndW1lbnQgcHJvcGVybHkuCiAgIAoyMDAwLTEyLTE4IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IHJlbW92ZSBwYXNzdGVzdCBmcm9tIHRoZSAuY3ZzaWdub3JlIGZpbGUgKGJ1ZyAjMTI2OTQpCiAgIAoyMDAwLTEyLTE4IDEwOjQ1ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFJFQURNRSwgU05NUC5wbToKCiAgIG1pbm9yIGRvYyBmaXgKICAgCjIwMDAtMTItMTQgMTM6NDYgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSBzeXN0ZW0uYzogZml4IHVwdGltZSBmb3IgNjQtYml0IFNvbGFyaXMKICAgCjIwMDAtMTItMTQgMTM6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgLSBkbG1vZC5jOiBmaXggc3R1cGlkIHNwZWxsaW5nIGVycm9yCiAgIAoyMDAwLTEyLTEzIDIxOjUyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIC0gZGxtb2QuYzogZml4IGNvbmZ1c2lvbiBiZXR3ZWVuIGludCwgc2l6ZV90LCBsb25nIGZvciA2NC1iaXQgY29tcGlsZXMuCiAgIAoyMDAwLTEyLTEzIDA4OjQwICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGFkZCBzbm1wY29uZi4xCiAgIAoyMDAwLTEyLTA4IDE0OjQ5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgLSB2YWNtX3ZhcnMuYywgdmFjbS5jOiBpbmRleGluZyBvZiB2YWNtVmlld1RyZWVGYW1pbHlFbnRyeSB3YXMgaG9zZWQsIGFzc3VtaW5nCiAgIAl0aGF0IHRoZSBTdWJ0cmVlIGluZGV4IGhhZCBhbiBJTVBMSUVEIGF0dHJpYnV0ZS4KICAgCjIwMDAtMTItMDggMTQ6NDYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYzoKCiAgIC0gaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYzogZml4IHNvbWUgemVybyBpbmRleCB2YWx1ZXMuCiAgIAoyMDAwLTEyLTA4IDE0OjQzICBuYmEKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIHNubXBfdmFycy5jOiBmaXggcmV0dXJucyBvZiB6ZXJvRG90WmVybyAoc3VjaCBhcyBpZlNwZWNpZmljKQogICAKMjAwMC0xMi0wOCAxNDozOCAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gYWdlbnRfdHJhcGQuYzogc2VjdXJpdHkgbW9kZWwgdmFsdWVzIGFyZSBub3QgdGhlIHNhbWUgaXMgc25tcCB2ZXJzaW9uIHZhbHVlcwogICAKMjAwMC0xMi0wNiAxNDo0NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gaW50ZXJmYWNlcy5jOiBMaW51eCBrZXJuZWwgMi4wLnggaGFzIG5vIEFSUEhSRF9ISVBQSQogICAKMjAwMC0xMi0wNSAwNzowMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IEZpeCByc25tcCdzIC91c3IvbG9jYWwgaGFyZGNvZGVkIHBhdGguCiAgIAoyMDAwLTEyLTA0IDE3OjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsOgoKICAgLSAoVDExMmFnZW50eHNldGZhaWwpOiBmaXgKICAgCjIwMDAtMTItMDQgMTY6MzMgIGhhcmRha2VyCgogICAqIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIgKQogICAKMjAwMC0xMi0wNCAxNjozMCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlLgogICAKMjAwMC0xMi0wNCAxNTozMCAgaGFyZGFrZXIKCiAgICogTkVXUywgUkVBRE1FOgoKICAgLSAoTkVXUywgUkVBRE1FKTogdXBkYXRlcy4KICAgCjIwMDAtMTItMDQgMTQ6NDggIG1hcnoKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFNOTVAueHMsIHQvbWlibG9hZC50CiwgdC9zdGFydGFnZW50LnBsOgoKICAgZW5zdXJlIG1pYmxvYWQudCB1c2VzIGNvcnJlY3QgTUlCRElSIGZvciB0ZXN0aW5nCiAgIAoyMDAwLTEyLTA0IDExOjA1ICBoYXJkYWtlcgoKICAgKiBBR0VOVC50eHQsIEZBUSwgUkVBRE1FOgoKICAgLSAoQUdFTlQudHh0LCBGQVEsIFJFQURNRSk6IGNvbnZlcnQgdXJsJ3MgdG8gd3d3Lm5ldHNubXAub3JnLgogICAKMjAwMC0xMi0wNCAwODo0NSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBhZ2VudHggbm90ZSBjaGFuZ2VzLgogICAKMjAwMC0xMi0wMyAwNzoyOSAgbmJhCgogICAqIG1hbi9zbm1wdHJhcGQuOCwgYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAtIHNubXB0cmFwZF9sb2cuYzogZm94IG1pc3NpbmcgbGVhZGluZyB6ZXJvZXMgZm9yICUuMmQgbGlrZSBmb3JtYXRzLgogICAJQWRkIGFuIGFsdGVybmF0ZSBmb3JtYXQgZm9yIHVwLXRpbWUgZGlzcGxheXMuCiAgIAoyMDAwLTEyLTAyIDE4OjIyICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHMsIHQvYnVsa3dhbGsudCwKICAgdC9ub3RpZnkudCwgdC9zZXNzaW9uLnQ6CgogICBmb3VuZCB0aGUgdW5pbml0aWFsaXplZCBkYXRhIGJ1Zy4uLm11c3QgaGF2ZSBiZWVuIGluIHRoZXJlIGRvcm1hbnQgZm9yIGEgd2hpbGUsIG90aGVyIHRlc3QgZml4ZXMgLSBnb29kIHRvIGdvIQogICAKMjAwMC0xMi0wMSAxNjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpOiByZWZlcmVuY2Ugc291cmNlZm9yZ2UuCiAgIAoyMDAwLTEyLTAxIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBBR0VOVC50eHQ6CgogICAtIChBR0VOVC50eHQpOiByZWZlcmVuY2Ugc291cmNlZm9yZ2UuCiAgIAoyMDAwLTEyLTAxIDE2OjM0ICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IHJlZmVyZW5jZSBuZXQtc25tcC1jb2RlcnMuCiAgIAoyMDAwLTEyLTAxIDE2OjM0ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB1cGRhdGUuCiAgIAoyMDAwLTEyLTAxIDE2OjMzICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAoYnVnLXJlcG9ydCwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZyk6IHJlbW92ZSB0aGUgYnVnIHJlcG9ydCBzY3JpcHQuCiAgIAoyMDAwLTEyLTAxIDE2OjMxICBoYXJkYWtlcgoKICAgKiBQT1JUSU5HOgoKICAgLSAoUE9SVElORyk6IHJlZmVyZW5jZSBzb3VyY2Vmb3JnZS4KICAgCjIwMDAtMTItMDEgMTY6MjMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIC0gKG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZik6IG1lbnRpb24gdGhlIGZhY3QgdGhhdCBzbm1wdjMgdHJhcHMgYXJlCiAgICAgdGhlIHNhbWUgYXMgc25tcHYyIHRyYXBzLgogICAKMjAwMC0xMi0wMSAxNjoyMyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiB1cGRhdGUuCiAgIAoyMDAwLTEyLTAxIDE1OjMxICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB1cGRhdGUuCiAgIAoyMDAwLTEyLTAxIDE1OjE2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiB1cGRhdGUgZm9yIHByb3h5IHN1cHBvcnQuCiAgIAoyMDAwLTEyLTAxIDE0OjM2ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB1cGRhdGUgYSBmZXcgdGhpbmdzLgogICAKMjAwMC0xMi0wMSAxNDoyOCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBkaWFnbm9zZSB3cm9uZyBxdW90aW5nIGluIGluZGljZXMKICAgCjIwMDAtMTItMDEgMTQ6MjMgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IGFkZCBSRkMtMTIxMyBhcyBhbiBhbGlhc2UgZm9yIFJGQzEyMTMtTUlCICh1c2VkIGluIG1hbnkgbWlicykKICAgCjIwMDAtMTItMDEgMTQ6MTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gc211eC5jOiByZWZvcm1hdCBzb21lIGRlYnVnIG1lc3NhZ2VzIGZvciByZWFkYWJpbGl0eQogICAKMjAwMC0xMi0wMSAxNDoxNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gaW50ZXJmYWNlcy5jOiBmaXggaWZUeXBlIHZhbHVlcyBmb3IgTGludXgKICAgCjIwMDAtMTItMDEgMTQ6MTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gc3ViYWdlbnQuYzogc3VwcGx5IGEgbWlzc2luZyByZXR1cm4gdmFsdWUKICAgCjIwMDAtMTItMDEgMTA6MDQgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBxdW90ZSB0aGluZ3Mgd2l0aCBzcGFjZXMgaW4gdGhlbS4KICAgCjIwMDAtMTItMDEgMDk6NDkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY29uZi4xOgoKICAgLSAoc25tcGNvbmYuMSk6IHF1aWNrIG1hbiBwYWdlIGZvciBzbm1wY29uZi4KICAgCjIwMDAtMTItMDEgMDk6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHNubXBsaWIvcGFyc2UuYyk6IGNoYW5nZSBuby1wYXJlbnQgbG9nIG1lc3NhZ2UgaW50byBhIHdhcm5pbmcuCiAgIAoyMDAwLTEyLTAxIDA5OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4KTogdXBkYXRlIGZyb20gRGF2ZS4KICAgCjIwMDAtMTItMDEgMDk6MTAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHVwZGF0ZSBmcm9tIERhdmUuCiAgIAoyMDAwLTEyLTAxIDA3OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIChhZ2VudC9hZ2VudF90cmFwLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gc3VwcG9ydCB2Mi0+djEgdHJhcCBjb252ZXJzaW9uLgogICAKMjAwMC0xMi0wMSAwNzo1NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHR5cG8uCiAgIAoyMDAwLTEyLTAxIDA3OjQyICBtYXJ6CgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwgcGVybC9TTk1QL1NOTVAueHMsCiAgIHBlcmwvU05NUC90L25vdGlmeS50LCBzbm1wbGliL21pYi5jOgoKICAgYWRkaXRpb25hbCBmaXhlcyB0byBzdXBwb3J0IHRhcmdldHRlZCBidWlsZHMgb2YgcGVybC9TTk1QIHVzaW5nIC1ORVQtU05NUC1QQVRIIChhbmQgd2hpdGUgc3BhY2UgcmVtb3ZhbCBhcyBteSBlbWFjcyBraW5kbHkgZG9lcyB0aGF0IGZvciBtZT8pCiAgIAoyMDAwLTExLTMwIDE0OjA2ICBuYmEKCiAgICogc25tcGxpYi86IGdldG9wdC5oLCBzbm1wX3BhcnNlX2FyZ3MuaDoKCiAgIC0gZ2V0b3B0LmgsIHNubXBfcGFyc2VfYXJncy5oOiBleHRlcm4gIkMiIGJyYWNrZXRpbmcKICAgCjIwMDAtMTEtMzAgMTQ6MDQgIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gc25tcGQuY29uZi41LmRlZjogZml4IGZvcm1hdHRpbmcgb2Ygc211eHBlZXIgdG9rZW4KICAgCjIwMDAtMTEtMzAgMTA6MzEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFVwZGF0ZSBmcm9tIERhdmUuCiAgIAoyMDAwLTExLTMwIDEwOjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIGZpeCBiYWQgc2V0cyBmb3IgYWdlbnR4LgogICAKMjAwMC0xMS0zMCAwOToxOSAgaGFyZGFrZXIKCiAgICogb3YvUkVBRE1FOgoKICAgLSAob3YvUkVBRE1FKTogbWlub3IgY29ycmVjdGlvbnMsIHByb2JhYmx5IHN0aWxsIGluY29ycmVjdC4KICAgCjIwMDAtMTEtMzAgMDk6MTggIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIHNubXBjb25mOgoKICAgLSAobG9jYWwvTWFrZWZpbGUuaW4sIHNubXBjb25mLCBhY2wsIGJhc2ljX3NldHVwLCBtb25pdG9yLCBvcGVyYXRpb24sCiAgICAgc3lzdGVtLCB0cmFwc2lua3MpOgogICAgIC0gZ3JvdXBpbmcgc3VwcG9ydC4KICAgICAtIHNvcnQtb2YtcXVpZXQgb3V0cHV0IHN1cHBvcnQuCiAgICAgLSBvcGVyYXRpb24gbW9kZSBzdXBwb3J0IChzZXR0aW5nIHVzZXIsIGdyb3VwLCBwb3J0cy4uLikKICAgCjIwMDAtMTEtMzAgMDk6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHNubXBsaWIvcmVhZF9jb25maWcuYyk6IHNhdmUgYSB3YXJuaW5nIGhlYWRlciBhdCB0aGUgdG9wIG9mIHRoZQogICAgIHBlcnNpc3RlbnQgZGF0YSBmaWxlLgogICAKMjAwMC0xMS0zMCAwOToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jKTogQ2xlYW51cCBwYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MuCiAgIAoyMDAwLTExLTMwIDA5OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoYWdlbnQvc25tcGQuYyk6IHNldCBEU19BR0VOVF9OT19ST09UX0FDQ0VTUyBpbiAtSCBoZWxwIG91dHB1dC4KICAgCjIwMDAtMTEtMzAgMDk6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBtZW50aW9uIHRoZSBUVU5ORUwtTUlCIHN1cHBvcnQuCiAgIAoyMDAwLTExLTI5IDE4OjIxICBzbGlmCgogICAqIFJFQURNRToKCiAgIFVwZGF0ZSBlLW1haWwgYWRkcmVzcyBmb3IgU2xpZmNhawogICAKMjAwMC0xMS0yOSAxMTozNCAgbWFyegoKICAgKiBjb25maWd1cmU6CgogICBmaXhlZCBvcmRlciBvZiBmdW5jdGlvbiBjaGVja2luZyBzbyB0aGF0IHZzbnByaW50ZiBpcyBub3QgZm91bmQgaW4gbGliZGIgKEJTRCBkYikgYnkgbWlzdGFrZQogICAKMjAwMC0xMS0yOSAwNToxOCAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCwgUkVBRE1FOgoKICAgcGFydGlhbCBzdWJtaXQgdG8gZ2V0IHBlcmwvU05NUCB0ZXN0cyB0byBwYXNzIGFuZCB1cGRhdGUgdGhlIGRvY3Mgc29tZXdoYXQgLSBzdGlsbCBnZXR0aW5nIGNvcmVzIGluIG5vdGlmeS50LiBoYWQgdG8gY2hhbmdlIGNyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbiB0byB1cGRhdGUgYW4gZXhpc3RpbmcgdXNlciBpbmNhc2UgMiBzZXNzaW9ucyBhcmUgc3RhcnRlZCB3aXRoIHRoZSBzYW1lIHVzZXIKICAgCjIwMDAtMTEtMjggMTg6MDAgIG1hcnoKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMLCBwZXJsL1NOTVAvUkVBRE1FLAogICBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9TTk1QL1NOTVAueHMsCiAgIHBlcmwvU05NUC90L2FzeW5jLnQsIHBlcmwvU05NUC90L2J1bGt3YWxrLnQsCiAgIHBlcmwvU05NUC90L21pYi50LCBwZXJsL1NOTVAvdC9ub3RpZnkudCwKICAgcGVybC9TTk1QL3Qvc2Vzc2lvbi50LCBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgcGFydGlhbCBzdWJtaXQgdG8gZ2V0IHBlcmwvU05NUCB0ZXN0cyB0byBwYXNzIGFuZCB1cGRhdGUgdGhlIGRvY3Mgc29tZXdoYXQgLSBzdGlsbCBnZXR0aW5nIGNvcmVzIGluIG5vdGlmeS50LiBoYWQgdG8gY2hhbmdlIGNyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbiB0byB1cGRhdGUgYW4gZXhpc3RpbmcgdXNlciBpbmNhc2UgMiBzZXNzaW9ucyBhcmUgc3RhcnRlZCB3aXRoIHRoZSBzYW1lIHVzZXIKICAgCjIwMDAtMTEtMjcgMTQ6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAobG9jYWwvc25tcGNvbmYpOgogICAgIC0gYWRkIHN1cHBvcnQgZm9yICJncm91cHMiIG9mIGl0ZW1zLgogICAgIC0gZG9uJ3QgdXNlIElPOjpEaXIsIGFzIGl0cyBub3QgaW4gdGhlIHN0YW5kYXJkIHBlcmwgbW9kdWxlIGRpc3RyaWJ1dGlvbnMuCiAgIAoyMDAwLTExLTI3IDE0OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaCk6IHJlbW92ZSB1bm5lZWRlZCB2YXJpYWJsZSByZWZlcmVuY2UuCiAgIAoyMDAwLTExLTI3IDE0OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBQYXRjaCBmcm9tIEpvaG4gTmF5bG9uOgogICAgIC0gZml4IGF1dG8tc2V0IHN1cHBvcnQgZm9yIHRoZSBhZ2VudCAoYW5kIHBsdWcgYSBtZW1vcnkgbGVhaykuCiAgIAoyMDAwLTExLTI3IDEzOjQyICBuYmEKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIC0gc25tcC5jb25mLjUuZGVmOiBkb2N1bWVudCB0b2tlbnMgZXh0ZW5kZWRJbmRleCBhbmQgbm9SYW5nZUNoZWNrCiAgIAoyMDAwLTExLTI3IDEzOjQxICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLaBwYXJzZS5jOiBmaXggYSBDKysgc3R5bGUgY29tbWVudAogICAKMjAwMC0xMS0yNCAxNToxNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2ZyZWVic2QyLmMsCiAgIHZtc3RhdF9uZXRic2QxLmM6CgogICAtIG1lbW9yeV9mcmVlYnNkMi5jLCB2bXN0YXRfbmV0YnNkMS5jOiBtaW5vciBmaXhlcyBmb3IgTmV0QlNEIDEuNSwgT1BlbkJTRCAyLjYKICAgCjIwMDAtMTEtMjIgMTM6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICAtIChtaWJncm91cC91Y2Qtc25tcC9kbG1vZC5jKTogUGF0Y2ggZnJvbSBTZWFuIEhhcmRpbmc6CiAgICAgLSBkb24ndCBleHBvcnQgYW4gaW50ZXJuYWwgdmFyaWFibGUuCiAgIAoyMDAwLTExLTIxIDE1OjE3ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGZpeCBwYXJzaW5nIG9mIG9pZCBsaWtlIDk5LjEzLlwiZ3VmXCI4CiAgIAoyMDAwLTExLTE5IDEzOjAzICBuYmEKCiAgICogcGVybC9TTk1QL1NOTVAueHMsIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmY6CgogICAtIFNOTVAueHMsIG1pYjJjLnZhcnR5cGVzLmNvbmY6IFRoZSByZWNlbnQgc3BlY2lhbGlzYXRpb24gb2YgdGhlIEludGVnZXIKICAgCXR5cGVzIGluIHRoZSBwYXJzZXIgY3JlYXRlZCBwcm9ibGVtcyBmb3IgdGhlIHBlcmwgbW9kdWxlIGFuZCBpbiB0dXJuCiAgIAlmb3IgbWliMmMuIFNvcnJ5IGZvciBub3QgY2F0Y2hpbmcgdGhpcyBiZWZvcmUgcHJlMjotKAogICAKMjAwMC0xMS0xOSAxMjo1OCAgbmJhCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbgosIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL3BhcnNlLmM6CgogICAtIGZpeGVzIHRvIC4vY29uZmlndXJlIC0td2l0aC1kZWZhdWx0cyAtLWVuYWJsZS1taW5pLWFnZW50OyBtYWtlIGluc3RhbGwKICAgCWFuZCBydW4gdGhlIHRvb2xzIHVuZGVyIGN5Z3dpbi4gSGF2ZW4ndCB0cmllZCB0aGUgYWdlbnQgeWV0Oi0pCiAgIAoyMDAwLTExLTE4IDA3OjE0ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluCiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIucHJlMiApCiAgIAoyMDAwLTExLTE4IDA3OjEyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm06CgogICAtIChUMDQ5c25tcHYzaW5mb3JtKTogdjMgaW5mb3JtIHRlc3QgYWRkZWQuCiAgIAoyMDAwLTExLTE3IDExOjAxICBuYmEKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2FwaS5jOgoKICAgLSBtaWIuYywgc25tcF9hcGkuYzogYmV0dGVyIGVycm9yIG1lc3NhZ2VzIGZvciBiYWQgc25tcHNldCBjYWxscyBhbmQgYmFkCiAgIAlpbmRpY2VzLiBBbHNvIGZpeCBhIGJ1ZyB3aXRoIHF1b3RlZCBpbmRpY2VzLgogICAKMjAwMC0xMS0xNyAxMDozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcDoKCiAgIC0gKHRlc3RzL1QwNTBzbm1wdjN0cmFwKTogdGVzdCBmb3Igc25tcHYzIHRyYXBzLgogICAKMjAwMC0xMS0xNyAxMDozMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogZml4IGNhc2VzIHdoZXJlIHRoZSBmb3JtYXQgc3RyaW5ncyBhcmUgc3BlY2lmaWVkLgogICAKMjAwMC0xMS0xNyAxMDoyNiAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgLSBJQU5BaWZUeXBlLU1JQi50eHQ6IHVwZGF0ZSBmcm9tIElBTkEKICAgCjIwMDAtMTEtMTcgMDg6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAobWFzdGVyX3JlcXVlc3QuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBmaXggbWVtb3J5IGxlYWtzLgogICAgIC0gZml4IGFnZW50eCBwcm9ibGVtcyB3aXRoIGJhZCBzZXRzLgogICAKMjAwMC0xMS0xNiAxNzo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXBsaWIvc25tcHYzLmMpOiBhZGRlZCBhIHNwYWNlIGluIGEgZGVidWdnaW5nIG91dHB1dCBzdGF0ZW1lbnQuCiAgIAoyMDAwLTExLTE2IDE3OjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChzbm1wbGliL3JlYWRfY29uZmlnLmMpOiBzaW1wbGUgZGVidWdnaW5nIHN0YXRlbWVudCBhZGRlZC4KICAgCjIwMDAtMTEtMTYgMTc6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHNldCBEU19MSUJfQVBQVFlQRSBpZiBpdCBoYXNuJ3QgYmVlbiBzZXQgeWV0LgogICAKMjAwMC0xMS0xNiAxNzo1MiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgLSAodGVzdGluZy9ldmFsX3Rvb2xzLnNoKTogYWRkIENPTkZJR1RSQVBELgogICAKMjAwMC0xMS0xNiAxNzo1MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYywgdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwKICAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsOgoKICAgLSAoc25tcGxpYi9taWIuYywgdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwpOgogICAgIC0gc3VwcG9ydCAtSXIgZm9yICJkb250IGNoZWNrIHJhbmdlL3R5cGUgdmFsdWVzIiAobGV0dGVyIHIgc3ViamVjdCB0byBkZWJhdGUpLgogICAKMjAwMC0xMS0xNiAxNzoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgLSAoY2FsbGJhY2suYyk6IGJldHRlciBkZWJ1Z2dpbmcgb3V0cHV0IHRvIGRpc3BsYXkgYSBjYWxsYmFjayBjb3VudCB3aGVuIGRvbmUuCiAgIAoyMDAwLTExLTE2IDE2OjUyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwOgoKICAgLSAoVDExM2FnZW50eHRyYXApOiBBIG5ldyB0ZXN0IHRvIHRlc3QgdHJhcCBzdXBwb3J0IGZyb20gYWdlbnR4IHN1YmFnZW50cy4KICAgCjIwMDAtMTEtMTYgMTY6NTAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXA6CgogICAtIChUMDU4YWdlbnRhdXRodHJhcCk6IHNsZWVwIHNvbWUgYW5kIG9ubHkgcGVyZm9ybSBvbmUgZ2V0IHJlcXVlc3QuCiAgIAoyMDAwLTExLTE2IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXA6CgogICAtIChUMDU0YWdlbnR2MmN0cmFwKTogc2xlZXAgYSBiaXQgYW5kIG9ubHkgc2VuZCBvbmUgc25tcCBzZXQgcmVxdWVzdC4KICAgCjIwMDAtMTEtMTYgMTU6NDcgIG5iYQoKICAgKiBzbm1wbGliL2dldG9wdC5jOgoKICAgLSBnZXRvcHQuYzogcXVlbGwgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDAtMTEtMTYgMTU6MzEgIG5iYQoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgbWliLmMsIHBhcnNlLmgsCiAgIHNubXBfYXBpLmM6CgogICAtIHBhcnNlLltjaF0sIG1pYi5jLCBzbm1wX2FwaS5jOiByZW5hbWUgVFlQRV9VSU5URUdFUjMyIGJhY2sgdG8gVFlQRV9VSU5URUdFUgogICAKMjAwMC0xMS0xNiAxNToxNiAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIC0gc25tcHRyYXBkLmMsIHNubXB0cmFwZC5jb25mOiBuZXcgY29uZmlnIGRpcmVjdGl2ZXMgZm9ybWF0MSBhbmQgZm9ybWF0MiB0bwogICAJc2V0IGxvZyBmb3JtYXRzIGZvciBUUkFQMSBhbmQgVFJBUDIgcGR1cy4KICAgCjIwMDAtMTEtMTYgMTM6NTAgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIHNubXBfYXBpLmM6IGFkZCBmdW5jdGlvbmFsaXR5IHRvIGNoZWNrIHZhbHVlIHR5cGVzIGluIGFkZGl0aW9uIHRvIHJhbmdlcwogICAJZm9yIHNubXBzZXQgYW5kIHNubXB0cmFwLgogICAKMjAwMC0xMS0xNiAxMzo0NyAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogRml4IERFRlZBTCBwYXJzaW5nIGZvciAgT0JKRUNUIElERU5USUZJRVIgb3IgQklUUyB2YWx1ZXMKICAgCShpLmUuIERFRlZBTCB7IHsgMCAwIH0gfSBldGMpCiAgIAoyMDAwLTExLTE2IDExOjM5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwOgoKICAgLSAoVDA1OGFnZW50YXV0aHRyYXApOiBhZGQgYSBncmVhdGVyIHRpbWVvdXQgdG8gdGhlIGdldCByZXF1ZXN0LgogICAKMjAwMC0xMS0xNiAxMTozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jOgoKICAgLSAoZXhhbXBsZS5jKToKICAgICAtIHNlbmQgYSB2MmMgdHJhcCB1c2luZyBpdHMgb3duIGRhdGEsIG5vdCB0aGUgc3lzdGVtX21pYidzLgogICAgIC0gbW9yZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KICAgCjIwMDAtMTEtMTYgMTE6MzQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDUzYWdlbnR2MXRyYXAsIFQwNTRhZ2VudHYyY3RyYXAsCiAgIFQwNThhZ2VudGF1dGh0cmFwOgoKICAgLSAoVDA1M2FnZW50djF0cmFwLCBUMDU0YWdlbnR2MmN0cmFwLCBUMDU4YWdlbnRhdXRodHJhcCk6CiAgICAgLSBuZXcgdGVzdHMgZm9yIHRyYXBzIHNlbnQgYnkgdGhlIGFnZW50LgogICAKMjAwMC0xMS0xNiAwOTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgLSAodGFyZ2V0LmMpOiBEb24ndCBkZWxldGUgUkVBRE9OTFkgdHJhcCBzZXNzaW9ucy4KICAgCjIwMDAtMTEtMTUgMTY6MzcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm06CgogICAtICh0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtKTogdGVzdCBpbmZvcm0gc2VuZGluZy9yZWNlaXZpbmcuCiAgIAoyMDAwLTExLTE1IDE2OjM3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmMsIG1hbi9zbm1wdHJhcC4xOgoKICAgLSAoYXBwcy9zbm1wdHJhcC5jLCBtYW4vc25tcHRyYXAuMSk6IHN1cHBvcnQgLUNpIGZvciBzZW5kaW5nIGluZm9ybXMuCiAgIAoyMDAwLTExLTE1IDE1OjQ4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIC0gKHNubXB0cmFwZF9sb2cuYyk6IHVzZSBTTk1QX01BWEJVRiBpbnN0ZWFkIG9mIGEgbG9jYWwgbGVuZ3RoIGRlZmluaXRpb24uCiAgIAoyMDAwLTExLTE1IDE0OjE4ICBuYmEKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIE1ha2VmaWxlLmluOiBmaXggbWFrZSdpbmcgaW4gcmVtb3RlIGRpcmVjdG9yeQogICAKMjAwMC0xMS0xNSAxNDoxMSAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSBtYWluLmM6IHVwZGF0ZSB0byB1c2UgZ2V0b3B0IGZvciBhcmd1bWVudCBwYXJzaW5nLgogICAKMjAwMC0xMS0xNSAxNDoxMCAgbmJhCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gc25tcF9hZ2VudC5jOiBmaXggYSBjb25mdXNpbmcgaW5kZW50YXRpb24uCiAgIAoyMDAwLTExLTE1IDE0OjA5ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBhZ2VudF90cmFwLmM6IG1ha2Ugc3VyZSBjb21tdW5pdHkgaXMgXDAtdGVybWluYXRlZCBpbiB0YXJnZXRQYXJhbXNUYWJsZQogICAKMjAwMC0xMS0xNSAxNDowMyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgLSBzbm1wdHJhcGRfbG9nOiBmaXggYSBidWZmZXIgdGhhdCBpcyB3YXkgdG9vIHNob3J0IGZvciBhIHRyYXAgd2l0aCBqdXN0IGEKICAgCXNpbmdsZSBwYXJhbWV0ZXIuIEZpeCBhIGJhZCBsaW1pdCB0ZXN0IGluIHN0cl9hcHBlbmQuCiAgIAoyMDAwLTExLTE1IDE0OjAwICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIHNubXB0cmFuc2xhdGUuYzogZml4IGEgc3R1cGlkIHBlcnJvciBmb3Igc25tcF9wZXJyb3IKICAgCjIwMDAtMTEtMTUgMTM6NTggIG5iYQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIHBhcnNlLltjaF0sIG1pYi5jOiBlbmhhbmNlIHRoZSBwYXJzZXIgdG8gZGlzdGluZ3Vpc2ggSU5URUdFUiwgSW50ZWdlcjMyLAogICAJVW5zaWduZWQzMiwgVUludGVnZXIzMi4KICAgCjIwMDAtMTEtMTUgMTM6NTUgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBzbm1wX2FwaS5jOiByZW1vdmUgYW4gdW51c2VkIHZhcmlhYmxlCiAgIAoyMDAwLTExLTE1IDA3OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwKICAgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oCjoKCiAgIC0gKHNubXBfdmFycy5jLCBzdWJhZ2VudC5jKTogUGF0Y2ggZnJvbSBMYXdyZW5jZSBHcmVlbmZpZWxkOgogICAgIC0gRG9uJ3QgbWFrZSBpbml0X2FnZW50KCkvc3ViYWdlbnRfcHJlX2luaXQoKSBleGl0IGJ1dCByZXR1cm4gYW4KICAgICAgIGVycm9yIGNvbmRpdGlvbiBpbnN0ZWFkLgogICAKMjAwMC0xMS0xMiAwODowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jOgoKICAgLSAodWNkRGVtb1B1YmxpYy5jKTogYWRkIE5VTEwgdG8gZW5kIG9mIGRlbW8gc3RyaW5nIGFuZCBjaGVjayBmb3IgbGVuPTAuCiAgIAoyMDAwLTExLTEyIDA0OjQ1ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgc25tcF9hcGkuYzogTWFrZSBzdXJlIHRoZSBub1JhbmdlQ2hlY2sgdG9rZW4gaXMgYSBib29sZWFuCiAgIAoyMDAwLTExLTEyIDA0OjQxICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGdpdmUgdGhlIHRyZWUtdG9wIGEgbmFtZSB0byBwcm90ZWN0IGVycm9yIG1lc3NhZ2Ugd2hlbiBsb29raW5nIHVwIC5mb28KICAgCjIwMDAtMTEtMTIgMDQ6MzYgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gc25tcHRyYW5zbGF0ZS5jOiB1c2UgY29uZmlnX3BlcnJvciBmb3IgYSBiZXR0ZXIgZXJyb3IgbWVzc2FnZQogICAKMjAwMC0xMS0xMiAwNDozNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICAtIHByb3h5LmM6IHJlbW92ZSBzb21lIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoyMDAwLTExLTEyIDA0OjMzICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLWFnZW50X3RyYXBzLmM6IE1vdmUgYSBjb25kaXRpb25hbGx5IHVzZWQgdmFyaWFibGUKICAgCjIwMDAtMTEtMTIgMDQ6MzIgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgRml4IGEgYm9ndXMgI2lmZGVmCiAgIAoyMDAwLTExLTEwIDA5OjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogYXBwbHkgcGF0Y2ggIzEwMjIyNCBmcm9tIGpicG4gZm9yIGNyb3NzLWNvbXBpbGluZy4KICAgCjIwMDAtMTEtMTAgMDg6NTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCwgZXZhbF90b29scy5zaCwKICAgdGVzdHMvVDA1MXNubXB2MmN0cmFwOgoKICAgLSAodGVzdGluZy9URVNUQ09ORi5zaCwgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLCB0ZXN0aW5nL3Rlc3RzL1QwNTFzbm1wdjJjdHJhcCk6CiAgICAtIGZpcnN0IHBhc3MgYXQgYSB0ZXN0aW5nIHNjcmlwdCB0byB0ZXN0IHRyYXAgZnVuY3Rpb25hbGl0eS4KICAgICAgLSB3aGljaCBldmVuIHVuY292ZXJlZCBhIGJ1Zy4KICAgCjIwMDAtMTEtMTAgMDg6NTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChhcHBzL3NubXB0cmFwZC5jKToKICAgICAtIGZvcmsgaWYgZmlsZSBsb2dnaW5nIG9yIHN5c2xvZ2dpbmcsIGJ1dCBub3QgcHJpbnRpbmcuCiAgICAgLSBkb24ndCBjbG9zZSBvcGVuIGZpbGUgZGVzY3JpcHRvcnMuICBUaGVyZSBzaG91bGRuJ3QgYmUgYW55LgogICAKMjAwMC0xMS0xMCAwODo1MyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAtIChhcHBzL3NubXB0cmFwZF9sb2cuYyk6IHByb3Blcmx5IG51bGwgdGVybWluYXRlIGxvZyBzdHJpbmdzLgogICAKMjAwMC0xMS0wOSAxNjo0MCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogYXR0ZW1wdCB0byBpbXBsZW1lbnQgYSAtLXdpdGgtcnNhcmVmIGZsYWcuCiAgIAoyMDAwLTExLTA5IDE1OjMyICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUsIHBlcmwvU05NUC9SRUFETUUpOiBtZW50aW9uIEthcmwuCiAgIAoyMDAwLTExLTA5IDE1OjMxICBoYXJkYWtlcgoKICAgKiBORVdTLCBwZXJsL1NOTVAvUkVBRE1FOgoKICAgLSAoTkVXUywgcGVybC9TTk1QL1JFQURNRSk6IG1lbnRpb24gS2FybC4KICAgCjIwMDAtMTEtMDkgMTQ6NTYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IGV4YW1wbGVzL2J1bGt3YWxrLnBsLCB0L2J1bGt3YWxrLnQ6CgogICAtIChleGFtcGxlcy9idWxrd2Fsay5wbCwgdC9idWxrd2Fsay50KTogcGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2U6CiAgICAgLSBzdXBwb3J0IGJ1bGsgcmVxdWVzdHMuCiAgIAoyMDAwLTExLTA5IDE0OjUzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBNQU5JRkVTVCwgUkVBRE1FLCBTTk1QLnBtLAogICBTTk1QLnhzOgoKICAgLSAoTUFOSUZFU1QsIFJFQURNRSwgU05NUC5wbSwgU05NUC54cyk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgogICAgIC0gc3VwcG9ydCBidWxrIHJlcXVlc3RzLgogICAKMjAwMC0xMS0wOCAyMzozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IGZpeCAtSCBvdXRwdXQuCiAgIAoyMDAwLTExLTA4IDIzOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBtYWtlIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzKCkgY2FsbCBydW5fYWxhcm1zKCkuCiAgIAoyMDAwLTExLTA4IDIyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIC0gKGRpc2tpby5jKTogZml4IE9JRC4KICAgCjIwMDAtMTEtMDggMTc6MDYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICAtIChTTk1QLnBtLCBTTk1QLnhzKTogcGF0Y2ggZnJvbSBNYXJrIENhdmFnZSBmb3IgZGVmYXVsdCB2YWx1ZSBzdXBwb3J0LgogICAKMjAwMC0xMS0wOCAxNzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBtaW5pbWFsIERFRlZBTCBwYXJzaW5nIHN1cHBvcnQuCiAgIAoyMDAwLTExLTA4IDE2OjIwICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSk6IGNoZWNrIGZvciBsaWJyc2FyZWYsIGV0YywgaWYgbmVlZGVkLgogICAKMjAwMC0xMS0wNyAxNToxNSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wZC5jOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICAgIGFnZW50L3NubXBkLmMpOgogICAgIC0gdWlkL2dpZCBjaGFuZ2VzLgogICAKMjAwMC0xMS0wNyAxNToxMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAtIChTTk1QLnhzKTogZml4IFRZUEVfTk9USUYgLT4gVFlQRV9OT1RJRlRZUEUuCiAgIAoyMDAwLTExLTA3IDExOjMwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgLSAoU05NUC9TTk1QLnBtLCBTTk1QL1NOTVAueHMpOiBQYXRjaCBmcm9tIEpvZSBDbGFya2U6CiAgICAgLSBpbXBsZW1lbnQgYmVzdC1ndWVzcyAoLUliKSBwYXJzaW5nLgogICAgIC0gYWNjZXNzIHRvIHRyYXAgdmFyYmluZHMuCiAgICAgLSByYW5nZSBhY2Nlc3MuCiAgIAoyMDAwLTExLTA3IDExOjAwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgYnVpbGQgY3JlYXRlZCBmaWxlcy4KICAgCjIwMDAtMTEtMDcgMTA6NTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFJFQURNRSwgU05NUC5wbSwgU05NUC54czoKCiAgIC0gKFJFQURNRSwgU05NUC5wbSwgU05NUC54cyk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgogICAgIC0gaW1wbGVtZW50IGEgZmluaXNoKCkgY2FsbC4KICAgCjIwMDAtMTEtMDcgMTA6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgLSAoU05NUC9TTk1QLnhzKTogcGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2U6CiAgICAgLSBtdWx0aXBsZSBjYWxsYmFjayBwYXRjaCBmb3IgcGVybC9TTk1QL1NOTVAueHMuCiAgIAoyMDAwLTExLTA3IDEwOjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogbG9nIGFuIGVycm9yIG1lc3NhZ2UgaWYgdGhlIG9wdGlvbmFsIGNvbmZpZyBmaWxlIERORS4KICAgCjIwMDAtMTEtMDcgMTA6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoU05NUC5wbSk6IGZpeCBpaWQgcGFyc2luZyB3aXRoIHJlc3BlY3QgdG8gbWliIG5vZGVzIHdpdGggYSAtIGluIGl0LgogICAKMjAwMC0xMS0wNyAxMDoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvZHNfYWdlbnQuaCwKICAgYWdlbnQvc25tcGQuYywgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICAtIChhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9kc19hZ2VudC5oLCBhZ2VudC9zbm1wZC5jLAogICAgIG1hbi9zbm1wZC4xLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgogICAgIC0gaW1wbGVtZW50IHVpZC9naWQgY2hhbmdlcyBhZnRlciBzdGFydHVwIGZvciB0aGUgYWdlbnQuCiAgIAoyMDAwLTExLTA3IDA4OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAtICh0YXJnZXQuYyk6IGEgYmV0dGVyIHNhbml0eSBjaGVjayBmb3Igc2Vzc2lvbiBkZWxldGlvbi4KICAgCjIwMDAtMTEtMDcgMDc6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIC0gKHRhcmdldC5jKTogUGF0Y2ggZnJvbSBEYXZlIHRvIHNhbml0eSBjaGVjayBwYXJhbS0+dXBkYXRlVGltZS4KICAgCjIwMDAtMTEtMDYgMTE6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWQ1LmM6CgogICAtIChtZDUuYyk6IGNoZWNrIHRvIHNlZSB0aGF0IE1Ec2lnbigpIGRhdGEgbGllcyBvbiBhIDMyIGJ5dGUgYm91bmRyeS4KICAgICAtIGl0cyBwb3NzaWJsZSBzb21lIGNvbXBpbGVycyB3aWxsIGNob2tlIG9uIHRoaXMgaGFjay4KICAgICAtIGZpeGVzIGJ1ZyAjMTIxNzUuCiAgIAoyMDAwLTExLTAzIDE3OjU0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKTogc29ydCBPSURzIHByb3Blcmx5LgogICAKMjAwMC0xMS0wMyAxNjo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jOgoKICAgLSAoZXhhbXBsZS5jKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIGZpeCBtaWIgcmVnaXN0cmF0aW9ucyBmb3IgZHVwbGljYXRlIE9JRHMgYmVpbmcgdXNlZCBmb3IgdGhlIHRyYXAgZXhhbXBsZXMuCiAgIAoyMDAwLTExLTAzIDE1OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHNlY29uZCBwYXRjaCBmcm9tIGRvdWd3YXJ6IGluIGJ1ZyAjMTE3MjczIHRvIGZpeCBzbXV4IHByb2JsZW1zLgogICAgIC0gVW0sIGFwcGxpZWQgY29ycmVjdGx5IHRoaXMgdGltZSAoSSBob3BlKS4KICAgCjIwMDAtMTEtMDMgMTU6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogc2Vjb25kIHBhdGNoIGZyb20gZG91Z3dhcnogaW4gYnVnICMxMTcyNzMgdG8gZml4IHNtdXggcHJvYmxlbXMuCiAgIAoyMDAwLTExLTAyIDIyOjE5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMsIGlwLmMsIGlwQWRkci5jCiwgdGNwVGFibGUuYywgdWRwVGFibGUuYzoKCiAgIENsZWFuIHVwIHNvbWUgdW51c2VkIHZhcmlhYmxlcyBldGMuCiAgIAoyMDAwLTExLTAyIDIyOjE2ICBuYmEKCiAgICogTWFrZWZpbGUuaW46CgogICAtIE1ha2VmaWxlLmluOiBmaXggc29tZSAkKHNyY2RpcikgcmVmZXJlbmNlcyB3aGVuIHJ1bm5pbmcgb3V0c2lkZSBzb3VyY2UKICAgCjIwMDAtMTEtMDIgMjI6MTUgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBzbm1wdHJhcGQuYzogZml4IHRoZSBmb3JtYXQgc3RyaW5nIGZvciBmb3JtYXRfdHJhcAogICAKMjAwMC0xMS0wMiAyMjoxNCAgbmJhCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gTWFrZWZpbGUuaW46IHJlbW92ZSBzb21lIGR1cGxpY2F0ZXMgZnJvbSBmaWxlIGxpc3RzCiAgIAoyMDAwLTExLTAyIDIyOjEyICBuYmEKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIERvY3VtZW50IHRoZSAtT1ggb3V0cHV0IG9wdGlvbgogICAKMjAwMC0xMS0wMiAyMjoxMSAgbmJhCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgdGhlIHN5c3NlcnZpY2VzIHRva2VuCiAgIAoyMDAwLTExLTAyIDE2OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCk6IGFkZCB1Y2Qtc25tcC9wcm94eS4KICAgCjIwMDAtMTEtMDIgMTY6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtIChhZ2VudC9taWJncm91cC92ZXJzaW9udGFnKTogY2hhbmdlIGN2cyBhcmNoaXZlIHNpdGUgYW5kIHBhY2thZ2UgbmFtZS4KICAgCjIwMDAtMTEtMDIgMTM6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogUGF0Y2ggMTAyMjM5IGZyb20gZG91Z3dhcnogdG8gZml4IGEgcHJldmlvdXNseSBiYWQgc211eC5jIHBhdGNoLgogICAKMjAwMC0xMS0wMSAxNjozNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaAosIEZBUToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLnByZTEgKQogICAKMjAwMC0xMS0wMSAxNjoxNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0LAogICBUMTIycHJveHlzZXRmYWlsOgoKICAgLSAoVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQsIFQxMjJwcm94eXNldGZhaWwpOiBwcm94eSB0ZXN0IHN1aXRlLgogICAKMjAwMC0xMS0wMSAxNjowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwcm94eS5jLCBwcm94eS5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCk6CiAgICAgLSBtaW5pbWFsIFNFVCBzdXBwb3J0IGZvciB0aGUgcHJveHkgY29kZS4KICAgCjIwMDAtMTEtMDEgMTA6MjIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWw6CgogICAtIChUMTEyYWdlbnR4c2V0ZmFpbCk6IHRlc3QgZm9yIGFnZW50eCBzZXRzIHRoYXQgc2hvdWxkIGZhaWwgcHJvcGVybHkuCiAgIAoyMDAwLTEwLTMxIDE0OjMwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzoKCiAgIC0gdGNwVGFibGUuYzogcmVtb3ZlIGFuIHVubmVzY2Vzc2FyeSAjaW5jbHVkZQogICAKMjAwMC0xMC0zMSAxNDoyOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSBzbXV4LmM6IGZpeCB3cm9uZyB2YXJpYWJsZSBsZW5ndGgKICAgCjIwMDAtMTAtMzEgMTQ6MjUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gcHJvdG9jb2wuYzogZml4IHNvbWUgc3VzcGljaW91cyBsb29raW5nIGNvZGUKICAgCjIwMDAtMTAtMzEgMTQ6MjEgIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gbWFuL3NubXBkLmNvbmY6IGZpeCBhIHR5cG8KICAgCjIwMDAtMTAtMzEgMTI6NDEgIG5iYQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYywKICAgYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gbWliLmM6IGFkZCAtT1ggb3V0cHV0IGZvcm1hdCwgZm9yIGp1c3QgYW5vdGhlciB3YXkgb2YgcHJpbnRpbmcgaW5kaWNlcwogICAKMjAwMC0xMC0zMSAxMjoyNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICAtIGludGVyZmFjZS5jOiBhZGQgImludGVyZmFjZSIgY29uZmlnIGZvciB1bmd1ZXNzYWJsZSBpbnRlcmZhY2UgdHlwZS9zcGVlZAogICAKMjAwMC0xMC0zMSAxMjoyNSAgbmJhCgogICAqIGFwcHMvOiBzbm1wYnVsa2dldC5jLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMKLCBzbm1wZGYuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsCiAgIHNubXB0cmFwLmMsIHNubXB1c20uYywgc25tcHZhY20uYywgc25tcHdhbGsuYwo6CgogICAtIGFwcHMvKjogbWFrZSBzdXJlIHdlIHJlcG9ydCBhbnkgZXJyaW5kZXgvZXJyY29kZSBpbiB0aGUgcmVzcG9uc2UKICAgCjIwMDAtMTAtMzEgMTI6MDQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gcHJvdG9jb2wuYzogY2xlYW4gdXAgdW51c2VkIHZhcmlhYmxlcy4KICAgCjIwMDAtMTAtMzEgMTA6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogcGF0Y2ggIzEgZnJvbSBidWcgIzExNzI3MyBhcHBsaWVkIHRvIGZpeCBzbXV4IHNvY2tldCBwcm9ibGVtcy4KICAgCjIwMDAtMTAtMzEgMDk6MjQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgLSAoU05NUC54cyk6IHByaW50IGNvdW50ZXI2NCdzIGFzIHVuc2lnbmVkLgogICAKMjAwMC0xMC0zMSAwNzo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCwKICAgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oOgoKICAgLSAoYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgsIHN1YmFnZW50LmMsIHNubXBOb3RpZnlUYWJsZS5jLAogICAgIHNubXBOb3RpZnlUYWJsZS5oKTogUGF0Y2ggZnJvbSBEYXZlOgogICAgIC0gZml4IG5vdGlmaWNhdGlvbnMgZnJvbSBhZ2VudHggc3ViYWdlbnRzLgogICAKMjAwMC0xMC0zMCAyMjowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBmaXggYnVnICMxMTk3ODY6IG1ha2Ugc211eCByZXVzZSBzb2NrZXQgYWRkcmVzcy4KICAgCjIwMDAtMTAtMzAgMjE6NDIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBldmFsX3Rvb2xzLnNoLCB0ZXN0cy9UMTEwYWdlbnR4Z2V0LAogICB0ZXN0cy9UMTExYWdlbnR4c2V0OgoKICAgLSAoZXZhbF90b29scy5zaCwgdGVzdHMvVDExMGFnZW50eGdldCwgdGVzdHMvVDExMWFnZW50eHNldCk6CiAgICAgLSBmaXggYnVnICMzODIKICAgICAtIGZpeCBhZ2VudHggbm9uLXJvb3QgdGVzdHMgdG8gdXNlIC14IC90bXAvYmxhaC9hZ2VudHhfc29ja2V0LgogICAKMjAwMC0xMC0zMCAxMzo0NSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoc25tcGQuMS5kZWYpOiBmaXggYSB0eXBvIHBvaW50ZWQgb3V0IGJ5IENocmlzIFBlcHBlci4KICAgCjIwMDAtMTAtMzAgMTE6NDYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDExMWFnZW50eHNldDoKCiAgIC0gKHRlc3RzL1QxMTFhZ2VudHhzZXQpOiB0ZXN0IHNjcmlwdCBmb3IgQWdlbnRYIHNldCBzdXBwb3J0LgogICAKMjAwMC0xMC0zMCAxMTo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTEwYWdlbnR4Z2V0OgoKICAgLSAodGVzdHMvVDExMGFnZW50eGdldCk6IGhlYWRlciBjaGFuZ2VkIHRvIGluY2x1ZGUgdGhlIHdvcmQgR0VULgogICAKMjAwMC0xMC0zMCAxMToxMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gdWNkLXNubXAvdm1zdGF0XyosIG1lbW9yeV9mcmVlYnNkMi5jLCBkbG1vZC5jOiBNYWtlIHNzUmF3Q3B1IG9iamVjdHMgQ291bnRlcnMsCiAgIAlhbmQgYWRkIHN1cHBvcnQgZm9yICpCU0QgKGluY2x1ZGluZyBPcGVuQlNEKQogICAKMjAwMC0xMC0zMCAxMTowNyAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAtIENsZWFuIHVwIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoyMDAwLTEwLTMwIDExOjA0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDEwMWFnZW50eCwgVDExMGFnZW50eGdldDoKCiAgIC0gKHRlc3RpbmcvdGVzdHMvVDEwMWFnZW50eCwgdGVzdGluZy90ZXN0cy9UMTEwYWdlbnR4Z2V0KToKICAgICAtIHJlbmFtZWQgdGhlIGFnZW50eCB0ZXN0IHNjcmlwdC4KICAgCjIwMDAtMTAtMzAgMTE6MDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gKHRlc3RpbmcvZXZhbF90b29scy5zaCk6IGRvbid0IGFkZCAtYyBDT05GSUdGSUxFIGlmIGl0IGRvZXNuJ3QgZXhpc3QuCiAgIAoyMDAwLTEwLTMwIDEwOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoYWdlbnQvc25tcGQuYyk6IGVycm9yIHdoZW4gcGFyc2luZyAtWCBmb3Igbm9uLWFnZW50eCBidWlsZHMuCiAgIAoyMDAwLTEwLTI3IDExOjI5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoYXBwcy9zbm1wdHJhcGQuYyk6IGFkZCAtbyBmbGFnIHRvIGxvZyB0byBhIHBhcnRpY3VsYXIgZmlsZS4KICAgCjIwMDAtMTAtMjcgMTA6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHVzZSBta3N0ZW1wIGlmIGF2YWlsYWJsZS4KICAgCjIwMDAtMTAtMjcgMTA6NDAgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFNlYXJjaCBmb3IgbWtzdGVtcCgpLgogICAKMjAwMC0xMC0yNyAxMDowOCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdXBkYXRlIGxpbnV4IGtlcm5lbCBsaXN0IHRvIGluY2x1ZGUgMi4yLgogICAKMjAwMC0xMC0yNiAxNzo1MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgLSAoZXZhbF90b29scy5zaCk6IG1ha2UgU0tJUElGTk9UIGNoZWNrIHRoZSBtaWIgbW9kdWxlIGxpc3QgdG9vLgogICAKMjAwMC0xMC0yNiAxNzo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTAxYWdlbnR4OgoKICAgLSAodGVzdHMvVDEwMWFnZW50eCk6IEFnZW50WCBzdWJhZ2VudCB0ZXN0IGZvciBzaW1wbGUgZ2V0IHJldHJpZXZhbC4KICAgCjIwMDAtMTAtMjUgMTc6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogQWRkIC1YIG9wdGlvbiB0byBzbm1wZCB0byBydW4gYXMgYSBzdWJhZ2VudC4KICAgCjIwMDAtMTAtMjUgMTc6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBmaXggZm9yIGNhc2VzIHdoZW5lIGRlYnVnZ2luZyBpcyBhbHdheXMgb2ZmLgogICAKMjAwMC0xMC0xNyAxNTozMCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICAtIChjb25maWcuaC5pbik6IGF1dG9oZWFkZXIgcnVuCiAgIAoyMDAwLTEwLTE2IDAzOjEzICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAtIChhZ2VudHgvbWFzdGVyLmMpOiBTcGVjaWZ5IHRoZSBsZW5ndGggb2YgdGhlIChwc2V1ZG8tKWFuc3dlciB0byBhIHJlcXVlc3QuCiAgIAlUaGlzIGFsbG93cyBpdCB0byBiZSBjYWNoZWQgY29ycmVjdGx5IGZvciBtdWx0aS1wYXNzIFNFVCBoYW5kbGluZy4KICAgCjIwMDAtMTAtMTYgMDM6MTEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoYWdlbnR4L3N1YmFnZW50LmMpOiBEb24ndCBvdmVyd3JpdGUgc2F2ZWQgbW9kZSBpbmZvcm1hdGlvbgogICAJVGhpcyBzaG91bGQgaGVscCB3aXRoIChzb21lIG9mKSB0aGUgU0VUIGhhbmRsaW5nIHByb2JsZW1zLgogICAKMjAwMC0xMC0xNiAwMTo1NiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IERvbid0IGZyZWUgY2FsbGJhY2sgZGF0YSBzdHJ1Y3R1cmUuCiAgIAlUaGlzIGhvbGRzIGluZm9ybWF0aW9uIHRoYXQgbmVlZHMgdG8gcGVyc2lzdCBhY3Jvc3MgbXVsdGktcGFzcyByZXF1ZXN0cy4KICAgCUkgcmVhbGlzZSB0aGF0IHRoaXMgaW50cm9kdWNlcyBhIG1lbW9yeSBsZWFrLCBidXQgdGhpcyBpc24ndCB0aGUKICAgCWNvcnJlY3QgcGxhY2UgdG8gaGFuZGxlIHRoaXMuCiAgIAoyMDAwLTEwLTEyIDE0OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGFkZCAtSSB0byB0aGUgaGVscCBvdXRwdXQuCiAgIAoyMDAwLTEwLTEyIDE0OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9kbG1vZHMvOiBNYWtlZmlsZS5pbiwgZGxtb2RfbWliLmMsIGRsbW9kX21pYi5oCiwgZXhhbXBsZS5jLCBleGFtcGxlLmg6CgogICAtIChhZ2VudC9kbG1vZHMvKik6IHJlbW92ZSBvYnNvbGV0ZSB2ZXJzaW9ucwogICAKMjAwMC0xMC0xMiAxNDowOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlKTogdXBkYXRlLgogICAKMjAwMC0xMC0xMiAxNDowMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIE1hdHQgQnJhaXRod2FpdGU6CiAgICAgLSB1ZHAgY29uZmlndXJhdGlvbiBjaGFuZ2VzIHRvIGNoZWNrIGZvciBtaXNjIHN0cnVjdHVyZSBkZWZpbml0aW9ucy4KICAgCjIwMDAtMTAtMTIgMTM6NDggIGhhcmRha2VyCgogICAqIG1pYnMvVFVOTkVMLU1JQi50eHQ6CgogICAtIChUVU5ORUwtTUlCLnR4dCk6IFRVTk5FTC1NSUIgZGVmaW5pdGlvbi4KICAgCjIwMDAtMTAtMTIgMTM6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC5oOgoKICAgLSAodHVubmVsLmgpOiBjb25maWdfYWRkX21pYihUVU5ORUwtTUlCKS4KICAgCjIwMDAtMTAtMTIgMTM6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdHVubmVsLmgsIHR1bm5lbC90dW5uZWwuYywKICAgdHVubmVsL3R1bm5lbC5oOgoKICAgLSAodHVubmVsLmgsIHR1bm5lbC5jLCB0dW5uZWwuaCk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIGltcGxlbWVudCB0aGUgVFVOTkVMLU1JQi4KICAgCjIwMDAtMTAtMTAgMTQ6MzMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEZpeCB1bmxpbmtfdHJlZSBmb3IgInRvcCBsZXZlbCIgdHJlZSBub2Rlcy4KICAgCjIwMDAtMTAtMTAgMTE6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiByZXZlcnNlIGxpYnJhcnkgbGluayBvcmRlcmluZyBhZ2Fpbi4uLgogICAKMjAwMC0xMC0xMCAwOTowMyAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBSZW1vdmUgcmVsYXRpdmUgcGF0aCB0byBpbmNsdWRlIHN5c3RlbS5oLgogICAKMjAwMC0xMC0xMCAwNjo1MyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uaDoKCiAgIFJlbW92ZSB1bm5lZWRlZCBkZWNsIG9mIHZzbnByaW50ZiB3aXRob3V0IHN0ZGFyZy92YXJhcmdzIGRlY2wgb2YgdmFfbGlzdC4KICAgCjIwMDAtMTAtMTAgMDU6MTUgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5zdWI6CgogICBBcHBseSBwYXRjaCBmb3IgREVDIEFscGhhIEVWNiwgc3VwcGxpZWQgYnkgU2h1bW9uIEh1cXVlPHNodXF1ZUBpc2MudXBlbm4uZWR1PgogICAKMjAwMC0xMC0wOSAxNzowNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHBhdGNoIHRvIGZpeCBsZWFkaW5nIHplcm8gZXJyb3IgaW50cm9kdWNlZCBieSBjaGFuZ2VzIGZvciBzaHV0ZG93bl9taWIuCiAgIAoyMDAwLTEwLTA5IDE1OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgLSAoZGxtb2QuYyk6IG1pbm9yIGRlYnVnZ2luZyBvdXRwdXQgYWRkaXRpb25zLgogICAKMjAwMC0xMC0wOSAxNTo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1vdmUgYXV0b19ubGlzdCB0byBsaWJ1Y2RtaWJzLgogICAKMjAwMC0xMC0wOSAxMTo0MyAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICAtIChGQVEsIFJFQURNRSk6IGFkZCBuZXcgbWlycm9yLgogICAKMjAwMC0xMC0wOSAxMDoyNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCByZWFkX2NvbmZpZy5jLAogICBzbm1wX2FwaS5jOgoKICAgTW92ZSBjb25maWctIGFuZCBzdG9yZS1yZWxhdGVkIGNsZWFudXAgZnJvbSBzaHV0ZG93bl9taWIgdG8gc25tcF9zaHV0ZG93bi4KICAgCjIwMDAtMTAtMDkgMDI6MzYgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKG1pYklJL2ludGVyZmFjZXMuYyk6IFF1YWxpZnkgYW4gaW5kaXZpZHVhbCBpbnRlcmZhY2UgdHlwZSB0ZXN0IHN5bWJvbAogICAJKFFuOiBzaG91bGQgYW55L2FsbCBvZiB0aGUgb3RoZXJzIGJlIHF1YWxpZmllZCBhcyB3ZWxsPykKICAgCjIwMDAtMTAtMDYgMDg6NTYgIG1zbGlmY2FrCgogICAqIG1hbi9NYWtlZmlsZS5pbiwgbWFuL2RlZmF1bHRfc3RvcmUuMy5ib3QsCiAgIG1hbi9kZWZhdWx0X3N0b3JlLjMudG9wLCBtYW4vbWliX2FwaS4zLAogICBtYW4vc2h1dGRvd25fbWliLjMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgKLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvcmVhZF9jb25maWcuaDoKCiAgIFN1cHBvcnQgZm9yIHNodXRkb3duX21pYiAtIGNsZWFyaW5nIHRoZSBNSUIgdHJlZXMgYW5kIGNvbmZpZ3VyZWQgcmVnaXN0cmF0aW9ucy4KICAgCjIwMDAtMTAtMDYgMDU6MzMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBQbHVnIG1lbW9yeSBsZWFrIGZvciB1Y2Qtc3VwcGxpZWQgc2V0ZW52IG9uIFdpbjMyIHBsYXRmb3JtLgogICAKMjAwMC0xMC0wNiAwNDo1OCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoyMDAwLTEwLTA1IDIzOjQ1ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGZpeCBzaWxseSBidWcgaW4gbmV3IG9pZCBwYXJzZXIsIHdoZW4gbGVhdmluZyB0aGUgdHJlZSBhbmQgZ29pbmcKICAgCWludG8gc3ViLWlkcyB3ZSBrbm93IG5vdGhpbmcgYWJvdXQKICAgCjIwMDAtMTAtMDUgMTY6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgogICAgIC0gZml4IGxpYnJhcnkgZGVwZW5kZW5jeSBvcmRlci4KICAgCjIwMDAtMTAtMDQgMTc6NTkgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsICJleHRlbmRpbmciIHNubXBjb25mIGZpbGUuCiAgIAoyMDAwLTEwLTA0IDE0OjUwICBuYmEKCiAgICogRkFROgoKICAgLSBGQVE6IGZpeCBhIGNvbmZ1c2lvbiBiZXR3ZWVuICJvbWl0IiBhbmQgImluY2x1ZGUiCiAgIAoyMDAwLTEwLTA0IDEzOjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIC0gKHBhc3NfcGVyc2lzdC5jKTogb3BhcXVlcyBpbiBwYXNzX3BlcnNpc3QuCiAgIAoyMDAwLTEwLTA0IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICAtIChwYXNzLmMpOiBzdXBwb3J0IG9wYXF1ZSByZXR1cm4gdHlwZXMuCiAgIAoyMDAwLTEwLTA0IDA3OjE1ICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIvbWliLmM6CgogICBGaXggcGFyc2luZyBwcm9ibGVtIGZvciAtUGMgb3B0aW9uOyByZXBvcnRlZCBieSBDaHJpc3RpYW4gTWF1dG5lci4KICAgCjIwMDAtMTAtMDQgMDY6NTIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHF1YWxpZnkgc3ltYm9scyBmb3IgbmV3IGkvZiB0eXBlcy4KICAgCjIwMDAtMTAtMDQgMDY6NTEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIFRlcm1pbmF0ZSBsaXN0IHRvIGNvbXBpbGUgKGFkZCBhIGNvbW1hKS4KICAgCjIwMDAtMTAtMDQgMDA6MTggIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSBzbm1wdGFibGUuYzogaW5kZXggY29sdW1udCAoLUNpKSB3aWR0aCBub3QgcHJvcGVybHkgY29tcHV0ZWQgd2hlbiB1c2luZwogICAJR0VUQlVMSwogICAKMjAwMC0xMC0wMyAxODoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wZC5jCjoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBkLmMpOiBQYXRjaCBmcm9tIEpvaG4gTmF5bG9uOgogICAgIC0gYWRkIGEgcGFzc2JhY2sgYXJndW1lbnQgdG8gcmVnaXN0ZXJfcmVhZGZkKCkgY2FsbGJhY2tzLgogICAKMjAwMC0xMC0wMyAxODoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CiAgICAgLSBtb3ZlIGF1dG9fbmxpc3Quby9sbyB0byBsaWJ1Y2RhZ2VudCBzaW5jZSBzb21lIG1pYi1tb2R1bGVzIG5lZWQgaXQuCiAgIAoyMDAwLTEwLTAzIDE4OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IFBhdGNoIGZyb20gSm9jaGVuIEZyaWVkcmljaDoKICAgICAtIGZpeCBnZXRuZXh0IHJlcXVlc3RzIHRvIHN1YmFnZW50cy4KICAgCjIwMDAtMTAtMDMgMTc6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIGJldHRlciBpZnR5cGUgZ3Vlc3NpbmcuCiAgIAoyMDAwLTEwLTAzIDE2OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IFBhdGNoIGZyb20gRG91ZyBXYXJ6ZWNoYToKICAgICAtIGZpeCBvaWQgcGFyc2luZyBpbiB0cmFwcy4KICAgCjIwMDAtMTAtMDMgMTY6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogZXhhbXBsZS5jLCBleGFtcGxlLmg6CgogICAtIChleGFtcGxlLmMsIGV4YW1wbGUuaCk6IGV4YW1wbGUgb2YgY29kaW5nIGEgdjIgdHJhcCBmcm9tIHNvbWVvbmUgd2hvCiAgICAgSSBoYXZlIHZlcnkgc2FkbHkgZm9yZ290dGVuLiAgSSd2ZSBiZWVuIGxvb2tpbmcgZm9yIHRoYXQgbWVzc2FnZSBmb3IKICAgICBhIHdoaWxlIHRvIHByb3Blcmx5IGF0dHJpYnV0ZSB0aGlzIHBhdGNoLiAgU2lnaC4KICAgCjIwMDAtMTAtMDMgMTY6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFBhdGNoIGZyb20gRG91Z2xhcyBXYXJ6ZWNoYToKICAgICAtIHNubXBkIHJldHVybnMgd3JvbmcgZXJyb3IgaW5kZXggb24gU05NUHYxIHJlcXVlc3QgKEJVRyMzNzUpLgogICAKMjAwMC0xMC0wMyAwOToxMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgRml4IG51bGwgZGVyZWYgb2Ygc3MtPmNvbW11bml0eSwgcmVwb3J0ZWQgYnkgSmltIFBpY2tlcmluZy4KICAgCjIwMDAtMTAtMDMgMDg6MDMgIG1zbGlmY2FrCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL3NubXB2YWNtLmMsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXB2My5jLAogICBzbm1wbGliL3NucHJpbnRmLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgQ2FzdGluZyB0byBmaXggcHJvYmxlbXMgYnVpbGRpbmcgd2l0aCBhQ0MKICAgVGhhbmtzIHRvIE1hcmtrdSBMYXVra2FuZW4gPHBreUBtb3JlbWFnaWMuY29tPgogICAKMjAwMC0xMC0wMyAwNTo1OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFJlbW92ZSBjaGRpciB0byB1bmRvIGZpeCBmb3IgKEJVRyMyOTgpCiAgIAoyMDAwLTEwLTAyIDIxOjQxICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IEVzY2FwZSAiIGFuZCBcIGluIHRleHQgc3RyaW5ncy4KICAgCjIwMDAtMTAtMDIgMjE6MzkgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSBzbm1wX2xvZ2dpbmcuYzogI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KICAgCjIwMDAtMTAtMDIgMjE6MzggIG5iYQoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gTWFrZWZpbGUuaW46IGZpeCBhIG1pc3NpbmcgJChzcmNkaXIpIGR1cmluZyBtYWtlIGluc3RhbGwgb2YgbWliMmMKICAgCWNvbmZpZ3VyYXRpb24gZmlsZXMKICAgCjIwMDAtMTAtMDIgMjE6MzcgIG5iYQoKICAgKiBhcHBzL3NubXBzZXQuYzoKCiAgIC0gc25tcHNldC5jOiBEbyBhIGV4aXQoMikgZm9yIGZhaWx1cmUgaW4gc2V0dGluZyB0aGUgdmFyaWFibGUuCiAgIAoyMDAwLTEwLTAyIDIxOjM2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgLSBocl9zd3J1bi5jOiBhZGQgYSBzYWZlZ3VhcmQgZm9yIHZlcnkgbG9uZyBhcmd1bWVudCBsaXN0cy4KICAgCjIwMDAtMTAtMDIgMjE6MzQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIC0gaHJfZGlzay5jOiBBZGQgYSBuYW1lIHBhdHRlcm4gdGhhdCBtYXRjaGVzIHg4NiBJREUgZGlza3MgZm9yIFNvbGFyaXMuCiAgIAoyMDAwLTEwLTAyIDIxOjMzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgLSBrZXJuZWxfc3Vub3M1LmM6IG1ha2UgdGhlIGJ1ZmZlciBmb3IgU0lPQ0dJRkNPTkYgZHluYW1pYy4KICAgCjIwMDAtMTAtMDIgMTE6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgc25tcHVzbS5oLgogICAKMjAwMC0xMC0wMiAxMDo0OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6CiAgICAgLSBuZXcgb3B0aW9ucyBmb3IgaW5zdGFsbGluZyBjcmVhdGVkIGZpbGVzLgogICAgIC0gbW9yZSBjb21tZW50cyBpbiB0aGUgY29kZS4KICAgICAtIGFsbG93IHJlYWRpbmcgYSAuY29uZiBkaXJlY3RseSB0byB3cml0aW5nIGZvciBhdXRvLWNvbW1lbnRpbmcgLmNvbmYgZmlsZXMuCiAgICAgLSBtaXNjLgogICAKMjAwMC0xMC0wMiAxMDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC1sZXNzLgogICAKMjAwMC0xMC0wMiAwOTozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogcHJvdGVjdCBhZ2FpbnN0IDAgYnl0ZSBzdGF0UCBtYWxsb2NzLgogICAKMjAwMC0xMC0wMiAwOToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBUZWQgUnVsZToKICAgICAtIGZpeCBpbnRlcmZhY2VzLmMgZm9yIHZhcmlhYmxlIGxlbmd0aCBudW1iZXIgZm9ybWF0dGluZyBpbiAvcHJvYy9uZXQvZGV2LgogICAKMjAwMC0xMC0wMSAxNjo0MCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFBlciBOaWVscyByZWNvbW1lbmRhdGlvbiwgY2hkaXIgdG8gUEVSU0lTVEVOVF9ESVJFQ1RPUlkgKHJlOiBidWcgIzI5OCkKICAgCjIwMDAtMDktMzAgMDg6NTcgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBGaXggREVCVUdNU0dUTCBub3QgZm91bmQgZXJyb3IgZm9yIGJ1aWxkcyB3aXRob3V0IGRsbW9kIHN1cHBvcnQuCiAgIFRoYW5rcyB0byBzaW1vbkB6aWQudHV3ZWluLmFjLmF0CiAgIAoyMDAwLTA5LTI5IDE0OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQgKyAubyAtPiAubG8gZml4ZXMuCiAgIAoyMDAwLTA5LTI5IDE0OjI3ICBoYXJkYWtlcgoKICAgKiBtYWtlZmlsZWluZGVwZW5kLnBsOgoKICAgLSAobWFrZWZpbGVpbmRlcGVuZC5wbCk6IHNraXAgZW1wdHkgZGVwZW5kIGxpbmVzLgogICAKMjAwMC0wOS0yOSAxNDowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6IGRyb3AgZHVwbGljYXRlIGxpbmVzIGZyb20gcmVhZCBpbiBzbm1wZC5jb25mIGZpbGVzLgogICAKMjAwMC0wOS0yOSAxMzo0NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6IHNvcnQgdW5rbm93biBkaXJlY3RpdmVzIGJ5IGZpbGV0eXBlICh3aG9vcHMpLgogICAKMjAwMC0wOS0yOSAxMzo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6IHByaW50IG1vcmUgaW5mb3JtYXRpb24vY29tbWVudHMgdG8gdGhlIHNjcmVlbi4KICAgCjIwMDAtMDktMjkgMTE6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIC0gKHZhcl9zdHJ1Y3QuaCk6IGluY3JlYXNlIHJlZ2lzdHJhdGlvbiBuYW1lIGxlbmd0aCB0byAzMiBmcm9tIDE2IChCdWcgIzE3MikKICAgCjIwMDAtMDktMjkgMTE6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBpbmNvcnJlY3QgdmFsIGxlbmd0aCBwYXNzZWQgdG8gcGFyc2VfdW5zaWduZWRfaW50IChCdWcgIzMzOSkuCiAgIAoyMDAwLTA5LTI5IDExOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogZml4IEJ1ZyMzNTMgZm9yIGhvc3RuYW1lcyB0aGF0IGxvb2sgbGlrZSAiNXciLgogICAgIC0gZG9uJ3QgaW50ZXJwcmV0ZSB0aGVtIGFzIGFuIGlwLXBvcnQuCiAgIAoyMDAwLTA5LTI5IDEwOjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIC0gKHNubXBfYWxhcm0uYyk6IFBhdGNoIGZyb20gamJwbkBjYW1icmlkZ2Vicm9hZGJhbmQuY29tOgogICAgIC0gVGhlcmUgaXMgYSBwZWN1bGlhcml0eSBpbiB0aGUgc25tcF9hbGFybV91bnJlZ2lzdGVyIGZ1bmN0aW9uIGluCiAgICAgICBzbm1wbGliL3NubXBfYWxhcm0uYyB3aGljaCBjYW4gY2F1c2UgYSBzZWdtZW50YXRpb24gZmF1bHQuIChCdWcgIzM2NykKICAgCjIwMDAtMDktMjkgMTA6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIC0gKHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKICAgICAtIGZpeCB1c2Ugb2YgTlVMTCB0aW1lc3RhbXAgcG9pbnRlciBpbiBuZXcgcm93IGNyZWF0aW9uIChCdWcgIzM0NikKICAgCjIwMDAtMDktMjggMTQ6MzggIG5iYQoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgLSBtaWJfYXBpLjM6IGFkZCBhIGZldyBmdW5jdGlvbnMgdG8gdGhlIGhlYWRlcgogICAKMjAwMC0wOS0yOCAxNDoxNCAgbmJhCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIC0gc25tcHRyYXAuYzogcmVtb3ZlIGFuIGV4dHJhbmVvdXMgc25tcF9mcmVlX3BkdQogICAKMjAwMC0wOS0yOCAxNDoxMyAgbmJhCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBhZGRfbWliZGlyLjMsCiAgIGFkZF9tb2R1bGVfcmVwbGFjZW1lbnQuMywgZ2V0X21vZHVsZV9ub2RlLjMsIGluaXRfbWliLjMKLCBpbml0X21pYl9pbnRlcm5hbHMuMywgcHJpbnRfZGVzY3JpcHRpb24uMywKICAgcHJpbnRfbWliLjMsIHByaW50X29iamlkLjMsIHByaW50X3ZhbHVlLjMsCiAgIHByaW50X3ZhcmlhYmxlLjMsIHJlYWRfYWxsX21pYnMuMywgcmVhZF9taWIuMywKICAgcmVhZF9tb2R1bGUuMywgcmVhZF9tb2R1bGVfbm9kZS4zLCByZWFkX29iamlkLjMsCiAgIHNubXBfc2V0X21pYl93YXJuaW5ncy4zLCBzbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zOgoKICAgLSBtYW4vOiBhZGQgbWFuIGVudHJpZXMgZm9yIG1hbnkgbGlicmFyeSBmdW5jdGlvbnMgKHBvaW50aW5nIHRvIHNubXBfYXBpLjMpCiAgIAoyMDAwLTA5LTI4IDExOjA5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgcmVtb3ZlIHNlY29uZCBjb3B5IG9mIHN5cy9zb2NrZXQuaAogICAKMjAwMC0wOS0yNyAxMjo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaDoKCiAgIC0gKGRsbW9kLmgpOiBhZGQgdGhlIFVDRC1ETE1PRC1NSUIgdG8gdGhlIGRlZmF1bHQgbG9hZCBsaXN0LgogICAKMjAwMC0wOS0yNyAxMjo1NSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jCjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgdWNkX3NubXAuaCwgZGxtb2QuYyk6CiAgICAgLSBpbmNsdWRlIHVjZC1zbm1wL2RsbW9kIGJ5IGRlZmF1bHQuCiAgICAgLSBidWlsZCBjb2RlIG9ubHkgaWYgZGxvcGVuIGlzIGZvdW5kLgogICAKMjAwMC0wOS0yNyAwODozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgLSAoYXV0b19ubGlzdC5jKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIGRvbid0IHByaW50IGtlcm5lbCBiYXNlZCB3YXJuaW5nIG1lc3NhZ2VzIHdoZW4gLXIsIGV0YywgaXMgc3BlY2lmaWVkLgogICAKMjAwMC0wOS0yNiAxMzoxNyAgbXNsaWZjYWsKCiAgICogd2luMzIvY29uZmlnLmg6CgogICBGb3IgV2luMzIgQVBJOiBEZWNsYXJlIHN0cnRvdWwsIHZzbnByaW50ZjsgRW5hYmxlIHJldmVyc2UgQkVSIGVuY29kaW5nLgogICAKMjAwMC0wOS0yNiAxMzoxNSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIEluY2x1ZGUgc3lzdGVtLmggKHZzbnByaW50ZiBkZWNsKQogICAKMjAwMC0wOS0yNiAxMzoxNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IHVuc2lnbmVkIGNvbXBhcmlzb24uCiAgIAoyMDAwLTA5LTI2IDEzOjE0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IHVuc2lnbmVkIGNvbXBhcmlzb25zLgogICAKMjAwMC0wOS0yNiAxMzoxMyAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEZpeCBzaWduZWQgY29tcGFyaXNvbjsgUmVtb3ZlIHVudXNlZCB2YXIuCiAgIAoyMDAwLTA5LTI2IDEzOjEyICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgSW5jbHVkZSBnZXRvcHQuaCAob3B0YXJnIGRlY2wpOyBSZW1vdmUgdW51c2VkIHZhci4KICAgCjIwMDAtMDktMjYgMTM6MTEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIE1hdGNoIEluaXRpYWxpc2VfVGFibGUgYXJncyAzLDQgZGVjbGFyYXRpb25zIHdpdGggZGVmaW5pdGlvbnMuCiAgIAoyMDAwLTA5LTI2IDEyOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBtYWtlIHRoZSBhZG1pbnN0YXR1cyBST05MWS4KICAgCjIwMDAtMDktMjYgMTA6MjEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOiBjaG9tcCgkMSkgaXMgaWxsZWdhbC4KICAgCjIwMDAtMDktMjYgMDM6MDQgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIHdpbjMyL2NvbmZpZy5oOgoKICAgRXhwbGljaXRseSBidWlsZCBwYXRoIHRvIENBQ0hFRklMRSwgYXMgbm90IGFsbCBDIGNvbXBpbGVycyBzdXBwb3J0ICIjIyIuCiAgIAoyMDAwLTA5LTI1IDE2OjU2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgY2hkaXIganVzdCBiZWZvcmUgc2VuZGluZyBjb2xkc3RhcnQgdHJhcCwgdG8gYWxsb3cgZm9yIHBhdGhzIHRvIGJlCiAgIHJlc29sdmVkLgogICAKMjAwMC0wOS0yNSAwOTozNSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIGNhc2UgaW5zZW5zaXRpdmUgdG9rZW4gc2VhcmNoICh1c2Ugc3RyY2FzZWNtcCkuCiAgIAoyMDAwLTA5LTIyIDA2OjAzICBuYmEKCiAgICogbWlicy86IEhDTlVNLVRDLnR4dCwgSUYtSU5WRVJURUQtU1RBQ0stTUlCLnR4dCwKICAgSU5FVC1BRERSRVNTLU1JQi50eHQsIElQLUZPUldBUkQtTUlCLnR4dCwgc21pc3RyaXAKOgoKICAgIC1taWJzLzogTUlCIHVwZGF0ZXMKICAgCjIwMDAtMDktMjIgMDU6NTUgIG5iYQoKICAgKiBtaWJzLzogSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQsCiAgIElBTkFpZlR5cGUtTUlCLnR4dCwgTVRBLU1JQi50eHQsIE1ha2VmaWxlLmluLAogICBNYWtlZmlsZS5taWIsIE5FVFdPUkstU0VSVklDRVMtTUlCLnR4dCwgUkZDLTEyMTUudHh0CiwgUkZDMTE1NS1TTUkudHh0LCBSRkMxMjEzLU1JQi50eHQ6CgogICAtIG1pYnMvOiBNSUIgdXBkYXRlcwogICAKMjAwMC0wOS0yMiAwNTo1MiAgbmJhCgogICAqIG1hbi9zbm1wc2V0LjEsIG1hbi9zbm1wdHJhcC4xLCBzbm1wbGliL3NubXBfYXBpLmMKLCBhcHBzL3NubXBzZXQuYzoKCiAgIC0gc25tcF9hcGkuYzogc3VwcG9ydCBzZXR0aW5nIG9mIEJJVFMgdmFyaWFibGVzCiAgIAoyMDAwLTA5LTIyIDA1OjUwICBuYmEKCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICAtIHNubXBzdGF0dXMuYzogc2hvdyBlcnJvciBvYmplY3QKICAgCjIwMDAtMDktMjIgMDQ6MjkgIG5iYQoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIC0gc25tcHVzbS5jOiBpc3N1ZSBlcnJvciBtZXNzYWdlIHdpdGggb2JqZWN0CiAgIAoyMDAwLTA5LTIyIDA0OjI4ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uaDoKCiAgIC0gc3lzdGVtLmg6IHByb3ZpZGUgcHJvdG90eXBlcyBmb3Igc3RydG9sLCBzdHJ0b3VsLCBzbnByaW50ZiwgdnNucHJpbnRmCiAgIAoyMDAwLTA5LTIyIDA0OjI3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtIHZhY21fdmFycy5jOiBwcm90ZWN0IGFnYWluc3Qgb3ZlcnJ1biBvZiBzdHJpbmdzCiAgIAoyMDAwLTA5LTIxIDE2OjE3ICBuYmEKCiAgICogYXBwcy86IHNubXBidWxrZ2V0LmMsIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYwosIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLAogICBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLAogICBzbm1wd2Fsay5jOgoKICAgLSBhcHBzLzogZGlzcGxheSBmYWlsZWQgb2JqZWN0IHdoZW4gb25lIGlzIGlkZW50aWZpZWQgYnkgcGR1LT5lcnJpbmRleAogICAKMjAwMC0wOS0yMSAxNTo1OSAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXBkZi4xOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBkZi4xKTogZG9jdW1lbnQgdGhlIHNubXBkZiBjb21tYW5kLgogICAKMjAwMC0wOS0yMSAxNTo1MCAgbmJhCgogICAqIG1hbi9zbm1wdGFibGUuMSwgYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gc25tcHRhYmxlOiB1c2UgR0VUQlVMSyB0byBjb2xsZWN0IGRhdGEgd2hlbiBwcm90b2NvbCBhbGxvd3MgaXQuIEFkZAogICAJLUNCIG9wdGlvbnMgdG8gZmFsbCBiYWNrIHRvIEdFVE5FWFQuCiAgIAoyMDAwLTA5LTIxIDE1OjM4ICBuYmEKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMsCiAgIG1hbi9zbm1wY21kLjE6CgogICAtIG1pYi5jOiByZXdyaXRlIGluZGV4IGhhbmRsaW5nIGluIG9iamVjdCBpZHMsIHRvIGFsbG93IHN5bWJvbGljIGVudW1zLgogICAJQWRkIERhdmVzIHN1Z2dlc3RlZCAtT3Ygb3V0cHV0LiBBbHNvIGVuaGFjZSAtVGQgb3V0cHV0IHRvCiAgIAlkZXN0aW5ndWlzaCBPQkpFQ1QtVFlQRSBmcm9tIFRSQVAtVFlQRSwgTU9EVUxFLUlERU5USVRZIGV0Yy4KICAgCjIwMDAtMDktMjEgMTU6MzEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGRmLmM6CgogICAtIChzbm1wZGYuYyk6IHVzZSB0aGUgVUNELVNOTVAtTUlCJ3MgZHNrVGFibGUgaWYgdGhlCiAgICAgSE9TVC1SRVNPVVJDRVMtTUlCIGlzIGVtcHR5IG9yIGlmIC1DdSBpcyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KICAgCjIwMDAtMDktMjEgMTU6MjggIG5iYQoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gcGFyc2UuYzogYWRkIGFiaWxpdHkgdG8gY29sbGVjdCBWQVJJQUJMRVMvT0JKRUNUUyBmb3IgVFJBUC1UWVBFCiAgIAlhbmQgTk9USUZJQ0FUSU9OLVRZUEUuIElnbm9yZSBmaWxlcyB0aGF0IGRvZXMgbm90IGhhdmUgREVGSU5JVElPTlMKICAgCWFzIHRoZWlyIHNlY29uZCB0b2tlbi4gRW5oYW5jZSAtVGQgb3V0cHV0IGFjY29yZGluZ2x5LgogICAKMjAwMC0wOS0yMSAxNToyMiAgbmJhCgogICAqIHNubXBsaWIvc25wcmludGYuYywgc25tcGxpYi9zdHJ0b2wuYywKICAgc25tcGxpYi9zdHJ0b3VsLmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbgosIGNvbmZpZy5oLmluLCBjb25maWd1cmU6CgogICAtIHNubXBsaWI6IGFkZCBzbnByaW50Ziwgc3RydG9sLCBzdHJ0b3VsIGZvciBzeXN0ZW1zIHRoYXQgZG9uJ3QgaGF2ZSB0aGVtCiAgIAoyMDAwLTA5LTIxIDE1OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5oOgoKICAgLSAobWliLmgpOiBhZGQgZmFrZSBzdHJ1Y3QgZGVmaW5pdGlvbiBmb3IgZW51bXMKICAgCjIwMDAtMDktMjEgMTQ6MTYgIG5iYQoKICAgKiBzbm1wbGliL3N0cnRvdWwuYzoKCiAgIGZpbGUgc3RydG91bC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOS0yMSAxNDoxNiAgbmJhCgogICAqIHNubXBsaWIvc3RydG9sLmM6CgogICBmaWxlIHN0cnRvbC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOS0yMSAxNDoxNiAgbmJhCgogICAqIHNubXBsaWIvc25wcmludGYuYzoKCiAgIGZpbGUgc25wcmludGYuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDktMjEgMDY6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmg6CgogICAtIChtaWIuYywgbWliLmgpOiBtYWtlIHNwcmludCogbm9uLXN0YXRpYyAoYnVnICMxMzIpLgogICAKMjAwMC0wOS0yMSAwMDoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAtIChzbm1wX2FsYXJtLmMpOiBQYXRjaCBmcm9tIEpvaG4gTmF5bG9uOgogICAgIC0gZml4IGJ1ZyAjMzYwIHdoZXJlIGEgY2xpZW50IG1pZ2h0IHJlbW92ZSBhIGFsYXJtIHJlZ2lzdHJhdGlvbgogICAgICAgZHVyaW5nIGEgY2FsbCB0byB0aGUgYWxhcm0gZnVuY3Rpb24gYW5kIGludmFsaWRhdGUgdGhlIHBvaW50ZXIKICAgICAgIGJlaW5nIHVzZWQgYnkgdGhlIGNhbGxpbmcgZnVuY3Rpb24uCiAgIAoyMDAwLTA5LTIxIDAwOjIyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogLS1kaXNhYmxlLXNoYXJlZCBieSBkZWZhdWx0IGluIGN2cyBjaGVja291dHMuCiAgIAoyMDAwLTA5LTIwIDE3OjMxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogc3BhY2UgaW5kZW50IHRva2VucyBpZiAjIHByZXBlbmRlZC4KICAgCjIwMDAtMDktMjAgMTc6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKTogbnVsbCBpbnRlcm5hbCBoZWxwIGxpbmVzLgogICAKMjAwMC0wOS0yMCAxNzoyOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgbW9uaXRvcik6IGRpc2ssIHByb2MsIGFuZCBsb2FkIGNoZWNrcy4KICAgCjIwMDAtMDktMjAgMTc6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgLSAodmFjbV92YXJzLmMsIHVzbVVzZXIuYywgc25tcHYzLmMpOiBOVUxMIG91dCBoZWxwIG1lc3NhZ2VzIGZvciAuY29uZgogICAgIHRva2VucyB0aGF0IGFyZSBlaXRoZXIgaW50ZXJuYWwgb3Igbm8gbG9uZ2VyIHRoZSBzdGFuZGFyZCB3YXkgb2YKICAgICBkb2luZyB0aGluZ3MuCiAgIAoyMDAwLTA5LTIwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZXhwb3J0IFNOTVBDT05GUEFUSCB0byBNYWtlZmlsZXMKICAgCjIwMDAtMDktMjAgMTc6MjUgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogbWlub3IgY29ycmVjdGlvbiBvZiB0YWJsZSBuYW1lLiAgTW9yZSBlcnJvcnMgZXhpc3QuCiAgIAoyMDAwLTA5LTIwIDE2OjQ2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBkZWJ1Z2dpbmcsIG1pYnMsIG91dHB1dCk6IG1vcmUgc25tcC5jb25mIHNubXBjb25mIGNvbmZpZyBmaWxlcy4KICAgCjIwMDAtMDktMjAgMTU6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIGF1dGhvcHRzKTogc25tcC5jb25mIHN1cHBvcnQgZm9yIGJhc2ljIGF1dGhlbnRpY2F0aW9uIG9wdGlvbnMuCiAgIAoyMDAwLTA5LTIwIDE0OjU1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKToKICAgIC0gZG9uJ3QgZm9yY2UgcmVhZGluZyBvZiAvdXNyL2xvY2FsL3NoYXJlL3NubXBkLmNvbmYuCiAgICAtIGRvbid0IHByaW50IHVua25vd24gZGlyZWN0aXZlIGNvbW1lbnQgaGVhZGVycyBpZiB0aGVyZSBhcmVuJ3QgYW55LgogICAKMjAwMC0wOS0yMCAxNDo0NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6IHNwYWNlIHRoaW5ncyBvdXQgb24gdGhlIHNjcmVlbiBhIGJpdCBiZXR0ZXIuCiAgIAoyMDAwLTA5LTIwIDE0OjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBzbm1wY29uZjoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wY29uZik6IGluc3RhbGwgc25tcGNvbmYgYW5kIGl0cyB2YXJpb3VzIHN1cHBvcnQgZmlsZXMuCiAgIAoyMDAwLTA5LTIwIDE0OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBkbyByZXZlcnNlIHYzIGhlYWRlciBlbmNvZGluZyB3aXRoIGEgc3RhdGljIGJ1ZmZlci4KICAgCjIwMDAtMDktMjAgMTE6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBtaXNjIHVwZGF0ZXMgYW5kIGltcHJvdmVtZW50cy4KICAgCjIwMDAtMDktMjAgMDg6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBGaXggZHluYW1pYyBhcnJheSAgcHJvYmxlbSBwb2ludGVkIG91dCBieSBKb2NoZW4gS21pZXRzY2guCiAgIAoyMDAwLTA5LTIwIDAyOjA1ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gKGFnZW50eC9wcm90b2NvbC5jKTogRG9uJ3QgaW5jbHVkZSBjb250ZXh0IHN0cmluZ3Mgb24gUERVcyB0aGF0IHNob3VsZG4ndCBoYXZlIHRoZW0KICAgCShUaGFua3MgdG8gUGVkcm8gUGVyZWlyYSBmb3IgaWRlbnRpZnlpbmcgdGhpcykKICAgCjIwMDAtMDktMTkgMTc6MDYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiByZWFkIG9sZGVyIGNvbmZpZ3VyYXRpb24gZmlsZXMgaW4gYW5kIG1lcmdlIHdpdGggbmV3IHJlc3VsdHMuCiAgIAoyMDAwLTA5LTE5IDE0OjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcHJpbnQgcGR1IHR5cGUgb24gZGVidWdnaW5nIGR1bXAgb3V0cHV0LgogICAKMjAwMC0wOS0xOSAxNDoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgc25tcC5jOgoKICAgLSAoYXNuMS5jLCBzbm1wLmMpOiByZXZlcnNlIGVuY29kaW5nIHN1cHBvcnQgZm9yIHNwZWNpYWxpemVkIG9wYXF1ZQogICAgIGRhdGF0eXBlcyAoZmxvYXQsIGRvdWJsZSwgZXRjKS4KICAgCjIwMDAtMDktMTkgMTQ6MTUgIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQ6CgogICAtIChhY2xvY2FsLm00KTogZG9jdW1lbnQgbWFjcm9zIGEgYml0IG1vcmUgZm9yIHN1Ym1pc3Npb24gdG8gdGhlCiAgICAgYXV0b2NvbmYgbWFjcm8gbGlicmFyeS4KICAgCjIwMDAtMDktMTkgMDg6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBGaXggYnVnICMyOTUgcmVwb3J0ZWQgYnkgSm9obiBXaGl0bmV5IGpvaG53QGFpaW5ldC5jb20KICAgCjIwMDAtMDktMTggMTQ6NTkgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJzLmgsIHNubXBkLmg6CgogICAtIChzbm1wX3ZhcnMuaCwgc25tcGQuaCk6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CiAgICAgLSBtb3ZlIGdldFN0YXRQdHIgZGVmaW5pdGlvbiB0byBwcm9wZXIgLmggZmlsZS4KICAgCjIwMDAtMDktMTggMTQ6NTUgIG1zbGlmY2FrCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBGaXggYnVnICMzNDcgcmVwb3J0ZWQgYnkgZGFzX2Rlbml6QHlhaG9vLmNvbTogbWFrZSBzYmluIGluc3RhbGwgZGlyCiAgIAoyMDAwLTA5LTE0IDA5OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgogICAgIC0gYWRkIGEgcG9ydCBzcGVjaWZpY2F0aW9uIHNubXBkLmNvbmYgdG9rZW4uCiAgIAoyMDAwLTA5LTE0IDA4OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIChhZ2VudF90cmFwLmMpOiBpZ25vcmUgb3V0cHV0IG9mIGdldGhvc3RieW5hbWUgZm9yIHRyYXAgc2Vzc2lvbiBhZGRpbmcuCiAgIAoyMDAwLTA5LTEzIDE1OjA2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogbmV3IHV0aWxpdHkgdG8gZ2VuZXJhdGUgLmNvbmYgZmlsZXMgYnkgcHJvbXB0aW5nIHRoZQogICAgIHVzZXIgd2l0aCBxdWVzdGlvbnMuCiAgIAoyMDAwLTA5LTA4IDEzOjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgLSAocHJveHkuYyk6IFBhdGNoIGZyb20gU2NvdHQgTGlwY29uOgogICAgIC0gZml4IHByb3h5IHN1cHBvcnQgZm9yIG51bGwgbGVuZ3RoIHN0cmluZ3MuCiAgIAoyMDAwLTA5LTA3IDEwOjEyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgLSBmaXggb3BlbnNzbCBjaGVja3MuCiAgICAtIHJ1biBhdXRvaGVhZGVyLgogICAKMjAwMC0wOS0wNSAxMzozNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdXNtLmMsCiAgIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wd2Fsay5jOgoKICAgTWlub3IgdG91Y2h1cHMgdG8gYnVpbGQgb24gV2luMzIgcGxhdGZvcm0uCiAgIAoyMDAwLTA5LTA1IDEzOjM0ICBtc2xpZmNhawoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHNubXBkZi8uY3ZzaWdub3JlLCBzbm1wZGYvc25tcGRmLmRzcCwKICAgc25tcHZhY20vLmN2c2lnbm9yZSwgc25tcHZhY20vc25tcHZhY20uZHNwOgoKICAgV2VsY29tZSB0aGUgbmV3ZXN0IHVjZC1zbm1wIGFwcGxpY2F0aW9ucyB0byB0aGUgV2luMzIgYnVpbGRzLgogICAKMjAwMC0wOS0wNCAxNToxOSAgbmJhCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gcmVhZF9jb25maWcuYzogcmVzdGFydCBlcnJvcmNvdW50IHdoZW4gcmVsb2FkaW5nIGNvbmZpZwogICAKMjAwMC0wOS0wNCAxNToxMiAgbmJhCgogICAqIG1hbi9zbm1wbmV0c3RhdC4xOgoKICAgLSBzbm1wbmV0c3RhdC4xOiBhbGlnbiBtYW4gcGFnZSB3aXRoIHByb2dyYW0KICAgCjIwMDAtMDktMDQgMTU6MTAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIC0gaXBBZGRyLmM6IHJlbW92ZSBhIGJhZCBudG9obCBmb3IgT3BlbkJTRAogICAKMjAwMC0wOS0wNCAxNTowOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliaW5jbC5oLCBtaWJJSS90Y3AuYywKICAgbWliSUkvdGNwVGFibGUuYywgbWliSUkvdWRwLmMsIG1pYklJL3VkcFRhYmxlLmM6CgogICAtIG1pYmluY2wuaCwge3RjLHVkfXB7LFRhYmxlfS5jOiBlbnN1cmUganVzdCBvbmUgaW5jbHVkZSBvZiBzb2NrZXQuaAogICAJdG8gbWFrZSB1bnByb3RlY3RlZCBpbmNsdWRlIGZpbGUgaW4gVWx0cml4IGhhcHB5CiAgIAoyMDAwLTA5LTA0IDE1OjA1ICBuYmEKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIGNvbmZpZ3VyZS5pbjogbWFrZSAtLXdpdGhvdXQtbGlid3JhcCB3b3JrCiAgIAoyMDAwLTA5LTAxIDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdF9zb2xhcmlzMi5jLAogICB2bXN0YXRfc29sYXJpczIuaDoKCiAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoOgogICAgIC0gdXBkYXRlZCBjb2RlLgogICAKMjAwMC0wOS0wMSAxMTo1NCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogU2NvdHQgTGlwY29uIG5vdGVkIHRoYXQgc25tcHRyYXBkIGRvZXNuJ3Qgc3VwcG9ydCAtVC4KICAgCjIwMDAtMDgtMzAgMTM6MjggIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IGZpeCBsb29wIGluIHN5bnRheCBlcnJvciBpbiBERUZWQUwgY2xhdXNlLiBBbHNvIGZpeCByZWFkaW5nCiAgIAlvZiAuaW5kZXggZmlsZSB3aXRoIGZpbGVuYW1lcyBjb250YWluaW5nIGJsYW5rcy4KICAgCjIwMDAtMDgtMjggMTM6NDMgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBtaW5vciBzeW50YXggZ2xpdGNoIGluIFBPRCBkb2NzCiAgIAoyMDAwLTA4LTI0IDAxOjU1ICBkYXZlcwoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSAoYXBwcy9zbm1wdGFibGUuYyk6IEZpeCBidWcgd2l0aCBkaXNwbGF5aW5nIGhlYWRlci1sZXNzIGluZGV4ZWQgdGFibGVzCiAgIAkoVGhhbmtzIHRvIEVybmllIE1pbGxlcikKICAgCjIwMDAtMDgtMTkgMTE6MjkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQXBwbHkgcGF0Y2ggZnJvbSA8Q2hyaXN0b3BoLk1hbW1pdHpzY2hAdHUtY2xhdXN0aGFsLmRlPgogICB0byBmaXggc2lnbiBpbiBhc25fcmJ1aWxkX3Vuc2lnbmVkX2ludCAuCiAgIAoyMDAwLTA4LTE4IDA0OjE4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmg6CgogICByZXN0b3JlIHByZXZpb3VzIHZlcnNpb247IG9wZW5ic2QsIHNvbGFyaXMsIGxpbnV4IGJ1aWxkIG9rLgogICAKMjAwMC0wOC0xOCAwMzo0NCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgcmVtb3ZlIHVudXNlZCBwcmludGYgYXJndW1lbnQgcGFzc2VkIHRvIHNubXBfbG9nLgogICAKMjAwMC0wOC0xOCAwMzoyMCAgbXNsaWZjYWsKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgZml4IGJ1ZyAyNTMgd2l0aCBwYXRjaCBzdXBwbGllZCBieSBKZWZmcmV5IEhvbmlnIDxqY2hAYnNkaS5jb20+CiAgIAoyMDAwLTA4LTE4IDAyOjUyICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyMHNubXB2M2dldCwgVDAyMXNubXB2M2dldG5leHQ6CgogICBmaXggYnVnIDMxOCAtIHRlc3QgOSBhbmQgMTAgZXhwbGljaXRseSBjcmVhdGUgdGhlIHRlc3QgdXNlci4KICAgCjIwMDAtMDgtMTcgMTM6NDIgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgIFRoZSBiYXR0bGUgdG8gdHJpbSBuZXdsaW5lcyBjb3JyZWN0bHkgY29udGludWVzLi4ucmVkdWNlIGxlbmd0aCBieSBvbmUuCiAgIAoyMDAwLTA4LTE2IDE1OjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcHVzbS5jOgoKICAgLSAoc25tcF9hcGkuYywgc25tcHVzbS5jKTogZml4IHZhcmlvdXMgZW5jcnlwdGlvbi9kZWNyeXB0aW9uIHByb2JsZW1zLgogICAKMjAwMC0wOC0xNiAxNTowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgLSAoc2NhcGkuYyk6IGZpeCBwYWRkaW5nIHNpemUgaW4gZW5jcnlwdGlvbi4KICAgCjIwMDAtMDgtMTYgMTQ6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOiBzZXQgcGxhaW50ZXh0IGxlbmd0aCBhdCB0aGUgZW5kIG9mIHNjX2RlY3J5cHQuCiAgIAoyMDAwLTA4LTE1IDA1OjA4ICBtc2xpZmNhawoKICAgKiBGQVE6CgogICBGaXggYnVnIDI4NCB3aXRoIGEgc2hvcnQgZXhwbGFuYXRpb24gYWJvdXQgc25tcC5jb25mLgogICAKMjAwMC0wOC0xNSAwMzowMCAgbXNsaWZjYWsKCiAgICogSU5TVEFMTDoKCiAgIEZpeCBidWcgMjgzIC0gdW1hc2sgMDIyLCBtYWtlIGluc3RhbGwuIFRoYW5rcyB0byBjc2FiYS50b3RoQHN6ay5ia2UuaHUKICAgCjIwMDAtMDgtMTUgMDA6MDggIG5iYQoKICAgKiBhcHBzLzogc25tcHRlc3QuYyAoVjQtMS0xLXBhdGNoZXMuMiksIHNubXB0ZXN0LmM6CgogICAtIHNubXB0ZXN0LmM6IG92ZXJoYXVsIGlucHV0X3ZhcmlhYmxlLCBraWxsIG5ld2xpbmUKICAgCjIwMDAtMDgtMTQgMjI6MDUgIG5iYQoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSAoVjQtMS0xLXBhdGNoZXMuWzEsMCwwXSksCiAgIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSBhY2xvY2FsLm00LCBjb25maWd1cmUuaW46IGZpeGVzIGZvciBjb25maWd1cmUgLS1zaWxlbnQKICAgCjIwMDAtMDgtMTQgMTc6MjcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIC0tZW5hYmxlLXNpbGVudC1saWJ0b29sIHRvIG1ha2UgTmllbHMgc21pbGUuCiAgIAoyMDAwLTA4LTE0IDE3OjE3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcHYzLmMsIHNubXB2My5oOgoKICAgLSAoc25tcHYzLmMsIHNubXB2My5oKTogaW1wbGVtZW50IGEgbmV3IChkZWZhdWx0KSBlbmdpbmVJRCB0eXBlIGJhc2VkCiAgICAgb24gYSByYW5kb20gbnVtYmVyLCBhbmQgYSB0aW1lc3RhbXAuCiAgICAgLSBJIHRoaW5rIGl0IHdvbid0IGludmFsaWRhdGUgZXhpc3RpbmcgaW5zdGFsbGF0aW9ucyAoaGVoKS4KICAgCjIwMDAtMDgtMTQgMTY6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgIC0gaWYgLURyZWFkX2NvbmZpZywgdGhlbiBwcmludCBldmVuIG5vLWhlbHAgdG9rZW5zIGFuZCBhICogZm9yIFBSRU1JQiBvbmVzLgogICAKMjAwMC0wOC0xNCAxNDo1MSAgbmJhCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfdHJhcC5jLAogICBhZ2VudC9taWJfbW9kdWxlcy5jLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsIGFwcHMvc25tcGJ1bGtnZXQuYwosIHNubXBsaWIvZ2V0b3B0LmgsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wdXNtLmM6CgogICAtIChtYW55KTogcG9ydGFiaWxpdHkgZml4ZXMgZm9yIE9wZW5CU0QgMi42LCBGcmVlQlNEIDQuMSwgVWx0cml4IDQuNQogICAKMjAwMC0wOC0xNCAxMTozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgLSAoa2V5dG9vbHMuYyk6IFBhdGNoIGZyb20gWWlnYWwgSG9jaGJlcmc6CiAgICAgLSByZW1vdmUgdW51c2VkIGNvbnRleHQgdmFyaWFibGVzLgogICAKMjAwMC0wOC0xNCAxMToyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgLSAoc2NhcGkuYyk6IFBhdGNoIGZyb20gWWlnYWwgSG9jaGJlcmc6CiAgICAgLSByZW1vdmUgZHVwbGljYXRlIGtleWxlbmd0aCBjaGVjay4KICAgCjIwMDAtMDgtMTEgMTM6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBvcHRpbWl6ZSByZXZlcnNlIGVuY29kaW5nIG9mIHZhcmJpbmRsaXN0cy4KICAgCjIwMDAtMDgtMTEgMDg6NTUgIGhhcmRha2VyCgogICAqIGxvY2FsL1JFQURNRS5taWIyYzoKCiAgIC0gKFJFQURNRS5taWIyYyk6IFBhdGNoIGZyb20gSmFuIEFsZnJlZCBTYW5kdmVuOgogICAgIC0gdHlwb3MuCiAgIAoyMDAwLTA4LTExIDA2OjA1ICBuYmEKCiAgICogYXBwcy86IHNubXBidWxrZ2V0LmMsIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYwosIHNubXBkZi5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCiAgIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywKICAgc25tcHRlc3QuYywgc25tcHRyYXAuYywgc25tcHVzbS5jLCBzbm1wdmFjbS5jCiwgc25tcHdhbGsuYzoKCiAgIC0gYXBwcy8qOiBzbm1wYXBwIC1WIHNob3VsZCBub3QgZ2l2ZSB0aGUgdXNhZ2UgbWVzc2FnZSB0b28uCiAgIAoyMDAwLTA4LTExIDAwOjQzICBuYmEKCiAgICogbWFuLzogc25tcHRyYXBkLjggKFY0LTEtMS1wYXRjaGVzLjIpLCBzbm1wdHJhcGQuODoKCiAgIC0gc25tcHRyYXBkLjg6IGZpeCB0eXBvLiBUaGFua3MgdG8gRy4gQWxsZW4gTW9ycmlzIElJSSA8Z2FtM0BhY20ub3JnPgogICAKMjAwMC0wOC0xMCAyMzoyMyAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogcHJlZGVmaW5lIE9iamVjdFN5bnRheCwgQXBwbGljYXRpb25TeW50YXgsIFNpbXBsZVN5bnRheCBhbmQKICAgCU9iamVjdE5hbWUKICAgCjIwMDAtMDgtMTAgMTY6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjOgoKICAgLSAoTWFrZWZpbGUuaW4sIG1pYjJjKToKICAgICAtIG1ha2UgbWliMmMgbG9vayBpbiAkKHNubXBsaWJkaXIpIGZvciAuY29uZiBmaWxlcy4KICAgICAtIGluc3RhbGwgbWliMmMgYW5kIC5jb25mIGZpbGVzLgogICAKMjAwMC0wOC0xMCAxNDozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYzoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYyk6IGR5bmFtaWNhbGx5IGRlY2lkZSB0byByZXZlcnNlL2ZvcndhcmQgZW5jb2RlLgogICAKMjAwMC0wOC0xMCAxNDozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgLSAoZXh0ZW5zaWJsZS5jKTogZml4IENSIHRlcm1pbmF0aW9uLgogICAKMjAwMC0wOC0xMCAxNDoyNSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGRlZmluZSByZXZlcnNlIGVuY29kaW5nIG9uIGJ5IGRlZmF1bHQuCiAgIAoyMDAwLTA4LTEwIDEzOjAyICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGZpeCBidWcgMjUyIGZvciBjb25maWd1cmUgYW5kIHN5cy9zb2NrZXQuaCBvbiBCU0QvT1MgNC4yCiAgIAoyMDAwLTA4LTEwIDA5OjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBhc24xLmgsIHNubXAuYywgc25tcC5oCiwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHVzbS5jLAogICBzbm1wdXNtLmgsIHNubXB2My5jOgoKICAgLSAoYXNuMS5jLCBhc24xLmgsIHNubXAuYywgc25tcC5oLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdXNtLmMsCiAgICAgc25tcHVzbS5oLCBzbm1wdjMuYyk6CiAgICAgLSBpbXBsZW1lbnQgcmV2ZXJzZSBlbmNvZGVkIG1lc3NhZ2VzLgogICAgICAgLSBUT0RPOiBjbGVhbiB1cCwgcnVuLXRpbWUgZGV0ZXJtaW5hdGlvbiBvZiB3ZWF0aGVyIHRvIHVzZSBpdCBvciBub3QuCiAgIAoyMDAwLTA4LTA5IDE1OjQwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBGaXggYnVnIDMzMSB3aXRoIHBhdGNoIGluIHBhcnQgcHJvdmlkZWQgYnkgSm9obiBOYXlsb24gPGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbT4KICAgCjIwMDAtMDgtMDkgMTU6MjcgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhcHBzL3NubXB2YWNtLmM6CgogICBubyAvLyBjb21tZW50LCBpbiBkZWZlcmVuY2UgdG8gbm9uLUFOU0ktQyBjb21waWxlcnMuCiAgIAoyMDAwLTA4LTA5IDA3OjIxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgLSBocl9zd3J1bi5jOiBmaXggdGhlIFJ1blBhdGggZm9yIHN3YXBwZWQgb3V0IExpbnV4IHByb2Nlc3MKICAgCjIwMDAtMDgtMDkgMDc6MjEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfcHJpbnQuYyAoVjQtMS0xLXBhdGNoZXMuMiksIGhyX3ByaW50LmMKOgoKICAgLSBocl9wcmludC5jOiBmaXggYSBkZWJ1ZyB0b2tlbgogICAKMjAwMC0wOC0wOSAwNDo0NCAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSBtYWluLmM6IGZpeCBwYXJzaW5nIG9mIC12CiAgIAoyMDAwLTA4LTA4IDEwOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICAtIChleHRlbnNpYmxlLmMpOiBzdHJpcCBuZXdsaW5lcy4KICAgCjIwMDAtMDgtMDggMDg6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IFBhdGNoIGZyb20gU2NvdHQgTGlwY29uOiBzdGFydCBvcHRpbmQgYXQgMSBub3QgMC4KICAgICAtCiAgIAoyMDAwLTA4LTA4IDA2OjM2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEZpeCBidWcgIzI5NSAoZnJlZSAqc2VjU3RhdGVSZWYgYmVmb3JlIGFsbG9jYXRpbmcgYW5vdGhlciBvbmUpLgogICAKMjAwMC0wOC0wOCAwNjowNSAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgYWdlbnQvc25tcGQuYzoKCiAgIGZpeCBidWcgIzI5OCByZXBvcnRlZCBhbmQgcGF0Y2ggc3VwcGxpZWQgYnkgQ29ucmFkIExpbmsgPGNsaW5rQG1sLmNvbT4KICAgCjIwMDAtMDgtMDggMDQ6NTkgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIHNubXBfYXBpLmM6IGZpeCBhIGJ1c3kgbG9vcCB3aGVuIGFsYXJtIHF1ZXVlIGlzIGFjdGl2ZSB3aXRob3V0IGFueQogICAJb3V0c3RhbmRpbmcgcmVxdWVzdHMKICAgCjIwMDAtMDgtMDggMDQ6NDcgIG5iYQoKICAgKiBtYW4vc25tcHNldC4xOgoKICAgLSBzbm1wc2V0LjE6IGNhbm5vdCBzZXQgY291bnRlcnMKICAgCjIwMDAtMDgtMDggMDQ6NDIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeGVkIChCVUcjMzMyKSB1c2luZyBwYXRjaCBzdWJtaXR0ZWQgYnkgSm9obiBOYXlsb24gPGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbT4KICAgQWxzbyBjb25zb2xpZGF0ZWQgY29tbWVudHMgYWJvdXQgdGhlIGZvdXIgc2VuZCBQRFUgZnVuY3Rpb25zLgogICAKMjAwMC0wOC0wNyAwNjo1OSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGxlYWsgaW4gcmVwb3J0YWJsZSBlcnJvcnMgZm91bmQgYnkgSm9obiBOYXlsb24gPGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbT4KICAgCjIwMDAtMDgtMDcgMDU6NDggIG5iYQoKICAgKiBtYW4vYWRkX21vZHVsZV9yZXBsYWNlbWVudC4zOgoKICAgZmlsZSBhZGRfbW9kdWxlX3JlcGxhY2VtZW50LjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDA1OjQ4ICBuYmEKCiAgICogbWFuL3JlYWRfb2JqaWQuMzoKCiAgIGZpbGUgcmVhZF9vYmppZC4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9zbm1wX3NldF9taWJfd2FybmluZ3MuMzoKCiAgIGZpbGUgc25tcF9zZXRfbWliX3dhcm5pbmdzLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3NubXBfc2V0X3NhdmVfZGVzY3JpcHRpb25zLjM6CgogICBmaWxlIHNubXBfc2V0X3NhdmVfZGVzY3JpcHRpb25zLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3JlYWRfbW9kdWxlX25vZGUuMzoKCiAgIGZpbGUgcmVhZF9tb2R1bGVfbm9kZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9yZWFkX21vZHVsZS4zOgoKICAgZmlsZSByZWFkX21vZHVsZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9yZWFkX21pYi4zOgoKICAgZmlsZSByZWFkX21pYi4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9yZWFkX2FsbF9taWJzLjM6CgogICBmaWxlIHJlYWRfYWxsX21pYnMuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcHJpbnRfdmFyaWFibGUuMzoKCiAgIGZpbGUgcHJpbnRfdmFyaWFibGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcHJpbnRfdmFsdWUuMzoKCiAgIGZpbGUgcHJpbnRfdmFsdWUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcHJpbnRfb2JqaWQuMzoKCiAgIGZpbGUgcHJpbnRfb2JqaWQuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcHJpbnRfbWliLjM6CgogICBmaWxlIHByaW50X21pYi4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9wcmludF9kZXNjcmlwdGlvbi4zOgoKICAgZmlsZSBwcmludF9kZXNjcmlwdGlvbi4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9pbml0X21pYi4zOgoKICAgZmlsZSBpbml0X21pYi4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9pbml0X21pYl9pbnRlcm5hbHMuMzoKCiAgIGZpbGUgaW5pdF9taWJfaW50ZXJuYWxzLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL2dldF9tb2R1bGVfbm9kZS4zOgoKICAgZmlsZSBnZXRfbW9kdWxlX25vZGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vYWRkX21pYmRpci4zOgoKICAgZmlsZSBhZGRfbWliZGlyLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA0IDE3OjEzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogYWRkIGluIHRoZSBub3RpZmljYXRpb24gZ3JvdXAgYnkgZGVmYXVsdC4KICAgCjIwMDAtMDgtMDQgMTc6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi5oOgoKICAgLSAobm90aWZpY2F0aW9uLmgpOiBub3RpZmljYXRpb24gbWliIHdyYXBwZXIuCiAgIAoyMDAwLTA4LTA0IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOgogICAgLSBpbml0aWFsaXplIG9wdGluZCBiZWZvcmUgY2FsbGluZyBnZXRvcHQuCiAgICAtIGRlYnVnZ2luZyBvdXRwdXQuCiAgIAoyMDAwLTA4LTA0IDE2OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgLSAocHJveHkuYyk6IHByb3Blcmx5IHNldCB0aGUgZmlyc3QgKHVudXNlZCkgYXJndW1lbnQgdG8gc25tcF9wYXJzZV9hcmdzKCkuCiAgIAoyMDAwLTA4LTA0IDE2OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwKICAgbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgLSAoYWdlbnRfdHJhcC5jLCBzbm1wTm90aWZ5VGFibGUuaCwgc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICAgIHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIHRhcmdldC5jKToKICAgICAtIGlmIHVzaW5nIHRoZSBzbm1wTm90aWZpY2F0aW9uVGFibGUsIGluc2VydCBub24tdjEgdHJhcCBzaW5rcyBpbnRvIGl0LgogICAKMjAwMC0wOC0wNCAwNToyNiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSkouaDoKCiAgIC0gKG1pYmdyb3VwL21pYkpKLmggbWliZ3JvdXAvbWliSkovKik6IEV4cGVyaW1lbnRhbCByZS13cml0ZSBvZiBtaWJJSQogICAKMjAwMC0wOC0wNCAwNToyMSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaDoKCiAgIC0gKG1pYmdyb3VwL3V0aWxfZnVuY3MuW2NoXSk6IE5ldyAnY2FjaGVkIHRhYmxlJyByb3V0aW5lcwogICAKMjAwMC0wOC0wMyAwODozNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGJ1ZyAjMzI1IGlkZW50aWZpZWQgYnkgSm9obiBOYXlsb24gPGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbT4KICAgCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKICAgKiBtaWJzL0lQLUZPUldBUkQtTUlCLnR4dDoKCiAgIGZpbGUgSVAtRk9SV0FSRC1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wMyAwMToyNCAgbmJhCgogICAqIG1pYnMvSU5FVC1BRERSRVNTLU1JQi50eHQ6CgogICBmaWxlIElORVQtQUREUkVTUy1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wMyAwMToyNCAgbmJhCgogICAqIG1pYnMvSUYtSU5WRVJURUQtU1RBQ0stTUlCLnR4dDoKCiAgIGZpbGUgSUYtSU5WRVJURUQtU1RBQ0stTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKICAgKiBtaWJzL0hDTlVNLVRDLnR4dDoKCiAgIGZpbGUgSENOVU0tVEMudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wMiAwNzowNiAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgU2lsZW50IHJ1bm5pbmcgZ3JlcCByZXN1bHRzLgogICAKMjAwMC0wOC0wMiAwNjoxMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IEJVRyAjMjkxOiBhbGxvdyAiMjU1LjI1NS4yNTUuMjU1IiBmb3IgdGV4dCBpbnB1dCB0byBBU05fSVBBRERSRVNTCiAgIAoyMDAwLTA4LTAyIDA1OjIwICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwosIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBhcHBzL3NubXB0ZXN0LmMKOgoKICAgRml4IChCVUcjMzIzKTogZnJlZSBQRFUgd2hlbiBzbm1wX3NlbmQgZmFpbHMuCiAgIAoyMDAwLTA4LTAyIDA1OjA2ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgQWRkIC1wIG9wdGlvbiBvbmNlIHRvIHNubXBkIGFyZ3MuCiAgIEZpbmQgTUlCRElSUyBpbiBzb3VyY2UgdHJlZS4KICAgRml4IGNvbmRpdGlvbiB0byBzZXQgUEFUSC4KICAgCjIwMDAtMDgtMDEgMjM6MzAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgLSBpcC5jOiBPbmUgbW9yZSAjaWYgc29sYXJpcwogICAKMjAwMC0wOC0wMSAyMzoxOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICAtIGlwLmM6IEEgYmFkICNpZiAuLi4gdGhlIHByb3BlciBkZWZpbmUgdG8gdGVzdCBmb3IgU29sYXJpcyBpcyBzb2xhcmlzMgogICAKMjAwMC0wOC0wMSAxNjo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogcmVtb3ZlIHVudXNlZCB1c2FnZSgpIHR5cGVkZWYuCiAgIAoyMDAwLTA4LTAxIDE2OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHByb3h5LmMsIHByb3h5Lmg6CgogICAtIChwcm94eS5jLCBwcm94eS5oKTogLVdhbGwgd2FybmluZyBmaXhlcy4KICAgCjIwMDAtMDgtMDEgMTY6MzkgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IG1lbnRpb24gbmV3ZXIgdmVyc2lvbnMgb2YgU29sYXJpcy4KICAgCjIwMDAtMDgtMDEgMTY6MzcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvVEVTVENPTkYuc2guaW4sCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoVEVTVENPTkYuc2gsIFRFU1RDT05GLnNoLmluKTogcmV2ZXJ0IHRvIG5vbi1jb25maWdlZCBURVNUQ09ORi4KICAgCjIwMDAtMDgtMDEgMTY6MzEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIC0gKE1ha2VmaWxlLnRvcCk6IG1ha2UgdW4tcXVpZXQuCiAgIAoyMDAwLTA4LTAxIDEwOjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wLXVjZC5zaDoKCiAgIC0gKHNubXAtdWNkLnNoKTogZml4IGJ1ZyAjMjk3IChkb24ndCBraWxsIGdyZXAgYW5kIGluaXQgc2NyaXB0IGludm9jYXRpb25zKS4KICAgCjIwMDAtMDgtMDEgMDQ6NDUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgRml4IGJ1ZyBmb3VuZCBieSBZaWdhbCBIb2NoYmVyZyA8aG9jaGJlcmdAZG1oc29mdHdhcmUuY29tPgogICAKMjAwMC0wOC0wMSAwMzozMCAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6IEZpeCBidWlsZGluZyBvZiBjb21wbGV0ZSBPSUQKICAgCSh3b3JrIHdpdGggdGhlIG5hbWUgb3JpZ2luYWxseSByZWdpc3RlcmVkLAogICAJIG5vdCBhbnkgc3Vic2VxdWVudCBkaXZpc2lvbiBib3VuZGFyaWVzKQogICAKMjAwMC0wNy0zMSAyMDowOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgUmVtb3ZlIGR1cGxpY2F0ZSBmb3BlbiBmcm9tIHNoZWxsX2NvbW1hbmQuCiAgIAoyMDAwLTA3LTMxIDE4OjU4ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMsIFRFU1RDT05GLnNoLmluOgoKICAgKFRFU1RDT05GLnNoLmluKSAtIHNldCBNSUJESVJTIHRvIHNpYmxpbmcgb2YgdGhlIHRlc3RpbmcgZGlyZWN0b3J5LgogICAoUlVOVEVTVFMpIC0gYWxsb3cgYmluYXJpZXMgdG8gYmUgaW4gdGhlICItRCBiaW5kaXIiIGRpcmVjdG9yeS4KICAgCjIwMDAtMDctMzEgMTU6MjUgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2guaW46CgogICBEb250IGFkanVzdCBQQVRIIGlmIFNOTVBfUEFUSCBpcyBzZXQuCiAgIERvbnQgYWRkIHBvcnQgc3BlYyB0byBTTk1QX0ZMQUdTIGlmIG9uZSBpcyBhbHJlYWR5IHNwZWNpZmllZC4KICAgCjIwMDAtMDctMzEgMTM6NDkgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIFJlbW92ZSB0ZXN0IGRpcmVjdG9yaWVzIGZvciBza2lwcGVkIHRlc3RzLgogICBLZWVwIHRlc3QgZGlyZWN0b3JpZXMgZm9yIGZhaWxlZCB0ZXN0cy4KICAgS2VlcCB0ZXN0IGRpcmVjdG9yaWVzIGZvciBwYXNzZWQgdGVzdHMgd2hlbiAiUlVOVEVTVFMgLXMiIGlzIHNwZWNpZmllZC4KICAgU2VhcmNoIGNvbmZpZy5oIGF0IHRoZSByb290IG9mIHRoZSBidWlsZCB0cmVlLgogICAKMjAwMC0wNy0zMSAxMTozMiAgbXNsaWZjYWsKCiAgICogY29uZmlnLmd1ZXNzOgoKICAgTWVyZ2UgZnJvbSBhdXRvbWFrZS0xLjQ6IEFkZCBmb3IgUmhhcHNvZHksIE9wZW5TdGVwLCBDcmF5LVQzLCBTWC00LCBTWC01CiAgIAoyMDAwLTA3LTMxIDExOjMxICBtc2xpZmNhawoKICAgKiBjb25maWcuc3ViOgoKICAgTWVyZ2UgZnJvbSBhdXRvbWFrZS0xLjQ6IEFkZCBmb3IgUmhhcHNvZHksIE9wZW5TdGVwCiAgIAoyMDAwLTA3LTMwIDE3OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IG5vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLCB0YXJnZXQvdGFyZ2V0LmMsCiAgIHRhcmdldC90YXJnZXQuaDoKCiAgIC0gKHNubXBOb3RpZnlUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuaCwgdGFyZ2V0LmMsIHRhcmdldC5oKToKICAgICAtIGltcGxlbWVudCB1bnRlc3RlZCBmaWx0ZXJpbmcgZnVuY3Rpb24gY2FsbGJhY2sgZm9yIHRhcmdldCBzZWFyY2hlcy4KICAgICAtIGRlbGV0ZSB1bnVzZWQgZnVuY3Rpb24uCiAgICAgLSBtaXNjIHdhcm5pbmcgZml4ZXMuCiAgIAoyMDAwLTA3LTMwIDE3OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMKLCBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmgsCiAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5RmlsdGVyVGFibGUuaDoKCiAgIC0gKHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oLAogICAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5RmlsdGVyVGFibGUuaCk6CiAgICAgLSBtb3JlIG5vdGlmaWNhdGlvbiB0YWJsZSBpbXBsZW1lbnRhdGlvbnMgZm9yIGZpbHRlcmluZy4KICAgICAgIC0gRnJhbWV3b3JrIGNvbXBsZXRlLCBmdW5jdGlvbmFsaXR5IGlzIG5vdC4KICAgCjIwMDAtMDctMzAgMTc6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaDoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4LmgpOgogICAgIC0gaGFuZGxlIGltcGxpZWQgb2JqZWN0cy4KICAgICAtIGltcGxlbWVudCBoZWFkZXJfY29tcGxleF9nZXQoKSBmb3Igc2ltcGxlIGRhdGEgcmV0cmlldmFscy4KICAgCjIwMDAtMDctMjggMDY6MTQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFyX3JvdXRlLmMgKFY0LTEtMS1wYXRjaGVzLjIpLAogICB2YXJfcm91dGUuYzoKCiAgIENsZWFudXAgaW5jbHVkZSBoZWFkZXJzIHRvIGZpeCBidWcgIzMwNy4gVGhhbmtzIHRvIHNhbmR2ZW5AcmVzZWFyY2guYXR0LmNvbS4KICAgCjIwMDAtMDctMjcgMTU6MTkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIFZpbmF5IE1vaHRhOgogICAgIC0gYWNjZXNzX2hvc3RzKCkgcmVxdWlyZXMgYW4gYXJndW1lbnQgc28gZmFrZSBvbmUuCiAgIAoyMDAwLTA3LTI3IDE1OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE1hdHRpYXMgQmFydGhlbDoKICAgICAtIGZpeCBmb3IgaW50ZXJmYWNlcyB3aXRob3V0IGFuIGF0dGFjaGVkIElQIGFkZHJlc3MuCiAgIAoyMDAwLTA3LTI3IDE0OjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdF9zb2xhcmlzMi5jLAogICB2bXN0YXRfc29sYXJpczIuaDoKCiAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoOgogICAgIC0gc3VwcG9ydCByYXcgdmFsdWVzLgogICAKMjAwMC0wNy0yNyAwODoyNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOiBwcmludCBlcnJvcnMgdG8gc3RkZXJyLgogICAKMjAwMC0wNy0yNyAwNjoyMCAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogRml4IGEgbWlzc2luZyBpbml0aXphdGlvbiB3aGVuIG9uZSBNSUIgaG9sZHMgTU9EVUxFLUNPTVBMSUFOQ0UKICAgCWZvciBhbm90aGVyCiAgIAoyMDAwLTA3LTI3IDAxOjM1ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBzbm1wX2FwaS5jOiBGaXggcGR1LT5jb21tdW5pdHkgYmVpbmcgb3ZlcndyaXR0ZW4gd2l0aCBzZXNzaW9uLT5jb21tdW5pdHkKICAgCVRoYW5rcyB0byBEYW5hIFAuIENvb2sgPGRjb29rQGNhYmxldHJvbi5jb20+CiAgIAoyMDAwLTA3LTI2IDIyOjI4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIFVwZGF0ZSBmb3Igd2luMzIgYnVpbGQ6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzIGFuZCB1bnB1Ymxpc2hlZCBtZXRob2QuCiAgIAoyMDAwLTA3LTI2IDA4OjUzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBtaXNjIGNoYW5nZXMgYW5kIGltcHJvdmVtZW50cy4KICAgCjIwMDAtMDctMjYgMDg6NTMgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CiAgICAgLSB0cmFuc2xhdGVPYmogaGFjay4KICAgCjIwMDAtMDctMjYgMDg6NDkgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CiAgICAgLSByZW1vdmUgYmVnaW5uaW5nIG5ld2xpbmUgaW4gZGVzY3JpcHRpb24gY2xhdXNlcy4KICAgCjIwMDAtMDctMTcgMTE6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5oOgoKICAgLSAodm1zdGF0X3NvbGFyaXMyLmgpOiBjb25maWdfcmVxdWlyZSBrZXJuZWxfc3Vub3M1LgogICAKMjAwMC0wNy0xMiAwOToyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXB2My5jKTogY29weSBrZXkgbGVuZ3RoIGFzIHdlbGwgYXMgdGhlIGtleSB3aGVuIHVzaW5nIHRoZSBzYW1lCiAgICAgcHJpdmFjeSBrZXkgYXMgdGhlIGF1dGgga2V5LgogICAKMjAwMC0wNy0xMSAxMzozNCAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUsIFNOTVAucG0sIFNOTVAueHMsIHQvbWliLnQKOgoKICAgYWRkZWQgcmFuZ2VzIGZpZWxkIHRvIFNOTVA6Ok1JQiBoYXNoCiAgIAoyMDAwLTA3LTExIDEwOjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAtIG1ha2UgbnVsbCBQUkVGSVggdmFyaWFibGUgcG9zc2libGUgc28gbm9uLWRvdC1sZWFkaW5nIG9pZHMgYXJlIGFjY2VwdGVkLgogICAKMjAwMC0wNy0xMSAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHVzbS5oOgoKICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHVzbS5jLCBzbm1wdXNtLmgpOgogICAgIC0gbWFrZSB0aGUgc2Vzc2lvbiBwb2ludGVycyBpbmRpY2F0ZSB3ZWF0aGVyIG9yIG5vdCB0aGV5IGFyZQogICAgICAgImF1dGhvcml0YXRpdmUiLCBtZWFuaW5nIHdlYXRoZXIgdGhleSBzaG91bGQgYmUgbGVhcm5pbmcgZW5naW5lSURzCiAgICAgICBvciByZXBvcnRpbmcgb24gdGhlbS4KICAgICAtIHBhc3MgdGhlIHJlY2VpdmVkLXBhY2tldCBzZXNzaW9uIHBvaW50ZXIgaW50byBzbm1wdjNfcGFyc2UgYW5kCiAgICAgICB1c21fcHJvY2Nlc3NfaW5fbXNnKCkgdG8gdXNlIHRoaXMgZmxhZy4KICAgICAtIHNldCBpc0F1dGhvcmF0YXRpdmUgPSB0cnVlIGluIHRoZSBhZ2VudCwgYW5kIHVua25vd24gaW4gdGhlIHNubXB0cmFwZC4KICAgCjIwMDAtMDctMTEgMDg6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYyk6IG1ha2UgdGhlIGNyZWF0ZVVzZXIgdG9rZW4gYWNjZXB0IGFuIGVuZ2luZWlkICgtZSBBUkcpIHRvIHVzZS4KICAgCjIwMDAtMDctMDcgMDE6MzcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKG1pYklJL2ludGVyZmFjZXMuYyk6IFJlY29nbmlzZSBUb2tlbiBSaW5nIGludGVyZmFjZXMgdW5kZXIgTGludXgKICAgCjIwMDAtMDctMDYgMTc6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBwcmludCBnZW5lcmljIHN0cmluZ3Mgd2hlbiBzYXZpbmcgcGVyc2lzdGVudCBkYXRhCiAgICAgd2hlcmUgcG9zc2libGUuICAoSUUsIGNoZWNrIGZvciBwcmludGFibGUgY2hhcmFjdGVycyBiZWZvcmUgcHJpbnRpbmcgaGV4KS4KICAgCjIwMDAtMDctMDYgMTc6MDUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCwgVEVTVENPTkYuc2guaW46CgogICAtIChURVNUQ09ORi5zaCwgVEVTVENPTkYuc2guaW4pOiBtb3ZlZCBURVNUQ09ORi5zaCB0byBURVNUQ09ORi5zaC5pbgogICAgIGFuZCBoYXZlIHRoZSBNSUJTIHBhdGggdmFyaWFibGUgYnVpbHQgYnkgY29uZmlndXJlIHNpbmNlIGl0IGtub3dzCiAgICAgd2hlcmUgdGhlIHJvb3QgbGV2ZWwgc291cmNlIGRpcmVjdG9yeSBpcy4KICAgCjIwMDAtMDctMDYgMTc6MDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsIHNubXBsaWIvYXNuMS5oCiwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGhlYWRlcl9jb21wbGV4LmMsIHNubXBOb3RpZnlUYWJsZS5jLAogICAgIGFzbjEuaCwgc25tcF9hcGkuYyk6CiAgICAgLSBpbXBsZW1lbnQgSU1QTElFRCBpbmRleCBoYW5kbGluZy4KICAgICAtIG1ha2UgdGhlIGNyZWF0ZWQgVVNNIGVudHJpZXMgc2V0IHRoZSBzdG9yYWdlVHlwZSBhbmQgUm93U3RhdHVzCiAgICAgICBhcHByb3ByaWF0ZWx5LgogICAKMjAwMC0wNy0wNiAxNzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IGJldHRlciBjb21tZW50cyBvbiBhIGNvdXBsZSBvZiBmdW5jdGlvbiBkZWZpbml0aW9ucy4KICAgCjIwMDAtMDctMDUgMDc6NTAgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGZpeCAoQlVHIzI5MCkgZ3JhY2VmdWxseSBoYW5kbGUgc29tZSBQRFVzIHRoYXQgaGF2ZSBubyB2YXJpYWJsZXMuCiAgIAoyMDAwLTA3LTA1IDA2OjQ2ICBtc2xpZmNhawoKICAgKiBSRUFETUUud2luMzI6CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAwLTA3LTA0IDEwOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdXNtLmg6CgogICAtIChzbm1wX3ZhcnMuYywgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAtIHJlbW92ZSBsYXN0IHJlbW5hbnRzIG9mIHRoZSAiaW5pdGlhbCIgdXNlci4KICAgICAtIG1ha2UgZW5naW5laWQgcmVwb3J0cyBmcm9tIHRoZSB1c20gaGFwcGVuIGJhc2VkIG9uIHRoZSByZXBvcnQgZmxhZwogICAgICAgaW4gdGhlIG1lc3NhZ2UgZmxhZy4KICAgICAgIC0gTm90ZTogdGhpcyBpcyBhIGJpZyBpc3N1ZSB3aXRoIHRoZSBTTk1QdjMgcHJvdG9jb2wgc3BlY3MuICBUaGUKICAgICAgICAgc3BlY2lmaWNhdGlvbnMgbm90ZSB0aGF0IHlvdSBzZW5kIGEgcmVwb3J0IGlmIHlvdSBhcmUKICAgICAgICAgImF1dGhvcml0YXRpdmUiLCBidXQgZG9uJ3QgZGVzY3JpYmUgaG93IHRvIGtub3cgaWYgeW91IGFyZQogICAgICAgICBhdXRob3JpdGF0aXZlIG9yIG5vdC4gIEZvciBzaXR1YXRpb25zIGxpa2UgcHJveGllcyBhbmQKICAgICAgICAgbm90aWZpY2F0aW9uIHJlY2VpdmVycywgd2hlcmUgeW91IGFyZSBzb21ldGltZXMgYXV0aG9yaXRhdGl2ZQogICAgICAgICBhbmQgb3RoZXIgdGltZXMgeW91J3JlIG5vdCwgdGhpcyBpcyBwcm9ibGVtYXRpYy4gIFRoZSBTTk1QdjMKICAgICAgICAgQVNJcyBkbyBub3QgcGFzcyBpbiBlbm91Z2ggaW5mb3JtYXRpb24gdG8gZGV0ZXJtaW5lIHRoaXMgYW5kIHRoZQogICAgICAgICBXRyBoYXMgcHJvY2xhaW1lZCB0aGF0IHRoZSBBU0lzIGFyZSBub3QgbWVhbnQgdG8gYmUgdXNlZCBhcyBhbgogICAgICAgICBBUEksIGJ1dCB0aGUgaW5pdGlhbCB3b3JrIGRvbmUgYnkgTkFJIGFuZCBUSVNMYWJzIGF0dGVtcHRlZCB0bwogICAgICAgICBpbXBsZW1lbnQgdGhlIFVTTSBzdWNoIHRoYXQgaXQgd291bGQgYmUgYSAicmVmZXJlbmNlIiByZWxlYXNlCiAgICAgICAgIGFuZCBoZW5jZSB3ZSBmb2xsb3dlZCB0aGUgc3BlY2lmaWNhdGlvbnMgdG8gdGhlIGxldHRlciBhbmQgdXNlZAogICAgICAgICB0aGUgQVNJcyBhcyBBUElzIGp1c3QgdG8gc2VlIGlmIHdlIGNvdWxkLiAgV2UgY291bGQgcHJldmlvdXNseQogICAgICAgICBvbmx5IGJlY2F1c2Ugd2Ugd2VyZSBhbHdheXMgZWl0aGVyIGF1dGhvcml0YXRpdmUgb3IKICAgICAgICAgbm9uLWF1dGhvcml0YXRpdmUuICBTaW5jZSBiZWdpbm5pbmcgdG8gd29yayBvbiBwcm94eSBhbmQgdGhlCiAgICAgICAgIG5vdGlmaWNhdGlvbiBtaWIsIHRoaXMgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlLiAgRm9yIHRoZSByZWNvcmQsIEkKICAgICAgICAgYW0gaGVyZWJ5IGNoYW5naW5nIHRoZSBpbml0aWFsIHJlZmVyZW5jZSByZWxlYXNlIGluIHN1Y2ggYQogICAgICAgICBtYW5uZXIgYXMgaXQgbm8gbG9uZ2VyIGNvbmZvcm1zIGV4YWN0bHkgdG8gdGhlIFNOTVB2MyBBU0lzLiAgU28KICAgICAgICAgYXMgbm90IHRvIGNvbmZ1c2UgYW55b25lLCB0aGlzIGlzIGFuIGVudGlyZWx5IHRoZW9yZXRpY2FsIGlzc3VlCiAgICAgICAgIHdpdGggcmVzcGVjdCB0byB0aGUgU05NUHYzIHNwZWNpZmljYXRpb24gYW5kIGlzIHBlcmZlY3RseSBsZWdhbAogICAgICAgICB0byBkby4gIFRob3VnaCBJIGNvdWxkIGVhc2lseSBnbyBvbiwgSSdsbCBzdGVwIG9mZiBteSBzb2FwIGJveCBub3cuCiAgIAoyMDAwLTA3LTAzIDEwOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF90cmFwLmMsCiAgIGFnZW50X3RyYXAuaCwgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwKICAgbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgLSAoYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oLCBzbm1wTm90aWZ5VGFibGUuYywKICAgICBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIHRhcmdldC5jKToKICAgICAtIEFkZCBhIG5ldyBjYWxsYmFjayBmb3Igc2VuZGluZyB0cmFwcy4KICAgICAgIC0gTWFrZSB0aGUgbm90aWZpY2F0aW9uIG1pYiB1c2UgaXQuCiAgICAgLSBtYWtlIHRoZSB0YXJnZXQgbWliIGdlbmVyYXRlIG1vcmUgcGVyc2lzdGVudCBzZXNzaW9ucy4KICAgICAtIE1ha2UgdGhlIG5vdGlmaWNhdGlvbiBtaWIgYWx3YXlzIGFzayB0aGUgdGFyZ2V0IG1pYiBmb3IgYSBzZXNzaW9uCiAgICAgICBsaXN0LCB3aGljaCBpcyBub3cgY2FjaGVkIGRpcmVjdGx5IGJ5IHRoZSB0YXJnZXQgbWliLgogICAKMjAwMC0wNy0wMyAwODozOCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jCiwgc3lzdGVtLmM6CgogICBmaXggKEJVRyMyNjIpIC0gKHNvbWUpIHN0YXRlbWVudHMgdGhhdCBjYW5ub3QgYmUgcmVhY2hlZC4KICAgCjIwMDAtMDctMDMgMDc6NTUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIGZpeCAoQlVHIzI4NykKICAgCjIwMDAtMDctMDMgMDY6MTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgZml4IGJ1ZyAjIDI4OQogICAKMjAwMC0wNi0zMCAwNDo0NSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgc2ltcGxpZnkgbWVtb3J5IGFsbG9jYXRpb24gaW4gcmVhZF9jb25maWdfcmVhZF97b2N0ZXRfc3RyaW5nLCBvYmppZH0KICAgCjIwMDAtMDYtMzAgMDA6NDcgIG5iYQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIHJlYWRfY29uZmlnLmM6IEZpeCBhIG1pc3NpbmcgaW5pdGlhbGl6YXRpb24gZm9yIGtleXdvcmRzIHdpdGhvdXQgaGVscAogICAKMjAwMC0wNi0yOCAyMzozNyAgbmJhCgogICAqIG1pYnMvOiBJRi1NSUIudHh0LCBNYWtlZmlsZS5taWI6CgogICAtIElGLU1JQi50eHQ6IHVwZ3JhZGUgdG8gUkZDIDI4NjMKICAgCjIwMDAtMDYtMjggMDA6NTggIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLAogICBjb25maWd1cmUsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gaW50ZXJmYWNlcy5jLCBjb25maWd1cmU6IElyaXggNi41IGhhcyBpZmlfYmF1ZHJhdGUuaWZzX3ZhbHVlCiAgIAoyMDAwLTA2LTI3IDAxOjM0ICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICAtIG1haW4uYzogYmV0dGVyIG9wdGlvbiBwYXJzaW5nLgogICAKMjAwMC0wNi0yNyAwMTozNCAgbmJhCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIHNubXB2My5jOiBkbyBjYXNlIGluc2Vuc2l0aXZlIG1hdGNoaW5nIG9mIG9wdGlvbiB2YWx1ZXMuCiAgIAoyMDAwLTA2LTI3IDAwOjMzICBuYmEKCiAgICogbWFuL3NubXB0cmFuc2xhdGUuMToKCiAgIC0gc25tcHRyYW5zbGF0ZS4xOiBkb2N1bWVudCB0aGF0IC13IGlzIGFsc28gZm9yIC1UZAogICAKMjAwMC0wNi0yNyAwMDozMCAgbmJhCgogICAqIG1hbi86IHNubXBidWxrZ2V0LjEsIHNubXBidWxrd2Fsay4xLCBzbm1wY21kLjEKLCBzbm1wZ2V0LjEsIHNubXBnZXRuZXh0LjEsIHNubXBuZXRzdGF0LjEsCiAgIHNubXBzZXQuMSwgc25tcHN0YXR1cy4xLCBzbm1wdGVzdC4xLCBzbm1wdHJhcC4xCiwgc25tcHRyYXBkLjgsIHNubXB3YWxrLjEsIHZhcmlhYmxlcy41OgoKICAgLSB2YXJpb3VzIG1hbiBwYWdlIG5pdC1waWNraW5nCiAgIAoyMDAwLTA2LTI3IDAwOjI4ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gc25tcHRhYmxlLmM6IGZpeGVzIGFuZCB1c2FnZSBtZXNzYWdlIGZvciAtQ2ggYW5kIC1DSAogICAKMjAwMC0wNi0yNiAyMzo0MyAgbmJhCgogICAqIG1pYnMvOiBBR0VOVFgtTUlCLnR4dCwgRElTTUFOLVNDSEVEVUxFLU1JQi50eHQsCiAgIERJU01BTi1TQ1JJUFQtTUlCLnR4dCwgRXRoZXJMaWtlLU1JQi50eHQsCiAgIEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIEhPU1QtUkVTT1VSQ0VTLVRZUEVTLnR4dCwKICAgSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQsIElBTkEtTEFOR1VBR0UtTUlCLnR4dAosIElBTkFpZlR5cGUtTUlCLnR4dCwgSUYtTUlCLnR4dCwgSVAtTUlCLnR4dAosIElQVjYtSUNNUC1NSUIudHh0LCBJUFY2LU1JQi50eHQsIElQVjYtVEMudHh0CiwgSVBWNi1UQ1AtTUlCLnR4dCwgTWFrZWZpbGUuaW4sIFJNT04tTUlCLnR4dAosIFNNVVgtTUlCLnR4dCwgU05NUC1DT01NVU5JVFktTUlCLnR4dCwKICAgU05NUC1GUkFNRVdPUkstTUlCLnR4dCwgU05NUC1NUEQtTUlCLnR4dCwKICAgU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwgU05NUC1QUk9YWS1NSUIudHh0LAogICBTTk1QLVRBUkdFVC1NSUIudHh0LCBTTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwKICAgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0LCBTTk1QdjItQ09ORi50eHQsCiAgIFNOTVB2Mi1NSUIudHh0LCBTTk1QdjItU01JLnR4dCwgU05NUHYyLVRDLnR4dCwKICAgU05NUHYyLVRNLnR4dCwgVENQLU1JQi50eHQsIFVEUC1NSUIudHh0OgoKICAgLSBNYWtlZmlsZS5pbiwgKk1JQi50eHQ6IHVwZGF0ZSB0byBjdXJyZW50IFJGQyB2ZXJzaW9uCiAgIAoyMDAwLTA2LTI2IDIzOjQyICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLm1pYiwgbWliZmV0Y2gsIHNtaXN0cmlwOgoKICAgLSBNYWtlZmlsZS5taWIsIG1pYmZldGNoLCBzbWlzdHJpcDogdG9vbHMgdG8gZXh0cmFjdCBNSUJzIGZyb20gUkZDCiAgIAlkb2N1bWVudHMuCiAgIAoyMDAwLTA2LTI2IDIzOjQwICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIHBhcnNlLmMsIG1pYi5bY2hdLCBzbm1wdHJhbnNsYXRlLmM6IGFkZCBwYXJzaW5nIG9mIENIT0lDRSBhbmQgY2hlY2tzIGZvcgogICAJT0JKRUNULUdST1VQIGFuZCBBR0VOVC1DQVBBQklMSVRJRVMuIFRoaXMgYWxsb3dzIHVzIHRvIHBhcnNlCiAgIAljb21wbGV0ZSBNSUIgZXh0cmFjdHMgZnJvbSBSRkMgZG9jdW1lbnRzLgogICAKMjAwMC0wNi0yNiAyMzozOCAgbmJhCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIC0gTWFrZWZpbGUudG9wOiBtYWtlIGxpYnRvb2wgc2lsZW50LCBzbyB3ZSBjYW4gc2VlIHRob3NlIHdhcm5pbmdzCiAgIAoyMDAwLTA2LTI2IDIzOjM3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIC0gc25tcFRhcmdldEFkZHJFbnRyeS5jOiBkbyBhIGNhc3QgdG8ga2lsbCBhIHdhcm5pbmcKICAgCjIwMDAtMDYtMjYgMjM6MzIgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIGFnZW50X3RyYXAuYzogRml4IGEgbGVhayB3aGVuIHJlcXVlc3QgaXMgYmxvY2tlZCBieSBWQUNNIGFuZCBubyB0cmFwCiAgIAlpcyBzZW50LgogICAKMjAwMC0wNi0yNiAxMTo1NiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IChCVUcjMjMzKQogICAKMjAwMC0wNi0yMyAwNjo0MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgcmVwbGFjZSBtYWxsb2MvbWVtc2V0IDAgd2l0aCBjYWxsb2MuCiAgIAoyMDAwLTA2LTIzIDAxOjA4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGtlcm5lbF9saW51eC5jLCBrZXJuZWxfbGludXguaAosIGlwLmM6CgogICAtIChtaWJJSS9rZXJuZWxfbGludXguW2NoXSwgbWliSUkvaXAuYyk6IEFkZGVkIHN1cHBvcnQgZm9yIGlwUm91dGluZ0Rpc2NhcmRzCiAgIAkoVGhhbmtzIHRvIEJyeWFuIEJsYWNrbWFuKQogICAKMjAwMC0wNi0yMiAxNzowOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgcmVtb3ZlIGV4dHJhIGluY2x1ZGUgZXJyb3JtaWIuaAogICAKMjAwMC0wNi0yMiAxNjo1MCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgRml4IGJ1ZyAjMjc2IC0gY2xvc2UgbW9zdCBmaWxlIGRlc2NyaXB0b3JzIGJlZm9yZSBleGVjJ2luZyBjb21tYW5kLgogICAKMjAwMC0wNi0yMiAxNTo1OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHVjZC1zbm1wL2V4dGVuc2libGUuYwosIHVjZC1zbm1wL21lbW9yeS5jLCB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYwo6CgogICBmZ2V0czogdXNlIHNpemVvZihidWYpIGluIGxpZXUgb2YgY29tcGlsZXIgY29uc3RhbnQgU1RSTUFYLgogICAKMjAwMC0wNi0yMiAxNTo1MyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgVXNlIGZld2VyIGxhcmdlIHN0YXRpYyBidWZmZXJzLiAgcGFzc19wZXJzaXN0IHVzZXMgYmlnZ2VyIGJ1ZmZlcnMgbm93LgogICAKMjAwMC0wNi0yMSAxMjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgLSAoc25tcE5vdGlmeVRhYmxlLmMpOiBVaCwgb25seSBpZiBub3QgZGVsZXRlZC4KICAgCjIwMDAtMDYtMjEgMTI6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIC0gKHNubXBOb3RpZnlUYWJsZS5jKTogY2hhbmdlIGNyZWF0ZUFuZEdvL2NyZWF0ZUFuZFdhaXQgc3RhdGVzIHRvIGFjdGl2ZS9OSVMuCiAgIAoyMDAwLTA2LTIwIDIwOjAxICBtc2xpZmNhawoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIERlY2xhcmUgdG9wX2J1aWxkZGlyIHRvIGF2b2lkIGFubm95aW5nIC9saWJ0b29sIG5vdCBmb3VuZCBtZXNzYWdlLgogICAKMjAwMC0wNi0yMCAxNzozMCAgbXNsaWZjYWsKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmM6CgogICBEb250IGFzc3VtZSBBTlNJIEMtcHJlcHJvY2Vzc29yIChyZXBsYWNlICIjIyIgY29uY2F0ZW5hdGlvbiB3aXRoIHNwcmludGYpLgogICAKMjAwMC0wNi0yMCAxNTozNyAgbXNsaWZjYWsKCiAgICogd2luMzIvOiBsaWJhZ2VudC9saWJhZ2VudC5kZWYsIGxpYmFnZW50L2xpYmFnZW50LmRzcCwKICAgbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwKICAgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHNubXBkL3NubXBkLmRzcCwKICAgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHNubXBnZXQvc25tcGdldC5kc3AsCiAgIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgc25tcHNldC9zbm1wc2V0LmRzcCwKICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwgc25tcHRyYXAvc25tcHRyYXAuZHNwLAogICBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgc25tcHVzbS9zbm1wdXNtLmRzcCwKICAgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgV2luMzIgTVMtVkMrKyBidWlsZCBmaXh1cHMuCiAgIAoyMDAwLTA2LTIwIDE1OjM3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgRW5jYXBzdWxhdGUgbG9jYWwgdmFyaWFibGUgIngiIHRvIHRoZSBzY29wZSB3aGVyZSBuZWVkZWQuCiAgIAoyMDAwLTA2LTIwIDE1OjM2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBSZW1vdmUgdW51c2VkIHZhciAibmV3dmFyIi4KICAgCjIwMDAtMDYtMjAgMTU6MzYgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgVXNlIGludCB2cyB1bG9uZyBmb3IgYXJyYXkgaW5kZXhpbmcgdmFyaWFibGVzIHRvIGF2b2lkIHNpZ25lZC91bnNpZ25lZCBtaXNtYXRjaC4KICAgCjIwMDAtMDYtMjAgMTU6MzQgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBSZW1vdmUgdW51c2VkIHZhcnMgc3RydWN0IHRtLCB0aW1lX3QuCiAgIAoyMDAwLTA2LTIwIDE1OjM0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXIgImluaXRsaXN0Ii4KICAgCjIwMDAtMDYtMjAgMTU6MzMgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIERlY2xhcmUgc3RybmNhc2VjbXAgaW4gc3lzdGVtLmggOyBSZW1vdmUgdW51c2VkIHZhciAic3RhdHVzIi4KICAgCjIwMDAtMDYtMjAgMTU6MzEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJzLgogICAKMjAwMC0wNi0yMCAxNTozMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgRGVjbGFyZSBvcHRhcmcgaW4gZ2V0b3B0LmguCiAgIAoyMDAwLTA2LTIwIDE0OjAwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBtaXNjIG1pbm9yIGNoYW5nZXMuCiAgIAoyMDAwLTA2LTIwIDEzOjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiAuY3ZzaWdub3JlLCBzbm1wTm90aWZ5VGFibGUuYwosIHNubXBOb3RpZnlUYWJsZS5oOgoKICAgLSAoLmN2c2lnbm9yZSwgc25tcE5vdGlmeVRhYmxlLmMsIHNubXBOb3RpZnlUYWJsZS5oKToKICAgICAtIFNOTVAtTk9USUZJQ0FUSU9OLU1JQidzIHNubXBOb3RpZnlUYWJsZSBpbXBsZW1lbnRlZDoKICAgICAgIC0gdXNlcyB0aGUgU05NUC1UQVJHRVQtTUlCIHRvIGdldCBpdHMgYWRkcmVzc2VzIGZyb20uCiAgICAgICAtIHVzZXMgaGVhZGVyX2NvbXBsZXggdG8gaGFuZGxlIHRoZSBkYXRhLgogICAgICAgLSBtdWNoIHRvZG86CiAgICAgICAgIC0gZHluYW1pYyB0YXJnZXQvbm90aWZpY2F0aW9uIG1pYiB1cGRhdGluZyB3aXRob3V0IGtpbGwgLUhVUCBuZWVkZWQuCiAgICAgICAgICAgLSB0aGlzIHdpbGwgYmUgYSByZWFsIHBhaW4uCiAgICAgICAgIC0gZml4IHYzIHJlbGF0ZWQgdHJhcHMgc3RpbGwgKHNhbWUgdXNtIGJ1ZyBJJ3ZlIGJlZW4gbWVhbmluZyB0byBmaXgpLgogICAgICAgICAtIHRoZSByZXN0IG9mIHRoZSBTTk1QLU5PVElGSUNBVElPTi1NSUIgdGFibGVzLgogICAKMjAwMC0wNi0yMCAxMzo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaDoKCiAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCk6CiAgIC0gZ2VuZXJpYyB0YXJnZXQgc2Vzc2lvbiBjcmVhdGlvbgogICAtIG1pc2Mgb3RoZXIgbWlub3IgZml4ZXMuCiAgIAoyMDAwLTA2LTIwIDEzOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHRhcmdldC5oLCB0YXJnZXQvdGFyZ2V0LmMsCiAgIHRhcmdldC90YXJnZXQuaDoKCiAgIC0gKHRhcmdldC5oLCB0YXJnZXQuYywgdGFyZ2V0LmgpOiBnZW5lcmljIHRhcmdldCBzZXNzaW9uIGNyZWF0aW9uCiAgICAgYmFzZWQgb24gZW50cmllcyBpbiB0aGUgU05NUC1UQVJHRVQtTUlCIHRhYmxlLgogICAKMjAwMC0wNi0yMCAxMzo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYzoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMpOiByZW1vdmUgTWljaGFlbCdzIGhvcnJpYmxlbHkgd3JvbmcgImZpeGVzIi4KICAgCjIwMDAtMDYtMjAgMTM6NDggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmg6CgogICAtIChhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCk6IGFkZCByZW1vdmVfdHJhcF9zZXNzaW9uKCkuCiAgIAoyMDAwLTA2LTIwIDEzOjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogZGVhbCB3aXRoIDAtbGVuZ3RoIHBlcnNpc3RlbnQgc3RyaW5ncyBiZXR0ZXIuCiAgIAoyMDAwLTA2LTE5IDEyOjMyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDaGVjayBtb3JlIGFsbG9jIGZhaWx1cmVzLgogICAKMjAwMC0wNi0xOSAxMjoxNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMsIHByb3RvY29sLmM6CgogICAocHJvdG9jb2wuYykgVXNlIHNpemVvZihvaWQpLCBub3QgNCEKICAgKGNsaWVudC5jKSBBZGQgX2FsbF8gb2YgT0lEIHZhbHVlIGZvciBhZ2VudHhfcmVnaXN0ZXIgYW5kIGFnZW50eF91bnJlZ2lzdGVyLgogICAKMjAwMC0wNi0xOSAxMTo0MSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgICBSZW1vdmVkIHNpemVvZih1X2NoYXIpIGFuZCB1bm5lY2Vzc2FyeSAodW5zaWduZWQpIGNhc3RzIHRvIG1hbGxvYyBwYXJhbXMuCiAgIAoyMDAwLTA2LTE5IDAzOjA0ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5oLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5oLAogICBzbm1wbGliL3NubXBfYXBpLmg6CgogICBQcm90b3R5cGUgZml4dXAuCiAgIAoyMDAwLTA2LTE5IDAzOjAxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaDoKCiAgIHMvY29uaWZnL2NvbmZpZy8gLi4uLiBIcnJybW1tcGYKICAgCjIwMDAtMDYtMTkgMDI6NTggIG5iYQoKICAgKiBtYWtlbm9zeXNkZXBlbmQucGwsIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gbWFrZW5vc3lzZGVwZW5kLnBsIE1ha2VmaWxlLmluOiBvYmplY3QgZmlsZXMgYXJlIG5vdyBuYW1lZCAubG8gLi4uCiAgIAoyMDAwLTA2LTE2IDE2OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oOgoKICAgLSAoc25tcFRhcmdldEFkZHJFbnRyeS5oKTogYWRkIHRoZSBTTk1QdjItVE0gbWliIHRvIHRoZSBkZWZhdWx0IGxpc3QuCiAgIAoyMDAwLTA2LTE2IDE2OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgLSAoc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IGZpeCBpbmNvcnJlY3QgT0lEcy4KICAgCjIwMDAtMDYtMTUgMDY6NDUgIG1hcnoKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgZmF0IGZpbmdlcnMKICAgCjIwMDAtMDYtMTUgMDY6NDIgIG1hcnoKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLlBMOgoKICAgYWRkIGRlZmF1bHRzIHRvIGRhZW1vbiBzZWFyY2ggcGF0aC4uLnJlY2FsYyB0L3NubXB0ZXN0LmNtZCBldmVyeXRpbWUgcGVyIG1ha2VmaWxlLlBMIGlzIHJ1bgogICAKMjAwMC0wNi0xMiAxNjo0MyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgdHJhcHNlc3MuCiAgIAoyMDAwLTA2LTEyIDE2OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3RyYXAuYywKICAgYWdlbnRfdHJhcC5oOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgpOgogICAgIC0gbmV3IHNubXBkLmNvbmYgdG9rZW4gZm9yIHRyYXAgc2Vzc2lvbnM6ICJ0cmFwc2VzcyIuCiAgICAgICAtIHVzZXMgc25tcF9wYXJzZV9hcmdzIHNvIGFueSB0eXBlIG9mIHRyYXAgY2FuIGJlIHNlbnQgd2l0aCBpdAogICAgICAgICBtb2RpZmllZCBieSBhbnkgb2YgdGhlIHBhcmFtZXRlcnMgdGhhdCBhcmUgZG9jdW1lbnRlZCBpbiBzbm1wY21kKDEpLgogICAgICAgLSB2MyB0cmFwcyBkb24ndCB3b3JrIGR1ZSB0byB0aGUgc2FtZSBVU00gcHJvYmxlbXMgZm91bmQgaW4gdGhlCiAgICAgICAgIHJlY2VudCBwcm94eSBzdWJtaXNzaW9ucyAobXkgbmV4dCB0YXJnZXQpLgogICAgICAgLSAtQ2kgaW4gdGhlIGFyZ3VtZW50IHNwZWNpZmllcyBpbmZvcm1zIHNob3VsZCBiZSB1c2VkLgogICAKMjAwMC0wNi0xMiAxNjoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChtYXN0ZXJfcmVxdWVzdC5jKTogcmUtZW5hYmxlIGZyZWVpbmcgb2YgbWFzdGVyIHJlcXVlc3QuCiAgIAoyMDAwLTA2LTEyIDE2OjE3ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogc2F2ZSBleGVjIGRhdGEgdG8gL3Zhci91Y2Qtc25tcC4KICAgICAtIGNvdWxkIGNhdXNlIHByb2JsZW1zIGZvciBub24tcm9vdCBydW5zLiAgVW50ZXN0ZWQuCiAgIAoyMDAwLTA2LTEyIDE0OjEyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIC0gKHNubXB0cmFwZF9sb2cuYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIHJlbW92ZSBlbmRpbmcgY29tbWFzIGluIGVudW0gbGlzdC4KICAgCjIwMDAtMDYtMDcgMTM6MjMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmg6CgogICAtIChzbm1wX2NvbmZpZy41LmRlZiwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgLSB0aGUgVFlQRS5jb25mIHBhcnNlciBub3cgYWNjZXB0cyB0b2tlbnMgZnJvbSBhIGRpZmZlcmVudCAuY29uZgogICAgICAgZmlsZSBUWVBFIGlmIGEgc3BlY2lhbCAiW1RZUEVdIiBrZXl3b3JkIGlzIGluc2VydGVkIGludG8gdGhlCiAgICAgICAuY29uZiBmaWxlLiAgU2VlIHNubXBfY29uZmlnKDUpIGZvciBhIGJldHRlciBkZXNjcmlwdGlvbi4KICAgCjIwMDAtMDYtMDcgMTM6MjIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBtYXAgc3RydG91bCB0byBhdG9pIGlmIHRoZSBmdW5jdGlvbiBpc24ndCBmb3VuZC4KICAgCjIwMDAtMDYtMDIgMTE6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogYWRkICoubWFkZS4KICAgCjIwMDAtMDYtMDIgMTE6NDAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIGZpeHByb2MsIGlwZi1tb2QucGwsCiAgIG1pYjJjLCB0a21pYjoKCiAgIC0gKE1ha2VmaWxlLmluLCBmaXhwcm9jLCBpcGYtbW9kLnBsLCBtaWIyYywgdGttaWIpOgogICAgIC0gbWFrZSAoYW5kIGluc3RhbGwpIHBlcmwgc2NyaXB0cyBkaWZmZXJlbnRseSwgd2l0aG91dCBtb2RpZnlpbmcgdGhlIG9yaWcuCiAgIAoyMDAwLTA2LTAxIDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHN0b3JlIHBlcnNpc3RlbnQgZGF0YSBpbW1lZGlhdGVseSBhZnRlciBpbml0J2luZyB0bwogICAgIGVuc3VyZSB3ZSB1cGRhdGUgY291bnRlcnMgYW5kIHN0dWZmIHRoYXQgbXVzdCBjaGFuZ2UgKGVnLCBlbmdpbmVCb290cykuCiAgIAoyMDAwLTA1LTMxIDE2OjIyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICAtIChzbm1wZC4xLmRlZik6IGRlc2NyaWJlIC1JLgogICAKMjAwMC0wNS0zMSAxNTo1MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L21pYl9tb2R1bGVzLmMKLCBhZ2VudC9taWJfbW9kdWxlcy5oLCBhZ2VudC9zbm1wZC5jOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG1pYl9tb2R1bGVzLmMsIG1pYl9tb2R1bGVzLmgsIHNubXBkLmMpOgogICAgIC0gbmV3IC1JIHN3aXRjaCB0byBzbm1wZCB0byBkbyBkeW5hbWljIGRldGVybWluYXRvbiBvZiB3aGljaCBtaWIKICAgICAgIG1vZHVsZXMgdG8gaW5pdGlhbGl6ZSAoYW5kIGhlbmNlIHdoaWNoIG1pYiB0cmVlIHNlY3Rpb25zIHRvIHN1cHBvcnQpLgogICAKMjAwMC0wNS0zMSAxNTo1MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgpOiBkZWZhdWx0IHN0b3JlIHJvdXRpbmVzIGZvciB2b2lkIHBvaW50ZXJzLgogICAgLSB3aGljaCBJIGltbWVkaWF0ZWx5IGRlY2lkZWQgdG8gZG8gc29tZXRoaW5nIGRpZmZlcmVudCBmb3Igd2hhdCBJCiAgICAgIG9yaWdpbmFsbHkgaW1wbGVtZW50ZWQgaXQgZm9yLCBzbyBpdHMgbm90IGJlaW5nIHVzZWQgeWV0LgogICAKMjAwMC0wNS0zMSAwNTo1OSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpcC5jLCBpcC5oOgoKICAgLSAobWliSUkvaXAuW2NoXSk6IEFsbG93IElQIHN1cHBvcnQgd2l0aG91dCB0aGUgQXQvaXBOZXRUb01lZGlhIG1vZHVsZQogICAKMjAwMC0wNS0zMCAxNzoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwcm94eS5jLCBwcm94eS5oOgoKICAgLSAocHJveHkuYywgcHJveHkuaCk6IHNpbXBsZSBwcm94eSBzdXBwb3J0LgogICAgIC0gbWFwcyBvbmUgb2lkIGluc2lkZSB0aGUgYWdlbnQgdG8gYSBwb3NzaWJseS1kaWZmZXJlbnQgb2lkIG9uIGEgdGFyZ2V0LgogICAgIC0gdXNlcyBzbm1wX3BhcnNlX2FyZ3MoKSBzbyBpdCB0YWtlcyBzdGFuZGFyZCBjb21tYW5kIGxpbmUgY29uZmlnIG9wdGlvbnMuCiAgICAgLSBubyBzZXQgc3VwcG9ydC4KICAgICAtIG5vIGtpbGwgLUhVUCBzdXBwb3J0LgogICAgIC0gbm8gU05NUHYzIHN1cHBvcnQgKHNpZ2gpLgogICAKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgogICAqIG1pYnMvSUFOQS1MQU5HVUFHRS1NSUIudHh0OgoKICAgZmlsZSBJQU5BLUxBTkdVQUdFLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA1LTMwIDE1OjA2ICBuYmEKCiAgICogbWlicy9JQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCLnR4dDoKCiAgIGZpbGUgSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA1LTMwIDE1OjA2ICBuYmEKCiAgICogbWlicy9ESVNNQU4tU0NIRURVTEUtTUlCLnR4dDoKCiAgIGZpbGUgRElTTUFOLVNDSEVEVUxFLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA1LTMwIDE1OjA2ICBuYmEKCiAgICogbWlicy9BR0VOVFgtTUlCLnR4dDoKCiAgIGZpbGUgQUdFTlRYLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA1LTMwIDA3OjQ3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBGaXggcHJvYmxlbSBpZGVudGlmaWVkIGJ5IFYuIEdyZW5ldDogbmV3IG1ldGhvZCBzbm1wX29pZF9taW5fY29tcGFyZQogICAKMjAwMC0wNS0zMCAwMTozMSAgbmJhCgogICAqIG1pYnMvbWliZmV0Y2g6CgogICBmaWxlIG1pYmZldGNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAwMTozMSAgbmJhCgogICAqIG1pYnMvc21pc3RyaXA6CgogICBmaWxlIHNtaXN0cmlwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAwMTozMSAgbmJhCgogICAqIG1pYnMvTWFrZWZpbGUubWliOgoKICAgZmlsZSBNYWtlZmlsZS5taWIgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA1LTI2IDA5OjI0ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c09SVGFibGUuYywgc3lzdGVtX21pYi5jOgoKICAgLSAobWliSUkvc3lzT1JUYWJsZS5jIG1pYklJL3N5c3RlbV9taWIuYyk6CiAgICAgLSBVc2UgbmV3IHRpbWUgdXRpbGl0eSByb3V0aW5lcyB0byBzaW1wbGlmeSBwcm9jZXNzaW5nCiAgICAgLSBVcGRhdGUgc3lzT1JMYXN0Q2hhbmdlIHdoZW4gYWRkaW5nL3JlbW92aW5nIGVudHJpZXMKICAgCjIwMDAtMDUtMjYgMDk6MjMgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmg6CgogICAtICh1dGlsX2Z1bmNzLltjaF0pOiBOZXcgdGltZS1kaWZmIHV0aWxpdHkgcm91dGluZXMKICAgCjIwMDAtMDUtMjYgMDg6NDYgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcGQuYywgc25tcF9hZ2VudC5jLAogICBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIC0gKHNubXBkLmMgc25tcF9hZ2VudC5jIG1pYklJL3Zhcl9yb3V0ZS5jKTogVXNlICdtaWJpbmNsLmgnIGhlYWRlcgogICAKMjAwMC0wNS0yNiAwNzo0OCAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMsIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuaCwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jCjoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnR4L2NsaWVudC5bY2hdCiAgICAgIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jIGFnZW50eC9zdWJhZ2VudC5jKToKICAgICAgLSBTdXBwb3J0IGZvciBNSUIgcmVnaW9uIHRpbWVvdXRzCiAgIAoyMDAwLTA1LTI2IDA3OjQ2ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcC5oLCBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jCjoKCiAgIC0gKHNubXAuaCBzbm1wX2FwaS5jIHNubXBfY2xpZW50LmMpOiBTdXBwb3J0IGZvciBwZXItcmVxdWVzdCB0aW1lb3V0IGhhbmRsaW5nCiAgIAoyMDAwLTA1LTI2IDA3OjQ1ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gKGFnZW50eC9wcm90b2NvbC5jKTogTWlub3IgZXJyb3IgaW4gQWdlbnRYIHBhY2tldCBkdW1wCiAgIAoyMDAwLTA1LTI1IDEwOjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogUGF0Y2ggZnJvbSBSYWduYXIgS2r4cnN0YWQ6CiAgICAgLSBmaXhlZCBsaW51eCBwcm9ibGVtOiB3cm9uZyBwYXJhbXMgZ2V0dGluZyByZXR1cm5lZC4KICAgCjIwMDAtMDUtMjUgMDU6MzggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIEZpeCB1c2Ugb2YgYmluMmFzYyB0byBub3QgYWx3YXlzIHNob3cgInN0cmluZyI7IHVzZSBzbm1wX29pZF9jb21wYXJlLCB0b28uCiAgIFNlZSBidWcgIzIzNCBmb3IgZGV0YWlscy4KICAgCjIwMDAtMDUtMjUgMDM6MzkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKG1pYklJL2ludGVyZmFjZXMuYyk6IENvbnNvbGlkYXRlIGhlYWRlciBoYW5kbGluZy4KICAgCjIwMDAtMDUtMjUgMDM6MzEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKG1pYklJL2ludGVyZmFjZXMuYyk6IENvcnJlY3QgY29uZnVzaW5nIGNvbW1lbnQKICAgCjIwMDAtMDUtMjUgMDE6NTMgIGRhdmVzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6IFJlcGxhY2UgdXNlIG9mICdjdXQnIHdpdGggZXF1aXZhbGVudCAnc2VkJyBjYWxscwogICAKMjAwMC0wNS0yNSAwMTozMCAgZGF2ZXMKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUuaW4gYWNsb2NhbC5tNCBjb25maWd1cmUpOgogICAgIC0gRGlyZWN0IGNlcnRhaW4gY2hlY2tzIHRvIHRoZSBhcHByb3ByaWF0ZSBmaWxlIGRlc2NyaXB0b3IgKHNlZSBCVUcjMjQ3KQogICAKMjAwMC0wNS0yMiAxNjoyMiAgaGFyZGFrZXIKCiAgICogYXBwcy8uY3ZzaWdub3JlOgoKICAgLSAoYXBwcy8uY3ZzaWdub3JlKTogYWRkIG1vcmUgc3R1ZmYgdG8gaWdub3JlLgogICAKMjAwMC0wNS0yMiAxNjoyMSAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuaCwgYXBwcy9zbm1wYnVsa2dldC5jLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jCiwgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcHdhbGsuYwosIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMKLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5oOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaCwgc25tcGJ1bGtnZXQuYywKICAgICBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBkZi5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCiAgICAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAogICAgIHNubXB1c20uYywgc25tcHZhY20uYywgc25tcHdhbGsuYywgTWFrZWZpbGUuaW4sIHNubXBfcGFyc2VfYXJncy5jLAogICAgIHNubXBfcGFyc2VfYXJncy5oKToKICAgICAtIG1vdmVkIHNubXBfcGFyc2VfYXJncyB0byB0aGUgbGlicmFyeSwgYXMgSSBwcm9taXNlZCB0byBkbyBhZ2VzIGFnby4KICAgICAgIC0gbm8gbG9uZ2VyIGNhbGxzIHVzYWdlKCkgZGlyZWN0bHksIGJ1dCByZXR1cm5zIC0xIGlmIHlvdSBzaG91bGQuCiAgIAoyMDAwLTA1LTIyIDA1OjQ3ICBkYXZlcwoKICAgKiBzbm1wbGliLzogdG9vbHMuYywgdG9vbHMuaDoKCiAgIC0gKHNubXBsaWIvdG9vbHMuW2NoXSk6IFJvdXRpbmUgZm9yIGNvbXBhcmluZyB0d28gbWFya2Vycy4KICAgCjIwMDAtMDUtMjIgMDU6NDIgIGRhdmVzCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobG9jYWwvbWliMmMpOiBHZW5lcmF0ZSBtdWx0aXBsZSB0YWJsZXMgaW4gb25lIGNvZGUgZmlsZQogICAKMjAwMC0wNS0xNyAxMDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLCBzbm1wbGliL3ZhY20uYywKICAgc25tcGxpYi92YWNtLmg6CgogICAtICh2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgsIHZhY20uYywgdmFjbS5oKTogUGF0Y2ggZnJvbSBBcm5lIE9lc2xlYm9lOgogICAgIC0gd3JpdGFibGUgdmFjbSBtaWIgc3VwcG9ydC4KICAgICAtIG90aGVyIG1pc2MgdmFjbSBmaXhlcy4KICAgCjIwMDAtMDUtMTcgMTA6MjYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogUGF0Y2ggZnJvbSBBcm5lIE9lc2xlYm9lOgogICAgIC0gRG9uJ3Qgc2VnZmF1bHQgb24gYW4gdW5rbm93biBjb21tYW5kLCBpbnN0ZWFkIHByaW50IGEgd2FybmluZy4uCiAgIAoyMDAwLTA1LTE3IDEwOjI1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICAtIChzbm1wdmFjbS5jKTogUGF0Y2ggZnJvbSBBcm5lIE9lc2xlYm9lOgogICAgIC0gYWRkZWQgYSBuZXcgY29tbWFuZDogc25tcHZhY20uCiAgIAoyMDAwLTA1LTE3IDA5OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYyk6IG1lbnRpb24gdGhlIHBvcnQgbnVtYmVyIG9uIHRoZSB0cmFwc2luayBoZWxwIGxpbmUuCiAgIAoyMDAwLTA1LTE3IDA5OjIwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiB1c2Ugc3RhbmRhcmRpemVkIGJ1ZmZlciBzaXplcwogICAKMjAwMC0wNS0xNyAwOToxMyAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIG1hbi9zbm1wdHJhcGQuODoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2xvZy5jLCBzbm1wdHJhcGQuOCk6IFBhdGNoIGZyb20KICAgICBKZWZmIENvdXJzOgogICAgIC0gY3VzdG9taXplZCBmb3JtYXR0aW5nIG9mIHRyYXAgb3V0cHV0LgogICAKMjAwMC0wNS0xNyAwOToxMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogYWRkIEplZmYgYW5kIEFybmUuCiAgIAoyMDAwLTA1LTE3IDA4OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiAqY29ycmVjdGx5KiBhc3NvY2lhdGUgZXNjYXBlUXVvdGVzIHdpdGggdGhlIHJpZ2h0IGRlZmF1bHRfc3RvcmUgYm9vbC4KICAgCjIwMDAtMDUtMTcgMDg6MTEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICAtIChzbm1wLmNvbmYuNS5kZWYpOiBkb2N1bWVudCBlc2NhcGVRdW90ZXMuCiAgIAoyMDAwLTA1LTE3IDA4OjA5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9taWIuYzoKCiAgIC0gKHNubXBjbWQuMSwgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6IG5ldyBvcHRpb24gLU9FOgogICAgIC0gc2hlbGwgYmFja3NsYXNoIGVzY2FwZSBxdW90YXRpb25zIG1hcmtzIGZvciBjdXR0aW5nIGFuZCBwYXN0aW5nCiAgICAgICBvbnRvIGFub3RoZXIgc25tcCBjb21tYW5kIGxpbmUuCiAgIAoyMDAwLTA1LTE1IDA5OjI0ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGtlcm5lbF9saW51eC5jLCBrZXJuZWxfbGludXguaAosIGljbXAuYywgaXAuYywgaXAuaCwgaWNtcC5oLCB0Y3AuYwosIHRjcC5oLCB1ZHAuYywgdWRwLmg6CgogICAtIChtaWJJSS97aXAsaWNtcCx0Y3AsdWRwLGtlcm5lbF9saW51eH0uW2NoXSk6CiAgICAgLSAgUHVsbCBMaW51eCBNSUItSUkgc3RhdGlzdGljcyBnYXRoZXJpbmcgaW50byBhIHNpbmdsZSByb3V0aW5lLgogICAgIC0gIENhY2hlIE1JQi1JSSBzdGF0aXN0aWNzIG9uIGFsbCBhcmNoaXRlY3R1cmVzLgogICAKMjAwMC0wNS0xNSAwODo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCB1Y2Qtc25tcC92bXN0YXRfYnNkaTQuYwosIHVjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oOgoKICAgLSAodWNkX3NubXAuaCwgdm1zdGF0X2JzZGk0LmMsIHZtc3RhdF9ic2RpNC5oKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgIC0gdm1zdGF0IHN1cHBvcnQgZm9yIGJzZGk0LgogICAKMjAwMC0wNS0xNSAwMzowNiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogUmUtcmVtb3ZlIHJlZHVuZGFudCBQRFUgY2xvbmUKICAgCShJdCByZWFwcGVhcmVkIGR1cmluZyBhIHJlY2VudCBjaGFuZ2UpCiAgIAoyMDAwLTA1LTE1IDAzOjAwICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X2luZGV4LmMsCiAgIGFnZW50X3JlZ2lzdHJ5LmgsIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBJbXBsZW1lbnQgbWlzc2luZyByb3V0aW5lICd1bnJlZ2lzdGVyX21pYl9jb250ZXh0JwogICAKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBhZ2VudF9pbmRleC5bY2hdKTogTW92ZSAnZmQnIHJlZ2lzdHJ5IGhhbmRsaW5nIGJhY2sgdG8gYWdlbnRfcmVnaXN0cnkKICAgCiAgIC0gKGFnZW50eC9jbGllbnQuYyk6IFJlY29nbmlzZSBuZXcgY29kZSBmaWxlIGZvciBpbmRleCBoYW5kbGluZwogICAKMjAwMC0wNS0xMiAxMDoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogVW0sIGRlZmF1bHQgdG8gcG9ydCAxNjEuICBPcHBzLgogICAKMjAwMC0wNS0xMiAwOTowMCAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICB2YXJfc3RydWN0LmgsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gdmFyX3N0cnVjdC5oIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgLSBQcmVwYXJhdGlvbiBmb3IgcGVyLU1JQiByZWdpb24gdGltZW91dCwgYW5kIGNvbnRleHQgc3VwcG9ydAogICAKMjAwMC0wNS0xMiAwODo0NSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgLSAoa2VybmVsX3N1bm9zNS5jKTogUmVjb2duaXNlIFNvbGFyaXMgQVRNIExBTiBFbXVsYXRpb24gaW50ZXJmYWNlcwogICAJVGhhbmtzIHRvIEpheSBZb3VuZwogICAKMjAwMC0wNS0xMiAwODoxMyAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jLCBhZ2VudF9pbmRleC5oLCBNYWtlZmlsZS5pbgosIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKGFnZW50X2luZGV4LltjaF0gYWdlbnRfcmVnaXN0cnkuW2NoXSBNYWtlZmlsZS5pbiBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgogICAgIC0gU3BsaXQgaW5kZXggaGFuZGxpbmcgb3V0IGZyb20gdGhlIE1JQiByZWdpc3RyeS4KICAgCjIwMDAtMDUtMTIgMDc6MDIgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IEFkZCBzdXBwb3J0IGZvciByZWNvZ25pc2luZyBRdWFkRmFzdEV0aGVyIGludGVyZmFjZQogICAKMjAwMC0wNS0xMiAwNjo1NyAgZGF2ZXMKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKGFwcHMvc25tcHRhYmxlLmMpOiBGaXggcHJvYmxlbSB3aXRoIG1pc3Npbmcgc2VwYXJhdG9yICh3aXRoIC1DaSAtQ2YpCiAgIAlUaGFua3MgdG8gWGF2aWVyIEZPVVJORVQKICAgCjIwMDAtMDUtMTIgMDQ6MDIgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFJlbW92ZSByZWR1bmRhbnQgUERVIGNsb25lCiAgIAlJJ20gc3VyZSB0aGlzIHdhcyBwdXQgaW4gZm9yIGEgcmVhc29uLCBidXQgSSBjYW4ndCByZW1lbWJlciB3aGF0LgogICAJSXQgZG9lc24ndCBzZWVtIHRvIGJlIG5lZWRlZCBub3csIGFuZCBqdXN0IGxlYWtzIG1lbW9yeS4KICAgCUhlcmUncyBob3BpbmcuLi4uLgogICAKMjAwMC0wNS0xMiAwMzoxMSAgZGF2ZXMKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpOiBDYXRjaCAoYW5kIGlnbm9yZSkgU0lHUElQRSBzaWduYWxzLgogICAJRGlzYXBwZWFyaW5nIHN1YmFnZW50cyB0aGVyZWZvciBhcHBlYXIgYXMgbm9ybWFsIEkvTyBmYWlsdXJlcwogICAKMjAwMC0wNS0xMiAwMjoyNCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChhZ2VudHgvcHJvdG9jb2wuYyk6CiAgICAgLSBJbXBsZW1lbnQgb3BhcXVlLWVuY29kZWQgZmxvYXQgJiBkb3VibGUgdHlwZXMKICAgICAtIEJyaW5nIHBhY2tldCBkdW1wIGluIGxpbmUgd2l0aCB0aGUgbWFpbiBsaWJyYXJ5IHN0eWxlCiAgICAgLSBBZGQgcGFja2V0IGR1bXAgY2FwYWJpbGl0eSBmb3Igb3V0Z29pbmcgUERVcwogICAKMjAwMC0wNS0xMCAxNjo1MiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoc25tcGQuMS5kZWYpOiBkb2N1bWVudCAtcC4KICAgCjIwMDAtMDUtMTAgMTY6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IGFsd2F5cyB1c2UgdGhlIGRlZmF1bHQgdHJhbnNwb3J0IG1hcHBpbmcsIG5vdCB0aGUgbGFzdCBvbmUuCiAgIAoyMDAwLTA1LTEwIDE2OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcGQuYzoKCiAgIC0gKGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcGQuYyk6IGltcGxlbWVudCBtdWx0aXBsZSB0cmFuc3BvcnQKICAgICBtYXBwaW5ncyB2aWEgLXAgW3RyYW5zcG9ydDpdcG9ydFtAYWRkcmVzc10uCiAgIAoyMDAwLTA1LTEwIDExOjA4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIGZpeCB1ZHBzdGF0IC0tPiB0Y3BzdGF0CiAgIAoyMDAwLTA1LTEwIDA3OjU5ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfYWRtaW4uYywgbWFzdGVyX3JlcXVlc3QuYwo6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QsIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgLSBIYW5kbGUgc3ViYWdlbnQgZGlzYXBwZWFyaW5nIHdpdGhvdXQgd2FybmluZwogICAKMjAwMC0wNS0xMCAwNzo1NyAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMgc25tcGxpYi9zbm1wX2FwaS5oKToKICAgICAtIFByb3ZpZGUgYSBtZWNoYW5pc20gdG8gaGFuZGxlIGFzeW5jaHJvbm91cyBzZW5kIGZhaWx1cmVzLgogICAKMjAwMC0wNS0xMCAwNjoxMyAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IExvZ2ljYWwgTk9UPyBCaXR3aXNlIE5PVD8gV2hvJ2xsIG5vdGljZSB0aGUgZGlmZmVyZW5jZSBhbnl3YXkhCiAgIAoyMDAwLTA1LTEwIDA1OjM0ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogSGFuZGxlIG5vbi1yZXNwb25zaXZlIHN1YmFnZW50cwogICAKMjAwMC0wNS0xMCAwNTozMyAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMKOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBtaWJJSS9zeXNPUlRhYmxlLmMpOiBEb24ndCBhc3N1bWUgc3Vic2Vzc2lvbiBsaW5rIGlzIHZhbGlkCiAgIAoyMDAwLTA1LTEwIDA1OjI5ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogRGVmaW5pdGlvbnMgZm9yIHNlc3Npb24gY2xvc2Vkb3duIGhhbmRsaW5nCiAgIAoyMDAwLTA1LTA5IDE0OjQyICBtc2xpZmNhawoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIGFsc28gY2xlYW4gV2luMzIgYmluYXJ5IG9iamVjdHMsIGFuZCBjb3JlIGZpbGVzLgogICAKMjAwMC0wNS0wOSAxNDozNCAgbXNsaWZjYWsKCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIHRvdWNoIHVwIHRoZSAiY2xlYW4iIHJ1bGUuCiAgIAoyMDAwLTA1LTA5IDExOjMyICBtc2xpZmNhawoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIHVudGlsIERhdmUncyB2ZXJzaW9uIHdpbnMsIG5lZWQgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSB0byBidWlsZCBXaW4zMiBhZ2VudC4KICAgCjIwMDAtMDUtMDkgMTE6MzEgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBmaXggc29tZSBXaW4zMiBidWlsZHMgKHNpZ25hbHM/IHdlIGRvbid0IG5lZWQgbm8gc3RlZW5raW5nIHNpZ25hbHMhKQogICAKMjAwMC0wNS0wOSAxMTozMCAgbXNsaWZjYWsKCiAgICogbHRtYWluLnNoOgoKICAgUmVtb3ZlIHRyYWlsaW5nIENSIFsweDBkXSBmcm9tIG9uZSBsaW5lLgogICAKMjAwMC0wNS0wOSAwODo1MCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLnRvcCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogZml4IGxpbmsgdGltZSBwcm9ibGVtcwogICAgIHdpdGggYUNDIChvciBhbnkgb3RoZXIgdW5rbm93biBjb21waWxlcikuCiAgIAoyMDAwLTA1LTA5IDA4OjQ3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluCjoKCiAgIC0gKE1ha2VmaWxlLnRvcCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogZml4IGxpbmsgdGltZSBwcm9ibGVtcwogICAgIHdpdGggYUNDIChvciBhbnkgb3RoZXIgdW5rbm93biBjb21waWxlcikuCiAgIAoyMDAwLTA1LTA5IDA3OjQzICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogU2VuZCBvdXQgcmUtZGVsZWdhdGVkIHJlcXVlc3RzCiAgIAkoYW5kIGZpeCBhIHByb2JsZW0gd2l0aCBzcGVjaWZ5aW5nIHRoZSBlbmQtb2YtcmFuZ2UgdmFsdWUpCiAgIAoyMDAwLTA1LTA5IDA3OjQwICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKGFnZW50eC9zdWJhZ2VudC5jKTogRml4IGhhbmRsaW5nIG9mIGVycm9yIHJlc3BvbnNlIGdlbmVyYXRpb24KICAgCShieSBhbmFsb2d5IHdpdGggcmVjZW50IGNoYW5nZXMgdG8gc25tcF9hZ2VudC5jKQogICAKMjAwMC0wNS0wOSAwNzozNCAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogSGFuZGxlIEFnZW50WCAiZW5kLW9mLXJhbmdlIiBpbmRpY2F0aW9uLgogICAJKFRoaXMgaXMgbm90IHRoZSBjbGVhbmVzdCB3YXkgb2YgZG9pbmcgdGhpbmdzLAogICAJIGJ1dCB3b3JrcyBmb3Igbm93LiAgV2UgY2FuIHRpZHkgdXAgbGF0ZXIpLgogICAKMjAwMC0wNS0wOSAwNzoxNiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFVzZSBNSUIgcmVnaXN0cnkgJ3N0YXJ0JyB2YWx1ZXMKICAgCShyYXRoZXIgdGhhbiB0aGUgb3JpZ2luYWwgbmFtZSByZWdpc3RlcmVkKQogICAJVGhpcyBoYW5kbGVzIHN1YnNlcXVlbnQgcGFydCBvZiAnc3BsaXQnIHJhbmdlcyBwcm9wZXJseS4KICAgCjIwMDAtMDUtMDggMTE6MDggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBJIGNhbid0IGJlbGlldmUgdGhlIGxhc3QgY2hlY2tpbiBldmVuIGNvbXBpbGVkIChsdWNrKS4KICAgCjIwMDAtMDUtMDggMTE6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBmaXggbGlicmFyeSBsaXN0LgogICAKMjAwMC0wNS0wNSAwOTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICAtIChkaXNraW8uYyk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKICAgICAtIGRpc2sgaW8gc3VwcG9ydCBmb3IgQlNEL09TLgogICAKMjAwMC0wNS0wNSAwOTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jIChWNC0xLTEtcGF0Y2hlcy4xKSwgYXQuYzoKCiAgIC0gKGF0LmMpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CiAgICAgLSBmaXggYSB6ZXJvIGJ5dGUgbWFsbG9jIGJ1ZyAobW9zdGx5IG5vdGljZWQgd2l0aCAtbGVmZW5jZSkuCiAgIAoyMDAwLTA1LTA1IDA5OjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgKFY0LTEtMS1wYXRjaGVzLjUpLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbgo6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gQWxiZXJ0IENoaW4tQS1Zb3VuZzoKICAgICAtIC0td2l0aC1saWJ3cmFwIGltcHJvdmVtZW50cy4KICAgCjIwMDAtMDUtMDUgMDk6MDAgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IHN1YmFnZW50LmMsIG1hc3Rlcl9yZXF1ZXN0LmMKOgoKICAgLSAoYWdlbnR4L3N1YmFnZW50LmMgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOgogICAgIC0gU2lnbmlmaWNhbnQgaW1wcm92ZW1lbnRzIHRvIEFnZW50WCBwcm9jZXNzaW5nCiAgIAkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQogICAKMjAwMC0wNS0wNSAwODo1OCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX2FnZW50Lmg6CgogICAtIChzbm1wbGliL3NubXBfYXBpLltjaF0gc25tcGxpYi9zbm1wX2NsaWVudC5jIGFnZW50L3NubXBfYWdlbnQuW2NoXSk6CiAgICAgLSBNaW5vciBjaGFuZ2VzIHRvIGFzc2lzdCB3aXRoIEFnZW50WCBkZXZlbG9wbWVudAogICAJKFRoZXNlIG1heSBub3QgYmUgYWJzb2x1dGVseSBuZWNlc3NhcnksIGJ1dCB0aGV5IGdldCB0aGluZ3Mgd29ya2luZyBhZ2FpbiEpCiAgIAoyMDAwLTA1LTA0IDE2OjIxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbWlub3IgdW5pbXBvcnRhbnQgLS13aXRob3V0LW9wZW5zc2wgZml4LgogICAKMjAwMC0wNS0wNCAxNjoxOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gSm9obiBMLiBWaWxsYWxvdm9zOgogICAgIC0gYWxsb3cgLS13aXRob3V0LW9wZW5zc2wgdG8gd29yay4KICAgCjIwMDAtMDUtMDQgMTY6MTUgIGhhcmRha2VyCgogICAqIG1pYnMvOiBNYWtlZmlsZS5pbiAoVjQtMS0xLXBhdGNoZXMuMiksIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgdGhlIERJU01BTi1TQ1JJUFQtTUlCLnR4dAogICAKMjAwMC0wNS0wNCAxNjowMSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBBbGJlcnQgQ2hpbi1BLVlvdW5nOgogICAgIC0gaW5zdGFsbCBVQ0QtRElTS0lPLU1JQi50eHQuCiAgIAoyMDAwLTA1LTA0IDA4OjI2ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9jbGllbnQuW2NoXSk6IE5ldyByb3V0aW5lICdzbm1wX2Nsb25lX3ZhcmJpbmQoKScKICAgCQkoRnJvbSBhIHN1Z2dlc3Rpb24gYnkgUmVpbmVyIEJlbmluZ2EpCiAgIAoyMDAwLTA1LTA0IDA4OjI0ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBWYXJpb3VzIG1pbm9yIGZpeGVzCiAgIAkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQogICAKMjAwMC0wNS0wNCAwMToyOSAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgIC0gKHNubXBfYWdlbnQuW2NoXSk6IEhhbmRsZSBpbmRleC9zdGF0dXMgaW5mb3JtYXRpb24gc2VwYXJhdGVseSBmcm9tIFBEVS4KICAgCUFsc28gbWVhbnMgdGhhdCBkZWxlZ2F0ZWQgcmVxdWVzdHMgaGF2ZSBhY2Nlc3MgdG8gdmFyaWFibGUgaW5kZXhlcwogICAJCShCYXNlZCBvbiBhIHN1Z2dlc3Rpb24gZnJvbSBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDUtMDQgMDE6MDAgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIC0gKHVjZC1zbm1wL3Byb2MuYyk6IEluaXRpYWxpemUgbmV3bHkgbWFsbG9jZWQgc3RydWN0dXJlCiAgIAkoVGhhbmtzIHRvIEplZmYgV2lsc29uIC0gc2VlIEJVRyAjMjMxKQogICAKMjAwMC0wNS0wMyAwOTowNiAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaCwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSAoc25tcF9hZ2VudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgLSBDbG9uZSBQRFUgd2l0aGluIGluaXRfYWdlbnRfc25tcF9zZXNzaW9uLgogICAgICAgTmV3IHJvdXRpbmUgJ2ZyZWVfYWdlbnRfc25tcF9zZXNzaW9uJwogICAJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDUtMDMgMDg6MTcgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFdoZW4gcmV0dXJuaW5nIGFuIGVycm9yIHJlc3BvbnNlLAogICAJdXNlIGEgY2xlYW4gY29weSBvZiB0aGUgb3JpZ2luYWwgcmVxdWVzdCBQRFUuCiAgIAoyMDAwLTA1LTAzIDA4OjE0ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oOgoKICAgLSAoc25tcF9hZ2VudC5bY2hdKTogUm91dGluZSB0byBoYW5kbGUgdmFyaWFibGVzIGluZGl2aWR1YWxseQogICAJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDUtMDMgMDQ6MzcgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IENoZWNrIGFjY2Vzc2liaWxpdHkgb2YgZXhhY3QgcmVxdWVzdHMgYmVmb3JlIHByb2Nlc3NpbmcKICAgCShhbmQgcmVtb3ZlIHJlZHVuZGFudCAnZ2VuZXJpYycgU0VUIGhhbmRsaW5nKQogICAKMjAwMC0wNS0wMSAxMTozNCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBmaXggcHJpbnRpbmcgb2YgQklUUyB2YXJpYWJsZXMKICAgCjIwMDAtMDUtMDEgMDY6NTUgIG1hcnoKCiAgICogcGVybC9TTk1QL3QvbWliLnQ6CgogICAgYXBwbGllZCBwYXRjaCBmcm9tIFN0ZXZlIFBoZXJhbiBTbm9kZ3Jhc3MgdG8gZml4IGluY29tcGF0aWJpbGl0eSB3aXRoIHBlcmw1LjYgcmVmIHN0cmluZ2lmaWNhdGlvbgogICAKMjAwMC0wNC0yOSAwNzo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYwo6CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLmluLCBhZ2VudF9yZWdpc3RyeS5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gdXNlIHNpZ2FjdGlvbiB3aGVuIGF2YWlsYWJsZS4KICAgCjIwMDAtMDQtMjggMDc6MzYgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgc25tcGQuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBmaXggc2lnbmFsIGhhbmRsaW5nLgogICAKMjAwMC0wNC0yNyAxNDo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBzbm1wZGYuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wZGYuYyk6IGltcGxlbWVudCBhIHJlbW90ZSBkZiBjb21tYW5kIHZpYSBzbm1wCiAgICAgLSAobmVlZHMgdGhlIGhvc3QgcmVzb3VyY2VzIG1pYiB3b3JraW5nIG9uIHRoZSByZW1vdGUgc3lzdGVtKS4KICAgCjIwMDAtMDQtMjcgMTA6NTcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoTWFrZWZpbGUudG9wLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBycG0gaXMgbm93CiAgICAgcmVxdWlyaW5nIHlldCBhbm90aGVyIGxpYnJhcnk6IGxpYnBvcHQuCiAgIAoyMDAwLTA0LTI2IDE1OjIwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICAtIChNYWtlZmlsZS50b3ApOiBydW4gbGlidG9vbCAtLWZpbmlzaCB3aXRob3V0IC1uIChnbyBhaGVhZCBhbmQgZG8gdGhlIGNtZHMpCiAgIAoyMDAwLTA0LTI2IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluKToKICAgICAtIG1vcmUgbGlidG9vbCBmaXhlcyAoLnNvIHZlcnNpb25pbmcsIHByb3Blcmx5IGluc3RhbGwuLi4pCiAgIAoyMDAwLTA0LTI2IDE0OjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzLy5jdnNpZ25vcmUsIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvLmN2c2lnbm9yZSwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgosIGxvY2FsL01ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4sCiAgIG1pYnMvTWFrZWZpbGUuaW4sIHNubXBsaWIvLmN2c2lnbm9yZSwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovLmN2c2lnbm9yZSwgKi9NYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCiAgICAgY29uZmlndXJlLmluLCBsdGNvbmZpZywgbHRtYWluLnNoKToKICAgICAtIHVzZSBsaWJ0b29sIGZvciBidWlsZGluZy4KICAgICAgIC0gQ2VydGFpbmx5LCBJIG11c3QgaGF2ZSBicm9rZSBzb21ldGhpbmcgaW4gdGhlIHByb2Nlc3MuIChtYWtlIGRlcGVuZCwgZWcpCiAgIAoyMDAwLTA0LTI2IDE0OjE1ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLAogICBhY2xvY2FsLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgbHRjb25maWcsIGx0bWFpbi5zaCwgYWdlbnQvLmN2c2lnbm9yZSwKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9hZ2VudHgvLmN2c2lnbm9yZQosIGFnZW50L21pYmdyb3VwL2R1bW15Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9taWJJSS8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9taXNjLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3Zlc3RpbnRlcm5ldHQvLmN2c2lnbm9yZToKCiAgIC0gKCovLmN2c2lnbm9yZSwgKi9NYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCiAgICAgY29uZmlndXJlLmluLCBsdGNvbmZpZywgbHRtYWluLnNoKToKICAgICAtIHVzZSBsaWJ0b29sIGZvciBidWlsZGluZy4KICAgICAgIC0gQ2VydGFpbmx5LCBJIG11c3QgaGF2ZSBicm9rZSBzb21ldGhpbmcgaW4gdGhlIHByb2Nlc3MuIChtYWtlIGRlcGVuZCwgZWcpCiAgIAoyMDAwLTA0LTI2IDA4OjExICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBuZXcgc2Vjb25kYXJ5IHNsb2dhbi4KICAgCjIwMDAtMDQtMjYgMDc6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wdXNtLmM6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wdXNtLmMpOiBBdHRlbXB0IHRvIHBhcnNlIHRoZSBQRFUgd2hlbiBhIHJlcG9ydCBpcwogICAgIGJlaW5nIHNlbnQgc28gdGhhdCB0aGUgcmVxdWVzdGlkIGNhbiBiZSB1c2VkIGluIHRoZSBvdXRnb2luZyByZXBvcnQuCiAgICAgVGhpcyBzaG91bGQgZml4IGEgcHJvYmxlbSB3aGVyZSBTTk1QIFJlc2VhcmNoJ3MgRW1hbnRlIGFnZW50IGlzCiAgICAgZG9pbmcgZW5naW5lSUQgZGlzY292ZXJ5IHByb2JlcyBiYXNlZCBvbiB0aGUgcmVxdWVzdF9pZCAod2hpY2ggaXMgYQogICAgIGZhaXJseSBwb29yIGNob2ljZSBhcyB0aGUgbWVzc2FnZV9pZCB3b3VsZCBiZSBhIGJldHRlciBvbmUgdG8gbWF0Y2gKICAgICBvbiBpbiBnZW5lcmFsIGFuZCBpcyB0aGUgb25seSBwb3NzaWJsZSB0aGluZyB0byB1c2UgaW4gY2FzZXMgd2hlcmUKICAgICB0aGUgcmVwb3J0IGlzIGVuY3J5cHRlZCkuCiAgIAoyMDAwLTA0LTI1IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBtZW50aW9uIHRoYXQgdGhlIHBlcmwgbW9kdWxlIGlzIGluY2x1ZGVkIHdpdGggdGhlIHNvdXJjZS4KICAgCjIwMDAtMDQtMjUgMDg6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBtaXNjIC1EZHVtcCBmaXhlcy4KICAgCjIwMDAtMDQtMjUgMDg6MDIgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wdGFibGUuYyAoVjQtMS0xLXBhdGNoZXMuNCksIHNubXB0YWJsZS5jOgoKICAgLSAoc25tcHRhYmxlLmMpOiBjaGVjayBmb3IgZW5kIG9mIG1pYiB2aWV3IGV4Y2VwdGlvbnMgKHYyYywgdjMpLgogICAKMjAwMC0wNC0yNCAxMToyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IC1EIHN1cHBvcnQgZm9yIHRob3NlICJvbGRlciIgcHJvdG9jb2xzIHRoYXQgc2hvdWxkbid0CiAgICAgYmUgdXNlZCBhbnltb3JlICh2MSwgdjJjKS4KICAgCjIwMDAtMDQtMjQgMTA6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsCiAgIHNubXAuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfZGVidWcuYwosIHNubXBfZGVidWcuaCwgc25tcHVzbS5jOgoKICAgLSAoYXNuMS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBzbm1wLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLAogICAgIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oLCBzbm1wdXNtLmMpOgogICAgIC0gdGltZXN0YW1wcyBjYW4gYmUgcHJpbnRlZCBhcyBhIG51bWVyaWMgbnVtYmVyIG9ubHkgKC1PdCkuCiAgICAgLSBtb3JlIGNvbmZpZ3VyYWJsZSBwYWNrZXQgZHVtcGluZyBjb2RlIGZvciBib3RoIHNlbmQgYW5kIHJlY2VpdmUuCiAgICAgICAtIHVzZXMgbmV3IC1EIHRva2VuczogZHVtcGggKGhlYWRlcnMpLCBkdW1weCAoaGV4KSwgZHVtcHYKICAgICAgICAgKHZhbHVlcykuICBkdW1weF8gYW5kIGR1bXB2XyAobm90ZSB0aGUgX3MpIG1ha2UgaXQgZWF0IHNwYWNlCiAgICAgICAgIChhbmQgbmV3bGluZSkgYmVmb3JlIHRoZSBzZWdtZW50IGluIHF1ZXN0aW9uLiAgVHJ5IC1EZHVtcCB0aGVuCiAgICAgICAgIC1EZHVtcGgsZHVtcHZfIHRvIHNlZSBleGFtcGxlcy4KICAgICAgIC0gdG9kbzoKICAgICAgICAgLSBiZXR0ZXIgaG9yaXpvbnRhbGx5IGZvcm1hdGVkIGluZm9ybWF0aW9uIChwcm9iYWJseSB1c2luZyAiJU5VTXMiKS4KICAgICAgICAgLSBVU00gaXMgY2FsbGVkIGFmdGVyIHBkdSBidWlsZGluZyAobWFrZXMgc2Vuc2UgYnV0IGlzIGJhY2t3YXJkcwogICAgICAgICAgIHZpc3VhbGx5IGluIHRoZSBkdW1wZWQgcGFja2V0KS4KICAgICAgICAgLSBvcHRpb24gdG8gc3RyaXAgZGF0YXR5cGUgdG9rZW4gKGllIEludGVnZXI6KS4KICAgCjIwMDAtMDQtMjQgMDk6MzcgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHZlcnNpb24uaCwgRkFRLCBSRUFETUUsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLnByZTAgKQogICAKMjAwMC0wNC0yNCAwOToxMyAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oLCBSRUFETUUsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbgosIEZBUToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggRVhULjQuMi5wcmUwICkKICAgCjIwMDAtMDQtMjEgMTQ6MTMgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wd2Fsay5jIChWNC0xLTEtcGF0Y2hlcy4xKSwgc25tcHdhbGsuYzoKCiAgIC0gKHNubXB3YWxrLmMpOiBmaXggR0VUIGNhbGwgZm9yIGFuIHNubXB3YWxrLiAod2FzIHVzaW5nIGEgR0VUTkVYVCBQRFUsIGFjaykuCiAgIAoyMDAwLTA0LTIxIDEwOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpOiBtb3JlIHVfbG9uZyAtPiBzaXplX3QgZm9yIGVuZ2luZUlEIGxlbi4KICAgCjIwMDAtMDQtMjEgMDg6MTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYyAoVjQtMS0xLXBhdGNoZXMuNSksIG1pYi5jOgoKICAgLSAobWliLmMpOiBmaXggZnByaW50X2Rlc2NyaXB0aW9uIHRvIGNoZWNrIGZvciBudWxsIHN1YnRyZWVzLgogICAKMjAwMC0wNC0yMSAwODoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXB2My5jLCBzbm1wdjMuaDoKCiAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IHVzZSBzaXplX3QgZm9yIGVuZ2luZWlkIGxlbmd0aHMuCiAgIAoyMDAwLTA0LTE5IDExOjAyICBtYXJ6CgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgY2hhbmdlZCBtb2RlX3QgdHlwZWRlZiB0byBhZ3JlZSB3aXRoIHdoYXQgQWN0aXZlU3RhdGUgcGVybCB1c2VzIChhbnlvbmUgaGF2ZSBhIHByb2JsZW0gd2l0aCB0aGlzPykKICAgCjIwMDAtMDQtMTkgMTA6NTkgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBhZGRlZCBNYXJjIExlaG1hbiBwYXRjaCB0byBlbnN1cmUgYWxsb2MvZGVhbGxvYyB1c2Ugc2FtZSBtZWNoYW5pc20gKHBlcmwgdnMuIHN5c3RlbSBkZWZhdWx0KQogICAKMjAwMC0wNC0xOSAwODoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MoKSBhbHdheXMgYmxvY2sgaWYgY2FsbGVyIHJlcXVlc3RlZCBpdC4KICAgCjIwMDAtMDQtMTkgMDQ6MzQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYywgc25tcHYzLmg6CgogICBtb3ZlIHN0YXRpYyBkZWNsIHRvIC5jO21pbm9yIGNhc3RpbmcgYWJvdXQgdG8gc3VwcG9ydCBhQ0MKICAgCjIwMDAtMDQtMTggMTE6MTEgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBTeW5jaCBkZXZlbCBicmFuY2ggd2l0aCBwYXRjaGVzIGJyYW5jaC4KICAgCjIwMDAtMDQtMTggMTE6MDcgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsCiAgIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKICAgKFY0LTEtMS1wYXRjaGVzLlszLDMsMywyLDMsMl0pLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgo6CgogICBEZWZpbmUgb3B0YXJnIGZvciBhcHBzIHVzZTsgRGVmaW5lIHZhY21faXNfY29uZmlndXJlZCBmb3IgYWdlbnQgdXNlLgogICAKMjAwMC0wNC0xOCAwNzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgLSAodm1zdGF0LmMsIHZtc3RhdC5oLCBVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBNaXp1a2kgSG9uZGE6CiAgICAgLSBpbXBsZW1lbnQgcmF3IGNwdSB1c2FnZSBudW1iZXJzLgogICAKMjAwMC0wNC0xOCAwMzoxOCAgZGF2ZXMKCiAgICogbWFuL3NubXB0YWJsZS4xLCBhcHBzL3NubXB0YWJsZS5jIChWNC0xLTEtcGF0Y2hlcy5bMSwzXSksCiAgIG1hbi9zbm1wdGFibGUuMSwgYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKG1hbi9zbm1wdGFibGUuMSBhcHBzL3NubXB0YWJsZS5jKToKICAgICAtIENvbW1hbmQtc3BlY2lmaWMgJy1DJyBvcHRpb25zIGZvciBzbm1wdGFibGUKICAgCjIwMDAtMDQtMTggMDI6MDEgIGRhdmVzCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYyAoVjQtMS0xLXBhdGNoZXMuNCksIHNubXBfcGFyc2VfYXJncy5jCjoKCiAgIC0gKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMpOiBIYW5kbGUgcHJldmlvdXMgZm9ybSBvZiAtWiBvcHRpb24gYXMgd2VsbAogICAKMjAwMC0wNC0xNyAxNTozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogZml4IC1aIGlmIGFyZ3MgYXJlIHdyb25nLgogICAKMjAwMC0wNC0xNyAxNTozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgbWFuL3NubXBjbWQuMToKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wY21kLjEpOiBmaXggLVogdG8gdXNlIGEgJywnLgogICAKMjAwMC0wNC0xNyAxNTowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBtdGFfc2VuZG1haWwuYywgbXRhX3NlbmRtYWlsLmgKOgoKICAgLSAobXRhX3NlbmRtYWlsLmMsIG10YV9zZW5kbWFpbC5oKTogUGF0Y2ggZnJvbSBDaHJpc3RvcGggTWFtbWl0enNjaDoKICAgICAtIHVwZGF0ZSBvbiB0aGUgc2VuZG1haWwgbW9kdWxlLgogICAKMjAwMC0wNC0xNyAxNTowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXQuYyAoVjQtMS0xLXBhdGNoZXMuMSksIHZtc3RhdC5jCjoKCiAgIC0gKHZtc3RhdC5jKTogUGF0Y2ggZnJvbSBKb2huIEwuIFZpbGxhbG92b3M6CiAgICAgLSBmaXggc3NDcHVTeXN0ZW0sIHNzQ3B1VXNlciwgc3NDcHVJZGxlLgogICAKMjAwMC0wNC0xNyAxNDoxOCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUudG9wLCBNYWtlZmlsZS5pbik6IHByb3Blcmx5IHVzZSBMTl9TIGZvciBsaW5raW5nIHNubXBpbmZvcm0uCiAgIAoyMDAwLTA0LTE3IDEzOjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcHVzbS5jLCBzbm1wdjMuYywgc25tcHYzLmg6CgogICAtIChzbm1wdXNtLmMsIHNubXB2My5jLCBzbm1wdjMuaCk6IGVuZ2luZUlEIGNoYW5nZXMgZm9yIGJldHRlciBhQ0Mgc3VwcG9ydC4KICAgCjIwMDAtMDQtMTcgMTM6NDQgIGhhcmRha2VyCgogICAqIGFwcHMvLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgc25tcGluZm9ybS4KICAgCjIwMDAtMDQtMTcgMDk6NTggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IGZpeCByb3cgY3JlYXRpb24uCiAgIAoyMDAwLTA0LTE3IDA3OjI1ICBkYXZlcwoKICAgKiBhZ2VudC86IGF1dG9fbmxpc3QuYywgc25tcGQuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jCiAgIChWNC0xLTEtcGF0Y2hlcy5bMiwzLDJdKSwgYXV0b19ubGlzdC5jLCBzbm1wZC5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAtIChhdXRvX25saXN0LmMgc25tcGQuYyBhZ2VudHgvbWFzdGVyLmMpOiBEb24ndCBleGl0IG9uIGZhaWx1cmUgd2l0aCAnLXInCiAgIAoyMDAwLTA0LTE0IDE1OjA3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIG1hbi9zbm1wY21kLjEsIG1hbi9zbm1wZ2V0LjEsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCiAgICAgc25tcHN0YXR1cy5jLCBzbm1wY21kLjEsIHNubXBnZXQuMSwgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6CiAgICAgLSBtb3ZlIC1JZiB0byAtQ2YgYW5kIGludmVydCBiZWhhdmlvdXIuCiAgIAoyMDAwLTA0LTE0IDE1OjA2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIGRlYnVnZ2luZyBvdXRwdXQgKG9wcHMpLgogICAKMjAwMC0wNC0xNCAwOTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2ZXJzaW9uaW5mby5jIChWNC0xLTEtcGF0Y2hlcy4yKSwKICAgdmVyc2lvbmluZm8uYzoKCiAgIC0gKHZlcnNpb2luZm8uYyk6IGFscmlnaHQuICBXaG8gbWFkZSB2ZXJzaW9uQ2xlYXJDYWNoZSBST05MWT8KICAgCjIwMDAtMDQtMTMgMDU6NDkgIG5iYQoKICAgKiBtYW4vc25tcHRyYW5zbGF0ZS4xOgoKICAgLSBzbm1wdHJhbnNsYXRlLjE6IGRlY3VtZW50IHRoZSAtdyB3aWR0aCBvcHRpb24KICAgCjIwMDAtMDQtMTIgMTI6MDUgIG1zbGlmY2FrCgogICAqIGJ1Zy1yZXBvcnQgKFY0LTEtMS1wYXRjaGVzLjEpLCBidWctcmVwb3J0OgoKICAgaGlkZSB1c2VyJ3MgaG9zdG5hbWU7IHByb21wdCBiZWZvcmUgc2VuZGluZyBlLW1haWw7IHByb21wdCB0byBzYXZlIGFzIGZpbGUuCiAgIAoyMDAwLTA0LTEyIDExOjIyICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMgKFY0LTEtMS1wYXRjaGVzLjMpLCBtaWIuYzoKCiAgIGZpeCAlZiglcykKICAgCjIwMDAtMDQtMTIgMDk6MjkgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBjbWQuMSAoVjQtMS0xLXBhdGNoZXMuMiksIHNubXBjbWQuMToKCiAgIC0gKHNubXBjbWQuMSk6IGRvY3VtZW50IC1JZi4KICAgCjIwMDAtMDQtMTIgMDk6MTcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHB1dCArKyBiYWNrIGluIHRoYXQgYWNjaWRlbnRpY2FsbHkgZ290IGNoZWNrZWQgaW4uCiAgIAoyMDAwLTA0LTEyIDA5OjE2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBzZXQuYzoKCiAgIC0gKHNubXBzZXQuYyk6IHB1dCBzcGFjZSBiYWNrIGluIHVzYWdlIGxpbmUuCiAgIAoyMDAwLTA0LTEyIDA5OjEyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9taWIuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICAgIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKToKICAgICAtIEFkZCBhIG5ldyBvcHRpb24gLUlmIHRvIHNwZWNpZnkgZml4aW5nIG9mIFBEVXMuCiAgICAgICAtIEFueW9uZSBrbm93IGEgYmV0dGVyIHBsYWNlIHRvIHB1dCB0aGlzIG9wdGlvbj8KICAgICAtIEFwcGxpY2F0aW9ucyBkb24ndCBkbyB0aGlzIGJ5IGRlZmF1bHQgYW55bW9yZSwgYW5kIHlvdSBjYW4ndCBpbiBzbm1wc2V0LgogICAKMjAwMC0wNC0xMiAwNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jLAogICBzbm1wbGliL3ZhY20uaDoKCiAgIC0gKHZhY21fdmFycy5jLCB2YWNtLmMsIHZhY20uaCk6IGZpeCB0byBhbGxvdyBubyB2MS92MmMgcmVxdWVzdHMgd2hlbgogICAgIGNvbmZpZ3VyZWQgZm9yIGp1c3QgdjMuCiAgIAoyMDAwLTA0LTEyIDA2OjQ5ICBtc2xpZmNhawoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgbGlic25tcF9kbGwvbGlic25tcC5kZWYKICAgKFY0LTEtMS1wYXRjaGVzLlsxLDFdKSwgd2luMzIuZHN3LCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZgo6CgogICBmaXggTVNWQyBidWlsZCBmb3IgZW5jb2RlX2tleWNoYW5nZSwgYW5kIGFkZCBtb3JlIHN5bWJvbHMgZm9yIHJlbGVhc2UgYnVpbGRzCiAgIAoyMDAwLTA0LTEyIDA1OjMyICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBjb3JyZWN0IHBhcnNpbmcgb2Ygc3ViLXR5cGVzIHRleHR1YWwgY29udmVudGlvbnMuIEFsbG93IHBhcnNpbmcKICAgCW9mIE1BQ1JPIGludm9jYXRpb25zIGZvciBzdGFuZGFyZCBzeW1ib2xzCiAgIAoyMDAwLTA0LTEyIDA1OjMxICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9wYXJzZS5oOgoKICAgLSBwYXJzZS5bY2hdLCBzbm1wdHJhbnNsYXRlLmM6IGFsbG93IHNwZWNpZmljYXRpb24gb2Ygd2l0aCBmb3IgLVRwCiAgIAoyMDAwLTA0LTEyIDA1OjMwICBuYmEKCiAgICogbWlicy86IEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIEhPU1QtUkVTT1VSQ0VTLVRZUEVTLnR4dAo6CgogICAtIEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIEhPU1QtUkVTT1VSQ0VTLVRZUEVTLnR4dDogYWxpZ24gd2l0aCBwdWJsaXNoZWQKICAgCVJGQyAyNzkwCiAgIAoyMDAwLTA0LTExIDE1OjMzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbWFrZSBjb25maWdfYWRkX21pYigpIGFjdHVhbGx5IGxvb2sgZm9yCiAgICAgdGhlIG1pYiBpbiAkc3JjZGlyL21pYnMvYmxhaCBhbmQgaW5zdGFsbCBpdCBpZiBmb3VuZC4KICAgCjIwMDAtMDQtMTEgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYywgc25tcHYzLmg6CgogICAtIChzbm1wdjMuYywgc25tcHYzLmgpOiBtYWtlIG1hY2FkZHIgZW5naW5laWQgc2V0dXAgbm90IGxpbnV4CiAgICAgc3BlY2lmaWMsIGJ1dCAjZGVmaW5lcyBhcmUgY2hlY2tlZCBpbnN0ZWFkLgogICAKMjAwMC0wNC0xMSAxNToyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuaDoKCiAgIC0gKHNubXBfbG9nZ2luZy5oKTogcmVtb3ZlIG9sZCBjYWxsYmFjayB0eXBlZGVmIG5vIGxvbmdlciBuZWVkZWQuCiAgIAoyMDAwLTA0LTExIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcHYzLmMsIHNubXB2My5oOgoKICAgLSAoc25tcHYzLmMsIHNubXB2My5oKTogUGF0Y2ggZnJvbSBKb2huIEwuIFZpbGxhbG92b3M6CiAgICAgLSBlbmFibGUgZW5naW5lSUQgdG8gYmUgc2V0IGZyb20gTUFDQWRkci4KICAgCjIwMDAtMDQtMTEgMDk6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogbXRhX3NlbmRtYWlsLmMsIG10YV9zZW5kbWFpbC5oCjoKCiAgIC0gKG10YV9zZW5kbWFpbC5jLCBtdGFfc2VuZG1haWwuaCk6IE5ldyBtb2R1bGUgZnJvbSBDaHJpc3RvcGggTWFtbWl0enNjaDoKICAgICAtIGltcGxlbWVudHMgdGhlIE1UQS1NSUIgZm9yIG1vbml0b3Jpbmcgc2VuZG1haWwuCiAgIAoyMDAwLTA0LTExIDA5OjUwICBoYXJkYWtlcgoKICAgKiBtaWJzLzogTVRBLU1JQi50eHQsIE5FVFdPUkstU0VSVklDRVMtTUlCLnR4dDoKCiAgIC0gKE1UQS1NSUIudHh0LCBORVRXT1JLLVNFUlZJQ0VTLU1JQi50eHQpOiBuZXcgbWlicyBmb3IgbmV3IG1vZHVsZXMuCiAgIAoyMDAwLTA0LTExIDAzOjI1ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBTYXZlL3Jlc3RvcmUgb3JpZ2luYWwgc3RhdFAgdmFsdWUgZm9yIFNFVCBoYW5kbGluZy4KICAgCjIwMDAtMDQtMTEgMDI6MzUgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy4yKSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogUmVwb3J0IGZhaWx1cmVzIGZyb20gQUNUSU9OIHBoYXNlIG9mIFNFVCBjb3JyZWN0bHkuCiAgIAoyMDAwLTA0LTExIDAxOjU3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfcmVxdWVzdC5jIChWNC0xLTEtcGF0Y2hlcy4zKSwKICAgbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRHluYW1pY2FsbHkgcmVzaXplIHN1YmFnZW50IHJlcXVlc3RzCiAgIAkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQogICAKMjAwMC0wNC0xMCAwNTowOCAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jCiAgIChWNC0xLTEtcGF0Y2hlcy5bMCwyXSksIHNubXBfYWdlbnQuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChzbm1wX2FnZW50LmMgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggbXVsdGktc3ViYWdlbnQgcmVxdWVzdHMKICAgCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCiAgIAoyMDAwLTA0LTA3IDEyOjI1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmMsIHNubXBsaWIvc25tcHVzbS5jIChWNC0xLTEtcGF0Y2hlcy5bMiwyXSksCiAgIGFwcHMvc25tcHRyYXAuYywgc25tcGxpYi9zbm1wdXNtLmM6CgogICAtIChzbm1wdHJhcC5jLCBzbm1wdXNtLmMpOgogICAgIC0gZml4IHNubXB2MyB0cmFwcyB0byBiZSBhdXRob3JpdGF0aXZlIGZyb20gdGhlIGNsaWVudCBzaWRlLCBub3QgdGhlCiAgICAgICByZWNlaXZlciBzaWRlLiAgc25tcHYzIGluZm9ybXMgc3RheSBhcyBpcy4gIFVuZm9ydHVuYXRlbHksIGZvcgogICAgICAgY29tbWFuZCBsaW5lIGFwcHMgdGhpcyBkb2Vzbid0IG1ha2UgYSB3aG9sZSBsb3Qgb2Ygc2Vuc2UgYnV0IGlzCiAgICAgICByaWdodCBpbiB0ZXJtcyBvZiBob3cgdGhlIHByb3RvY29sIHdvcmtzIGFuZCB0aGlzIGlzIGhlbmNlCiAgICAgICBzb21ld2hhdCBvZiBhIGhhY2suCiAgIAoyMDAwLTA0LTA3IDA3OjUwICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuOSksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEhhbmRsZSB2MiBleGNlcHRpb24gdHlwZXMgaW4gdjEgcXVlcmllcwogICAKMjAwMC0wNC0wNyAwNzoxNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXB2My5jCiAgIChWNC0xLTEtcGF0Y2hlcy5bNCwyLDNdKSwgYXBwcy9zbm1wdHJhcGQuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHRyYXBkLmMsIHJlYWRfY29uZmlnLmMsIHNubXB2My5jKToKICAgICAtIGFsbG93IE5VTEwgaGVscCBsaW5lcyBmb3IgY29uZmlnIGRpcmVjdGl2ZXMgYW5kIHVzZSBpdCB0byBoaWRlCiAgICAgICBpbnRlcm5hbCBkaXJlY3RpdmVzIHVzZWQgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZS4KICAgCjIwMDAtMDQtMDYgMTU6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgLSB0dXJuIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG1hY3JvcyBiYWNrIGludG8gZnVuY3Rpb25zIHNvCiAgICAgICBkZWZhdWx0X3N0b3JlLmggZGVwZW5kZW5jaWVzIGdvIGF3YXkgYWdhaW4uCiAgICAgLSBjcmVhdGUgYSBmbGFnIHRvIG5vdCBwcm9iZSBmb3IgZW5naW5lSURzIGR1cm5pbmcgc2Vzc19vcGVuKCkuCiAgIAoyMDAwLTA0LTA2IDA3OjIwICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBGaXggbWlzaGFuZGxlZCBDb3VudGVyNjQgcGFyc2luZwogICAKMjAwMC0wNC0wNiAwMzozNiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpOiBGaXggdXNhZ2UgbWVzc2FnZSBhbGlnbm1lbnQuCiAgIAoyMDAwLTA0LTA2IDAzOjMxICBkYXZlcwoKICAgKiBtYW4vOiBzbm1wZC4xLmRlZiAoVjQtMS0xLXBhdGNoZXMuMSksIHNubXBkLjEuZGVmOgoKICAgLSAobWFuL3NubXBkLjEuZGVmKTogRG9jdW1lbnQgdGhlIEFnZW50WCBzb2NrZXQgY29tbWFuZC1saW5lIG9wdGlvbgogICAKMjAwMC0wNC0wNSAwODo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvRkFRMkhUTUw6CgogICAtIChGQVEySFRNTCk6IGl0J3MgYmVlbiBzaXR0aW5nIGluIG15IHBlcnNvbmFsIHNyYyB0cmVlIGZvciA+IDIgeWVhcnMuCiAgIAoyMDAwLTA0LTA1IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL2xjZF90aW1lLmMsCiAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdXNtLmgsIHNubXBsaWIvc25tcHYzLmMKOgoKICAgLSAobWliaW5jbC5oLCB1c21Vc2VyLmMsIHNubXB0cmFwZC5jLCBsY2RfdGltZS5jLCBzY2FwaS5jLCBzbm1wX2FwaS5jLAogICAgIHNubXB1c20uYywgc25tcHVzbS5oLCBzbm1wdjMuYyk6CiAgICAgLSBtYWtlIHNubXB0cmFwZCBoYW5kbGUgdjMgdXNlcnMgcHJvcGVybHksIChhbmQgc2h1dGRvd24gcHJvcGVybHkgYXMgd2VsbCkuCiAgICAgLSBhIG1vcmUgZ2VuZXJpYyB1c2VyIHN0b3JhZ2Ugcm91dGluZSBhZGRlZCB0byBzbm1wdXNtLmMgYW5kIHVzZWQgaW4KICAgICAgIHVzbVVzZXIuYyB3aXRoIGEgc2lkZSBlZmZlY3Qgb2YgbmVlZGluZyBjYWxsYmFjay5oIGFib3ZlIHNubXB1c20uaC4KICAgCjIwMDAtMDQtMDUgMDg6MjcgIGhhcmRha2VyCgogICAqIGxvY2FsL3Jzbm1wOgoKICAgLSAocnNubXApOiAtPiAvdXNyL2Jpbi9wZXJsCiAgIAoyMDAwLTA0LTA1IDA4OjI0ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IG1pc2MgbWlub3IgYWRkaXRpb25zIHRvIC8KICAgCjIwMDAtMDQtMDQgMTE6MDMgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy44KSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRW5zdXJlIHVuaW1wbGVtZW50ZWQgb2JqZWN0cyByZXR1cm4gJ25vU3VjaE9iamVjdCcKICAgCjIwMDAtMDQtMDMgMTQ6NTcgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEluaXRpYWxpemUgc3RhdFAuCiAgIAoyMDAwLTA0LTAzIDA5OjEyICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuNyksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEVuc3VyZSBhIHYxIFNFVCByZXR1cm5zIGEgdjEgZXJyb3Igc3RhdHVzLgogICAKMjAwMC0wNC0wMyAwODozMiAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogWWVhciB3YXMgIjEwMCIgZm9yIDIwMDAgKG5vdGljZWQgYnkgSmF5IFJpZGRlbGwpOgogICAKMjAwMC0wNC0wMyAwNzo1MyAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTEtMS1wYXRjaGVzLjYpLCBzbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBFbnN1cmUgU0VUcyBmYWlsIGlmIG9uZSB2YXJiaW5kIGRvZXMuCiAgIAoyMDAwLTAzLTMxIDA3OjI1ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jIChWNC0xLTEtcGF0Y2hlcy4yKSwgc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6IEZpeCB0byByZXBvcnQgJ25vU3VjaE9iamVjdCcgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzCiAgIAoyMDAwLTAzLTMxIDA3OjEzICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBEb24ndCByZXBlYXQgdGhlIGZpcnN0IGZvdXIgYnl0ZXMgaW4gYSBQRFUgZHVtcAogICAKMjAwMC0wMy0zMSAwNzowNCAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jIChWNC0xLTEtcGF0Y2hlcy4yKSwgc25tcF9sb2dnaW5nLmMKOgoKICAgLSAoc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyk6IEhhbmRsZSBsb2dnaW5nIGVtcHR5IHN0cmluZ3MgKGUuZy4gYSBudWxsIGluZGVudCkKICAgCjIwMDAtMDMtMzAgMDA6MTUgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy41KSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogSW5pdGlhbGlzZSB0aW1lb3V0IHN0cnVjdHVyZSBwcm9wZXJseQogICAJKFRoYW5rcyB0byBhc2hpcG1hbkBlcmdncm91cC5jb20pCiAgIAoyMDAwLTAzLTI3IDEwOjMyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dydW4uYyAoVjQtMS0xLXBhdGNoZXMuMiksIGhyX3N3cnVuLmMKOgoKICAgcmVtb3ZlIHRyYWlsaW5nIG5ld2xpbmUgZnJvbSBoclNXUnVuTmFtZSB2YWx1ZXMuCiAgIAoyMDAwLTAzLTI0IDA5OjA5ICBtc2xpZmNhawoKICAgKiBtYW4vc25tcGluZm9ybS4xOgoKICAgdG8gc3luYyB3aXRoIHBhdGNoZXMgYnJhbmNoLgogICAKMjAwMC0wMy0yNCAwNTowNyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIHNubXB0cmFwZC5jOiBjb3JyZWN0bHkgZnJlZSB0aGUgcmVwb25zZSBpZiBzZW5kaW5nIGl0IGZhaWxzCiAgIAoyMDAwLTAzLTI0IDA0OjIyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICB4eF9zeW5jaF9yZXNwb25zZTogYXZvaWQgZnJlZWluZyBQRFUgdHdpY2UuCiAgIAoyMDAwLTAzLTIzIDIzOjI5ICBuYmEKCiAgICogbWFuL01ha2VmaWxlLmluLCBtYW4vc25tcGNtZC4xLCBtYW4vc25tcHRyYXAuMQosIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHRyYXAuYzoKCiAgIC0gc25tcGNtZC4xLCBzbm1wdHJhcC4xLCBzbm1wdHJhcC5jLCBNYWtlZmlsZS5pbjogSW5zdGFsbCBhbmQgZG9jdW1lbnQKICAgCXNubXBpbmZvcm0uCiAgIAoyMDAwLTAzLTIzIDA5OjU4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBFbnF1ZXVlIG9ubHkgY29tcGxldGUgcmVxdWVzdF9saXN0IGVudHJ5OyBSZWR1Y2Ugc2NvcGluZyBvZiBjYWxsYmFjayB2YXJzLgogICAKMjAwMC0wMy0yMyAwMzowMiAgbmJhCgogICAqIG1hbi9zbm1waW5mb3JtLjE6CgogICBmaWxlIHNubXBpbmZvcm0uMSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDMtMjIgMDg6MTMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIHByaW50ZiA/CiAgIAoyMDAwLTAzLTIxIDExOjEyICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1vZGlmeSBGLiBTdHJhdXNzJyBwYXRjaCBwZXIgTi4gQmFnZ2VzZW4ncyBzdWdnZXN0aW9uOiByZW1vdmUgZXhwb3J0LWR5bmFtaWMuCiAgIAoyMDAwLTAzLTIxIDA5OjE0ICBtc2xpZmNhawoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIG1vcmUgc21vb3RoIHNhaWxpbmcgd2l0aCBXaW4zMiAuRExMIC4gRExMRVhQT1JULCBhbnlvbmUgPwogICAKMjAwMC0wMy0yMSAwOTowNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKOgoKICAgd2luMzIgYnVpbGQgY2hlY2s6IG5vIHNpZ2FjdGlvbiwgU0lHQ0xEIGRlZmluZWQuCiAgIAoyMDAwLTAzLTIxIDA4OjQ3ICBkYXZlcwoKICAgKiBhZ2VudC86IGRzX2FnZW50LmgsIHNubXBkLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChkc19hZ2VudC5oIHNubXBkLmMgbWliZ3JvdXAvYWdlbnR4L3ttYXN0ZXIsc3ViYWdlbnR9LmMpOgogICAgIC0gIENvbW1hbmQtbGluZSBvcHRpb24gZm9yIHNwZWNpZnlpbmcgQWdlbnRYIHBvcnQKICAgICAgICAoYmFzZWQgb24gcGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzKQogICAKMjAwMC0wMy0yMSAwODozOCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFN1cHBvcnQgJ2hvc3Q6cG9ydCcgcmVwcmVzZW50YXRpb24gb2YgcGVlcm5hbWVzCiAgIAoyMDAwLTAzLTIxIDA0OjA1ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuNCksIHNubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IE1pc3NpbmcgbmV3LWxpbmUgb24gZGVidWcgb3V0cHV0CiAgIAoyMDAwLTAzLTIxIDAyOjUyICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHRjcC5jLCB0Y3AuaCwgdGNwVGFibGUuYwosIHRjcFRhYmxlLmgsIHVkcC5jLCBpY21wLmMsIHVkcC5oLAogICB1ZHBUYWJsZS5jLCB1ZHBUYWJsZS5oLCBpY21wLmgsIGlwLmMsCiAgIHN5c3RlbV9taWIuYzoKCiAgIC0gKG1pYklJL3t0Y3AsdWRwLGlwLGljbXB9KikgQ29udGludWluZyBtaWJJSSBjb2RlIGNsZWFudXAKICAgCjIwMDAtMDMtMjAgMTE6MTQgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDb21tZW50IC1DIC0tIGRvIG5vdCB1c2UgdGhpcyBmbGFnLgogICAKMjAwMC0wMy0xNyAxNTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYzoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMpOiBzaXplb2YoeCkqKGxlbisxKSBub3Qgc2l6ZW9mKHgpKmxlbisxCiAgIAoyMDAwLTAzLTE2IDAwOjEwICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluLCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICAtIGNvbmZpZ3VyZSwgaHJfcHJpbnQuYzogZGV0ZWN0IHN5c3RlbSBwcmludGVycyAoU3lzVi9scHN0YXQsICpCU0QvY2dldG5leHQsCiAgIAlMaW51eC9wcmludGNhcCkKICAgCjIwMDAtMDMtMTUgMTg6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBTZWNvbmQgcGFydDogYWxsIG1lbWJlcnMgb2Ygc3RydWN0IHNubXBfaW5kZXggYXJlIHBvaW50ZXJzLgogICAKMjAwMC0wMy0xNSAxNTowNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEZpeCBtZW1vcnkgbGVhayB3aXRoIHVucmVnaXN0ZXJfaW5kZXguCiAgIAoyMDAwLTAzLTE1IDE1OjA3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEZpeCBtZW1vcnkgbGVhayB3aGVuIGNsZWFuaW5nIHVwIHRyYXAgdmFyaWFibGVzLgogICAKMjAwMC0wMy0xNSAwODo0OCAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2FwaS5jIHNubXBfY2xpZW50LmMpOiBJbml0aWFsaXNlIHZhcmJpbmQgZGF0YSBob29rIGVsc2V3aGVyZSBhcyB3ZWxsLgogICAKMjAwMC0wMy0xNSAwNzo1NyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX3JlcXVlc3QuYyAoVjQtMS0xLXBhdGNoZXMuMSksCiAgIG1hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEZpeCBpbmZpbml0ZSBsb29wIHByb2JsZW0gd2hlbiB3YWxraW5nIHN1YmFnZW50LgogICAKMjAwMC0wMy0xNSAwNjowOSAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogQXZvaWQgY2FsbGluZyByZWFkIHJvdXRpbmUgZm9yIGVhY2ggU0VUIGhhbmRsaW5nIHBhc3MuCiAgIAlOLkI6ICBUaGlzIGhhc24ndCBiZWVuIHRlc3RlZCB3aXRoIEFnZW50WCBzdWJhZ2VudHMgeWV0CiAgIAoyMDAwLTAzLTE1IDA2OjA3ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuW2NoXSk6IFByb3ZpZGUgaG9vayBmb3IgaW50ZXJuYWwgdmFyYmluZC1yZWxhdGVkIGRhdGEKICAgCjIwMDAtMDMtMTUgMDU6MjIgIGRhdmVzCgogICAqIGFnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIC0gKGFnZW50L3Zhcl9zdHJ1Y3QuaCk6IFVzZSBhIHNpbmdsZSBtYWdpYyBudW1iZXIgZm9yIE1JQiByZWdpc3RyeSBuYW1lIGxlbmd0aHMuCiAgIAoyMDAwLTAzLTE1IDAxOjUxICBkYXZlcwoKICAgKiBzbm1wbGliLzogc3lzdGVtLmggKFY0LTEtMS1wYXRjaGVzLjEpLCBzeXN0ZW0uaDoKCiAgIC0gKHNubXBsaWIvc3lzdGVtLmgpOiBEb24ndCBkZWNsYXJlIGdldHRpbWVvZmRheSgpIGlmIHRoZSBzeXN0ZW0gcHJvdmlkZXMgaXQuCiAgIAkoRml4IHByb3ZpZGVkIGJ5IFJvbiBNZXZpc3NlbikKICAgCjIwMDAtMDMtMTQgMDc6NTcgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy4zKSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRG9uJ3Qgb3ZlcndyaXRlIHNhdmVkIHN0YXR1cyB3aGVuIGNoZWNraW5nIGFjY2Vzcy4KICAgCjIwMDAtMDMtMTQgMDc6NTIgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy4yKSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogUmV0dXJuIGEgcmVzcG9uc2UsIGV2ZW4gaWYgdGhlIHJlcXVlc3QgZmFpbGVkLgogICAKMjAwMC0wMy0xMyAxNTozMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oOgoKICAgLSBpcGZ3YWNjLmg6IGZpeCB0aGUgTUlCIG5hbWUKICAgCjIwMDAtMDMtMTAgMTI6NDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSk6IGF1dG9jb25mIHJ1bgogICAKMjAwMC0wMy0xMCAxMTowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvTWFrZWZpbGUuZGxtb2Q6CgogICAtIChNYWtlZmlsZS5kbG1vZCk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIGRsbW9kIGJ1aWxkIE1ha2VmaWxlIGV4YW1wbGUuICBOZWVkcyBpbmNvcnBlcmF0aW9uIHdpdGggbWFpbiBjb25maWd1cmUuCiAgIAoyMDAwLTAzLTEwIDExOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IGJldHRlciBzaWduYWwgY2hlY2sgZnJvbSBNaWNoYWVsIFNsaWZjYWsKICAgCjIwMDAtMDMtMTAgMTA6NTkgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELURMTU9ELU1JQi50eHQ6CgogICAtIChVQ0QtRExNT0QtTUlCLnR4dCk6IHR5cG8gZm91bmQgYnkgTWljaGFlbCBTbGlmY2FrLgogICAKMjAwMC0wMy0xMCAxMDo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYsCiAgIG1pYnMvVUNELURMTU9ELU1JQi50eHQ6CgogICAtIChkbG1vZC5jLCBkbG1vZC5oLCBzbm1wZC5jb25mLjUuZGVmLCBVQ0QtRExNT0QtTUlCLnR4dCk6IFBhdGNoIGZyb20KICAgICBGcmFuayBTdHJhdXNzOgogICAgIC0gUmVpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZGxtb2QgbWliIG1vZHVsZToKICAgICAgIG8gbWliZ3JvdXAvbWlzYy9kbG1vZCArIGRsbW9kcy9kbG1vZF9taWIgLT4gbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QKICAgICAgIG8gZml4ZWQgcmVnaXN0cmF0aW9uICh1Y2RhdmlzLnVjZEV4cGVyaW1lbnRhbC4xNCBpbnN0ZWFkIG9mIHVjZGF2aXMuMTQpCiAgICAgICBvIGFkZGVkIGNvbmZpZ3VyZSBzdHVmZiBmb3IgSEFWRV9TTlBSSU5URiwgd2hpY2ggd2FzIHVzZWQgYnkgZGxtb2QuYwogICAgICAgbyByZW1vdmVkIGBfZHluYW1pY18nIHByZWZpeGVzIGZyb20gaW5pdC9kZWluaXQgZnVuY3Rpb25zCiAgICAgICBvIG1hZGUgZGxtb2RJbmRleCBub3QtYWNjZXNzaWJsZSAob25seSBpbXBsZW1lbnRhdGlvbiwgbm90IGRlZmluaXRpb24pCiAgICAgICBvIHJlbW92ZWQgdGhlIGFzbl9wYXJzZV9YWFggc3R1ZmYKICAgICAgIG8gbWFkZSBlbnRyaWVzIHdpdGggc3RhdGUgYGVycm9yJyBhYmxlIHRvIGFjY2VwdCBzdGF0ZSBgbG9hZCcKICAgICAgIG8gbWFkZSB0aGUgd29tYmF0IGV4YW1wbGUgdXNhYmxlIGFzIHN0YXRpYyBhbmQgZHluYW1pYyBtb2R1bGUKICAgICAgIG8gYWRkZWQgc2ltcGxlIGNvbmZpZ19wYXJzZSBmdW5jdGlvbmFsaXR5IHRvIHRoZSB3b21iYXQgZXhhbXBsZQogICAKMjAwMC0wMy0xMCAxMDo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wZC5jCjoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBkLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBzaWduYWwgcmVnaXN0cnkgc3lzdGVtIGltcGxlbWVudGVkIChuZWVkcyB0byBiZSByZWRvbmUgYWxsb3dpbmcKICAgICAgIG11bHRpcGxlIGNhbGxiYWNrcyBhbmQgaGFuZGxlcnMgZm9yIGFsbCBzaWduYWxzKS4KICAgICAtIGFyYml0cmFyeSBmaWxlIGRlc2NyaXB0b3Ivc29ja2V0IHJlZ2lzdHJhdGlvbi4KICAgICAgIC0gdGhpcyBpcyBub3QgdGhlIHdheSBpdCBzaG91bGQgYmUgZG9uZSAodXNlIHNlc3Npb25zIGluc3RlYWQpLgogICAKMjAwMC0wMy0xMCAxMDo0NCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNjb25maWcuaCwKICAgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbgosIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLAogICAgIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6CiAgICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gY2xlYW4gdXAgc2hhcmVkIGxpYnJhcnkgdXNhZ2UuCiAgIAoyMDAwLTAzLTEwIDEwOjE2ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKTogYXV0b2hlYWRlciByZS1hcnJhbmdlZCBzb21lIHN0dWZmLgogICAKMjAwMC0wMy0wNyAxMTo1OCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIG1vcmUgdG91Y2h1cHMgdG8gYWxsb3cgVW5peFdhcmUgYnVpbGQgdG8gY29tcGxldGUuCiAgIAoyMDAwLTAzLTA3IDExOjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaDoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCk6IG1ha2UgTUFYX1NVQklEUyBsYXJnZXIgYW5kIGEgbXVsdGlwbGUgb2YgOC4KICAgCjIwMDAtMDMtMDcgMTA6MTMgIG1zbGlmY2FrCgogICAqIEZBUSwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBJbnRyb2R1Y2UgLS1lbmFibGUtbWluaS1hZ2VudCB0byBjb25maWd1cmUgYWdlbnQgKHNubXB2Mywgbm8gbWliSUkgaW50ZXJmYWNlcykuCiAgIAoyMDAwLTAzLTA3IDA5OjAzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgYXNzdW1lICJzbm1wYXBwIiBpZiBubyBhcmcgcGFzc2VkIHRvIGluaXRfc25tcHYzLgogICAKMjAwMC0wMy0wNyAwODo1OCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICByZW1vdmUgaW5pdF9taWIoKSBjYWxsIC0gbm90IGFwcHJvcHJpYXRlIGhlcmUuCiAgIAoyMDAwLTAzLTA3IDA4OjM1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBMZXQgdGhlIGFpeDQgcGF0Y2ggd29yay4KICAgCjIwMDAtMDMtMDcgMDc6MDggIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX3ZhcnMuYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIHRyaW0gZmF0IGZyb20gcmVjZW50IGNoZWNrLWlucy4KICAgCjIwMDAtMDMtMDYgMjA6MDEgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluOgoKICAgY2xlYW5lZCB1cCBTQ08gVW5peFdhcmUgYnVpbGQuCiAgIAoyMDAwLTAzLTA2IDE2OjQwICBtc2xpZmNhawoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlnLmd1ZXNzLCBjb25maWcuaC5pbiwKICAgY29uZmlnLnN1YiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBzdGFydCBzdXBwb3J0IGZvciBTQ08gVW5peFdhcmUgNSBhcyBzdnI1LgogICAKMjAwMC0wMy0wNiAxMDo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYzoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgIC0gZG9uJ3QgY2hlY2sgcmFuZ2VzIGlmIG5vdCByZXF1ZXN0ZWQuCiAgIAoyMDAwLTAzLTA2IDEwOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLCBzbm1wZC5jCjoKCiAgIC0gKHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CiAgICAgLSBmaXggZXhpdCgpaW5nIGJlaGF2aW91ciBpbiB0aGUgbGlidWNkYWdlbnQgbGlicmFyeS4KICAgCjIwMDAtMDMtMDYgMTA6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgIC0gLW4gcHJpbnRzIG51bWVyaWMgSVAgYWRkcnMuCiAgIAoyMDAwLTAzLTA2IDEwOjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suaCwgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oCjoKCiAgIC0gKGNhbGxiYWNrLmgsIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaCk6IElkZWEgZnJvbSBhc2hpcG1hbkBlcmdncm91cC5jb206CiAgICAgLSBjYWxsYmFjayBmdW5jdGlvbiAodXNpbmcgY2FsbGJhY2suaCkgYWRkZWQgZm9yIGV4dGVybmFsIGxvZ2dpbmcuCiAgIAoyMDAwLTAzLTA1IDA1OjI1ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZml4IHRvIHByZXNlcnZlIHRyYWlsaW5nIG11bHRpIGNvbXBvbmVudCBpbnN0YW5jZSBpZCdzIGF0IHRoZSBlbmQgb2YKICAgc3ltYm9saWMgbWliIG5hbWVzKGUuZy4sIGZvby42LjcpIHdoZW4gZG9pbmcgdHJhbnNsYXRlT2JqLgogICAKMjAwMC0wMy0wNCAxMTozNCAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZTogc3VwcG9ydCAtLXdpdGhvdXQtb3BlbnNzbCwgZXZlbiBpZiBPcGVuU1NMCiAgIAlpcyBhdmFpbGFibGUKICAgCjIwMDAtMDMtMDQgMTE6MzAgIG5iYQoKICAgKiBhZ2VudC86IGtlcm5lbC5jLCBrZXJuZWwuaCwgc25tcF92YXJzLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jCjoKCiAgIC0gYWdlbnQvKHZhcmlvdXMpOiBnbG9iYWxpemUgdGhlIGt2bV90ICprZCB2YXJpYWJsZQogICAKMjAwMC0wMy0wNCAxMToyNiAgbmJhCgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYywgbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICAtIG1pYl9tb2R1bGVzLmMsIGhyX3N0b3JhZ2UuYzogcHJlLXByb2Nlc3NvciAjIHNob3VsZCBiZSBpbiBjb2x1bW4gMQogICAKMjAwMC0wMy0wNCAxMToxNyAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpbmV0LmMsIGluZXQ2LmM6CgogICAtIGluZXQuYywgaW5ldDYuYzogc3Vydml2ZSAtdiAyYyBleGNlcHRpb24gcmVwbGllcwogICAKMjAwMC0wMy0wNCAxMToxNyAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcF9hcGkuYzogcmVtb3ZlIGEgc3VwZXJmbHVvdXMgJiBpbiBmcm9udCBvZiBhbiBhcnJheQogICAKMjAwMC0wMy0wNCAxMToxNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYwosIHVjZC1zbm1wL21lbW9yeV9uZXRic2QxLmgsIHVjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMKLCB1Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5oOgoKICAgLSB1Y2Rfc25tcC5oLCB7bWVtb3J5LHZtc3RhdH1fbmV0YnNkMS5bY2hdOiBzdXBwb3J0IGZvciBOZXRCU0QKICAgCjIwMDAtMDMtMDQgMTE6MTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIC0gaHJfZGlzay5jOiBmaXhlcyBmb3IgTmV0QlNECiAgIAoyMDAwLTAzLTA0IDExOjEwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIC0gdmVyc2lvbmluZm8uYzogZG9uJ3QgcmV0dXJuIHRoZSB0cmFpbGluZyBuZXdsaW5lCiAgIAoyMDAwLTAzLTA0IDExOjA4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgLSBocl9zd3J1bi5jOiBmaXggcHJvY2VzcyBzaXplIGZvciBGcmVlQlNEIDMgYW5kIE5ldEJTRAogICAKMjAwMC0wMy0wNCAxMTowNSAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuaDoKCiAgIC0gYWdlbnRfdHJhcC5oOiBmaXggYSB3cm9uZyBwcm90b3R5cGUKICAgCjIwMDAtMDMtMDQgMTE6MDQgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSBzbm1wdGFibGUuYzogZml4IHByb2JsZW1zIHByaW50aW5nIHRhYmxlIG5hbWUgYW5kIGhlYWRlcnMgd2hlbiB1c2luZwogICAJLU9TIGZvcm1hdAogICAKMjAwMC0wMy0wMiAxMTo1MCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcF9hcGkuYzogZml4IGFkZHJlc3MgbGVuZ3RoIGluZm8gZm9yIHRjcCBjb25uZWN0CiAgIAoyMDAwLTAzLTAyIDExOjQ4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgLSBsb2FkYXZlLmM6IGZpeCBmb3IgQUlYIDQKICAgCjIwMDAtMDMtMDIgMDg6MzAgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXAuYywgaXBBZGRyLmMsIGlwQWRkci5oCiwgaXAuaDoKCiAgIC0gKG1pYjIvaXAuW2NoXSBtaWIyL2lwQWRkci5bY2hdKTogRmlyc3Qgc3RhYiBhdCB0aWR5aW5nIHVwIG1pYjIgc3VwcG9ydC4KICAgCjIwMDAtMDMtMDEgMDg6MzIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbXRfc3VwcG9ydC5oOgoKICAgZml4IGJ1ZyAxODAgZm9yIGN5Z3dpbiBidWlsZCB3aXRoIF9SRUVOVFJBTlQ7IHBlciBhc2hpcG1hbkBlcmdncm91cC5jb20KICAgCjIwMDAtMDItMjkgMTQ6MzAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEludm9rZSBzbm1wX3Nlc3Nfc2VuZCBmcm9tIHdpdGhpbiBzbm1wX3JlYWQgdG8gYXZvaWQgbXV0ZXggZGVhZGxvY2tzLgogICAKMjAwMC0wMi0yOCAxNDoyNSAgbmJhCgogICAqIGFnZW50Lzogc25tcGQuaCwgbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIHNubXBkLmgsIHNtdXguYzogZG9uJ3QgaW5pdGlhbGl6ZSBzbXV4IG1hc3RlciBpbiBzdWIgYWdlbnQKICAgCjIwMDAtMDItMjggMTQ6MTYgIG5iYQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gc25tcF92YXJzLmM6IHVzZSBTVUJfQUdFTlQgc3ltYm9sCiAgIAoyMDAwLTAyLTI4IDE0OjEyICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IHNwcmludF9ieV90eXBlIHNob3VsZCBoYW5kbGUgQVNOX0JJVF9TVFIKICAgCjIwMDAtMDItMjggMTQ6MTAgIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogY29ycmVjdGx5IGNhbGwgdGhlIC1JIG9wdGlvbnMgaW5wdXQgb3B0aW9ucwogICAKMjAwMC0wMi0yOCAxMDo0NyAgbXNsaWZjYWsKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9hdXRvX25saXN0LmM6CgogICBmaXggYnVnICMxNzYgKEFJWCA0IC0gdXNlIGtubGlzdCBpbiBsaWV1IG9mIG5saXN0KQogICAKMjAwMC0wMi0yNCAxNzoxNyAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBhcHBseSBwYXRjaCB0byBmaXggYnVnIG5vLiAxNzcuCiAgIAoyMDAwLTAyLTI0IDEzOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oLCByZWFkX2NvbmZpZy5jLAogICBzbm1wX2FwaS5jOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5oLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jKTogbmV3IHNubXAuY29uZiBrZXl3b3JkCiAgICAgdG8gZm9yY2UgdGhlIHBhcnNlciB0byBpZ25vcmUgdW5rbm93biB0b2tlbnMuCiAgIAoyMDAwLTAyLTI0IDAzOjU5ICBtc2xpZmNhawoKICAgKiBtYW4vc25tcHNldC4xOgoKICAgZG9jdW1lbnQgVU5TSUdORUQzMiBhbmQgQ09VTlRFUjMyICgndScgYW5kICdjJykgaW4gc25tcHNldCAoZ3JhdGlzIGFzaGlwbWFuQGVyZ2dyb3VwLmNvbSkKICAgCjIwMDAtMDItMjQgMDM6NTYgIG1zbGlmY2FrCgogICAqIG1hbi9zbm1wdHJhcC4xLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGQgc3VwcG9ydCBmb3IgQ09VTlRFUjMyIHRvIHNubXBfYWRkX3ZhcjsgZG9jdW1lbnQgVU5TSUdORUQzMiBhbmQgQ09VTlRFUjMyCiAgICgndScgYW5kICdjJykgaW4gc25tcHRyYXAgKGdyYXRpcyBhc2hpcG1hbkBlcmdncm91cC5jb20pCiAgIAoyMDAwLTAyLTIzIDIzOjA2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgLSBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOiBmaXggc2V0dGluZyBvZiBvY3RldCBzdHJpbmdzLgogICAKMjAwMC0wMi0yMyAwMjowOSAgbmJhCgogICAqIHNubXBsaWIvbXRfc3VwcG9ydC5oOgoKICAgLSBtdF9zdXBwb3J0Lmg6IGEgYmFkIDsgaW4gdGhlIEMrKyBicmFja2V0aW5nCiAgIAoyMDAwLTAyLTIzIDAyOjA5ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gc3lzdGVtLmM6IHJlbW92ZSBzb21lIHN1cGVyZmx1b3VzIGluZGlyZWN0aW9ucyBpbiBzdHJjYXNlY21wCiAgIAoyMDAwLTAyLTIzIDAyOjA3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAtIHZtc3RhdF9zb2xhcmlzLmM6IG1ha2Ugc3VyZSB3ZSBhZ3JlZSB3aXRoIHRoZSBwcm90b3R5cGUgb2YgZ2V0cGFnZXNpemUhCiAgIAoyMDAwLTAyLTIyIDE1OjMxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0Lmg6CgogICAtIHBhc3NfcGVyc2lzdC5oOiBkZWNsYXJlIGluaXRfcGFzc19wZXJzaXN0CiAgIAoyMDAwLTAyLTIxIDE2OjE3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jLCB3aW4zMi9jb25maWcuaDoKCiAgIEFwcGx5IFIuIFN0b3J5J3MgcGF0Y2ggZm9yIG1rZGlyaGllciBhbmQgc3RybmNhc2VjbXAgb24gd2luMzIKICAgCjIwMDAtMDItMjEgMDc6MzkgIG1zbGlmY2FrCgogICAqIG1hbi86IHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wX2FsYXJtLjMsCiAgIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wdHJhcGQuY29uZi41LmRlZiwgc25tcHVzbS4xCjoKCiAgIGZpeCBidWcgMTcxICh0aGFua3MgdG8gTGFycnkgUGFybWVsZWUpLgogICAKMjAwMC0wMi0yMSAwNTo1NiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICByZW1vdmUgZnJlZSBhZnRlciBzbm1wX2Nsb3NlIChkb24ndCBmcmVlIHR3aWNlISkKICAgCjIwMDAtMDItMjEgMDQ6NTggIG1zbGlmY2FrCgogICAqIG1hbi86IG1pYl9hcGkuMywgcmVhZF9jb25maWcuMy5kZWYsIHNubXBfYWxhcm0uMwosIHNubXBfc2Vzc19hcGkuMzoKCiAgIEFkZGVkIGRlc2NyaXB0aW9uIGluIFNIX05BTUUgZm9yIHNldmVyYWwgbWFuLXBhZ2VzIChjL28gcmFnbmFyaykKICAgCjIwMDAtMDItMTggMTI6MTQgIG1zbGlmY2FrCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBzbm1wX2Nsb3NlLjMsIHNubXBfZnJlZV9wZHUuMwosIHNubXBfb3Blbi4zLCBzbm1wX3JlYWQuMywgc25tcF9zZWxlY3RfaW5mby4zCiwgc25tcF9zZW5kLjMsIHNubXBfc2Vzc19hc3luY19zZW5kLjMsCiAgIHNubXBfc2Vzc19jbG9zZS4zLCBzbm1wX3Nlc3NfZXJyb3IuMywgc25tcF9zZXNzX2luaXQuMwosIHNubXBfc2Vzc19vcGVuLjMsIHNubXBfc2Vzc19yZWFkLjMsCiAgIHNubXBfc2Vzc19zZWxlY3RfaW5mby4zLCBzbm1wX3Nlc3Nfc2VuZC4zLAogICBzbm1wX3Nlc3Nfc2Vzc190aW1lb3V0LjMsIHNubXBfc2Vzc19zZXNzaW9uLjMsCiAgIHNubXBfc2Vzc190aW1lb3V0LjMsIHNubXBfdGltZW91dC4zOgoKICAgcmVmZXIgdGhlIC5zbyBtYWNybyB0byBtYW4zOyBhZGp1c3QgTWFrZWZpbGUuaW4gdG8gdXNlIHRoZSByZW5hbWVkIGZpbGUuCiAgIAoyMDAwLTAyLTE3IDA1OjE3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgaW5jbHVkZSBwYXNzX3BlcnNpc3QgaW4gdGhlIHJlcXVpcmVkIGxpc3QuCiAgIAoyMDAwLTAyLTE3IDAyOjAwICBkYXZlcwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgY29uZmlnLmguaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgLSAoY29uZmlndXJlKiB1Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYyk6CiAgICAgLSBQcm92aWRlIG1pc3NpbmcgJ2dldHBhZ2VzaXplJyByb3V0aW5lIGZvciBTb2xhcmlzIDIuNAogICAgICAgKFRoYW5rcyB0byBSYWduYXIgS2r4cnN0YWQpCiAgIAoyMDAwLTAyLTE2IDIwOjE3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfc3lzdGVtLmMsIG1pYklJL3NubXBfbWliLmMKLCBtaWJJSS9zeXNPUlRhYmxlLmMsIG1pYklJL3N5c3RlbV9taWIuYzoKCiAgIGluY2x1ZGUgbWliaW5jbC5oIGluIGhyX3N5c3RlbS5jIHRvIGZpeCBidWcgIzE1OS4KICAgCjIwMDAtMDItMTYgMTY6MzUgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jOgoKICAgcmVtb3ZlIGF1dG9fbmxpc3Qgb2YgdW51c2VkICJzd2FwbGlzdCIgc3ltYm9sLgogICAKMjAwMC0wMi0xNiAxNToxNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBwYXRjaCBzdWdnZXN0ZWQgYnkgUmljayBCZWFtYW4gPGJlYW1hbkBtZWRpYW9uZS5uZXQ+CiAgIAoyMDAwLTAyLTE2IDE0OjU4ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJzCiAgIAoyMDAwLTAyLTE2IDE0OjU3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogdmFjbS5jLCB2YWNtLmg6CgogICB0ZXN0IGxlbmd0aHMgYmVmb3JlIGFsbG9jYXRpbmcgbWVtb3J5OyB1c2UgbmV3IFZBQ01TVFJJTkdMRU4gY29uc3RhbnQuCiAgIAoyMDAwLTAyLTE2IDA4OjE4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBpbmNsdWRlIHRpbWUuaCBvbmNlCiAgIAoyMDAwLTAyLTE2IDA4OjAyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYzoKCiAgIHJlc3RvcmUgI2lmIEhBVkUuLi5JTl9QQ0JfSAogICAKMjAwMC0wMi0xNSAyMzo0NyAgbmJhCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuaAo6CgogICAtIGNvbmZpZ3VyZS5pbiwgaXBjaC5bY2hdOiBpbml0aWFsIHN0YWJzIGF0IExpbnV4IGlwdjYgc3VwcG9ydC4gQSBsb3QgaXMKICAgCWxhY2tpbmcgaW4gdGhlIGtlcm5lbCBzdGF0aXN0aWNzIHRob3VnaC4KICAgCjIwMDAtMDItMTUgMjM6NDAgIG5iYQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKOgoKICAgLSAobWFueSk6IGNvbmZpZ3VyZSBjaGVjayBmb3IgbmV0aW5ldC9pcDYuaAogICAKMjAwMC0wMi0xNSAyMzozNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgLSBocl9maWxlc3lzLmM6IE1OVFRZUEUgZGVmaW5lcyBmb3IgRnJlZUJTRC0zIGFuZCBCU0RJLTQsIGFuZCBtb3ZpbmcgdGhlCiAgIAlyZXR1cm4gdmFsdWUgZm9yIEV4dDJGUyB0byB0aGUgbmV3bHkgZGVmaW5lZCBPSUQuCiAgIAoyMDAwLTAyLTE1IDIzOjIzICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gc25tcHRhYmxlLmM6IGdpdmUgYSBzZW5zaWJsZSBvdXRwdXQgZm9yIGFuIGVtcHR5IHRhYmxlLgogICAKMjAwMC0wMi0xNSAyMzoyMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYywKICAgc25tcGxpYi92YWNtLmg6CgogICAtIHZhY20qOiBidWZmZXIgbGVuZ3RoIGNoZWNraW5nIQogICAKMjAwMC0wMi0xNSAyMzoyMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgLSBocl9zdG9yYWdlLmM6IHJldHVybiBtZW1vcnkgc2l6ZSBpbiBwYWdlcy4KICAgCjIwMDAtMDItMTUgMjM6MTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmgsIHVjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jCjoKCiAgIC0gdWNkX3NubXAuaCwgbWVtb3J5X2ZyZWVic2QyLmg6IG1ha2UgaXQgd29yayBmb3IgRnJlZUJTRC0zIHRvbwogICAKMjAwMC0wMi0xNSAyMzoxNiAgbmJhCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gc25tcF9hZ2VudC5jOiBvbmUgbW9yZSBwbGFjZSB0byBzZW5kIGEgQVVUSEZBSUwgdHJhcAogICAKMjAwMC0wMi0xNSAyMzoxNSAgbmJhCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIGFnZW50X3JlZ2lzdHJ5LmM6IGZpeCBhIHJldHVybiBmb3IgU05NUHYxL0NvdW50ZXI2NCBjYXNlCiAgIAoyMDAwLTAyLTE1IDAyOjEyICBkYXZlcwoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYyk6IE9taXQgZGVwcmVjYXRlZCBvcHRpb25zIGZyb20gb3B0YXJnIGhhbmRsaW5nLgogICAKMjAwMC0wMi0xMSAxNTo0NyAgaGFyZGFrZXIKCiAgICogbWFrZWRlcGVuZC5pbjoKCiAgIC0gKG1ha2VkZXBlbmQuaW4pOiAvdXNyL2xvY2FsL2Jpbi9wZXJsIC0+IC91c3IvYmluL3BlcmwKICAgCjIwMDAtMDItMTEgMTU6MzggIGhhcmRha2VyCgogICAqIGxvY2FsL3Jzbm1wOgoKICAgLSAocnNubXApOiBwZXJsNSAtPiBwZXJsCiAgIAoyMDAwLTAyLTExIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChtYW4vTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHNubXBfdHJhcF9hcGkuMwogICAKMjAwMC0wMi0xMSAxNDoyMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChsb2NhbC9NYWtlZmlsZS5pbik6IGxhc3QgbWludXRlIG1ha2VmaWxlIHRvdWNodXAKICAgCjIwMDAtMDItMTEgMTQ6MDMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlIGZvciA0LjEuMQogICAKMjAwMC0wMi0xMSAxMzo0NyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogVXBkYXRlIGZvciA0LjEuMQogICAKMjAwMC0wMi0xMSAxMzoyOSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIEZBUQosIFJFQURNRToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4xLjEgKQogICAKMjAwMC0wMi0xMSAxMjo1MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbAo6CgogICAtIChUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwpOiB1cGRhdGUgZm9yIFRpbWVvdXQgZm9yIHYyYy4KICAgCjIwMDAtMDItMTEgMTI6NDkgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBkb24ndCBjcCBmb3Igc25tcGNoZWNrCiAgIAoyMDAwLTAyLTExIDEyOjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKGxvY2FsL01ha2VmaWxlLmluKTogZml4IGZvciBzZXBlcmF0ZSBidWlsZCBwYXRoCiAgIAoyMDAwLTAyLTExIDEyOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmg6CgogICAtIChzeXNPUlRhYmxlLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gY29tcGlsZXIgd2FybmluZyBmaXguCiAgIAoyMDAwLTAyLTExIDEyOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBwYXRjaCBmcm9tIE5pZWxzOgogICAgIC0gZG9uJ3Qgc2VuZCBhdXRoZXJyb3IgcmVzcG9uc2VzIGZvciB2MmMuCiAgICAgLSBzZW5kIGF1dGhGYWlsdXJlIHRyYXAuCiAgIAoyMDAwLTAyLTExIDEyOjIyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogY2hhbmdlIHBlcmwgcGF0aCB0byAvdXNyL2Jpbi4KICAgCjIwMDAtMDItMTEgMDY6NTggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBEb250IGRlZmluZSBQUk9DRklYQ01EIGFuZCBFWEVDRklYQ01EIGJ5IGRlZmF1bHQuCiAgIAoyMDAwLTAyLTEwIDExOjE0ICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICBmaXggZm9yIG9sZGVyIHBsYXRmb3JtcyB0byB1c2UgcGFzc19wZXJzaXN0OyBub3QgaW5jbHVkZWQgYnkgZGVmYXVsdC4KICAgCjIwMDAtMDItMTAgMTA6MzMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZXh0ZW5zaWJsZS5jLCBwYXNzX3BlcnNpc3QuYwo6CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAwLTAyLTEwIDEwOjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgLSAoaHJfc3dpbnN0LmMpOiBtaW5vciBmaXhlcyBwb2ludGVkIG91dCBieSBNaWNoYWVsLgogICAKMjAwMC0wMi0xMCAxMDoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXB2My5jKTogZml4IHNldHVwIGVuZ2luZUlEIGJ1ZmZlciBvdmVyZmxvdyBmb3VuZCBieSBNaWtlIEJhZXIuCiAgIAoyMDAwLTAyLTEwIDA4OjM5ICBuYmEKCiAgICogbWFuLzogZGVmYXVsdF9zdG9yZS4zLnRvcCwgbWliX2FwaS4zLAogICByZWFkX2NvbmZpZy4zLmRlZiwgc25tcC5jb25mLjUuZGVmLCBzbm1wX2FnZW50X2FwaS4zCiwgc25tcF9hbGFybS4zLCBzbm1wX2FwaS4zLCBzbm1wX2NvbmZpZy41LmRlZgosIHNubXBfc2Vzc19hcGkuMywgc25tcF90cmFwX2FwaS4zLCBzbm1wYnVsa2dldC4xCiwgc25tcGJ1bGt3YWxrLjEsIHNubXBjbWQuMSwgc25tcGQuMS5kZWYsCiAgIHNubXBkLmNvbmYuNS5kZWYsIHNubXBkZWx0YS4xLCBzbm1wZ2V0LjEsCiAgIHNubXBnZXRuZXh0LjEsIHNubXBuZXRzdGF0LjEsIHNubXBzZXQuMSwKICAgc25tcHN0YXR1cy4xLCBzbm1wdGFibGUuMSwgc25tcHRlc3QuMSwKICAgc25tcHRyYW5zbGF0ZS4xLCBzbm1wdHJhcC4xLCBzbm1wdHJhcGQuOCwKICAgc25tcHRyYXBkLmNvbmYuNS5kZWYsIHNubXB1c20uMSwgc25tcHdhbGsuMSwKICAgdmFyaWFibGVzLjU6CgogICAtIG1hbi8qOiBzZXQgdGhlIGRhdGVzIG9uIHRoZSBwYWdlcyB0byByZWZsZWN0IHRoZSByZXZpc2lvbiBkYXRlCiAgIAoyMDAwLTAyLTEwIDA4OjEzICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWQ1LmMsIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaAo6CgogICBmaXggdmFyYXJncyBkZWNsL2RlZm4gb2Ygc25tcF9sb2cKICAgCjIwMDAtMDItMTAgMDc6NTQgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IG1lbnRpb24gdGhlIHR1dG9yaWFsLgogICAKMjAwMC0wMi0xMCAwNzoxNCAgZGF2ZXMKCiAgICogRkFROgoKICAgLSAoRkFRKTogRXhwbGljaXQgZXhhbXBsZXMgb2Ygc2VuZGluZyB0cmFwcyBieSBoYW5kCiAgIAoyMDAwLTAyLTEwIDA0OjQxICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgLSAoc25tcGxpYi97c25tcF9hcGksc25tcF9jbGllbnR9LmMgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jKToKICAgICAtICBDb21tZW50IHVudXNlZCBjb2RlIG1vcmUgaW5mb3JtYXRpdmVseSBhcyB0byB3aHkgaXQgaXMgb21pdHRlZC4KICAgCjIwMDAtMDItMDkgMTM6NTMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBldmFsX3Rvb2xzLnNoLCB0ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLAogICB0ZXN0cy9UMDI0c25tcHYzZ2V0U0hBMSwgdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUzoKCiAgIC0gKGV2YWxfdG9vbHMuc2gsIFQwMjNzbm1wdjNnZXRNRDVERVMsIFQwMjRzbm1wdjNnZXRTSEExLCBUMDI1c25tcHYzZ2V0U0hBREVTKToKICAgICAtIHNraXAgc3NsIHRlc3RzIHdlIGNhbid0IHBlcmZvcm0uCiAgIAoyMDAwLTAyLTA5IDEzOjUxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgaW5jbHVkZSBzeXMvcGFyYW0uaCB0byBnZXQgUEFUSF9NQVggb24gRnJlZUJTRC4KICAgCjIwMDAtMDItMDkgMTM6MzggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNTSEFERVNjb25maWcsIFQwMjRzbm1wdjNnZXRTSEExLAogICBUMDI1c25tcHYzZ2V0U0hBREVTOgoKICAgLSAoU3YzU0hBREVTY29uZmlnLCBUMDI0c25tcHYzZ2V0U0hBMSwgVDAyNXNubXB2M2dldFNIQURFUyk6CiAgICAgLSBtYWtlIFNIQSB0ZXN0cyBhY3R1YWxseSB3b3JrLgogICAKMjAwMC0wMi0wOSAxMzozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9TdjNjb25maWdzaGE6CgogICAtIChTdjNjb25maWdzaGEpOiBzaGEgY29uZmlnIHN1cHBvcnQKICAgCjIwMDAtMDItMDkgMTM6MzEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNnNubXB2MmNnZXRmYWlsCiwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbDoKCiAgIC0gKFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCk6IGZpeCBmb3IgcHJvcGVyIEFDTSBlcnJvciBvdXRwdXRzLgogICAKMjAwMC0wMi0wOSAxMzozMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgc25tcGxpYi9zeXN0ZW0uYywKICAgc25tcGxpYi90b29scy5oOgoKICAgRGVmaW5lIFNOTVBfTUFYUEFUSCwgYW5kIHVzZSBpdC4KICAgCjIwMDAtMDItMDkgMTM6MzAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDI0c25tcHYzZ2V0U0hBMSwgVDAyNXNubXB2M2dldFNIQURFUwo6CgogICAtIChUMDI0c25tcHYzZ2V0U0hBMSBUMDI1c25tcHYzZ2V0U0hBREVTKTogbmV3IHRlc3RzCiAgIAoyMDAwLTAyLTA5IDEzOjE2ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogbWVudGlvbiBhIG5ldyB1Y2RFeHBlcmltZW50YWwgcmVnaXN0cmF0aW9uICh3YXZsYW4pLgogICAKMjAwMC0wMi0wOSAxMzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnRfcmVnaXN0cnkuaCwgc25tcF9hZ2VudC5jLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gKGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICAgIHNubXBfYWdlbnQuYywgdmFjbV92YXJzLmMpOgogICAgIC0gZml4IHBvc2libGUgYWNtIERvUyBwcm9ibGVtcyBieSBjaGVja2luZyBhY2Nlc3MgdGFibGVzIGVhcmx5IG9uLgogICAKMjAwMC0wMi0wOSAxMTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdC5jKTogcGF0Y2ggZnJvbSByZWRoYXQgZm9yIGJldHRlciBSUE0gc3VwcG9ydC4KICAgCjIwMDAtMDItMDkgMTA6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoYW5nZSBtb2RlIHRvIGF1dG9jb25mLgogICAKMjAwMC0wMi0wOSAxMDo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGZpeCByc25tcCBidWlsZC4gIFJlYWxseS4gIEkgbWVhbiBpdC4KICAgCjIwMDAtMDItMDkgMTA6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYzoKCiAgIC0gKGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jKTogUGF0Y2ggZnJvbSBBbmR5IEhPT0Q6CiAgICAgLSBTb2xhcmlzIHBhdGNoZXMuCiAgIAoyMDAwLTAyLTA5IDEwOjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKToKICAgICAtIGZpeCByc25tcC5tYWRlLgogICAgIC0gdXNlICQoTUFLRSkuCiAgIAoyMDAwLTAyLTA5IDA4OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdF9zb2xhcmlzMi5jLAogICB2bXN0YXRfc29sYXJpczIuaDoKCiAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFVwZGF0ZSBmcm9tIEpvY2hlbiBLbWlldHNjaAogICAKMjAwMC0wMi0wNyAxMTo0OSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG9vcHMgbWlzc2luZyBpbXBvcnRhbnQgZml4IGZvciB3aW4zMiBidWlsZCAtIGZkX3NldCBtdXN0IGJlIHNhbWUgc2l6ZSBhcyBpbiB3aW5zb2NrCiAgIAoyMDAwLTAyLTA3IDExOjE4ICBtc2xpZmNhawoKICAgKiBidWctcmVwb3J0OgoKICAgVW5kbyBsYXN0IGNoYW5nZTsgb24gU3VuLCBhZGRpdGlvbmFsIHBsYXRmb3JtIGluZm8gd2FzIG5vdCBvYnRhaW5lZDsKICAgdGhlIHByb3BlciBzb2x1dGlvbiB3b3VsZCBiZSB0byByZW1vdmUgdGhlIHNlY29uZCB0b2tlbiAoaG9zdG5hbWUpLgogICAKMjAwMC0wMi0wNyAxMDo0MyAgbXNsaWZjYWsKCiAgICogYnVnLXJlcG9ydDoKCiAgIEtlZXAgY3VzdG9tZXIncyBub2RlbmFtZSBvdXQgb2YgdGhlIHB1Ymxpc2hlZCAndW5hbWUnIGluZm9ybWF0aW9uLgogICAKMjAwMC0wMi0wNyAwNzoyMCAgaGFyZGFrZXIKCiAgICogUE9SVElORzoKCiAgIC0gKFBPUlRJTkcpOiBNaWNoYWVsIGxpa2VzIGRpZmYgLXUuCiAgIAoyMDAwLTAyLTA2IDA2OjExICBuYmEKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSByZWFkX2NvbmZpZy5jOiBGaXggb25lIGZpbmFsICc6JyB0byBFTlZfU0VQQVJBVE9SX0NIQVIKICAgCjIwMDAtMDItMDUgMTc6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYyk6IGNvcnJlY3Qgc29tZSBhd2Z1bCB0ZXh0IC0+IGVuZ2luZUlEIGNyZWF0aW9uIG1pc3Rha2VzLgogICAKMjAwMC0wMi0wNSAwODozNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogZml4IHdyYXBwZWQgbGluZSBjb250aW51YXRpb24gaW4gdXNhZ2UgbWVzc2FnZS4KICAgCjIwMDAtMDItMDUgMDY6NTYgIG1hcnoKCiAgICogcGVybC9TTk1QL1JFQURNRToKCiAgIGZpeCB2ZXJzaW9uICBudW1iZXIKICAgCjIwMDAtMDItMDQgMTg6NTUgIG1hcnoKCiAgICogcGVybC9TTk1QL3QvOiBzZXNzaW9uLnQsIHNldC50LCBzdGFydGFnZW50LnBsOgoKICAgd2VpcmQgZGVsYXkgaW4gY3JlYXRpb24gb2YgcGlkIGZpbGVzCiAgIAoyMDAwLTAyLTA0IDE4OjIxICBtYXJ6CgogICAqIHBlcmwvU05NUC90Lzogbm90aWZ5LnQsIHN0YXJ0YWdlbnQucGw6CgogICBicmFpbi1vCiAgIAoyMDAwLTAyLTA0IDE3OjUyICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgRkFRCiwgUkVBRE1FOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEgKQogICAKMjAwMC0wMi0wNCAxNzo0OSAgaGFyZGFrZXIKCiAgICogUE9SVElORywgUkVBRE1FLCBSRUFETUUuc25tcHYzLCBUT0RPOgoKICAgLSAoUE9SVElORywgUkVBRE1FLCBSRUFETUUuc25tcHYzLCBUT0RPKTogbGFzdCBtaW51dGUgZG9jIHVwZGF0ZXMuCiAgIAoyMDAwLTAyLTA0IDE3OjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBsb2NhbCBmaXhlcyBmb3IgYXJjaGl0ZWN0dXJlcyB0aGF0IGRvbid0IGhhdmUKICAgICBjb21wbGlhbnQgbWFrZWZpbGUgdmFyaWFibGVzIGxpa2UgJDwuCiAgIAoyMDAwLTAyLTA0IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiB1cGRhdGUgZm9yIDQuMQogICAKMjAwMC0wMi0wNCAxNTo0NCAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBCVUcsIGhpbnRzL3NvbGFyaXMucGw6CgogICB1cGRhdGVzIGZvciBwZXJsL1NOTVAgYnVpbGQKICAgCjIwMDAtMDItMDQgMTU6MjEgIG1hcnoKCiAgICogcGVybC9TTk1QLzogaGludHMvc29sYXJpcy5wbCwgdC9nZXQudCwgdC9nZXRuZXh0LnQKLCB0L3Nlc3Npb24udCwgdC9zZXQudCwgdC9zbm1wdGVzdC5jb25mOgoKICAgYnVpbGQgZml4ZXMgYW5kIHRlc3QgZW5oYW5jZW1lbnRzCiAgIAoyMDAwLTAyLTA0IDE1OjA5ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IE1BTklGRVNULCBNYWtlZmlsZS5QTCwgU05NUC54cywKICAgdC9hc3luYy50LCB0L2dldC50LCB0L2dldG5leHQudCwgdC9taWJsb2FkLnQKLCB0L3Nlc3Npb24udCwgdC9zZXQudCwgdC9zbm1wZC5jb25mLAogICB0L3NubXB0ZXN0LmNvbmY6CgogICBidWlsZCBmaXhlcyBhbmQgdGVzdCBlbmhhbmNlbWVudHMKICAgCjIwMDAtMDItMDQgMTQ6MDEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgIC0gKHNubXB0cmFwZC44KTogZG9jdW1lbnQgLWMgYW5kIC1DLgogICAKMjAwMC0wMi0wNCAxMzo1NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKToKICAgICAtIGltcGxlbWVudCAtYyBhbmQgLUMgZmxhZ3MgZm9yIEpvZS4KICAgICAtIHJlZGlkIHRoZSBpbml0IHN0cnVjdHVyZSB0byBtYWtlIGl0IGxvb2sgbW9yZSBsaWtlIHRoZSBjdXJyZW50IGFnZW50LgogICAKMjAwMC0wMi0wNCAxMzo1MiAgbWFyegoKICAgKiBJTlNUQUxMOgoKICAgdXBkYXRlcyBmb3IgcGVybC9TTk1QIGJ1aWxkCiAgIAoyMDAwLTAyLTA0IDEzOjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYyk6IGRvbid0IHJlYWQgdGhlIG9wdCBjb25maWcgZmlsZSBvciBjYWxsCiAgICAgcG9zdF9jb25maWcgY2FsbGJhY2tzLCBzaW5jZSB0aGUgbGlicmFyeSB0YWtlcyBjYXJlIG9mIHRoYXQgbm93LgogICAKMjAwMC0wMi0wNCAxMzoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLAogICAgIE1ha2VmaWxlLmluKTogZmluYWwgbWFrZSBkZXBlbmQuCiAgIAoyMDAwLTAyLTA0IDEzOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogZG9uJ3QgcHJpbnQgZmFpbGVkIGFjY2VzcyBlcnJvcnMgKEVBQ0NFUykuCiAgIAoyMDAwLTAyLTA0IDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHYzLmM6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdjMuYyk6IHByb3ZpZGUgdjMgZGVmYXVsdHMuCiAgIAoyMDAwLTAyLTA0IDEyOjAxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbG9jYWwvTWFrZWZpbGUuaW4KOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKTogZmluZCwgbG9jYXRlLCBhbmQgdXNlIHBlcmwgaWYgZm91bmQuCiAgIAoyMDAwLTAyLTA0IDA4OjU1ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgYWRkIGRlZmF1bHRzIGZvciB2MiB0cmFwIHBhcmFtcwogICAKMjAwMC0wMi0wNCAwNjo0NCAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgICBoYXZlIG1pYiBsb2FkaW5nIGFwaSByZXR1cm4gcmVzdWx0IGNvZGVzCiAgIAoyMDAwLTAyLTA0IDA0OjAwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAtIGhyX2Rpc2suYzogcmVhbGx5IGRvIHRoYXQgRnJlQlNEIHNjc2kgdGhpbmcKICAgCjIwMDAtMDItMDQgMDE6MjAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gdmFjbV92YXJzLmM6IHNsaWdodCByZXdvcmRpbmcgb2Ygd2FybmluZyBtZXNzYWdlCiAgIAoyMDAwLTAyLTA0IDAwOjE3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAtIGhyX2Rpc2suYzogQSBsaXR0bGUgY2xlYW51cCBvZiB0aGUgZGlzayBkZXZpY2UgZGVmaW5pdGlvbnMsIGFsc28gYWRkaW5nCiAgIAlTQ1NJIHRvIEZyZWVCU0QgMwogICAKMjAwMC0wMi0wNCAwMDoxNiAgbmJhCgogICAqIHNubXBsaWIvOiBtaWIuYywgcmVhZF9jb25maWcuYzoKCiAgIC0gcmVhZF9jb25maWcuYywgbWliLmM6IGZpeCBzb21lIFBBVEggc2VwYXJhdG9ycyBmcm9tIGNvbnN0YW50OiB0bwogICAJRU5WX1NFUEFSQVRPUntfQ0hBUn0KICAgCjIwMDAtMDItMDMgMjM6NTkgIG5iYQoKICAgKiBzbm1wbGliL210X3N1cHBvcnQuaDoKCiAgIC0gbXRfc3VwcG9ydC5oOiBhbm90aGVyIHdheSBvZiBkb2luZyBub3RoaW5nLCBub3QgZ2l2aW5nIGEgIm51bGwgZWZmZWN0IgogICAJd2FybmluZyBmcm9tIGdjYy4KICAgCjIwMDAtMDItMDMgMjM6NTcgIG5iYQoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3RyYXAuYywKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgLSBhZ2VudC9yZWdpc3RyeS5jLCBhZ2VudF90cmFwLmMsIGNsaWVudC5jOiBjaGFuZ2Ugc29tZSB0eXBlIGNhc3RzIGZyb20KICAgCShjaGFyICopIHRvICh1X2NoYXIgKikgdG9wIHNpbGVuY2Ugc29tZSB3YXJuaW5ncy4KICAgCjIwMDAtMDItMDMgMTQ6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRToKCiAgIC0gKFJFQURNRSk6IHJlbW92ZSBkdW1teSByZWZlcmVuY2UuCiAgIAoyMDAwLTAyLTAzIDE0OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKHN1YmFnZW50LmMpOiBwcm90ZWN0IHN5c09SVGFibGUgY2FsbGJhY2tzIHdpdGggI2lmZGVmcy4KICAgCjIwMDAtMDItMDMgMTQ6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoc3ViYWdlbnQuYyk6IGluY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaC4KICAgCjIwMDAtMDItMDMgMTQ6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2R1bW15LzogQWRkTW9kdWxlRm9yRHVtbWllcy50eHQsCiAgIERVTU1ZLU1JQi50eHQsIGR1bW15LmMsIGR1bW15Lmg6CgogICAtIChkdW1teS8qKTogcmVtb3ZlZCwgdXNlIGV4YW1wbGUgaW5zdGVhZC4KICAgCjIwMDAtMDItMDMgMTM6MjggIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBGb2xsb3cgY29uZGl0aW9uIEhBVkVfR0VUUElEIGZvciBwaWRfZmlsZSBvYmplY3QuCiAgIAoyMDAwLTAyLTAzIDEyOjU4ICBtc2xpZmNhawoKICAgKiBSRUFETUUsIGFnZW50L2RsbW9kcy9leGFtcGxlLmgsCiAgIGFnZW50L21pYmdyb3VwL1JFQURNRToKCiAgIE5vdGUgdGhlIHdvbWJhdCBpcyByZXBsYWNlZCBieSBleGFtcGxlIGluIG1vcmUgcGxhY2VzLgogICAKMjAwMC0wMi0wMyAxMjo1NyAgbXNsaWZjYWsKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX3NodXRkb3duLmgsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmCiwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCBzbm1wc2V0L3NubXBzZXQuZHNwCjoKCiAgIFJlbW92ZSBET1Mtc3R5bGUgbGluZSB0ZXJtaW5hdGlvbiAoQ1ItTEYgLS0+IExGKS4KICAgbGlic25tcC5kZWYgLSByZW1vdmUgdW5uZWVkZWQgY29tbWVudCBhYm91dCBvYnNvbGV0ZSB2MnBhcnR5LgogICAKMjAwMC0wMi0wMyAxMDo0OCAgbWFyegoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgYWRkIC11IFBJREZJTEUgdG8gc25tcHRyYXBkLCBub3cgd2UgbmVlZCAtYyAtQzopLCBidHcgaXMgdGhlIHZhbHVlIG9mIG9wdGFyZyByZWxpYWJsZSBhZnRlciBnZXRvcHQgaGFzIGJlZW4gY2FsbGVkIGFnYWluLi4uaXQgc2VlbXMgdG8gd29yawogICAKMjAwMC0wMi0wMyAwOTo1NiAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaCwgd2luMzIvY29uZmlnLmgKOgoKICAgSW5jbHVkZSBtaWJfbW9kdWxlX2NvbmZpZy5oIGZyb20gbWliaW5jbC5oLCBub3QgdG9wIGxldmVsIGNvbmZpZy5oLgogICAKMjAwMC0wMi0wMyAwOTo0NCAgbWFyegoKICAgKiBSRUFETUU6CgogICB1cGRhdGUgbXkgZW1haWwKICAgCjIwMDAtMDItMDMgMDY6NDMgIG1zbGlmY2FrCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgaW5jbHVkZSBtaWJfbW9kdWxlX2NvbmZpZy5oIHRvIG1ha2UgdGhlIFVTSU5HXyBjb25zdGFudHMgdmlzaWJsZS4KICAgCjIwMDAtMDItMDMgMDQ6MTIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgVW5kbyB1bmluZm9ybWVkIGNoYW5nZTogbG9hZCBhdmVyYWdlICE9IGF2ZXJhZ2UgdGltZSB0aGF0IENQVSBpcyBpZGxlLgogICAKMjAwMC0wMi0wMyAwMTozNSAgZGF2ZXMKCiAgICogRkFROgoKICAgLSAoRkFRKTogRG9jdW1lbnQgY2hhbmdlcyB0byBhY2Nlc3MgY29udHJvbCBzdHVmZi4KICAgCjIwMDAtMDItMDIgMTY6MzYgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYl9tb2R1bGVzLmM6CgogICBUb3VjaHVwIHRvIGJ1aWxkIG1vcmUgTUlCIG1vZHVsZXMgb24gV2luMzIuCiAgIAoyMDAwLTAyLTAyIDE2OjIzICBtc2xpZmNhawoKICAgKiBSRUFETUUud2luMzIsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICB3aW4zMi9taWJfbW9kdWxlX2NvbmZpZy5oLCB3aW4zMi9taWJfbW9kdWxlX2RvdF9jb25mLmgsCiAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcDoKCiAgIFRvdWNodXAgZm9yIGJ1aWxkaW5nIG1vcmUgTUlCIG1vZHVsZXMgaW4gV2luMzIgKE1TVkMpLgogICAKMjAwMC0wMi0wMiAxNDoxOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBMZXQgaHJQcm9jZXNzb3JMb2FkIG91dCBvZiB0aGUgZ2VuaWUncyBib3R0bGUuCiAgIAoyMDAwLTAyLTAyIDE0OjE3ICBtYXJ6CgogICAqIHBlcmwvU05NUC9SRUFETUUsIFJFQURNRS53aW4zMjoKCiAgIGFkZCBpbnN0cnVjdGlvbnMgZm9yIGJ1aWxkaW5nIHcvIE9wZW5TU0wgb24gVkMrKwogICAKMjAwMC0wMi0wMiAxMzo0MiAgbWFyegoKICAgKiBSRUFETUUud2luMzI6CgogICBhZGQgaW5zdHJ1Y3Rpb25zIGZvciBidWlsZGluZyB3LyBPcGVuU1NMIG9uIFZDKysKICAgCjIwMDAtMDItMDIgMTA6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgTWlsZXM6CiAgICAgLSB2YXJpb3VzIGZpeGVzOgogICAgICAgMSkgVGhlIGZpcnN0IHJlZ2lzdHJhdGlvbiByZXF1ZXN0IGNvdWxkIGJlIGxvc3QuCiAgICAgICAyKSBSZWdpc3RyYXRpb24gZGVsZXRlIHJlcXVlc3RzIG5ldmVyIHJlY2VpdmVkIGEgcmVzcG9uc2UuCiAgICAgICAzKSBSZWdpc3RyYXRpb24gZGVsZXRlIHJlcXVlc3RzIHdlcmUgbm90IGZpbmRpbmcgdGhlIHJlZ2lzdHJhdGlvbiB3aGVuIHRoZQogICAgICAgICAgZGVsZXRlJ3MgcHJpb3JpdHkgd2FzIHNldCB0byAtMS4KICAgICAgIDQpIE5vbi16ZXJvIHZhbHVlcyB3ZXJlIG5vdCBiZWluZyBlbmNvZGVkIHByb3Blcmx5IGluIHJlZ2lzdHJhdGlvbgogICAgICAgICAgcmVzcG9uc2VzLgogICAKMjAwMC0wMi0wMiAwODo1MiAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBmaXggdGhlIGZhdC1maW5nZXJpbmcgcGF0Y2ggSSBqdXN0IG1hZGUuIGZlaC4KICAgCjIwMDAtMDItMDIgMDg6NDIgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgQWxsb3cgLUNvIHRvIGFmZmVjdCB0aGUgb3V0Y29tZS4KICAgCjIwMDAtMDItMDIgMDg6MDIgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBDb3JyZWN0bHkgaGFuZGxlIGluZGl2aWR1YWxseSBleGNsdWRlZCBpbnN0YW5jZXMKICAgCjIwMDAtMDItMDIgMDc6MTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB1cGRhdGVkIC0taGVscAogICAKMjAwMC0wMi0wMiAwNjo0NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgLSBocl9kaXNrLmM6IGFkZCBOZXRCU0Qgc3VwcG9ydAogICAKMjAwMC0wMi0wMiAwNDo0NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICBSZW1vdmUgZGVwZW5kZW5jaWVzIG9uIChtb3ZlZCkgdmVzdGludGVybmV0dC9kaXNraW8KICAgCjIwMDAtMDItMDIgMDE6MTIgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgLSAoaG9zdC9ocl9kaXNrLmMpOiBGaXggc29sYXJpcyBpbml0aWFsaXNhdGlvbiwgcGx1cyBleHRyYSBkZWJ1Z2dpbmcgaW5mby4KICAgCjIwMDAtMDItMDEgMTE6MjYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wdXNtLmMsIHNubXB2My5jOgoKICAgRml4dXAgbW9yZSBzaWduZWQvdW5zaWduZWQgY29tcGFyaXNvbnMuCiAgIAoyMDAwLTAyLTAxIDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHVzbS4xOgoKICAgLSAoc25tcHVzbS4xKTogY2hhbmdlZCBjb250ZXh0IHN0cmluZyBpbiBleGFtcGxlcyB0byAiIi4KICAgCjIwMDAtMDItMDEgMDg6NDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wY21kLjEpOiAuUFAgLT4gLklQIGZvciAtT2IuCiAgIAoyMDAwLTAyLTAxIDA4OjQzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHVwZGF0ZSAoYWdhaW4pLgogICAKMjAwMC0wMi0wMSAwODozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICAtIChkaXNraW8uYyk6IG1vdmUgdG8gdWNkRXhwZXJpbWVudGFsLjE1LgogICAKMjAwMC0wMi0wMSAwODozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmg6CgogICAtIChkaXNraW8uaCk6IGxvYWQgdGhlIG1pYi4KICAgCjIwMDAtMDItMDEgMDg6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdmVzdGludGVybmV0dC9kaXNraW8uYywKICAgdmVzdGludGVybmV0dC9kaXNraW8uaCwgdWNkLXNubXAvZGlza2lvLmMsCiAgIHVjZC1zbm1wL2Rpc2tpby5oOgoKICAgLSAoZGlza2lvLiopOiBtb3ZlZCB0byB0aGUgdWNkLXNubXAgZGlyZWN0b3J5CiAgIAoyMDAwLTAyLTAxIDA1OjI3ICBkYXZlcwoKICAgKiBGQVE6CgogICAtIChGQVEpOiBFeHBhbmQgdGhlIGRlc2NyaXB0aW9uIG9mIGdlbmVyYXRpbmcgdHJhcHMgZnJvbSB0aGUgYWdlbnQgc2xpZ2h0bHkuCiAgIAoyMDAwLTAyLTAxIDA0OjE5ICBkYXZlcwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBDYXRjaCBjb21tb24gaW52YWxpZCBjb25maWd1cmUgb3B0aW9ucy4KICAgCjIwMDAtMDItMDEgMDM6MzcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggc2Vzc2lvbiBJRCBoYW5kbGluZyB3aGVuIGRlbGVnYXRpbmcgcmVxdWVzdHMuCiAgIAoyMDAwLTAyLTAxIDAxOjQ5ICBkYXZlcwoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLAogICBjb25maWd1cmUsIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKGFjY29uZmlnLmggY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSBzbm1wbGliL3NubXBfYXBpLmgpOgogICAgIC0gRml4IGJyb2tlbiBzZXR0aW5nIG9mIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZSBjaG9pY2UuCiAgIAoyMDAwLTAxLTMxIDEwOjQxICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgc2V0IERTX0xJQl9ET05UX0JSRUFLRE9XTl9PSURTIHRvIGdldCBwcmV2aW91bHN5IHJlbGVhc2VkIGJlaGF2aW91ciBvZiBnZXRfc3ltYm9sIHdydCBvY3RldCBiYXNlZCBpbnN0YW5jZSBpZHMgKGkuZS4sIG5vIGRvdWJsZS1xdW90aW5nKQogICAKMjAwMC0wMS0zMSAwNzo1NyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiBleGFtcGxlLmMsIGV4YW1wbGUuaDoKCiAgIC0gKG1pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuW2NoXSk6CiAgICAgLSBQcm92aWRlIGFuIGV4YW1wbGUgZm9yIGhvdyB0byB0cmlnZ2VyIGEgdHJhcC4KICAgCjIwMDAtMDEtMzEgMDc6NTYgIGRhdmVzCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgIC0gKGFwcHMvc25tcHRlc3QuYyk6IERvbid0IGFzc3VtZSBzaXplX3QgaXMgc2lnbmVkIChQZWtrYSBLeXRvbGFha3NvKQogICAKMjAwMC0wMS0zMSAwNzo1NSAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXB2My5jLCBzbm1wdjMuaDoKCiAgIC0gKHNubXBsaWIvc25tcHYzLltjaF0pOiBEb24ndCBhc3N1bWUgc2l6ZV90IGlzIHNpZ25lZCAoUGVra2EgS3l0b2xhYWtzbykKICAgICAtIE4uQjogVGhpcyBjaGFuZ2VzIHRoZSBpbnRlcmZhY2Ugb2Ygc25tcHYzX2dlbmVyYXRlX2VuZ2luZUlEKCkgc2xpZ2h0bHkuCiAgIAoyMDAwLTAxLTMxIDA3OjUzICBkYXZlcwoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBzbm1wLmMsIHNubXBfYXBpLmMsCiAgIHNubXB1c20uYzoKCiAgIC0gKHNubXBsaWIvYXNuMS5jIHNubXBsaWIvc25tcC5jIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXB1c20uYyk6CiAgICAgLSBEb24ndCBhc3N1bWUgc2l6ZV90IGlzIHNpZ25lZCAoUGVra2EgS3l0b2xhYWtzbykKICAgCjIwMDAtMDEtMzEgMDc6NTEgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCk6IEF0dGVtcHQgdG8gbWltaWMgSXJpeC1zdHlsZSBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmUuCiAgIAoyMDAwLTAxLTMxIDA3OjQ5ICBkYXZlcwoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLAogICBjb25maWd1cmU6CgogICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOgogICAgIC0gSW1wcm92ZWQgY2hlY2tpbmcgZm9yIElyaXgtc3R5bGUgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlLgogICAKMjAwMC0wMS0zMSAwMzo0MSAgZGF2ZXMKCiAgICogQUdFTlQudHh0OgoKICAgLSAoQUdFTlQudHh0KTogUmV2aXNlZCBhbmQgdXBkYXRlZCB2ZXJzaW9uLgogICAKMjAwMC0wMS0zMSAwMzoxNCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogSW5pdGlhbGl6ZSBhZGRybGVuIGluIF9zZXNzX3JlYWQoKS4gIChGcmFuayBTdHJhdXNzKQogICAKMjAwMC0wMS0zMSAwMzowMyAgZGF2ZXMKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCBjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlKToKICAgICAtIEF0dGVtcHQgdG8gZGV0ZWN0IG5vbi10cmFkaXRpb25hbCBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmUgKG9uIElyaXggNi54KS4KICAgCjIwMDAtMDEtMzEgMDM6MDAgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCk6IEFsdGVybmF0aXZlIGFwcHJvYWNoIHRvIElyaXggc29ja2V0IGhhbmRsaW5nLgogICAKMjAwMC0wMS0zMSAwMjo0MCAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wbGliL3NubXBfYXBpLltjaF0pOiBSZXN0b3JlIHRyYWRpdGlvbmFsIHNvY2tldCBmaWVsZCBuYW1lcy4KICAgCjIwMDAtMDEtMzEgMDE6NDUgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gKGFnZW50L2FnZW50X3RyYXAuYyk6IEluY2x1ZGUgaW5zdGFuY2Ugc3ViaWRlbnRpZmllciBpbiBzbm1wVHJhcE9JRCBhbmQKICAgCXNubXBUcmFwRW50ZXJwcmlzZSBPSUQgZGVmaW5pdGlvbnMuICAoVGhhbmtzIHRvIEdlcmFyZCBUYWxtYW4pCiAgIAoyMDAwLTAxLTMxIDAxOjA1ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCk6IExvZyBmYWlsZWQgTUlCIHJlZ2lzdHJhdGlvbnMuCiAgIAoyMDAwLTAxLTMwIDEwOjU2ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFJFQURNRSwgUkVBRE1FOgoKICAgY2xlYW4gdXAgYmVmb3JlIHJlbGVhc2UgLSB1cGRhdGUgdmVyc2lvbiwgcmVsZWFzZSBub3RlcyBldGMuCiAgIAoyMDAwLTAxLTMwIDEwOjQ2ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgY2xlYW4gdXAgYmVmb3JlIHJlbGVhc2UgLSB1cGRhdGUgdmVyc2lvbiwgcmVsZWFzZSBub3RlcyBldGMuCiAgIAoyMDAwLTAxLTMwIDEwOjQ0ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgY2xlYW4gdXAgYmVmb3JlIHJlbGVhc2UgLSB1cGRhdGUgdmVyc2lvbiwgcmVsZWFzZSBub3RlcwogICAKICAgTm90ZTogS05PV04gQlVHUwogICB0aGUgbmV3IHF1b3RlZCBPQ1RFVFNUUiBpbnN0YW5jZSBpZGVudGlmaWVycyByZXR1cm5lZCBieSBnZXRfc3ltYm9sCiAgIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBwZXJsL1NOTVAgbW9kdWxlIChfX2dldF9sYWJlbF9paWQpCiAgIAogICBub3Qgc3VyZSB0aGF0IHRoaXMgZXZlciB3b3JrZWQgLSB3aWxsIGhhdmUgdG8gbG9vayBhdCBvbGQgT0NURVRTVFIKICAgYmVoYXZpb3VyIGFuZCBzZWUgaG93IHRvIHJlY3JlYXRlIGl0CiAgIAoyMDAwLTAxLTMwIDEwOjQyICBtYXJ6CgogICAqIHBlcmwvU05NUC9SRUFETUU6CgogICBjbGVhbiB1cCBiZWZvcmUgcmVsZWFzZSAtIHVwZGF0ZSB2ZXJzaW9uLCByZWxlYXNlIG5vdGVzCiAgIAogICBOb3RlOiBLTk9XTiBCVUdTCiAgIHRoZSBuZXcgcXVvdGVkIE9DVEVUU1RSIGluc3RhbmNlIGlkZW50aWZpZXJzIHJldHVybmVkIGJ5IGdldF9zeW1ib2wKICAgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIHBlcmwvU05NUCBtb2R1bGUgKF9fZ2V0X2xhYmVsX2lpZCkKICAgCjIwMDAtMDEtMzAgMDg6MTkgIG1hcnoKCiAgICogcGVybC9TTk1QL3Qvc25tcGQuY29uZjoKCiAgIGNyZWF0ZSBWMyB1c2VyIGVudHJ5LCBjbGVhbnVwCiAgIAoyMDAwLTAxLTMwIDAzOjExICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSBpZi5jOiBkZWZlbnNpdmUgdGVzdCBmb3IgbWlzc2luZyBvYmplY3RzIChpdCBtaWdodCBmYWlsIHRvIHNob3cKICAgCWRvd24gc3RhdHVzIHByb3Blcmx5KQogICAKMjAwMC0wMS0zMCAwMzowOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgLSBocl9zdG9yYWdlLmM6IGNvbnZlcnQgZnJvbSBwYWdlcyB0byAxayBibG9ja3MKICAgCjIwMDAtMDEtMzAgMDM6MDQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIC0gaHJfZGlzay5jOiBjb252ZXJ0IHRvIDFrIGJsb2NrcwogICAKMjAwMC0wMS0zMCAwMzowMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QuaDoKCiAgIC0gaG9zdC5oOiBjb25maWdfcmVxdWlyZV9taWIoSE9TVC1SRVNPVVJDRVMtVFlQRVMpCiAgIAoyMDAwLTAxLTI4IDEyOjUyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIFRoaXMgd2l0aCBwcmV2aW91cyB0d28gY2hhbmdlcyBjb21wbGV0ZXMgYSBwYXRjaCBmb3IgaXRlbXMgMiwzLDQKICAgZm9yIGJ1ZyAjMTQ5LgogICAKMjAwMC0wMS0yOCAxMjozOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBDaGFuZ2UgYWdlbnR4X3tidWlsZCxwYXJzZX1fc2hvcnQgLiBUaGFua3MgdG8gR2VyYXJkIFRhbG1hbkBoaXR0Lm5sLgogICAKMjAwMC0wMS0yOCAxMjozMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBGaXggc3BlbGwgTElUVExFX0VORElBTi4gVGhhbmtzIHRvIHRhbG1hbkBoaXR0Lm5sLgogICAKMjAwMC0wMS0yOCAwNzoxOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBTb21lIHZhcmlhYmxlIHJlbmFtaW5nIGZvciBjb25zaXN0ZW5jeSwgZXJyb3IgY2hlY2tpbmcKICAgaW1wcm92ZWQsIG1pc3Npbmcgc3RyaW5nLmggaW5jbHVkZWQuICBQYXRjaCBzdXBwbGllZCBieSBhdXRob3IuCiAgIAoyMDAwLTAxLTI3IDE2OjEzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBSZW1vdmUgaGFjayBhcm91bmQgIlNNSSIgdG9rZW47IGtlZXAgdGhlIGdvb2QgcGFydCBvZiB0aGUgcHJldmlvdXMgcGF0Y2guCiAgIAoyMDAwLTAxLTI3IDE0OjUxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAgMS4gRml4IG1lbW9yeSBsZWFrIHdoZW4gYW5vbnltb3VzbHkgbmFtZWQgbm9kZXMgYXJlIHVzZWQuCiAgICAyLiBIYWNrIGFyb3VuZCBzbWljbmcncyAiU01JICIgc3RhdGVtZW50cyB0byBwcmV2ZW50IG90aGVyIG1lbW9yeSBsZWFrcy4KICAgCjIwMDAtMDEtMjcgMTE6MTQgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICByZW1vdmUgbm8tb3Agc25tcF9zeW5jaF9zZXR1cAogICAKMjAwMC0wMS0yNyAwODozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICAtIChkZWZhdWx0X3N0b3JlLmMpOiBtYWtlIGNvbmZpZyBwYXJzZXIgaGFuZGxlICIiIChudWxsKSBwYXJzZWQgc3RyaW5ncy4KICAgCjIwMDAtMDEtMjYgMTk6MjIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjb21tYSwgY29tbWEsIGNvbW1hLCBjb21tYSwgY29tbWEtY2hhbWVsZW9uLgogICAKMjAwMC0wMS0yNiAxNzozMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGFsbG93ICcsJyBzZXBlcmF0ZWQgLS13aXRoLSotbW9kdWxlcyBmbGFnIHZhbHVlcy4KICAgCjIwMDAtMDEtMjYgMTc6MTggIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBGQVEKLCBSRUFETUU6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMS5wcmUyICkKICAgCjIwMDAtMDEtMjYgMTc6MTUgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBjbWQuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYsIHNubXB1c20uMQo6CgogICAtIChzbm1wY21kLjEsIHNubXB0cmFwZC5jb25mLjUuZGVmLCBzbm1wdXNtLjEpOgogICAgLSBiYWRseSBkb25lIHVwZGF0ZXMuCiAgIAoyMDAwLTAxLTI2IDE2OjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzREVTY29uZmlnLCBUMDIzc25tcHYzZ2V0TUQ1REVTOgoKICAgLSAoU3YzREVTY29uZmlnLCBUMDIzc25tcHYzZ2V0TUQ1REVTKTogZml4IERFUyB0ZXN0IHNvIGl0IHdvcmtzLgogICAKMjAwMC0wMS0yNiAxNjo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXB2My5jKTogZml4IHByaXYga2V5IGxlbmd0aCBleHRyYXBvbGF0aW9uLiAgU2hvdWxkIGJlIGRvbmUgZGlmZmVyZW50bHk/LgogICAKMjAwMC0wMS0yNiAxNjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOgogICAgIC0gbWFrZSBkZXBlbmQuCiAgIAoyMDAwLTAxLTI2IDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2FnZW50X3RyYXAuaCwKICAgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCwgc25tcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIGFkZCBhYmlsaXR5IHRvIGFsbG93IHNlbmRpbmcgdHJhcHMgdG8gcG9ydHMgb3RoZXIgdGhhbiAxNjIuCiAgIAoyMDAwLTAxLTI2IDE1OjM0ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELURFTU8tTUlCLnR4dCwgVUNELURJU0tJTy1NSUIudHh0LAogICBVQ0QtRExNT0QtTUlCLnR4dCwgVUNELUlQRklMVEVSLU1JQi50eHQsCiAgIFVDRC1JUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtREVNTy1NSUIudHh0LCBVQ0QtRElTS0lPLU1JQi50eHQsIFVDRC1ETE1PRC1NSUIudHh0LAogICAgIFVDRC1JUEZJTFRFUi1NSUIudHh0LCBVQ0QtSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGNvcnJlY3QgdWNkLXNubXAtY29kZXJzIGVtYWlsIGFkZHJlc3MgdG8gcmVwbGFjZSAiZWNlIiB3aXRoICJ1Y2Qtc25tcCIuCiAgIAoyMDAwLTAxLTI2IDE1OjMyICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgLSBjbGVhbiB1cCBhbmQgcmVmb3JtYXQgc3ViLXJlZ2lzdHJhdGlvbiBjb21tZW50cy4KICAgCjIwMDAtMDEtMjYgMTU6MzEgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELUlQRklMVEVSLU1JQi50eHQ6CgogICAtIChVQ0QtSVBGSUxURVItTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgIC0gcHJlZml4IG9pZHMgd2l0aCAidWNkIi4KICAgCjIwMDAtMDEtMjYgMTU6MzAgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELURMTU9ELU1JQi50eHQ6CgogICAtIChVQ0QtRExNT0QtTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgIC0gcHJlZml4IG9pZCB3aXRoICJ1Y2QiLgogICAKMjAwMC0wMS0yNiAxNToyOSAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1ESVNLSU8tTUlCLmluYywgVUNELURJU0tJTy1NSUIudHh0LAogICBWRVNULUlOVEVSTkVUVC1NSUIudHh0OgoKICAgLSAoVUNELURJU0tJTy1NSUIuaW5jLCBVQ0QtRElTS0lPLU1JQi50eHQsIFZFU1QtSU5URVJORVRULU1JQi50eHQpOgogICAgIFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgIC0gZml4IHRoZSBkaXNraW8gbWliLCBjb252ZXJ0IHRvIFNNSXYyLCBhbmQgbW92ZSB0byB1Y2RFeHBlcmltZW50YWwuCiAgIAoyMDAwLTAxLTI2IDA3OjI2ICBtc2xpZmNhawoKICAgKiBSRUFETUU6CgogICBBY2tub3dsZWRnZSBtb3JlIGNvbnRyaWJ1dG9ycy4KICAgCjIwMDAtMDEtMjYgMDc6MTQgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmM6CgogICBmaXggY29tcGlsZSBlcnJvciB3aGVuIC0td2l0aG91dC1yb290LWFjY2VzcyBpcyB1c2VkIChzdHJhdXNzQGlici5jcy50dS1icy5kZSkKICAgCjIwMDAtMDEtMjUgMjE6NDYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYzoKCiAgIG1pYi5jOnByaW50X3RyZWVfbm9kZSAtIHNob3cgbW9kdWxlIG5hbWUgb25jZSBpbiAtLSBGUk9NOwogICBwYXJzZS5jOiBzaG93ICJDYW5ub3QgZmluZCBtb2R1bGUiIG9uY2UgcGVyIG1pc3NpbmcgbW9kdWxlLgogICAKMjAwMC0wMS0yNSAxOTozMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgTGFyZ2VyIGJ1ZmZlciBmb3IgcHJpbnRfbW9kdWxlX25hbWU7IEZpeCBwb3NzaWJsZSBudWxsIGRlcmVmIGluIGdldF90Yy4KICAgCjIwMDAtMDEtMjUgMTQ6NTAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2FsYXJtLjMsIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgLSAoc25tcF9hbGFybS4zLCBzbm1wX2FsYXJtLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBmaXggcmVnaXN0cmF0aW9uIGZ1bmN0aW9uIHRvIGRvIHdoYXQgaXQgc2F5cyBpdCBzaG91bGQgZG8uCiAgIAoyMDAwLTAxLTI1IDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSk6IGhlbHAgdXBkYXRlCiAgIAoyMDAwLTAxLTI1IDE0OjEyICBuYmEKCiAgICogbWlicy86IEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIEhPU1QtUkVTT1VSQ0VTLVRZUEVTLnR4dAosIE1ha2VmaWxlLmluOgoKICAgLSBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQsIE1ha2VmaWxlLmluOgogICAJVXBkYXRlIHRvIHRoZSBjdXJyZW50IGRyYWZ0IEhPU1QtUkVTT1VSQ0VTIChkcmFmdC1vcHMtaG9zdG1pYi0wMSkKICAgCjIwMDAtMDEtMjUgMTM6NTYgIGhhcmRha2VyCgogICAqIG1pYnMvVkVTVC1JTlRFUk5FVFQtTUlCLnR4dDoKCiAgIC0gKFZFU1QtSU5URVJORVRULU1JQi50eHQpOiBSYWduYXIgS2pyc3RhZCdzIGRpc2tpbyBtaWIuCiAgIAoyMDAwLTAxLTI1IDEzOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXN0aW50ZXJuZXR0LzogZGlza2lvLmMsIGRpc2tpby5oOgoKICAgLSAodmVzdGludGVybmV0dC9kaXNraW8uW2NoXSk6IFJhZ25hciBLanJzdGFkJ3MgZGlza2lvIG1pYi4KICAgCjIwMDAtMDEtMjUgMTM6NTIgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IGZpeCBhIG1pc3NpbmcgaW5pdGlhbGl6YXRpb24gb2YgdGNfaW5kZXgKICAgCjIwMDAtMDEtMjUgMTI6MDUgIG1hcnoKCiAgICogUkVBRE1FLndpbjMyOgoKICAgYWRkaXRpb25hbCB3aW4zMiBpbnN0YWxsIG5vdGVzCiAgIAoyMDAwLTAxLTI1IDExOjQ3ICBtYXJ6CgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgYWRkIG1pc3Npbmcgc3luYm9scyBmb3IgcGVybC9TTk1QIG1vZHVsZQogICAKMjAwMC0wMS0yNSAwNjo0OSAgbWFyegoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBzeW50YXggZm9yIHdpbjMyIGJ1aWxkCiAgIAoyMDAwLTAxLTI0IDEwOjM2ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMC0wMS0yNCAxMDoxNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBwcmludGluZyBJTVBMSUVEIGluZGV4IChmcm9tIGFzc29jaWF0ZSBvZiBKLiBLbWlldHNjaCkgbW9kaWZpZWQgYW5kIGFwcGxpZWQuCiAgIAoyMDAwLTAxLTI0IDEwOjA1ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEl0b2p1bidzIG5ldGJzZCBFTEYgcGF0Y2ggKyByZW1vdmUgd29tYmF0IFtEYXZlJ3MgZXhhbXBsZSBmaXhdCiAgIAoyMDAwLTAxLTI0IDA5OjU1ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBtYW4vc25tcGNtZC4xLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfZGVidWcuYwo6CgogICBGaXggQnVnICMxNDQgaXRlbXMgMSwzLDQ6IGNhc2UgaW5zZW5zaXRpdmUgY2hlY2sgZm9yICJhbGwiIGtleXdvcmQuCiAgIAoyMDAwLTAxLTI0IDA5OjQ0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9zb2xhcmlzMi5jLAogICB2bXN0YXRfc29sYXJpczIuYzoKCiAgIE1ha2Ugc3VyZSBrc3RhdF9mZCBpcyBpbml0aWFsaXplZCBiZWZvcmUgYmVpbmcgdXNlZC4KICAgCjIwMDAtMDEtMjQgMDg6NTkgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAwLTAxLTI0IDA3OjIxICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IGV4YW1wbGUuYywgZXhhbXBsZS5oLAogICB3b21iYXQuYywgd29tYmF0Lmg6CgogICAtIChleGFtcGxlcy97ZXhhbXBsZSx3b21iYXR9LltjaF0pOgogICAgIC0gQ29uc29saWRhdGVkIGV4YW1wbGUgbW9kdWxlcyBpbnRvIG9uZSwgaW5jbHVkaW5nIGNvbmZpZyBhbmQgU0VUIHN1cHBvcnQuCiAgIAoyMDAwLTAxLTIzIDE2OjQxICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgaGFuZGxlIGFkZGluZyBPUEFRVUUgdmFycyBmb3Igc2V0dGluZyBhbmQgdHJhcHMgZXRjLgogICAKMjAwMC0wMS0yMyAxMjo0MyAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogZXJyZW5vdXMgPT4gZXJyb25lb3VzCiAgIAoyMDAwLTAxLTIzIDEyOjQyICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBmaXggbWVyZ2luZyBvZiBhbm9ueW1vdXMgbm9kZXMgd2hlbiB0aGV5IGFyZSBuYW1lZAogICAKMjAwMC0wMS0yMyAwODo1MSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogYWRkIHNvbWUgbW9yZSBlcnJvciBjaGVja2luZyB0byBnZXRvaWQKICAgCjIwMDAtMDEtMjEgMTE6MTkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBjb25maWdfYXJjaF9yZXF1aXJlIHNvbGFyaXMyIHZlcnNpb24gb2Ygdm1zdGF0LgogICAKMjAwMC0wMS0yMSAxMDo0NyAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMC0wMS0yMSAxMDoyMyAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMC0wMS0yMSAwODoxMyAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGluZm9ybQogICAKMjAwMC0wMS0yMSAwODowMCAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGluZm9ybS4KICAgCjIwMDAtMDEtMjEgMDc6MjcgIG1hcnoKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIGFkZGVkIHYzIGluZm9ybQogICAKMjAwMC0wMS0yMSAwMTo0OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTWluaW1pemUgZGF0YSBoYW5kbGluZyBhbmQgdXNlIHJlZ2lzdGVyIHZhcmlhYmllcyBpbgogICBzbm1wX29pZF9jb21wYXJlIGFuZCBjb21wYXJlX3RyZWUuCiAgIAoyMDAwLTAxLTIxIDAxOjQ2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3NfcGVyc2lzdC5jLCBwYXNzX3BlcnNpc3QuaAo6CgogICBBZGQgY29uc3QgdG8gY2xlYW51cCBhIGZldyBzaWduYXR1cmVzLgogICAKMjAwMC0wMS0yMSAwMTo0NiAgbXNsaWZjYWsKCiAgICogcGVybC9TTk1QL1JFQURNRToKCiAgIFJlbW92ZSBwYXJ0eSBjcnVkOyBzcGVsbCBjaGVjay4KICAgCjIwMDAtMDEtMjAgMDQ6MjUgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFN1cHBvcnQgc2VsZWN0aXZlIGJpbmRpbmcgb2Ygc2VydmVyIGFkZHJlc3Nlcy4KICAgCjIwMDAtMDEtMTggMjE6MzcgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgQ29uc2lzdGVudCBnZXRwYWdlc2l6ZSAoZmlyc3QgZGl2aWRlIGJ5IDEwMjQpLgogICAKMjAwMC0wMS0xOCAyMToyOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oLCB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmgsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwOgoKICAgMS5NYWtlIHNubXBfZ2V0X2RvX2xvZ2dpbmcgdmlzaWJsZSBmcm9tIERMTAogICAyLkFwcGx5IFdpbjMyIHBhdGNoIGZyb20gUi5TdG9yeSB0byBhY3RpdmF0ZSBtaWIgc3RhdHMgbW9kdWxlIChzbm1wX21pYikuCiAgIAoyMDAwLTAxLTE4IDIxOjI1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIFJlbW92ZSBjb21tZW50ZWQgb3V0IG9iamVjdHMgdGhhdCBhcmUgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZS4KICAgCjIwMDAtMDEtMTggMjE6MjIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgQ2xlYW51cCBhcm91bmQgaXA2X3ZhcnMuaCBpbmNsdWRlIChubyAjaWYgMCkKICAgCjIwMDAtMDEtMTggMTQ6MjMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0X3NvbGFyaXMyLmMsCiAgIHZtc3RhdF9zb2xhcmlzMi5oOgoKICAgTGF0ZXN0IHZtc3RhdF9zb2xhcmlzMiBmcm9tIHRoZSBhdXRob3IgSm9jaGVuIEttaWV0c2NoLgogICAKMjAwMC0wMS0xOCAwODoxNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgUHJldmVudCBhcnJheSBib3VuZHMgZXJyb3Igd2hlbiBjcmVhdGluZyBzcGVjaWZpYyB0cmFwIG9pZC4KICAgCjIwMDAtMDEtMTggMDc6NTQgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggZXJyb3IgbWVzc2FnZXMgYW5kIHJldHVybiB2YWxzIGZvciB0cmFwIGZ1bmNzLCBjbGVhbiB1cCBwZHUKICAgCjIwMDAtMDEtMTggMDc6MDAgIG1hcnoKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIG1vZGlmaWVkIGZvciB2Mi10cmFwLgogICAKMjAwMC0wMS0xNyAxMjo0NyAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgYWRkZWQgdjIgdHJhcAogICAKMjAwMC0wMS0xNyAwOTowMiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6IERpc2NhcmQgInRvby1sYXRlIiByZXNwb25zZXMgZnJvbSBvdmVybGFwcGVkIHJlZ2lvbnMuCiAgIAoyMDAwLTAxLTE3IDA2OjEzICBkYXZlcwoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICAtIChtYW4vc25tcHRyYXBkLjgpOiBEZXNjcmliZSBkZWZhdWx0IGxvZ2dpbmcgYmVoYXZpb3VyLgogICAKMjAwMC0wMS0xNCAxNjoxMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiByZW1vdmUgZXhwb3J0IGNvbnRyb2wgbm90ZSBhYm91dCBERVMuCiAgIAoyMDAwLTAxLTE0IDE2OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAtIChzY2FwaS5jKTogaW1wbGVtZW50IERFUyBlbmNyeXB0aW9uLgogICAKMjAwMC0wMS0xNCAxMTozNCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOiBncmVwIGZvciBjb25maWd1cmUgZmxhZ3MKICAgCjIwMDAtMDEtMTQgMDk6MzMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCBzbXV4L3NubXBfYmdwLmMKLCBzbXV4L3NubXBfb3NwZi5jLCBzbXV4L3NubXBfcmlwMi5jOgoKICAgU21hbGwgY29tcGlsZSBmaXggYW5kIGRlYnVnIG1lc3NhZ2UgcmVzdG9yYXRpb24uCiAgIAoyMDAwLTAxLTEzIDA2OjMzICBkYXZlcwoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChzbm1wbGliL3BhcnNlLmMpOiBNb3JlIGNvbXBsZXRlIGhhbmRsaW5nIG9mIHVubG9hZGluZyBNSUIgbW9kdWxlcy4KICAgCjIwMDAtMDEtMTMgMDY6MzEgIGRhdmVzCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAoc25tcGxpYi9wYXJzZS5bY2hdKTogVW5sb2FkIE1JQiBtb2R1bGUKICAgCShOLkI6IFNvbWV3aGF0IHNpbXBsaXN0aWMgd2l0aCByZWdhcmQgdG8gbXVsdGlwbHktbG9hZGVkIG5vZGVzKQogICAKMjAwMC0wMS0xMyAwNTozNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIE5vIGdldF9ib290dGltZSBzdXBwb3J0IGZvciBjeWd3aW4gKHlldCkuIEhvcGVmdWxseSBhIHRlbXBvcmFyeSBjb25kaXRpb24uCiAgIAoyMDAwLTAxLTEzIDAyOjQ2ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogUmVtb3ZlIGV4dHJhbmVvdXMgYnJhY2tldC4KICAgCjIwMDAtMDEtMTIgMjE6MDggIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCBhcHBzL3NubXB1c20uYwosIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmgKOgoKICAgVXNlIERFQlVHTVNHT0lEIGxpYmVyYWxseSwgcmVwbGFjaW5nIHNwcmludF9vYmppZDsgc21hbGwgc3BlZWR1cC4KICAgCjIwMDAtMDEtMTIgMTE6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYyk6IGNhc3QgbWFsbG9jIHJldHVybnMuCiAgIAoyMDAwLTAxLTExIDE1OjA1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIFVzZSBDRkxBR1Mgd2hlbiBsaW5raW5nIChjb3VsZCBoYXZlIHByb2ZpbGUgc3dpdGNoLCBldGMpLgogICAKMjAwMC0wMS0xMSAxMDozNyAgbWFyegoKICAgKiBwZXJsL1NOTVAvdC9nZXQudDoKCiAgIHJlbW92ZSBiYWQgc2Vzc2lvbiB0ZXN0IC0gc2Vzc2lvbi50IGhhcyBpdCBhbHJlYWR5IC0gbm90ZSB0aGUgY2FsbCB0byBnZXRob3N0YnluYW1lIGNhbiBoYW5nIGZvciBzb21lIHRpbWUgaWYgRE5TIGlzIG5vdCBzZXR1cCBjb3JyZWN0bHkgLSBhbnlvbmUga25vdyBhIHdheSBhcnJvdW5kIHRoaXM/CiAgIAoyMDAwLTAxLTExIDA5OjEzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhcHBzL3NubXBzdGF0dXMuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaAo6CgogICBSZXN0b3JlIG1lbWR1cCB1c2FnZSB0byBpdHMgZm9ybWVyIGx1c3Rlci4KICAgCjIwMDAtMDEtMTEgMDg6MTAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBJbml0IGZpbGUgY291bnQgYXQgemVybywgbm90IGJ5IGluY3JlbWVudGluZyByYW5kb20gdmFsdWUuCiAgIAoyMDAwLTAxLTExIDA3OjU5ICBtc2xpZmNhawoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEtlZXAgd2luMzIgcmVsZWFzZSBidWlsZCBmcm9tIGJyZWFraW5nLgogICAKMjAwMC0wMS0xMSAwNzo0NCAgbXNsaWZjYWsKCiAgICogd2luMzIvY29uZmlnLmg6CgogICBBZGQgSU5fVUNEX1NOTVBfU09VUkNFIHRvIG5vdCBicmVhayBXaW4zMiBidWlsZHMuCiAgIAoyMDAwLTAxLTExIDAxOjUzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIEdsZWFuIHJlZnMgdG8gbWliSUkubyBmcm9tIHRoaXMgbWFrZWZpbGUuCiAgIAoyMDAwLTAxLTExIDAxOjMyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsCiAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oLCBzbm1wbGliL3ZhY20uYwo6CgogICBUcm9sbGluZyBmb3IgbWFsbG9jIGVycm9yczsgbW9yZSBncmFjZWZ1bCBkZWdyYWRhdGlvbi4KICAgCjIwMDAtMDEtMTAgMTY6MzIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCBzY2FwaS5oLCBzbm1wX2FwaS5jCjoKCiAgIHNubXBfYXBpLmMgICAgLSBiZXR0ZXIgY29tbWVudCBmb3Igc25tcF9vaWRfY29tcGFyZS4KICAgcmVhZF9jb25maWcuYyAtIHJlbW92ZSBzaXplb2YodV9jaGFyKSBmcm9tIG1hbGxvYyBzaXplIGNhbGMuCiAgIHNjYXBpLmggICAgICAgLSBzcGVsbCBjaGVjay4KICAgCjIwMDAtMDEtMTAgMTY6MzEgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgc25tcHRyYW5zbGF0ZS5jICAtIHNpbXBsZSBkZWZhdWx0IGNhc2UuCiAgIAoyMDAwLTAxLTEwIDE2OjMxICBtc2xpZmNhawoKICAgKiBtYW4vc25tcHRyYW5zbGF0ZS4xOgoKICAgc25tcHRyYW5zbGF0ZS4xICAgLSByZW1vdmUganVuayBsaW5lLgogICAKMjAwMC0wMS0xMCAxNjozMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jOgoKICAgdWNkRGVtb1B1YmxpYy5jIC0gcmVtb3ZlIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGZyb20gd3JpdGUgbWV0aG9kLgogICBzbm1wX3ZhcnMuYyAgICAgLSBwcm9wZXIgb2lkIGNvbXBhcmU7IG5vIGNvcHkgZnJvbSBzYXZlIGlmIG9pZHMgZXhhY3QgbWF0Y2gKICAgc25tcGQuYyAgICAgICAgIC0gdGVybWluYXRlIHN0YXRlbWVudC4KICAgCjIwMDAtMDEtMTAgMTU6MzggIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBtYWtlIC0td2l0aG91dC1lZmVuY2Ugd29yay4KICAgICAtIGNoZWNrIGZvciAtbG5zbCBtb3JlIGV4cGxpY2l0bHkuCiAgIAoyMDAwLTAxLTEwIDE1OjM2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZzoKCiAgIC0gKFN2M2NvbmZpZyk6IHJlbW92ZSB0aGUgdHJhaWxpbmcgc3BhY2UuCiAgIAoyMDAwLTAxLTEwIDE1OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmg6CgogICAtIChtaWJpbmNsLmgpOiBpbmNsdWRlIHN0ZGxpYi5oIGFuZCBtYWxsb2MuaC4KICAgCjIwMDAtMDEtMTAgMTQ6NDAgIG1hcnoKCiAgICogcGVybC9TTk1QL01BTklGRVNUOgoKICAgYWRkIG1pYmxvYWQKICAgCjIwMDAtMDEtMTAgMTQ6MzQgIG1hcnoKCiAgICogcGVybC9TTk1QL3QvbWlibG9hZC50OgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMC0wMS0xMCAxNDoyMCAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBCVUcsIE1BTklGRVNULCBNQU5JRkVTVC5TS0lQLAogICBNYWtlZmlsZS5QTCwgUkVBRE1FLCBTTk1QLnBtLCBTTk1QLnhzLCBUT0RPCiwgcGVybHNubXAuaCwgdHlwZW1hcCwgZXhhbXBsZXMvYXN5bmMxLnBsLAogICBleGFtcGxlcy9hc3luYzIucGwsIGV4YW1wbGVzL2lwZm9yd2FyZC5wbCwKICAgZXhhbXBsZXMvbWlidHJlZS5wbCwgZXhhbXBsZXMvbWlid2Fsay5wbCwKICAgZXhhbXBsZXMvcGluZ21pYi5wbCwgZXhhbXBsZXMvdGFibGV3YWxrLnBsLAogICBleGFtcGxlcy90ZXN0bGVhay5wbCwgaGludHMvaXJpeC5wbCwgaGludHMvc29sYXJpcy5wbAosIHQvUkVBRE1FLCB0L2FzeW5jLnQsIHQvZ2V0LnQsIHQvZ2V0bmV4dC50CiwgdC9taWIudCwgdC9taWIudHh0LCB0L3Nlc3Npb24udCwgdC9zZXQudAosIHQvc25tcGQuY29uZjoKCiAgIENoZWNraW5nIGluIFNOTVAtMy4xLjBiMQogICAKMjAwMC0wMS0xMCAxMzoyMSAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBRdWFsaWZ5IHVzZSBvZiB3aXRodmFsIHRvIGRlZmluZSBsaWJyYXJ5IGFuZCBpbmNsdWRlIHNlYXJjaCBwYXRocy4KICAgCjIwMDAtMDEtMTAgMTM6MTQgIG1zbGlmY2FrCgogICAqIHdpbjMyL3dpbjMyLmRzdzoKCiAgIEFsbG93IE1TVkMrKyA1LnggdXNlcnMgdG8gYnVpbGQgdXNpbmcgdGhpcyB3b3Jrc3BhY2UuCiAgIAoyMDAwLTAxLTEwIDA2OjEyICBkYXZlcwoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6IFJlLXN0cnVjdHVyZSBnZXRfdXB0aW1lKCkgdG8gY2FjaGUgYm9vdCB0aW1lLgogICAKMjAwMC0wMS0xMCAwMzowNiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogQ291bnQgbnVtYmVycyBvZiB2YXJpYWJsZXMgcmVxdWVzdGVkL3NldAogICAKMjAwMC0wMS0xMCAwMjozMSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogRGlmZmVyZW50aWF0ZSBtYXgtcmVwZXRpdGlvbiBhbmQgbm9uLXJlcGVhdGVyIGVycm9ycy4KICAgCjIwMDAtMDEtMTAgMDE6MzcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICAtIChhZ2VudC9taWJncm91cC9taWJJSS5oKTogUmUtcmVtb3ZlIHJlZHVuZGFudCBwcm90b3R5cGUuCiAgIAoyMDAwLTAxLTA4IDEyOjA3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICBVc2Uga25saXN0IGlmZiBhaXg0IGFuZCBIQVZFX0tOTElTVCBbbm90IGNvbXBsZXRlIHcvbyBjb25maWd1cmUgbW9kc10KICAgCjIwMDAtMDEtMDggMTE6NDQgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRml4IGJ1aWxkIGZvciBMaW51eCBSZWRIYXQgNi4xIChjYW50IGxpbmsgbGlid3JhcCB3aXRob3V0IGxpYm5zbCkuCiAgIAoyMDAwLTAxLTA4IDAwOjU2ICBuYmEKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIGNvbmZpZ3VyZS5pbjogYnVnZml4IGZvciBhIGJ1Z2ZpeCBidWcKICAgCjIwMDAtMDEtMDcgMjM6NDMgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gY29uZmlndXJlLmluOiBzb21lIG1pc3NpbmcgIngiIGluIHRlc3RzIGZvciAtLXdpdGgtb3BlbnNzbCBhbmQKICAgCS0tZGlzYWJsZS1kZXZlbG9wZXIKICAgCjIwMDAtMDEtMDcgMTY6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAodmFjbV92YXJzLmMpOiBwcm9wZXJseSBncm91cCBydy9yb3VzZXJzIGludG8gdXNtIG5vdCB2MS92MmMuCiAgIAoyMDAwLTAxLTA3IDExOjIyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgIC0gaGFuZGxlIG11bHRpcGxlIHRyYW5zbGF0ZWQgT0lEcy4KICAgCjIwMDAtMDEtMDcgMTA6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKTogdXBkYXRlIHRvIHY0IEFQSSBzZXQgY29kZS4KICAgCjIwMDAtMDEtMDcgMDk6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IGJldHRlciBoYW5kbGluZyBvZiB3cml0ZSBmYWlsdXJlcy4KICAgCjIwMDAtMDEtMDYgMTU6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICAtIChtaWIyYy5jb25mKTogdW5xdW90ZWQgcXVvdGVzIHF1b3RlZC4KICAgCjIwMDAtMDEtMDYgMTU6MDggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOiByZW1vdmVkIGEgZGVidWdnaW5nIHN0YXRlbWVudC4KICAgCjIwMDAtMDEtMDYgMTU6MDggIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICAtIChDT1BZSU5HKTogeTJrIGJ1Zy4KICAgCjIwMDAtMDEtMDYgMTM6MTQgIG1hcnoKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMjBzbm1wdjNnZXQsIFQwMjFzbm1wdjNnZXRuZXh0OgoKICAgdXBkYXRlIGNvbmZpZyBhY2Nlc3Mgc3ludGF4IChleGFjdCkKICAgCjIwMDAtMDEtMDYgMTM6MDcgIG1hcnoKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHdlIHNob3VsZCBub3QgcHJpbnQgdG8gc3RkZXJyIGlmIHN0ZGVyciBsb2dnaW5nIGlzIGRpYWJsZWQgLSB0aGlzIHRob3dzIG9mZiB0aGUgYWxpZ25tZW50IG9mIHRlc3Qgb3V0cHV0IGZvciAnbWFrZSB0ZXN0JyBpbiBib3RoIHVjZC1zbm1wIGFuZCBQZXJsL1NOTVAKICAgCjIwMDAtMDEtMDYgMTI6NTYgIG1hcnoKCiAgICogdGVzdGluZy90ZXN0cy9TdmFueWNvbmZpZzoKCiAgIHVwZGF0ZSBzeW50YXggKGV4YWN0KQogICAKMjAwMC0wMS0wNiAwODo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgLSAodXRpbF9mdW5jcy5oKTogcHJvcGVybHkgd3JhcCBzdHJ1Y3QuaCBpbmNsdWRlIGRpcmVjdGl2ZSBmb3IKICAgICBub24tc291cmNlLWRpcmVjdG9yeSBpbmNsdWRlLgogICAKMjAwMC0wMS0wNiAwMTo1OCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuYzoKCiAgIC0gKG1pYmdyb3VwL21pYklJLmMpOiBSZW1vdmUgcmVkdW5kYW50IGZpbGUKICAgCjIwMDAtMDEtMDQgMjM6NTEgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBzbm1wdHJhcGQuYzogaW1wbGVtZW50IHRyYW5kIGhhbmRsZXJzIGZvciB3aW4zMgogICAKMjAwMC0wMS0wNCAyMzo1MCAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogI2lmZGVmIHNvbWUgdmFyaWFibGVzIG5vdCB1c2VkIHVuZGVyIHdpbjMyCiAgIAoyMDAwLTAxLTA0IDIyOjEyICBuYmEKCiAgICogRVhBTVBMRS5jb25mLmRlZiwgRkFRLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gRVhBTVBMRS5jb25mLmRlZiwgRkFRLCBzbm1wZC5jb25mLjUuZGVmOiByZW1vdmUgYWxsIHRyYWNlcyBvZiBzZWN1cml0eQogICAJbW9kZWwgImFueSIgaW4gImdyb3VwIiBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMKICAgCjIwMDAtMDEtMDQgMTY6MjcgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gU2FuZGVyIFN0ZWZmYW5uOgogICAgIC0gQWRkIC1JL3Vzci9pbmNsdWRlL3JwbSBiZWNhdXNlIG9mIGJhZGx5IHdyaXR0ZW4gcnBtIGhlYWRlciBmaWxlcy4KICAgCjIwMDAtMDEtMDQgMTA6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IGRlYWwgd2l0aCBibG9ja2luZyBiZXR0ZXIgaW4gc25tcF9hZ2VudF9jaGVja19hbmRfcHJvY2VzcygpLgogICAKMjAwMC0wMS0wNCAxMDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgc3RydWN0LmgKICAgCjIwMDAtMDEtMDQgMDg6NTggIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSAoUkVBRE1FLCBGQVEpOiBKYXBhbiBtaXJyb3IgbG9jYXRpb24gY2hhbmdlLgogICAKMjAwMC0wMS0wMyAxNTozOSAgbmJhCgogICAqIG1hbi86IHNubXBjbWQuMSwgc25tcHRyYW5zbGF0ZS4xLAogICBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIC0gc25tcGNtZC4xOiBhZGQgc25tcGJ1bGtnZXQgdG8gbGlzdCBvZiBhcHBsaWNhdGlvbnMKICAgLSBzbm1wdHJhbnNsYXRlLjE6IGV4cGxhaW4gLVQgb3V0cHV0cwogICAtIHNubXB0cmFwZC5jb25mLjUuZGVmOiBkZWZhbHQgdHJhcGhhbmRsZXIgaXMgaW1wbGVtZW50ZWQKICAgCjIwMDAtMDEtMDMgMTU6MzQgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogYWxzbyBub3RlIFRFWFRVQUwgQ09OVkVOVElPTiBpbiAtVGQgb3V0cHV0CiAgIAoyMDAwLTAxLTAzIDE1OjMyICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBmaXggRmlsZSB2YXJpYWJsZSBiZWluZyBsZWZ0IHBvaW50aW5nIGludG8gdGhlIHN0YWNrLgogICAJSWdub3JlIC5pbmRleCBmaWxlIG9uIFdJTjMyIHBsYXRmb3JtCiAgIAoyMDAwLTAxLTAzIDE1OjMwICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uaDoKCiAgIC0gc3lzdGVtLmg6IGFkZCBwcm90b3R5cGUgZm9yIHN0cmNhc2VjbXAKICAgCjIwMDAtMDEtMDMgMTU6MjggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IHdvbWJhdC5jLCB3b21iYXQuaDoKCiAgIC0gd29tYmF0LltjaF06IGNvcnJlY3QgcHJvdG90eXBlIGZvciB3b21iYXRfcGFyc2VfY29uZmlnCiAgIAoyMDAwLTAxLTAzIDE1OjI3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIC0gbWliSUkuaDogYWRkIHByb3RvdHlwZSBmb3IgaW5pdF9taWJJSQogICAKMjAwMC0wMS0wMyAxNToyNiAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIHNubXBkLmM6IGFkZCBhIG1pc3NpbmcgY29uc3Qgc3BlY2lmaWVyCiAgIAoyMDAwLTAxLTAzIDE1OjI2ICBuYmEKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIHNubXBfdmFycy5jOiBpbmNsdWRlIGFnZW50X3JlZ2lzdHJ5Lmggb25seSBvbmNlCiAgIAoyMDAwLTAxLTAzIDE1OjIzICBuYmEKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gRVhBTVBMRS5jb25mLmRlZjogYWRhcHQgdG8gY2hhbmdlcyBpbiB2YWxpZCB2YWNtIHN5bnRheAogICAKMTk5OS0xMi0zMSAxMzoyNyAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYwo6CgogICBBcHBseSBzb21lIE5ldEJTRCAxLjMueCwgMS40IHBhdGNoZXMgYy9vIEdyZWEgQS4gV29vZHMgPHdvb2RzQHBsYW5peC5jb20+CiAgIAoxOTk5LTEyLTMxIDEyOjQzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jLCB3aW4zMi9jb25maWcuaCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBGaXggYnVnICM0ODogbm8gc3RyY2FzZWNtcC9zdHJuY2FzZWNtcCBmb3IgU2luaXgKICAgCjE5OTktMTItMzEgMTA6MzYgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXggd2FybmluZ3Mgb2YgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMuCiAgIAoxOTk5LTEyLTMxIDEwOjMzICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIEF1dG9jb25mIHBhdGNoIGMvbyBBbGJlcnQgQ2hpbi1BLVlvdW5nIDxjaGluYUB0aGV3cml0dGVud29yZC5jb20+CiAgIAoxOTk5LTEyLTMxIDEwOjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIEZpeCBidWcgIzEyNSAtIGluc2VydCB1bmRlcnNjb3JlIGludG8gc3RydWN0IHNubXBfaXBhZGRyIG1lbWJlciBuYW1lcy4KICAgCjE5OTktMTItMzEgMDk6MzIgIG1zbGlmY2FrCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIEFwcGx5IHBhdGNoIHByb3ZpZGVkIGJ5IFNlcmcgVHJ1c2huaWtvdiA8c2F0QHptYWlsLnJ1PiBmb3IgQUlYIDQuMi4xIGtubGlzdAogICAKMTk5OS0xMi0zMSAwOTozMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jOgoKICAgRml4IGJ1ZyAjIDEyMgogICAKMTk5OS0xMi0zMCAxMjowMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBGaXggY29tcGlsZSBlcnJvcnMuCiAgIAoxOTk5LTEyLTMwIDA3OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHVzYWdlIGxpbmUgb3JkZXIgbWVzc2VkIHVwLCBhcyBwb2ludGVkIG91dCBieSBSb2JlcnQgU3RvcnkuCiAgIAoxOTk5LTEyLTI4IDE1OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiByZW1vdmUgdGhlICEgaW4gZnJvbnQgb2YgaW5fYV92aWV3LCB3aGljaCBjaGFuZ2VkLgogICAKMTk5OS0xMi0yMyAwODoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAtICh2bXN0YXRfc29sYXJpczIuYyk6IFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoOgogICAgIC0gbm9uIDgwLWNvbHVtbiB3cmFwcGVkIHZlcnNpb24uCiAgIAoxOTk5LTEyLTIyIDE2OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdF9zb2xhcmlzMi5jLAogICB2bXN0YXRfc29sYXJpczIuaDoKCiAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoOgogICAgIC0gZmlyc3QgcGFzcyBhdCB2bXN0YXQgc3VwcG9ydCBmb3Igc29sYXJpcy4KICAgCjE5OTktMTItMjIgMTU6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAobWFzdGVyX3JlcXVlc3QuYyk6IGluY3JlYXNlIG1heCB2YXJzIHRvIDY0ICh3YXMgMTYpLiAgSSBoYXZlIGEKICAgICB0YWJsZSB3aXRoIG1vcmUgdGhhbiB0aGF0IG51bWJlciBpbiBjb2x1bW5zLCB3aGljaCBicmVha3Mgc25tcHRhYmxlLgogICAKMTk5OS0xMi0yMiAxNToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgLSAobWFzdGVyLmMpOiB1c2Ugc25tcF9zZXNzX29wZW4gZm9yIHRoZSBzZWNvbmQgdHJ5IGF0IG9wZW5pbmcgdGhlCiAgICAgbWFzdGVyIHBvcnQuCiAgIAoxOTk5LTEyLTIyIDA1OjU4ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIHNubXBsaWIvdmFjbS5oOgoKICAgLSB2YWNtIHJvdXRpbmVzOiBhbGlnbm1lbnQgd2l0aCBSRkMgbWlicywgcHJlcGFyaW5nIGZvciB0cmFwIGdlbmVyYXRpb24KICAgCWFuZCBhIGJldHRlciBpbnRlZ3JhdGlvbiB3aXRoIHZhcmlhYmxlIHRyZWUgd2Fsa2luZwogICAKMTk5OS0xMi0yMiAwNTo0NyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIC0gc3lzdGVtX21pYi5jOiB1c2Ugc29tZSAjZGVmaW5lcyBpIHBsYWNlIG9mIG51bWJlcnMKICAgCjE5OTktMTItMjIgMDU6NDYgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSBzeXN0ZW0uYzogbmF1Z2h0eSwgbmF1Z2h0eSBOaWVscywganVzdCByZWluZGVudGluZyAuLi4KICAgCjE5OTktMTItMjIgMDI6NDMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIC0gaHJfc3RvcmFnZS5jOiBraWxsIGEgZHVtbXkgdmFsdWUKICAgCjE5OTktMTItMjIgMDI6NDEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYzoKCiAgIC0gbWVtb3J5X2ZyZWVic2QyLmM6IG1ha2UgaXQgd29yayAoYWdhaW4pIGZvciBGcmVlQlNELTI6LSkKICAgCjE5OTktMTItMjEgMDI6MzcgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBzbm1wZC5jLCBzbXV4LmMsIHNubXBfYXBpLmM6IHRha2UgYXdheSBzb21lIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoxOTk5LTEyLTIwIDE3OjM0ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgRkFRCiwgUkVBRE1FOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEucHJlMSApCiAgIAoxOTk5LTEyLTIwIDE3OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmg6CgogICAtIChtaWJpbmNsLmgpOiBhZGQgYWdlbnRfdHJhcC5oCiAgIAoxOTk5LTEyLTIwIDE3OjMyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IG1lbnRpb24gU01JdjIgdXBkYXRlcy4KICAgCjE5OTktMTItMjAgMTc6MzEgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogbWlub3Igbm90ZS4KICAgCjE5OTktMTItMjAgMTc6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBEaWdpdGFsIFVuaXggaGFjayBmb3IgYmFkIHJlY3Zmcm9tIGltcGxlbWVudGF0aW9uLgogICAKMTk5OS0xMi0yMCAxNzoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChhZ2VudHgvcHJvdG9jb2wuYyk6IG1ha2UgYSB0aGluZ3Mgc2l6ZV90IGluc3RlYWQgb2YgdV9pbnQgKGZvciA2NGJpdCBjb2RlKS4KICAgCjE5OTktMTItMjAgMTc6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gKGFnZW50X3RyYXAuYyk6IG1ha2UgdXB0aW1lIGEgbG9uZyBmb3IgNjRiaXQgYXJjaGl0ZWN0dXJlcy4KICAgCjE5OTktMTItMjAgMTU6MzggIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IElQRldBQ0MtTUlCLnR4dCAtPiBVQ0QtSVBGV0FDQy1NSUIudHh0CiAgIAoxOTk5LTEyLTIwIDEzOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYzoKCiAgIC0gKGlwZndhY2MuYyk6IG1vdmVkIHRhYmxlIHRvIG9uZSBsZXZlbCBkZWVwZXIgdW5kZXIgbWliIG5vZGUuCiAgIAoxOTk5LTEyLTIwIDEzOjMwICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1JUEZXQUNDLU1JQi50eHQ6CgogICAtIChVQ0QtSVBGV0FDQy1NSUIudHh0KTogbW92ZWQgdGFibGUgdG8gb25lIGxldmVsIGRlZXBlciB1bmRlciBtaWIgbm9kZS4KICAgCjE5OTktMTItMjAgMTM6MjYgIGhhcmRha2VyCgogICAqIG1pYnMvOiBVQ0QtSVBGV0FDQy1NSUIuaW5jLCBVQ0QtSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoVUNELUlQRldBQ0MtTUlCLnR4dCk6IG1vdmVkIGFuZCB1cGRhdGVkIGZyb20gSVBGV0FDQy1NSUIudHh0CiAgIAoxOTk5LTEyLTIwIDEzOjI1ICBoYXJkYWtlcgoKICAgKiBtaWJzL0lQRldBQ0MtTUlCLnR4dDoKCiAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IG1vdmVkIHRvIFVDRC1JUEZXQUNDLU1JQi50eHQKICAgCjE5OTktMTItMjAgMTM6MjMgIGhhcmRha2VyCgogICAqIG1pYnMvSVBTRUMtTUlCLnR4dDoKCiAgIC0gKElQU0VDLU1JQi50eHQpOiByZW1vdmVkCiAgIAoxOTk5LTEyLTIwIDA2OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbW92ZWQga2VybmVsLm8gaW50byB0aGUgbGlidWNkYWdlbnQgbGlicmFyeS4KICAgCjE5OTktMTItMjAgMDY6NDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IEZvcmNlIHNldCB0byAxIGZvciAtRCBzbyBtdWx0aXBsZSBzd2l0Y2hlcyBjYW4KICAgICBiZSBnaXZlbiAoaWUsIGRvbid0IHRvZ2dsZSB0aGUgdmFsdWUpLgogICAKMTk5OS0xMi0yMCAwNDoxNSAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMsIHNubXBfdmFycy5jLAogICBtaWJncm91cC9taWJJSS5oLCBtaWJncm91cC9taWJJSS9hdC5jLAogICBtaWJncm91cC9taWJJSS9pY21wLmMsIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgbWliZ3JvdXAvbWliSUkvaXAuYywgbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jLCBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMKLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIG1pYmdyb3VwL21pYklJL3RjcC5jCiwgbWliZ3JvdXAvbWliSUkvdWRwLmMsIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiwgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oOgoKICAgLSAoYWdlbnRfdHJhcC5jIHNubXBfdmFycy5jIG1pYklJLltjaF0gbWliSUkvKi5jIG1pYklJL3N5c09SVGFibGUuaCk6CiAgICAgLSBVc2UgU05NUF9PSUQgcHJlZml4IGRlZmluaXRpb25zIGluIE9JRCBzcGVjaWZpY2F0aW9ucy4KICAgICAtIFJlZ2lzdGVyIHRoZSB2YXJpb3VzIE1JQi0yIG1vZHVsZXMgc2VwYXJhdGVseSBpbiBzeXNPUlRhYmxlLgogICAKMTk5OS0xMi0yMCAwMzowMSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHg6CgogICAtIChhZ2VudHgvUkVBRE1FLmFnZW50eCk6IFVwZGF0ZWQgdG8gZGVzY3JpYmUgY3VycmVudCBzdGF0dXMuCiAgIAoxOTk5LTEyLTE3IDE1OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4Lmg6CgogICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKTogY29tcGxldGVseSByZXN0cnVjdHVyZWQuCiAgICAgLSBkcmFzdGljbHkgcmVkdWNlcyBtZW1vcnkgdXNhZ2UgZm9yIGxhcmdlIGRhdGEgc2V0cyAoMS8zKS4KICAgCjE5OTktMTItMTcgMTU6NTYgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywKICAgc25tcF92YXJzLmM6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX3ZhcnMuYyk6CiAgICAgLSBpbmNsdWRlICJzbm1wX2FsYXJtLmgiIGZvciBtaWIgbW9kdWxlcyB0aGF0IG5lZWQgdGhlIGNhbGxiYWNrIGRlZi4KICAgCjE5OTktMTItMTcgMTU6NTUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbWVudGlvbiAtSS4KICAgCjE5OTktMTItMTcgMTU6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgLSAoc25tcF9hbGFybS5jKTogbWlzc2luZyAhIG9wZXJhdGVyIG9uIHNpZ25hbCB0ZXN0LgogICAKMTk5OS0xMi0xNyAxNTo0MSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfZnJlZWJzZDIuYywgdm1zdGF0LmMKLCB2bXN0YXRfZnJlZWJzZDIuYzoKCiAgIE5vIGR1bW15IHZhbHVlcyBmb3IgRnJlZUJTRCwgcGxlYXNlLgogICAKMTk5OS0xMi0xNyAxNToyMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYwosIHVjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgQWRkIEJpbGwgRnVtZXJvbGEncyBwYXRjaCBmb3IgRnJlZUJTRCA0LnggdG8gdXNlIHN3YXBpbmZvLgogICBJbmNsdWRlIEZyZWVCU0QgNC54IHNwZWNpZmljIG1lbW9yeSBhbmQgdm1zdGF0IHdoZW4gYnVpbGRpbmcgdGhhdCBhZ2VudC4KICAgCjE5OTktMTItMTcgMTQ6MjMgIG1zbGlmY2FrCgogICAqIG1hbi86IFJFQURNRSwgbWliX2FwaS4zLCBzbm1wLmNvbmYuNS5kZWYsCiAgIHNubXBjbWQuMSwgc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsCiAgIHNubXBuZXRzdGF0LjEsIHNubXB0ZXN0LjEsIHNubXB1c20uMSwgc25tcHdhbGsuMQo6CgogICBGaXhlZCBhIGZldyBzcGVsaWxuZyBlcnJvcnMuCiAgIAoxOTk5LTEyLTE3IDEwOjE4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMzoKCiAgIC0gKHNubXBfYWdlbnRfYXBpLjMpOiByZS1zdHJ1Y3R1cmUgYmFzZWQgb24gcmVjZW50IGNoYW5nZXMuCiAgIAoxOTk5LTEyLTE3IDEwOjE4ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHNlY29uZCBwYXNzLgogICAKMTk5OS0xMi0xNyAxMDoxNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogcmVtb3ZlZCAtUiBmcm9tIHRoZSAtaCBvdXRwdXQuCiAgIAoxOTk5LTEyLTE3IDEwOjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgLSAodXNtVXNlci5jKTogY2hhbmdlZCBoZWxwIGxpbmUgb2YgY3JlYXRlVXNlciB0byBzZXBlcmF0ZSBERVMgdG9rZW4KICAgICBmcm9tIHRoZSBwYXNzcGhyYXNlLgogICAKMTk5OS0xMi0xNyAxMDoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHB1dCBzbm1wZC5vIGludG8gdGhlIG9iamVjdCBsaXN0LCBhbmQgcmVtb3ZlIGl0IGZyb20KICAgICBkaXJlY3QgY29tcGlsYXRpb24gaW4gdGhlIENDIGxpbmsgbGluZS4KICAgCjE5OTktMTItMTcgMTA6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogcmVvcmRlciBpbml0KCkgcm91dGluZXMgZm9yIC1IIHRvIHByZXZlbnQgc2VnZmF1bHRpbmcuCiAgIAoxOTk5LTEyLTE3IDEwOjExICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiBQRVJTSVNURU5UX0RJUkVDVE9SWSB0b2tlbiBhZGRlZC4KICAgCjE5OTktMTItMTcgMTA6MTAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogZmlyc3QgcGFzcyBhdCBjaGFuZ2VzLgogICAKMTk5OS0xMi0xNyAwNzo0MCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgY3JlYXRlVXNlci4KICAgCjE5OTktMTItMTcgMDc6MjggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHRoZSBmaWxlIGRpcmVjdGl2ZS4KICAgCjE5OTktMTItMTcgMDc6MjYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHJvY29tbXVuaXR5LCByd2NvbW11bml0eSwgcm91c2VyLCByd3VzZXIuCiAgIAoxOTk5LTEyLTE3IDA3OjEzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgLSAoc25tcC5jb25mLjUuZGVmKTogZG9jdW1lbnQgYSBidW5jaCBvZiBuZXcgY29uZmlndXJhdGlvbiBvcHRpb25zLgogICAKMTk5OS0xMi0xNyAwNzowNSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gKHNubXBjbWQuMSk6IG1lbnRpb24gdGhhdCAtSVIgYW5kIC1JYiBhcmUgYWN0dWFsbHkgdXNlZCBieSBkZWZhdWx0LgogICAKMTk5OS0xMi0xNyAwNzowMyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gKHNubXBjbWQuMSk6IGRvY3VtZW50IC1JIGFuZCAtTyBmbGFncy4KICAgCjE5OTktMTItMTcgMDM6MjIgIG5iYQoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmCjoKCiAgIC0gbGlic25tcC5kZWY6IGFkZCBzb21lIGZ1bmN0aW9uIG5hbWVzCiAgIAoxOTk5LTEyLTE3IDAyOjE4ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gc25tcHRyYXBkLmM6IG1ha2UgdGhlIG9pZHMgZ2l2ZW4gdG8gdHJhcGQgaGFuZGxlcnMgcHJvcGVybHkgLjAgdGVybWluYXRlZC4KICAgCUFkZCBhIFNOTVAtQ09NTVVOSVRZLU1JQjo6c25tcFRyYXBBZGRyZXNzLjAKICAgCUFkZCBzeXNsb2cgb2YgdjIgdHJhcHMgYW5kIGluZm9ybXMKICAgCjE5OTktMTItMTcgMDI6MTQgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSBzbm1wdGFibGUuYzogY2xlYW51cCBvZiB0aGUgIm5ldyIgbWliIHdhbGsgdG8gZGV0ZXJtaW5lIGZpZWxkcy4gTWFrZSBpdAogICAJZGVmYXVsdCAoZG9uJ3QgZXZlbiBkb2N1bWVudCB0aGUgLUMgY29tcGF0aWJpbGl0eSBvcHRpb24pLiBJZ25vcmUKICAgCW5vdC1hY2Nlc3NpYmxlIGZpZWxkcyBpbiB0aGUgd2Fsay4KICAgCjE5OTktMTItMTcgMDI6MDkgIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogcmVtb3ZlIHNvbWUgc3VwZXJmbHVvdXMgdXNhZ2UoKSBjYWxscy4KICAgCjE5OTktMTItMTcgMDI6MDggIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzoga2lsbCB0aGF0IHRhaWwgcmVjdXJzaW9uIGVsaW1pbmF0aW9uLCBpdCBqdXN0IGFkZHMgdG9vIG1hbnkKICAgCWNvbmRpdGlvbmFscy4gUHJvcGVybHkgb3V0cHV0IGFuIGVtcHR5IHN0cmluZyBpbmRleC4KICAgCjE5OTktMTItMTYgMjM6MTAgIG5iYQoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSBzbm1wdjMuYzogYSBtb3JlIHNwZXZpZmljIGhlbHAgbWVzc2FnZSBmb3IgZGVmVmVyc2lvbgogICAKMTk5OS0xMi0xNiAyMzowOSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBmaXggYSB0YWlsIHJlY3Vyc2lvbiBlbGltaW5hdGlvbiBwcm9ibGVtIHByaW50aW5nIG9pZHMKICAgCjE5OTktMTItMTYgMjM6MDggIG5iYQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gc25tcHRyYW5zbGF0ZS5jOiBiZSBleHBsaWNpdCBpbiB0aGUgLXQgd2FybmluZwogICAKMTk5OS0xMi0xNiAyMzowOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMsIHNtdXguaDoKCiAgIC0gc211eC5bY2hdOiBmaXggc29tZSBwcm90b3R5cGVzIGFuZCBpbmNsdWRlcy4KICAgCjE5OTktMTItMTYgMjM6MDYgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBzbm1wZC5jOiBcbiB0ZXJtaW5hdGUgc29tZSBsb2cgbWVzc2FnZXMKICAgCjE5OTktMTItMTYgMjM6MDUgIG5iYQoKICAgKiBhZ2VudC9rZXJuZWwuYzoKCiAgIC0ga2VybmVsLmM6IG91dHB1dCBlcnJvciBzdHJpbmcsIG5vdCBudW1iZXIKICAgCjE5OTktMTItMTUgMTE6MDggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLAogICB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIFJlcGxhY2Uga2MgZnJvbSBtZW1vcnlfc29sYXJpczIuYyB3aXRoIGtzdGF0X2ZkLCBkZWZpbmVkIGluIGtlcm5lbF9zdW5vczUuYy4KICAgCjE5OTktMTItMTUgMDk6NTYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiB0b29scy5jLCB0b29scy5oOgoKICAgQWRkIHRpbWUgbWFya2VyIGNyZWF0ZSwgc2V0LCBhbmQgZGVsdGEgdGltZSBjaGVjayBtZXRob2RzLgogICAKMTk5OS0xMi0xNSAwOTo0MiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaDoKCiAgIFJlbW92ZSBzbm1wX2xvZ19zeXNsb2csIHNubXBfbG9nX2ZpbGVsb2csIHNubXBfbG9nX3N0ZGVycmxvZzsKICAgU2ltcGxpZnkgc25tcF9sb2dfc3RyaW5nLgogICAKMTk5OS0xMi0xNSAwOToxOSAgaGFyZGFrZXIKCiAgICogbWlicy86IE1ha2VmaWxlLmluLCBTTk1QdjItTTJNLU1JQi50eHQsCiAgIFNOTVB2Mi1QQVJUWS1NSUIudHh0OgoKICAgLSAoU05NUHYyLVBBUlRZLU1JQi50eHQgU05NUHYyLU0yTS1NSUIudHh0ICk6IHJlbW92ZWQuCiAgIAoxOTk5LTEyLTE1IDA5OjE3ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogRXRoZXJMaWtlLU1JQi50eHQsIElQRklMVEVSLnR4dCwKICAgVUNELUlQRklMVEVSLU1JQi5pbmMsIFVDRC1JUEZJTFRFUi1NSUIudHh0OgoKICAgLSAoRXRoZXJMaWtlLU1JQi50eHQsIElQRklMVEVSLnR4dCwgVUNELUlQRklMVEVSLU1JQi5pbmMsCiAgICAgVUNELUlQRklMVEVSLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAtIEV2ZW4gbW9yZSB1cGRhdGVzLgogICAKMTk5OS0xMi0xNSAwNTo1MSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgU2hhcmUga3N0YXQgZmQgaWZmIHVjZC1zbm1wL21lbW9yeV9zb2xhcmlzMiBpcyBhbHNvIGNvbmZpZ3VyZWQuCiAgIAoxOTk5LTEyLTE1IDA0OjIxICBtc2xpZmNhawoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFuc2xhdGUuYzoKCiAgIElzb2xhdGUgYW5kIHJldG91Y2ggZGVwcmVjYXRlZCBjb21tYW5kIGxpbmUgb3B0aW9ucy4KICAgCjE5OTktMTItMTQgMTY6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogZ2V0IG5leHQgaW4gbGluayBsaXN0IGJlZm9yZSBkZWxldGluZyByb290LgogICAKMTk5OS0xMi0xNCAxNjowNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IG1vdmUgLWxlZmVuY2UgY2hlY2sgdXAgdG8gZnJvbnQgKGxhc3QgaW4gbGluaykuCiAgIAoxOTk5LTEyLTE0IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBETE1PRCAtPiBVQ0QtRExNT0QKICAgCjE5OTktMTItMTQgMTQ6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIC0gKGtleXRvb2xzLmMpOiByZXZlcnNlIGdlbmVyYXRlX0t1IG9wdGltaXphdGlvbnMsIGFzIHRoZXkgZG9uJ3Qgd29yay4KICAgCjE5OTktMTItMTQgMDg6NDEgIGhhcmRha2VyCgogICAqIG1pYnMvOiBJQU5BaWZUeXBlLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQ6CgogICAtIChJQU5BaWZUeXBlLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAtIHVwZGF0ZXMuCiAgIAoxOTk5LTEyLTE0IDA4OjA3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmg6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYywgZGVmYXVsdF9zdG9yZS5oLAogICAgIG1pYi5jLCBtaWIuaCk6CiAgICAgLSBhcmd1bWVudCBzaHVmZmxpbmcuLi4KICAgICAgIC1JIGZvciBpbnB1dCBhcmdzIGNyZWF0ZWQsIGFuZCAtT1IgbW92ZWQgdGhlcmUuCiAgICAgICAtSWIgY3JlYXRlZC4KICAgICAgIC1UQiBjcmVhdGVkIGZvciBzbm1wdHJhbnNsYXRlICh3YXMgLUIpLgogICAKMTk5OS0xMi0xMyAxNjowMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEFsbG93IHNwcmludF92YXJpYWJsZSB0byB3b3JrIGV2ZW4gaWYgbm8gTUlCIGZpbGVzIHdlcmUgcmVhZC4KICAgCjE5OTktMTItMTMgMTU6MTIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaW5pc2ggc3ltYm9sIGNvbnZlcnNpb24gd2l0aCBudW1lcmljIHdoZW4gc3VidHJlZSBpcyBsZWFmIG5vZGUuCiAgIAoxOTk5LTEyLTEzIDE0OjU0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IHByb2JsZW0gcHJpbnRpbmcgSU1QTElFRCBpbmRpY2VzIG9mIE9CSkVDVElEIHR5cGUuCiAgIAoxOTk5LTEyLTEzIDE0OjIwICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiAtLXdpdGgtZWZlbmNlIGltcGxlbWVudGVkLgogICAgIC0gKGZvcmNlZCBjaGVja2luZyBmb3IgLS1lbmFibGUtZGV2ZWxvcGVyIGFuZCBDVlMgY2hlY2tvdXRzKQogICAKMTk5OS0xMi0xMyAxMzo1NCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFNhbml0eSBjaGVja3MgYWRkZWQgdG8gX2dldF9zeW1ib2wuCiAgIAoxOTk5LTEyLTEzIDEyOjA0ICBtc2xpZmNhawoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBDbGVhbiBhbHNvIHJlbW92ZXMgZ2VuZXJhdGVkIGRlZmF1bHRfc3RvcmUuMy5oIC4KICAgCjE5OTktMTItMTMgMDk6NTcgIGhhcmRha2VyCgogICAqIG1pYnMvOiBETE1PRC1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLmluYywKICAgVUNELURMTU9ELU1JQi50eHQ6CgogICAtIChETE1PRC1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLmluYywgVUNELURMTU9ELU1JQi50eHQpOgogICAgIC0gSnVlcmdlbnMgcGF0Y2ggdG8gbW92ZSBETE1PRC1NSUIgLT4gVUNELURMTU9ELU1JQiBhbmQgLT4gU01JdjIuCiAgICAgLSBtb3ZlZCB0byB0aGUgZXhwZXJpbWVudGFsIHRyZWUuCiAgIAoxOTk5LTEyLTEzIDA5OjQ5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jLCBzbXV4Lmg6CgogICBBZGRlZCBwYXRjaCBmcm9tIE0uTWljaGF1ZCB0byB1c2Ugc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycy4KICAgCjE5OTktMTItMTMgMDQ6NDMgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcGQuYywgbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIG1pYmdyb3VwL3NtdXgvc211eC5oOgoKICAgLSAoYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguW2NoXSk6CiAgICAgLSBQYXRjaCB0byBnZXQgU01VWCBzdXBwb3J0IHdvcmtpbmcgd2l0aCB0aGUgbmV3IGFnZW50IGFyY2hpdGVjdHVyZS4KICAgICAgIFRoaXMgaXMgcHJvYmFibHkgbm90IFRoZSBSaWdodCBXYXkgVG8gRG8gVGhpbmdzIE5vdywgYnV0IGl0IHdvcmtzLgogICAgICAgVGhhbmtzIHRvIE5pY2sgQW1hdG8gYW5kIE1pa2UgTWljaGF1ZC4KICAgCjE5OTktMTItMTMgMDM6MTggIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gKGFnZW50X3RyYXAuYyk6IGFsbG93IHNwZWNpZmljYXRpb24gb2YgZW50ZXJwcmlzZSBPSUQgd2hlbiBzZW5kaW5nIHRyYXBzCiAgIAoxOTk5LTEyLTEzIDAzOjE3ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IEhhbmRsZSBkZWxlZ2F0ZWQgTUlCIHJlZ2lvbnMgcHJvcGVybHkgd2hlbiBzcGxpdC4KICAgCjE5OTktMTItMTAgMTM6MDMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBGaXggSFAtVVggcHJvYmxlbSB3aXRoIGlwRGVmYXVsdFRUTC4KICAgCjE5OTktMTItMTAgMTA6NDQgIG1hcnoKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgIChzbm1saWIvc25tcF9hcGkuYyk6IGZpeCBidWcgaW4gX3Nlc3NfY29weSB3aGVyZSBwb2ludGVycyB0aGF0IHdlcmUgbm90IG93bmVkIGJ5IG5ld2x5IGNyZWF0ZWQgc2Vzc2lvbiBjb3VsZCBnZXQgbWlzdGFrZW5seSBmcmVlZCBpZiBlcnJvcnMgd2VyZSBlbmNvdW50ZXJlZCBkdXJpbmcgc2Vzc2lvbiBjb3B5IC0gYWxzbyBlbGltaW5hdGUgc29tZSByZWR1bmRhbnQgY29weWluZyBvZiBzZWN1cml0eXtBdXRofFByaXZ9S2V5IGRhdGEKICAgCjE5OTktMTItMTAgMTA6MjMgIG1zbGlmY2FrCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIEFwcGx5IERhdmUncyBwYXRjaCB0byBmaXggbWF4IHZhcmJpbmRzIHRlc3Rpbmcgb24gR0VUQlVMSy4KICAgCjE5OTktMTItMTAgMDc6MjggIG1zbGlmY2FrCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgRml4IHRvIGJ1aWxkIGV4ZWN1dGFibGUgYWdlbnQgb24gSFAtVVguCiAgIAoxOTk5LTEyLTEwIDAzOjE5ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYywgd2luMzIvY29uZmlnLmgsCiAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRlZiwgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kZWYsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AsIHdpbjMyL3NubXBkL3NubXBkLmRzcDoKCiAgIC0gKHZhcmlvdXMpOiBjaGFuZ2VzIHRvIGNvbXBpbGUgc25tcGQgd2l0aCBWQysrIDUuMCAoUmVsZWFzZSBtb2RlKQogICAKMTk5OS0xMi0xMCAwMzoxMCAgbmJhCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gcmVhZF9jb25maWcuYzogYWRkIHNvbWUgbWlzc2luZyBjb25zdCBzcGVjaWZpZXJzCiAgIAoxOTk5LTEyLTEwIDAzOjA5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICAtIHBhc3NfcGVyc2lzdC5jOiBmaXggc29tZSBidWYvYnVmMiBjb25mdXNpb24KICAgCjE5OTktMTItMTAgMDM6MDcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICAtIHBhc3MuYzogZml4IHNvbWUgYnVmL2J1ZjIgY29uZnVzaW9uCiAgIAoxOTk5LTEyLTEwIDAzOjA2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgLSBtYXN0ZXIuYzogYWRkIGEgbWlzc2luZyAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPiAoYXQgbGVhc3QgZm9yIFNvbGFyaXMpLgogICAKMTk5OS0xMi0wOSAxNzowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC8qTWFrZWZpbGUuaW4pOiBmaXggZm9yIC0tZW5hYmxlLXNoYXJlZCBvbiBocHV4CiAgIAoxOTk5LTEyLTA5IDE2OjUzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgLSAoc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4pOiBmaXggZm9yIC0tZW5hYmxlLXNoYXJlZAogICAKMTk5OS0xMi0wOSAxNjoxNiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IGNoYW5nZWQgYWxsIGluc3RhbmNlcyBvZiBrYiB0byBrQi4KICAgCjE5OTktMTItMDkgMTU6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIC0gKGtleXRvb2xzLmMpOiBQYXRjaCBmcm9tIExlb25hcmQgR29tZWxza3k6CiAgICAgLSBnZW5lcmF0ZV9LdSgpIHNwZWVkIGltcHJvdmVtZW50cy4KICAgCjE5OTktMTItMDkgMTA6MDggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbgo6CgogICAtIChNYWtlZmlsZS50b3AsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbik6CiAgICAgLSBmaXhlZCAtLWVuYWJsZS1zaGFyZWQgKGF0IGxlYXN0IG9uIGxpbnV4KS4KICAgCjE5OTktMTItMDkgMDg6MTQgIG1zbGlmY2FrCgogICAqIG1pYnMvOiBESVNNQU4tU0NSSVBULU1JQi50eHQsIFVDRC1ERU1PLU1JQi5pbmMsCiAgIFVDRC1ERU1PLU1JQi50eHQsIFVDRC1TTk1QLU1JQi5pbmMsIFVDRC1TTk1QLU1JQi50eHQKOgoKICAgUGF0Y2hlcyBzdXBwbGllZCBieSBKdWVyZ2VuIFNjaG9lbndhZWxkZXIuCiAgIAoxOTk5LTEyLTA5IDA3OjQ5ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gc25tcGNtZC4xOiBzdXBwb3J0IE1JQjo6bGFiZWwKICAgCjE5OTktMTItMDkgMDc6MzQgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogaW1wbGVtZW50IE1JQjo6bGFiZWwKICAgCjE5OTktMTItMDkgMDc6MzQgIGRhdmVzCgogICAqIG1hbi9zbm1wX3RyYXBfYXBpLjM6CgogICAtIChtYW4vc25tcF90cmFwX2FwaS4zKTogSW5pdGlhbCBkb2N1bWVudGF0aW9uIGZvciBhZ2VudCB0cmFwIGdlbmVyYXRpb24uCiAgIAoxOTk5LTEyLTA4IDE3OjEzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIG1hc3Rlci5jLCByZWFkX2NvbmZpZy5jLCBzeXN0ZW0uYywgc3lzdGVtLmgpOgogICAgIC0gaW1wbGVtZW50IG1rZGlyaGllcigpIGFuZCB1c2UgaXQgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZSBhbmQgYWdlbnR4CiAgICAgICBzb2NrZXQgZmlsZSBjcmVhdGlvbi4KICAgCjE5OTktMTItMDggMTU6NDkgIGhhcmRha2VyCgogICAqIG1ha2VmaWxlaW5kZXBlbmQucGwsIG1ha2Vub3N5c2RlcGVuZC5wbCwgcmVtb3ZlLWZpbGVzCjoKCiAgIC0gKG1ha2VmaWxlaW5kZXBlbmQucGwsIG1ha2Vub3N5c2RlcGVuZC5wbCwgcmVtb3ZlLWZpbGVzKToKICAgICAtIG1vdmUgdGhlIG1ha2UgZGVwZW5kIHBlcmwgc2NyaXB0cyB0byB0aGUgdG9wIGxldmVsIHdoZXJlIHRoZXkgb25seQogICAgICAgbmVlZCB0byBiZSBlZGl0ZWQgb25jZS4KICAgCjE5OTktMTItMDggMTU6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9kbG1vZHMvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluLAogICB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSAoKi4uTWFrZWZpbGUuaW4pOiBBIHJlYWwgbWFrZSBkZXBlbmQgd2l0aCBubyBzc2wgZGVwZW5kYW5jaWVzLCBldGMuCiAgIAoxOTk5LTEyLTA4IDE1OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IG1vdmUgc3lzL3BhcmFtIG91dCBvZiBpZmRlZiBGRF9TRVQuCiAgIAoxOTk5LTEyLTA4IDE1OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtICgqLi5NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgogICAKMTk5OS0xMi0wOCAxNToyNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogYWRkIEp1ZXJnZW4uCiAgIAoxOTk5LTEyLTA4IDE1OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6CiAgICAgLSByZW1lbWJlcmVkIElNUExJRUQgaW5kZXhlcy4KICAgICAtIHByb3Blcmx5IHByaW50IE9JRHMgd2l0aCBsZW5ndGggcHJlZml4ZXMgb24gcGFyc2VkIE9JRHMgc28KICAgICAgIGN1dHRpbmcvcGFzdGluZyBvZiB0aGVtIHdvcmtzLgogICAgIC0gcHJvcGVybHkgcHJpbnQgc3RyaW5ncyBhbmQgb2lkcyB0aGF0IGFyZSBJTVBMSUVELgogICAgIC0gcHJpbnQgc3RyaW5ncyBpbiBlaXRoZXIgJyBvciAiIHF1b3RlcyBkZXBlbmRpbmcgb24gaWYgdGhlaXIgSU1QTElFRC4KICAgCjE5OTktMTItMDggMTU6MDQgIG1zbGlmY2FrCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIEFkZCBtaXNzaW5nIGRza1BlcmNlbnROb2RlIHRvIERza0VudHJ5ICh0aGFua3MgdG8KICAgICAgICAgICAgTWljaGFlbCBLaXJraGFtIDxzdXBwb3J0QGl3bC5jb20+KS4KICAgCjE5OTktMTItMDggMTU6MDEgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIEluY2x1ZGUgZ2V0b3B0LmggdG8gZGVmaW5lIG9wdGFyZy4KICAgCjE5OTktMTItMDggMTQ6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IGZpeCAtT3MgYW5kIGluZGV4IGJhc2VkIG9pZCBwcmludGluZyB0byB3b3JrIGFnYWluLgogICAKMTk5OS0xMi0wOCAxNDowOCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1ha2UgbXJJbmRleCBJTVBMSUVEIHNpbmNlIGl0IGlzIGluIHRoZSBjb2RlLgogICAKMTk5OS0xMi0wOCAwOToxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogcmVnaXN0ZXIgYSBjb25maWcgdG9rZW4gZm9yIHN1ZmZpeCBwcmludGluZy4KICAgCjE5OTktMTItMDcgMTU6MjMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEVsaW1pbmF0ZSBtdWx0aXBseWluZyBieSBzaXplb2YoY2hhcikgb3Igc2l6ZW9mKHVuc2lnbmVkIGNoYXIpOwogICBhZ2VudHgvY2xpZW50LmMgLSBzbm1wX2ZyZWVfdmFyYmluZCByZXBsYWNlcyBmcmVlIGluIGZvdXIgcGxhY2VzOwogICBzbm1wdjMvdXNtVXNlci5jIC0gdXNtX2ZyZWVfdXNlciByZXBsYWNlcyBmcmVlIGluIG9uZSBwbGFjZS4KICAgCjE5OTktMTItMDcgMTM6NTQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wd2Fsay4xOgoKICAgLSAoc25tcHdhbGsuMSk6IGRvY3VtZW50IC1DaSBhbmQgLUNwIChiYWRseSkuCiAgIAoxOTk5LTEyLTA3IDEzOjQ1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICAtIChzbm1wd2Fsay5jKToKICAgICAtIE5ldyBhYmlsaXR5IHRvIHBlZm9ybSBhIGdldCBvbiB0aGUgcmVxdWVzdGVkIE9JRCB3aGVuIGVpdGhlciBubwogICAgICAgcmVzdWx0cyBhcmUgcmV0dXJuZWQgb3Igd2hlbiB0aGUgdXNlciByZXF1ZXN0cyBhbiBpbmNsdXNpdmUgb3B0aW9uLgogICAgIC0gTmV3IGFiaWxpdHkgdG8gcHJpbnQgbnVtYmVyIG9mIHZhcmlhYmxlcyBmb3VuZCBhdCB0aGUgZW5kLgogICAKMTk5OS0xMi0wNyAwOTozMiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgIC0gY29udmVydCB0byBTTUl2MiBhbmQgY2xlYW51cC4KICAgCjE5OTktMTItMDcgMDk6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIC0gKHN5c09SVGFibGUuYyk6IG1ha2Ugc3lzT3JJbmRleCBub3QtYWNjZXNzaWJsZSwgYXMgaXQgc2hvdWxkIGJlLgogICAKMTk5OS0xMi0wNyAwOToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jOgoKICAgLSAoaHJfb3RoZXIuYyk6IHNob3J0ZW4gY3B1IGRlc2NyaXB0aW9uIGxlbmd0aC4KICAgCjE5OTktMTItMDcgMDg6MjkgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgKLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcF92YXJzLmgsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L3NubXBkLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYwosIHNubXBsaWIvcmVhZF9jb25maWcuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuW2NoXSBhZ2VudC9zbm1wX3ZhcnMuW2NoXSBhZ2VudC9zbm1wZC5bY2hdCiAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuW2NoXSBzbm1wbGliL3NubXBfYXBpLmMpOgogICAgICAtICBVc2UgdGhlIHNhdmVkIGFwcGxpY2F0aW9uIG5hbWUgZm9yIHJlZ2lzdGVyaW5nIGNvbmZpZyBoYW5kbGVycwogICAJKE4uQjogVGhpcyBjaGFuZ2Ugd2lsbCBuZWVkIHRvIGJlIGFwcGxpZWQgdG8gTUlCIG1vZHVsZXMgYXMgd2VsbCkKICAgCjE5OTktMTItMDcgMDg6MDMgIG1zbGlmY2FrCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHVzbS5jOgoKICAgVXNlIGFyZ3ZbMF0gc2luY2UgdGhlIGFwcCB3b250IGJlIHNubXBnZXRuZXh0LCBwcm9iYWJseS4KICAgCjE5OTktMTItMDYgMTY6MzEgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHVzbS5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIE1vcmUgZnVuIHVwZGF0aW5nIE1TIFZDIGJ1aWxkIG9mIGFwcHMgYW5kIGxpYnJhcnkuCiAgIAoxOTk5LTEyLTA2IDE1OjExICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYywgd2luMzIvY29uZmlnLmgsIHdpbjMyL3dpbjMyLmRzdwosIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsCiAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLAogICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcAosIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcAosIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AKLCB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLCB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AKOgoKICAgLSBzeXN0ZW0uYywgY29uZmlnLmgsIHdpbjMyLmRzdywgKi5kc3AsIGxpYnNubXAuZGVmOiBjbGVhbmluZyB1cCBmb3IgVkMgYnVpbGRzCiAgIAoxOTk5LTEyLTA2IDE1OjA5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcHVzbS5jLCBzbm1wdXNtLmg6CgogICBDb252ZXJ0IFVTTV9FUlIqIHRvIFNOTVBFUlJfVVNNKi4KICAgCjE5OTktMTItMDYgMTQ6NTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogZml4IHVzYWdlIGZvciBuZXcgYXJncy4KICAgCjE5OTktMTItMDYgMTQ6NTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNjb25maWcsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICAtIChTdjNjb25maWcsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24pOiBtYWtlIHYzIHRlc3Rpbmcgd29yayBhZ2Fpbi4KICAgCjE5OTktMTItMDYgMTQ6NDggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKToKICAgICAtIG1ha2Ugc25tcHVzbSB1c2FibGUgYWdhaW4sIGNoYW5naW5nIGFyZ3VtZW50cyBzbGlnaHRseS4KICAgICAtIG1ha2UgaXQgYWxzbyB1c2UgZGVmYXVsdHMgZm9yIHBhc3NwaHJhc2VzLCB1c2VyLCBldGMuCiAgIAoxOTk5LTEyLTA2IDE0OjMyICBuYmEKCiAgICogd2luMzIvOiBiaW4vLmN2c2lnbm9yZSwgbGliLy5jdnNpZ25vcmU6CgogICAtIC5jdnNpZ25vcmU6IE1ha2UgQ1ZTIHNpbGVudCBhYm91dCBpbnN0YWxsYXRpb24gZmlsZXMKICAgCjE5OTktMTItMDYgMTM6NTEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHByaW50IGVycm9yIHN0cmluZ3MgcmV0dXJuZWQgYnkgZ2VuZXJhdGVfS3UoKS4KICAgCjE5OTktMTItMDYgMTM6NDcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGRlZmF1bHQgc3BlY2lmaWNhdGlvbnMgZm9yIGF1dGgvcHJpdiB0eXBlcy4KICAgCjE5OTktMTItMDYgMDk6MTkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBTaG93IGFsbCBub24tcHJpbnRhYmxlIHN1YmlkcyBpbiBkdW1wX29pZF90b19zdHJpbmcuCiAgIFJlY3Vyc2UgY2xlYXJfdHJlZV9mbGFncyBvbmx5IGlmIG5lY2Vzc2FyeS4KICAgCjE5OTktMTItMDUgMjE6NDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICAtIHBhc3MuYywgcGFzc19wZXJzaXN0LmM6IGVuc3VyZSBwcm9wZXIgYnl0ZSBvcmRlcmluZyB3aGVuIHBhc3MnaW5nCiAgIAlpcGFkZHJlc3MuCiAgIAoxOTk5LTEyLTAzIDE2OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIC0gKHZtc3RhdC5jKTogcmVtb3ZlIGR1cGxpY2F0ZSBsaW1pdHMuaCBpbmNsdWRlLgogICAKMTk5OS0xMi0wMyAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHVzZSAkKE1BS0UpIGluc3RlYWQgb2YgbWFrZS4KICAgCjE5OTktMTItMDMgMTY6NTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBzd2l0Y2ggdG8gUElDIGZyb20gcGljLgogICAKMTk5OS0xMi0wMyAxNTowNSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogcmVtZW1iZXIgdG8gTlVMTCBhIGZyZWVkIHBvaW50ZXIKICAgCjE5OTktMTItMDMgMTU6MDQgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgLSBzbm1wdHJhcGRfaGFuZGxlcnMuYzogYSBsaXR0bGUgbmljZXIgZXJyb3IgbWVzc2FnZQogICAKMTk5OS0xMi0wMyAxNTowMyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIHNubXB0cmFwZC5jOiBjb3JyZWN0IGhhbmRsaW5nIG9mIFNJR0hVUCB0cCByZWNvbmZpZ3VyZS4KICAgCjE5OTktMTItMDIgMTY6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiB0dXJuIG9uIFJFR0VYX0VYVEVOREVELgogICAKMTk5OS0xMi0wMiAwOToyMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBGaXggYnVnICM4MSAtIGNvbnRpbnVlIGluc3RhbGwgYWZ0ZXIgZXJyb3IgY3JlYXRpbmcgcGVyc2lzdGVudCBkaXJlY3RvcnkuCiAgIAoxOTk5LTEyLTAyIDA1OjA2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi9zbm1wdjMuaDoKCiAgIC0gdXNtVXNlci5jIHNubXB2My5bY2hdOiBtb3ZlIHVzbV9wYXJzZV9jcmVhdGVfdXNtVXNlciBmcm9tIHRoZSBhZ2VudAogICAgCXRvIHRoZSBsaWJyYXJ5LCBzbyB0aGF0IHNubXB0cmFwZCBjYW4gdXNlIGl0LgogICAKMTk5OS0xMi0wMiAwNDo0MiAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIHNubXB0cmFwZC5jOiBmaXggc25tcF9jbG9uZV9wZHUyIGJ5IHVzaW5nIHRoZSBzbm1wbGliIHZlcnNpb24KICAgCjE5OTktMTItMDIgMDQ6NDEgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogYWNjZXNzaW5nIGFuZCBmcmVlZWluZyBlbnZfdmFyIG1pc3BsYWNlcyBhcm91bmQgTlVMTCB0ZXN0CiAgIAoxOTk5LTEyLTAxIDE2OjMyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBVc2UgU05NUF9NQVhCVUYgd2hlbiBkZWZpbmluZyBsYXJnZSBzdGF0aWMgYnVmZmVyIHN0b3JhZ2UuCiAgIAoxOTk5LTEyLTAxIDE1OjU1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBGaXggYnVnICMxMTIgYW5kIGZpbmlzaCBwYXRjaCBzdXBwbGllZCBieSBBbnRob255IFNoaXBtYW4uCiAgIAoxOTk5LTEyLTAxIDEwOjM4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICBQcmV2ZW50IG92ZXJmbG93IG9mIG9iamVjdCBJRCBpbiBnZXRfbW9kdWxlX25vZGUuCiAgIEluIGZpbmRfYmVzdF90cmVlX25vZGUsIHRyZWF0IHJlc3VsdCBmcm9tIHJlY3Vyc2VkIGNhbGwgc2FtZSBmb3IgbWF0Y2ggPSAwLgogICAKMTk5OS0xMi0wMSAwNjo0MCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRXJyb3IgY2hlY2sgYW5kIGZyZWUgcmVzb3VyY2VzIGR1cmluZyByZWdleCBwcm9jZXNzaW5nLgogICAKMTk5OS0xMS0zMCAxNjo1MCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgKLCBzbm1wbGliL3BhcnNlLmM6CgogICBBZGQgbXVsdGlwbGUgbWF0Y2ggY2FwYWJpbGl0eSB0byBmaW5kX2Jlc3RfdHJlZV9ub2RlLCBhbmQgdXNlIGl0IGluCiAgIHNubXB0cmFuc2xhdGUgKG5ldyAtQiBvcHRpb24pLgogICAKMTk5OS0xMS0zMCAxNDo0NyAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBVc2UgV2VzJyBjb29sIG5ldyBnZXRfd2lsZF9ub2RlIG1hdGNoIG1ldGhvZC4KICAgCjE5OTktMTEtMzAgMTQ6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBtaWIuYywgbWliLmgsIHBhcnNlLmMpOiBpbXBsZW1lbnQgcmVnZXggbWF0Y2hpbmcKICAgICBldmVyeXdoZXJlLgogICAKMTk5OS0xMS0zMCAxMzoxMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEluY2x1ZGUgY3R5cGUuaAogICAKMTk5OS0xMS0zMCAxMzoxMCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBGaXggLVRkIHVzYWdlIGRlc2NyaXB0aW9uOyB1c2Ugc3dpdGNoIHdoZW4gY3VycmVudF9uYW1lIGlzIE5VTEwuCiAgIAoxOTk5LTExLTMwIDA3OjA4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRml4IGhhbmRsaW5nIG9mIG11bHRpLXZhcmlhYmxlIHJlcXVlc3RzIHRvIHN1YmFnZW50cy4KICAgCjE5OTktMTEtMzAgMDc6MDcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXIuYyk6IFJlbW92ZSByZWR1bmRlbnQgcm91dGluZS4KICAgCjE5OTktMTEtMzAgMDM6MDEgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oOgoKICAgLSBzbm1wX2FwaS5oLCBzbm1wX21pYi5bY2hdOiBBIGNvdXBsZSBhZGRpdGlvbmFsIFNOTVAgc3RhdGlzdGljcyBwb2ludHMKICAgCjE5OTktMTEtMjkgMTQ6MDQgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGFub3RoZXIgbmFtZS4KICAgCjE5OTktMTEtMjkgMTQ6MDMgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBjaGVjayBmb3IgcmVnZXguaCwgcmVnY29tcCwgc3RyY2FzZXN0ci4KICAgCjE5OTktMTEtMjkgMTQ6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBtYWtlIGJlc3QgbWF0Y2hpbmcgKC1iKSB1c2UgcmVnZXggd2hlbiBhdmFpbGFibGUuCiAgIAoxOTk5LTExLTI5IDE0OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc3lzdGVtLmMsIHN5c3RlbS5oOgoKICAgLSAoc3lzdGVtLmMsIHN5c3RlbS5oKTogaW1wbGVtZW50IHN0cmNhc2VzdHIgKGZyb20gTWljaGFlbCBTbGlmY2FrKS4KICAgCjE5OTktMTEtMjkgMTI6NDMgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcGJ1bGtnZXQuYzoKCiAgIFVzZSBzaXplX3QgZm9yIG5hbWVfbGVuIG1lbWJlci4KICAgCjE5OTktMTEtMjkgMTE6NTggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZyZWUgU1RSRUFNIHBhY2tldCBidWZmZXIgd2hlbiBzZXNzaW9uIGlzIGNsb3NlZDsKICAgVGVzdCBmb3IgY2xvc2UgaW4gcHJvZ3Jlc3MgZm9yIHJlYWQsIHdyaXRlLCBzZWxlY3QsIGFuZCB0aW1lb3V0IGZ1bmN0aW9ucy4KICAgCjE5OTktMTEtMjkgMTA6MzYgIG1zbGlmY2FrCgogICAqIGFwcHMvOiBzbm1wdHJhcC5jLCBzbm1wd2Fsay5jLCBzbm1wbmV0c3RhdC9tYWluLmMKOgoKICAgUmVtb3ZlIGxhc3QgdmVzdGlnZXMgb2YgREVCVUdfTUFMTE9DX0lOQyBmcmFnbWVudHMuCiAgIAoxOTk5LTExLTI5IDEwOjMzICBtc2xpZmNhawoKICAgKiB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3A6CgogICBGaXggcmVmZXJlbmNlIHRvIHNubXBsaWIuCiAgIAoxOTk5LTExLTI5IDEwOjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBVc2UgbnRvaHMgbWFjcm8gdG8gY2FyZWZ1bGx5IG9idGFpbiB0aGUgZGVmYXVsdCBzZXJ2aWNlIHBvcnQuCiAgIAoxOTk5LTExLTI5IDA1OjUwICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBidWxrZ2V0LmMsIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTW9yZSBIUC1VWCBhQ0MgZml4ZXMgc3VwcGxpZWQgYnkgTWFya2t1IExhdWtrYW5lbi4KICAgCjE5OTktMTEtMjcgMDk6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAodmFjbV92YXJzLmMpOiByZWRvIHJ3dXNlci9yb3VzZXIgdG8gYWxsb3cgc3BlY2lmaWNhdGlvbiBvZiBhdXRoIHR5cGUuCiAgIAoxOTk5LTExLTI3IDA2OjMxICBtYXJ6CgogICAqIGFnZW50L2tlcm5lbC5jLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAgKGFnZW50L2tlcm5lbC5jLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gpOiBmaXggLXIgc3dpdGNoIHRvIHN1cHJlc3MgZXJyb3IgbWVzc2FnZXMgYWJvdXQgZmFpbGVkIGtlcm5lbCBhbmQgYWRkIC1yIHRvIGRlZmF1bHQgdGVzdGluZyBjb2RlIHNvICdtYWtlIHRlc3QgY2FuIGJlIHJ1biBieSB1c2VyCiAgIAoxOTk5LTExLTI2IDExOjE4ICBuYmEKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICAtIGRlZmF1bHRfc3RvcmUuYzogYWx0aG91Z2ggcmVhZF9jb25maWcgaXMgY2FzZSBpbnNlbnNpdGl2ZSwgZHNfaGFuZGxlX2NvbmZpZwogICAJd2FzIG5vdC4gQXQgdGhlIHNhbWUgdGltZSBpdCBmYWlsZWQgdG8gcmVwb3J0IHRoZSBwcm9ibGVtIHRoYXQKICAgCWl0IHdhcyBjYWxsZWQgYnV0IGRpZG4ndCBrbm93IHdoYXQgdG8gZG8uCiAgIAoxOTk5LTExLTI1IDE0OjU3ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGtpbGwgeWV0IGFub3RoZXIgc2lsbHkgd2FybmluZyBmcm9tIGdjYwogICAKMTk5OS0xMS0yNSAxNDo1NiAgbmJhCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gZGVmYXVsdHNfc3RvcmUuaCwgc25tcF9hcGkuYywgc25tcF9wYXJzZV9hcmdzLmM6IGFkZCBkZWZDb21tdW5pdHkKICAgCWRpcmVjdGl2ZQogICAtIHNubXBfYXBpLmgsIHNubXBfYXBpLmM6IGFkZCBlcnJvcmNvZGUgZm9yIG1hbGxvYyBmYWlsdXJlCiAgIAoxOTk5LTExLTI1IDE0OjUyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIC0gdXNtVXNlci5jOiBuZXcgdXNlciBpcyBub3QgYWRkZWQgdW5sZXNzIGJvdGggYXV0aCBhbmQgcHJpdiBpcyBzcGVjaWZpZWQKICAgCW9uIGNyZWF0ZVVzZXIgZGlyZWN0aXZlCiAgIAoxOTk5LTExLTI1IDE0OjMzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaDoKCiAgIC0gc25tcF9taWIuaDogZml4IG1pc2FsaWdubWVudCBvZiBzdGF0aXN0aWNzIGNvdW50ZXJzCiAgIAoxOTk5LTExLTI1IDE0OjMyICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYzoKCiAgIC0gc25tcF9hcGkuYywgYWdlbnRfdHJhcC5jLCBzbm1wX2FnZW50LmMsIHNubXBfbWliLmgsIHNubXBfbWliLmM6CiAgIAlmaXggbWlzYWxpZ25tZW50IG9mIHN0YXRpc3RpY3MgY291bnRlcnMKICAgCjE5OTktMTEtMjQgMTE6MDcgIG1zbGlmY2FrCgogICAqIG1pYnMvSVBGV0FDQy1NSUIudHh0OgoKICAgRml4IEJVRyM1NyB1c2luZyAyLzMgb2YgcGF0Y2ggc3VwcGxpZWQgYnkgemFueUB0cmlxLm5ldC4KICAgCjE5OTktMTEtMjQgMTA6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAodmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBhbGxvdyBzZXBlcmF0aW9uIG9mIG1hc2sgd2l0aCBib3RoIC4gYW5kOi4KICAgCjE5OTktMTEtMjQgMDk6MTYgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogY2hhbmdlIGVkaXRpbmcgb2YgY29uZmlnLmggbm90ZS4KICAgCjE5OTktMTEtMjQgMDk6MDggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2tleXRvb2xzLmgsCiAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9zY2FwaS5oLCBzbm1wbGliL3Rvb2xzLmMKLCB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYywgdGVzdGluZy9zY2FwaXRlc3QuYywKICAgd2luMzIvY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHVzbVVzZXIuYywKICAgICBrZXl0b29scy5jLCBrZXl0b29scy5oLCBsY2RfdGltZS5jLCBzY2FwaS5oLCB0b29scy5jLAogICAgIGtleW1hbmFnZXRlc3QuYywgc2NhcGl0ZXN0LmMsIGNvbmZpZy5oKToKICAgICAtIGZvcmNlIC0tZW5hYmxlLWRldmVsb3BlciBmb3IgQ1ZTIGNoZWNrb3V0cy4KICAgICAtIHJlbW92ZSBhbGwgcmVmZXJlbmNlcyB0byBLTVQuCiAgIAoxOTk5LTExLTI0IDA5OjAzICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIChhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBSZWxlYXNlIGFsbG9jYXRlZCBpbmRleGVzIG9uIHN1YmFnZW50IHNodXRkb3duLgogICAKMTk5OS0xMS0yMyAwNTo0MCAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSk6CiAgICAgLSBNYWtlIGluZGV4IHJlZ2lzdHJhdGlvbiBBUEkgbW9yZSBpbW1lZGlhdGVseSBjb252ZW5pZW50CiAgICAgLSBBc3NvY2lhdGUgc3VjaCByZWdpc3RyYXRpb25zIHdpdGggdGhlIG1haW4gc2Vzc2lvbgogICAgIC0gbmV3IHJvdXRpbmUgdG8gdW5yZWdpc3RlciBhbGwgaW5kZXhlcyBmb3IgYSBnaXZlbiBzZXNzaW9uCiAgICAgLSBkaWZmZXJlbnRpYXRlIGJldHdlZW4gQU5ZIGluZGV4IGFuZCBORVcgaW5kZXgKICAgICAtIGNsZWFuIHVwIGFzc29ydGVkIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoxOTk5LTExLTIzIDA1OjIxICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMgYWdlbnR4L3N1YmFnZW50LmMpOgogICAgICBNYWtlIG1haW4gc2Vzc2lvbiBzdHJ1Y3R1cmUgdmlzaWJsZSB0aHJvdWdob3V0IHRoZSBhZ2VudCwKICAgICAgYW5kIHVzZSB0aGlzIGZvciBBZ2VudFggc3ViYWdlbnQgYXMgd2VsbC4KICAgCjE5OTktMTEtMjMgMDI6MjAgIG5iYQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIHNubXBfYWdlbnQuYzogI2luY2x1ZGUgPHVuaXN0ZC5oPiBmb3Igc2VsZWN0IHByb3RvdHlwZQogICAKMTk5OS0xMS0yMyAwMjoxMSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYzoKCiAgIC0gKGhvc3QvaHJfc3RvcmFnZS5jIGhvc3QvaHJfc3dydW4uYyk6IEd1YXJkIGFnYWluc3QgY2FsY3VsYXRpb24gb3ZlcmZsb3cKICAgCjE5OTktMTEtMjMgMDE6MzcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0gKGhvc3QvaHJfc3dydW4uYyk6IEZpeCBsaW51eCBwcm9jZXNzIG1lbW9yeSB1c2FnZSBmaWd1cmVzLgogICAJKFJlcG9ydGVkIGJ5IE1pdGNoIFNoaWVsZHMpCiAgIAoxOTk5LTExLTIzIDAxOjI2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICAtIHBhc3NfcGVyc2lzdC5jOiBmaXggc29tZSBhcmd1bWVudHMgKGludCA9PiBzaXplX3QpLiBUaGFua3MgdG8KICAgCUFudGhvbnkgU2hpcG1hbiA8YXNoaXBtYW5AZXJnZ3JvdXAuY29tPgogICAKMTk5OS0xMS0yMyAwMToyNCAgbmJhCgogICAqIG1pYnMvSVBTRUMtTUlCLnR4dDoKCiAgIC0gSVBTRUMtTUlCLnR4dDogY2hhbmdlIHNvbWUgdW5kZXJsaW5lcyBpbnRvIGRhc2hlcywgYW5kIHJlcGFpciB0aGUKICAgCTo6PSAobWF5YmUgSSBzaG91bGQgaGF2ZSBsb29rZWQgYXQgdGhpcyBmaWxlIGJlZm9yZSBhZGRpbmcgaXQ6LSkpCiAgIAoxOTk5LTExLTIzIDAxOjIzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5oOgoKICAgLSBpcHY2Lmg6IHJlbW92ZSBhbiBfX1AgdGhhdCBoYWQgc25lYWtlZCBpbgogICAKMTk5OS0xMS0yMiAxNzo1MiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIC0gKFJFQURNRS5zbm1wdjMpOiB1cGRhdGUgdG8gcmVmbGVjdCBuZXcgYW5kIGVhc2llciAuY29uZiBtZWNoYW5pc21zLgogICAKMTk5OS0xMS0yMiAxNzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgLSAoc2NhcGkuYyk6IGZpeCBsZW5ndGggY2hlY2sgb2Yga2V5IHNwYWNlLgogICAKMTk5OS0xMS0yMiAxNjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJJSS92YWNtX3ZhcnMuYywgc25tcHYzL3VzbVVzZXIuYwo6CgogICAtICh2YWNtX3ZhcnMuYywgdXNtVXNlci5jKTogbmV3IGNvbmZpZyB0b2tlbnMgYWxsb3dpbmcgZWFzeSB1c2VyIGFuZAogICAgIHZhY20vdXNlciBjb25maWd1cmF0aW9uIGFuZCBzZXR1cC4KICAgCjE5OTktMTEtMjIgMTY6NDggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmUgY3JlYXRpb24gb2YgaW5pdGlhbCBhbmQgdGVtcGxhdGUqIHVzZXJzLgogICAKMTk5OS0xMS0yMiAxMzowNCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgdGNwLmMpOiBQYXRjaAogICAgIGZyb20gR2FycmV0dCBXb2xsbWFuOgogICAgIC0gRnJlZUJTRCA0LnggZml4ZXMuCiAgIAoxOTk5LTExLTIyIDEyOjUzICBuYmEKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaAosIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgsIGFnZW50L2FnZW50X3RyYXAuYywKICAgYWdlbnQvYWdlbnRfdHJhcC5oLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmgsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmgsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvcmVhZF9jb25maWcuaCwKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB1c20uaCwgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zbm1wdjMuaAo6CgogICAtICo6IGNoYW5nZSB0aGUgZmlyc3QgYXJndW1lbnQgb2YgdGhlIGNvbmZpZyBwYXJzZXIgZnVuY3Rpb25zIHRvIGEKICAgCWNvbnN0IHN0cmluZwogICAKMTk5OS0xMS0yMiAxMjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJJSS92YWNtX3ZhcnMuYywgdWNkLXNubXAvcGFzcy5jCjoKCiAgIC0gKHZhY21fdmFycy5jLCBwYXNzLmMpOiBmaXggb2lkIC0+IGNoYXIgY29udmVyc2lvbnMuCiAgIAoxOTk5LTExLTIyIDEyOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdC5jLCB2bXN0YXRfZnJlZWJzZDIuYwo6CgogICAtICh2bXN0YXQuYywgdm1zdGF0X2ZyZWVic2QyLmMpOiB1c2UgaGVhZGVyX2dlbmVyaWMgbm90IGhlYWRlcl9zaW1wbGVfdGFibGUKICAgCjE5OTktMTEtMjIgMDk6MjQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwKOgoKICAgLSAoVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsKTogdXBkYXRlIHRlc3RzIGZvciBuZXcKICAgICBlcnJvciBtZXNzYWdlcy4KICAgCjE5OTktMTEtMjIgMDk6MTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaG9zdF9yZXMuaCwgaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMsCiAgICAgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGJzZGk0LmgpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CiAgICAgLSBic2RpIHN1cHBvcnQgZm9yIHRoZSBob3N0IHJlc291cmNlcyBtaWIuCiAgIAoxOTk5LTExLTIyIDA5OjA3ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBhZGRlZCBtb3JlIHBlb3BsZSB0byB0aGUgdGhhbmtzIGxpc3QuCiAgIAoxOTk5LTExLTIyIDA5OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgLSAodXNtVXNlci5jKTogZml4IG9pZCAtPiBjaGFyIGNvbnZlcnNpb25zIHBvaW50ZWQgb3V0IGJ5IE1pY2hhZWwgU2xpZmNhay4KICAgCjE5OTktMTEtMjIgMDg6MjkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChzbm1wdGFibGUuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgIC0gQWRkZWQgYWJpbGl0eSB0byB1c2UgTUlCIHRvIHF1ZXJ5IHRhYmxlcyB3aXRoIG5vbi1zZXF1ZW50aWFsIGNvbHVtbiBPSURzLgogICAgIC0gQWRkZWQgY29kZSB0byBoYW5kbGUgc3BhcnNlIHRhYmxlcy4KICAgCjE5OTktMTEtMjIgMDg6MjEgIG1zbGlmY2FrCgogICAqIHdpbjMyL2xpYmFnZW50Ly5jdnNpZ25vcmU6CgogICBBZGQgQ1ZTIGlnbm9yZSBsaXN0IGZvciB3aW4zMi9saWJhZ2VudC4KICAgCjE5OTktMTEtMjIgMDg6MjAgIG1zbGlmY2FrCgogICAqIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcDoKCiAgIFJldHJ5IGFkZCBNU1ZDKysgcHJvamVjdCBmaWxlLgogICAKMTk5OS0xMS0yMiAwNzozMCAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMsIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuaCwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBhZ2VudHgvY2xpZW50LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKICAgICBJbmRleCBkZS1hbGxvY2F0aW9uLCBhbmQgQWdlbnRYIGluZGV4IHN1cHBvcnQuCiAgIAoxOTk5LTExLTIyIDA3OjE2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgLSBpcHY2LmM6IHNvbWUgbW9yZSBBTlNJIHByb3RvdHlwZXMKICAgCjE5OTktMTEtMjIgMDY6NTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICAtIGlwdjYuYzogdXBncmFkZSB0byB0aGUgY3VycmVudCBLYW1lIHBhdGNoCiAgIAoxOTk5LTExLTIyIDA1OjMyICBuYmEKCiAgICogbWlicy9JUFY2LVRDUC1NSUIudHh0LCBtaWJzL0lQVjYtVURQLU1JQi50eHQsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKOgoKICAgLSBJUFY2LVRDUC1NSUIsIElQVjYtVURQLU1JQiwgaXB2Ni5jLCB0Y3AuYzogbW92ZSB0aGUgSVB2NiB0Y3AgYW5kIHVkcAogICAJdGFibGVzIHRvIHRoZWlyIHByb3BlciBwb3NpdGlvbiBpbiB0aGUgdHJlZSwgYWNjb3JkaW5nIHRvIHRoZSBSRkMuCiAgIAoxOTk5LTExLTIyIDA1OjI5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgLSBwYXNzLmM6IHJlbW92ZSBhIGNvbnN0IGNhc3Rpbmcgd2FybmluZwogICAKMTk5OS0xMS0yMiAwNToyOCAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIHNubXBkLmM6IHJlaW5zdGF0ZSBzbm1wZCAtYSBmdW5jdGlvbmFsaXR5CiAgIAoxOTk5LTExLTIyIDA1OjI4ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgICBzbm1wX2xvZ2dpbmcuYzogb25seSB0aW1lc3RhbXAgZWZ0ZXIgYSBuZXdsaW5lCiAgIAoxOTk5LTExLTIyIDA1OjI3ICBuYmEKCiAgICogY29uZmlndXJlLmluLCBjb25maWcuaC5pbiwgY29uZmlndXJlOgoKICAgLSBjb25maWd1cmUuaW46IGNvbmZpZ3VyZSB0ZXN0IGZvciBuZXRpbmV0L2lwLmgKICAgCjE5OTktMTEtMTkgMTU6MjMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4sCiAgICAgZGlzay5jLCBkaXNrLmgsIFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEFuZHkgSE9PRDoKICAgICAtIG1vbml0b3IgZGlzayBpbm9kZSBwZXJjZW50YWdlcy4KICAgCjE5OTktMTEtMTkgMTQ6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBzbm1wbGliL3NubXBfYWxhcm0uaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF92YXJzLmMsIHNubXBkLmMsIHNubXBfYWxhcm0uaCwgc25tcF9hcGkuYyk6CiAgICAgLSBtYWtlIHNubXBfc2VsZWN0X2luZm8gcG9zc2libHkgaGFuZGxlIGFsYXJtIHRpbWVycy4KICAgICAtIG1ha2Ugc25tcGQgdXNlIHRoZW0gYW5kIGNhbGwgc25tcF9ydW5fYWxhcm1zKCkuCiAgIAoxOTk5LTExLTE5IDEzOjQ3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBmaXggbWliMmMuc3RvcmFnZS5jb25mLgogICAKMTk5OS0xMS0xOSAxMTowNiAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgpOiBQcm92aWRlIG1pc3NpbmcgaW5kZXggYWxsb2NhdGlvbiBkZWZpbmVzLgogICAKMTk5OS0xMS0xOCAxODoyMCAgbXNsaWZjYWsKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2NvbmZpZy5oLCBtaWJfbW9kdWxlX2RvdF9jb25mLmgsCiAgIG1pYl9tb2R1bGVfaW5jbHVkZXMuaCwgbWliX21vZHVsZV9pbml0cy5oLAogICBtaWJfbW9kdWxlX3NodXRkb3duLmgsIGxpYnVjZG1pYnMvLmN2c2lnbm9yZSwKICAgbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcCwgc25tcGQvLmN2c2lnbm9yZSwKICAgc25tcGQvc25tcGQuZHNwOgoKICAgTW9yZSBNU1ZDKysgV2luMzIgYWdlbnQgZmlsZXMsIGdyYXRpcyBSb2JlcnQgU3RvcnkuCiAgIAoxOTk5LTExLTE4IDE4OjE0ICBtc2xpZmNhawoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCB3aW4zMi5kc3c6CgogICBNb3JlIHRvdWNodXAgcGVyIE1TVkMrKyBXaW4zMiBhZ2VudCB3b3JrLgogICAKMTk5OS0xMS0xOCAxNzo1NyAgbXNsaWZjYWsKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2tlcm5lbC5jLAogICBhZ2VudC9taWJfbW9kdWxlcy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgYXBwcy9zbm1wYnVsa2dldC5jCjoKCiAgIENoZWNrLWluIGFnZW50IGNoYW5nZXMgdG8gc3VwcG9ydCBXaW4zMiBhZ2VudCBidWlsdCB3aXRoIE1TVkMrKy4KICAgVGhhbmtzIHRvIFJvYmVydCBTdG9yeS4KICAgCjE5OTktMTEtMTcgMjE6NTEgIG5iYQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIC0gZGVmYXVsdF9zdG9yZS5jOiBkc190b2dnbGVfYm9vbGVhbiBtaXNzZWQgYSBtYXNrCiAgIAoxOTk5LTExLTE3IDEzOjA5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiB1cGRhdGUuICBEZWFscyB3aXRoIFJvd1N0YXR1cyBvYmplY3RzIGJldHRlci4KICAgCjE5OTktMTEtMTcgMTM6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSk6IHVwZGF0ZS4KICAgCjE5OTktMTEtMTcgMTM6MDUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IHVwZGF0ZSB0aGUgc28gTEQgZm9yIGxpbnV4IHRvICQoQ0MpLgogICAKMTk5OS0xMS0xNyAxMTo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQva2VybmVsLmMsIGFnZW50L3NubXBkLmMKLCBtYW4vc25tcGQuMS5kZWY6CgogICAtIChkc19hZ2VudC5oLCBrZXJuZWwuYywgc25tcGQuYywgc25tcGQuMS5kZWYpOgogICAgIC0gcnVuIHRpbWUgcm9vdGxlc3MgcnVubmluZyBzdXBwb3J0IGZvciBzbm1wZCwgYnkgcmVxZXN0IG9mIEpvZS4gKC1yKQogICAKMTk5OS0xMS0xNyAwNzozNiAgbXNsaWZjYWsKCiAgICogd2luMzIvd2luMzIuZHN3OgoKICAgQWRkIHNubXBidWxrZ2V0IHRvIGxpc3Qgb2YgYXBwcyB0byBidWlsZC4KICAgCjE5OTktMTEtMTcgMDc6MzUgIG1zbGlmY2FrCgogICAqIHdpbjMyL3NubXBidWxrZ2V0LzogLmN2c2lnbm9yZSwgc25tcGJ1bGtnZXQuZHNwOgoKICAgUHJvamVjdCBmaWxlIGZvciBidWlsZGluZyBzbm1wYnVsa2dldCB1c2luZyBNU1ZDKysgZ3JhdGlzIFJvYmVydCBTdG9yeS4KICAgCjE5OTktMTEtMTcgMDU6NTkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIFJlcGxhY2UgdV9pbnQxNl90IHdpdGggbW9yZSB1bml2ZXJzYWxseSBzdXBwb3J0ZWQgdV9zaG9ydC4KICAgCjE5OTktMTEtMTYgMTQ6NTYgIG1zbGlmY2FrCgogICAqIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwOgoKICAgQnVpbGQgd2l0aCBnZXRvcHQuCiAgIAoxOTk5LTExLTE2IDE0OjQwICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgd2luMzIvd2luMzIuZHN3LAogICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsCiAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwCiwgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwCiwgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwKICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLAogICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBNU1ZDIHRvdWNodXBzOgogICBBZGRlZCBzbm1wdHJhcGQgcHJvamVjdCAuRFNQIGZpbGU7IEFsbCAuRFNbUFddIGZpbGVzIENSLUxGIGxpbmUgdGVybWluYXRlZDsKICAgRml4IHdhcm5pbmdzIGluIGFzbjEuYyBhbmQgc25tcF9hcGkuYzsgUmVtb3ZlIHVudXNlZCB2YXIgaW4gc25tcHRyYW5zbGF0ZS5jLgogICAKMTk5OS0xMS0xNiAxMDoyNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIHRoZSBUOiBmbGFnIGZvciAtVCB0byBnZXRvcHQKICAgCjE5OTktMTEtMTYgMTA6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSAocHJvdG9jb2wuYyk6IGFkZCB0aGUgaGVhZGVyIGxlbmd0aCB0byB0aGUgcGFja2V0IGxlbmd0aCBlc3RpbWF0ZS4KICAgCjE5OTktMTEtMTYgMDk6MTMgIGRhdmVzCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoc25tcGxpYi9hc24xLmMpOiBGaXggZW5jb2Rpbmcgb2Ygcm9vdCBPSURzLgogICAKMTk5OS0xMS0xNiAwODo0OCAgbXNsaWZjYWsKCiAgICogY29uZmlnLmd1ZXNzOgoKICAgRW1icmFjZSBhbGwgSFAtOTAwMC82eHgsN3h4LCA4eHggc2VyaWVzIHBsYXRmb3Jtcywgd2l0aG91dCByZWdyZXRzLgogICAKMTk5OS0xMS0xNiAwNjoyMSAgbmJhCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYW5zbGF0ZS5jLCBtaWIuYzogcmVkbyB0aGUgc25tcHRyYW5zbGF0ZSBvcHRpb25zCiAgIAl0byBmb2xsb3cgdGhlIGNvbW1vbiBvcHRpb24gc2V0LiBJc3N1ZSB3YXJuaW5ncyB3aGVuIHNvbWVvbmUKICAgCXVzZXMgdGhlIG9sZCBmb3JtLCBhZHZpc2luZyBhYm91dCB0aGUgbmV3LgogICAKMTk5OS0xMS0xNiAwMzozNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wLmg6CgogICBGaXggc3BlbGxpbmcgbWlzdGVhay4KICAgCjE5OTktMTEtMTUgMjE6NTcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgRml4IGJ1ZyM3NTogYnVpbGQgLS13aXRob3V0LW9wYXF1ZS10eXBlcwogICAKMTk5OS0xMS0xNSAxNzo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYWdlbnQuYywgbWFzdGVyLmMsIHByb3RvY29sLmMsIHByb3RvY29sLmgsIHN1YmFnZW50LmMsCiAgICAgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgLSBtYWtlIFRDUCBzdXBwb3J0IGJldHRlciBmb3IgYWdlbnR4LiAgU3RpbGwgaGFzIGEgcHJvYmxlbSAoSSBicm9rZSBhZ2VudHgpLgogICAKMTk5OS0xMS0xNSAxNjo0MyAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRG9uJ3QgYWRkIE5VTEwgdmFyYmluZCB3aGVuIEVORE9GTUlCVklFVyBpcyByZWFjaGVkLgogICAKMTk5OS0xMS0xNSAxNTo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAtIG1vdmUgbW9yZSBvcHRpb25zIHRvIHRoZSBkc18qIHJvdXRpbmVzLgogICAgIC0gaW1wbGVtZW50IHN1cHBvcnQgZm9yIFRDUCBicm9rZW4gU05NUCBwYWNrZXRzIGJ5IHN0b3JpbmcgYnVmZmVycwogICAgICAgYW5kIGRlYWxpbmcgd2l0aCBwaWVjZXMgb2YgaW5jb21pbmcgZGF0YSB0aWxsIHdlIGhhdmUgYSBmdWxsIHBhY2tldC4KICAgCjE5OTktMTEtMTUgMTU6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6IG1vdmUgbW9yZSBvcHRpb25zIHRvIHRoZSBkc18qIHJvdXRpbmVzLgogICAKMTk5OS0xMS0xNSAxNTozNSAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBkZWx0YS5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywKICAgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYywgc25tcG5ldHN0YXQvbWFpbi5jCjoKCiAgIC0gKHNubXBkZWx0YS5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYyk6CiAgICAgLSBhZGQgZGVmYXVsdF9zdG9yZS5oCiAgIAoxOTk5LTExLTE1IDE1OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBhc24xLmg6CgogICAtIChhc24xLmMsIGFzbjEuaCk6IG5ldyBmdW5jdGlvbjogYXNuX2NoZWNrX3BhY2tldCgpLgogICAKMTk5OS0xMS0xNSAxNToyMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogZGVidWdnaW5nIHN0YXRlbWVudHMgaW5zZXJ0ZWQuCiAgIAoxOTk5LTExLTE1IDE1OjIxICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMzoKCiAgIC0gKHNubXBfYWdlbnRfYXBpLjMpOiBkb24ndCBjYWxsIHN1YmFnZW50X3ByZV9pbml0KCkuCiAgIAoxOTk5LTExLTE1IDE1OjIxICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCB0a21pYjoKCiAgIC0gKG1pYjJjLCB0a21pYik6IHJlbW92ZSAtdy4KICAgCjE5OTktMTEtMTUgMTU6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogc2V0IHRvICdcMCcgaW5zdGVhZCBvZiBOVUxMIGZvciAtV2FsbC4KICAgCjE5OTktMTEtMTUgMTU6MTkgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogbWVtb3J5IGludCAtPiB1aW50LgogICAKMTk5OS0xMS0xNSAxNToxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJfbW9kdWxlcy5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKG1pYl9tb2R1bGVzLmMsIHNubXBfdmFycy5jKTogbW92ZSBzdWJhZ2VudF9wcmVfaW5pdCgpIHRvIGluaXRfYWdlbnQoKS4KICAgCjE5OTktMTEtMTUgMTU6MTggIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSAoRkFRLCBSRUFETUUpOiBuZXcgbWlycm9yIGluIEF1c3RyYWxpYS4KICAgCjE5OTktMTEtMTUgMTQ6MDkgIG5iYQoKICAgKiAuY3ZzaWdub3JlLCBhcHBzLy5jdnNpZ25vcmU6CgogICAtIC5jdnNpZ25vcmU6IHVwZGF0ZXMgdG8ga2VlcCBjdnMgc2lsZW50IGFib3V0IGdlbmVyYXRlZCBmaWxlcy4KICAgCjE5OTktMTEtMTUgMTQ6MDUgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IGZpeCBhIHNwZWxsaW5nIGVycm9yIGluIHRoZSBNSUIgcmVwbGFjZW1lbnQgdGFibGUuCiAgIAoxOTk5LTExLTE1IDE0OjAzICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLmluLCBSRkMxMjcxLU1JQi50eHQsIFJNT04tTUlCLnR4dAo6CgogICAtIG1pYnMvOiByZXBsYWNlIFJGQzEyNzEtTUlOLnR4dCB3aXRoIFJNT04tTUlCLnR4dCAoUkZDIDE3NTcgdmVyc2lvbikKICAgCjE5OTktMTEtMTUgMTQ6MDAgIG5iYQoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXBidWxrZ2V0LmM6CgogICAtIHNubXBfcGFyc2VfYXJncy5jOiBmdXJ0aGVyIGVycm9yIGNoZWNraW5nLCBjb3VydGVzeSBtc2xpZmNhawogICAgIHNubXBidWxrZ2V0LmM6IG5lZWRzICNpbmNsdWRlIDxnZXRvcHQuaD4gKFRoYW5rcyB0byBSb2JlcnQgU3RvcnkpCiAgIAoxOTk5LTExLTE1IDA4OjI5ICBtc2xpZmNhawoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgRml4IGRlc2NyaXB0aW9uIG9mIHJlYWRfb2JqaWQgcmV0dXJuIHZhbHVlLgogICAKMTk5OS0xMS0xNSAwNzo1NiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6IEZpeCBoYW5kbGluZyBvZiBmYWlsZWQgR0VUL1NFVCByZXF1ZXN0cwogICAKMTk5OS0xMS0xNCAwNjozMiAgbmJhCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgbWFrZXRhcmdldCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuaAosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmgKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgbWlicy9JUFNFQy1NSUIudHh0LAogICBtaWJzL0lQVjYtSUNNUC1NSUIudHh0LCBtaWJzL0lQVjYtTUlCLnR4dCwKICAgbWlicy9JUFY2LVRDLnR4dCwgbWlicy9JUFY2LVRDUC1NSUIudHh0LAogICBtaWJzL0lQVjYtVURQLU1JQi50eHQsIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIGlwYzY6IEFkZCB0aGUgSVB2NiBjb2RlIGZyb20gdGhlIEthbWUgcHJvamVjdC4gSSBoYXZlIG9ubHkgbWFzc2FnZWQKICAgCWl0IHNvIG11Y2ggYXMgdG8gc3RpbGwgY29tcGlsZSBvbiBub24tSVB2NiBzeXN0ZW1zLCBhbmQgZGV0ZWN0CiAgIAlMaW51eCwgSU5SSUEsIFNvbGFyaXMgSVB2Ni4gTm8gY29kZSBmb3IgdGhlbSB5ZXQuIE9yaWdpbmFsCiAgIAlhdXRob3I6IGl0b2p1bkBpaWpsYWIubmV0CiAgIAoxOTk5LTExLTE0IDA2OjE1ICBuYmEKCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgLSBzbm1wdHJhcGQuODogYWRkIHRoZSBuZXcgY29tbW9uIC1PIG9wdGlvbiBzZXQKICAgCjE5OTktMTEtMTQgMDY6MTIgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBzbm1wdHJhcGQuYzogYWRkIHRoZSBuZXcgY29tbW9uIC1PIG9wdGlvbiBzZXQKICAgCjE5OTktMTEtMTQgMDI6NDIgIG5iYQoKICAgKiBtaWJzL1NOTVB2Mi1DT05GLnR4dDoKCiAgIC0gU05NUHYyLUNPTkYudHh0OiBjb21tZW50IG91dCB0aGUgSU1QT1JUIGNsYXVzZQogICAKMTk5OS0xMS0xNCAwMjowNCAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYywgc25tcHRyYW5zbGF0ZS5jOiBtb3ZlIHRoZSBNSUI6aWQgaGFuZGxpbmcgaW5zaWRlIHJlYWRfb2JqaWQgZm9yCiAgIAljb25zaXN0ZW5jeS4gQWxzbyBmaXhlcyBhIGJ1ZmZlciBvdmVycnVuIGluIG1pYi5jCiAgIAoxOTk5LTExLTE0IDAyOjAxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICAtIHBhc3MuYywgc25tcGQuY29uZi41LmRlZjogYWRkIGFuIFVOU0lHTkVEIHJldHVybiB0eXBlCiAgIAoxOTk5LTExLTE0IDAyOjAwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtIHZhY21fdmFycy5jOiBraWxsIGEgd2FybmluZwogICAKMTk5OS0xMS0xNCAwMTo1OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLCBtaWJzL01ha2VmaWxlLmluLAogICBtaWJzL1NOTVAtQ09NTVVOSVRZLU1JQi50eHQsIG1pYnMvU05NUC1GUkFNRVdPUkstTUlCLnR4dAosIG1pYnMvU05NUC1NUEQtTUlCLnR4dCwgbWlicy9TTk1QLU5PVElGSUNBVElPTi1NSUIudHh0CiwgbWlicy9TTk1QLVBST1hZLU1JQi50eHQsIG1pYnMvU05NUC1UQVJHRVQtTUlCLnR4dAosIG1pYnMvU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQsCiAgIG1pYnMvU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0LCBtaWJzL1NOTVB2Mi1DT05GLnR4dCwKICAgbWlicy9TTk1QdjItU01JLnR4dCwgbWlicy9TTk1QdjItVEMudHh0OgoKICAgLSBtaWJzLyosIHZhY21fdmFycy5oOiB1cGRhdGUgdGhlIG1pYiBmaWxlcyB0byByZmMgMjU3MS0yNTc1LiBBbHNvIGFkZAogICAJU05NUF9DT01NVU5JVFlfTUlCIGZyb20gdGhlIGNvZXggZHJhZnQuCiAgIAoxOTk5LTExLTE0IDAxOjU0ICBuYmEKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaDoKCiAgIC0gc25tcF9wYXJzZV9hcmdzOiBjaGFuZ2VzIHRvIHN1cHBvcnQgbXVsdGktdmFsdWVkIG9wdGlvbnMKICAgCjE5OTktMTEtMTQgMDE6NTMgIG5iYQoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBidWxrZ2V0LmMsCiAgIG1hbi9zbm1wYnVsa2dldC4xLCBtYW4vTWFrZWZpbGUuaW46CgogICAtIHNubXBidWxrZ2V0OiBuZXcgdG9vbCB0byBpc3N1ZSBhIHNpbmdsZSBHRVRCVUxLIHJlcXVlc3QKICAgCjE5OTktMTEtMTQgMDE6NTEgIG5iYQoKICAgKiBtYW4vc25tcHRhYmxlLjE6CgogICAtIHNubXB0YWJsZTogYWRkIGluIHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYyBzbm1wdGFibGUgb3B0aW9ucyBiZXR3ZWVuCiAgIAl0aGUgbm9ybWFsIG9wdGlvbnMuCiAgIAoxOTk5LTExLTE0IDAxOjQ4ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gc25tcHRhYmxlLCBzbm1wX3BhcnNlX2FyZ3M6IGFsbG93IHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYyBvcHRpb25zIHRvCiAgIAoxOTk5LTExLTEyIDEzOjAxICBtYXJ6CgogICAqIHNubXBsaWIvOiBsY2RfdGltZS5jLCBsY2RfdGltZS5oLCBzbm1wdXNtLmM6CgogICAgKGxjZF90aW1lLltjaF0sIHNubXB1c20uYyk6IGZpeCBlbmdpbmV0aW1lIHVwZGF0ZSBhbGdvcml0aG0gdG8gY29uZm9ybSB0byBzcGVjIHJmYzI1NzQgMy4yLjcuYi4xCiAgIAoxOTk5LTExLTEyIDA4OjQ2ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBQcm92aWRlIGEgdW5pcXVlIElEIGZvciBhbGwgaW5jb21pbmcgUERVcwogICAKMTk5OS0xMS0xMSAyMjo0OSAgbmJhCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvbWliLmM6CgogICAtIHNubXBfcGFyc2VfYXJncy5jLCBtaWIuYzogYWxpZ25tZW50IG9mIG9wdGlvbiBjb2RlLgogICAJU29tZSBlbmhhbmNlbWVudHMgdG8gdGhlIHNubXB0cmFuc2xhdGUgLWQgb3V0cHV0LgogICAKMTk5OS0xMS0xMSAyMjoxNCAgbmJhCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIHNubXBjbWQuMTogdXBkYXRlIG1hbiBwYWdlIHRvIGNvcnJlc3BvbmQgdG8gdGhlIG5ldyBnZXRvcHQgc2l0dWF0aW9uCiAgIAlOb3RlOiBldmVuIHRob3VnaCBzb21lIG9wdGlvbnMgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGlzCiAgIAlwYWdlLCB0aGV5IHN0aWxsIHdvcmshCiAgIAoxOTk5LTExLTExIDAzOjM3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAtIChhZ2VudHgvY2xpZW50LmMpOiBTaWxseSB0eXBvIGluIHN0YXJ0IHRpbWUgc3luY2hyb25pc2F0aW9uCiAgIAoxOTk5LTExLTEwIDIyOjEwICBuYmEKCiAgICogd2luMzIvOiAuY3ZzaWdub3JlLCBlbmNvZGVfa2V5Y2hhbmdlLy5jdnNpZ25vcmUsCiAgIGxpYnNubXAvLmN2c2lnbm9yZSwgbGlic25tcC9saWJzbm1wLnBsZywKICAgbGlic25tcF9kbGwvLmN2c2lnbm9yZSwgbGlic25tcF9kbGwvbGlic25tcF9kbGwucGxnLAogICBzbm1wYnVsa3dhbGsvLmN2c2lnbm9yZSwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5wbGcsCiAgIHNubXBkZWx0YS8uY3ZzaWdub3JlLCBzbm1wZGVsdGEvc25tcGRlbHRhLnBsZywKICAgc25tcGdldC8uY3ZzaWdub3JlLCBzbm1wZ2V0L3NubXBnZXQucGxnLAogICBzbm1wZ2V0bmV4dC8uY3ZzaWdub3JlLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5wbGcsCiAgIHNubXBuZXRzdGF0Ly5jdnNpZ25vcmUsIHNubXBzZXQvLmN2c2lnbm9yZSwKICAgc25tcHNldC9zbm1wc2V0LnBsZywgc25tcHN0YXR1cy8uY3ZzaWdub3JlLAogICBzbm1wc3RhdHVzL3NubXBzdGF0dXMucGxnLCBzbm1wdGFibGUvLmN2c2lnbm9yZSwKICAgc25tcHRlc3QvLmN2c2lnbm9yZSwgc25tcHRlc3Qvc25tcHRlc3QucGxnLAogICBzbm1wdHJhbnNsYXRlLy5jdnNpZ25vcmUsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5wbGcKLCBzbm1wdHJhcC8uY3ZzaWdub3JlLCBzbm1wdHJhcC9zbm1wdHJhcC5wbGcsCiAgIHNubXB0cmFwZC8uY3ZzaWdub3JlLCBzbm1wdXNtLy5jdnNpZ25vcmUsCiAgIHNubXB3YWxrLy5jdnNpZ25vcmUsIHNubXB3YWxrL3NubXB3YWxrLnBsZzoKCiAgIC0gd2luMzIvKjogY2xlYW4gdXAgcmVwb3NpdG9yeSBmaWxlcywgYW5kIGFkZCBwcm9wZXIgLmN2c2lnbm9yZSBmaWxlcwogICAKMTk5OS0xMS0xMCAxNToyOSAgbmJhCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdXNtLmMsCiAgIGFwcHMvc25tcHdhbGsuYywgd2luMzIvc25tcGdldC9zbm1wZ2V0LnBsZywKICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcDoKCiAgIC0gYXBwcy8qOiBjaGFuZ2VzIGZvciBnZXRvcHQgdXNhZ2UsIGFuZCByZXdvcmtpbmcgb2Ygc25tcF9wYXJzZV9hcmdzCiAgIAoxOTk5LTExLTEwIDEyOjIwICBuYmEKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AKLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsCiAgIHNubXB1c20vc25tcHVzbS5kc3AsIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIC0gd2luMzIvKi5kc3A6IHlldCBhbm90aGVyIHJvdW5kIG9mIG1ha2luZyB0aGlzIGNyYXAgd29yawogICAKMTk5OS0xMS0xMCAwODo1OSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChhZ2VudHgvc3ViYWdlbnQuYyk6IEZpeCBBZ2VudFggbm90aWZ5IHN1cHBvcnQKICAgCjE5OTktMTEtMTAgMDg6NTggIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmg6CgogICAtIChhZ2VudC9hZ2VudF90cmFwLltjaF0pOiBtaW5vciByZS1zdHJ1Y3R1cmUgdG8gYWxsb3cgc3ViYWdlbnQgdHJhcCAic2lua3MiCiAgIAoxOTk5LTExLTEwIDA4OjU3ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyk6IE9ubHkgc2V0IHVwIHRyYXAgc2lua3Mgb24gdGhlIG1hc3RlciBhZ2VudAogICAKMTk5OS0xMS0xMCAwODozMSAgbmJhCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCiwgc25tcGdldC9zbm1wZ2V0LmRzcCwgc25tcHNldC9zbm1wc2V0LmRzcCwKICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsIHNubXB0cmFwL3NubXB0cmFwLmRzcCwKICAgc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICAtIHdpbjMyLyo6IFZDKysgcHJvamVjdCB1cGRhdGVzCiAgIAoxOTk5LTExLTEwIDA4OjMwICBuYmEKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAucGxnLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZgosIHNubXBnZXQvc25tcGdldC5wbGcsIHNubXB0cmFwL3NubXB0cmFwLmRzcCwKICAgc25tcHRyYXAvc25tcHRyYXAucGxnOgoKICAgLSB3aW4zMi8qOiBmaXhlcyB0byB0aGUgVkMrKyBidWlsZCBwcm9qZWN0cwogICAKMTk5OS0xMS0wOSAyMzozMCAgbmJhCgogICAqIHNubXBsaWIvZ2V0b3B0Lmg6CgogICAtIGdldG9wdC5oOiBhcmd1bWVudHMgdG8gZ2V0b3B0IGRpZCBub3QgbWF0Y2ggdGhvc2UgaW4gZ2V0b3B0LmMKICAgCjE5OTktMTEtMDkgMjI6MjAgIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLiBzbm1wX3BhcnNlX2FyZ3MuYzogYSBnbGl0Y2ggaW4gdGhlIGNvbnZlcnNpb24gdG8gZ2V0b3B0ICh0aGFua3MgdG8KICAgCWRyaWVodWlzQHBsYXliZWluZy5vcmcpCiAgIAoxOTk5LTExLTA5IDE1OjE1ICBuYmEKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvZ2V0b3B0LmMsCiAgIHNubXBsaWIvZ2V0b3B0LmgsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgKLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLAogICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyLm9wdCwKICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcC9saWJzbm1wLnBsZywKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQucGxnCiwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5wbGcsCiAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXAvc25tcHRyYXAucGxnCjoKCiAgIC0gdmFyaW91czogYWRhcHQgdG9vbHMgdG8gdXNlIGdldG9wdCAoYW5kIHB1dCBvbmUgaW4gZm9yIFdpbjMyKQogICAKMTk5OS0xMS0wOSAxMzowOSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB0aGUgREVNTy1NSUIuCiAgIAoxOTk5LTExLTA5IDEzOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaDoKCiAgIC0gKHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCk6IHNpbXBsZSBuZXcgLmNvbmYgdG9rZW5zOiByb2NvbW11bml0eSwgcndjb21taXR5LgogICAKMTk5OS0xMS0wOSAxMzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIC0gKHVjZF9zbm1wLmgpOiByZXF1aXJlIHRoZSBERU1PLU1JQiAoanVzdCBmb3IgdHV0b3JpYWwgcHVycG9zZXMpLgogICAKMTk5OS0xMS0wOSAxMzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBmaXggLUguCiAgIAoxOTk5LTExLTA5IDEyOjU5ICBuYmEKCiAgICogd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIHNubXB0cmFwZC5jLHNubXB0cmFwZF9oYW5kbGVycy5jOiBtYWtlIGl0IGNvbXBpbGUgd2l0aCBWQysrIDUuMAogICAJKGJ1dCBubyBoYW5kbGVycyAoeWV0KSkKICAgCjE5OTktMTEtMDkgMDE6NTAgIG5iYQoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywgcGFyc2UuYywKICAgcGFyc2UuaDoKCiAgIC0gbWliLmMscGFyc2UuYzogbWFrZSBlcnJvciByZXBvcnRpbmcgaW4gcGFyc2VyIHdvcmsgYWNjb3JkaW5nIHRvIHNwZWMgKC1QZSkKICAgCXNob3cgZGVmaW5pbmcgbW9kdWxlcyBpbiBzbm1wdHJhbnNsYXRlIC1kCiAgIAl1c2UgZHNfdG9nZ2xlX2Jvb2xlYW4KICAgCjE5OTktMTEtMDUgMDY6MjIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2xjZF90aW1lLmMsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3Rvb2xzLmgKOgoKICAgU2F5IGdvb2RieWUgdG8gU05NUF9NQUxMT0MsIG1hbGxvY196ZXJvLCB4Y2FsbG9jLCB4bWFsbG9jLCBhbmQgeHN0cmR1cC4KICAgUmVzcGVjdGl2ZWx5IHJlcGxhY2VkIHdpdGggY2FsbG9jLCBjYWxsb2MsIGNhbGxvYywgbWFsbG9jLCBhbmQgc3RyZHVwLgogICAKMTk5OS0xMS0wNCAxMzo0MyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFNwZWVkIHVwIHNwcmludF92YXJpYWJsZTogaGFsdmUgdGhlIG51bWJlciBvZiBjYWxscyB0byBnZXRfc3ltYm9sLgogICAKMTk5OS0xMS0wNCAxMDoyOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgbWFuL3NubXBjbWQuMToKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wY21kLjEpOiBtb3ZlIC1xIGZsYWdzIHRvIC1PLgogICAKMTk5OS0xMS0wNCAxMDoxOSAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIHdpbjMyL2NvbmZpZy5oOgoKICAgUmVkbyBGcmVlQlNEIDQuMDogZGVmaW5lIGZyZWVic2QzIGluIHMvZnJlZWJzZDQuaDsgcmVkdWNlICJkZWZpbmUiIHRocmFzaGluZy4KICAgCjE5OTktMTEtMDQgMTA6MDQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICAtIChtaWIyYy5jb25mKTogaW5jbHVkZSBoZWFkZXJzIGZvciBjb21waWxhdGlvbiBmb3IgYm90aCBpbnRlcm5hbCBhbmQKICAgICBleHRlcm5hbCB0byB0aGUgdWNkLXNubXAgc291cmNlLgogICAKMTk5OS0xMS0wNCAxMDowMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9taWIuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG1pYi5jKToKICAgICAtIGRlZmluZSBJTl9VQ0RfU05NUF9TT1VSQ0UgaW4gY29uZmlnLmggYnV0IG5vdCBpbiB1Y2Qtc25tcC1jb25maWcuaC4KICAgICAtIG1vdmUgdWNkLXNubXAtY29uZmlnLmggdXAgaW4gdGhlIGJ1aWxkIG9yZGVyIGJlZm9yZSBzdWJkaXJzLgogICAgIC0gTWFrZSBkZWZhdWx0IE1JQkRJUlMgc2VhcmNoIHBhdGggaW5jbHVkZSAkSE9NRS8uc25tcC9taWJzLgogICAgIC0gTWFrZSBNSUJESVJTIHBhcnNpbmcgaGFuZGxlICRIT01FIHZhcmlhYmxlcyBpbiBpdC4KICAgCjE5OTktMTEtMDQgMDU6MTIgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgRmlyc3QgcGFzcyBzdXBwb3J0IGZvciBGcmVlQlNEIDQuMCBbcHJvYmxlbXMgd2l0aCBwcm9jIHRhYmxlIGxvb2t1cHNdLgogICAKMTk5OS0xMS0wNCAwNDozMyAgbXNsaWZjYWsKCiAgICogQUdFTlQudHh0OgoKICAgQ2hhbmdlIGV4YW1wbGUgYXdheSBmcm9tIFNURENfSEVBREVSUy4KICAgCjE5OTktMTEtMDQgMDQ6MTQgIG1zbGlmY2FrCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgc25tcF92YXJzLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCBtaWJncm91cC9ob3N0L2hyX3V0aWxzLmMsCiAgIG1pYmdyb3VwL21pYklJL2F0LmMsIG1pYmdyb3VwL21pYklJL2ljbXAuYywKICAgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBtaWJncm91cC9taWJJSS9pcC5jLAogICBtaWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCBtaWJncm91cC9taWJJSS90Y3AuYywKICAgbWliZ3JvdXAvbWliSUkvdWRwLmMsIG1pYmdyb3VwL21pc2MvZGxtb2QuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBtaWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jCiwgbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBtaWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmM6CgogICBNb3JlIFNURENfSEVBREVSUyBjbGVhbnVwOiB1c2UgSEFWRV9TVFJJTkdfSCwgSEFWRV9TVERMSUJfSCBpbnN0ZWFkLgogICAKMTk5OS0xMS0wNCAwMjo0MiAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgUGF0Y2ggdG8gYnVpbGQgQlNEL09TIDQuMC4xOyBmcm9tIEJlcnQgRHJpZWh1aXMgLS0gZHJpZWh1aXNAcGxheWJlaW5nLm9yZwogICAKMTk5OS0xMS0wMyAxMzoyMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIEZpeCBidWlsZCBwcm9ibGVtIG9uIExpbnV4IFJlZEhhdCA2LjA6IGtleSBvZmYgR05VX0xJQlJBUlkgdmFsdWUuCiAgIAoxOTk5LTExLTAzIDEzOjE4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdWNkLXNubXAvZXh0ZW5zaWJsZS5jCiwgdWNkLXNubXAvbWVtb3J5LmMsIHVjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jCiwgdWNkLXNubXAvcGFzcy5jLCB1Y2Qtc25tcC9wcm9jLmMsCiAgIHVjZC1zbm1wL3Byb2MuaDoKCiAgIEZvbGxvd2luZyBjYWxsIHRvIGZkb3BlbiAobmVhciBnZXRfZXhlY19vdXRwdXQpLCBkbyBub3QgY2xvc2UoZmQpLgogICAKMTk5OS0xMS0wMyAwNjo0OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgTmVhciBsaW5lIDY2MzogY2xvc2UoZmQpIGJlZm9yZSBpbnZva2luZyB3YWl0X29uX2V4ZWMKICAgCjE5OTktMTEtMDMgMDY6MTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIGRlY2xhcmUgZmluZF9iZXN0X3RyZWVfbm9kZSBmb3IgTVNWQyBidWlsZC4KICAgCjE5OTktMTEtMDIgMTU6NDYgIG1zbGlmY2FrCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgc25tcF9hZ2VudF9hcGkuMwogICAKMTk5OS0xMS0wMiAxNTozNiAgbXNsaWZjYWsKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5oLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5oLAogICBzbm1wbGliL3N5c3RlbS5oLCB3aW4zMi9jb25maWcuaDoKCiAgIFVzZSBIQVZFX1NUREFSR19IIHdoZW4gZGVjaWRpbmcgdG8gdXNlIHZhcmFyZ3MgdnMgQU5TSS1DIHByb3RvdHlwZXMuCiAgIAoxOTk5LTExLTAyIDA5OjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIG90aGVyIGhlYWRlciBmaWxlcyBuZWVkZWQgYnkgU05NUC5wbS4KICAgCjE5OTktMTEtMDEgMTM6MTcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBzbm1wX2FsYXJtLmMpOgogICAgIC0gZG9uJ3QgYnJlYWsgb2lkcyBpbnRvIHBpZWNlcyBpZiBxdWlja19wcmludCBpcyB0dXJuZWQgb24uCiAgICAgLSBkaXR0byBpZiB0aGUgbmV3IGRlZmF1bHRfc3RvcmUgb3B0aW9uIGlzIHR1cm5lZCBvbi4KICAgICAtIG1hZGUgYSBkZWZhdWx0X3N0b3JlIG9wdGlvbiB0byBub3QgdXNlIHNpZ2Fscm0gZm9yIHNubXBfYWxhcm1zLgogICAKMTk5OS0xMC0yOSAxOTo1NCAgbWFyegoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgIChhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXB2My5jKTogbWFrZSBlbmdpbmVJRCBzZXR1cCBjb25kaXRpb25hbCBvbiBhcHAgdHlwZSB0byBwcmV2ZW50IGFwcHMgZnJvbSBlYXNpbHkgZW5kaW5nIHVwIHdpdGggdGhlIHNhbWUgZW5naW5lSUQgYXMgYWdlbnQgb24gc2FtZSBob3N0CiAgIAoxOTk5LTEwLTI5IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogbWFrZSBpdCBkbyBzbm1wdjMuICBBZGRlZCBtYW55IHRoaW5ncyB0byB0aGUgb3B0aW9ucyBtZW51LgogICAKMTk5OS0xMC0yOSAxMDoxNSAgaGFyZGFrZXIKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogaWdub3JlIGRlZmF1bHRfc3RvcmUuM3ssLmh9CiAgIAoxOTk5LTEwLTI5IDEwOjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBkZWZhdWx0X3N0b3JlLjMsIGRlZmF1bHRfc3RvcmUuMy5oOgoKICAgLShkZWZhdWx0X3N0b3JlLjN7LC5ofSk6IHJlbW92ZWQgZnJvbSBDVlMgc2luY2UgdGhleSBhcmUgYnVpbHQKICAgCjE5OTktMTAtMjkgMTA6MTMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wY21kLjEpOiBkb2N1bWVudCAtVCBhbmQgLXFbb2VdCiAgIAoxOTk5LTEwLTI5IDEwOjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9kc19hZ2VudC5oLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMKLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoZHNfYWdlbnQuaCwgc25tcF9hZ2VudC5jLCBzbm1wZC5jLCBzbm1wX3BhcnNlX2FyZ3MuYyk6CiAgICAgLSBzbm1wIG92ZXIgVENQIG9wdGlvbnM6IC1UIFRDUC4KICAgICAtIG5ldyBxdWljayBwcmludCBvcHRpb25zOiAtcW8gLXFlIGZvciBudW1lcmljIG9pZHMgYW5kIGVudW1zLgogICAKMTk5OS0xMC0yOSAwOTo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgbWliLmM6CgogICAtIChkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKTogdHdvIG5ldyBwcmludGluZyBvcHRpb25zOgogICAgIC0gcHJpbnROdW1lcmljT2lkcwogICAgIC0gcHJpbnROdW1lcmljRW51bXMKICAgCjE5OTktMTAtMjkgMDk6MjggIGhhcmRha2VyCgogICAqIGFnZW50L3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICAtICh1Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oKTogYWRkZWQgdmFyX3N0cnVjdC5oIGFuZCBhZ2VudF9yZWFkX2NvbmZpZy5oCiAgIAoxOTk5LTEwLTI5IDA5OjI4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBhZGRlZCByZWZlcmVuY2UgdG8gYW4gYWJvdmUgcXVlc3Rpb24gZm9yIHBlcmwgaW5zdGFsbGF0aW9uLgogICAKMTk5OS0xMC0yOSAwODo1OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mOgoKICAgLSAobWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6IFBhdGNoIGZyb20gS2VpdGggVHVzb246CiAgICAgLSBtaXNjIGZpeGVzLgogICAKMTk5OS0xMC0yOCAwNjo0OSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHJlcGhyYXNlIHN1YnRyZWUgbm90IGZvdW5kIGNvZGUgaW4gX2dldF9zeW1ib2wuCiAgIAoxOTk5LTEwLTI4IDA1OjI1ICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oOgoKICAgT29wcyEgcmVzdG9yZSB2ZXJzaW9uIHIxLjEzMS4KICAgCjE5OTktMTAtMjggMDU6MjMgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIHdpbjMyL2NvbmZpZy5oOgoKICAgdV9pbnQ4LzE2LzMyX3QgdHlwZXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgV0lOMzIgYnVpbGRzLgogICAKMTk5OS0xMC0yOCAwNDo1NSAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRGF2ZSdzIGNvbW1lbnQgYWJvdXQgcHJlX3BhcnNlIGV0Yy4gd2FzIHRvbyBnb29kIHRvIGxvc2UgaW4gZS1tYWlsLgogICAKMTk5OS0xMC0yNyAxNzozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtICh2YWNtX3ZhcnMuYyk6IHdhdGNoIGZvciBudWxsIGNvbW11bml0aWVzIHdoZW4gcHJpbnRpbmcgZGVidWcgc3RhdGVtZW50cy4KICAgCjE5OTktMTAtMjcgMTc6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IGJhaWwgaWYgd2UgY2FuJ3QgZmluZCBhbiBpbmRleCBpbiB0aGUgbWliIHRyZWUgdG8gdXNlIGZvcgogICAgIGJyZWFraW5nIGFuIG9pZCBhcGFydC4KICAgCjE5OTktMTAtMjcgMTc6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIC0gKHVjZC1zbm1wLWluY2x1ZGVzLmgpOiBhZGRlZCBtb3JlIGluY2x1ZGUgZmlsZXMuCiAgIAoxOTk5LTEwLTI3IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICAtICh1Y2Qtc25tcC1pbmNsdWRlcy5oKTogYWRkIGRlZmF1bHRfc3RvcmUuaCBhbmQgc25tcF9sb2dnaW5nLmgKICAgCjE5OTktMTAtMjcgMTQ6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbGNkX3RpbWUuaDoKCiAgIC0gKGxjZF90aW1lLmgpOiBkZWZpbmUgYW5kIGNvbW1lbnQgTENEX1RJTUVfU1lOQ19PUFQgYmV0dGVyLgogICAKMTk5OS0xMC0yNyAxNDozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmg6CgogICAtIChkZWZhdWx0X3N0b3JlLmgpOgogICAgIC0gbWFyayByZWdpb25zIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBkZWZhdWx0X3N0b3JlLjMgbWFudWFsIHBhZ2UuCiAgIAoxOTk5LTEwLTI3IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS4zLAogICBkZWZhdWx0X3N0b3JlLjMuYm90LCBkZWZhdWx0X3N0b3JlLjMuaCwKICAgZGVmYXVsdF9zdG9yZS4zLnRvcCwgc25tcF9hZ2VudF9hcGkuMzoKCiAgIC0gKE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLjMsIGRlZmF1bHRfc3RvcmUuMy5ib3QsCiAgICAgZGVmYXVsdF9zdG9yZS4zLmgsIGRlZmF1bHRfc3RvcmUuMy50b3AsIHNubXBfYWdlbnRfYXBpLjMpOgogICAgIC0gbmV3IG1hbnVhbCBwYWdlczogZGVmYXVsdF9zdG9yZS4zLCBzbm1wX2FnZW50X2FwaS4zLgogICAKMTk5OS0xMC0yNyAxNDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSAobWFzdGVyX2FkbWluLmMpOiBzaW1wbGUgZGVidWdnaW5nIHNvIHlvdSBjYW4gd2F0Y2ggc3R1ZmYgcmVnaXN0ZXIuCiAgIAoxOTk5LTEwLTI3IDE0OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCB1Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgLSAoTWFrZWZpbGUuaW4sIHVjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgpOiBhZGRlZCBhIGhlYWRlciBmaWxlIHRvCiAgICAgd3JhcCBhcm91bmQgdGhlIHZhcmlvdXMgYWdlbnQgaW5jbHVkZSBmaWxlcy4KICAgCjE5OTktMTAtMjcgMTQ6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuaDoKCiAgIC0gKHNubXBfYWdlbnQuaCk6IHByb3RvdHlwZSBhZ2VudF9jaGVja19hbmRfcHJvY2VzcygpLgogICAKMTk5OS0xMC0yNyAxNDozMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGZpeCB1cCB1Y2Qtc25tcC1jb25maWcuaCBidWlsZGluZy4KICAgCjE5OTktMTAtMjYgMTA6MzQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIEFsbG93IHVuc2lnbmVkIHJhbmdlIGZvciBjb3VudGVyL2dhdWdlL3RpbWV0aWNrcyAoZml4IEJVRyM4NCBwZXIgU2FuZGVyIFN0ZWZmYW5uKS4KICAgCjE5OTktMTAtMjUgMTY6MDQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBzbm1wbGliL3BhcnNlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMsIHBhcnNlLmMpOiBoYWNrIHRvIGRvIHdpbGQgY2FyZCBzZWFyY2hlcyBmb3IgYSBtaWIgbm9kZS4KICAgCjE5OTktMTAtMjUgMTQ6MzUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogZW5hYmxlIC1wIHByaW50aW5nIG9mIG9ubHkgYSBzZWN0aW9uIG9mIHRoZSBtaWIgdHJlZS4KICAgCjE5OTktMTAtMjUgMTQ6MTIgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2F1dG9fbmxpc3QuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYwosIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL2NhbGxiYWNrLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLAogICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc2NhcGkuaCwgc25tcGxpYi9zbm1wLmMKLCBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zeXN0ZW0uYwosIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi92YWNtLmM6CgogICAtICo6IGNvbmZpZ3VyZSBzdXBwb3J0IGZvciBkbWFsbG9jIG1hbGxvYyBkZWJ1Z2dlciAod3d3LmRtYWxsb2MuY29tKQogICAKMTk5OS0xMC0yNSAxNDowOCAgbmJhCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSBzbm1wZC5jb25mLjUuZGVmOiBtaW5vciBxdWlyawogICAKMTk5OS0xMC0yNSAxNDowNyAgbmJhCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICAtIHNubXBkZWx0YS5jOiBDT1VOVEVSNjQgd2lsbCBkZXJlZmVyZW5jZSBmcmVlZCBwb2ludGVyCiAgIAoxOTk5LTEwLTI1IDEzOjU2ICBuYmEKCiAgICogdGVzdGluZy86IFJVTlRFU1RTLCBURVNUQ09ORi5zaCwgZXZhbF9vbmVzY3JpcHQuc2gKLCBldmFsX3Rvb2xzLnNoOgoKICAgLSBSVU5URVNUUywgVEVTVENPTkYuc2ggZXZhbF9vbmVzY3JpcHQuc2ggZXZhbF90b29scy5zaDogc3VwcG9ydCBub24tYmFzaAogICAJc2hlbGxzIChlY2hvIC1uIHZzIGVjaG8gXFxjKS4gRG9uJ3QgcmVxdWlyZSAuIGluIFBBVEgKICAgCjE5OTktMTAtMjUgMTM6NDAgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgLSBjb25maWd1cmUuaW4sIHByb2MuYzogc3VwcG9ydCBmb3IgRnJlZUJTRCAyLjEgd2hlcmUgcHMgZG9lc24ndCBoYXZlIGMgZmxhZwogICAKMTk5OS0xMC0yNSAxMzozOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gaW50ZXJmYWNlcy5jOiBmaXggYSBtZW1vcnkgbGVhayBpbiB0aGUgTGludXggcGFydAogICAKMTk5OS0xMC0yNSAwODowNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGtleXRvb2xzLmMsIG1pYi5jLCBzY2FwaS5jOgoKICAgbWlub3IgcmV3b3JrIHRvIGNsYXJpZnkgc2lnbmVkIGNvbXBhcmVzIGFuZCByZW1vdmUgdW51c2VkIHZhcmlhYmxlcy4KICAgCjE5OTktMTAtMjQgMDg6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgIC0gcHJlbWliIGRpcmVjdGl2ZXMgd2VyZW4ndCBnZXR0aW5nIHJlYWQgZHVlIHRvIGEgbWlzc2luZyBuZWdhdGlvbiAoISkuCiAgICAgLSBtb3JlIHBhcnNpbmcgZGVidWdnaW5nIHN0YXRlbWVudHMgYWRkZWQuCiAgIAoxOTk5LTEwLTI0IDA4OjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBmaXggIm1pYnMiIGFuZCAibWliZGlycyIgLmNvbmYgZGlyZWN0aXZlcyB0byBwcm9wZXJseQogICAgIGhhbmRsZSBtdWx0aXBsZSBjYWxscyAoYWRkaXRpdmUpIGFuZCAnKydzIGFuZCB0aGluZ3MuCiAgIAoxOTk5LTEwLTI0IDA4OjI0ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgLSAoUkVBRE1FLnNubXB2Myk6IHR5cG8uCiAgIAoxOTk5LTEwLTI0IDA4OjIzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogU05NUENPTkZQQVRIIHVzZXMgc3lzY29uZmRpciBub3QgZGF0YWRpci4KICAgCjE5OTktMTAtMjIgMTU6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IHByaW50IHN0cmluZyBiYXNlZCBPSURzIGJldHRlci4KICAgCjE5OTktMTAtMjIgMTU6MjggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2tleXRvb2xzLmgKLCBzbm1wbGliL3NjYXBpLmM6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGtleXRvb2xzLmMsCiAgICAga2V5dG9vbHMuaCwgc2NhcGkuYyk6CiAgICAgLSB1c2Ugb3BlbnNzbCBmb3IgbWQ1L3NoYSBzdXBwb3J0IChmcm9tIE9sYWZ1ciBHdWRtdW5kc3NvbikuCiAgIAoxOTk5LTEwLTIyIDEwOjEyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRGlzcGxheSBfc29tZV8gb2N0ZXQgc3RyaW5nIGluZGljZXMgb2Ygb2JqZWN0IGlkZW50aWZpZXJzIGFzIHF1b3RlZCBwcmludGFibGUuCiAgIFNob3VsZCBiZSBleHBhbmRlZCB0byBoYW5kbGUgb3RoZXIgSU5ERVggdHlwZXMuCiAgIAoxOTk5LTEwLTIyIDA5OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBlbmFibGUgaGV4IHN0cmluZ3MgaW5zaWRlIG9pZHMuCiAgIAoxOTk5LTEwLTIyIDA3OjM5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVtb3ZlZCBkdXBsaWNhdGVkIHZhcmlhYmxlIGluIGEgbmVzdGVkIGJsb2NrLiBBUmchCiAgIAoxOTk5LTEwLTIyIDA2OjI5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBGaXggQlVHICM4My4KICAgCjE5OTktMTAtMjEgMTI6NTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIC0gbWVtb3J5X3NvbGFyaXMyLmM6IHJlb3JkZXIgY29tcHV0YXRpb25zIHRvIGF2b2lkIG92ZXJmbG93LgogICAKMTk5OS0xMC0yMSAxMjozMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgc21hbGwgcGF0Y2ggZnJvbSBNLiBMYXVra2FuZW4gdG8gZml4IEhQIGFDQyBidWlsZC4KICAgCjE5OTktMTAtMjEgMTI6MDkgIG1zbGlmY2FrCgogICAqIG1hbi86IHNubXBfYXBpLjMsIHNubXBfc2Vzc19hcGkuMywgc25tcGQuMS5kZWYKLCBzbm1wbmV0c3RhdC4xLCBzbm1wdGVzdC4xOgoKICAgRml4IEJVRyM3OAogICAKMTk5OS0xMC0yMSAxMDo0MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMsIHNubXBfYWdlbnQuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIHVzZSBzbm1wX29wZW5fZXguCiAgIAoxOTk5LTEwLTIxIDEwOjQxICBtc2xpZmNhawoKICAgKiBhcHBzLzogc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMKLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYwosIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAogICBzbm1wdXNtLmMsIHNubXB3YWxrLmMsIHNubXBuZXRzdGF0L21haW4uYzoKCiAgIHJlbWluZGVycyBmb3Igc25tcF9zZXNzX3BlcnJvciB1c2FnZSBhZnRlciBvcGVuLgogICBzbm1wdGFibGUuYyAtIG9wZW4vY2xvc2Ugc2Vzc2lvbiBmcm9tIG1haW4oKS4KICAgbmV0c3RhdC9tYWluLmMgLSB1c2Ugc25tcF9zZXNzX3BlcnJvci4KICAgCjE5OTktMTAtMjEgMTA6MzkgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogY29uZmlnLmgsIGxpYnNubXAvbGlic25tcC5kc3AsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIEZpeHVwcyBmb3IgYnVpbGRpbmcgd2l0aCBNU1ZDKysuIChubyBocHV4LmMsIHN1cHBseSBNQVhfUEVSU0lTVEVOVF9CQUNLVVBTKS4KICAgCjE5OTktMTAtMjEgMTA6MzcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYwosIHNubXBfYXBpLmg6CgogICBtaWIuYyAtIHJlc3RvcmUgbGluZSBzdG9tcGVkIGluIG15IGxhc3QgdXBkYXRlLgogICByZWFkX2NvbmZpZy5jIC0gZHJvcCB1bnVzZWQgdmFyaWFibGUuCiAgIHNubXBfYXBpLmMgLSBuZXcgbWV0aG9kIHNubXBfb3Blbl9leCByZXBsYWNlcyBzZXQgaW50ZXJuYWwgaG9vayBmdW5jdGlvbnMuCiAgIAoxOTk5LTEwLTIxIDEwOjI2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgTm90ZSAgU05NUEVSUl9VTktOT1dOX09CSklEIGVycm9yIGZyb20gd2l0aGluIHRoZSBsaWJyYXJ5LgogICAKMTk5OS0xMC0yMSAxMDoyMCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIE5vdGUgIFNOTVBFUlJfVU5LTk9XTl9PQkpJRCBlcnJvciB3aXRob3V0IHNwZWNpZnlpbmcgc25tcF9lcnJubyBfb3V0c2lkZV8gdGhlIGxpYnJhcnkuCiAgIAoxOTk5LTEwLTIxIDEwOjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBlbmFibGUgb2lkbmFtZS4iaGkiLid0aGVyZScgaW4gZ2V0X21vZHVsZV9ub2RlKCkgYXMgd2VsbC4KICAgCjE5OTktMTAtMjAgMTg6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IGVuYWJsZSBvaWQgcGFyc2VyIHRvIGhhbmRsZSBzaW1wbGUgZW1iZWRkZWQgc3RyaW5ncyBpbiBvaWRzCiAgICAgYW5kIHRvIHRyYW5zbGF0ZSB0aGVtIGludG8gb2lkIHNlZ21lbnRzLgogICAgIEVHOiAuMS4zLlwiaGVsbG9cIi5cJ2hpXCcgLT4gLjEuMy41LjEwNC4xMDEuMTA4LjEwOC4xMTEuMTA0LjEwNQogICAKMTk5OS0xMC0yMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYzoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMpOiBwYXJzZWQgc3RyaW5ncyBmcm9tIG9pZCdzIGluY2x1ZGUgbnVsbCB0ZXJtaW5hdG9ycy4KICAgCjE5OTktMTAtMTUgMDc6MDkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBjYWxsYmFjay5jLCBkZWZhdWx0X3N0b3JlLmM6CgogICAtKGRlZmF1bHRfc3RvcmUuYywgY2FsbGJhY2suYykgZml4CiAgIGJ1ZyBpbiBhcnJheS1ib3VuZGFyeSBjaGVjayBpbiBzbm1wbGliL2NhbGxiYWNrLmMKICAgcmVwb3J0ZWQgYnkgQmVydCBIb2xzdGVpbiAxNSBPY3QgMTk5OS4KICAgCjE5OTktMTAtMTMgMDc6MDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50eC9tYXN0ZXJfYWRtaW4uYywgbWliSUkvc3lzdGVtX21pYi5jCjoKCiAgIC0gbWFzdGVyX2FkbWluLmMsIHN5c3RlbV9taWIuaDogaW5jbHVkZXMgZm9yIHByb3RvdHlwZXMKICAgCjE5OTktMTAtMTMgMDM6NTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuaDoKCiAgIGFkZCBtaXNzaW5nIHByb3RvIGZvciBzYXZlX3BlcnNpc3RlbnQuCiAgIAoxOTk5LTEwLTEyIDA2OjA3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBEZWZpbmUgYWRkcmVzcyBsZW5ndGggZm9yIEZyZWVCU0QgcGxhdGZvcm0uCiAgIAoxOTk5LTEwLTEyIDA1OjU4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbGNkX3RpbWUuYywgbWliLmM6CgogICBtaWIuYzogcXVpY2tfcHJpbnQgaXMgZXhwb3NlZCBmb3IgQ01VX0NPTVBBVElCTEUgYnVpbGRzLgogICBsY2RfdGltZS5jOiBjb21tZW50ZWQgdW51c2VkIGR1bXBfZXRpbWVsaXN0X2VudHJ5IHVuZGVyIFNOTVBfVEVTVElOR19DT0RFLgogICAKMTk5OS0xMC0wNyAwOTowMSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX2FkbWluLmMsIHN1YmFnZW50LmM6CgogICAtIChhZ2VudHgvc3ViYWdlbnQuYyBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBOb3RpZmljYXRpb24gc3VwcG9ydAogICAKMTk5OS0xMC0wNyAwODo0MiAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaDoKCiAgIC0gKGFnZW50X3RyYXAuW2NoXSk6IEltcHJvdmUgYWNjZXNzaWJpbGl0eSBmb3Igc3ViYWdlbnRzCiAgIAoxOTk5LTEwLTA3IDA3OjI2ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3RyYXAuYywKICAgYWdlbnRfdHJhcC5oLCBzbm1wZC5oOgoKICAgLSAoYWdlbnRfdHJhcC5jIGFnZW50X3RyYXAuaCBhZ2VudF9yZWFkX2NvbmZpZy5jIHNubXBkLmgpOgogICAgIC0gIFJlLXdyaXRlIG9mIGFnZW50IHRyYXAgaGFuZGxpbmc6CiAgIAlQcm92aXNpb24gZm9yIHYxIHRyYXBzIHdpdGggdmFyYmluZHMKICAgCUNvbnNvbGlkYXRlIHYxIGFuZCB2MiB0cmFwIHNpbmsgbGlzdHMKICAgCVByZWxpbWluYXJ5IElORk9STSBzdXBwb3J0CiAgIAoxOTk5LTEwLTA2IDE2OjMxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYyk6CiAgICAgLSBTYXZlIGFuZCBwYXJzZSBvbGRlciBwZXJzaXN0ZW50IHN0b3JhZ2UgZmlsZXMgdG8gbWFrZSBzdXJlIGRhdGEgaXMKICAgICAgIG5vdCBsb3N0IGR1cmluZyBzdG9yYWdlIGNyYXNoZXMuCiAgICAgLSBGaXggU05NUHYzIGVuZ2luZUlEIHByb2JlczogUERVJ3MgYXJlIGFsbG93ZWQgdG8gaGF2ZSBhIE5VTEwgdmFyYmluZGxpc3QuCiAgIAoxOTk5LTEwLTA2IDA4OjU3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9maXhwcm9jOgoKICAgLSAoZml4cHJvYyk6IG5ldyBjb21tZW50ZWQgdmVyc2lvbi4KICAgCjE5OTktMTAtMDUgMjI6MjIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gc3ViYWdlbnQuYzogaW5jbHVkZSBzeXN0ZW0uaCBmb3IgcHJvdG90eXBlIGZvciBjYWxjdWxhdGVfdGltZV9kaWZmCiAgIAoxOTk5LTEwLTA1IDIyOjE4ICBuYmEKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gc25tcF9wYXJzZV9hcmdzLmM6IGZpeGVzIHRvIHJlcG9ydCBpbnZhbGlkIGVuZ2luZUlkCiAgIAoxOTk5LTEwLTA1IDIxOjQ5ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmg6CgogICAtIHNubXBfZGVidWcuaDogbWFrZSB0aGUgREVCVUcqIG1hY3JvcyBzYWZlIGZvciB1c2UgaW4gY29tcG91bmQgc3RhdGVtZW50cwogICAKMTk5OS0xMC0wNSAwNzoyMyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX3JlcXVlc3QuYywgc3ViYWdlbnQuYwo6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyBhZ2VudHgvc3ViYWdlbnQuYyk6IFdvcmtpbmcgU0VUIHN1cHBvcnQKICAgCjE5OTktMTAtMDQgMTY6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaDoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4LmgpOiBhZGRlZCBoZWFkZXJfY29tcGxleF9maW5kX2VudHJ5KCkuCiAgIAoxOTk5LTEwLTA0IDEzOjUyICBuYmEKCiAgICogYWdlbnQvOiBtaWJfbW9kdWxlcy5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50Lmg6CgogICAtIHN1YmFnZW50LmgsIHN1YmFnZW50LmMsIG1pYl9tb2R1bGVzLmM6IHByZV9pbml0X3N1YmFnZW50IGNvbmZ1c2VzCiAgIAljb25maWd1cmUgaW50byBiZWxpZXZpbmcgdGhlcmUgaXMgYSBpbml0X3N1YmFnZW50IGZ1bmN0aW9uLgogICAJUmVuYW1lIHRvIHN1YmFnZW50X3ByZV9pbml0CiAgIAoxOTk5LTEwLTA0IDEzOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICAtIChzeXN0ZW1fbWliLmMpOiBtYWtlIHN5c1NlcnZpY2VzIGNvbmZpZ3VyYWJsZS4KICAgCjE5OTktMTAtMDQgMTM6MzggIG5iYQoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmgsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwosIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaAo6CgogICAtIHZhcmlvdXM6IGluY2x1ZGUgYWRkaXRpb25zIGFuZCBmaXhlcyB0byBraWxsIHdhcm5pbmdzCiAgIAoxOTk5LTEwLTA0IDExOjUyICBuYmEKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIGNvbmZpZ3VyZS5pbjoJcmVtb3ZlIC1wZWRhbnRpYyBmcm9tIC0td2l0aC1kZXZlbG9wZXIsIGFuZCB0aGUgc3lzdGVtIGhlYWRlcnMKICAgCWFyZSBub3QgcHJlcGFyZWQgZm9yIGl0IChhdCBsZWFzdCBvbiBMaW51eCBhbmQgTmV0QlNEKQogICAKMTk5OS0xMC0wNCAxMTo1MCAgbmJhCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSBNYWtlZmlsZS5pbjoJYWx3YXlzIHVzZSAkKE1BS0UpIGZvciBtYWtlIGluIE1ha2VmaWxlcwogICAKMTk5OS0xMC0wNCAxMTo0OCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvaW50NjQuaCwgYXBwcy9zbm1wdHJhcC5jCjoKCiAgIC0gKHNubXBfYXBpPywgaW50NjQuPyBzbm1wdHJhcC5jKTogYWRkIHNvbWUgZXJyb3IgY2hlY2tpbmcgZm9yIHZhcmlhYmxlcwogICAKMTk5OS0xMC0wNCAxMDoyMiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMsIGNsaWVudC5oLAogICBtYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKGFnZW50eC9jbGllbnQuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBUcml2aWFsICdwaW5nJyBpbXBsZW1lbnRhdGlvbgogICAKMTk5OS0xMC0wNCAxMDoxNyAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9jYWxsYmFja3MuaCwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oCjoKCiAgIC0gKGFnZW50X2NhbGxiYWNrcy5oICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLltjaF0KICAgICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jKToKICAgICAgLSBDb21wbGV0ZSBzdWJhZ2VudCBoYW5kbGluZyBvZiBBZ2VudCBDYXBhYmlsaXRpZXMgLyBzeXNPUlRhYmxlCiAgIAoxOTk5LTEwLTA0IDEwOjE1ICBkYXZlcwoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmg6CgogICAtIChzbm1wbGliL2NhbGxiYWNrLmgpOiBJbmNyZWFzZSBudW1iZXIgb2YgYXBwbGljYXRpb24gY2FsbGJhY2tzIHN1cHBvcnRlZAogICAKMTk5OS0xMC0wNCAwOTo1OCAgZGF2ZXMKCiAgICogYWdlbnQvOiBtaWJfbW9kdWxlcy5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50Lmg6CgogICAtIChtaWJfbW9kdWxlcy5jIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5bY2hdKToKICAgICAtIEVuc3VyZSBzdWJhZ2VudCBpcyBpbml0aWFsaXNlZCBlYXJseSAocHJpb3IgdG8gTUlCIHJlZ2lzdHJhdGlvbiwgZXRjKQogICAKMTk5OS0xMC0wNCAwOTo1MyAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICBzbm1wX3ZhcnMuaCwgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBtaWJncm91cC9hZ2VudHgvY2xpZW50LmgsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwosIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIHNubXBfdmFycy5oIG1pYklJL3N5c09SVGFibGUuYwogICAgICBhZ2VudHgvY2xpZW50LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKICAgICAgLSBIYW5kbGUgTUlCIHJhbmdlIHJlZ2lzdHJhdGlvbiwgYW5kIGNsZWFuIHVwIHdyYXBwZXIgaW50ZXJmYWNlcwogICAKMTk5OS0xMC0wNCAwMzo1OCAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICBtaWJncm91cC9hZ2VudHgvY2xpZW50Lmg6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuaCk6CiAgICAgLSBjb25zb2xpZGF0ZSBkZWZpbml0aW9ucyBvZiBkZWZhdWx0IE1JQiByZWdpc3RyYXRpb24gcHJpb3JpdHkKICAgCjE5OTktMTAtMDIgMTQ6MjggIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9hZG1pbi5jLCBzdWJhZ2VudC5jOgoKICAgLSAobWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jKToKICAgICAtIEZpeCBhIHByb2JsZW0gd2l0aCByZS11c2VkIFBEVSBzdHJ1Y3R1cmVzIGJlaW5nIGZyZWVkIHR3aWNlLgogICAKMTk5OS0xMC0wMSAwOTo0OCAgZGF2ZXMKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IEZpeCBpbmNvbXBhdGFiaWxpdHkgaW4gYWdlbnQgbGlicmFyeSBuYW1lcwogICAKMTk5OS0wOS0zMCAwMTowOSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIC0gKG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMpOgogICAgIC0gcHJvdGVjdCBhZ2FpbnN0IE5VTEwgdXRtcCBmaWxlIChmcm9tIEZhYnJpY2UgRHVwcmUpCiAgIAoxOTk5LTA5LTI5IDIzOjQyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2hwdXguYzoKCiAgIFJlbW92ZSB1bnVzZWQgZmlsZS4uIHNubXBsaWIvaHB1eC5jCiAgIAoxOTk5LTA5LTI5IDE3OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJfbW9kdWxlcy5jOgoKICAgLSAobWliX21vZHVsZXMuYyk6IGluY2x1ZGUgbmV0aW5ldC9pbi5oCiAgIAoxOTk5LTA5LTI5IDE3OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5Lmg6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oKTogZml4IGJ1Z3MuCiAgIAoxOTk5LTA5LTI5IDE2OjQwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mOgoKICAgLSAobWliMmMudmFydHlwZXMuY29uZik6IHJlbW92ZWQgZXh0cmEgXG4uCiAgIAoxOTk5LTA5LTI5IDE2OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICAtIChwYXNzLmMpOiBydW4gbnRvaGwgb24gaXAgYWRkcmVzc2VzIHN0b3JlZCBpbiBhIGxvbmcuCiAgIAoxOTk5LTA5LTI5IDE2OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIChtYXN0ZXJfYWRtaW4uYyk6IC1XYWxsIGZpeGVzIGFuZCBmb3VuZCBhIG1pc3NpbmcgfS4KICAgCjE5OTktMDktMjkgMTY6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuaDoKCiAgIC0gKGNsaWVudC5oKTogZGVmaW5lIERFRkFVTFRfTUlCX1BSSU9SSVRZIHRvIDI1NS4KICAgCjE5OTktMDktMjkgMTY6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIC0gKGNsaWVudC5jKTogdGhhdHMgInRpbWV2YWwiIG5vdCAidGltZXZhbGUiIERhdmUgKGhlaGUpLgogICAKMTk5OS0wOS0yOSAxNjozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6CiAgICAgLSBuZXcgZXh0cmFjdGlvbiBhbmQgZnJlZWluZyBmdW5jdGlvbnMuCiAgICAgLSBidWcgZml4LCBtaXNzaW5nIGEgbWFsbG9jIHNpemUgYnkgb25lIChlbGVjdHJpYyBmZW5jZSBpcyB2ZXJ5IGNvb2wpLgogICAKMTk5OS0wOS0yOSAxNjozNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogYWRkZWQgTWlrZSBNaWNoYXVkIHRvIHRoZSB0aGFuayB5b3UgbGlzdC4KICAgCjE5OTktMDktMjkgMTY6MzUgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBmaXggUkFOTElCIHRlc3RpbmcgZm9yIC0tZW5hYmxlLXNoYXJlZC4KICAgCjE5OTktMDktMjkgMTQ6MzEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIFJvYnVzdCBjb3B5IG9mIGluZm9ybWF0aW9uIHRvIHRyZWUsIGltcG9ydF9saXN0LCBkaXNwbGF5IGhpbnRzLgogICAKMTk5OS0wOS0yOSAxMjoxOSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMsIGNsaWVudC5oLAogICBtYXN0ZXJfYWRtaW4uYywgbWFzdGVyX3JlcXVlc3QuYywgcHJvdG9jb2wuYywKICAgcHJvdG9jb2wuaCwgc3ViYWdlbnQuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL2FnZW50eC8qKTogIEFzc29ydGVkIGltcHJvdmVtZW50cyEKICAgCjE5OTktMDktMjkgMTE6NDggIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6IENoYW5nZSBpbiBNSUIgcmVnaXN0cmF0aW9uIGludGVyZmFjZQogICAKMTk5OS0wOS0yOSAxMTo0NiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6CiAgICAgLSBNb3ZlIHNldHRpbmcgYWdlbnQgc3RhcnQgdGltZSB0byBlYXJsaWVyIGluIHRoZSBpbml0aWFsaXNhdGlvbiBzZXF1ZW5jZQogICAgICAgKHNvIHRoYXQgaXQgY2FuIGJlIG92ZXJyaWRkZW4gaW4gc3ViYWdlbnRzIHdpdGggdGhlIG1hc3RlcidzIHZhbHVlKQogICAKMTk5OS0wOS0yOSAxMTo0MyAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSk6IFByb3Zpc2lvbiB0byB1bnJlZ2lzdGVyIE1JQnMgYnkgc2Vzc2lvbgogICAKMTk5OS0wOS0yOSAxMTozOCAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOgogICAgIC0gJ0NoaWxkcmVuJyBub2RlcyBub3cgaGF2ZSBhIGRpZmZlcmVudCBzdGF0dXMsIGFuZCBzaG91bGRuJ3QgYmUgZnJlZWQuIE9vcHMhCiAgIAoxOTk5LTA5LTI5IDExOjM2ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5Lmg6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdKToKICAgICAtIEltcHJvdmUgcmVnaXN0cnkgZXJyb3IgaGFuZGxpbmcKICAgICAtIENvcnJlY3RseSBoYW5kbGUgdW5yZWdpc3RlcmluZyBNSUIgcmVnaW9ucwogICAKMTk5OS0wOS0yOSAxMToyMyAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBDb3JyZWN0IHZhbHVlIG9mIGRlZmF1bHQgcmVnaXN0cmF0aW9uIHByaW9yaXR5CiAgIAoxOTk5LTA5LTI5IDExOjE3ICBkYXZlcwoKICAgKiBzbm1wbGliLzogbXRfc3VwcG9ydC5oLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oCjoKCiAgIC0gKG10X3N1cHBvcnQuaCBzbm1wX2FwaS5bY2hdKTogU3VwcG9ydCBmb3Igc2Vzc2lvbiBhbmQgaW5jb21pbmcgdHJhbnNhY3Rpb24gSURzCiAgIAoxOTk5LTA5LTI5IDExOjE0ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBwcm90ZWN0IHNubXBfY2xvc2UoKSBhZ2FpbnN0IGEgbnVsbCBTZXNzaW9ucyBsaXN0CiAgIAoxOTk5LTA5LTI4IDE2OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJfbW9kdWxlcy5jLCBtaWJfbW9kdWxlcy5oCiwgc25tcF92YXJzLmMsIHNubXBkLmM6CgogICAtIChNYWtlZmlsZS5pbiwgbWliX21vZHVsZXMuYywgbWliX21vZHVsZXMuaCwgc25tcF92YXJzLmMsIHNubXBkLmMpOgogICAgIC0gbWFrZSBsaWJ1Y2RhZ2VudCBhbmQgbGlidWNkbWlicyBhcyBzZXBlcmF0ZSBsaWJyYXJpZXMuICBJbiB0aGVvcnksCiAgICAgICB5b3Ugc2hvdWxkbid0IG5lZWQgbGlidWNkbWlicyB0byB1c2UgbGlidWNkYWdlbnQuCiAgIAoxOTk5LTA5LTI3IDE2OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogT3BwczogRFNfTElCX0RPTlRfUkVBRF9DT05GSUdTIG5lZWRlZCBhbiAhLgogICAKMTk5OS0wOS0yMiAxMjo1MSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLShzbm1wX2FwaS5jKSAtIEltcHJvdmVkIGVycm9yIHN0YXR1cyBhZ2dyZWdhdGlvbi4KICAgCjE5OTktMDktMjIgMTA6MDEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAobWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBJbXByb3ZlZCBBZ2VudFggcmVzcG9uc2UgaGFuZGxpbmcKICAgCjE5OTktMDktMjIgMTA6MDAgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jKTogRW5zdXJlIHJlZ2lzdHJ5IGlzIGluaXRpYWxpc2VkIGNvcnJlY3RseSBvbiBzdWJhZ2VudHMKICAgCjE5OTktMDktMjIgMDk6NTggIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jKTogcmVtb3ZlIHJlZHVuZGFudCByb3V0aW5lcwogICAKMTk5OS0wOS0yMiAwOTo1NCAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX3ZhcnMuYywKICAgdmFyX3N0cnVjdC5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuYyB2YXJfc3RydWN0LmgpOgogICAgIENoYW5nZSB0aGUgd2F5IHRoZSBNSUIgcmVnaXN0cnkgaGFuZGxlcyByZWdpc3RlcmVkIHJhbmdlcy4KICAgICBUaGlzIHNob3VsZCB3b3JrIG1vcmUgcmVsaWFibHkgKGFzIHdlbGwgYXMgYmVpbmcgcmF0aGVyIHNpbXBsZXIsIElNSE8pCiAgIAoxOTk5LTA5LTIyIDA5OjM1ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAtIChhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOgogICAgIC0gRW5zdXJlIGxvY2FsIHN5c09SVGFibGUgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHN1YmFnZW50IHZlcnNpb25zCiAgIAoxOTk5LTA5LTIyIDA5OjMzICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5Lmg6CgogICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5bY2hdKTogUHJvdmlkZSBtZXRob2QgZm9yIHByaW9yaXRpc2VkIHJlZ2lzdHJhdGlvbgogICAKMTk5OS0wOS0yMiAwOTozMSAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMpOiBzdHVwaWQgdHlwbwogICAKMTk5OS0wOS0yMiAwOToyNyAgZGF2ZXMKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpOiBzdHVwaWQgdHlwbwogICAKMTk5OS0wOS0yMSAxMDo0MCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0obWliLmMpIHVuZG8gZXJyb25lb3VzIGNoYW5nZSB0byBpbml0X21pYiAodGhhbmtzIE5CISkKICAgCjE5OTktMDktMjEgMDk6MzIgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgc25tcGQuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgc25tcGQuYyk6IFNpbXBsZSBydW4tdGltZSBkdW1wIG9mIHJlZ2lzdGVyZWQgTUlCcwogICAKMTk5OS0wOS0yMSAwOToyNSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYyk6IEhhbmRsZSBwYXJzaW5nIG51bGwtbGVuZ3RoIHZhcmlhYmxlcwogICAKMTk5OS0wOS0yMSAwOToyMSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogaGFuZGxlIGFkZGluZyAnZXJyb3InIHR5cGUgdmFyaWFibGVzIHRvIGEgUERVCiAgIAoxOTk5LTA5LTE3IDE1OjM3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpOiB1cGRhdGUgdG8gMi4xMy4KICAgCjE5OTktMDktMTcgMTE6NDIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIG1ha2UgbW9kdWxlX21hcCogYW5kIHRva2VucyBzdHJ1Y3R1cmVzIHN0YXRpYyAob25seSB1c2VkIGluIHBhcnNlLmMgPykKICAgCjE5OTktMDktMTcgMTE6MjQgIG1zbGlmY2FrCgogICAqIEZBUSwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmg6CgogICAtcmVtb3ZlIG9sZC1zdHlsZSBpbml0IGZvciByZXBsYWNlIG1pYiBmZWF0dXJlLgogICAKMTk5OS0wOS0xNyAxMToxOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLShwYXJzZS5jKSAtIHJlbW92ZSB1bm5lZWRlZCB1c2Ugb2Ygc3RhdGljIHZhciAibGFzdCIKICAgCjE5OTktMDktMTcgMDc6MTcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2FwaS4zOgoKICAgLSAoc25tcF9hcGkuMyk6IFBhdGNoIGZyb20gTWFyayBILiBXb29kOgogICAgIC0gZml4IGNvbW1lbnRzLgogICAKMTk5OS0wOS0xNiAxNDoxNiAgbXNsaWZjYWsKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBzbm1wbGliL210X3N1cHBvcnQuYywgc25tcGxpYi9tdF9zdXBwb3J0Lmg6CgogICAtcGVyIGFncmVlbWVudCB3aXRoIE1hcmtrdSwgbm8gc3VwcG9ydCBuZWVkZWQgZm9yIFNvbGFyaXMtc3BlY2lmaWMgdGhyZWFkcy4KICAgCjE5OTktMDktMTUgMTE6MzAgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9tdF9zdXBwb3J0LmMsCiAgIHNubXBsaWIvbXRfc3VwcG9ydC5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmaW5lIHR1bmluZyBtdCBzdXBwb3J0CiAgIAoxOTk5LTA5LTE1IDA5OjQ1ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcF9jbG9zZS4zLCBzbm1wX2ZyZWVfcGR1LjMKLCBzbm1wX29wZW4uMywgc25tcF9yZWFkLjMsIHNubXBfc2VsZWN0X2luZm8uMwosIHNubXBfc2VuZC4zLCBzbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLAogICBzbm1wX3Nlc3NfY2xvc2UuMywgc25tcF9zZXNzX2Vycm9yLjMsIHNubXBfc2Vzc19pbml0LjMKLCBzbm1wX3Nlc3Nfb3Blbi4zLCBzbm1wX3Nlc3NfcmVhZC4zLAogICBzbm1wX3Nlc3Nfc2VsZWN0X2luZm8uMywgc25tcF9zZXNzX3NlbmQuMywKICAgc25tcF9zZXNzX3Nlc3NfdGltZW91dC4zLCBzbm1wX3Nlc3Nfc2Vzc2lvbi4zLAogICBzbm1wX3RpbWVvdXQuMzoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX2Nsb3NlLjMsIHNubXBfZnJlZV9wZHUuMywgc25tcF9vcGVuLjMsCiAgICAgc25tcF9yZWFkLjMsIHNubXBfc2VsZWN0X2luZm8uMywgc25tcF9zZW5kLjMsCiAgICAgc25tcF9zZXNzX2FzeW5jX3NlbmQuMywgc25tcF9zZXNzX2Nsb3NlLjMsIHNubXBfc2Vzc19lcnJvci4zLAogICAgIHNubXBfc2Vzc19pbml0LjMsIHNubXBfc2Vzc19vcGVuLjMsIHNubXBfc2Vzc19yZWFkLjMsCiAgICAgc25tcF9zZXNzX3NlbGVjdF9pbmZvLjMsIHNubXBfc2Vzc19zZW5kLjMsIHNubXBfc2Vzc19zZXNzX3RpbWVvdXQuMywKICAgICBzbm1wX3Nlc3Nfc2Vzc2lvbi4zLCBzbm1wX3RpbWVvdXQuMyk6IFBhdGNoIGZyb20gTWFyayBILiBXb29kOgogICAgIC0gY3JlYXRlIHNvbWUgZmFrZSBzb3VyY2luZyBtYW4gcGFnZXMgZm9yIGZ1bmN0aW9ucy4KICAgCjE5OTktMDktMTUgMDY6MDggIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICBpbmNsdWRlIG1pYmdyb3VwL21pYl9tb2R1bGVfaW5jbHVkZXMuaCBmb3IgYmVuZWZpdCBvZiBtaWJfbW9kdWxlX2RvdF9jb25mLmgKICAgCjE5OTktMDktMTQgMTM6MjIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIHBhcnNlLmMgLSBhbm90aGVyIGZpeCBmb3Igbm9kZTogY29uc2lkZXIgTlVMTCBuYW1lIG9yIE5VTEwgcGFyZW50CiAgIAoxOTk5LTA5LTE0IDEzOjAwICBtYXJ6CgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX2FwaS5bY2hdKTogZml4IHNwdXJpb3VzIGVycm9yIG1lc3NhZ2Ugd2hlbiBzbm1wX3BhcnNlX29pZCBmYWlscwogICAKMTk5OS0wOS0xNCAwOTo1MyAgbXNsaWZjYWsKCiAgICogRkFRLCBtYW4vc25tcGNtZC4xLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgKOgoKICAgLShGQVEsIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvcGFyc2UuKikgYWRkIHJlcGxhY2UgTUlCIGNhcGFiaWxpdHkoZXhwZXJpbWVudGFsKQogICAKMTk5OS0wOS0xMyAyMDoyMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLShzbm1wX2FwaS5jKSByZS1hc3NlcnQgTmllbHMnIHBhdGNoIHRvIHNubXBfc2VuZCB0byBmcmVlIHYyL3YxIFRyYXAtUERVcwogICAKMTk5OS0wOS0xMyAxNTowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwgc25tcF9hZ2VudC5jCiwgc25tcF92YXJzLmMsIHNubXBkLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaCwKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwosIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oOgoKICAgLSAoYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsCiAgICAgYWdlbnRfcmVnaXN0cnkuaCwgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywgc3ViYWdlbnQuYywKICAgICBzdWJhZ2VudC5oLCBzeXNPUlRhYmxlLmMsIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCk6CiAgICAgLSBmdXJ0aGVyIHNlcGFyYXRpb24gb2YgYWdlbnQgY2h1cmNoIGFuZCBzdGF0ZToKICAgICAgIC0gdXNlIGNhbGxiYWNrcyBldmVyeXdoZXJlIG5lZWRlZCB0byBub3QgY2FsbCBtaWIgbW9kdWxlIGNvZGUgZGlyZWN0bHkuCiAgICAgICAtIGdldCByaWQgb2YgYWxsIGluc3RhbmNlcyBvZiBVU0lOR18gaW4gbGliYWdlbnQgY29kZS4KICAgCjE5OTktMDktMTIgMjI6MDAgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSBzbm1wX2ltcGwuaDogcmVtb3ZlZCBzb21lIHVudXNlZC91bm5lZWRlZCBkZWZpbmVzL3N0cnVjdHMKICAgCjE5OTktMDktMTIgMjE6NTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gcHJvdG9jb2wuYzogYWRkIGEgbWlzc2luZyBpbmNsdWRlIGZpbGUuCiAgIAoxOTk5LTA5LTEyIDIxOjU4ICBuYmEKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIC0gVEVTVENPTkYuc2g6IGZpeCBzb21lIGV4cG9ydHMgdG8gZXhwb3J0IHRoZSByaWdodCB2YXJpYWJsZS4KICAgCjE5OTktMDktMTIgMjE6NTcgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIGFnZW50LyosIHNubXBsaWIvKjogbWFsbG9jIGZpeGVzLCBzb21lIHByb3Zva2VkIGJ5IHRoZSBjb3JyZWN0ZWQKICAgCXNubXBfc2VuZCBzZW1hbnRpY3MuCiAgIAoxOTk5LTA5LTEyIDIxOjUwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAtIHZhcl9yb3V0ZS5jOiBMaW51eCBjbGVhbnVwLiBSZXF1aXJlZCBmb3IgTGludXgvU1BBUkMKICAgCjE5OTktMDktMDkgMTM6NTkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYzoKCiAgIC0obWliLmMsIHBhcnNlLmMpIG1pYi5jIHByaW50X3RyZWVfbm9kZSB0ZXN0IGRpc3BsYXkgbnVsbCB0eXBlIHdpdGggcmFuZ2UKICAgICAgICAgICAgICAgICAgICAgcGFyc2UuYyB3b3JrIGFyb3VuZCBjb3JlIGR1bXAgZnJlZWluZyBUQ3MgdGhhdCBzcGVjaWZ5IHJhbmdlcy4KICAgCjE5OTktMDktMDkgMDI6MzEgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgd2luMzIvY29uZmlnLmg6CgogICAtKCpjb25maWcqKSB0dXJuIG9uIHJlc291cmNlIGxvY2tpbmcgd2l0aCAtLWVuYWJsZS1yZWVudHJhbnQuCiAgIAoxOTk5LTA5LTA5IDAyOjIxICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYzoKCiAgIC0od2luc3R1Yi5jKSBIYWNrIHRvIGFsbG93IHNubXBuZXRzdGF0IC1hIHRvIHdvcmsgb24gQUlYNCAoc2ljKS4KICAgCjE5OTktMDktMDggMjI6MzQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYmluY2wuaDoKCiAgIC0obWliaW5jbC5oKSBjb21tZW50IG91dCBkdXBsaWNhdGUgI2luY2x1ZGUgaGVhZGVyIGxpbmVzLgogICAKMTk5OS0wOS0wOCAyMjozMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtKHNtdXguYykgdmFyX3NtdXhfd3JpdGUgZml4ZWQgcGVyIE1pa2UgTWljaGF1ZCBhbmQgTmljayBBbWF0bwogICAKMTk5OS0wOS0wOCAxNzo1MiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG10X3N1cHBvcnQuYywgbXRfc3VwcG9ydC5oOgoKICAgLShtdF9zdXBwb3J0LiopIE9yaWdpbmFsIGJ5IE1hcmtrdSBMYXVra2FuZW4sIGNoYW5nZXMgYnkgTS4gU2xpZmNhawogICAKMTk5OS0wOS0wOCAxNzo0OCAgbXNsaWZjYWsKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9zbm1wX2FwaS5jLAogICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIC0oY29uZmlnKix3aW4zMi8qLHNubXBsaWIvKikgcmVzb3VyY2UgbG9ja2luZyBvcmlnaW5hbGx5IGZyb20gTWFya2t1IExhdWtrYW5lbgogICAKMTk5OS0wOS0wOCAxNzowMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJpbmNsLmgsIG1pYklJL2ljbXAuYywKICAgbWliSUkvaW50ZXJmYWNlcy5jLCBtaWJJSS9pcC5jLCBtaWJJSS90Y3AuYywKICAgbWliSUkvdWRwLmM6CgogICBtaWJpbmNsLmgsIG1pYmdyb3VwL21pYklJLyogLSBmaXh1cCBmb3IgQ3lnV2luMzIgYnVpbGQKICAgCjE5OTktMDktMDggMTM6MDQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2NsaWVudC5jLCBzbm1wX2NsaWVudC5oOgoKICAgLShzbm1wbGliL3NubXBfY2xpZW50LiopIGFkZCBzbm1wX3NwbGl0X3BkdSwgc25tcF92YXJiaW5kX2xlbiBtZXRob2RzLgogICAKMTk5OS0wOS0wOCAxMzowMCAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIC0odGVzdGluZy9SVU5URVNUUykgcHJlZml4IFBBVEggd2l0aCAuIGFuZCAuLiAsIGFzIHRoZSBzY3JpcHQgY2hhbmdlcyBkaXIuCiAgIAoxOTk5LTA5LTA4IDA3OjUyICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gYXBwcy9zbm1wdHJhcGQuYzogZml4IGFyZ3VtZW50IHByb2Nlc3NpbmcgKC1sZCBhbmQgc2ltaWxhcikKICAgCjE5OTktMDktMDggMDc6NTEgIG5iYQoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICAtIHNubXBkLjEuZGVmOiBmaXggYSBmb3JtYXR0aW5nIHByb2JsZW0KICAgCjE5OTktMDktMDggMDc6NTAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYmluY2wuaCwgYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywgYWdlbnR4L3N1YmFnZW50LmMsCiAgIG1pYklJL3N5c09SVGFibGUuYzoKCiAgIC0gKHZhcmlvdXMpOiBmaXggY29tcGlsZXIgd2FybmluZ3MKICAgCjE5OTktMDktMDggMDc6NDggIG5iYQoKICAgKiBhZ2VudC92YXJfc3RydWN0Lmg6CgogICAtIHZhcl9zdHJ1Y3QuaDogdGhlIEFnZW50eCBjb2RlIHVzZXMgdW5zaWduZWQgdmFsdWVzIGZvciB0aGUgdmFyaWFibGUgdHlwZS4KICAgCjE5OTktMDktMDggMDc6NDYgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIHNubXBfYXBpLmg6IG1vdmUgaW5jbHVzaW9uIHByb3RlY3Rpb24gdG8gdGhlIHJlYWwgYmVnaW5uaW5nL2VuZCBvZiB0aGUgZmlsZQogICAKMTk5OS0wOS0wOCAwNzo0NSAgbmJhCgogICAqIGNvbmZpZ3VyZSwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgLSAoY29uZmlndXJlLmluLCBsb2FkYXZlLmMpOiBTb2xhcmlzIDIuNyBoYXMgZ2V0bG9hZGF2ZyBwcm90b3R5cGUKICAgCjE5OTktMDktMDggMDU6MTYgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGluY2x1ZGUgcmVhZF9jb25maWcuaAogICAKMTk5OS0wOS0wNyAyMDoxOSAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgc25tcHRyYXAuYyAtIHJld29yayBmaXggYnVnICM1NCAobWlzc2VkIGVsc2UpLgogICAKMTk5OS0wOS0wNyAyMDoxMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgbWFuL3NubXBfYXBpLjMsCiAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0oYWdlbnRfdHJhcC5jLHNubXB0cmFwLmMsc25tcF9hcGkuWzNjXSkgLSBzbm1wX2ZyZWVfcGR1IGZpeCBCdWcgIzU0IHBlciBOaWVscyBCLgogICAtKHNubXBuZXRzdGF0L2lmLmMpIC0gZml4IGZvciBHRVRORVhUIHBlciBOaWVscyBCLgogICAKMTk5OS0wOS0wNyAxNTo1NyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLShwYXJzZS5jKSBmaXggVW5saW5rZWQgT0lEIHByaW50IHdoZW4gb2JqZWN0IGlkZW50aWZpZXIgaGFzIG5vIHBhcmVudC4KICAgCjE5OTktMDktMDcgMTU6MzIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0ocGFyc2UuYykgcmVtb3ZlIHVubmVlZGVkIHN0cmR1cCB0byBGaWxlIHZhcmlhYmxlIGZyb20gaW5pdF9taWJfaW50ZXJuYWxzLgogICAKMTk5OS0wOS0wNyAxNTozMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLShzbm1wX2FwaS5oKSBzdHJ1Y3QgcGR1IGFuZCBzbm1wX3Nlc3Npb24gYWdyZWU6IGxvbmcgdHlwZSBmb3IgdmVyc2lvbiBtZW1iZXIuCiAgIAoxOTk5LTA5LTA3IDE1OjIzICBtc2xpZmNhawoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgICh3aW4zMi9jb25maWcuaCkgLSBzZXQgU05NUENPTkZQQVRIIHRvIHN1Y2NlZWQgY29tcGlsZTsKICAgKHdpbjMyKmxpYnNubXAuZGVmKSAtIGFkZCBuZXcgc25tcF9nZXRfdG9rZW4gdG8gbGlzdC4KICAgCjE5OTktMDktMDcgMTU6MjMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaDoKCiAgIChkZWZhdWx0X3N0b3JlLiopIC0gbWFrZSAzcmQgcGFyYW0gdG8gZHNfc2V0X3N0cmluZyB0eXBlIG9mIGNvbnN0IGNoYXIgKi4KICAgCjE5OTktMDktMDcgMTU6MjIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBzbm1wdjMuYyAtIHNpbGVuY2UgdHlwZSB3YXJuaW5nIGZyb20gTVNWQysrLgogICAKMTk5OS0wOS0wNyAxNDo0NyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmg6CgogICAtKHBhcnNlLiopIGZpeCBzbWFsbCBtZW1vcnkgbGVha3M7IGFsbG93IElOREVYe0lOVEVHRVIuLi59IGNsYXVzZXM7CiAgICAgICAgICAgICAgYWxsb3cgbGFyZ2VyIERFU0NSSVBUSU9OIGNsYXVzZXMgW21heCA4MTkyXS4KICAgCjE5OTktMDktMDMgMTU6MDEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IG1vcmUgQlNESSBzeXN0ZW0gdmVyc2lvbnMgbGlzdGVkLgogICAKMTk5OS0wOS0wMyAxNDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IGRvbid0IGZhbGwgb2ZmIHRoZSBlbmQgb2YgdGhlIHNlYXJjaCB0cmVlLgogICAKMTk5OS0wOS0wMyAxMzozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKHNubXBsaWIvTWFrZWZpbGUuaW4pOiBpbnN0YWxsIG1vcmUgbGlicmFyeSBoZWFkZXJzLgogICAKMTk5OS0wOS0wMyAxMzoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6CiAgICAgLSBpbnN0YWxsIGxpYmFnZW50LmEuCiAgICAgLSBta2RpcmhlaXIgb24gbmVlZGVkIG5ldyBpbnN0YWxsYXRpb24gZGlyZWN0b3JpZXMuCiAgIAoxOTk5LTA5LTAzIDEzOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBhZ2VudCBoZWFkZXIgZmlsZXMuCiAgIAoxOTk5LTA5LTAzIDEzOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGhpc3RvcnkuYywgaGlzdG9yeS5oLCBzbm1wX3ZhcnMubGludXguaAo6CgogICAtIChoaXN0b3J5LmMsIGhpc3RvcnkuaCwgc25tcF92YXJzLmxpbnV4LmgpOiByZW1vdmVkLiBObyBsb25nZXIgbmVlZGVkLgogICAKMTk5OS0wOS0wMiAwODo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChzdWJhZ2VudC5jKTogb3Bwcy4gIEZvcmdvdCBhIHNodXRkb3duIG5hbWUgY2hhbmdlIGluc3RhbmNlLgogICAKMTk5OS0wOS0wMiAwNzowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChzdWJhZ2VudC5jKTogc2h1dGRvd25fc3ViYWdlbnQgLT4gc3ViYWdlbnRfc2h1dGRvd24gc28gY29uZmlndXJlCiAgICAgZG9lc24ndCBmaW5kIGl0LgogICAKMTk5OS0wOS0wMiAwNjozOCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmM6CgogICAtIChhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYyk6IEZpeCBNSUIgbG9jYXRpb24gb2YgaXBmd2FjYyBtb2R1bGUKICAgCjE5OTktMDgtMzEgMDk6MjYgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0oYWdlbnRfdHJhcC5jKSBhbHdheXMgZnJlZSBQRFUgYWZ0ZXIgc25tcF9zZW5kLgogICAKMTk5OS0wOC0zMSAwODoxNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLShhZ2VudF90cmFwLmMpIGZpeCByZWNlbnQgbWVtb3J5IGxlYWssIGFuZCBzaXplb2Yob2JqaWRfc25tcHRyYXApIGJ1Zy4KICAgCjE5OTktMDgtMzAgMTA6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBtYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAobWFzdGVyLmMsIG1hc3Rlcl9yZXF1ZXN0LmMpOiB5ZXQgbW9yZSBkZWJ1Z2dpbmcuCiAgIAoxOTk5LTA4LTMwIDA5OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYywgbWFzdGVyLmMsCiAgIG1hc3Rlcl9yZXF1ZXN0LmMsIHByb3RvY29sLmMsIHN1YmFnZW50LmM6CgogICAtIChjbGllbnQuYywgbWFzdGVyLmMsIG1hc3Rlcl9yZXF1ZXN0LmMsIHByb3RvY29sLmMsIHN1YmFnZW50LmMpOgogICAgIC0gZGVidWdnaW5nIHN0YXRlbWVudHMuCiAgICAgLSB1c2UgbmV3IGRlZmF1bHRfc3RvcmUgc2V0dGluZ3MgaW5zdGVhZCBvZiBleHRlcm5hbCB2YXJpYWJsZXMuCiAgIAoxOTk5LTA4LTMwIDA5OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLAogICBhZ2VudC9hZ2VudF90cmFwLmgsIGFnZW50L2RzX2FnZW50LmgsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9hZ2VudC5oLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfdHJhcC5jLAogICAgIGFnZW50X3RyYXAuaCwgZHNfYWdlbnQuaCwgc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsIHNubXBfdmFycy5jLAogICAgIHNubXBkLmMsIHV0aWxfZnVuY3MuYywgc3lzT1JUYWJsZS5jLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oLAogICAgIGRlZmF1bHRfc3RvcmUuaCwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6CiAgICAgLSByZXN0cnVjdHVyZSB0aGUgYWdlbnQgaW50byB0d28gcGllY2VzOiBhIGxpYnJhcnkgYW5kIGEgYXBwbGljYXRpb24uCiAgICAgICAtIG5lZWRzIG11Y2ggbW9yZSB3b3JrLgogICAgICAgLSBtYW55IHBhcmFtZXRlcnMgYXJlIG5vdyBjb250cm9sbGVkIGJ5IG5ldyBkZWZhdWx0X3N0b3JlIHNldHRpbmdzCiAgICAgICAgIHRvIGhlbHAgcmVsaWV2ZSBjb21waWxlIHRpbWUgYmluZGluZ3MuCiAgICAgLSBtZXJnZSBpbml0X3NubXAgYW5kIHRoZSBjdXN0b20gdmVyc2lvbiBjYWxsZWQgaW5zaWRlIHRoZSBhZ2VudC4KICAgICAtIGFkZCBhIG5ldyBwbGFjZSBmb3IgdHJhcCBzcGVjaWZpYyBhZ2VudCBjb2RlIChhZ2VudF90cmFwLltjaF0pLgogICAgIC0gcHJvYmFibHkgb3RoZXIgdGhpbmdzIEkndmUgZm9yZ290dGVuIHRoYXQgSSBkaWQuCiAgIAoxOTk5LTA4LTI4IDA3OjI5ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcmVhZF9jb25maWcuYyk6CiAgICAgLSBhZGQgL2V0Yy9zbm1wIHRvIGRlZmF1bHQgY29uZiBmaWxlIHBhdGggdG8gbWFrZSBSZWRIYXQgaGFwcHkuCiAgIAoxOTk5LTA4LTI4IDA3OjE5ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgc25tcF9hbGFybS4zLgogICAKMTk5OS0wOC0yNyAwOToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYwosIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywKICAgdmFyX3JvdXRlLmM6CgogICAtIChpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgcm91dGVfd3JpdGUuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6CiAgICAgLSBTdXNhbm5lIE9zdGVkIHBvaW50ZWQgb3V0IGEgbGFjayBvZiAjaWYgSEFWRV9TWVNfUEFSQU1fSC4KICAgCjE5OTktMDgtMjcgMDg6MDMgIG1zbGlmY2FrCgogICAqIFRPRE86CgogICBIb3dhcmQgU3BpbmRlbCBzdWdnZXN0cyBhbiBBUEkgZm9yIHRyYXBzIHdpdGggcGFzc19wZXJzaXN0LgogICAKMTk5OS0wOC0yNyAwNzozNSAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbjoKCiAgIC0oY29uZmlndXJlKiwgc2Vkc2NyaXB0KikgY2hhbmdlIC4uLkVYVEVOSVMuLi4gIHRvIC4uLkVYVEVOU0kuLi4KICAgCjE5OTktMDgtMjYgMTM6NDAgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtKHRlc3RpbmcvTWFrZWZpbGUuaW4pIGRvbid0IGJ1aWx0IHRhcmdldHMgdGhhdCBhcmUgbm8gbG9uZ2VyIHVzZWQKICAgCjE5OTktMDgtMjYgMTM6MTggIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICAtKHRlc3RpbmcvUlVOVEVTVFMpIGltcHJvdmVkIFBBVEggc2V0CiAgIAoxOTk5LTA4LTI0IDE3OjQzICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSh0ZXN0aW5nL01ha2VmaWxlLmluKSBubyBuZWVkIHRvIGJ1aWxkIHRhcmdldHMgaW4gdGVzdCBydWxlLgogICAKMTk5OS0wOC0yNCAxNzozOSAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIC0oUlVOVEVTVFMpIGV4cG9ydCBQQVRIIGJlZm9yZSB1c2UKICAgCjE5OTktMDgtMjQgMTc6MTQgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBGQVEKLCBSRUFETUU6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC4xICkKICAgCjE5OTktMDgtMjQgMTc6MTMgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZSBmb3IgNC4wLjEKICAgCjE5OTktMDgtMjQgMTY6NDkgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvOiBNYWtlZmlsZS5pbiwgUlVOVEVTVFMsIFQyLnNoLAogICBURVNUQ09ORi5zaCwgZXZhbF9vbmVzY3JpcHQuc2gsIGV2YWxfdG9vbHMuc2gsCiAgIHRlc3Rfa2V5Y2hhbmdlLnNoLCB0ZXN0X2t1bC5zaDoKCiAgIC0odGVzdGluZy8qKSBydW4gdGVzdHMgd2hlbiBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQsIGFuZCB3aGVuCiAgIHRoZSBidWlsZCB0cmVlIGlzIG5vdCB0aGUgc2FtZSBhcyB0aGUgc291cmNlIHRyZWUuCiAgIAoxOTk5LTA4LTI0IDE2OjA1ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0oY29uZmlndXJlLiopIG1vdmUgc3RhdGVtZW50IGFib3V0IHVjZERlbW9QdWJsaWMgaW50byBjb21tZW50IGZpZWxkLgogICAKMTk5OS0wOC0yNCAxNjowMSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiA0LjAuMSB1cGRhdGUKICAgCjE5OTktMDgtMjQgMTU6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiByZW1vdmUgdmVyc2lvbiBzZXR0aW5nIGluIHNubXBfYXBpLmMuICBOb3QgbmVlZGVkIHRoZXJlLgogICAKMTk5OS0wOC0yNCAxNToxNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtKHNtdXguYykgYXBwbHkgTmljayBBbWF0bydzIHBhdGNoOiBwcmV2ZW50IFNNVVggY2xvc2Ugb24gcGFyc2Ugb3IgZXJyb3IuCiAgIAoxOTk5LTA4LTI0IDE0OjE3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfc3dydW4uYywgbWliSUkvaWNtcC5jLAogICBtaWJJSS9pcC5jLCB1Y2Qtc25tcC9kaXNrLmMsIHVjZC1zbm1wL3Byb2MuYzoKCiAgIC0oaG9zdC9ocl9zd3J1bjttaWJJSS9pY21wLGlwO3VjZC1zbm1wL2Rpc2sscHJvYykgbG9nX3BlcnJvciAtLT4gc25tcF9sb2dfcGVycm9yCiAgIAoxOTk5LTA4LTI0IDE0OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FsbF9zeXN0ZW0uaDoKCiAgIC0gKGFsbF9zeXN0ZW0uaCk6IHJlbW92ZS4gIGFnYWluLgogICAKMTk5OS0wOC0yNCAxNDowNSAgbXNsaWZjYWsKCiAgICogTWFrZWZpbGUuaW46CgogICAtKHRvcC9NYWtlZmlsZS5pbikgLSByZW1vdmUgbW9yZSBnZW5lcmF0ZWQgZmlsZXMgd2l0aCBkaXN0Y2xlYW4gcnVsZS4KICAgCjE5OTktMDgtMjQgMTM6NDEgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogcmVtb3ZlIHNubXB2MyBzdXBwb3J0Oi0pCiAgIAoxOTk5LTA4LTI0IDEzOjM3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYywgc25tcHYzLmMpOgogICAgIC0gcHJvdmlkZSBkZWZWZXJzaW9uIHRva2VuIHN1cHBvcnQgaW4gc25tcC5jb25mIChzb3J0IG9mIGhhY2tpc2gpLgogICAKMTk5OS0wOC0yNCAxMzozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOiBjaGVjayBmb3IgbnVsbCByZXNwb25zZSBwb2ludGVyLgogICAKMTk5OS0wOC0yNCAxMjo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtICh2YWNtX3ZhcnMuYyk6IGNvcnJlY3Qgc3lzT1JUYWJsZSBlbnRyeS4KICAgCjE5OTktMDgtMjQgMTA6MjUgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0odGVzdGluZy9ldmFsX3Rvb2xzKSAtIGxldCBzb21lIChBSVgpIGFnZW50cyBzZXR0bGUgYmVmb3JlIGZpcmluZyByZXF1ZXN0cy4KICAgCjE5OTktMDgtMjQgMDY6MTkgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvOiBSVU5URVNUUywgVC5jLCBldGltZXRlc3QuYywKICAga2V5bWFuYWdldGVzdC5jLCBtaXNjdGVzdC5jLCBzY2FwaXRlc3QuYzoKCiAgIEFkZCAiLiIgdG8gUEFUSCBmb3IgUlVOVEVTVFM7IERyb3Agb3B0cmVzZXQgdG8gYnVpbGQgbW9zdCBwbGF0Zm9ybXMKICAgCjE5OTktMDgtMjQgMDU6MTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlbW92ZSBBU05fU0hPUlRfTEVOIGhhY2sgLSBrbm93biB0byBkdW1wIGNvcmUgaW4gYWdlbnQuCiAgIAoxOTk5LTA4LTI0IDA0OjQ0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywKICAgc25tcF9sb2dnaW5nLmM6CgogICBDbGVhbiBDUnMgZnJvbSByZWFkX2NvbmZpZyxzbm1wX2xvZ2dpbmc7IGNvbW1lbnQgZGVmaW5lIFVTRV9BU05fU0hPUlRfTEVOLgogICAKMTk5OS0wOC0yMyAxNjo0NCAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHRoZSBzbm1wdXNtLjEgbWFudWFsIHBhZ2UuCiAgIAoxOTk5LTA4LTIzIDE2OjE5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oCiwgRkFROgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAgKQogICAKMTk5OS0wOC0yMyAxNjoxNyAgaGFyZGFrZXIKCiAgICogSU5TVEFMTDoKCiAgIC0gKElOU1RBTEwpOiByZW1vdmUgdmVyc2lvbiBzcGVjaWZpYyBpbmZvcm1hdGlvbgogICAKMTk5OS0wOC0yMyAxNjoxMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDI4c25tcHYzZ2V0ZmFpbDoKCiAgIC0gKFQwMjhzbm1wdjNnZXRmYWlsKTogc25tcHYzIGdldCBmYWlsdXJlIHRlc3QuCiAgIAoxOTk5LTA4LTIzIDE2OjA0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiB2ZXJzaW9uIHVwZGF0ZQogICAKMTk5OS0wOC0yMyAxNTozMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgSEFDSyEgZml4dXAgc2hvcnQgbGVuZ3RoIChmaXJzdCBwdXQgY29ycmVjdCBjb21tdW5pdHkgc3RyaW5nIGluIHBkdS0+ICkuCiAgIAoxOTk5LTA4LTIzIDE0OjAyICBtc2xpZmNhawoKICAgKiBGQVEsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIERlc2NyaWJlIFVTRV9BU05fU0hPUlRfTEVOIGluIEZBUSwgYW5kIGltcGxlbWVudCBpbiBfc25tcF9idWlsZC4KICAgCjE5OTktMDgtMjMgMTM6NTQgIG5iYQoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcGQuYzoKCiAgIC0gYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcF92YXJzLmM6IG1vdmUgc29tZSAtdiBsb2dnaW5nIHRvIGEgbW9yZSByYXRpb25hbAogICAJcGxhY2UuCiAgIAoxOTk5LTA4LTIzIDEyOjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gKHByb3RvY29sLmMpOiBhbGxvdyBOVUxMIHN0cmluZ3MgaW4gYWdlbnRYIHBhY2tldHMuCiAgIAoxOTk5LTA4LTIzIDA5OjAyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIFRlc3QgcG9pbnRlciBiZWZvcmUgZGVyZWZlcmVuY2UgaW4gdXNtX2ZyZWVfdXNlcgogICAKMTk5OS0wOC0yMyAwOTowMiAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyOgoKICAgU3BlbGwgY2hlY2s6IHNpbWlsYXIKICAgCjE5OTktMDgtMjMgMDk6MDAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBXaW4zMiBidWlsZCBmaXhlcwogICAKMTk5OS0wOC0yMyAwNzowMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBhbnNpIG1lbnRpb25lZC4KICAgCjE5OTktMDgtMjMgMDY6MTQgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCB3aW4zMi9jb25maWcuaDoKCiAgIFJlbW92ZSBsYXN0IHZlc3RpZ2VzIG9mIGNvbmZpZ19sb2FkX21pYgogICAKMTk5OS0wOC0yMiAyMzoxNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jOiBmYWlsdXJlIHdoZW4gY2xvc2luZyBmaXJzdCBhZ2VudHMgc2Vzc2lvbgogICAJKHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUpLgogICAKMTk5OS0wOC0yMiAxNzo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IHZlcnNpb24gLT4gdV9sb25nLgogICAKMTk5OS0wOC0yMiAxNzo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTktMDgtMjIgMTc6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gLS13aXRob3V0LWR1bW15LXZhbHVlcyBpcyBkZWZhdWx0IGFnYWluLgogICAgIC0gY2xlYW51cCBvZiAtLWhlbHAgc3R1ZmYuCiAgICAgLSBmaXggb2YgcGVyaXN0ZW50IGRpcmVjdG9yeSBjcmVhdGlvbi4KICAgCjE5OTktMDgtMjIgMTc6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvOiBJUEZXQ0hBSU5TLU1JQi50eHQsIFJFQURNRQosIGlwZndjX2tlcm5lbF9oZWFkZXJzLmgsIGlwZndjaGFpbnMuYywKICAgaXBmd2NoYWlucy5oLCBsaWJpcGZ3Yy5jLCBsaWJpcGZ3Yy5oOgoKICAgLSAoaXBmY2hhaW5zKTogcmVtb3ZlZCBmcm9tIGRpc3RyaWJ1dGlvbi4gIE5ld2VyIG9uZSBpbiBmdHAncyBjb250cmliIGRpci4KICAgCjE5OTktMDgtMjAgMTc6MTAgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgKLCBGQVE6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU3ICkKICAgCjE5OTktMDgtMjAgMTc6MDggIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbGFzdCBtaW51dGUgY2hhbmdlcwogICAKMTk5OS0wOC0yMCAxNjozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgc25tcF9hcGkuaCwgc25tcF9hdXRoLmMsCiAgIHNubXBfaW1wbC5oOgoKICAgLSAoc25tcF9hcGkuaCwgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oLCBhc24xLmMpOiA2NGJpdCBjbGVhbnVwLgogICAKMTk5OS0wOC0yMCAxMzo1NiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIChzbm1wLmNvbmYuNS5kZWYsIGRlZmF1bHRfc3RvcmUuaCwgc25tcF9sb2dnaW5nLmMpOgogICAgIC0gdHVybiBvZmYgdGltZSBzdGFtcCBsb2dnaW5nIGJ5IGRlZmF1bHQuICBJdCBtdXN0IGJlIGV4cGxpY2l0bHkKICAgICAgIHJlcXVlc3RlZCBpbiB0aGUgc25tcC5jb25mIGZpbGUgdG8gdHVybiBpdCBvbi4KICAgICAgICh0aGUgcmVhc29uIGlzIHRoYXQgYSBsb3Qgb2YgbG9nZ2luZyBpcyBpbmNyZW1lbnRhbCBpbiBuYXR1cmUgYW5kCiAgICAgICBpcyBub3QgbGluZSBidWZmZXJlZCBiZWZvcmUgYmVpbmcgc2VudCB0byB0aGUgbG9nZ2luZyByb3V0aW5lcy4KICAgICAgIFRoZSBvdGhlciBzb2x1dGlvbiBpcyB0byBoYXZlIHRoZSBsb2dnaW5nIHJvdXRpbmVzIGRldGVjdCB3aGVuIHRvCiAgICAgICBwcmludCB0aW1lc3RhbXBzIGJ5IHdhdGNoaW5nIG91dCBmb3IgXG4ncy4gIEJ1dCwgbm90IHRoaXMgcm91bmQuCiAgIAoxOTk5LTA4LTIwIDEzOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jLAogICBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmg6CgogICAtIChkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMsIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaCk6CiAgICAgLSBtYWtlIGxvZ2dpbmcgb2YgdGltZXN0YW1wcyBvcHRpb25hbCBieSBhIHNubXAuY29uZiBkaXJlY3RpdmUuCiAgIAoxOTk5LTA4LTIwIDAzOjQzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oOgoKICAgLSBhZ2VudHgvKjogdmFyaW91cyBwcm90b3R5cGUgZml4ZXMsIHRvIGtlZXAgbnVtYmVyIG9mIHdhcm5pbmdzIGRvd24KICAgCjE5OTktMDgtMTkgMTY6MDkgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYzoKCiAgIC0gKHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jKTogUGF0Y2ggZnJvbSBkbGVuZ2VsQGhvbWUuY29tOgogICAgIC0gY2hlY2sgYXJndW1lbnQgY291bnQgZm9yIG1pbmltdW0gbnVtYmVyLgogICAKMTk5OS0wOC0xOSAxNDowOSAgbmJhCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSBzbm1wX2FwaS4/LCBzbm1wZC5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYzogcmVpbnN0YXRlIGFnZW50X2FkZHIgaW4KICAgCXRoZSBwZHUgc3RydWN0dXJlICh1c2VkIGZvciB2MSB0cmFwcykuCiAgIAoxOTk5LTA4LTE5IDEwOjQwICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gc25tcGQuYzogcmVtb3ZlIHNvbWUgc3VwZXJmbHVvdXM6IGZyb20gc25tcF9sb2dfcGVycm9yLgogICAJTG9nIHdoZW4gc25tcGQgcmVjb25maWd1cmVzIGZvbGxvd2luZyBhIFNJR0hVUAogICAKMTk5OS0wOC0xOSAxMDozOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSBzbXV4LmM6IHJlbW92ZSBzb21lIGV4dHJhbmVvdXMgXG4gZnJvbSBzbm1wX2xvZ19wZXJyb3IgY2FsbHMuCiAgIAoxOTk5LTA4LTE5IDEwOjM4ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBzbm1wX2FwaS5jOgljb3JyZWNseSBjYWxsIHByZS1wYXJzZSBob29rLCBhbHNvIHdoZW4gbm90IGRlYnVnZ2luZwogICAJKHRoaXMga2lsbGVkIHRoZSBsaWJ3cmFwIGNoZWNrIGluIHNubXBkKQogICAKMTk5OS0wOC0xOSAwMjozNSAgbmJhCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gc25tcF9sb2dnaW5nLmMsIGFnZW50L3ZhcmlvdXM6IHJlaW5zdGF0ZSAtYSBhbmQgLVYgbG9nZ2luZyAoYWxtb3N0KS4KICAgCXRpbWVzdGFtcCBmaWxlIGFuZCBzdGRlcnIgbG9nZ2luZy4KICAgCjE5OTktMDgtMTkgMDI6MzMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGludGVyZmFjZXMuYzogcmVtb3ZlIHNvbWUgbGVmdCBvdmVyIGRlYnVnIG91dHB1dAogICAKMTk5OS0wOC0xOCAwOTozMCAgbmJhCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQva2VybmVsLmMsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmgsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChtYW55KToJY2hhbmdlIHRoZSBuYW1lcyBvZiB0aGUgbG9nZ2luZyBmdW5jdGlvbnMgdG8gYmUgc25tcF8qCiAgIAlkZWZhdWx0IGRvX3N0ZGVycl9sb2dnaW5nIHRvIDEuCiAgIAoxOTk5LTA4LTE4IDA5OjI2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaDoKCiAgIC0gaW50ZXJmYWNlcy4/OiB1cGRhdGVzIGZvciBMaW51eCB0byBoYW5kbGUgbGFyZ2UgY291bnRlcnMgYW5kIHZpcnR1YWwKICAgCWludGVyZmFjZXMuCiAgIAoxOTk5LTA4LTE4IDAyOjUxICBuYmEKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oLAogICBzbm1wZC5jLCBtaWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgLSBzbm1wZC5jLCBhZ2VudF9yZWFkX2NvbmZpZy4/LCB2ZXJzaW9uaW5mby5jOiBtb3ZlIHRoZSByZWNvbmZpZ3VyYXRpb24KICAgCW91dHNpZGUgdGhlIHNpZ25hbCBoYW5kbGVyLgogICAKMTk5OS0wOC0xOCAwMjo0MCAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICBhZ2VudC9zbm1wZC5jOgltb3ZlIHRoZSB0ZXJtaW5hdGlvbiBwcm9jZXNzaW5nIGZyb20gdGhlIHNpZ25hbCBoYW5kbGVyCiAgIAl0byBhZnRlciB0aGUgbWFpbiBsb29wIGhhcyB0ZXJtaW5hdGVkLgogICAKMTk5OS0wOC0xNiAxNTowOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXA6CgogICAtIChUMTAwYWdlbnRodXApOiBhZGRlZCBuZXcgYWdlbnQgY2FwYWJpbGl0eSB0ZXN0IHRvIHRlc3Qga2lsbCAtSFVQLgogICAKMTk5OS0wOC0xNiAxNDo1OSAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgc25tcG5ldHN0YXQvbWFpbi5jOiBlbmFibGVfc3RkZXJybG9nKCkgc28gdGhhdCB3ZSBnZXQgYW4gZXJyb3IgbWVzc2FnZQogICAJZm9yIGJhZCBob3N0IG5hbWVzLgogICAKMTk5OS0wOC0xNiAxNDo1OCAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIHNubXBuZXRzdGF0L2lmLmM6IGFsbG93IC1pIGFuZCAtbyBvdXRwdXRzIGV2ZW4gd2l0aCBpbmNvbXBsZXRlIHJlc3BvbnNlcwogICAJZnJvbSBzbm1wZCAoc3VjaCBhcyBMaW51eCB0aGF0IGRvZXMgbm90IHJldHVybiBpZkluTlVDYXN0UGt0cwogICAJd2l0aCB0aGUgbmV3IERVTU1ZIHNldHVwKQogICAKMTk5OS0wOC0xMyAxNjowNiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgdmVyc2lvbi5oLCBGQVEsIFJFQURNRSwKICAgc2Vkc2NyaXB0LmluOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlNiApCiAgIAoxOTk5LTA4LTEzIDE2OjA1ICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXM6CgogICAtIChyZW1vdmUtZmlsZXMpOiByZW1vdmUgdGhlIElTU1VFUyBmaWxlIGZvciByZWxlYXNlcy4KICAgCjE5OTktMDgtMTMgMTY6MDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICAtIChURVNUQ09ORi5zaCk6IHN0b3JlIHRoZSBwZXJpc3RlbnQgZGF0YSBpbiBhIHRlbXBvcmFyeSBmaWxlLiAgcmVhbGx5LgogICAKMTk5OS0wOC0xMyAxNTo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE2c25tcHYyY2dldGZhaWwKLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLCBUMDE4c25tcHYxdG92MmNnZXRmYWlsLAogICBUMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgLSAoVDAwM3NubXB2MWdldGZhaWwsIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKICAgICBUMDE4c25tcHYxdG92MmNnZXRmYWlsLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uKToKICAgICAtIGZpeGVkIHRvIGNoZWNrIGZvciAibm9zdWNoIiBlcnJvcnMgYWN0dWFsbHkgcmV0dXJuZWQuCiAgICAgLSBzaG9ydGVuZWQgdGhlIHNubXB1c20gdGVzdCBkZXNjcmlwdGlvbi4KICAgCjE5OTktMDgtMTMgMTU6MzUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBkb24ndCByZW1vdmUgbWliX21vZHVsZV9sb2Fkcy5oLgogICAKMTk5OS0wOC0xMyAxNToyMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSBjb25maWdfbG9hZF9taWIgcGFyc2luZy4KICAgCjE5OTktMDgtMTMgMTI6NDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBwcm9wZXJseSBkbyB3aGF0IC0td2l0aG91dC1kdW1teS12YWx1ZXMKICAgICBzaG91bGQgZG8uCiAgIAoxOTk5LTA4LTEzIDEyOjE4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIHZhcl9yb3V0ZS5jIC0gI2lmZGVmIE5PX0RVTU1ZIC0tPiAjaWYgTk9fRFVNTVkgKGxpa2UgdGhlIG90aGVyIHVzZXMpLgogICAKMTk5OS0wOC0xMyAxMTo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAtICh2YXJfcm91dGUuYyk6IGRvbid0IGRvIGNhY2hpbmcgZm9yIE5PX0RVTU1ZX1ZBTFVFUy4KICAgCjE5OTktMDgtMTMgMTE6MTQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9kZXZpY2UuYywgaG9zdC9ocl9wcmludC5jLAogICBob3N0L2hyX3Byb2MuYywgaG9zdC9ocl9zdG9yYWdlLmMsIGhvc3QvaHJfc3dpbnN0LmMKLCBob3N0L2hyX3N3cnVuLmMsIGhvc3QvaHJfc3lzdGVtLmMsIG1pYklJL2F0LmMKLCBtaWJJSS9pbnRlcmZhY2VzLmMsIG1pYklJL2lwLmMsCiAgIG1pYklJL3N5c3RlbV9taWIuYywgbWliSUkvdGNwLmMsIG1pYklJL3VkcC5jLAogICBtaWJJSS92YXJfcm91dGUuYzoKCiAgIChob3N0L2hyX2RldmljZS5jLGhvc3QvaHJfcHJpbnQuYywgaG9zdC9ocl9wcm9jLmMsaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGhvc3QvaHJfc3dpbnN0LmMsaG9zdC9ocl9zd3J1bi5jLCBob3N0L2hyX3N5c3RlbS5jLG1pYklJL2F0LmMsCiAgIG1pYklJL2ludGVyZmFjZXMuYyxtaWJJSS9pcC5jLCBtaWJJSS9zeXN0ZW1fbWliLmMsbWliSUkvdGNwLmMsCiAgIG1pYklJL3VkcC5jLG1pYklJL3Zhcl9yb3V0ZS5jKSAtICNpZiBOT19EVU1NWV9WQUxVRVMgKGhlbHAgb3V0IGNvbmZpZ3VyZSkKICAgCjE5OTktMDgtMTMgMDk6MzMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBkb24ndCB1c2UgTk9fRFVNTVlfVkFMVUVTIGJ5IGRlZmF1bHQuCiAgIAoxOTk5LTA4LTEzIDA3OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgogICAKMTk5OS0wOC0xMyAwNzoxMiAgaGFyZGFrZXIKCiAgICogTkVXUywgUkVBRE1FLnNubXB2MywgY29uZmlndXJlLCBjb25maWd1cmUuaW4KOgoKICAgLSAoTkVXUywgUkVBRE1FLnNubXB2MywgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCiAgIAoxOTk5LTA4LTEzIDA3OjExICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogIm1ha2UgdGVzdCIgaW4gdG9wIGxldmVsIE1ha2VmaWxlLgogICAKMTk5OS0wOC0xMyAwMjo0NiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGV4YW1wbGVzL3VjZERlbW9QdWJsaWMuaCwgaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMsCiAgIGlwZndjaGFpbnMvaXBmd2NoYWlucy5oLCBtaXNjL2lwZndhY2MuYywgbWlzYy9pcGZ3YWNjLmgKLCB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMKLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIHNtdXgvc25tcF9iZ3AuYwosIHNtdXgvc25tcF9iZ3AuaCwgc211eC9zbm1wX29zcGYuYywKICAgc211eC9zbm1wX29zcGYuaCwgc211eC9zbm1wX3JpcDIuYywgc211eC9zbm1wX3JpcDIuaAo6CgogICAtIChleGFtcGxlcy91Y2REZW1vUHVibGljLltjaF0KICAgICAgaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLltjaF0gbWlzYy9pcGZ3YWNjLltjaF0KICAgICAgdGFyZ2V0L3NubXBUYXJnZXR7QWRkcixQYXJhbXN9RW50cnkuW2NoXQogICAgICBzbXV4L3NubXBfKi5bY2hdKToKICAgICAgLSBSZWdpc3RlciBtb2R1bGVzIGR5bmFtaWNhbGx5IGF0IHJ1bi10aW1lCiAgIAoxOTk5LTA4LTEzIDAyOjQ0ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IERyb3Agc3VwcG9ydCBmb3IgJ3N0YXRpYycgbW9kdWxlIHJlZ2lzdHJhdGlvbiB2aWEgY29uZmlndXJlCiAgIAoxOTk5LTA4LTEyIDE2OjQ2ICBoYXJkYWtlcgoKICAgKiBORVdTLCBSRUFETUU6CgogICAtIChORVdTLCBSRUFETUUpOiBtaW5vciB1cGRhdGVzLgogICAKMTk5OS0wOC0xMiAxNjo0MSAgaGFyZGFrZXIKCiAgICogRkFRLCBtYW4vc25tcGNtZC4xLCBtYW4vc25tcHRyYXAuMToKCiAgIC0gKEZBUSwgc25tcGNtZC4xLCBzbm1wdHJhcC4xKTogbWlub3IgZG9jIHVwZGF0ZXMuCiAgIAoxOTk5LTA4LTEyIDE2OjIyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzY29uZmlnLCBUMDIwc25tcHYzZ2V0LAogICBUMDIxc25tcHYzZ2V0bmV4dCwgVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIC0gKFN2M2NvbmZpZywgVDAyMHNubXB2M2dldCwgVDAyMXNubXB2M2dldG5leHQsCiAgICAgVDAzMHNubXB2M3VzZXJjcmVhdGlvbik6IHRlc3QgdXBkYXRlcywgaW5jbHVkaW5nIGEgbmV3IHNubXB1c20gdGVzdC4KICAgCjE5OTktMDgtMTIgMTY6MTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdXNtLjE6CgogICAtIChzbm1wdXNtLjEpOiBuby1maWxsIHRoZSAuY29uZiBmaWxlIGVudHJpZXMuCiAgIAoxOTk5LTA4LTEyIDE2OjE2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgLSAoc25tcC5jb25mLjUuZGVmKTogdXBkYXRlZCB3aXRoIHRoZSBuZXdlciB0b2tlbiBsaXN0LgogICAKMTk5OS0wOC0xMiAxNjoxNSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB1c20uMToKCiAgIC0gKHNubXB1c20uMSk6IGFkZGVkIHRvIGRlc2NyaWJlIHRoZSBzbm1wdXNtIGNvbW1hbmQuCiAgIAoxOTk5LTA4LTEyIDA5OjMxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIC0oc25tcHVzbS5jKSAtIGZpeCBwb3RlbnRpYWwgcmVwZWF0ZWQgImZyZWUiIG9uIG1hbGxvYyBmYWlsdXJlLgogICAKMTk5OS0wOC0xMSAyMTo1MyAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIHNubXBuZXRzdGF0L2lmLmM6CWhhbmRsZSBub24tY29udGlndW91cyBpZlRhYmxlLiBBbHNvIG1ha2UgdGhlCiAgIAljb3VudGVycyB1bnNpZ25lZC4KICAgCjE5OTktMDgtMTEgMjE6NTIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGhyX3N0b3JhZ2UuYzoJcmVtb3ZlIHRvIGZvcmdvdHRlbiBkZWJ1ZyBsaW5lcy4KICAgCjE5OTktMDgtMTEgMTM6MDQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHJlYWRfY29uZmlnLmMpOgogICAgIC0gTWFrZSBwZXJzaXN0ZW50IGNhY2hlIGNvbmZvcm0gdG8gYSBtb3JlIHNlY3VyZSB1bWFzay4KICAgCjE5OTktMDgtMTEgMTA6NTAgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjMsIGFwcHMvc25tcHVzbS5jOgoKICAgLSAoUkVBRE1FLnNubXB2Mywgc25tcHVzbS5jKTogdXNlIHNzIHNlc3Npb24gdG8gZ2V0IHByb2JlZCBlbmdpbmVJRC4KICAgCjE5OTktMDgtMTAgMTc6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbGNkX3RpbWUuYzoKCiAgIC0gKGxjZF90aW1lLmMpOiBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KICAgCjE5OTktMDgtMTAgMTc6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogcHJpbnQgLUggdXNhZ2UgdG8gc3RkZXJyLgogICAKMTk5OS0wOC0xMCAxNzoyMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIC0gKFJFQURNRS5zbm1wdjMpOiB1cGRhdGUuCiAgIAoxOTk5LTA4LTEwIDE1OjU0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBmb3JjZSB2MyBlbmdpbmVJRCBzZXR0aW5nIHRvIHNvbWV0aGluZyBib2d1cyB0bwogICAgIGdldCBhcm91bmQgbG9jYWwgY29uZmlndXJhdGlvbiBkYXRhIHN0b3JlIHRpbWUgc3luY2hyb25pemF0aW9uIGNvbmZsaWN0cy4KICAgCjE5OTktMDgtMTAgMTQ6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICAtICh1c21Vc2VyLmMpOiBVbSwgY291Z2gsIGFjdHVhbGx5IHJlZ2lzdGVyIHVzIGluIHRoZSAqaW5pdCogZnVuY3Rpb24uLi4KICAgCjE5OTktMDgtMTAgMTQ6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBwcm90ZWN0IGFnYWluc3QgZXZpbCBtaWIgbW9kdWxlcyBmcm9tIG1vZGlmeWluZwogICAgIG1lbW9yeSB0aGV5IHNob3VsZG4ndCBiZSBtb2RpZnlpbmcgeWV0LgogICAgIC0gKGlmZGVmJ2VkIGZvciBzcGVlZCBwcm9maWxpbmcgbGF0ZXIpLgogICAKMTk5OS0wOC0xMCAxMTowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBsb2cgdmVyc2lvbiBudW1iZXIgYWZ0ZXIgc3RkZXJyIGlzIG9wdGlvbmFsbHkgY2xvc2VkLgogICAKMTk5OS0wOC0xMCAxMDowNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBGaXggZm9yIGJ1aWxkIChubyBwYWdlc2l6ZSB2YXIgZGVmaW5lZCBmb3IgbGludXgpLgogICAKMTk5OS0wOC0xMCAwOToxOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmM6CgogICByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jIC0gY29udmVydCBmcHJpbnRmKHN0ZGVyciB0byBzbm1wX2xvZyhMT0dfRVJSLFdBUk5JTkcpCiAgIAoxOTk5LTA4LTEwIDA0OjUwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYwo6CgogICBpbnRlcmZhY2VzLmMgdmFyX3JvdXRlLmMgc25tcF9sb2dnaW5nLmM6IGZpeCBjb21waWxlciB3YXJuaW5ncwogICAKMTk5OS0wOC0xMCAwNDo0OCAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIHNubXBuZXRzdGF0L2lmLmM6CWZpeGVzIGZvciBzbm1wbmV0c3RhdCAtaSBvbiB2aXJ0dWFsIGludGVyZmFjZXMKICAgCjE5OTktMDgtMTAgMDQ6NDcgIG5iYQoKICAgKiBhZ2VudC9rZXJuZWwuYzoKCiAgIGFnZW50L2tlcm5lbC5jOglhYm9ydCBvbiBrdm1fb3BlbiBmYWlsdXJlcwogICAKMTk5OS0wOC0xMCAwNDo0NiAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBzbm1wbGliL21pYi5jOglmaXggaGFuZGxpbmcgb2YgbnVtZXJpYyBvaWRzIGFuZCByZXBvcnRpbmcgZXJyb3JzCiAgIAoxOTk5LTA4LTEwIDA0OjQ1ICBuYmEKCiAgICogY29uZmlndXJlLmluLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGNvbmZpZ3VyZS5pbiBjb25maWcuaC5pbiBjb25maWd1cmUgcy9uZXRic2QgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CiAgIAlzdXBwb3J0IGZvciBOZXRCU0Qvc3BhcmMgYW5kIE5ldEJTRCAxLjQKICAgCjE5OTktMDgtMDkgMTU6MDcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wdXNtLmM6CgogICBzbm1wdXNtLmMgLSBhbHdheXMgY2xlYXIgZmllbGRfbGVuIGlmIHJlZiBpcyB2YWxpZCBwdHI7CiAgIHNubXBfYXBpLmMgLSBkb24ndCBvdmVyd3JpdGUgY29tbXVuaXR5IHBvaW50ZXIgd2l0aCBzZWN1cml0eUF1dGhQcm90byBwb2ludGVyCiAgIAoxOTk5LTA4LTA5IDE0OjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6IGVycm9yIGNoZWNrL251bGwgc2V0ICphZnRlciogZnJlZWluZyB0aGUgb2xkIG1lbW9yeS4KICAgCjE5OTktMDgtMDkgMTQ6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogbW9yZSBlcnJvciBjaGVja2luZyBpbiB0aGUgTUFLRV9FTlRSWSBtYWNyby4KICAgCjE5OTktMDgtMDkgMTM6MTIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSAvZGV2L3JhbmRvbSB0ZXN0LgogICAKMTk5OS0wOC0wOSAxMTo0MCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1kNS5jLCBzbm1wX2FwaS5jOgoKICAgLShtZDUuYykgZml4IHJlYWQgcGFzdCBlbmQgcHJvYmxlbQogICAtKHNubXBfYXBpLmMpIGZpeCBsb3NpbmcgY29tbXVuaXR5IHN0cmluZyBwcm9ibGVtCiAgIAoxOTk5LTA4LTA5IDEwOjQzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYXBwcy9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICAobWFueSk6CW51a2UgdmFyaW91cyBwcm90b3R5cGUgd2FybmluZ3MKICAgCjE5OTktMDgtMDkgMDk6NDUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcC5jOgoKICAgLShzbm1wLmMpIGZpeCBidWZmZXIgb3ZlcmZsb3cgaW4geGR1bXAsIG9mIGFsbCBwbGFjZXMgKDc3IHMvYiA3ODsgdXNpbmcgODApCiAgIAoxOTk5LTA4LTA5IDA2OjU0ICBtc2xpZmNhawoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIGxpYnNubXAuZGVmIC0gcmVtb3ZlIHByaW50X29pZF9yZXBvcnQgZGlzYWJsZSBvcHRpb25zCiAgIAoxOTk5LTA4LTA5IDA2OjUyICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgc25tcGQuYyAtIGxpc3QgYWxsIG9wdGlvbnMgaW4gdXNhZ2UKICAgCjE5OTktMDgtMDkgMDY6NTAgIG1zbGlmY2FrCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYwo6CgogICAgc25tcGRlbHRhLCB0cmFuc2xhdGUsIHRyYXBkKSAtIGxpc3QgYWxsIG9wdGlvbnMgaW4gdXNhZ2U7IHJlbW92ZSBkaXNhYmxlcyBmb3IgcHJpbnRfb2lkX3JlcG9ydCBpbiB0cmFuc2xhdGUuCiAgIAoxOTk5LTA4LTA5IDA2OjQ4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oLCBwYXJzZS5jLCBwYXJzZS5oCjoKCiAgIG1pYi4qLCBwYXJzZS4qIC0gbW92ZSBwcmludF9vaWRfcmVwb3J0IGFuZCBtaW5pb25zIHdob2xseSBpbnRvIG1pYi5jCiAgIAoxOTk5LTA4LTA5IDAxOjAyICBkYXZlcwoKICAgKiBGQVE6CgogICAtIChGQVEpOiBOaW5lIG5ldyBxdWVzdGlvbnMsIHBsdXMgYXNzb3J0ZWQgdHdlYWtzIGZvciB0aGUgbmV3IHJlbGVhc2UuCiAgIAoxOTk5LTA4LTA5IDAwOjI0ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgcGFyc2UuYzoJcGFyc2UgYWdlbnQgY2FwYWJpbGl0aWVzCiAgIAoxOTk5LTA4LTA2IDA3OjM2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oOgoKICAgLShzbm1wX2xvZ2dpbmcuKikgLWFkZGVkIFJhZ25hcidzIHBhdGNoICMzIHdpdGggc21hbGwgdG91Y2hlcy4KICAgCjE5OTktMDgtMDYgMDY6MDIgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkvYXQuYywgbWliSUkvaW50ZXJmYWNlcy5jLAogICBtaWJJSS9pcC5jLCBtaWJJSS9zeXN0ZW1fbWliLmMsIG1pYklJL3RjcC5jLAogICBtaWJJSS91ZHAuYywgbWliSUkvdmFyX3JvdXRlLmMsIGhvc3QvaHJfZGV2aWNlLmMKLCBob3N0L2hyX3ByaW50LmMsIGhvc3QvaHJfcHJvYy5jLAogICBob3N0L2hyX3N0b3JhZ2UuYywgaG9zdC9ocl9zd2luc3QuYywgaG9zdC9ocl9zd3J1bi5jCiwgaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIC0gKG1pYklJLyouYyBob3N0LyouYyk6IERvbid0IHByb3ZpZGUgImR1bW15IiB2YWx1ZXMgKHVubGVzcyBleHBsaWNpdGx5IGNvbmZpZ3VyZWQpCiAgIAoxOTk5LTA4LTA2IDA1OjU5ICBkYXZlcwoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLAogICBjb25maWd1cmU6CgogICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOgogICAgIC0gY29uZmlndXJlLXRpbWUgZmxhZyB0byBjb250cm9sIHByb3Zpc2lvbiBvZiAiZHVtbXkiIHZhbHVlcwogICAKMTk5OS0wOC0wNSAxMToxMSAgbXNsaWZjYWsKCiAgICogbWFuL3NubXBfYXBpLjM6CgogICBzbm1wX2FwaS4zIC0gZGVzY3JpYmUgc25tcF9lcnJvcigpLCByZXBsYWNlcyBzbm1wX2Vycm5vIGFuZCBzbm1wX2dldF9lcnJubygpCiAgIAoxOTk5LTA4LTA1IDEwOjQ0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICBhZ2VudHgvY2xpZW50LmMgLSByZW1vdmUgcmVmcyB0byBzbm1wX3N5bmNoe3NldHVwLHJlc2V0fSBvcmlnaW5hbCB2ZXJzaW9uCiAgIAoxOTk5LTA4LTA1IDAzOjI1ICBtc2xpZmNhawoKICAgKiBjb25maWcuc3ViOgoKICAgY29uZmlnLnN1YiAtIHBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbiB0byBzdXBwb3J0IEhQVVggMTEKICAgCjE5OTktMDgtMDQgMTI6MzMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHNubXBfYXBpLmMgLSBkdW1teSBmdW5jdGlvbnMgc25tcF9zeW5jaF97c2V0dXAscmVzZXR9IGFuZCBzbm1wX2dldF9lcnJuby4KICAgCjE5OTktMDgtMDQgMDk6MTcgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLShjb25maWd1cmUqKSAtIEtlbiBIb3Juc3RlaW46IGZpeCB0ZXN0IHh4Z2V0aG9zdGJ5bmFtZSwgeHhnZXRzZXJ2YnluYW1lLgogICAKMTk5OS0wOC0wNCAwNTowMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgdW5kbyBwYXRjaCBhcm91bmQgU29sYXJpcycgY29uZmlndXJlIGZhaWx1cmUgdG8gcmVnaXN0ZXIgSEFWRV9HRVRIT1NUQllOQU1FLgogICAKMTk5OS0wOC0wNCAwMzo0OCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtKHNtdXguYykgLSBwYXRjaCBzdXBwbGllZCBieSBOaWNrIEFtYXRvIHRvIGZpeCBBU05fSVBBRERSRVNTIHBhcnNlLgogICAKMTk5OS0wOC0wNCAwMTo0NiAgZGF2ZXMKCiAgICogbWlicy9VQ0QtREVNTy1NSUIudHh0OgoKICAgLSAobWlicy9VQ0QtREVNTy1NSUIudHh0KTogUmUtcmVzb2x2ZSBmaWxlICYgdWNkRGVtbyBPSUQgY29uZmxpY3QKICAgCjE5OTktMDgtMDMgMTQ6MDYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgc25tcF9kZWJ1Zy5jIC0gc2lnbmVkIGNvbXBhcmlzb24gZm9yIGxlbiBpbiBkZWJ1Z21zZ19oZXh0bGkuCiAgIAoxOTk5LTA4LTAzIDEyOjUzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuaDoKCiAgIHNubXBfZGVidWcuaCAtIGZpeCAid2FybmluZzogQU5TSSBDIGZvcmJpZHMgY29uZGl0aW9uYWwgZXhwciB3aXRoIG9ubHkgb25lIHZvaWQgc2lkZSIuCiAgIAoxOTk5LTA4LTAzIDA4OjM3ICBtc2xpZmNhawoKICAgKiBSRUFETUUud2luMzI6CgogICBSRUFETUUud2luMzIgLSBydW50aW1lIGxpYiBhbmQgZGVidWcgaW5mbyBjb3VydGVzeSBvZiBSb2JlcnQgU3RvcnkuCiAgIAoxOTk5LTA4LTAzIDA3OjU4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIHZhY21fdmFycy5jIC0gY29weSBjb21tdW5pdHkgc3RyaW5nLCBudWxsIHRlcm1pbmF0ZSwgdGhlbiBkZWJ1ZyBwcmludAogICAKMTk5OS0wOC0wMyAwNzowMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmg6CgogICBzbm1wX2RlYnVnLmggLSBtb3ZlIERFQlVHVFJBQ0UgZnJvbSBkZWJ1Z21zZ19oZXh0bGkgdG8gREVCVUdEVU1QU0VUVVAKICAgCjE5OTktMDgtMDMgMDc6MDAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgc25tcF9kZWJ1Zy5jIC0gcmVtb3ZlIHRyYWNlIG1lc3NhZ2VzIGZyb20gZGVidWdtc2dfaGV4dGxpLgogICAKMTk5OS0wOC0wMyAwNjo1OSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBhc24xLmMgLSBmaXggb3V0LW9mLWJvdW5kIGFycmF5IHdyaXRlIGFuZCBtZW1vcnkgbGVhayBpbiBwYXJzaW5nIHN0cmluZ3MuCiAgIAoxOTk5LTA4LTAzIDA0OjQ2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBzbm1wX2FwaS5jIC0gcmVtb3ZlICJCWSIgZnJvbSBIQVZFX0dFVEhPU1RCWU5BTUUgKFNvbGFyaXMgMi41LjEgd3JvbmchKQogICAKMTk5OS0wOC0wMiAyMjoyOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmg6CgogICBzbm1wX2RlYnVnIC0gREVCVUdNU0cgbWFjcm9zIGNhbGwgc25tcF9nZXRfZG9fZGVidWdnaW5nIGJlZm9yZSBpbnZva2luZyBkZWJ1Z21zZyogZnVuY3Rpb25zLgogICAKMTk5OS0wOC0wMiAwNDozNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgcGFyc2UgLSBzaGFtZSBvbiBtZSBmb3Igbm90IGNvbXBpbGUgdGVzdGluZyBmaXJzdCEKICAgCjE5OTktMDgtMDIgMDQ6MjkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHBhcnNlLmM6CgogICBhc24xLCBwYXJzZSkgZml4ZXMgc3VwcGxpZWQgYnkgTWFya2t1IExhdWtrYW5lbiAoTUpTLXVzZSB4Y2FsbG9jIGluIHBhcnNlKQogICAKMTk5OS0wNy0zMCAxNDoxOSAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIFJFQURNRQosIEZBUToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTUgKQogICAKMTk5OS0wNy0zMCAxNDoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kCiAgIAoxOTk5LTA3LTMwIDE0OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSAvdmFyL3VjZC1zbm1wIGV4aXN0LiAgV2Ugc2hvdWxkIGRvIGEgcGVybWlzc2lvbgogICAgIHNldCBhcyB3ZWxsLgogICAKMTk5OS0wNy0zMCAxNDoxMCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICAtIChjb25maWcuaC5pbik6IGF1dG9oZWFkZXIgcnVuLgogICAKMTk5OS0wNy0zMCAxNDowOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIC0gKFJFQURNRS5zbm1wdjMpOiBnZW5lcmljIHYzIGluc3RydWN0aW9ucywgYnV0IGhhcyBlcnJvcnMuCiAgIAoxOTk5LTA3LTMwIDA4OjMyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBubyBzdHJ1Y3Qgc29ja2FkZHJfZGwgaW4gQUlYIDMuCiAgIAoxOTk5LTA3LTMwIDA4OjAxICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBhZGQgdnNucHJpbnRmIGNoZWNrIGFuZCBIQVZFX1ZTTlBSSU5URiBjb25zdGFudAogICAKMTk5OS0wNy0zMCAwNzozMSAgZGF2ZXMKCiAgICogYWNjb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgpOiBDaGVjayBmb3IgbGliZGIvbGliZGIxICYgbGlicnBtIHNlcGFyYXRlbHkKICAgCjE5OTktMDctMzAgMDc6MDEgIGRhdmVzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6IENoZWNrIGZvciBsaWJkYi9saWJkYjEgJiBsaWJycG0gc2VwYXJhdGVseQogICAKMTk5OS0wNy0zMCAwNjo1OCAgbXNsaWZjYWsKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICByZW1vdmUgcmVmZXJlbmNlcyB0byBub24tZXhpc3RlbnQgc25tcF92YXJzX20ybS5oCiAgIAoxOTk5LTA3LTMwIDA2OjQ2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3N5c3RlbS5oOgoKICAgdXNlIHRyYWRpdGlvbmFsIEsmUiBjb21tZW50aW5nOyBub3QgYWxsICJDIiBjb21waWxlcnMgYWNjZXB0ICIvLyIgY29tbWVudHMuCiAgIAoxOTk5LTA3LTMwIDA2OjMwICBtc2xpZmNhawoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIHdpbjMyL2NvbmZpZy5oIC0gZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUKICAgCjE5OTktMDctMzAgMDY6MzAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBzeXN0ZW0gLSB1c2Ugc2l6ZW9mCiAgIAoxOTk5LTA3LTMwIDA2OjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgc25tcHYzIC0ga2V5IG9mZiBIQVZFX0dFVEhPU1ROQU1FOyB1c2Ugc2l6ZW9mIGJ1ZgogICAKMTk5OS0wNy0zMCAwNjoyMyAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLAogICBzbm1wX3ZhcnMuYywgc25tcF92YXJzX20ybS5oOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYyBhZ2VudF9yZWdpc3RyeS5jIHNubXBfdmFycy5jIHNubXBfdmFyc19tMm0uaCk6CiAgICAgLSBSZW1vdmVkIGxhc3QgdHJhY2VzIG9mIG9ic29sZXRlIHYycGFydHkgTWFuYWdlci10by1NYW5hZ2VyIHN1cHBvcnQKICAgCjE5OTktMDctMzAgMDY6MTkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBzbm1wdjMgLSB3cmFwIHBvc3NpYmx5IHVudXNlZCB2YXJzIGluICNpZmRlZiBIQVZFX0dFVEhPU1ROQU1FCiAgIAoxOTk5LTA3LTMwIDA2OjAwICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5LmgsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5jIGFnZW50L3NubXBfdmFycy5jIGFnZW50L3NubXBkLmMKICAgICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYyBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcC5jCiAgICAgIGFwcHMvc25tcHRyYXBkLmMgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgc25tcGxpYi9zbm1wX2FwaS5jCiAgICAgIHNubXBsaWIvc25tcF9hcGkuaCBzbm1wbGliL3NubXBfY2xpZW50LmMKICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5jIGFnZW50L21pYmdyb3VwL3YycGFydHkuaCk6CiAgICAgIC0gIFJlbW92ZWQgbGFzdCB0cmFjZXMgb2YgdjJwIHN1cHBvcnQKICAgCjE5OTktMDctMzAgMDU6NDIgIG1zbGlmY2FrCgogICAqIFJFQURNRS53aW4zMiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBocl9zdG9yYWdlLmMgLSBhdXRvX25saXN0IGZvciBIUl9TVE9SRV9TSVpFCiAgIGhyX3N3cnVuLmMgLSBmaXggZ2xvYmFsIHNoYWRvdyBkZWNsCiAgIHNubXBfbG9nZ2luZy5jIC0gY2hhbmdlIGZpbHRlciBmb3Igb3BlbmxvZyBwZXIgQS4gU3ltb25zIHBhdGNoCiAgIAoxOTk5LTA3LTMwIDA0OjQyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICByZW5hbWUgc2QgdG8gaWZzZCAtIGF2b2lkIGdsb2JhbCBzaGFkb3cgZGVjbAogICAKMTk5OS0wNy0zMCAwNDozOSAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGRlY2wgbG9nX3BlcnJvcgogICAKMTk5OS0wNy0zMCAwNDozNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgcmVuYW1lIGxvY2FsIHZhciAnbGFzdCcgdG8gJ2xhc3RfaXBjaCcgLSBhdm9pZCBzaGFkb3cgZ2xvYmFsIGRlY2wKICAgCjE5OTktMDctMzAgMDQ6MDAgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2hpc3RvcnkuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0oYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyxhZ2VudC9oaXN0b3J5LmMsYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsc25tcGxpYi9yZWFkX2NvbmZpZy5jLHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyxzbm1wbGliL3NubXB2My5jLAogICBzbm1wbGliL3N5c3RlbS5jKSAtIHBzb3MgZGlmZnMgb2ZmZXJlZCBieSBBbnRob255IFN5bW9ucwogICAKMTk5OS0wNy0zMCAwMzo1NyAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICBSZW1vdmVkIGhpbnQgb2YgdjJwYXJ0eSBmcm9tIGNvbW1lbnQuCiAgIAoxOTk5LTA3LTMwIDAzOjUxICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIFJlbW92ZWQgZHVwbGljYXRlIEhBVkVfR0VUPz8/QllOQU1FOyBSZW1vdmVkIHVudXNlZCBfQ1JUSU1QCiAgIAoxOTk5LTA3LTMwIDAzOjQ4ICBtc2xpZmNhawoKICAgKiBSRUFETUUud2luMzI6CgogICBSRUFETUUud2luMzIgLSBjbGVhbmVkIHVwLCBhZGRlZCBtb3JlIGFja25vd2xlZGdlbWVudHMKICAgCjE5OTktMDctMjkgMTc6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eHguaDoKCiAgIC0gKGFnZW50eHguaCk6IHJlbW92ZWQKICAgCjE5OTktMDctMjkgMTc6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3YycGFydHkvOiBhY2xfdmFycy5jLCBhY2xfdmFycy5oLAogICBhbGFybS5jLCBhbGFybS5oLCBjb250ZXh0X3ZhcnMuYywKICAgY29udGV4dF92YXJzLmgsIGV2ZW50LmMsIGV2ZW50LmgsIHBhcnR5X3ZhcnMuYwosIHBhcnR5X3ZhcnMuaCwgdmlld192YXJzLmMsIHZpZXdfdmFycy5oOgoKICAgLSAobWliZ3JvdXAvdjJwYXJ0eSk6IHJlbW92ZWQgZmlsZXMuCiAgIAoxOTk5LTA3LTI5IDE3OjAzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6IHJlbW92ZSB0cmFwX3NwZWNpYWwgc3R1ZmYuCiAgIAoxOTk5LTA3LTI5IDE2OjA1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgdXNlIGZwdXRzLCBhcyB2c3ByaW50ZiBoYXMgYWxyZWFkeSBkb25lIHRoZSBoYXJkIHdvcmsuCiAgIAoxOTk5LTA3LTI5IDE1OjU4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgZmx1c2ggZmlsZSBhbmQgc3RkZXJyIGFmdGVyIHdyaXRlLgogICAKMTk5OS0wNy0yOSAxNTo1MCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaDoKCiAgIC0oc25tcF9sb2dnaW5nKSBpbmNvcnBvcmF0ZSBSYWduYXIncyBpbXByb3ZlbWVudHMgd2l0aCBpbnRlcmVzdAogICAKMTk5OS0wNy0yOSAxNTowNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIGtlcm5lbC5jOgoKICAgYXV0b19ubGlzdCwga2VybmVsOiBwbGFjZSBsb2dfcGVycm9yIHRvIGNhdGNoIGVycm5vIHZhbHVlIGluIHJlcG9ydC4KICAgCjE5OTktMDctMjkgMTM6NTkgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtKGFnZW50L3NubXBkLmMpIC0gbG9nIHN0YW5kYXJkIGVycm9yIHVudGlsIGluaXQgaXMgY29tcGxldGVkLgogICAKMTk5OS0wNy0yOSAxMzoyOCAgbXNsaWZjYWsKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0oYXBwcy9NYWtlZmlsZS5pbikgLSBjb21tZW50IHVubmVlZGVkIFRSQVBTUEVDSUFMIGxpbmUKICAgCjE5OTktMDctMjkgMTI6NTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtKHNubXBfbG9nZ2luZykgLSBmaXggbG9nX3BlcnJvcgogICAKMTk5OS0wNy0yOSAwODozNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsCiAgIHVjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgbWVtb3J5X3NvbGFyaXMyOiBoYW5kbGUgbWFsbG9jIGVycm9ycwogICBrZXJuZWxfc3Vub3M1OiBzaGFyZSBrc3RhdCBmaWxkZXMgW1NIQVJFX0tTVEFUX0ZEXQogICAKMTk5OS0wNy0yOSAwMzoyOSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtIChtaWJJSS92YWNtX3ZhcnMuYyk6IENhdGNoIHVzZSBvZiB1bmNvbmZpZ3VyZWQgRVhBTVBMRS5jb25mIGZpbGVzCiAgIAoxOTk5LTA3LTI4IDEzOjMzICBtc2xpZmNhawoKICAgKiBSRUFETUUud2luMzI6CgogICAtUkVBRE1FLndpbjMyIC0gYnVpbGQgZ3VpZGUgZm9yIFdpbjMyLiBDeWd3aW4gZnJpZW5kbHkgc2NyaXB0IGluY2x1ZGVkLgogICAKMTk5OS0wNy0yOCAwOTo0MSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHNubXBfbG9nZ2luZy5jOiBhZGp1c3QgaGVhZGVycyBmb3IgdGhhdCBXaW4zMiBwbGF0Zm9ybS4KICAgCjE5OTktMDctMjggMDk6MDUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtKHNubXBfbG9nZ2luZykgU3VwcG9ydCBocHV4OSBhbmQgc29sYXJpczIuNS4xIHdpdGggdnNwcmludGYgaW5zdGVhZC4KICAgCjE5OTktMDctMjggMDY6NDUgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQ6CgogICAtIChidWctcmVwb3J0KTogY2hhbmdlIG1haWwgYWRkciB0byB1Y2Qtc25tcC1idWdzCiAgIAoxOTk5LTA3LTI4IDAyOjQyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMKOgoKICAgaHJfc3dydW4gLSByZXNldCBwb2ludGVyIGluIG1vZHVsZSBpbml0IChoZWxwIEhQL1VYIDkpCiAgIHNubXBfbG9nZ2luZyAtIHVzZSB2c3ByaW50ZiBmb3IgSFAvVVgtOQogICAKMTk5OS0wNy0yNyAyMzo1OCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGtleXRvb2xzLmMsIG1kNS5jLCBtZDUuaCwgc2NhcGkuYwosIHNubXAuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmM6CgogICAtKGtleXRvb2xzLmMsbWQ1LmMsbWQ1Lmgsc2NhcGkuYyxzbm1wLmMsc25tcF9hcGkuYyxzbm1wX2F1dGguYykgY2F0Y2ggTUQ1IGVycm9ycwogICAKMTk5OS0wNy0yNyAyMzozNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0oc25tcGQuYykgaW52b2tlIGxvZyBmdW5jdGlvbnMgZnJvbSBjaGlsZCAoY29ycmVjdCBwcm9jZXNzIElEIGluIHN5c2xvZykKICAgCjE5OTktMDctMjcgMjE6MzAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtKHNubXBfbG9nZ2luZy5jKSBmaXggc3lzbG9nIGJ5IHZzbnByaW50ZiB0byBidWZmZXIuCiAgIAoxOTk5LTA3LTI3IDE5OjA2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLShtaWIuYykgZml4IHdhbGtpbmcgT0lEIGxlbmd0aCBwb2ludGVyLCBudW1lcmljIHN1Yi1pZCBub3QgZm91bmQKICAgaW4gcmVhZF9vYmppZCBhbmQgcGFyc2Vfc3VidHJlZS4KICAgCjE5OTktMDctMjcgMTk6MDIgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtKHNubXBfcGFyc2VfYXJncykgaW4gc25tcF9wYXJzZV9vaWQsIHRyeSBnZXRfbm9kZSBpZiByZWFkX29iamlkIGZhaWxzLgogICAKMTk5OS0wNy0yNyAxNzoxNSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBpbmNsdWRpbmcgbWliLmggcmVxdWlyZXMgc3RkaW8uaCB0byBkZWZpbmUgRklMRSAqLgogICAKMTk5OS0wNy0yNyAxNjoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChhc24xLmMpOiBmaXggaGVhZGVyIGR1bXAuCiAgIAoxOTk5LTA3LTI3IDE2OjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBtaWIuYywgbWliLmgsIHNubXBfYXBpLmMKLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwgc25tcHVzbS5jOgoKICAgLSAoYXNuMS5jLCBtaWIuYywgbWliLmgsIHNubXBfYXBpLmMsIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oLCBzbm1wdXNtLmMpOgogICAgIC0gY2xlYW5lZCB1cCBkZWJ1Z2dpbmcgZHVtcCBvdXRwdXQuCiAgICAgLSBhZGRlZCBtb3JlIGR1bXAgcGFyc2UgaGVhZGVycyBmb3IgdjMgZHVtcHMuCiAgIAoxOTk5LTA3LTI3IDE2OjA2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtKGludGVyZmFjZXMuYykgLSBmaXggZXJyb3Igc2V0dGluZyBpZl9pYnl0ZXMgZm9yIExpbnV4IDIuMAogICAKMTk5OS0wNy0yNyAxMjoyMyAgbXNsaWZjYWsKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvc25tcGRlbHRhLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHVzbS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcHYzLmMsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLShhcHBzOmVuY29kZV9rZXljaGFuZ2UuYyxzbm1wZGVsdGEuYyxzbm1wdGFibGUuYywgc25tcHVzbS5jOwogICBzbm1wbGliOnJlYWRfY29uZmlnLmMsc25tcHYzLmM7IHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmKSAtCiAgICBhZGp1c3QgaGVhZGVycywgYnVpbGQgV2luMzIgc25tcHVzbStlbmNvZGVfa2V5Y2hhbmdlCiAgIAoxOTk5LTA3LTI3IDEyOjAwICBtc2xpZmNhawoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcAosIHNubXB1c20vc25tcHVzbS5kc3A6CgogICAtKGVuY29kZV9rZXljaGFuZ2UuZHNwLHNubXB1c20uZHNwKSAtYnVpbGQgdXNpbmcgY29tbW9uIFdpbjMyIGNvbXBpbGVyCiAgIAoxOTk5LTA3LTI3IDA5OjQwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgc3ViYWdlbnQuYzoKCiAgIC0obWFzdGVyLmMsIHN1YmFnZW50LmMpIHVuLWNvbW1lbnQgaW5pdF9tYXN0ZXIgYW5kIGluaXRfc3ViYWdlbnQuCiAgIAoxOTk5LTA3LTI3IDA5OjMyICBtc2xpZmNhawoKICAgKiBhZ2VudC9rZXJuZWwuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jCiwgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYwosIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHVzbS5jLAogICBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0oYWdlbnQva2VybmVsLmMsYWdlbnQvc25tcGQuYyxhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyxhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYyxhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICBhcHBzL3NubXBidWxrd2Fsay5jLGFwcHMvc25tcGRlbHRhLmMsYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcGdldG5leHQuYyxhcHBzL3NubXBzZXQuYyxhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGFibGUuYyxhcHBzL3NubXB0ZXN0LmMsYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLGFwcHMvc25tcHVzbS5jLGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYyxzbm1wbGliL3BhcnNlLmMsc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3NubXB2My5jKSBmaXggc25tcF9zZXNzX3BlcnJvciB1c2U7IHVzZSBsb2dfcGVycm9yIGZvciBwZXJyb3IKICAgCjE5OTktMDctMjcgMDc6NTAgIG1zbGlmY2FrCgogICAqIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsCiAgIGFnZW50L2RsbW9kcy9leGFtcGxlLmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50Lmg6CgogICAtKGFnZW50L2tlcm5lbC5jLGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYyxhZ2VudC9kbG1vZHMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYyxhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYyxhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyxhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyxhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYyxhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMsYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsCiAgIHNubXBsaWIvYXNuMS5jLHNubXBsaWIvc2NhcGkuYyxzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaCkgIEVSUk9SX01TRywgcHJpbnRmIC0tPiBERUJVR01TR1RMCiAgIAoxOTk5LTA3LTI3IDA2OjM4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2suYywgZXJyb3JtaWIuYywKICAgZXh0ZW5zaWJsZS5jLCBmaWxlLmMsIGhwdXguYywgbG9hZGF2ZS5jLAogICBtZW1vcnkuYywgbWVtb3J5X2ZyZWVic2QyLmMsIG1lbW9yeV9zb2xhcmlzMi5jLAogICByZWdpc3RyeS5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvKi5jKTogdHdlYWsgcmVnaXN0cnkgbGFiZWxzCiAgIAoxOTk5LTA3LTI3IDA0OjI0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGQgaW5jbHVkZSBuZXQvaWZfZGwuaCBzdWdnZXN0ZWQgYnkgVG9tIEl2YXIgSGVsYmVra21vCiAgIAoxOTk5LTA3LTI2IDE3OjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmg6CgogICAtIChzY2FwaS5oKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgIC0gc2l6ZV90IGZpeC4KICAgCjE5OTktMDctMjYgMTc6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBrZXl0b29scy5jLCBrZXl0b29scy5oLCBwYXJzZS5jLAogICBzY2FwaS5jOgoKICAgLSAoa2V5dG9vbHMuYywga2V5dG9vbHMuaCwgcGFyc2UuYywgc2NhcGkuYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIHNpemVfdCBjaGFuZ2VzLgogICAKMTk5OS0wNy0yNiAxNzowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgIC0gdmFyaWFibGUgbmFtaW5nIGNoYW5nZS4KICAgCjE5OTktMDctMjYgMTU6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4pOiBmaXggbWFrZSBkZXBlbmQuCiAgIAoxOTk5LTA3LTI2IDE1OjEyICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBhc24xLmgsIHNubXAuYywgc25tcF9hcGkuYwosIHNubXBfYXV0aC5jLCBzbm1wdXNtLmM6CgogICAtKGFzbjEuYyxhc24xLmgsc25tcC5jLHNubXBfYXBpLmMsc25tcF9hdXRoLmMsc25tcHVzbS5jKSBtb3JlIGRldGFpbGVkIHBhcnNlIGVycm9yIG1lc3NhZ2VzLgogICAKMTk5OS0wNy0yNiAxNDozMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogQklUX3N0cmluZzogLT4gQklUUzoKICAgCjE5OTktMDctMjYgMTE6NTEgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHZlcnNpb24uaCwgRkFRLCBSRUFETUUsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTQgKQogICAKMTk5OS0wNy0yNiAwOToxNCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiB1cGRhdGVkIGEgYml0CiAgIAoxOTk5LTA3LTI2IDA5OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kCiAgIAoxOTk5LTA3LTI2IDA3OjM3ICBoYXJkYWtlcgoKICAgKiBtaWJzL1NOTVB2Mi1DT05GLnR4dDoKCiAgIC0gKFNOTVB2Mi1DT05GLnR4dCk6IHJlbW92ZWQgYm9ndXMgSU1QT1JUUyBjbGF1c2UKICAgCjE5OTktMDctMjQgMDg6MTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWQ1LmM6CgogICAtKG1kNS5jKSAtIHdyYXAgdW51c2VkIE1ENXByaW50IHdpdGggU05NUF9URVNUSU5HX0NPREUgaWZkZWYKICAgCjE5OTktMDctMjQgMDg6MDUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBjYWxsYmFjay5oLCBkZWZhdWx0X3N0b3JlLmgsIHNubXBfYWxhcm0uaAosIHNubXBfbG9nZ2luZy5oOgoKICAgLShjYWxsYmFjay5oLGRlZmF1bHRfc3RvcmUuaCxzbm1wX2FsYXJtLmgsc25tcF9sb2dnaW5nLmgpIGV4dGVybiAiQyIgd3JhcHBlZAogICAKMTk5OS0wNy0yNCAwNzo0NSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLShzbm1wX2NsaWVudC5jKSAtIHVzZSBTRVRfU05NUF9FUlJPUiBmb3IgcmVzdG9yZWQgc25tcF9lcnJubyBzZXRzLgogICAKMTk5OS0wNy0yNCAwNzoxOCAgbXNsaWZjYWsKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtKGxpYnNubXAuZGVmKSAtIGFkZCBkZWNscyBmb3IgbmV3IGVycm9yIGxvZ2dpbmcgZnVuY3Rpb25zLgogICAKMTk5OS0wNy0yNCAwNzoxMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtKGFzbjEuYykgLSBmaXggY29tcGFyZSBlcnJvciBhdCBsaW5lIDM4NjsgcmVtb3ZlIHVudXNlZCB2YXJzIGVsc2V3aGVyZQogICAKMTk5OS0wNy0yMyAxNToyMSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB1c20uYwosIGFwcHMvc25tcHdhbGsuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsCiAgICAgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcC5jLAogICAgIHNubXB0cmFwZC5jLCBzbm1wdXNtLmMsIHNubXB3YWxrLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsCiAgICAgc25tcF9jbGllbnQuYyk6CiAgICAgLSBtYWtlIGFuZCB1c2Ugc25tcF9zZXNzX3BlcnJvcihzdHIsIHNlc3MpIGZvciBlcnJvciBwcmludGluZy4KICAgCjE5OTktMDctMjMgMTQ6MzEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBULnNoLCBUMi5zaCwgZGVtby5yZW1vdGUsIGRlbW8yCiwgZGVtbzIuZnVuY3Rpb25zLCBkZW1vMi5zZXR1cGZpbGU6CgogICAtIChULnNoLCBUMi5zaCwgZGVtby5yZW1vdGUsIGRlbW8yLCBkZW1vMi5mdW5jdGlvbnMsIGRlbW8yLnNldHVwZmlsZSk6CiAgICAgLSByZW1vdmVkIHNvbWUgdW4tbmVlZGVkIG9sZGVyIGRlbW8gZmlsZXMuCiAgIAoxOTk5LTA3LTIzIDE0OjI3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIGV2YWxfdG9vbHMuc2gsCiAgIHRlc3RzL1QwMDFzbm1wdjFnZXQsIHRlc3RzL1QwMDJzbm1wdjFnZXRuZXh0LAogICB0ZXN0cy9UMDAzc25tcHYxZ2V0ZmFpbCwgdGVzdHMvVDAxNHNubXB2MmNnZXQsCiAgIHRlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCwgdGVzdHMvVDAxNnNubXB2MmNnZXRmYWlsLAogICB0ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsLCB0ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsCiwgdGVzdHMvVDAyMHNubXB2M2dldCwgdGVzdHMvVDAyMXNubXB2M2dldG5leHQsCiAgIHRlc3RzL1QwMjJzbm1wdjNnZXRNRDUsIHRlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVM6CgogICAtIChURVNUQ09ORi5zaCwgZXZhbF90b29scy5zaCwgVDAwMXNubXB2MWdldCwgVDAwMnNubXB2MWdldG5leHQsCiAgICAgVDAwM3NubXB2MWdldGZhaWwsIFQwMTRzbm1wdjJjZ2V0LCBUMDE1c25tcHYyY2dldG5leHQsCiAgICAgVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLCBUMDE4c25tcHYxdG92MmNnZXRmYWlsLAogICAgIFQwMjBzbm1wdjNnZXQsIFQwMjFzbm1wdjNnZXRuZXh0LCBUMDIyc25tcHYzZ2V0TUQ1LAogICAgIFQwMjNzbm1wdjNnZXRNRDVERVMpOiBzdXBwb3J0IGEgU05NUF9GTEFHUyBlbnYgdmFyaWFibGUuCiAgIAoxOTk5LTA3LTIzIDE0OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGluaXQgZGVidWdnaW5nLgogICAKMTk5OS0wNy0yMyAxNDoxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXBfYXBpLmMKLCBzbm1wX2F1dGguYywgc25tcF9pbXBsLmg6CgogICAtIChhc24xLmMsIGFzbjEuaCwgc25tcC5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgpOgogICAgIC0gcmV2ZXJ0IHRvIG5vbi1kcGFyc2UgdmVyc2lvbnMgb2YgYXNuIGRlY29kaW5nLgogICAKMTk5OS0wNy0yMyAxMzoyMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgLSAoZXZhbF90b29scy5zaCk6IGEgbGl0dGxlIG1vcmUgdmVyYm9zZSBhYm91dCB3aGF0IGlzIHJ1bm5pbmcuCiAgIAoxOTk5LTA3LTIzIDEzOjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzoga2V5dG9vbHMuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYwosIHNubXBfYXBpLmM6CgogICAtIChrZXl0b29scy5jLCBwYXJzZS5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jKTogc25tcF9sb2cgY29udmVyc2lvbnMuCiAgIAoxOTk5LTA3LTIzIDEzOjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAuYzoKCiAgIC0gKHNubXAuYyk6IHhkdW1wIGZpeGVzLgogICAKMTk5OS0wNy0yMyAxMzoxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChhc24xLmMpOiBudWxsIHRlcm1pbmF0ZSBwYXJzZWQgc3RyaW5ncywganVzdCBpbiBjYXNlLgogICAKMTk5OS0wNy0yMyAxMzoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAodXRpbF9mdW5jcy5jKTogY2hhbmdlIG1hbGxvYyBzaXplKCkuCiAgIAoxOTk5LTA3LTIzIDEzOjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IG1vcmUgc25tcF9sb2cgY29udmVyc2lvbnMuCiAgIAoxOTk5LTA3LTIzIDEzOjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuaCk6IGFkZGVkIGZvciBhIHByb3RvdHlwZSBkZWZpbml0aW9uLgogICAKMTk5OS0wNy0yMyAxMDo0MiAgaGFyZGFrZXIKCiAgICogYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jCiwgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBtaWJzL0hPU1QtUkVTT1VSQ0VTLU1JQi50eHQsCiAgIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0LCBtaWJzL0lGLU1JQi50eHQsCiAgIG1pYnMvSVAtTUlCLnR4dCwgbWlicy9UQ1AtTUlCLnR4dCwgbWlicy9VRFAtTUlCLnR4dAosIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmg6CgogICAtIChhY2xvY2FsLm00LCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBfYWdlbnQuYywKICAgICBzbm1wX3ZhcnMuYywgc25tcGQuYywga2VybmVsX3N1bm9zNS5jLCB1dGlsX2Z1bmNzLmMsIGludGVyZmFjZXMuYywKICAgICBpbnRlcmZhY2VzLmgsIHN5c3RlbV9taWIuYywgdmFyX3JvdXRlLmMsIHNubXBFbmdpbmUuYywKICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgc25tcHRyYXBkLmMsIEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsCiAgICAgSUFOQWlmVHlwZS1NSUIudHh0LCBJRi1NSUIudHh0LCBJUC1NSUIudHh0LCBUQ1AtTUlCLnR4dCwKICAgICBVRFAtTUlCLnR4dCwgcGFyc2UuYywgc25tcF9hbGFybS5jLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOgogICAgIC0gbWVyZ2UgZnJvbSBWMy1saW5lIHBvc3QgMy42LjIgdG8gY3VycmVudC4KICAgICAtIG1pc2MgYnVnIGZpeGVzLgogICAgIC0gbWFrZSBhcHBzIHR1cm4gb24gc3RkZXJyIGxvZ2dpbmcgYnkgZGVmYXVsdC4KICAgCjE5OTktMDctMjMgMTA6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGxvZyB0byBzdGRlcnIuCiAgIAoxOTk5LTA3LTIxIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5zdG9yYWdlLmNvbmYsIHRrbWliOgoKICAgLSAodGttaWIsIG1pYjJjKTogdWRwYXRlIHRvIHVzZSBpbmRleGVzIChyZXF1aXJlcyBhIHBlcmwgcGF0Y2guCiAgIAoxOTk5LTA3LTIwIDE5OjMzICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0ZXN0LmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gbm8gcHJpbnRmIGluIGFzY2lpX3RvX2JpbmFyeQogICAKMTk5OS0wNy0yMCAxODoxMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5oLAogICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIC1taW5vciBjaGFuZ2VzIHRvIGJ1aWxkIFdpbjMyIHBsYXRmb3JtcyB1c2luZyBDeWdXaW4tZWdjcyBhbmQgTVNWQyBjb21waWxlcnMuCiAgIAoxOTk5LTA3LTIwIDE3OjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oOgoKICAgLSAoc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKTogLVdhbGwgZml4ZXMgKEFOU0kpLgogICAKMTk5OS0wNy0yMCAxNzowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIHNubXBfYWdlbnQuYywgc25tcGQuYwosIGRsbW9kcy9kbG1vZF9taWIuYywgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMsCiAgIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgbWliZ3JvdXAvbWlzYy9kbG1vZC5jLAogICBtaWJncm91cC9zbXV4L3NtdXguYywgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYwosIG1pYmdyb3VwL3YycGFydHkvYWxhcm0uYzoKCiAgIC0gKGF1dG9fbmxpc3QuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jLCBkbG1vZF9taWIuYywga2VybmVsX3N1bm9zNS5jLAogICAgIGlwZndjaGFpbnMuYywgaW50ZXJmYWNlcy5jLCBkbG1vZC5jLCBzbXV4LmMsIHZlcnNpb25pbmZvLmMsCiAgICAgYWxhcm0uYyk6CiAgICAgLSBjb252ZXJ0IHNubXBfbG9nKExPR19ERUJVRykgdG8gREVCVUdNU0dUTCgpLgogICAKMTk5OS0wNy0yMCAxNDowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9oaXN0b3J5LmMsIGFnZW50L2tlcm5lbC5jCiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMKLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5oOgoKICAgLSAoYXV0b19ubGlzdC5jLCBoaXN0b3J5LmMsIGtlcm5lbC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsCiAgICAgZGxtb2RfbWliLmMsIGtlcm5lbF9zdW5vczUuYywgbWliaW5jbC5oLCB1dGlsX2Z1bmNzLmMsIGlwZndjaGFpbnMuYywKICAgICBhdC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHJvdXRlX3dyaXRlLmMsIHN5c3RlbV9taWIuYywgdGNwLmMsIHVkcC5jLAogICAgIHZhY21fdmFycy5jLCB2YXJfcm91dGUuYywgZGxtb2QuYywgc211eC5jLCBkaXNrLmMsIGV4dGVuc2libGUuYywKICAgICBsb2FkYXZlLmMsIG1lbW9yeV9zb2xhcmlzMi5jLCBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jLCBwcm9jLmMsCiAgICAgdmVyc2lvbmluZm8uYywgYWxhcm0uYywgZXZlbnQuYywgTWFrZWZpbGUuaW4sIHBhcnNlLmMsIHNubXAuYywKICAgICBzbm1wX2RlYnVnLmMsIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaCk6IFBhdGNoIGZyb20gUmFnbmFyCiAgICAgS2r4cnN0YWQ6CiAgICAgLSBkbyBmaWxlLCBzdGRlcnIsIGFuZCBzeXNsb2cgc3VwcG9ydC4KICAgCjE5OTktMDctMTUgMDg6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLAogICBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaDoKCiAgIC0gKGFzbjEuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oKToKICAgICAtIGJlZ2lubmluZyBvZiBhIC1EZHVtcCB2ZXJzaW9uIG9mIHBhY2tldCBkdW1waW5nLgogICAgIC0gbmVlZHMgYSBsb3QgbW9yZSB3b3JrIGFuZCBjbGVhbiB1cC4KICAgICAtIEkgbmVlZCBjb21tZW50cy4uLiAgVGVsbCBtZSB3aGF0IHlvdSB0aGluay4uLgogICAKMTk5OS0wNy0xNSAwODo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgLSAodG9vbHMuYyk6IGluY2x1ZGUgYXJwYS9pbmV0LmguCiAgIAoxOTk5LTA3LTE0IDEzOjQ2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLShzbm1wbGliL21pYi5jKSAtIGNvbmRpdGlvbmFsbHkgYWxsb3cgZm9yIG5vdCBzZXR0aW5nIHNubXBfZXJybm8KICAgCjE5OTktMDctMTQgMTM6MTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0oc25tcF9hcGkuYykgLSBzbm1wX2FkZF92YXIgcmV0dXJucyBTTk1QRVJSOyBNQVkgc2V0IHNubXBfZXJybm8KICAgCjE5OTktMDctMTQgMDc6MTkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4OgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHgpOiBXYXJuaW5nIC0gaGVyZSBiZSBkcmFnb25zLi4uLgogICAKMTk5OS0wNy0xMiAwODozMiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2RldmljZS5jLCBocl9kZXZpY2UuaCwKICAgaHJfZGlzay5jLCBocl9kaXNrLmgsIGhyX2ZpbGVzeXMuYywKICAgaHJfZmlsZXN5cy5oLCBocl9uZXR3b3JrLmMsIGhyX25ldHdvcmsuaCwKICAgaHJfcGFydGl0aW9uLmMsIGhyX3BhcnRpdGlvbi5oLCBocl9wcmludC5jLAogICBocl9wcmludC5oLCBocl9wcm9jLmMsIGhyX3Byb2MuaCwgaHJfc3RvcmFnZS5jCiwgaHJfc3RvcmFnZS5oLCBocl9zd2luc3QuYywgaHJfc3dpbnN0LmgsCiAgIGhyX3N3cnVuLmMsIGhyX3N3cnVuLmgsIGhyX3N5c3RlbS5jLAogICBocl9zeXN0ZW0uaDoKCiAgIC0gKG1pYmdyb3VwL2hvc3QvKik6IER5bmFtaWNhbGx5IHJlZ2lzdGVyIGFsbCBIb3N0IFJlc291cmNlIG1vZHVsZXMKICAgCjE5OTktMDctMTIgMDc6MTQgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4pOiByZW1vdmUgZGVwZW5kZW5jeSBvbiBzbm1wbGliL2FnZW50eC5oCiAgIAoxOTk5LTA3LTExIDE4OjM1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9jbGllbnQuaDoKCiAgIFJlZHVjZSB1c2Ugb2Ygc25tcF9lcnJubyAtIGZpeCBtZW1vcnkgbGVhaywgdW51c2VkIHZhcnMsIGFuZCB1bnNldCB2YXIuCiAgIAoxOTk5LTA3LTA5IDE2OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIC0gKHNubXBfYWxhcm0uYyk6IGZpeCBjbGllbnRyZWcgZXJyb3IuCiAgIAoxOTk5LTA3LTA5IDE0OjE5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMKLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3N5c3RlbS5oLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgLSh3aW4zMixzbm1wbGliLGFwcHMsYWdlbnQpIGFkZCBzbm1wX3NvY2tldF9sZW5ndGggdG8gaGlkZSBzb2NrYWRkcl91bjsgV2luMzIgdG91Y2h1cHMKICAgCjE5OTktMDctMDkgMTI6MTIgIG1zbGlmY2FrCgogICAqIFJFQURNRS50aHJlYWQsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMKLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMKLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgbWFuL3NubXBfc2Vzc19hcGkuMywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0oc25tcF9jbGllbnQuKikgcmVtb3ZlIHNubXBfc3luY2hfc2V0dXAsIHNubXBfc3luY2hfcmVzZXQKICAgCjE5OTktMDctMDkgMDg6MzUgIGRhdmVzCgogICAqIHNubXBsaWIvOiBhZ2VudHguYywgYWdlbnR4LmgsIGFnZW50eF9jbGllbnQuYzoKCiAgIC0gKHNubXBsaWIvYWdlbnR4Kik6IE1vdmVkIEFnZW50WCBoYW5kbGluZyBvdXQgb2YgdGhlIG1haW4gU05NUCBsaWJyYXJ5CiAgIAoxOTk5LTA3LTA5IDA4OjM0ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50eC5oLCBhZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50eC9jbGllbnQuaCwgYWdlbnR4L21hc3Rlci5jLCBhZ2VudHgvbWFzdGVyLmgKLCBhZ2VudHgvbWFzdGVyX2FkbWluLmMsIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudHgvcHJvdG9jb2wuYywgYWdlbnR4L3Byb3RvY29sLmgsIGFnZW50eC9zdWJhZ2VudC5jCiwgYWdlbnR4L3N1YmFnZW50Lmg6CgogICAtIChhZ2VudC9taWJncm91cC9hZ2VudHguaCBhZ2VudC9taWJncm91cC9hZ2VudHgvKik6CiAgICAgLSBNb3ZlIEFnZW50WCBwcm90b2NvbCBoYW5kbGluZyB0byBhIChtb3N0bHkpIHNlbGYtY29udGFpbmVkIG1vZHVsZQogICAKMTk5OS0wNy0wOSAwODoyNyAgZGF2ZXMKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX2FnZW50LmgsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYwosIGFnZW50L3NubXBkLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYwosIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KOgoKICAgLSAoKi9NYWtlZmlsZS5pbiBzbm1wbGliL3NubXBfYXBpLmMKICAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyBhZ2VudC9zbm1wX2FnZW50LltjaF0gYWdlbnQvc25tcF92YXJzLltjaF0KICAgICAgYWdlbnQvc25tcGQuW2NoXSBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOgogICAgICAtIE1vdmUgQWdlbnRYIGhhbmRsaW5nIG91dCBvZiB0aGUgbWFpbiBTTk1QIGxpYnJhcnkKICAgCjE5OTktMDctMDkgMDE6NDkgIGRhdmVzCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogQ2xlYW4gdXAgZ2lkL3VpZCBjaGFuZ2UgbG9nZ2luZwogICAKMTk5OS0wNy0wOCAxNjowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIFJhZ25hciBLavhyc3RhZDoKICAgICAtIEFkZCBvcHRpb25zIGZvciBzd2l0Y2hpbmcgdG8gYSBnaXZlbiB1aWQgYW5kIGdpZC4KICAgCjE5OTktMDctMDggMTU6MTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGRlbHRhLmMsIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9pbnQ2NC5oCjoKCiAgIC0gKHNubXBkZWx0YS5jLCBpbnQ2NC5jLCBpbnQ2NC5oKTogbWluaW1hbCBjNjQgc3VwcG9ydCBmb3Igc25tcGRlbHRhLiBVbnRlc3RlZC4KICAgCjE5OTktMDctMDggMTQ6NDggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZAogICAKMTk5OS0wNy0wOCAxNDozNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYWdlbnQvc25tcDJwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L3ZpZXdfcGFyc2UuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL2FjbC5jLCBzbm1wbGliL2FjbC5oCiwgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9jb250ZXh0LmMsCiAgIHNubXBsaWIvY29udGV4dC5oLCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywKICAgc25tcGxpYi9saWJzbm1wLmgsIHNubXBsaWIvcGFydHkuYywgc25tcGxpYi9wYXJ0eS5oCiwgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvdmlldy5jLCBzbm1wbGliL3ZpZXcuaAo6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sIHNubXAycC5jLCBzbm1wX2FnZW50LmMsCiAgICAgc25tcF92YXJzLmMsIHNubXBkLmMsIHZpZXdfcGFyc2UuYywgdmFjbV92YXJzLmMsIHNubXBfcGFyc2VfYXJncy5jLAogICAgIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywgbWFpbi5jLCBNYWtlZmlsZS5pbiwgYWNsLmMsCiAgICAgYWNsLmgsIGFjbF9wYXJzZS5jLCBjb250ZXh0LmMsIGNvbnRleHQuaCwgY29udGV4dF9wYXJzZS5jLAogICAgIGxpYnNubXAuaCwgcGFydHkuYywgcGFydHkuaCwgcGFydHlfcGFyc2UuYywgc25tcC5oLCBzbm1wX2FwaS5jLAogICAgIHNubXBfYXV0aC5jLCBzbm1wX2NsaWVudC5jLCB2aWV3LmMsIHZpZXcuaCk6CiAgICAgLSB2MnBhcnR5IHN1cHBvcnQgaXMgZmluYWxseSBnb25lIQogICAKMTk5OS0wNy0wOCAxNDozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChhc24xLmMpOiAtV2FsbCBmaXhlcy4KICAgCjE5OTktMDctMDggMTQ6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhZ2VudHguYywgYWdlbnR4Lmg6CgogICAtIChhZ2VudHguYywgYWdlbnR4LmgpOiAtV2FsbCBmaXhlcy4KICAgCjE5OTktMDctMDggMTQ6MjkgIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgLSAoY29uZmlnLmgpOiBjb21tZW50IGNoYW5nZSBmb3IgaW50ZXJuYWwgbWQ1LgogICAKMTk5OS0wNy0wOCAxNDoyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgLSAodG9vbHMuYyk6IHR5cG8gaW4gI2lmZGVmLgogICAKMTk5OS0wNy0wOCAwNjoyNSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzbm1wX21pYi5jLCBzeXN0ZW1fbWliLmM6CgogICAtIChtaWJJSS9zeXN0ZW1fbWliLmMgbWliSUkvc25tcF9taWIuYyk6CiAgICAgLSBVcGRhdGUgJ3dyaXRlJyByb3V0aW5lcyBmb3IgVjQgYXJjaGl0ZWN0dXJlLAogICAgICAgYW5kIHVzaW5nIHRoZSBmdWxsIFNFVCBtdWx0aS1wYXNzIGFsZ29yaXRobQogICAKMTk5OS0wNy0wOCAwMjoxNiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFJldGFpbiBjb21tdW5pdHkgc3RyaW5nIGluIHJlc3BvbnNlcwogICAKMTk5OS0wNy0wNyAwNjo1NCAgZGF2ZXMKCiAgICogc25tcGxpYi86IGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXAuaAosIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfYXV0aC5jLAogICBhZ2VudHguYywgc25tcF9pbXBsLmg6CgogICAtIChhc24xLmMgYXNuMS5oIHNubXAuYyBzbm1wLmggc25tcF9hcGkuYyBzbm1wX2FwaS5oCiAgICAgIHNubXBfYXV0aC5jIHNubXBfaW1wbC5oIGFnZW50eC5jKToKICAgICAgLSBGaXJzdCBhdHRlbXB0IGF0IGZvcm1hdHRlZCBkaXNwbGF5IG9mIHBhY2tldCBkYXRhCiAgIAoxOTk5LTA3LTA2IDAyOjIwICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBGaXggaGFuZGxpbmcgb2YgU05NUHYxIG5vU3VjaE5hbWUKICAgCjE5OTktMDctMDIgMDg6MjcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogcmVnaXN0ZXIgZGVidWdnaW5nIHRva2VucyB3aXRoIC1ECiAgIAoxOTk5LTA3LTAyIDA1OjE4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50eHguaCwgYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudHgvbWFzdGVyLmgsIGFnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnR4L21hc3Rlcl9hZG1pbi5oLCBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0Lmg6CgogICAtIChtaWJncm91cC9hZ2VudHh4LmggbWliZ3JvdXAuYWdlbnR4Lyk6IEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgQWdlbnRYIG1hc3RlcgogICAKMTk5OS0wNy0wMiAwNToxNiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IHN1cHBvcnQgbGlzdHMgb2Ygc2Vzc2lvbnMgKGFuZCBzdWJzZXNzaW9ucykKICAgCjE5OTktMDctMDIgMDU6MTUgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgdmFyX3N0cnVjdC5oOgoKICAgLSAodmFyX3N0cnVjdC5oIGFnZW50X3JlZ2lzdHJ5LmMpOgogICAgIC0gbWFwIGJldHdlZW4gTUlCIHJlZ2lzdHJhdGlvbnMgYW5kIHRoZSBzdXBwb3J0aW5nIChzdWJhZ2VudCkgc2Vzc2lvbgogICAKMTk5OS0wNy0wMiAwNToxMyAgZGF2ZXMKCiAgICogc25tcGxpYi9hc24xLmgsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmg6CgogICAtIChzbm1wbGliL2FzbjEuaCBhZ2VudC9zbm1wX3ZhcnMuaCBhZ2VudC9zbm1wX2FnZW50LmMpOgogICAgIC0gaW1wbGVtZW50IGFuIGludGVyZmFjZSBmb3IgZGVsZWdhdGluZyByZXF1ZXN0cyB0byBzdWJhZ2VudHMKICAgCjE5OTktMDctMDIgMDI6MzkgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBGaXggdGhhdCBsYXN0ICdzZW5kdG8nIGNhc2UgKmNvcnJlY3RseSogdGhpcyB0aW1lCiAgIAoxOTk5LTA3LTAyIDAyOjA0ICBkYXZlcwoKICAgKiBzbm1wbGliL2FnZW50eC5jOgoKICAgLSAoYWdlbnR4LmMpOiBCZXR0ZXIgaGFuZGxpbmcgb2YgYnVpbGRpbmcgbnVsbCBzdHJpbmdzCiAgIAoxOTk5LTA2LTMwIDE5OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jCiwgbWliLmgsIHNubXBfYXBpLmMsIHNubXB2My5jLCBzbm1wdjMuaAo6CgogICAtIChkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIG1pYi5oLCBzbm1wX2FwaS5jLAogICAgIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgLSBjb252ZXJ0IG1vcmUgc3R1ZmYgdG8gdGhlIGRlZmF1bHRfc3RvcmUgc3BhY2UuCiAgIAoxOTk5LTA2LTMwIDE5OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzoga2V5dG9vbHMuYywgdG9vbHMuYzoKCiAgIC0gKGtleXRvb2xzLmMsIHRvb2xzLmMpOiAtV2FsbCBmaXhlcyB3aGVuIFRFU1RJTkdfQ09ERSBpcyBlbmFibGVkLgogICAKMTk5OS0wNi0zMCAwNTo0OCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IE1pc3NlZCBvbmUgJ3NlbmR0bycgY2FsbAogICAKMTk5OS0wNi0zMCAwNTowNiAgZGF2ZXMKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6IGNoZWNrIGZvciBzeXMvdW4uaAogICAKMTk5OS0wNi0zMCAwNTowNSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFByb3ZpZGUgdGhlIGNvcnJlY3Qgc2l6ZSBvZiBzb2NrZXQgYWRkcmVzc2VzCiAgIAoxOTk5LTA2LTMwIDAzOjIwICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuaCk6IG9taXQgcmVkdW5kYW50IGRlY2xhcmF0aW9ucwogICAKMTk5OS0wNi0zMCAwMjozMiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IENvcnJlY3QgdGhlIHNldHVwIG9mIHN0cmVhbS1iYXNlZCBhY2NlcHRlZCBpbnRlcm5hbCBzZXNzaW9ucwogICAKMTk5OS0wNi0zMCAwMTo0OCAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgIC0gKHNubXBfYWdlbnQuYyBzbm1wX2FnZW50LmgpOiAnYWdlbnRfc25tcF9zZXNzaW9uJyBpbml0aWFsaXNhdGlvbiByb3V0aW5lCiAgIAoxOTk5LTA2LTMwIDAxOjQ1ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfdmFycy5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuaCk6IEluZGljYXRlIHN1Y2Nlc3MvZmFpbHVyZSBvZiB7dW59cmVnaXN0cmF0aW9uCiAgIAoxOTk5LTA2LTMwIDAxOjM3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c09SVGFibGUuYywgc3lzT1JUYWJsZS5oOgoKICAgLSAoc3lzT1JUYWJsZS5jIHN5c09SVGFibGUuaCk6IEluZGljYXRlIHN1Y2Nlc3MvZmFpbHVyZSBvZiB7dW59cmVnaXN0cmF0aW9uCiAgIAoxOTk5LTA2LTI4IDE1OjAxICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGRlbHRhLmMsIHNubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBpbml0X3NubXBfYWxhcm0oKTsKICAgCjE5OTktMDYtMjggMTU6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIC0gKHVjZERlbW9QdWJsaWMuYyk6IGNvbnZlcnQgdG8gc2l6ZV90CiAgIAoxOTk5LTA2LTI4IDE0OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGluaXRfc25tcF9hbGFybSgpLgogICAKMTk5OS0wNi0yOCAwOTo1MiAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgKLCB2YXJfc3RydWN0Lmg6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jIHNubXBfdmFycy5jIHNubXBfdmFycy5oIHZhcl9zdHJ1Y3QuaCk6CiAgICAgLSBOb24tcmVjdXJzaXZlIE1JQiByZWdpc3RyeSBpbXBsZW1lbnRhdGlvbgogICAKMTk5OS0wNi0yOCAwODozNyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzLzogc25tcEVuZ2luZS5jLCBzbm1wRW5naW5lLmgsCiAgIHNubXBNUERTdGF0cy5jLCBzbm1wTVBEU3RhdHMuaCwgdXNtU3RhdHMuYywKICAgdXNtU3RhdHMuaCwgdXNtVXNlci5jLCB1c21Vc2VyLmg6CgogICAtIChzbm1wRW5naW5lLmMgc25tcEVuZ2luZS5oIHNubXBNUERTdGF0cy5jIHNubXBNUERTdGF0cy5oCiAgICAgIHVzbVN0YXRzLmMgdXNtU3RhdHMuaCB1c21Vc2VyLmMgdXNtVXNlci5oKToKICAgICAgLSBSdW4tdGltZSByZWdpc3RyYXRpb24gKHJhdGhlciB0aGFuIHZpYSAnY29uZmlndXJlJykKICAgCjE5OTktMDYtMjggMDc6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNjb25maWcsIFQwMjFzbm1wdjNnZXRuZXh0LAogICBUMDIyc25tcHYzZ2V0TUQ1LCBUMDIzc25tcHYzZ2V0TUQ1REVTOgoKICAgLSAoU3YzY29uZmlnLCBUMDIxc25tcHYzZ2V0bmV4dCwgVDAyMnNubXB2M2dldE1ENSwgVDAyM3NubXB2M2dldE1ENURFUyk6CiAgICAgLSAzIG5ldyB2MyB0ZXN0cy4KICAgCjE5OTktMDYtMjggMDc6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBSVU5URVNUUywgZXZhbF90b29scy5zaDoKCiAgIC0gKFJVTlRFU1RTLCBldmFsX3Rvb2xzLnNoKTogYWNjZXB0IGFnZW50IGNvbW1hbmQgbGluZSBvcHRpb25zLgogICAKMTk5OS0wNi0yOCAwNDowNyAgZGF2ZXMKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnRfcmVnaXN0cnkuYywgc25tcF92YXJzLmM6CgogICAtIHtNYWtlZmlsZS5pbiBhZ2VudF9yZWFkX2NvbmZpZy5jIHNubXBfdmFycy5jIGFnZW50X3JlZ2lzdHJ5LmMpOgogICAgIC0gQ29uc29saWRhdGUgYWxsIHJlZ2lzdHJ5IGhhbmRsaW5nIGludG8gb25lIGZpbGUKICAgCjE5OTktMDYtMjggMDM6MDggIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICAtIChzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oKTogbWFrZSBTTk1QIHBhY2tldCBoYW5kbGluZyByb3V0aW5lIHJlLWVudHJhbnQuCiAgIAoxOTk5LTA2LTIzIDEwOjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogTWFrZWZpbGUuaW4sIFJVTlRFU1RTLCBURVNUQ09ORi5zaCwKICAgZXZhbF90b29scy5zaCwgdGVzdHMvU3YzY29uZmlnOgoKICAgLSAoTWFrZWZpbGUuaW4sIFJVTlRFU1RTLCBURVNUQ09ORi5zaCwgZXZhbF90b29scy5zaCwgU3YzY29uZmlnKToKICAgICAtIGdpdmUgUlVOVEVTVFMgbG90cyBvZiBhcmd1bWVudHMuCiAgICAgLSAibWFrZSB0ZXN0IiBub3cgY2FsbHMgIlJVTlRFU1RTIC1hIgogICAKMTk5OS0wNi0yMiAwNToyNSAgbmJhCgogICAqIFRPRE86CgogICBUT0RPOgluZWVkIGZvciBDb3VudGVyNjQgc3VwcG9ydCBpbiBzbm1wZGVsdGEKICAgCjE5OTktMDYtMjIgMDU6MjEgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgaW52b2tlIHNubXBfc2Vzc19pbml0IGJlZm9yZSBhbnkgTUlCIHByb2Nlc3NpbmcgKGZpeGVzIG1hc3RlciBhZ2VudCkuCiAgIAoxOTk5LTA2LTE4IDEyOjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogYWdlbnR4LmMsIGFnZW50eF9jbGllbnQuYzoKCiAgIC0oYWdlbnR4Ki5jKSBmaXggaGVhZGVycyB0byBjb21waWxlIG9uIEN5Z1dpbiwgV2luMzIgTVNWQysrCiAgIAoxOTk5LTA2LTE4IDEwOjAyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAtKHN5c09SVGFibGUuYykgZml4IHB0ciB0ZXN0CiAgIAoxOTk5LTA2LTE4IDA5OjE0ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBkLmMsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMKLCBzbm1wZC5oLCBzbm1wX2FnZW50LmgsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIC0gKHNubXBkLmMgc25tcGQuaCBzbm1wX3ZhcnMuYyBzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oCiAgICAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6CiAgICAgIC0gaW5pdGlhbCBBZ2VudFggc3ViLWFnZW50IGltcGxlbWVudGF0aW9uCiAgIAoxOTk5LTA2LTE4IDA5OjAwICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogcHJvdG9jb2wtaW5kZXBlbmRlbnQgbWVhbnMgb2YgYnlwYXNzaW5nIFZBQ00gY2hlY2tzCiAgIAoxOTk5LTA2LTE4IDA4OjU1ICBkYXZlcwoKICAgKiBzbm1wbGliLzogYWdlbnR4LmMsIGFnZW50eC5oLCBhZ2VudHhfY2xpZW50LmMsCiAgIHNubXBfYXBpLmgsIE1ha2VmaWxlLmluOgoKICAgLSAoc25tcF9hcGkuaCBNYWtlZmlsZS5pbiBhZ2VudHguYyBhZ2VudHguaCBhZ2VudHhfY2xpZW50LmMpOgogICAgIC0gYmFzaWMgQWdlbnRYIHByb3RvY29sIGhhbmRsaW5nCiAgIAoxOTk5LTA2LTE4IDA4OjQ5ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKToKICAgICAtIGFjY29tb2RhdGUgc2VydmVycyB0aGF0IHJlcXVpcmUgYW4gYWNjZXNzaWJsZSBjbGllbnQtZW5kIHVuaXggc3RyZWFtIHNvY2tldAogICAgICAgICAgICAgICAgIChpbiBwYXJ0aWN1bGFyLCB0aGUgQ01VIEFnZW50WCBtYXN0ZXIgYWdlbnQpCiAgIAoxOTk5LTA2LTE4IDA4OjQ3ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcHJvdG9jb2wtaW5kZXBlbmRlbnQgbm9uLXJlc3BvbnNlIGhhbmRsaW5nIGluICdzbm1wX3Nlc3NfcmVhZCcKICAgCjE5OTktMDYtMTggMDg6NDQgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiBOZXcgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlCiAgIAoxOTk5LTA2LTE4IDA4OjA0ICBkYXZlcwoKICAgKiBzbm1wbGliLzogYXNuMS5oLCBzbm1wX2FwaS5jOgoKICAgLSAoYXNuMS5oIHNubXBfYXBpLmMpOiBOZXcgcHJpdmF0ZSB0eXBlcyBmb3IgT0lEIHJhbmdlcwogICAKMTk5OS0wNi0xOCAwODowMCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IEVuYWJsZSBhY2Nlc3MgdG8gImVtcHR5IiByZXNwb25zZSBQRFVzIChpLmUuIGhlYWRlciBvbmx5KS4KICAgCShhbHNvIG1ha2UgJ3NubXBfY2xvbmVfbWVtJyBhY2Nlc3NpYmxlIHRvIG90aGVyIGZpbGVzKQogICAKMTk5OS0wNi0xOCAwNzo1NiAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXAuaCwgc25tcF9hcGkuYzoKCiAgIC0gKHNubXAuaCBzbm1wX2FwaS5jKTogZGlzdGluZ3Vpc2ggYmV0d2VlbiBTTk1QIHByb3RvY29sICYgUERVIGhhbmRsaW5nIGZsYWdzCiAgIAoxOTk5LTA2LTE4IDA2OjU4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c09SVGFibGUuYywgc3lzT1JUYWJsZS5oOgoKICAgLSAoc3lzT1JUYWJsZS5jIHN5c09SVGFibGUuaCk6IG5ldyByb3V0aW5lIGZvciByZW1vdmluZyBzeXNPUlRhYmxlIGVudHJpZXMKICAgCjE5OTktMDYtMTggMDU6MDEgIG1zbGlmY2FrCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL3NubXB1c20uYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIva2V5dG9vbHMuYywKICAgc25tcGxpYi9rZXl0b29scy5oLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc2NhcGkuYwosIHNubXBsaWIvc2NhcGkuaCwgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc3lzdGVtLmM6CgogICBhcHBsaWVkIGZpeGVzIGZyb20gTS4gTGF1a2thbmVuCiAgIAoxOTk5LTA2LTE3IDEzOjE4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgd2luMzIvY29uZmlnLmgsCiAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgZml4dXBzIHRvIGJ1aWxkIG1vc3QgYXBwcyB1bmRlciBXaW4zMiAoTVNWQysrIDUuMCBvciBsYXRlcikKICAgCjE5OTktMDYtMTcgMDc6MzggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBmaXggLS1oZWxwLgogICAKMTk5OS0wNi0xNiAxNjo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oCjoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oKToKICAgICAtIDIgbmV3IHNubXAuY29uZiB0b2tlbnM6IGRvRGVidWdnaW5nLCBkZWJ1Z1Rva2Vucy4KICAgCjE5OTktMDYtMTYgMTY6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMKLCBwYXJzZS5jOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBwYXJzZS5jKToKICAgICAtIGZpcnN0IHVzYWdlIG9mIHRoZSBkZWZhdWx0X3N0b3JlKCkgcm91dGluZXM6IG1vdmUgYWxsIHRoZSBtaWIKICAgICAgIHBhcnNlciB2YXJpYWJsZXMgdG8gaXQsIGFuZCBhZGQgc25tcC5jb25mIHRva2VucyBmb3IgdGhlbS4KICAgICAgIC0gcHJlbWliIGF1dG8tcmVnaXN0cmF0aW9uIG9mIGRlZmF1bHRfc3RvcmUgbmVlZHMgY2xlYW5pbmcgdXAuLi4gIHNpZ2guLi4KICAgCjE5OTktMDYtMTYgMDY6NTYgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYyBzbm1wX2FwaS5oKTogSG9va3MgZm9yIGJ1aWxkaW5nL3BhcnNpbmcgbm9uLVNOTVAgcGFja2V0cwogICAKMTk5OS0wNi0xNiAwNTo0OSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGhhbmRsZSByZXNwb25zZXMgaW4gYSBtb3JlIHByb3RvY29sLWluZGVwZW5kZW50IG1hbm5lcgogICAKMTk5OS0wNi0xNiAwNToxMSAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXAuaCwgc25tcF9hcGkuYzoKCiAgIC0gKHNubXAuaCBzbm1wX2FwaS5jKTogbW92ZSBQRFUgdmFsaWRhdGlvbiwgZXRjIGZyb20gJ3NlbmQnIHRvICdidWlsZCcgcm91dGluZXMKICAgCjE5OTktMDYtMTUgMTY6MjcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDAyMHNubXB2M2dldDoKCiAgIC0gKFQwMjBzbm1wdjNnZXQpOiBuZXcgdGVzdDogIHNubXBnZXQgdXNpbmcgdjMgYW5kIHVzZXIgImluaXRpYWwiLgogICAKMTk5OS0wNi0xNSAxNjoyNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMDFzbm1wdjFnZXQsIFQwMDJzbm1wdjFnZXRuZXh0LAogICBUMDE0c25tcHYyY2dldCwgVDAxNXNubXB2MmNnZXRuZXh0OgoKICAgLSAoVDAwMXNubXB2MWdldCwgVDAwMnNubXB2MWdldG5leHQsIFQwMTRzbm1wdjJjZ2V0LCBUMDE1c25tcHYyY2dldG5leHQpOgogICAgIC0gQ2hlY2sgZm9yIFRpbWV0aWNrczogaW4gb3V0cHV0LCBzaW5jZSBvdXRwdXQgaGFzIGNoYW5nZWQgaW4gNC4wLgogICAKMTk5OS0wNi0xNSAxNjoyNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgLSAoZXZhbF90b29scy5zaCk6IGRpc3BsYXkgbW9yZSBvdXRwdXQgc3R1ZmYgd2hlbiBpbiB2ZXJib3NlIG1vZGUuCiAgIAoxOTk5LTA2LTE1IDE2OjI2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgLSAoVEVTVENPTkYuc2gpOiBzYXZlIHBhY2tldCBkdW1wLgogICAKMTk5OS0wNi0xNSAxNjoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGZpeCBhbGxvd2VkIHplcm9sZW5ndGggcGR1LT5zZWN1cml0eU5hbWUgcHJvYmxlbSBmb3IKICAgICB2MyBlbmdpbmVJRCBkaXNjb3ZlcnkgcHJvYmVzLgogICAKMTk5OS0wNi0xNSAwODoyNyAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgIC0gKHNubXBfYWdlbnQuYyBzbm1wX2FnZW50LmgpOgogICAgIC0gTW92ZSBwcm9jZXNzaW5nIGZyb20gJ2hhbmRsZV9uZXh0X3Bhc3MoKScgdG8gJ2hhbmRsZV9zbm1wX3BhY2tldCgpJwogICAKMTk5OS0wNi0xNSAwMzo1OSAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogUmVtb3ZlZCBkdXBsaWNhdGUgY29kZQogICAKMTk5OS0wNi0xMSAxNzo0NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2MWNvbmZpZywgU3YyY2NvbmZpZywgU3Zhbnljb25maWcKLCBUMDAxc25tcHYxZ2V0LCBUMDAyc25tcHYxZ2V0bmV4dCwKICAgVDAwM3NubXB2MWdldGZhaWwsIFQwMTRzbm1wdjJjZ2V0LCBUMDE1c25tcHYyY2dldG5leHQKLCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWw6CgogICAtIChTdjFjb25maWcsIFN2MmNjb25maWcsIFN2YW55Y29uZmlnLCBUMDAxc25tcHYxZ2V0LAogICAgIFQwMDJzbm1wdjFnZXRuZXh0LCBUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNHNubXB2MmNnZXQsCiAgICAgVDAxNXNubXB2MmNnZXRuZXh0LCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCk6CiAgICAgLSBpbml0aWFsIHBhc3Mgb2YgdGVzdGluZyBzdWl0ZSB0ZXN0cy4uLiAgQWdhaW4sIHN0aWxsIG5lZWRzIHdvcmsuCiAgIAoxOTk5LTA2LTExIDE3OjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMsIFQyLnNoLCBURVNUQ09ORi5zaCwKICAgZXZhbF9vbmVzY3JpcHQuc2gsIGV2YWxfdG9vbHMuc2g6CgogICAtIChSVU5URVNUUywgVDIuc2gsIFRFU1RDT05GLnNoLCBldmFsX29uZXNjcmlwdC5zaCwgZXZhbF90b29scy5zaCk6CiAgICAgLSB0ZXN0aW5nIHN1aXRlIHNjcmlwdHMuLi4gIHN0aWxsIG5lZWQgaGVhdnkgd29yay4KICAgCjE5OTktMDYtMDkgMTg6MjkgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIENoYW5nZUxvZywgRVhBTVBMRS5jb25mLmRlZiwgRkFRCiwgSU5TVEFMTCwgTkVXUywgUkVBRE1FLCBjb25maWcuaC5pbgosIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtYWtldGFyZ2V0LAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9rZXJuZWwuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvdmFjbS5jOgoKICAgLSAoKik6IG1lcmdlZCAzLjYuMiBjaGFuZ2VzIGludG8gbWFpbiBicmFuY2guCiAgIAoxOTk5LTA2LTA5IDA2OjMyICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogcmVvcmRlciBQRFUgYW5kIHNlc3Npb24gZmllbGRzIG1vcmUgY2xlYXJseQogICAKMTk5OS0wNi0wOCAwOTozMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfZnJlZWJzZDIuYywKICAgdm1zdGF0X2ZyZWVic2QyLmM6CgogICAtKHh4X19mcmVlYnNkMi5jKSAtIGZpeCBzaXplX3QgdG8gYnVpbGQgb24gRnJlZUJTRCAyLjIueAogICAKMTk5OS0wNi0wOCAwODo0MyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaAogICAgICBzbm1wbGliL3NubXBfYXV0aC5jIHNubXBsaWIvc25tcF9pbXBsLmgpOgogICAgICAtICByZW1vdmVkIGFsbCB1c2VzIG9mICdzdHJ1Y3QgcGFja2V0X2luZm8nIChzdWJzdW1lZCBpbnRvICdzdHJ1Y3Qgc25tcF9wZHUnKQogICAKMTk5OS0wNi0wOCAwNzo0MSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYyAoVjMtbGluZS40KSwgaHJfZmlsZXN5cy5jCjoKCiAgIC0oaHJfZmlsZXN5cy5jKSBmaXggbWVtb3J5IGxlYWsgd2hlbiBIQVZFX0dFVEZTU1RBVCBpcyBkZWZpbmVkLgogICAKMTk5OS0wNi0wNyAxMzowNCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLShpZi5jKSBjaGVjayBmb3IgdmFsaWQgcG9pbnRlciBiZWZvcmUgZGUtcmVmZXJlbmNpbmcuCiAgIAoxOTk5LTA2LTA3IDA3OjQ0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMKLCB1ZHAuYzoKCiAgIC0oaW50ZXJmYWNlcy5jLCB0Y3AuYywgdWRwLmMsIGlwLmMpIGNsb25lIGZpeGVzIGZyb20gMy42IGxpbmUgKEZyZWVCU0QzLjEpCiAgIAoxOTk5LTA2LTA0IDA5OjUxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0oaHJfZmlsZXN5cy5jLGludGVyZmFjZXMuYyx0Y3AuYyx1ZHAuYyxmcmVlYnNkMy5oKSBmaXggRnJlZUJTRDMuMSBpbmNsIEtlbiBLZXkncyB0Y3AvdWRwIHBhdGNoZXMKICAgCjE5OTktMDYtMDIgMTI6MTAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2FsYXJtLjM6CgogICAtIChzbm1wX2FsYXJtLjMpOiBkb2N1bWVudCB0aGUgbmV3IHNubXBfYWxhcm0oKSBjYWxscy4KICAgCjE5OTktMDYtMDEgMTc6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgc25tcF9hbGFybS5jLCBzbm1wX2FsYXJtLmgKLCBzbm1wX2FwaS5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYWxhcm0uYywgc25tcF9hbGFybS5oLCBzbm1wX2FwaS5jKToKICAgICAtIGltcGxlbWVudGVkIGEgZ2VuZXJpYyBhbGFybSBoYW5kbGVyIHRvIHJlZ2lzdGVyIGFsYXJtIGZ1bmN0aW9ucyB0bwogICAgICAgYmUgY2FsbGVkIGJhY2sgYWZ0ZXIgWCBwZXJpb2Qgb2YgdGltZSBhbmQgaXQgaGFuZGxlcyBmaWd1cmluZyBvdXQKICAgICAgIHdoaWNoIGlzIG5leHQgYW5kIGNhbGxpbmcgYWxhcm0oKSBhbmQgc2lnbmFsKCkgYXBwcm9wcmlhdGVseS4KICAgCjE5OTktMDYtMDEgMDc6MzAgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaCk6IFN1cHBvcnQgZm9yIHN0cmVhbS1iYXNlZCBzb2NrZXRzCiAgIAoxOTk5LTA2LTAxIDAyOjMyICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBHZW5lcmFsaXNlIGhhbmRsaW5nIG9mIGFkZHJlc3NlcyAody5yLnQgc2VudG8vcmVjdmZyb20pCiAgIAoxOTk5LTA2LTAxIDAyOjE3ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBHYXJiYWdlIGNvbGxlY3Rpb24gZm9yIFRyYWRpdGlvbmFsIFNBUEkgc2Vzc2lvbnMKICAgCjE5OTktMDUtMjggMTY6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS5jLAogICBkZWZhdWx0X3N0b3JlLmg6CgogICAtIChNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgpOgogICAgIC0gY3JlYXRlZCBnZW5lcmljIGRlZmF1bHQgdmFsdWUgc3RvcmFnZSBzcGFjZSBhbmQgcGFyc2VycyB0byByZWR1Y2UKICAgICAgIHRoZSBudW1iZXIgb2YgZnVuY3Rpb25zL2V0YyBjcmVhdGVkIGZvciB2YWx1ZXMgd2hpY2ggY29uZmlndXJlIHRoZQogICAgICAgbGlicmFyeS4KICAgCjE5OTktMDUtMjggMTY6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogc2F2ZSBhbmQgdXNlIGluZGV4IGNsYXVzZXMuCiAgIAoxOTk5LTA1LTI4IDA5OjI0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtKHNubXBfYXBpLmMpIC1jYXRjaCBvbmUgbW9yZSBlcnJvciBjbG9zZSBmcm9tIHNubXBfc2Vzc19jb3B5CiAgIAoxOTk5LTA1LTI4IDA5OjEyICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBTZXBhcmF0ZSBvdXQgY29weWluZyBhIHNlc3Npb24gYW5kIG9wZW5pbmcgYSBuZXcgb25lCiAgIAoxOTk5LTA1LTI4IDA4OjU3ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBVbml4IGRvbWFpbiAoZGF0YWdyYW0pIHNvY2tldCBzdXBwb3J0CiAgIAoxOTk5LTA1LTI4IDA4OjE0ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBzYXZlIGxvY2FsIHNvY2tldCBhZGRyZXNzIGluIGludGVybmFsIHNlc3Npb24gc3RydWN0dXJlCiAgIAoxOTk5LTA1LTI4IDA3OjAxICBkYXZlcwoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L01ha2VmaWxlLmluIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluKTogZml4IHByb2JsZW0gd2l0aCBudWxsIG1hY3JvCiAgIAoxOTk5LTA1LTI3IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBkb2N1bWVudCBkZWZhdWx0IG9pZCBrZXl3b3JkIGluIGhlbHAgbGluZS4KICAgCjE5OTktMDUtMjcgMTQ6MzcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXB0cmFwZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgZGVmYXVsdCBvaWQga2V5d29yZC4KICAgCjE5OTktMDUtMjcgMTQ6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IG5lZWQgYW4gaW5pdF9taWIoKS4KICAgCjE5OTktMDUtMjcgMTQ6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIChzbm1wdHJhcGRfaGFuZGxlcnMuYyk6IGltcGxlbWVudCB0aGUgZGVmYXVsdCB0cmFwIGhhbmRsZXIuCiAgIAoxOTk5LTA1LTI3IDA1OjE2ICBtc2xpZmNhawoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3NubXB1c20uYzoKCiAgIC0oZW5jb2RlX2tleWNoYW5nZSwgcmVhZF9jb25maWcsIHNubXB1c20pIGFDQyBmaXhlcyBieSBQS1kgKE1hcmtrdSBMYXVra2FuZW4pCiAgIAoxOTk5LTA1LTI2IDE3OjM4ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogSVBGV0FDQy1NSUIudHh0IChWMy1saW5lLjIpLCBJUEZXQUNDLU1JQi50eHQ6CgogICAtIChJUEZXQUNDLU1JQi50eHQpOiBhZGRlZCBTRVFVRU5DRSBPRi4KICAgCjE5OTktMDUtMjYgMTU6NTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBpbmNyZWFzZSBNQVhSRUFEQ09VTlQuCiAgIAoxOTk5LTA1LTI2IDE1OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjLzogaXBmd2FjYy5oIChWMy1iMy4yKSwgaXBmd2FjYy5oOgoKICAgLSAoaXBmd2FjYy5oKTogbWFrZSBpbnRvIGNvdW50ZXJzLgogICAKMTk5OS0wNS0yNiAxNToxOCAgaGFyZGFrZXIKCiAgICogbWlicy86IElQRldBQ0MtTUlCLnR4dCAoVjMtYjMuMSksIElQRldBQ0MtTUlCLnR4dDoKCiAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IGNoYW5nZSB0byBjb3VudGVycy4KICAgCjE5OTktMDUtMjYgMTU6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zd2luc3QuYyAoVjMtYjMuMSksIGhyX3N3aW5zdC5jOgoKICAgLSAoaHJfc3dpbnN0LmMpOiBtYWtlIHNvZnR3YXJlIGFwcGxpY2F0aW9uIHR5cGUgdW5rbm93biBpbnN0ZWFkIG9mIGFwcC4KICAgCjE5OTktMDUtMjYgMTE6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvOiBpcGZ3YWNjLmggKFYzLWIzLjEpLCBpcGZ3YWNjLmg6CgogICAtIChpcGZ3YWNjLmgpOiBwcm9wZXJseSBsb2NhdGUgdGhlIG1pYi4KICAgCjE5OTktMDUtMjYgMDg6MTYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYykgLSBpbmNsIHN5cy90eXBlcyB0byBmaXggSFAtVVggOS54IGJ1aWxkCiAgIAoxOTk5LTA1LTI0IDA1OjM2ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmU6CgogICAtY29uZmlndXJlIC0gc2F2ZSBvbmUgd2hpY2ggbG9va3MgZm9yIG5ldGRiL3NvY2tldCBoZWFkZXJzCiAgIAoxOTk5LTA1LTIzIDA4OjA0ICBtYXJ6CgogICAqIHRlc3RpbmcvcGFja2V0MS50eHQ6CgogICBmaWxlIHBhY2tldDEudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIzLgogICAKMTk5OS0wNS0yMSAxNToyOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL2tleXRvb2xzLmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wLmgsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3N5c3RlbS5jLAogICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZpZXcuYwosIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICAtIGxpYnJhcnkgY2hhbmdlcyB0byBidWlsZCBvbiBXaW4zMi4KICAgCjE5OTktMDUtMjEgMTE6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuY29uZiwgbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuY29uZiwgbWliMmMuc3RvcmFnZS5jb25mKToKICAgICAtIGNvbnZlcnQgdG8gc2l6ZV90IHN0b3JhZ2VzLgogICAgIC0gbWlzYyBldmFsIGZpeGVzLgogICAgIC0gbW9yZSBjbGVhbnVwIG9mIHRoZSBzdG9yYWdlIGRlZi4KICAgCjE5OTktMDUtMjEgMTE6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaDoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4LmgpOgogICAgIC0gaGVhZGVyX2NvbXBsZXhfcGFyc2Vfb2lkKCkgY3JlYXRlZC4KICAgICAtIGNvbnZlcnQgZXZlcnl0aGluZyB0byBzaXplX3QuCiAgIAoxOTk5LTA1LTIxIDA1OjU0ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMgc25tcF9hcGkuaCk6CiAgICAgLSAgTmV3IEFQSSBjYWxsIHRvIGNsb3NlIGRvd24gYWxsIG9wZW4gc2Vzc2lvbnMKICAgICAgICAoYWxzbyBjYWxsZWQgb24gYXBwbGljYXRpb24gc2h1dGRvd24pCiAgIAoxOTk5LTA1LTIxIDA1OjI0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtKHJlYWRfY29uZmlnLmMpIGNhc3QgZml4IHBlciBNYXJra3UgTGF1a2thbmVuCiAgIAoxOTk5LTA1LTIxIDAxOjI1ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6IEZpeCBpbmNvcnJlY3QgcG9pbnRlciBjYXN0CiAgIAoxOTk5LTA1LTIwIDAzOjQ2ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogVGVtcG9yYXJ5IGZpeCB0byBzb2NrZXQgYWRkcmVzcyBwcm9ibGVtcwogICAKMTk5OS0wNS0xOSAxODo0OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0X3Jlcy5oIChWMy1saW5lLjEpLCBob3N0X3Jlcy5oOgoKICAgLSAoaG9zdF9yZXMuaCkgZml4IEhBVkVfTkVUX0lGX1ZBUl9IIGRlZmluZSAod2FzIEhBVkVfTkVUX0lOX1ZBUl9IKQogICAKMTk5OS0wNS0xOSAxODowMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YXJfcm91dGUuYyAoVjMtbGluZS4yKSwgdmFyX3JvdXRlLmMKOgoKICAgLShtaWJJSS92YXJfcm91dGUuYykgLSBmaXggTGludXggUm91dGVNYXNrIGMvbyAiTmFuY3kiIG5hbUBjcy5jbXUuZWR1CiAgIAoxOTk5LTA1LTE5IDA4OjAyICBtYXJ6CgogICAqIHRlc3RpbmcvcGt0Z2VuLnR4dDoKCiAgIGZpbGUgcGt0Z2VuLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMy4KICAgCjE5OTktMDUtMTkgMDc6MTYgIG1hcnoKCiAgICogdGVzdGluZy9wYWNrZXQudHh0OgoKICAgZmlsZSBwYWNrZXQudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIzLgogICAKMTk5OS0wNS0xOSAwNzoxNCAgbWFyegoKICAgKiB0ZXN0aW5nL3BrdGdlbi5wbDoKCiAgIGZpbGUgcGt0Z2VuLnBsIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIzLgogICAKMTk5OS0wNS0xOSAwNToxMSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IE1vcmUgZ2VuZXJhbGlzZWQgaGFuZGxpbmcgb2Ygc29ja2V0IGFkZHJlc3NlcwogICAKMTk5OS0wNS0xOSAwMjozMyAgZGF2ZXMKCiAgICogY29uZmlnLmguaW46CgogICAtIChjb25maWcuaC5pbik6IEFkZGl0aW9uYWwgaW5jbHVkZSBwcm90ZWN0aW9uIGVudHJpZXMKICAgCjE5OTktMDUtMTggMDk6MjMgIGRhdmVzCgogICAqIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3N5c3RlbS5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jCiwgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYwosIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jOgoKICAgLSAoY29uZmlndXJlLmluIHNubXBsaWIvY29udGV4dF9wYXJzZS5jIHNubXBsaWIvcmVhZF9jb25maWcuYwogICAgICBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wdjMuYyBzbm1wbGliL3N5c3RlbS5jCiAgICAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMgYXBwcy9zbm1wYnVsa3dhbGsuYyBhcHBzL3NubXBkZWx0YS5jCiAgICAgIGFwcHMvc25tcGdldC5jIGFwcHMvc25tcGdldG5leHQuYyBhcHBzL3NubXBzZXQuYwogICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0YWJsZS5jIGFwcHMvc25tcHRlc3QuYwogICAgICBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdXNtLmMgYXBwcy9zbm1wd2Fsay5jCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYyBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwogICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYyBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKICAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMpOgogICAgICAtICBDbGVhbiB1cCBjb25kaXRpb25hbHMgcHJvdGVjdGluZyBpbmNsdWRlIGZpbGVzCiAgICAgICAgICAgKCAjaWYgSEFWRV9XSU5TT0NLX0ggLyAjZWxzZSAvICNlbmRpZiApCiAgIAoxOTk5LTA1LTE4IDA5OjAxICBtc2xpZmNhawoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKHh4L01ha2VmaWxlLmluKSByZW1vdmUgcmVmZXJlbmNlcyB0byBhcyB5ZXQgbWlzc2luZyBkaXNtYW4gZmlsZXMuCiAgIAoxOTk5LTA1LTE4IDA2OjI2ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMgc25tcF9hcGkuaCk6IE1vcmUgZ2VuZXJhbCBoYW5kbGluZyBvZiBQRFUgZmxhZ3MKICAgCjE5OTktMDUtMTcgMDc6MTcgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMKOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaCBhZ2VudC9zbm1wZC5jCiAgICAgIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgCiAgICAgLSBVc2UgYSBzaW5nbGUgYWRkcmVzcyBmaWVsZCB3aXRoaW4gdGhlIFBEVSBzdHJ1Y3R1cmUKICAgICAgICAgICAgICAgICAgKG9ic29sZXRpbmcgJ2FnZW50X2FkZHInKQogICAKMTk5OS0wNS0xNyAwNDozNiAgZGF2ZXMKCiAgICogYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfY2xpZW50LmMKICAgICAgYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jCiAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgIAogICAgIC0gVXNlIHRoZSBnZW5lcmljIHNvY2tldCBhZGRyZXNzICdzdHJ1Y3Qgc29ja2FkZHInLAogICAgICAgcmF0aGVyIHRoYW4gdGhlIElQLXNwZWNpZmljICdzdHJ1Y3Qgc29ja2FkZHJfaW4nCiAgIAoxOTk5LTA1LTE3IDA0OjM0ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYwo6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAgICBhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYyBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMKICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgCiAgICAgLSBVc2UgdGhlIGdlbmVyaWMgc29ja2V0IGFkZHJlc3NlcyAnc3RydWN0IHNvY2thZGRyJywKICAgICAgIHJhdGhlciB0aGFuIHRoZSBJUC1zcGVjaWZpYyAnc3RydWN0IHNvY2thZGRyX2luJwogICAKMTk5OS0wNS0xNyAwMzoyMCAgZGF2ZXMKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jIChWMy1saW5lLjEpLCBzbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogSW5pdGlhbGlzZSBzZXNzaW9uIHVzaW5nIGxpYnJhcnkgcm91dGluZQogICAKMTk5OS0wNS0xNyAwMzoxNyAgZGF2ZXMKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogSW5pdGlhbGlzZSBzZXNzaW9uIHVzaW5nIGxpYnJhcnkgcm91dGluZQogICAKMTk5OS0wNS0xNCAxMzo1OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBzbm1wbGliL3NubXB1c20uYwo6CgogICAtKGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyBzbm1wbGliL3NubXB1c20uYykgZml4ZXMgdG8gYnVpbGQgSFAgJiBBSVgKICAgCjE5OTktMDUtMTQgMDk6NDYgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBzbm1wbGliL3BhcnNlLmM6CgogICAtIChhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYwogICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwogICAgc25tcGxpYi9wYXJzZS5jKSBtb3JlIEFOU0ktQyB0b3VjaHVwcwogICAKMTk5OS0wNS0xNCAwNjo1NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYyBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMKICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaAogICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMKICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jCiAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jIHNubXBsaWIvc25tcF9hdXRoLmMpIG1vcmUgc2l6ZV90IGZpeGVzCiAgIAoxOTk5LTA1LTEzIDA5OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jIChWMy1saW5lLjMpLCB2YWNtX3ZhcnMuYwo6CgogICAtICh2YWNtX3ZhcnMuYyk6IFNldCBwb2ludGVycyB0byBOVUxMIGFmdGVyIGZyZWVpbmcgdGhlbS4KICAgCjE5OTktMDUtMTMgMDM6NTIgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXAuYyAoVjMtbGluZS4yKSwgaXAuYzoKCiAgIC0gKGlwLmMpOiBQcm9wZXJseSByZWdpc3RlciBJUCBtb2R1bGUgZ3JvdXAgb24gRnJlZS1CU0Qgc3lzdGVtcwogICAgICAgICAgICAgKHRoYW5rcyB0byBNaXRjaGVsbCBUYXNtYW4pCiAgIAoxOTk5LTA1LTEyIDExOjIyICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFydHlfcGFyc2UuYywgcmVhZF9jb25maWcuYwo6CgogICAtKHBhcnNlLmMgcGFydHlfcGFyc2UuYyByZWFkX2NvbmZpZy5jKSBubyBleGl0KCkgZnJvbSBsaWJyYXJ5OyByZXR1cm4gZXJyb3IKICAgCjE5OTktMDUtMTIgMTA6NTMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKSBjYWxsIHNubXBfc3luY2hfcmVzZXQgZnJvbSBzbm1wX3Nlc3NfY2xvc2UKICAgCjE5OTktMDUtMTEgMTQ6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogaHB1eC5jLCBocHV4Lmg6CgogICAtIChocHV4LmMsIGhwdXguaCk6IGludCAtPiBzaXplX3QgY29udmVyc2lvbnMuCiAgIAoxOTk5LTA1LTExIDE0OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaDoKCiAgIC0gKG1lbW9yeS5oKTogcmVtb3ZlIGV4dGVybi4KICAgCjE5OTktMDUtMTEgMTQ6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYyk6IHJlYWQgcmV0dXJucyBzc2l6ZV90IG5vdCBzaXplX3QuCiAgIAoxOTk5LTA1LTEwIDE0OjQ5ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgc25tcGxpYi9zbm1wX2FwaS5jOiBNaXgtdXAgb2YgVjFfSU5fVjIvVjJfSU5fVjEgZXJyb3IgY29kZSB3aGVuIEdFVEJVTEsKICAgCWluc2lkZSBWMSBzZXNzaW9uLgogICAKMTk5OS0wNS0xMCAxNDo0NyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9rZXl0b29scy5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3Rvb2xzLmM6CgogICBGaXhpbmcgc29tZSBtb3JlIHByb3RvdHlwZXMuIFBvaW50ZWQgb3V0IGJ5IE1hcmtrdSBMYXVra2FuZW4uCiAgIAoxOTk5LTA1LTA2IDA5OjIwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIC0gKHVjZC1zbm1wL3Ztc3RhdC5jKSAtIGNvbmRpdGlvbmFsbHkgaW5jbHVkZSBsaW1pdHMuaCBwZXIgRWR1YXJkIEtvdWNreS4KICAgCjE5OTktMDUtMDQgMTE6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBBZGRlZCAtLWVuYWJsZS1kZXZlbG9wZXIgZmxhZy4KICAgCjE5OTktMDUtMDQgMTE6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOgogICAgIC0gZml4ZXMgZm9yIGttdC4KICAgICAtIHBvcnRhYmlsaXR5IGVuaGFuY2VtZW50cy4KICAgCjE5OTktMDUtMDQgMTA6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIC0gKGtleXRvb2xzLmMpOiBkb24ndCB1c2UgSVNERigpLgogICAKMTk5OS0wNS0wNCAxMDozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgLSAoc2NhcGkuYyk6IGRvbid0IGR1bXAga2V5bGlzdC4KICAgCjE5OTktMDUtMDQgMDA6NTAgIG5iYQoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBfdmFycy5oCiwgc25tcGQuYywgc25tcGQuaCwgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywgbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMKLCBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsIG1pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMKLCBtaWJncm91cC9ob3N0L2hyX3ByaW50LmMsIG1pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgbWliZ3JvdXAvbWliSUkvYXQuYywKICAgbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIG1pYmdyb3VwL21pYklJL2lwLmMsIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiwgbWliZ3JvdXAvbWliSUkvdGNwLmMsIG1pYmdyb3VwL21pYklJL3VkcC5jLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKLCBtaWJncm91cC9zbXV4L3NtdXguYywgbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYwosIG1pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywKICAgbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsIG1pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBtaWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jCiwgbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBtaWJncm91cC91Y2Qtc25tcC9maWxlLmMsIG1pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYwosIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC9wYXNzLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jCiwgbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBtaWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLCBtaWJncm91cC92MnBhcnR5L2V2ZW50LmMKLCBtaWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYzoKCiAgIChtYW55KToJcmVtb3ZlIGNvbnN0IHNwZWMgZnJvbSBGaW5kVmFyTWV0aG9kLiBUaGF0IHdhcyB3cm9uZwogICAKMTk5OS0wNS0wNCAwMDo0NyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAobWliLmMpOglGaXggcHJvYmxlbSAoY29yZSBkdW1wKSB3aXRoIE1JQkZJTEVTIGVudmlyb25tZW50IHZhcmlhYmxlLgogICAKMTk5OS0wNS0wMyAxNTozOCAgbmJhCgogICAqIGFnZW50L3NubXAycC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYwosIGFnZW50L3NubXBkLmgsIGFnZW50L3ZpZXdfcGFyc2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLAogICBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgKLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmgsCiAgIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYwosIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYwosIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKLCBzbm1wbGliL2FjbC5oLCBzbm1wbGliL2FjbF9wYXJzZS5jLAogICBzbm1wbGliL2FsbF9zeXN0ZW0uaCwgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvYXNuMS5oCiwgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL2NvbnRleHQuYywKICAgc25tcGxpYi9jb250ZXh0LmgsIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvaW50NjQuaCwgc25tcGxpYi9rZXl0b29scy5jCiwgc25tcGxpYi9rZXl0b29scy5oLCBzbm1wbGliL2xjZF90aW1lLmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuaCwgc25tcGxpYi9saWJzbm1wLmgsIHNubXBsaWIvbWQ1LmMKLCBzbm1wbGliL21kNS5oLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3BhcnR5LmMsCiAgIHNubXBsaWIvcGFydHkuaCwgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvcmVhZF9jb25maWcuaCwKICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NjYXBpLmgsIHNubXBsaWIvc25tcC10Yy5oCiwgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcC5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfZGVidWcuaCwgc25tcGxpYi9zbm1wX2ltcGwuaCwKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHVzbS5oLCBzbm1wbGliL3NubXB2My5jCiwgc25tcGxpYi9zbm1wdjMuaCwgc25tcGxpYi9zeXN0ZW0uaCwKICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3Rvb2xzLmgsIHNubXBsaWIvdmFjbS5jCiwgc25tcGxpYi92YWNtLmgsIHNubXBsaWIvdmlldy5jLCBzbm1wbGliL3ZpZXcuaAo6CgogICAoKi5bY2hdKToJcGF0Y2hlcyB0byB0eXBlcyB0byB3aXBlIHdhcm5pbmdzIGZyb20gY29tcGlsZXJzCiAgIAl3aXRoIG1vcmUgc3RyaWN0IG5vaXNlIGxldmVscy4gKGFsc28gZ29vZCB3aGVuIGNvbXBpbGluZwogICAJd2l0aCBnY2MgLVdhbGwgLXBlZGFudGljIC1Xd3JpdGUtc3RyaW5ncyAtV2Nhc3QtcXVhbCkKICAgCjE5OTktMDUtMDMgMTI6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYwosIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL2FsbF9nZW5lcmFsX2xvY2FsLmgsIHNubXBsaWIvYWxsX3N5c3RlbS5oLAogICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9zY2FwaS5jCiwgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oLCB0ZXN0aW5nL01ha2VmaWxlLmluCiwgdGVzdGluZy9ULmMsIHRlc3RpbmcvZXRpbWV0ZXN0LmMsCiAgIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLCB0ZXN0aW5nL21pc2N0ZXN0LmMsCiAgIHRlc3Rpbmcvc2NhcGl0ZXN0LmM6CgogICAtIChNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywgTWFrZWZpbGUuaW4sIGhlYWRlcl9jb21wbGV4LmMsCiAgICAgTWFrZWZpbGUuaW4sIGVuY29kZV9rZXljaGFuZ2UuYywgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLAogICAgIGFsbF9nZW5lcmFsX2xvY2FsLmgsIGFsbF9zeXN0ZW0uaCwga2V5dG9vbHMuYywgbGNkX3RpbWUuYywgc2NhcGkuYywKICAgICBzbm1wX2F1dGguYywgc25tcHVzbS5jLCB0b29scy5jLCB0b29scy5oLCBNYWtlZmlsZS5pbiwgVC5jLAogICAgIGV0aW1ldGVzdC5jLCBrZXltYW5hZ2V0ZXN0LmMsIG1pc2N0ZXN0LmMsIHNjYXBpdGVzdC5jKToKICAgICAtIG51a2VkIGFsbF9nZW5lcmFsX2xvY2FsLmggYW5kIGFsbF9zeXN0ZW0uaC4KICAgICAtIG1ha2VmaWxlaW5kZXBlbmQgYXMgd2VsbC4KICAgCjE5OTktMDUtMDMgMDc6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogZml4IC1BIGZsYWcsIHdoaWNoIGdvdCBicm9rZW4gZHVyaW5nIHNvbWVvbmVzIGNoYW5nZXMuCiAgIAoxOTk5LTA1LTAzIDA3OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc2NhcGkuaAosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi9zbm1wdjMuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHVzbVVzZXIuYywgdXNtVXNlci5oLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgICAgc25tcFRhcmdldEFkZHJFbnRyeS5oLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgc25tcHRyYXBkLmMsIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgsCiAgICAgc2NhcGkuYywgc2NhcGkuaCwgc25tcF9hcGkuYywgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAtIHNodXRkb3duIGFuZCBzdG9yZSBjYWxsYmFjayB1c2FnZS4KICAgCjE5OTktMDUtMDMgMDc6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIC0gKGtleXRvb2xzLmMpOiAtV2FsbCBmaXggaW5pdGlhbGl6aW5nIGEgdmFyaWFibGUuCiAgIAoxOTk5LTA1LTAxIDA3OjUyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suYywgY2FsbGJhY2suaDoKCiAgIC0gKGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgpOiByZW5hbWVkIHNubXBfY2FsbGJhY2sgdG8gc25tcF9nZW5fY2FsbGJhY2suCiAgIAoxOTk5LTA0LTI5IDA4OjQ0ICBoYXJkYWtlcgoKICAgKiBSRUFETUUud2luMzI6CgogICAtIChSRUFETUUud2luMzIpOiBOb3RlIGNoYW5nZSBmcm9tIFJvYmVydCBTdG9yeS4KICAgCjE5OTktMDQtMjkgMDc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHVzbS5oLCBzbm1wbGliL3NubXB2My5jCiwgc25tcGxpYi9zbm1wdjMuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmMsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLCBzbm1wdXNtLmMsCiAgICAgc25tcHVzbS5oLCBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgIC0gdXNlIHRoZSBjYWxsYmFjayBtZWNoYW5pc20gZm9yIHBvc3QtY29uZmlnIHN0dWZmLgogICAKMTk5OS0wNC0yOSAwNzozMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oOgoKICAgLSAoTWFrZWZpbGUuaW4sIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgpOiBjYWxsYmFjayBBUEkuCiAgIAoxOTk5LTA0LTI4IDA3OjU5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBlbnVtICNkZWZpbmVzIGNyZWF0ZWQKICAgCjE5OTktMDQtMjcgMDk6NTEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYykgYWRkIGlmX3R5cGVfZnJvbV9uYW1lIHRvIGNvbnZlcnQgaW50ZXJmYWNlIG5hbWUgdG8gdHlwZS4KICAgCjE5OTktMDQtMjYgMTI6MzcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpIC0gZml4IG90aGVyIHVzZSBvZiByZXF1ZXN0J3MgY2FsbGJhY2sgZGF0YQogICAKMTk5OS0wNC0yNiAxMjoxMSAgbmJhCgogICAqIHZlcnNpb24uaCwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwgYWdlbnQvYXV0b19ubGlzdC5jLAogICBhZ2VudC9hdXRvX25saXN0LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaAosIGFnZW50L3NubXAycC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsIGFnZW50L3ZpZXdfcGFyc2UuYwosIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBtYW4vc25tcC5jb25mLjUuZGVmLAogICBtYW4vc25tcGQuMS5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIHNubXBsaWIvYWNsX3BhcnNlLmMsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2FzbjEuaCwKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgKLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaCwKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuaCwgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcC5oCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmgsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB1c20uaCwgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zbm1wdjMuaAosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmgsCiAgIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaCwgdGVzdGluZy9NYWtlZmlsZS5pbgo6CgogICAKICAgKi8qOiByZXBsYWNlIGhvcnJpYmxlIChjaGFyICopInN0cmluZyIgd2l0aCBjb25zdCBzcGVjaWZpZXJzIGluIHJlbGV2YW50CiAgIAlmdW5jdGlvbnMuCiAgIAoxOTk5LTA0LTI2IDEyOjA5ICBuYmEKCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYywgc25tcF9wYXJzZV9hcmdzLmMsCiAgIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLAogICBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywKICAgc25tcHRhYmxlLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jLAogICBzbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcHVzbS5jLCBzbm1wd2Fsay5jOgoKICAgCiAgIAogICBhcHBzLyouYzogdXNlIHNubXBfcGVycm9yIHRvIHJlcG9ydCBlcnJvcnMgZnJvbSByZWFkX29iamlkIGFuZCBmcmllbmRzCiAgIGFwcHMvc25tcHRyYXBkLmM6IGZpeCBhIGJ1cyBlcnJvciB3aGVuIHVzaW5nIC1TIGFuZCByZWNlaXZpbmcgYW4KICAgCWVudGVycHJpc2Ugc3BlY2lmaWMgdHJhcC4KICAgCjE5OTktMDQtMjYgMTI6MDMgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAKICAgKGlmLmMpIG1ha2UgdGhlIHdpZHRoIG9mIHNubXBuZXQgLWkgKGFuZCAtbykgYWRhcHQgdG8gdGhlIGxlbmd0aCBvZiByZXR1cm5lZAogICAJc3RyaW5ncwogICAKMTk5OS0wNC0yNiAxMTo0OCAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgCiAgIAogICAtIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jOiBuZXcgbWliIHByaW50ZXI6IG1pYl9wcmludF90cmVlCiAgICAgaW5zcGlyZWQgYnkgYSByZWZlcmVuY2UgdG8gc25teCBpbiBjb21wLnByb3RvY29scy5zbm1wCiAgIC0gYXBwcy9zbm1wdHJhbnNsYXRlOiBsZXQgdGhlIC1wIG9wdGlvbiBjYWxsIHRoaXMgbmV3IHByaW50ZXIKICAgLSBzbm1wbGliL3NubXBfYXBpLmM6IHNvbWUgbGVmdCBvdmVyIF9fUCBtYWNyb3MKICAgCjE5OTktMDQtMjYgMTE6MjEgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmg6CgogICAKICAgKHBhcnNlLmgpIFNpbGx5IHNwZWxpbmcgbWlzdGVhayAoQUNDRVNTX0NSQUVURSkKICAgCjE5OTktMDQtMjYgMDk6MjEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIuYykgLSB1c2UgcmVxdWVzdCBjYWxsYmFjaydzIGRhdGEgaWYgcmVxdWVzdCBzcGVjaWZpZXMgYSBjYWxsYmFjay4KICAgCjE5OTktMDQtMjMgMTM6MDUgIG1zbGlmY2FrCgogICAqIFJFQURNRS50aHJlYWQ6CgogICAtIFJFQURNRS50aHJlYWQgLSBsb25nIG5lZWRlZCBkb2N1bWVudCBkZXNjcmliaW5nIGhvdyB0byB1c2UgU2luZ2xlIEFQSQogICAKMTk5OS0wNC0yMiAxMDo1MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGtleXRvb2xzLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgKLCBzbm1wX2NsaWVudC5jLCBzbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwga2V5dG9vbHMuYyk6IEFub3RoZXIgdjMgYnJhbmNoIHVwZGF0ZS4KICAgCjE5OTktMDQtMjIgMDc6NTcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IENyZWF0ZWQgYSBuZXcgc3VwZXItZHVwZXIgbWliMmMgY29uZmlndXJhdGlvbgogICAgIGZpbGUgdGhhdCB0YWtlcyBjYXJlIG9mIGp1c3QgYWJvdXQgZXZlcnl0aGluZyBpZiB5b3UgaGF2ZSBhIG1pYiB0aGF0CiAgICAgZG9lcyBpdHMgb3duIHN0b3JhZ2UgKHJhdGhlciB0aGFuIGhhdmluZyB0byBwb2tlIHNvbWV0aGluZyBlbHNlIGZvcgogICAgIGluZm9ybWF0aW9uKS4KICAgCjE5OTktMDQtMjIgMDc6NTYgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmY6CgogICAtIChtaWIyYywgbWliMmMuY29uZik6IGFsbG93IE5vQWNjZXNzIHRvIGJlIHByb2Nlc3NlZCwgYW5kIHVzZSBza2lwaWY6CiAgICAgZGlyZWN0aXZlcyB3aGVyZSBuZWVkZWQgYmVjYXVzZSBvZiBpdC4KICAgCjE5OTktMDQtMjIgMDc6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IGNyZWF0ZWQgKnJlYWRfY29uZmlnX3N0b3JlX2RhdGEoKTsKICAgCjE5OTktMDQtMjIgMDc6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogbWFrZSBoZWFkZXJfY29tcGxleCgpIGFjY2VwdCBOVUxMcy4KICAgCjE5OTktMDQtMjAgMjE6MzkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmY6CgogICAtIChtaWIyYy52YXJ0eXBlcy5jb25mKTogcmVtb3ZlIHVuLXVzZWQgdnR5cGUsIHBhcnNlciBmaWVsZHMuCiAgIAoxOTk5LTA0LTIwIDIxOjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgLSAobWliMmMuY29uZik6IGNsZWFuIHVwIHNraXBpZiByZWdleHBzIGEgYml0LgogICAKMTk5OS0wNC0yMCAxNjoxMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogYSBsaXR0bGUgbW9yZSBjbGVhbiB1cC4KICAgCjE5OTktMDQtMjAgMTY6MDQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmY6CgogICAtIChtaWIyYywgbWliMmMuY29uZik6IHZhcmlhYmxlIG5hbWUgY29udmVyc2lvbnM6CiAgICAgLSB2YXJpYWJsZVR5cGVzIC0+IHZhcmlhYmxlcwogICAgIC0gY25hbWUgLT4gTkFNRQogICAKMTk5OS0wNC0yMCAxNTozMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZgo6CgogICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6CiAgICAgLSBjb21wbGV0ZWx5IHJlLWhhY2tlZDoKICAgICAgIC0gZW50aXJlIGNvZGUgYmFzZSBpcyBub3cgcHV0IGludG8gdGhlIC5jb25mIGZpbGVzIHJhdGhlciB0aGFuIGluCiAgICAgICAgIHRoZSBtaWIyYyBwcm9ncmFtLiAgVGhpcyBzaG91bGQgZW50aXRsZSBtaWIyYyB0byBiZSB1c2VkIG1vcmUKICAgICAgICAgZ2VuZXJpY2FsbHksIGFuZCBjb3VsZCBwcm9kdWNlIGRpZmZlcmVudCB0eXBlcyBvZiBjb2RlIHRlbXBsYXRlcwogICAgICAgICBiYXNlZCBvbiB0aGUgLmNvbmYgZmlsZSBpdCBpcyBnaXZlbi4gIEluIHRoZW9yeSwgaXQgc2hvdWxkIGJlCiAgICAgICAgIGFibGUgdG8gcHJvZHVjZSBDIGNvZGUgZm9yIGEgbm9uLXVjZC1zbm1wIGFnZW50LCBvciBldmVuIGJldHRlciwKICAgICAgICAgYW55IHR5cGUgb2YgY29kZSAobm90IGp1c3QgQykgZm9yIHNvbWV0aGluZyBlbHNlIGJhc2VkIG9uIG1pYgogICAgICAgICBpbmZvcm1hdGlvbi4KICAgICAgIC0gVGhlIGRvd24gc2lkZSwgaXMgdGhhdCB0aGUgY3VycmVudCAuY29uZiBmaWxlcyBhcmUgbm93IGFtYmlndW91cwogICAgICAgICBhZ2FpbiBhbmQgZGlmZmljdWx0IHRvIHVuZGVyc3RhbmQgd2l0aG91dCBiZWluZywgd2VsbCwgbWUuICBUaGUKICAgICAgICAgdXAgc2lkZSBpcyB0aGF0IEknbSBzdXJlIERhdmUgU2hpZWxkIHdpbGwgZ28gdGhyb3VnaCBhbmQgY2xlYW4KICAgICAgICAgaXQgdXAgZm9yIG1lIGxpa2UgaGUgZGlkIGxhc3QgdGltZS4gIEhhIGhhLiAgSSB3b25kZXIgaWYgaGUnbGwKICAgICAgICAgcmVhZCB0aGlzPyAoSWYgc28sIHNlZSBtZSBmaXJzdCkuCiAgIAoxOTk5LTA0LTIwIDExOjI4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mCjoKCiAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKTogbW9yZSB1cGRhdGVzLgogICAKMTk5OS0wNC0xOSAyMToxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90b29scy5oOgoKICAgLSAodG9vbHMuaCk6IG5ldyBjb252ZW5pZW5jZSBtYWNybzogU05NUF9NQUxMT0NfU1RSVUNUKHN0cnVjdE5hbWUpLgogICAKMTk5OS0wNC0xOSAyMToxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOiBkb24ndCBmcmVlIHRoaW5ncyB0aGF0IGFyZSBOVUxMLgogICAKMTk5OS0wNC0xOSAyMToxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IERvbid0IHNubXBfc2V0X3Zhcl9vYmppZCBpZiBuYW1lIGlzIE5VTEwgaW4KICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCkuCiAgIAoxOTk5LTA0LTE5IDIxOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgIC0gY3JlYXRlZCBhIG1vcmUgY29udmVuaWVudCByZWFkX2NvbmZpZ19yZWFkX2RhdGEoKSBmdW5jdGlvbiB0bwogICAgICAgZ2VuZXJpY2FsbHkgcmVhZCBhIHRva2VuIGludG8gYSBnaXZlbiB2YXJpYWJsZS4KICAgICAtIGNsZWFuZWQgdXAgcGVyc2lzdGVudCBzdG9yYWdlIHBhcnNpbmcgcm91dGluZXMuCiAgICAgLSB1c2UgcHJldmlvdXNseSBtYWxsb2NlZCBzcGFjZSBpbiBzb21lIHJvdXRpbmVzLCBvciBtYWxsb2MgaXQgZm9yCiAgICAgICB0aGVtIGlmIHRoZSBzdG9yYWdlIGFyZWEgaXMgTlVMTC4KICAgCjE5OTktMDQtMTkgMjE6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogTlVMTCBjaGVja2luZy4KICAgCjE5OTktMDQtMTkgMjE6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYmluY2wuaDoKCiAgIC0gKG1pYmluY2wuaCk6IGFkZCByZWFkX2NvbmZpZy5oLgogICAKMTk5OS0wNC0xOSAyMTowMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZgo6CgogICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6CiAgICAgLSByZXdyb3RlIG1pYjJjIHRvIGJlIG1vcmUgZGVwZW5kZW50IG9uIC5jb25mIGZpbGVzLiAgVGhlIG1haW4gLmNvbmYKICAgICAgIGZpbGUgbm93IGNvbnRhaW5zIHRoZSBjb2RlIGl0c2VsZi4KICAgICAtIG5lZWQgdG8gd3JpdGUgYSBmb3JlYWNoKG1pYm5vZGUpIHR5cGUgcGFyc2VyIG5leHQuCiAgIAoxOTk5LTA0LTE4IDA2OjU0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaDoKCiAgIC0gKGlwZndhY2MuaCkgc3ViZGlyIGNoYW5nZSBwZXIgSm9lIFBydWV0dHQ6IDkgLT4gMTAKICAgCjE5OTktMDQtMTYgMjE6MzQgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHZlcnNpb24uaCwgRkFRLCBSRUFETUUsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTMgKQogICAKMTk5OS0wNC0xNiAyMToyNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgLSAoc25tcHRyYXBkLjgpOiBtYW4gcGF0Y2ggZnJvbSBOaWVscwogICAKMTk5OS0wNC0xNiAyMToyNyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiB1cGRhdGVkCiAgIAoxOTk5LTA0LTE2IDIxOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgLSAoc25tcF9hdXRoLmMpOiByZW1vdmVkIGZpeCBub3RlLgogICAKMTk5OS0wNC0xNiAyMToxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLmg6CgogICAtIChzbm1wLmgpOiBTTk1QQURNSU5MRU5HVEggZGVmaW5pdGlvbi4KICAgCjE5OTktMDQtMTYgMjE6MTMgIGhhcmRha2VyCgogICAqIG1pYnMvRElTTUFOLVNDUklQVC1NSUIudHh0OgoKICAgLSAoRElTTUFOLVNDUklQVC1NSUIudHh0KTogYWRkZWQgdG8gbWlicyBkaXIuCiAgIAoxOTk5LTA0LTE2IDIxOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5oOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguaCk6IHByb3RvdHlwZXMuCiAgIAoxOTk5LTA0LTE2IDIxOjExICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBjaGFuZ2VkIGRlZmF1bHQgc3RvcmUgbG9jYXRpb24gdG8gL3Zhci91Y2Qtc25tcAogICAKMTk5OS0wNC0xNiAyMToxMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogQWRkZWQgdjMgdGVhbSBtZW1iZXJzLgogICAKMTk5OS0wNC0xNiAwODozMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKSAiLW0iIG9yIE1JQlM6IGNhbiBzcGVjaWZ5IE1JQiBtb2R1bGUgYnkgZmlsZSBuYW1lLgogICAKMTk5OS0wNC0xNiAwNzo1NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9JUEZXQ0hBSU5TLU1JQi50eHQ6CgogICAtIChJUEZXQ0hBSU5TLU1JQi50eHQpIGlwZndDaGFpblRhYmxlIHtpcGZ3IDF9IGZpeAogICAKMTk5OS0wNC0xNiAwNzozMCAgbXNsaWZjYWsKCiAgICogbWlicy9JUEZXQUNDLU1JQi50eHQ6CgogICAtIChJUEZXQUNDLU1JQi50eHQpIGNoYW5nZSBtb2R1bGUgbmFtZSBmcm9tIElQRldBRE0tTUlCIHRvIElQRldBQ0MtTUlCLgogICAKMTk5OS0wNC0xNCAxNjo1NiAgbXNsaWZjYWsKCiAgICogYXBwcy86IHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMKLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYzoKCiAgIC0gYXBwcyB0aGF0IHVzZSBzbm1wX2ZpeF9wZHUgbXVzdCBjbGVhbiB1cCB0aGUgcmVzcG9uc2UgUERVICEKICAgCjE5OTktMDQtMTQgMTY6MzEgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oOgoKICAgLSAoc25tcF9hZ2VudCxjLCBzbm1wX2FwaS5bY2hdLCBzbm1wX2NsaWVudC5bY2hdKSBmaXggdmFyaWFibGVfbGlzdCB3aXRoIGJ1aWx0LWluIHN0b3JhZ2UKICAgCjE5OTktMDQtMTQgMTU6NTIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogaW5pdF9zbm1wKCJzbm1wYXBwIikuCiAgIAoxOTk5LTA0LTE0IDE1OjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKSBGaWxlIHBvaW50ZXIgaW5pdGlhbGl6ZWQgdG8gIiIgYmVmb3JlIGZpcnN0IHVzZS4KICAgCjE5OTktMDQtMTQgMTU6MjkgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKSBpbml0X3NubXAgdGFrZXMgYXJndW1lbnQ7ICIiIHVzZWQuCiAgIAoxOTk5LTA0LTEzIDE2OjAzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc25tcHRyYXBkIG9wdGlvbiB0byBpZ25vcmUgYXV0aCB0cmFwcywgYWRkIC1TIG9wdGlvbiwgbG9nIHRlcm1pbmF0aW9uLgogICAKMTk5OS0wNC0xMyAxNjowMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIG5pY2VyIHBhcnNlciBtZXNzYWdlcyAoaW5jbHVkZSBmaWxlIG5hbWVzKS4gQ29ycmVjdCBoZWxwIGZvciAtUGMuCiAgICAgLSBBZGQgRlJBTUUtUkVMQVktRFRFLU1JQiBhcyByZXBsYWNlbWVudCBmb3IgUkZDLTEzMTUKICAgCjE5OTktMDQtMTMgMTU6NTggIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBfY29uZmlnLjUuZGVmLCBzbm1wdHJhcC4xLAogICBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBfY29uZmlnLjUuZGVmLCBzbm1wdHJhcC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20KICAgICBOaWVscyBCYWdnZXNlbjoKICAgICAtIGNsZWFuIHVwIHNtYWxsIGJ1Z3MuCiAgIAoxOTk5LTA0LTEzIDE1OjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzdXBwb3J0IC1QLgogICAKMTk5OS0wNC0xMyAxNTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtICh2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBiZXR0ZXIgY2hlY2tpbmcgb2YgLmNvbmYgZmlsZSBwYXJzaW5nIGxpbmUgcmVxdWlyZW1lbnRzLgogICAKMTk5OS0wNC0xMyAxNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gbG9nIHdpdGggdGltZXN0YW1wIGF0IHNodXRkb3duLgogICAKMTk5OS0wNC0xMyAxNTozNiAgaGFyZGFrZXIKCiAgICogbWlicy86IFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIFNOTVAtUFJPWFktTUlCLnR4dCwKICAgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0OgoKICAgLSAoU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwgU05NUC1QUk9YWS1NSUIudHh0LAogICAgIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmaXggbW9kdWxlIGxvY2F0aW9ucyBmb3IgYnJva2VuIG1pYnMuCiAgIAoxOTk5LTA0LTEzIDE1OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICAtIChwYXNzLmMpOiBQYXRjaCBmcm9tIEppbSBNYXI6CiAgICAgLSBhZGQgY2FwYWJpbGl0eSBmb3IgYmluYXJ5IG9jdGV0IHN0cmluZ3MgaW4gcGFzcyBzY3JpcHRzLgogICAKMTk5OS0wNC0xMyAxNToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgLSAoc3lzdGVtX21pYi5jKTogbWFrZSBzeXNEZXNjciByZWFkLW9ubHkuCiAgIAoxOTk5LTA0LTEzIDE1OjE5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBEYW5pZWwgSGFnZXJ0eToKICAgICAtIGZpeCBsaWJ3cmFwIHRvIG9ubHkgYWRkIHRoZSBsaWJyYXJ5IHRvIHRoZSBhZ2VudC4KICAgCjE5OTktMDQtMTMgMDg6NDMgIGhhcmRha2VyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIC0gKFJFQURNRS53aW4zMik6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgIC0gYWRkIGEgVVJMIHJlZmVyZW5jZSB0byBjeWd3aW4uCiAgIAoxOTk5LTA0LTEyIDIyOjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMpOiBtYWtlIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUgdG8gcG9zc2libGUgY3JlYXRlIGEKICAgICB2YXJsaXN0IGJlZm9yZSBhZGRpbmcgc29tZXRoaW5nIHRvIGl0LgogICAKMTk5OS0wNC0xMiAyMjoxNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IG1ha2UgZGlzcGxheWVkIG1pYiBub2RlIGluZm8gaW50byB0d28gY29sdW1ucyBpbnN0ZWFkIG9mIG9uZS4KICAgCjE5OTktMDQtMTIgMjI6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuaDoKCiAgIC0gKGhyX3V0aWxzLmgpOiByZW1vdmUgdmFyaWFibGUgbmFtZXMgZnJvbSBwcm90b3R5cGVzICh3YXMgY2F1c2luZyBwcm9ibGVtcykuCiAgIAoxOTk5LTA0LTEyIDIyOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmg6CgogICAtIChtaWJpbmNsLmgpOiBpbmNsdWRlIHN5cy90aW1lLmguCiAgIAoxOTk5LTA0LTEyIDIyOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4Lmg6CgogICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKTogZGVhbCB3aXRoIG1vcmUgY29tcGxleCBkYXRhCiAgICAgc3RydWN0dXJlcyB3aXRoIG11bHRpcGxlIGFuZCB2YXJpYWJsZSBsZW5ndGggaW5kZXhlcy4KICAgCjE5OTktMDQtMTIgMjI6MTIgIGhhcmRha2VyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIC0gKFJFQURNRS53aW4zMik6IG5ldyBSRUFETUUgZnJvbSBKb2UgTWFyem90LgogICAKMTk5OS0wNC0wNyAxNTowMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSh1c21Vc2VyLmMsc3lzdGVtLmMpIHBsdWcgbWVtIGxlYWs7IChzbm1wX2FwaS5jKSBlbmZvcmNlIGFycmF5IGxpbWl0LgogICAKMTk5OS0wNC0wNyAxMjoyMyAgbXNsaWZjYWsKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIC0oYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMgc25tcGxpYi90b29scy5jKSBtb3ZlIGtleXN0cm9rZSBmdW5jdGlvbnMgdG8gYXBwbGljYXRpb24uCiAgIAoxOTk5LTA0LTA3IDEyOjE3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuYzoKCiAgIC0oaXBmd2NoYWlucy5jKSByZW1vdmUgbXVsdGlwbGUgZGVmaW5pdGlvbnMgb2YgTUFUQ0hfRkFJTEVECiAgIAoxOTk5LTA0LTA3IDExOjU5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wMnAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvdmlld19wYXJzZS5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMsIGFwcHMvc25tcGRlbHRhLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywKICAgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9jb250ZXh0LmgsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL3BhcnR5LmgsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9pbXBsLmgsIHNubXBsaWIvdmFjbS5oLCBzbm1wbGliL3ZpZXcuaAo6CgogICAtIChhZ2VudC9zbm1wMnAuYyBhZ2VudC9zbm1wX2FnZW50LmMgYWdlbnQvc25tcF92YXJzLmgKICAgYWdlbnQvdmlld19wYXJzZS5jIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYyBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYyBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYyBhcHBzL3NubXBkZWx0YS5jCiAgIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwZC5jIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYwogICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYyBzbm1wbGliL2FjbF9wYXJzZS5jCiAgIHNubXBsaWIvY29udGV4dC5oIHNubXBsaWIvY29udGV4dF9wYXJzZS5jIHNubXBsaWIvcGFydHkuaAogICBzbm1wbGliL3BhcnR5X3BhcnNlLmMgc25tcGxpYi9yZWFkX2NvbmZpZy5jIHNubXBsaWIvc25tcF9hcGkuYwogICBzbm1wbGliL3NubXBfYXV0aC5jIHNubXBsaWIvc25tcF9pbXBsLmggc25tcGxpYi92YWNtLmgKICAgc25tcGxpYi92aWV3LmgpICBmZ2V0cyB1c2Ugc2l6ZW9mIG1vc3RseSwgb2lkIGJhc2Ugc2l6ZSBpcyBNQVhfT0lEX0xFTgogICAKMTk5OS0wNC0wNyAxMTozNCAgaGFyZGFrZXIKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmM6CgogICAtIChlbmNvZGVfa2V5Y2hhbmdlLmMpOiByZW1vdmFsIG9mIGR1cGxpY2F0ZSBmdW5jdGlvbnMuCiAgIAoxOTk5LTA0LTA3IDExOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzLzogZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wdXNtLmM6CgogICAtIChlbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXB1c20uYyk6IGRlYnVnZ2luZyBjb252ZXJzaW9ucy4KICAgCjE5OTktMDQtMDcgMTE6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBtaWJJSS9zeXNPUlRhYmxlLmMsIG1pYklJL3ZhY21fdmFycy5jLCBzbXV4L3NtdXguYwosIHNubXB2My9zbm1wRW5naW5lLmMsIHNubXB2My91c21Vc2VyLmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYwo6CgogICAtICh1Y2REZW1vUHVibGljLmMsIHN5c09SVGFibGUuYywgdmFjbV92YXJzLmMsIHNtdXguYywgc25tcEVuZ2luZS5jLAogICAgIHVzbVVzZXIuYywgc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6CiAgICAgLSBkZWJ1Z2dpbmcgc3RhdGVtZW50IGNvbnZlcnNpb24KICAgCjE5OTktMDQtMDcgMTE6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzY2FwaS5jLCBzbm1wdjMuYzoKCiAgIC0gKHNjYXBpLmMsIHNubXB2My5jKTogZGVidWcgdHlwb3MgYW5kIGluY2x1ZGUgZmlsZSBhZGRpdGlvbnMuCiAgIAoxOTk5LTA0LTA3IDEwOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jOgoKICAgLSAoc25tcF9taWIuYyk6IHJlbW92ZWQgdW5ubmVlZGVkIGhlYWRlcl9zbm1wKCkuCiAgIAoxOTk5LTA0LTA3IDEwOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RlYnVnLmg6CgogICAtIChkZWJ1Zy5oKTogcmVtb3ZlZC4KICAgCjE5OTktMDQtMDcgMTA6NDEgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvYWxsX2dlbmVyYWxfbG9jYWwuaCwKICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2tleXRvb2xzLmgsCiAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oCjoKCiAgIC0gKGNvbmZpZy5oLmluLCBzbm1wX3ZhcnMuYywgZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wdHJhcGQuYywKICAgICBNYWtlZmlsZS5pbiwgYWxsX2dlbmVyYWxfbG9jYWwuaCwga2V5dG9vbHMuYywga2V5dG9vbHMuaCwKICAgICBsY2RfdGltZS5jLCBtZDUuYywgcmVhZF9jb25maWcuYywgc2NhcGkuYywgc25tcF9hcGkuYywgc25tcHVzbS5jLAogICAgIHNubXB2My5jLCB0b29scy5jLCB0b29scy5oKToKICAgICAtIG1pc2MgbWVyZ2luZywgaW5jbHVkaW5nIGZpeGVzIGFuZCBkZWJ1Z2dpbmcgc3RhdGVtZW50IGNoYW5nZXMgdG8KICAgICAgIG5ld2VyIG1vZGVsLgogICAgIC0gYSBmZXcgLVdhbGwgZml4ZXMuCiAgIAoxOTk5LTA0LTA3IDA2OjE3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIHNubXBsaWIvYWxsX3N5c3RlbS5oLAogICBzbm1wbGliL2RlYnVnLmgsIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jCiwgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcC5oCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zeXN0ZW0uaAosIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oLAogICB3aW4zMi9jb25maWcuaCwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIC0gKCkgbW9yZSBBTlNJIGhlYWRlciBmaXh1cHM7IHRvdWNodXAgZm9yIE0kIFdpbjMyIGJ1aWxkCiAgIAoxOTk5LTA0LTA2IDIyOjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKSBtb3JlIHYycGFydHkgcmV3b3JrIG5lZWRlZAogICAKMTk5OS0wNC0wNiAyMjoxMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtICh2YWNtX3ZhcnMuYykgLSBzZXQgZ2xvYmFsIHB0cnMgPSAwLgogICAKMTk5OS0wNC0wNiAyMToyMyAgbXNsaWZjYWsKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMKLCBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsIGFwcHMvc25tcHVzbS5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLAogICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuaCwgc25tcGxpYi9sY2RfdGltZS5jLAogICBzbm1wbGliL2xjZF90aW1lLmgsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdXNtLmgsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYwo6CgogICAtIGNoYW5nZXMgZm9yIEFOU0kgaGVhZGVyczsgUE9TSVgoaW5kZXggdnMgc3RyY2hyKTsgbWlub3IgZml4ZXMKICAgCjE5OTktMDQtMDYgMTU6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwgYXBwcy9zbm1wdHJhcGQuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSAobWliaW5jbC5oLCB1Y2REZW1vUHVibGljLmMsIHZhY21fdmFycy5oLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywKICAgICBNYWtlZmlsZS5pbik6IGZpbmFsIG1lcmdlIHBpZWNlcyBvZiByZWNlbnQgdjMgbGluZSBjaGFuZ2VzLgogICAKMTk5OS0wNC0wNiAxNToxMiAgaGFyZGFrZXIKCiAgICogSVNTVUVTLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2NvbmZpZy5oCiwgYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwKICAgYWdlbnQvYXV0b19ubGlzdC5oLCBhZ2VudC9tMm0uaCwgYWdlbnQvc25tcDJwLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9hZ2VudC5oLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oCiwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNtZHMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZiwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsIGFwcHMvLmN2c2lnbm9yZQosIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHVzbS5jCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgbG9jYWwvc25tcC11Y2Quc2gKLCBtYW4vc25tcGNtZC4xLCBtYW4vc25tcGQuY29uZi41LmRlZiwKICAgbWlicy9TTk1QLVRBUkdFVC1NSUIudHh0LCBtaWJzL1NOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0CiwgbWlicy9TTk1QdjItVEMudHh0LCBtaWJzL1VDRC1ERU1PLU1JQi50eHQsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9hbGxfZ2VuZXJhbF9sb2NhbC5oLCBzbm1wbGliL2FsbF9zeXN0ZW0uaCwKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvZGVidWcuaCwgc25tcGxpYi9rZXl0b29scy5jCiwgc25tcGxpYi9rZXl0b29scy5oLCBzbm1wbGliL2xjZF90aW1lLmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuaCwgc25tcGxpYi9tZDUuYywgc25tcGxpYi9tZDUuaAosIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9wYXJ0eS5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuaCwgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NjYXBpLmgsIHNubXBsaWIvc25tcC10Yy5oLCBzbm1wbGliL3NubXAuYwosIHNubXBsaWIvc25tcC5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc25tcF9pbXBsLmgsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB1c20uaCwgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zbm1wdjMuaAosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmgsCiAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oLAogICBzbm1wbGliL3RyYW5zZm9ybV9vaWRzLmgsIHNubXBsaWIvdmFjbS5oLAogICBzbm1wbGliL3ZpZXcuYywgdGVzdGluZy8uY3ZzaWdub3JlLAogICB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL1JFQURNRSwgdGVzdGluZy9ULmMsCiAgIHRlc3RpbmcvVC5zaCwgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1tZDUsCiAgIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMSwgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLWRlcwosIHRlc3RpbmcvZGF0YS5rdWwtbWQ1LCB0ZXN0aW5nL2RhdGEua3VsLXNoYTEsCiAgIHRlc3RpbmcvZGVtby5yZW1vdGUsIHRlc3RpbmcvZGVtbzIsCiAgIHRlc3RpbmcvZGVtbzIuZnVuY3Rpb25zLCB0ZXN0aW5nL2RlbW8yLnNldHVwZmlsZSwKICAgdGVzdGluZy9ldGltZXRlc3QuYywgdGVzdGluZy9ldmFsX29uZXByb2dyYW0uc2gsCiAgIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaCwgdGVzdGluZy9ldmFsX3Rlc3RsaXN0LAogICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLAogICB0ZXN0aW5nL21pc2N0ZXN0LmMsIHRlc3Rpbmcvc2NhcGl0ZXN0LmMsCiAgIHRlc3RpbmcvdGVzdF9rZXljaGFuZ2Uuc2gsIHRlc3RpbmcvdGVzdF9rdWwuc2g6CgogICAtICgqKTogTWVyZ2VkIHRoZSA0LjAgbGluZSBpbnRvIHRoZSAzLjYuMSBsaW5lLgogICAKMTk5OS0wNC0wNiAxMTozMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX2ZpbGVzeXMuYywgaG9zdC9ocl9wcm9jLmMsCiAgIGlwZndjaGFpbnMvbGliaXBmd2MuYywgbWliSUkvaWNtcC5jLCBtaWJJSS9pcC5jCiwgbWliSUkvcm91dGVfd3JpdGUuYywgbWliSUkvdGNwLmMsIG1pYklJL3VkcC5jCiwgc211eC9zbXV4LmMsIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYwosIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwKICAgdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsIHVjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oOgoKICAgLSBhbm90aGVyIHJvdW5kIG9mIEFOU0ktZnlpbmcgdGhlIGFnZW50IGNvbXBsZXRlZC4KICAgCjE5OTktMDQtMDYgMTA6NTkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIC0gKGV4dGVuc2libGUuYykgcXVlbGwgd2FybmluZyBhYm91dCBjb21wYXJpbmcgcG9pbnRlciB3aXRoIG5vbi1wb2ludGVyLgogICAKMTk5OS0wNC0wNiAwOToyMyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViOgoKICAgLSAoY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViKTogbmV3IHZlcnNpb25zIGZyb20gYXV0b2NvbmYgMi4xMy4KICAgCjE5OTktMDQtMDUgMTU6NTkgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIC0gQnVpbGQgdXNpbmcgQ3lnV2luMzIgKGluY2x1ZGVzIE5pZWxzIEIuJ3Mgc25tcF92YXJzLmMgcGF0Y2gpLgogICAKMTk5OS0wNC0wNSAxNDoyMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gQnVpbGQgd2l0aCBDeWdXaW4zMgogICAKMTk5OS0wNC0wNSAxNDoxMCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IE1ha2VmaWxlLmluLCBpZi5jLCB3aW5zdHViLmMKLCB3aW5zdHViLmg6CgogICAtIGJ1aWxkIHNubXBuZXRzdGF0IHdpdGggQ3lnV2luMzIKICAgCjE5OTktMDQtMDUgMTE6MDYgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jLCBtYWluLmMsIHNubXBfcGFyc2VfYXJncy5jKSBKb2UgTWFyem90J3MgZml4IHRvIGNvcHkgZXZlbiBhbiBlbXB0eSBjb21tdW5pdHkgbmFtZS4KICAgCjE5OTktMDQtMDEgMTM6MTAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbGlic25tcC5oOgoKICAgLSAobGlic25tcC5oKSBBc3ltcHRvdGljYWxseSBjbG9zZXIgdG8gc3VwcG9ydGluZyBDTVUgY29uc3RhbnRzLgogICAKMTk5OS0wMy0yOCAxNjoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOgogICAgIC0gd2hlbiB1c2luZyBjb3B5X3dvcmQoKSBkb24ndCBza2lwIHNwYWNlcywgc2luY2UgaXQgZG9lcyB0aGF0LgogICAKMTk5OS0wMy0yOCAxNjoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaDoKCiAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgpOiByZWxvY2F0ZSB0bwogICAgIHNubXBNb2R1bGVzLjEyLCB3aGVyZSB0aGV5IHNob3VsZCBiZS4KICAgCjE5OTktMDMtMjMgMTA6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogcmVnZXhwIGZpeC4KICAgCjE5OTktMDMtMjMgMTA6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYmRlZnMuaCwgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKG1pYmRlZnMuaCwgc3RydWN0LmgsIGV4dGVuc2libGUuYywgZXh0ZW5zaWJsZS5oLCBwcm9jLmMsIHByb2MuaCwKICAgICBzbm1wZC5jb25mLjUuZGVmLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIHBlci1wcm9jZXNzL2V4ZWMgZml4IHNjcmlwdHMgY3JlYXRlZC4KICAgCjE5OTktMDMtMjMgMTA6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBtYWtlIGNvcHlfd29yZCgpIHJldHVybiB0aGUgbmV4dCB0b2tlbiwgbm90IHRoZQogICAgIG5leHQgc3BhY2UuCiAgIAoxOTk5LTAzLTIzIDEwOjA5ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGFkZCBtb3JlIHRhcmdldHMuCiAgIAoxOTk5LTAzLTE5IDA5OjIzICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGdldC5jLCBzbm1wd2Fsay5jOgoKICAgLSAoc25tcGdldC5jLCBzbm1wd2Fsay5jKTogZml4ZWQgaW5pdGlhbGl6YXRpb24gYW5kIHVzYWdlIG9mICJmYWlsdXJlcyIuCiAgIAoxOTk5LTAzLTE4IDA4OjM3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgLSAobWliSUkvaXAuYykgZml4IE1JQl9JUENPVU5URVJfU1lNQk9MIHVzYWdlCiAgIAoxOTk5LTAzLTE3IDEzOjUzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICAtKGhyX3N3cnVuLmMpIC0gcHJldmVudCBTdW5PUyA0LjEgY29yZSAoc3Vub3M0IHN0aWxsIHByaW1pdGl2ZSkKICAgCjE5OTktMDMtMTYgMTE6MzMgIG1zbGlmY2FrCgogICAqIGFnZW50Lzogc25tcF92YXJzLmgsIG1pYmdyb3VwL21pYmluY2wuaCwKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCBtaWJncm91cC9kdW1teS9kdW1teS5jLAogICBtaWJncm91cC9leGFtcGxlcy93b21iYXQuYywgbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIG1pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBtaWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywgbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYwosIG1pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBtaWJncm91cC9taWJJSS9pY21wLmMsCiAgIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgbWliZ3JvdXAvbWliSUkvaXAuYywKICAgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jCiwgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBtaWJncm91cC9taWJJSS90Y3AuYwosIG1pYmdyb3VwL21pYklJL3VkcC5jLCBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jCjoKCiAgIC0gbW92ZSBNQVRDSF9GQUlMRUQvTUFUQ0hfU1VDQ0VFREVEIGZyb20gdXRpbF9mdW5jcy5oIHRvIG1pYmluY2wuaAogICAKMTk5OS0wMy0xNiAxMToyMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLShzbm1wX2FwaS5jKSBjb25zaXN0ZW50IGVycm9yIHJldHVybi4KICAgCjE5OTktMDMtMTYgMTA6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0gKGhyX3N3cnVuLmMpOiBmaXggZmlsZSBkZXNjcmlwdG9yIGxlYWsgb24gZnJlZWJzZC4KICAgCjE5OTktMDMtMTYgMDg6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYzoKCiAgIC0gKGRsbW9kLmMpOiByZW1vdmVkIGEgYm9ndXMgbmV3LWxpbmUuCiAgIAoxOTk5LTAzLTE1IDE2OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L01ha2VmaWxlLmluKTogZG9uJ3QgZG8gYSBtYWtlIGluc3RhbGwgb2YgZGxtb2RzCiAgIAoxOTk5LTAzLTE1IDE2OjAyICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgRkFRCiwgUkVBRE1FLCBGQVEsIFJFQURNRToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LjEgKQogICAKMTk5OS0wMy0xNSAxNjowMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogbWFyayB3aXRoIHZlcnNpb24gbnVtLgogICAKMTk5OS0wMy0xNSAxNjowMCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlIGZvciAzLjYuMS4KICAgCjE5OTktMDMtMTUgMTU6NTggIGhhcmRha2VyCgogICAqIEZBUSwgTkVXUzoKCiAgIC0gKEZBUSwgTkVXUyk6IHVwZGF0ZXMgdG8gdGFsayBhYm91dCB0aGUgQUdFTlQudHh0IGZpbGUuCiAgIAoxOTk5LTAzLTE1IDE1OjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZWZpbGVpbmRlcGVuZC4KICAgCjE5OTktMDMtMTUgMTU6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IGZpeGVzIGZvciBsaW51eCAyLjIgaW50ZXJmYWNlIHNjYW5uaW5nLgogICAKMTk5OS0wMy0xNSAxNTozMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbnRlcmZhY2VzLmMsIGxpbnV4LmgpOiBkZXRlY3QKICAgICAvcHJvYy9uZXQvZGV2IHZlcnNpb24gYXQgcnVuIHRpbWUsIG5vdCBjb21waWxlIHRpbWUuCiAgIAoxOTk5LTAzLTE1IDE1OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfcHJvYy5jLCBob3N0L2hyX3Byb2MuaCwKICAgdWNkLXNubXAvbG9hZGF2ZS5jLCB1Y2Qtc25tcC9sb2FkYXZlLmg6CgogICAtIChocl9wcm9jLmMsIGhyX3Byb2MuaCwgbG9hZGF2ZS5jLCBsb2FkYXZlLmgpOiBmaXggdHJ5X2xvYWRhdmUgZm9yIHNvbGFyaXMuCiAgIAoxOTk5LTAzLTE1IDE0OjMxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSAoYWNjb25maWcuaCk6IGFkZGVkIENNVV9DT01QQVRJQkxFCiAgIAoxOTk5LTAzLTE1IDE0OjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAuaDoKCiAgIC0gKHNubXAuaCk6IHJlbW92ZSB1bm5lZWRlZCBjb21tZW50ZWQgb3V0IGRlZmluZS4KICAgCjE5OTktMDMtMTUgMDk6NDIgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdHJhcGQuYwosIHNubXBsaWIvbGlic25tcC5oLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHdpbjMyL2NvbmZpZy5oOgoKICAgLSBzZWNvbmQgcGFzcyBhdCBDTVVfQ09NUEFUOiBEaXNhYmxlIGJ5IGRlZmF1bHQsIGxlYXZlIHNubXBfcGFyc2UgYWxvbmUuCiAgIAoxOTk5LTAzLTE1IDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIHNubXBfYXBpLmM6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcF9hcGkuYyk6CiAgICAgLSByZXZlcnQgdG8gc25tcF9wYXJzZS4KICAgICAtIGRvbid0IGluc3RhbGwgbGlic25tcC5oLgogICAKMTk5OS0wMy0xNSAwNTo1NCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBsaWJzbm1wLmgsIG1pYi5jLAogICBzbm1wLmgsIHNubXBfYXBpLmM6CgogICAtIChNYWtlZmlsZS5pbiBsaWJzbm1wLmggbWliLmMgc25tcC5oIHNubXBfYXBpLmMpIHVwZGF0ZSBDTVVfQ09NUEFUSUJMRQogICAKMTk5OS0wMy0xMiAxNTozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy86IElQRldDSEFJTlMtTUlCLnR4dCwKICAgaXBmd2NoYWlucy5oOgoKICAgLSAoSVBGV0NIQUlOUy1NSUIudHh0LCBpcGZ3Y2hhaW5zLmgpOiBtb3ZlIHRvIGEgc3ViLW9pZCBpbiB0aGUKICAgICBleHBlcmltZW50YWwgdHJlZS4KICAgCjE5OTktMDMtMTIgMTU6MjQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL0lQRldDSEFJTlMtTUlCLnR4dCwKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9SRUFETUUsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2Nfa2VybmVsX2hlYWRlcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5oLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2xpYmlwZndjLmMsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvbGliaXBmd2MuaDoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBJUEZXQ0hBSU5TLU1JQi50eHQsIFJFQURNRSwKICAgICBpcGZ3Y19rZXJuZWxfaGVhZGVycy5oLCBpcGZ3Y2hhaW5zLmMsIGlwZndjaGFpbnMuaCwgbGliaXBmd2MuYywKICAgICBsaWJpcGZ3Yy5oKTogUGF0Y2ggZnJvbSBEaWRpZXIgRGhhZW5lbnM6CiAgICAgLSBuZXcgbW9kdWxlczogaXBmd2NoYWlucy4KICAgCjE5OTktMDMtMTIgMTU6MjMgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogZG9uJ3QgcHJpbnQgbW9kdWxlIGxpc3QgaGVyZS4uLiAgdGVsbCB0aGVtIHRvIGxvb2sgYXQKICAgICBjb25maWd1cmUgLS1oZWxwLgogICAKMTk5OS0wMy0xMiAxNDo1NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0YXJnZXQuaCwgaG9zdC9ocl9zeXN0ZW0uaCwKICAgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaAosIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oOgoKICAgLSByZXN0b3JlIGNvbmZpZ19yZXF1aXJlIGxvZ2ljOyBmaXggc3ByaW50ZiBjYWxscyB0byBjb21waWxlIHVuZGVyIFN1bk9TIDQuMS54LgogICAKMTk5OS0wMy0xMiAxNDozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgLSAodXRpbF9mdW5jcy5oKTogTUFUQ0hfRkFJTEVEIC0+IC0xLCBzaW5jZSBzb21lIHVzZSBpdC4KICAgCjE5OTktMDMtMTIgMTQ6MzUgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogdGFyZ2V0LmgsIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgKLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5Lmg6CgogICAtICh0YXJnZXQuaCwgdGFyZ2V0LyouaCkgcmVxdWlyZSB1dGlsX2Z1bmNzIG9uY2UuCiAgIAoxOTk5LTAzLTEyIDE0OjM0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dydW4uYywgaHJfc3lzdGVtLmg6CgogICAtIChocl9zeXN0ZW0uaCkgLSBkb24ndCByZXF1aXJlIGhyX3V0aWw7IGRvbmUgaW4gbWliZ3JvdXAvaG9zdC5oCiAgIC0gKGhyX3N3cnVuLmMpIC0gc29sYXJpczI6IG1ha2Ugc3VyZSBrdm1fb3BlbiBpcyBjYWxsZWQgYmVmb3JlIGtkIGlzIHVzZWQuCiAgIC0gKGhyX3N3cnVuLmMpIC0gYWRkIGxhbWUgc3Vub3M0IGVxdWl2YWxlbnQgaW4gSFJTV1JVTlBFUkZfQ1BVLgogICAKMTk5OS0wMy0xMiAxNDoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBwcm90ZWN0IHN0cmNweSgpIGFnYWluc3QgYSBudWxsIHBhc3N3b3JkIHNwZWNpZmllZCBvbiB0aGUKICAgICBjb25maWcgbGluZS4KICAgCjE5OTktMDMtMTIgMTQ6MTcgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlLgogICAKMTk5OS0wMy0xMiAxMjoyMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IGZpeCBhc25fcGFyc2UgZnVuY3Rpb25zIHRvIHBhc3MgYSBwb2ludGVyIHRvIHRoZSBzaXplIHZhcmlhYmxlLgogICAKMTk5OS0wMy0xMiAxMTozMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jOgoKICAgLSAoZGxtb2RfbWliLmMpOiBleHBsaWNpdCB0ZXN0IGZvciBNQVRDSF9GQUlMRUQKICAgCjE5OTktMDMtMTIgMDk6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliaW5jbC5oLCBkdW1teS9kdW1teS5jLAogICBleGFtcGxlcy93b21iYXQuYywgaG9zdC9ocl9kZXZpY2UuYywgaG9zdC9ocl9kaXNrLmMKLCBob3N0L2hyX2ZpbGVzeXMuYywgaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGhvc3QvaHJfcGFydGl0aW9uLmMsIGhvc3QvaHJfcHJpbnQuYywgaG9zdC9ocl9wcm9jLmMKLCBob3N0L2hyX3N0b3JhZ2UuYywgaG9zdC9ocl9zd2luc3QuYywKICAgaG9zdC9ocl9zd3J1bi5jLCBob3N0L2hyX3N5c3RlbS5jLCBtaWJJSS9pY21wLmMKLCBtaWJJSS9pbnRlcmZhY2VzLmMsIG1pYklJL2lwLmMsCiAgIG1pYklJL3NubXBfbWliLmMsIG1pYklJL3N5c09SVGFibGUuYywKICAgbWliSUkvc3lzdGVtX21pYi5jLCBtaWJJSS90Y3AuYywgbWliSUkvdWRwLmMsCiAgIG1pc2MvZGxtb2QuYywgdWNkLXNubXAvcmVnaXN0cnkuYzoKCiAgIC0gKG1pYmluY2wuaCwgZHVtbXkuYywgd29tYmF0LmMsIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywKICAgICBocl9uZXR3b3JrLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywKICAgICBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICAgIHNubXBfbWliLmMsIHN5c09SVGFibGUuYywgc3lzdGVtX21pYi5jLCB0Y3AuYywgdWRwLmMsIGRsbW9kLmMsCiAgICAgcmVnaXN0cnkuYyk6IGZpeGVkIE1BVENIX0ZBSUxFRC9TVUNDRUVERUQgZGVmaW5lcyAtPiB1dGlsX2Z1bmNzLmguCiAgIAoxOTk5LTAzLTEyIDA3OjA4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmM6CgogICAtIChkbG1vZF9taWIuYyk6IFVzZSBNQVRDSF9GQUlML1NVQ0NFRURFRCBpbiB1dGlsX2Z1bmNzLmgKICAgCjE5OTktMDMtMTEgMTY6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5oLCBzbm1wX2RlYnVnLmg6CgogICAtIChzbm1wX2FwaS5oLCBzbm1wX2RlYnVnLmgpOiBQYXRjaCBmcm9tIEVyaWsgSmFjb2JzZW46CiAgICAgLSBmaXhlZCBwcm90b3R5cGVzIGZvciBERUJVR1AoKSBhbmQgREVCVUdQT0lEKCkuCiAgIAoxOTk5LTAzLTExIDE2OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oOgoKICAgLSAodXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgpOiBtb3ZlIE1BVENIX1NVQ0NFRURFRCBkZWZzIHRvIC5oLgogICAKMTk5OS0wMy0xMSAxNjoxMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IGZpeGVkIGEgY291cGxlIG9mIGJ1Z3MgYW5kIGFuc2knaWZpZWQgdGhpbmdzLgogICAKMTk5OS0wMy0xMSAxNjoxMCAgaGFyZGFrZXIKCiAgICogQUdFTlQ6CgogICAtIChBR0VOVCk6IHJlbW92ZWQgQUdFTlQKICAgCjE5OTktMDMtMTEgMTU6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgLSAobWVtb3J5X3NvbGFyaXMyLmMpOiBjaGFuZ2VkIHNvbWUgY29tbWVudHMgdG8gLyogKi8gaW5zdGVhZCBvZiAvLy4KICAgCjE5OTktMDMtMTEgMTU6NDggIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IEFkZGVkIE1pa2UgQmFlci4KICAgCjE5OTktMDMtMTAgMTU6MTQgIGhhcmRha2VyCgogICAqIEFHRU5ULnR4dDoKCiAgIC0gKEFHRU5ULnR4dCk6IE5BTUUgLT4gT0lELgogICAKMTk5OS0wMy0xMCAxNTowNyAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBncm91cCBsaW5lcyB3ZXJlIGJhY2t3YXJkcy4KICAgCjE5OTktMDMtMTAgMTU6MDcgIGhhcmRha2VyCgogICAqIEFHRU5ULnR4dDoKCiAgIC0gKEFHRU5ULnR4dCk6IG1vdmVkIGZyb20gQUdFTlQgdG8gYXZvaWQgbm9uLWNhc2Utc2Vuc2l0aXZlIHczMiBjb25mbGljdHMuCiAgIAoxOTk5LTAzLTA4IDE0OjI4ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYywgcm91dGUuYzoKCiAgIC0gKHNubXBuZXRzdGF0OmlmLmMsIHJvdXRlLmMpIGxpbWl0IGludGVyZmFjZSBuYW1lIHNpemVzIHRvIGZpdCBmaXhlZCBsZW5ndGggYnVmZmVycy4KICAgCjE5OTktMDMtMDggMDk6NTggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHNubXBsaWIvcGFyc2UuYykgQ29tcGxldGUgRGF2ZSBTaGllbGRzJyBwYXRjaCBmb3IgY29udGludWUgYWZ0ZXIgZXJyb3IuCiAgIAoxOTk5LTAzLTA4IDA1OjA3ICBtc2xpZmNhawoKICAgKiBBR0VOVDoKCiAgIC0gKEFHRU5UKSBNQVhfTkFNRV9MRU4gLS0+IE1BWF9PSURfTEVOIGluIGV4YW1wbGUKICAgCjE5OTktMDMtMDggMDU6MDEgIG1zbGlmY2FrCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgLSh3aW4zMi9jb25maWcuaCkgcmVtb3ZlIHVudXNlZCBTWVNfVElNRV9OQU1FLEdMT0JBTFNFQ1VSSVRZLiBhZGQgbmV3IGNvbnN0YW50cy4KICAgCjE5OTktMDMtMDggMDQ6MTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpIHVzZSByZXF1ZXN0IGRhdGEgd2l0aCByZXF1ZXN0IGNhbGxiYWNrCiAgIAoxOTk5LTAzLTA4IDA0OjAyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAocGFyc2UuYykgLSBmaXggc3ViaWQgaW5pdDsgcmVtb3ZlIHVzZWxlc3MgJy1QbCcgb3B0aW9uLgogICAKMTk5OS0wMy0wNSAxNzozNiAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB1cGRhdGUuCiAgIAoxOTk5LTAzLTA1IDE3OjM1ICBoYXJkYWtlcgoKICAgKiBGQVEsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oCjoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42ICkKICAgCjE5OTktMDMtMDUgMTc6MzQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IGZpbmFsIHVwZGF0ZS4KICAgCjE5OTktMDMtMDUgMTc6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk5LTAzLTA1IDE3OjI1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpOiBhdXRvY29uZiB1cGRhdGUuCiAgIAoxOTk5LTAzLTA1IDE3OjE5ICBoYXJkYWtlcgoKICAgKiBGQVEsIE5FV1M6CgogICAtIChGQVEsIE5FV1MpOiBmaW5hbCB1cGRhdGVzLgogICAKMTk5OS0wMy0wNSAxNzoxMiAgaGFyZGFrZXIKCiAgICogQUdFTlQ6CgogICAtIChBR0VOVCk6IERhdmUgU2hpZWxkJ3MgbmV3IGRvY3VtZW50LgogICAKMTk5OS0wMy0wNSAxNzoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtLmg6CgogICAtIChtaWJJSS9zeXN0ZW0uaCk6IHJlbW92ZWQKICAgCjE5OTktMDMtMDUgMTc6MDggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHJlZmVyZW5jZSBBR0VOVCBkb2N1bWVudC4KICAgCjE5OTktMDMtMDUgMTY6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgLSAobWVtb3J5X3NvbGFyaXMyLmMpOiBkbyBlcnJvciByZXBvcnRpbmcgZm9yIHNvbGFyaXMgbWVtb3J5IHN1cHBvcnQuCiAgIAoxOTk5LTAzLTA1IDE2OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaDoKCiAgIC0gKHZtc3RhdC5oKTogZGVjbGFpciBpbml0X3Ztc3RhdCgpLgogICAKMTk5OS0wMy0wNSAxNjowMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHVwZGF0ZWQgLS1oZWxwJ3MgbW9kdWxlIGxpc3QuCiAgIAoxOTk5LTAzLTA1IDE1OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywgZXhhbXBsZXMvd29tYmF0LmMKLCBob3N0L2hyX25ldHdvcmsuYywgbWliSUkvc25tcF9taWIuaCwKICAgbWliSUkvc3lzdGVtX21pYi5oLCB1Y2Qtc25tcC9kaXNrLmgsCiAgIHVjZC1zbm1wL2Vycm9ybWliLmgsIHVjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgdWNkLXNubXAvZmlsZS5oLCB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCwKICAgdWNkLXNubXAvcGFzcy5oLCB1Y2Qtc25tcC9wcm9jLmgsIHVjZC1zbm1wL3JlZ2lzdHJ5LmgKLCB1Y2Qtc25tcC92ZXJzaW9uaW5mby5oOgoKICAgLSAoa2VybmVsX3N1bm9zNS5jLCB3b21iYXQuYywgaHJfbmV0d29yay5jLCBzbm1wX21pYi5oLCBzeXN0ZW1fbWliLmgsCiAgICAgZGlzay5oLCBlcnJvcm1pYi5oLCBleHRlbnNpYmxlLmgsIGZpbGUuaCwgbWVtb3J5X3NvbGFyaXMyLmgsIHBhc3MuaCwKICAgICBwcm9jLmgsIHJlZ2lzdHJ5LmgsIHZlcnNpb25pbmZvLmgpOgogICAgIC0gLVdhbGwgZml4ZXMsIG1vc3RseSBpbml0XygpIHJvdXRpbmVzIGRlY2xhaXJlZCBpbiB0aGUgYXBwcm9wcmlhdGUgLmggZmlsZXMuCiAgIAoxOTk5LTAzLTA1IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogdXBkYXRlLgogICAKMTk5OS0wMy0wNSAxNTozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBfaW1wbC5oKTogY3JlYXRlIFVORE8KICAgCjE5OTktMDMtMDUgMTU6MTIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSByZW1vdmUgcGVyc2lzdGVudCBzdG9yYWdlIGluZm8sIHNpbmNlIGl0cyBub3QgdXNlZCB0aGlzIHJlbGVhc2UuCiAgIAoxOTk5LTAzLTA1IDExOjAyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIAogICAodGNwLmMpIC0gYnJlYWsgb3V0IG9mIGluZmluaXRlIGxvb3Agd2hlbiBrbG9va3VwIGZhaWxzLgogICAKMTk5OS0wMy0wNSAxMDo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHN3aXRjaCBDT01NSVQgYW5kIEFDVElPTiBwaGFzZXMuCiAgIAoxOTk5LTAzLTA1IDEwOjIxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB1cGRhdGUgZnJvbSBEYXZlOiByZWFycmFuZ2luZyBhbmQgY2xlYW5pbmcuCiAgIAoxOTk5LTAzLTA1IDEwOjExICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gdGhlIHVzZSBvZiAnaGVhZGVyX3NpbXBsZV90YWJsZScgcmF0aGVyIHRoYW4gJ2NoZWNrbWliJwogICAgIC0gZXhwbGljaXQgY29tcGFyaXNvbiB3aXRoIE1BVENIX0ZBSUxFRAogICAgIC0gZG9uJ3Qgc2V0IGRlZmF1bHRzIGZvciAnd3JpdGVfbWV0aG9kJyBhbmQgJ3Zhcl9sZW4nCiAgIAkJKHNpbmNlIGJvdGggJ2hlYWRlcl9nZW5lcmljJyBhbmQgJ2NoZWNrbWliJyBkbyB0aGlzIGFueXdheSkKICAgICAtIFVzZSBkZWZpbmVkIGNvbnN0YW50cyBmb3IgdmFyaWFibGUgaW5pdGlhbGlzYXRpb24gaW4gdGhlCiAgIAkJd3JpdGUgcm91dGluZSAoc2ltaWxhcmx5IGluIHRoZSBtaWIyYy5jb25mIHBhdGNoKQogICAgICAgICBbVGhpcyBpcyBvbmUgb2YgbXkgaG9iYnktaG9yc2VzIHdpdGggb3VyIHN0dWRlbnRzLCBzbyBJIGRvbid0CiAgIAkJIHNlZSB3aHkgInByb2Zlc3Npb25hbCIgcHJvZ3JhbW1lcnMgc2hvdWxkIGJlIGV4ZW1wdCFdCiAgIAogICAgIC0gTWFrZSBwcm9wZXIgdXNlIG9mIHRoZSB0aHJlZS1waGFzZSBuYXR1cmUgb2YgU0VUcwogICAKMTk5OS0wMy0wNSAwOTo0MCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIAogICBGaXggV2luMzIgdmVyc2lvbiBvZiBnZXR0aW1lb2ZkYXk6IHR2X3VzZWMgd2FzIG1pbGxpc2VjcyAsIHJldHVybiBub3cgPSAwCiAgIAoxOTk5LTAzLTA0IDE4OjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIAogICAoc25tcF9hcGkuYykgLSBleHBvc2Ugc25tcF9mcmVlOyBzbm1wX3BkdV9hZGRfdmFyaWFibGUgcmV0dXJucyBwdHIgdG8gdmFyIGZvcgogICBmdXR1cmUgaW1wcm92ZWQgZXJyb3IgcmVjb3ZlcnkuCiAgIAoxOTk5LTAzLTA0IDE3OjUwICBtc2xpZmNhawoKICAgKiBhZ2VudC9oaXN0b3J5LmMsIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCB3aW4zMi9jb25maWcuaAo6CgogICAKICAgUmVwbGFjZSB1c2VzIG9mIGJ6ZXJvIHdpdGggbWVtc2V0LCBiY29weSB3aXRoIG1lbWNweS4KICAgRml4IHByb3RvdHlwZXMuCiAgIAoxOTk5LTAzLTA0IDE3OjAwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAKICAgKHN5c09SVGFibGUuYykgLSByZW1vdmUgc3RhdGljIHVfbG9uZyBsb25nX3JldHVybiwgZm9yIGNvbnNpc3RlbmN5LgogICAKMTk5OS0wMy0wNCAxNjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jCiwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYywgZHVtbXkuYywgZXhhbXBsZS5jLCB3b21iYXQuYywgdGNwLmMsIGhwdXguYywKICAgICBtZW1vcnkuYywgYWxhcm0uYywgc25tcF9hcGkuYyk6CiAgICAgLSBtaXNjIGZpeGVzLCAtV2FsbCBtb3N0bHkuCiAgIAoxOTk5LTAzLTA0IDE2OjMyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk5LTAzLTA0IDE2OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKCiAgIC0gKHZtc3RhdF9mcmVlYnNkMi5jKTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgIC0gdHlwbyBmaXhlZC4KICAgCjE5OTktMDMtMDQgMTY6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRS5zbXV4OgoKICAgLSAoUkVBRE1FLnNtdXgpOiBQYXRjaCBmcm9tIE5pY2sgQW1hdG86CiAgICAgLSB1cGRhdGUuCiAgIAoxOTk5LTAzLTA0IDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLAogICBleGFtcGxlcy9leGFtcGxlLmMsIG1pYklJL3N5c09SVGFibGUuYywgbWlzYy9pcGZ3YWNjLmMKLCB1Y2Qtc25tcC9kaXNrLmMsIHVjZC1zbm1wL2V4dGVuc2libGUuYywKICAgdWNkLXNubXAvZmlsZS5jLCB1Y2Qtc25tcC9sb2FkYXZlLmMsIHVjZC1zbm1wL21lbW9yeS5jCiwgdWNkLXNubXAvcHJvYy5jLCB1Y2Qtc25tcC92bXN0YXQuYywKICAgdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICAtICh1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCwgZXhhbXBsZS5jLCBzeXNPUlRhYmxlLmMsIGlwZndhY2MuYywKICAgICBkaXNrLmMsIGV4dGVuc2libGUuYywgZmlsZS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwcm9jLmMsIHZtc3RhdC5jLAogICAgIHZtc3RhdF9mcmVlYnNkMi5jKToKICAgICAtIGNyZWF0ZSBhbmQgdXNlIGhlYWRlcl9zaW1wbGVfdGFibGUgdG8gcmVwbGFjZSBjaGVja21pYigpLgogICAKMTk5OS0wMy0wNCAxNToyOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAKICAgKGhyX2Rpc2suYykgLSBjb25kaXRpb25hbGx5IHVzZSBkZWZpbmVkIERLQyBkaXNrIHR5cGVzCiAgIAoxOTk5LTAzLTA0IDE1OjI1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICAKICAgKGRpc2suYykgLSBleHBsaWNpdCBicmFjZXMgdG8gYXZvaWQgYW1iaWd1b3VzIGBlbHNlJwogICAKMTk5OS0wMy0wNCAxNToxMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3Byb2MuYywgdWNkLXNubXAvbG9hZGF2ZS5jCjoKCiAgIAogICAKICAgKGhyX3Byb2MuYywgbG9hZGF2ZS5jKSAtIGZpeGVkIGNvcmUgb24gZ2V0bG9hZGF2ZyBpbiBhIGRpZmZlcmVudCB3YXkKICAgCjE5OTktMDMtMDQgMTM6MTggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZWQgdm9pZCBjaGVjay4KICAgCjE5OTktMDMtMDQgMDk6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYyk6IFBhdGNoIGZyb20gbXNsaWZjYWtAaXNzLm5ldDoKICAgICAtIFdoZW4gdGhlIGFnZW50IGlzIGNvbXBpbGVkIHdpdGggSEFWRV9MSUJSUE0gc2V0LCB5ZXQgbm8gZGF0YWJhc2UKICAgICAgIGlzIGZvdW5kLCBhZ2VudCB3aWxsIGNvcmUuLi4KICAgCjE5OTktMDMtMDQgMDk6MzggIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlcywgbG9jYWwvZWNlLXNubXBkLmNvbmYsCiAgIGxvY2FsL2ZpeHByb2MuY29uZjoKCiAgIC0gKHJlbW92ZS1maWxlcywgZWNlLXNubXBkLmNvbmYsIGZpeHByb2MuY29uZik6CiAgICAgLSByZW1vdmVkIGVjZSBzcGVjaWZpYyBjb25maWcgZmlsZXMgZnJvbSB0aGUgcmVwb3NpdG9yeS4KICAgICAtIGRvbid0IHJlbW92ZSBsb2NhbC8qLmNvbmYgaW4gdGhlIGZpcnN0IHBsYWNlIGFueW1vcmUuCiAgIAoxOTk5LTAzLTA0IDA5OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICAtIChsb2FkYXZlLmMpOiBQYXRjaCBmcm9tIENocmlzIEh1Z2hlczoKICAgICAtIGZpeCBsb2FkIGF2ZXJhZ2Ugb24gc29sYXJpcy4KICAgCjE5OTktMDMtMDQgMDk6MjQgIG1zbGlmY2FrCgogICAqIE1ha2VmaWxlLmluOgoKICAgCiAgIAogICAoTWFrZWZpbGUuaW4pIC0gZmluZCBtaWJkZWZzLmggd2hlbiBub3QgYnVpbGRpbmcgaW4gdGhlIHNvdXJjZSB0cmVlCiAgIAoxOTk5LTAzLTA0IDA5OjIwICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jCiwgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgCiAgIAogICAoYWdlbnQvc25tcGQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jKTogcmVtb3ZlIGR1cGxpY2F0ZSBpbmNsdWRlcwogICAKICAgKGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMpOiBjaGFuZ2UgIip3b3JkIiB0byAiKnRva2VuIiB0byBoZWxwIHNvbWUgY29tcGlsZXIKICAgCjE5OTktMDMtMDQgMDk6MDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBmaXggdm9pZCB0ZXN0IGZvciBhbnNpIGNvbXBpbGVycy4KICAgCjE5OTktMDMtMDQgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRS5zbXV4OgoKICAgLSAoUkVBRE1FLnNtdXgpOiBhZGQgTmljay4KICAgCjE5OTktMDMtMDQgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogcmVwb3NpdG9yeSBtb3ZlLgogICAKMTk5OS0wMy0wNCAwNDowOCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgCiAgIChzbm1wbmV0c3RhdC9pZi5jKSAtIGFkZCB2b2lkIHRvIGVtcHR5IGZvcm1hbCBwYXJhbWV0ZXIgbGlzdAogICAKMTk5OS0wMy0wMyAxODowMiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmUxMCApCiAgIAoxOTk5LTAzLTAzIDE4OjAyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IG1lbnRpb24gU01VWC4KICAgCjE5OTktMDMtMDMgMTg6MDAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbWVudGlvbiBuYW1lIGNoYW5nZS4KICAgCjE5OTktMDMtMDMgMTc6NTEgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgRkFRLCBORVdTLCBQT1JUSU5HLCBSRUFETUUKLCBUT0RPLCBidWctcmVwb3J0LCBhZ2VudC9zbm1wZC5jLAogICBsb2NhbC9SRUFETUUubWliMmM6CgogICAtIChDaGFuZ2VMb2csIEZBUSwgTkVXUywgUE9SVElORywgUkVBRE1FLCBUT0RPLCBidWctcmVwb3J0LCBzbm1wZC5jLAogICAgIFJFQURNRS5taWIyYyk6IGVjZS51Y2RhdmlzLmVkdSAtPiB1Y2Qtc25tcC51Y2RhdmlzLmVkdS4KICAgCjE5OTktMDMtMDMgMTE6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIC0gKHByb2MuYywgc29sYXJpcy5oKTogUGF0Y2ggZnJvbSBDaHJpcyBIdWdoZXM6CiAgICAgLSBVc2UgL3Byb2Mgb24gc29sYXJpcy4KICAgCjE5OTktMDMtMDMgMTA6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgLSAobWVtb3J5X3NvbGFyaXMyLmMpOiBhbnNpJ2lmeSB0aGUgY29uZmlnIGZ1bmN0aW9uLgogICAKMTk5OS0wMy0wMyAwODoyOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlKTogcmFuIGF1dG9jb25mLi4uCiAgIAoxOTk5LTAzLTAzIDA4OjI1ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBBZGRlZCBOaWNrLgogICAKMTk5OS0wMy0wMiAxNToyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIExpbnV4IGNvbXBpbGVzIGRpZSBhdCBTT19SQ1ZUSU1FTy4KICAgICAtIC1XYWxsIHR5cGUgZml4ZXMuCiAgIAoxOTk5LTAzLTAyIDE1OjE4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiB0eXBvLgogICAKMTk5OS0wMy0wMiAxNToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICAtIChtZW1vcnlfc29sYXJpczIuYyk6IHR5cGVjYXN0IGZ1bmN0aW9uIHdpdGggKHZvaWQpLgogICAKMTk5OS0wMy0wMiAxNToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC5oOgoKICAgLSAoc211eC5oKTogdG9wIGxldmVsIHNtdXggZmFrZSBtb2R1bGUgaGVhZGVyLgogICAKMTk5OS0wMy0wMiAxNToxNyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmg6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBfZGVidWcuYywKICAgICBzbm1wX2RlYnVnLmgpOgogICAgIC0gbmV3IGZsYWc6ICAtLWRpc2FibGUtZGVidWdnaW5nIHRvIGNvbXBsZXRlbHkgdHVybiBvZmYgaXRzIHN1cHBvcnQuCiAgICAgLSByZW5hbWluZyBvZiBET0RFQlVHIHRvIFNOTVBfQUxXQVlTX0RFQlVHLgogICAgIC0gY2xlYW4gdXAgb2YgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgb3B0aW9ucyBsaXN0ZWQsIGluY2x1ZGluZyBwdXR0aW5nCiAgICAgICBhIGxpc3Qgb2YgYXZhaWxhYmxlIG1vZHVsZXMgZm9yIGNvbXBpbGF0aW9uIGludG8gdGhlIGFnZW50LgogICAKMTk5OS0wMy0wMiAxMzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAtICh2YXJfcm91dGUuYyk6IGRvbid0IHJldHVybiBhIHBvaW50ZXIgdG8gYSBwb2ludGVyLgogICAKMTk5OS0wMy0wMiAxMDo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJJSS9zeXN0ZW1fbWliLmMsIG1pYklJL3ZhY21fdmFycy5jCiwgbWlzYy9pcGZ3YWNjLmM6CgogICAtIChzeXN0ZW1fbWliLmMsIHZhY21fdmFycy5jLCBpcGZ3YWNjLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIFN1Z2dlc3RlZCBmaXhlcyB0byBlbGltaW5hdGUgbW9yZSBzaGFkb3dlZCBnbG9iYWwgcmVmZXJlbmNlcy4KICAgICAtIGZpeHVwcyBmb3IgcHJvdG90eXBlIFsodm9pZCkgcmVwbGFjaW5nICgpXS4KICAgCjE5OTktMDMtMDIgMDg6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgLSAoYXNuMS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIERvbid0IGRlZmluZSBNQVhfTkFNRV9MRU4gaWYgZGVmaW5lZCBzb21ld2hlcmUgZWxzZS4KICAgCjE5OTktMDMtMDEgMTc6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKToKICAgICAtIGFsbG93IG51bGwgbGVuZ3RoIHBhc3N3b3Jkcy4KICAgICAtIGNsZWFuIHVwIGRlYnVnZ2luZyBvdXRwdXQuCiAgIAoxOTk5LTAzLTAxIDE2OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgIC0gKGFzbjEuaCk6IHB1dCBiYWNrIGluIE1BWF9OQU1FX0xFTiB0ZW1wb3JhcmlseS4KICAgCjE5OTktMDMtMDEgMTY6MjAgIGhhcmRha2VyCgogICAqIG1hbi86IGRlcy4xLCBkZXMuMzoKCiAgIC0gKGRlcy4xLCBkZXMuMyk6IHJlbW92ZWQgdW51c2VkIG1hbnVhbCBwYWdlcy4KICAgCjE5OTktMDMtMDEgMTY6MTkgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsIHNubXBkLjEuZGVmCiwgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wZC4xLmRlZiwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOgogICAgIC0gcmVtb3ZlIHJlZmVyZW5jZSB0byBFQ0UgZGVwdC4KICAgCjE5OTktMDMtMDEgMTY6MTkgIGhhcmRha2VyCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSB0YXJnZXRzLgogICAKMTk5OS0wMy0wMSAxNjoxNyAgaGFyZGFrZXIKCiAgICogbWFuLzogbWliX2FwaS4zLCByZWFkX2NvbmZpZy4zLmRlZiwgc25tcC5jb25mLjUuZGVmCiwgc25tcF9jb25maWcuNS5kZWYsIHNubXBkLjEuZGVmLAogICBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdGVzdC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZgosIHZhcmlhYmxlcy41OgoKICAgLSAobWliX2FwaS4zLCByZWFkX2NvbmZpZy4zLmRlZiwgc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwKICAgICBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZiwgc25tcHRlc3QuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYsCiAgICAgdmFyaWFibGVzLjUpOiBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBzcGVsbCBjaGVjay4KICAgCjE5OTktMDMtMDEgMTY6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRGF2aWQgRi4gTmV3bWFuOgogICAgIC0gcmVtb3ZlZCBhIHRyYWlsaW5nIGJhY2tzbGFzaCB0aGF0IHdhc24ndCBuZWVkZWQuCiAgIAoxOTk5LTAzLTAxIDE2OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmM6CgogICAtIChhbGFybS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBDYXN0IHRvIHBvaW50ZXIgdG8gaW50IG1heSBvdmVyZmxvdyB0aGUgcmV0dXJuIGJ1ZmZlci4KICAgCjE5OTktMDMtMDEgMTQ6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMsIHNtdXguaDoKCiAgIC0gKHNtdXguYywgc211eC5oKTogMy42aWZpZWQuCiAgIAoxOTk5LTAzLTAxIDE0OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jLCBzbXV4Lmg6CgogICAtIChzbXV4LmMsIHNtdXguaCk6IFBhdGNoIGZyb20gTmljayBBbWF0bzoKICAgICAtIGNvbXBsZXRlbHkgcmUtd3JpdHRlbiBzbXV4IG1vZHVsZXMuCiAgIAoxOTk5LTAzLTAxIDEzOjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaDoKCiAgIC0gKHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCk6IG1ha2UgY29tcGFyZV90cmVlKCkgZ2xvYmFsLgogICAKMTk5OS0wMy0wMSAxMzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGNvbnRleHRfcGFyc2UuYywgbWliLmM6CgogICAtIChjb250ZXh0X3BhcnNlLmMsIG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB0eXBlY2FzdGluZyBmb3IgY2VydGFpbiBmdW5jdGlvbnMgdG8gKGNoYXIgKikuCiAgIAoxOTk5LTAzLTAxIDEyOjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgIC0gKGFzbjEuaCk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgIC0gYWRkZWQgTUlOX09JRF9MRU4gZm9yIGluc3RydWN0aW9uYWwgdXNlIG1vc3RseSAoaXRzIHVudXNlZCkuCiAgIAoxOTk5LTAzLTAxIDEyOjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgLSB2YXJpYWJsZSByZW5hbWluZy4KICAgCjE5OTktMDMtMDEgMTI6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBwdXQgYSBwcm9wZXIgKHZvaWQpIGludG8gdGhlIGZ1bmN0aW9uIHByb3RvdHlwZS4KICAgCjE5OTktMDMtMDEgMTI6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBzcHJpbnRmIGFyZyBtaXNtYXRjaC4KICAgCjE5OTktMDMtMDEgMTI6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgY2FzZSBlbnRyaWVzLgogICAKMTk5OS0wMy0wMSAxMjoyNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoaWYuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgIC0gZnJlZSB0aGUgaW50ZXJmYWNlIHRhYmxlLgogICAKMTk5OS0wMy0wMSAxMjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYzoKCiAgIC0gKGVycm9ybWliLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAtIHJlbW92ZSBlcnJubyB2YXJpYWJsZS4KICAgCjE5OTktMDMtMDEgMTI6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgLSByZW5hbWluZyBvZiB2YXJpYWJsZXMgYXdheSBmcm9tIHN5c3RlbSBmdW5jdGlvbiBuYW1lcyAoaW5kZXggLT4gbGluZGV4KS4KICAgCjE5OTktMDMtMDEgMTI6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYzoKCiAgIC0gKGRsbW9kX21pYi5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgLSBpbml0aWFsaXplIHZhcmlhYmxlIHRvIDAuCiAgIAoxOTk5LTAzLTAxIDEwOjQ4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogdHlwbzogZmlsZU1heCAtPiBmaWxlRXJyb3JGbGFnIG5hbWUgY2hhbmdlLgogICAKMTk5OS0wMi0yNiAxNjozMyAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU5ICkKICAgCjE5OTktMDItMjYgMTY6MTEgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy4zLmRlZiwKICAgc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwgc25tcGQuY29uZi41LmRlZgosIHNubXB0cmFwZC44LCBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIC0gKE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy4zLmRlZiwgc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwKICAgICBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdHJhcGQuOCwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOgogICAgIC0gbmV3IGRvY3VtZW50YXRpb24gb24gY29uZmlndXJhdGlvbiBjYXBhYmlsaXRpZXMuCiAgIAoxOTk5LTAyLTI2IDE2OjEwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiB1c2FnZSB1cGRhdGUsIGFuZCAtSCBzdXBwb3J0LgogICAKMTk5OS0wMi0yNiAxNjoxMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiB1cGRhdGUgZm9yIDMuNiByZWxlYXNlLgogICAKMTk5OS0wMi0yNiAxNjowNiAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiB1cGRhdGUgYW5kIG1hZGUgYmV0dGVyIGV4YW1wbGVzLgogICAKMTk5OS0wMi0yNiAxNTo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIFVubGlua2VkIE9JRCAuLi4gY2NpdHQgMCBmaXggY291cnRlc3kgb2YgRGF2ZSBTaGllbGQuCiAgICAgLSBDb250aW51ZSBhZnRlciByZXNlcnZlZCB3b3JkIGVycm9yIGZpeCBjb3VydGVzeSBvZiBEYXZlIFNoaWVsZC4KICAgICAtIE1vZGlmaWNhdGlvbiB0byAjMiBjb3VydGVzeSBvZiBOaWVscyBCYWdnZXNlbi4KICAgICAtIE1vZGlmaWNhdGlvbiB0byBwcmludCBzdWItaWRlbnRpZmllciA9PSAwCiAgICAgLSB2YXJpYWJsZSByZW5hbWluZy4KICAgICAtIEluc3RlYWQgb2YgcmUtb3JkZXJpbmcgYWxsIHNpbmdseS1saW5rZWQgbGlzdHMsIHVzZSBhIG5ldyBtZW1iZXIKICAgICAgIHRoYXQgZmxhZ3Mgd2hlbiBhIHJlcG9ydCBoYXMgYmVndW4uCiAgIAoxOTk5LTAyLTI2IDE1OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0CjoKCiAgIC0gKGxvYWRhdmUuYywgbG9hZGF2ZS5oLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGltcGxlbWVudCBsb2FkIGF2ZXJhZ2UgcmVwb3J0aW5nIGFzIGEgaW50ZWdlciBhbmQgYXMgYSBmbG9hdC4KICAgCjE5OTktMDItMjUgMTA6MDMgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oOgoKICAgLSAoUkVBRE1FLCB1Y2Rfc25tcC5oLCBtZW1vcnlfc29sYXJpczIuYywgbWVtb3J5X3NvbGFyaXMyLmgpOiBQYXRjaAogICAgIGZyb20gRGF2aWQgRi4gTmV3bWFuOgogICAgIC0gbWVtb3J5IHN1cHBvcnQgZm9yIHNvbGFyaXMyLgogICAKMTk5OS0wMi0yNCAxNzoxMCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBsaW51eC5oKToKICAgICAtIENoZWNrIGZvciBhbmQgaGFuZGxlIDIuMiAvcHJvYy9uZXQvZGV2IGNoYW5nZXMuCiAgIAoxOTk5LTAyLTI0IDE0OjQzICBoYXJkYWtlcgoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IHVwZGF0ZS4KICAgCjE5OTktMDItMjIgMDk6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIERvbid0IHByaW50ICJjYW4ndCBmaW5kIG1vZHVsZSBYWFgiIG1lc3NhZ2VzIHdpdGhvdXQgd2FybmluZ3MgdHVybmVkIG9uLgogICAKMTk5OS0wMi0yMiAwOToxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gbXNsaWZjYWtAaXNzLm5ldDoKICAgICAtIFRoZSBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIHNlbGVjdCAiYWxsb3cgdW5kZXJzY29yZSBpbiBNSUIKICAgICAgIHN5bWJvbHMiIGlzIG1pc3NpbmcuCiAgIAoxOTk5LTAyLTE3IDE2OjIzICBkcmVlZGVyCgogICAqIGxvY2FsL3NubXAtdWNkLnNoOgoKICAgZmlsZSBzbm1wLXVjZC5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMy4KICAgCjE5OTktMDItMTcgMTY6MTQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiB3aW5zdHViLmMsIHdpbnN0dWIuaDoKCiAgIC0gKHdpbnN0dWIuYywgd2luc3R1Yi5oKTogcGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBnZW5lcmljIHdpbmRvd3MgQVBJIHJlcGxhY2VtZW50cy4KICAgCjE5OTktMDItMTcgMTY6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChzbm1wZC5jLCBkdW1teS5jLCB3b21iYXQuYywgc3lzdGVtX21pYi5jLCB2YWNtX3ZhcnMuYywgZGxtb2QuYywKICAgICBkaXNrLmMsIGV4dGVuc2libGUuYywgZmlsZS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLAogICAgIG1lbW9yeV9mcmVlYnNkMi5jLCBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jLCBwcm9jLmMsIG1pYi5jLAogICAgIHJlYWRfY29uZmlnLmMpOiB3b3JkIC0+IHRva2VuICgid29yZCIgaXMgcmVzZXJ2ZWQgaW4gc29tZSBjb21waWxlcnMuCiAgIAoxOTk5LTAyLTE3IDE1OjI4ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCB3aW4zMi5kc3csIGxpYnNubXAvbGlic25tcC5kc3AKLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCiwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcAo6CgogICAtIChjb25maWcuaCwgd2luMzIuZHN3LCBsaWJzbm1wLmRzcCwgbGlic25tcC5kZWYsIGxpYnNubXBfZGxsLmRzcCwKICAgICBzbm1wbmV0c3RhdC5kc3AsIHNubXB0YWJsZS5kc3ApOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHdpbjMyIHVwZGF0ZXMuCiAgIAoxOTk5LTAyLTE3IDE1OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFydHlfcGFyc2UuYywgc25tcF9hdXRoLmMKOgoKICAgLSAocGFyc2UuYywgcGFydHlfcGFyc2UuYywgc25tcF9hdXRoLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHZhcmlhYmxlIG5hbWUgY29uZmxpY3QgZml4ZXMuCiAgIAoxOTk5LTAyLTE3IDE1OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIC0gKHNubXBfZGVidWcuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZGVidWdfYXJncyB3YXMgZGVjbGFyZWQgdHdpY2UuCiAgICAgLSBoZWFkZXIgZml4ZXMgZm9yIHdpbjMyLgogICAKMTk5OS0wMi0xNyAxNToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggZnByaW50X3ZhcmlhYmxlIHRvIG5vdCByZWN1cnNlLgogICAKMTk5OS0wMi0xNyAxNToxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jb250ZXh0X3BhcnNlLmM6CgogICAtIChjb250ZXh0X3BhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGRvbid0IHVzZSBhIHZhcmlhYmxlIGNhbGxlZCAndGltZScuICBUc2sgdHNrLgogICAKMTk5OS0wMi0xNyAxNToxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGNvbW1lbnQgcmVmb3JtYXR0aW5nLgogICAKMTk5OS0wMi0xNyAxNToxOCAgaGFyZGFrZXIKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHVzZSBhICctJyBpbnN0ZWFkIG9mIGEgJy4nIGZvciBJRUVFODAyLTExLgogICAKMTk5OS0wMi0xNyAxNToxNyAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBzZXBhcmF0ZSB0YXJnZXQgZm9yIGdlbmVyYXRlZCBtYW51YWwgcGFnZXMuCiAgIAoxOTk5LTAyLTE3IDE1OjE2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiB1cGRhdGUgYWdhaW4gZm9yIGJldHRlciBzdGlsbCBvdXRwdXQuCiAgIAoxOTk5LTAyLTE3IDE1OjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYywgaW5ldC5jLCBtYWluLmMsCiAgIG5ldHN0YXQuaCwgcm91dGUuYzoKCiAgIC0gKGlmLmMsIGluZXQuYywgbWFpbi5jLCBuZXRzdGF0LmgsIHJvdXRlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIG1ha2Ugc25tcG5ldHN0YXQgd2luMzIgY29tcGF0aWJsZS4KICAgCjE5OTktMDItMTcgMTU6MTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB1c2FnZSBmaXguCiAgIAoxOTk5LTAyLTE3IDE1OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5oOgoKICAgLSAoc25tcGQuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gcmVtb3ZlIHJldmVyc2VfYnl0ZXMoKSBwcm90b3R5cGUuCiAgIAoxOTk5LTAyLTE3IDE1OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgTC4gSGl0Y2g6CiAgICAgLSBmaXggaWZfbmFtZSB2YXJpYWJsZSBieSBtYWtpbmcgaXQgc3RhdGljLgogICAKMTk5OS0wMi0xNiAxNzowNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogdXBkYXRlZCBtaWIyYyBwcm9ncmFtLi4uICBzdGlsbCBpbiBwcm9ncmVzcy4uLgogICAKMTk5OS0wMi0xMSAxNjo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiB1cGRhdGUuCiAgIAoxOTk5LTAyLTExIDE2OjQ4ICBoYXJkYWtlcgoKICAgKiB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTggKQogICAKMTk5OS0wMi0xMSAxNjo0NiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIEV4dC0zLTYtcHJlOCApCiAgIAoxOTk5LTAyLTExIDE2OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIC0gKHRjcC5jKTogdmFyX3RjcEVudHJ5IHdhcyBjaGVja2luZyBhZ2FpbnN0IHRoZSBpbmNvbWluZyBvaWQgd2l0aCB0aGUKICAgICB3cm9uZyBsZW5ndGggYW5kIGNvdWxkIHN1Y2NlZWQgYXQgdGltZXMgd2hlbiBpdCBzaG91bGRuJ3QgaGF2ZS4KICAgCjE5OTktMDItMTEgMTY6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhY2xfcGFyc2UuYywgY29udGV4dF9wYXJzZS5jLAogICBwYXJ0eV9wYXJzZS5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jOgoKICAgLSAoYWNsX3BhcnNlLmMsIGNvbnRleHRfcGFyc2UuYywgcGFydHlfcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6CiAgICAgLSBNb3JlIGJ1ZiBzaXplIHN0YW5kYXJkaXphdGlvbnMgdGhhdCBNaWNoYWVsIG1pc3NlZC4KICAgICAtIEEgZmV3IE1BWF9OQU1FX0xFTiAtPiBNQVhfT0lEX0xFTiBjb252ZXJzaW9ucyB0aGF0IE1pY2hhZWwgbWlzc2VkLgogICAKMTk5OS0wMi0xMSAxNjoyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaDoKCiAgIC0gKGhvc3RfcmVzLmgpOiBpbmNsdWRlIHNubXBfdmFycy5oIGFoZWFkIG9mIHZhcl9zdHJ1Y3QuaC4KICAgCjE5OTktMDItMTEgMTY6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoKik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gY29udmVydCBNQVhfTkFNRV9MRU4gLT4gTUFYX09JRF9MRU4uCiAgICAgLSBjb252ZXJ0IHRlbXBvcmFyeSBjaGFyYWN0ZXIgc3RvcmFnZSBidWZmZXJzIHRvIFNQUklOVF9NQVhfTEVOLgogICAgIC0gbWFrZSB0aGUgbGlicmFyaWVzIHByaW50XyBmdW5jdGlvbnMgdXNlIHRoZSBmcHJpbnRfIGZ1bmN0aW9uCiAgICAgICBhbHJlYWR5IGRlZmluZWQgYW5kIHBhc3MgaXQgc3Rkb3V0LgogICAKMTk5OS0wMi0wOSAxNDozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogaW5jcmVhc2UgYnVmZmVyIHNpemUgZm9yIG9pZCBwcmludGluZy4KICAgCjE5OTktMDItMDkgMTQ6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgLSAoc25tcF9kZWJ1Zy5jKTogZGVmaW5lIGEgc3ltYm9sIGZvciBPSUQgcHJpbnRpbmcncyBzdG9yYWdlIGJ1ZmZlciBzaXplLgogICAKMTk5OS0wMi0wOSAxNDoxMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IHR5cG8uCiAgIAoxOTk5LTAyLTA5IDE0OjEwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBGQVEuaHRtbC4KICAgCjE5OTktMDItMDggMjM6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L2RsbW9kcy86IGRsbW9kX21pYi5jLCBkbG1vZF9taWIuaCwgZXhhbXBsZS5jCiwgZXhhbXBsZS5oOgoKICAgLSAoYWdlbnQvZGxtb2RzKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBtaXNjIGZpeGVzLgogICAKMTk5OS0wMi0wOCAyMzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIG1pYmluY2wuaDoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYywgbWliaW5jbC5oKSBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGluY2x1ZGUgdXBkYXRlcy4KICAgCjE5OTktMDItMDggMjM6MjAgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBtaWJncm91cC91dGlsX2Z1bmNzLmgKLCBzbm1wMnAuYywgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywKICAgc25tcF92YXJzLmgsIHNubXBkLmgsIHZhcl9zdHJ1Y3QuaDoKCiAgIC0gKGFnZW50LyopOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHR5cGVkZWYgYWxsIG9mIHRoZSB2YXJfeHh4IGFuZCB3cml0ZSBtZXRob2QgZnVuY3Rpb25zLgogICAKMTk5OS0wMi0wOCAyMzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBkdW1teS9kdW1teS5jLCBleGFtcGxlcy9leGFtcGxlLmMsCiAgIGV4YW1wbGVzL2V4YW1wbGUuaCwgZXhhbXBsZXMvd29tYmF0LmMsIGhvc3QvaHJfZGV2aWNlLmMKLCBob3N0L2hyX2RldmljZS5oLCBob3N0L2hyX2Rpc2suYywgaG9zdC9ocl9kaXNrLmgKLCBob3N0L2hyX2ZpbGVzeXMuYywgaG9zdC9ocl9maWxlc3lzLmgsCiAgIGhvc3QvaHJfbmV0d29yay5jLCBob3N0L2hyX25ldHdvcmsuaCwKICAgaG9zdC9ocl9wYXJ0aXRpb24uYywgaG9zdC9ocl9wYXJ0aXRpb24uaCwKICAgaG9zdC9ocl9wcmludC5jLCBob3N0L2hyX3ByaW50LmgsIGhvc3QvaHJfcHJvYy5jLAogICBob3N0L2hyX3Byb2MuaCwgaG9zdC9ocl9zdG9yYWdlLmMsIGhvc3QvaHJfc3RvcmFnZS5oCiwgaG9zdC9ocl9zd2luc3QuYywgaG9zdC9ocl9zd2luc3QuaCwKICAgaG9zdC9ocl9zd3J1bi5jLCBob3N0L2hyX3N3cnVuLmgsIGhvc3QvaHJfc3lzdGVtLmMKLCBob3N0L2hyX3N5c3RlbS5oLCBtaWJJSS9hdC5jLCBtaWJJSS9hdC5oLAogICBtaWJJSS9pY21wLmMsIG1pYklJL2ljbXAuaCwgbWliSUkvaW50ZXJmYWNlcy5jLAogICBtaWJJSS9pbnRlcmZhY2VzLmgsIG1pYklJL2lwLmMsIG1pYklJL2lwLmgsCiAgIG1pYklJL3JvdXRlX3dyaXRlLmgsIG1pYklJL3NubXBfbWliLmMsIG1pYklJL3NubXBfbWliLmgKLCBtaWJJSS9zeXNPUlRhYmxlLmMsIG1pYklJL3N5c09SVGFibGUuaCwKICAgbWliSUkvc3lzdGVtLmgsIG1pYklJL3N5c3RlbV9taWIuYywgbWliSUkvc3lzdGVtX21pYi5oCiwgbWliSUkvdGNwLmMsIG1pYklJL3RjcC5oLCBtaWJJSS91ZHAuYywKICAgbWliSUkvdWRwLmgsIG1pYklJL3ZhY21fdmFycy5jLCBtaWJJSS92YWNtX3ZhcnMuaAosIG1pYklJL3Zhcl9yb3V0ZS5jLCBtaWJJSS92YXJfcm91dGUuaCwKICAgbWlzYy9pcGZ3YWNjLmMsIG1pc2MvaXBmd2FjYy5oLCBzbXV4L3NubXBfYmdwLmMsCiAgIHNtdXgvc25tcF9iZ3AuaCwgc211eC9zbm1wX29zcGYuYywgc211eC9zbm1wX29zcGYuaAosIHNtdXgvc25tcF9yaXAyLmMsIHNtdXgvc25tcF9yaXAyLmgsCiAgIHVjZC1zbm1wL2Rpc2suYywgdWNkLXNubXAvZGlzay5oLCB1Y2Qtc25tcC9lcnJvcm1pYi5jCiwgdWNkLXNubXAvZXJyb3JtaWIuaCwgdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICB1Y2Qtc25tcC9leHRlbnNpYmxlLmgsIHVjZC1zbm1wL2ZpbGUuYywgdWNkLXNubXAvZmlsZS5oCiwgdWNkLXNubXAvaHB1eC5jLCB1Y2Qtc25tcC9ocHV4LmgsCiAgIHVjZC1zbm1wL2xvYWRhdmUuYywgdWNkLXNubXAvbG9hZGF2ZS5oLAogICB1Y2Qtc25tcC9tZW1vcnkuYywgdWNkLXNubXAvbWVtb3J5LmgsCiAgIHVjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLCB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgdWNkLXNubXAvcGFzcy5jLCB1Y2Qtc25tcC9wYXNzLmgsCiAgIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCB1Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaCwKICAgdWNkLXNubXAvcHJvYy5jLCB1Y2Qtc25tcC9wcm9jLmgsIHVjZC1zbm1wL3JlZ2lzdHJ5LmMKLCB1Y2Qtc25tcC9yZWdpc3RyeS5oLCB1Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICB1Y2Qtc25tcC92ZXJzaW9uaW5mby5oLCB1Y2Qtc25tcC92bXN0YXQuYywKICAgdWNkLXNubXAvdm1zdGF0LmgsIHVjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICB1Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwgdjJwYXJ0eS9hY2xfdmFycy5jLAogICB2MnBhcnR5L2FjbF92YXJzLmgsIHYycGFydHkvYWxhcm0uYywgdjJwYXJ0eS9hbGFybS5oCiwgdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywgdjJwYXJ0eS9jb250ZXh0X3ZhcnMuaCwKICAgdjJwYXJ0eS9ldmVudC5jLCB2MnBhcnR5L2V2ZW50LmgsIHYycGFydHkvcGFydHlfdmFycy5jCiwgdjJwYXJ0eS9wYXJ0eV92YXJzLmgsIHYycGFydHkvdmlld192YXJzLmMsCiAgIHYycGFydHkvdmlld192YXJzLmg6CgogICAtIChhZ2VudC8qKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB0eXBlZGVmIGFsbCBvZiB0aGUgdmFyX3h4eCBhbmQgd3JpdGUgbWV0aG9kIGZ1bmN0aW9ucy4KICAgCjE5OTktMDItMDggMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgLSAoc25tcF9kZWJ1Zy5jKTogc3lzL3R5cGVzLmgKICAgCjE5OTktMDItMDggMTU6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gbWFrZSBzbm1wX29pZF9jb21wYXJlIHVzZSBjb25zdCdzLgogICAKMTk5OS0wMi0wOCAxNToxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdXNlIHNpemVfdCBpbnN0ZWFkIG9mICJ1bnNpZ25lZCIgZm9yIHhtYWxsb2MsIGV0Yy4KICAgCjE5OTktMDItMDggMTU6MTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgLSAoaW5ldC5jKTogcHJvcGVyIGJyYWNrZXQgaW5kZW50YXRpb24uCiAgIAoxOTk5LTAyLTA4IDE1OjE3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICAtIChyb3V0ZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB2YXJpYWJsZSByZW5hbWluZyBpbmRleCAtPiBJZkluZGV4LgogICAKMTk5OS0wMi0wOCAxNToxNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIC0gKHNubXB0cmFwZF9oYW5kbGVycy5jKTogbm90aGluZy4gIHJlYWxseS4KICAgCjE5OTktMDItMDggMTU6MTQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICAtIChzbm1wZGVsdGEuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdmFyaWFibGUgcmVuYW1pbmcgdGltZSAtPiBtX3RpbWUuCiAgIAoxOTk5LTAyLTA4IDE1OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdmFyaWFibGUgcmVuYW1pbmcgaW5kZXggLT4gaWluZGV4LgogICAKMTk5OS0wMi0wOCAxNToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gbWFrZSB0cmVlX2NvbXBhcmUoKSBiZSBhIHJlYWwgdHlwZWRlZidlZCBmdW5jdGlvbiBhZ2FpbiBub3cgdGhhdAogICAgICAgcXNvcnRpbmcgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KICAgCjE5OTktMDItMDggMTU6MDggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gVGsucG0gbWVudGlvbi4KICAgCjE5OTktMDItMDggMTI6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogUGF0Y2ggZnJvbSBKb2huIFBvbHN0cmE6CiAgICAgLSBjYWxsIGFjY2VwdCgpIHRvIGdldCB0aGUgc29ja2V0IGZpbGUgZGVzY3JpcHRvci4KICAgCjE5OTktMDItMDIgMjI6MDIgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gbWVudGlvbiB0aGF0IHRoZSBtZW1vcnkgc2VjdGlvbiBpc24ndCBzdXBwb3J0ZWQgb24gYWxsCiAgICAgICBhcmNoaXRlY3R1cmVzLgogICAKMTk5OS0wMi0wMiAyMjowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICAtIChocl9wcm9jLmMpOiB1c2UgWzBdIGluZGV4IG9mIGxvYWQgYXZlcmFnZSB0YWJsZS4KICAgCjE5OTktMDItMDIgMjI6MDEgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogUmVtb3ZlIHVuc3VwcG9yZWQgbWliIG5vZGVzIGZyb20gb3V0cHV0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDAncy4KICAgCjE5OTktMDItMDIgMjI6MDAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IG1lbnRpb24gbGFjayBvZiBzb2xhcmlzIG1lbW9yeSBzdXBwb3J0LgogICAKMTk5OS0wMi0wMiAxNDo0OCAgYmFlcm0KCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0YXJnZXQuaCwgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYwosIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oOgoKICAgLSAodGFyZ2V0LmgsIHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCk6CiAgIC0gQ29kZSBhZGRlZCB0byBzdXBwb3J0IHRoZSB0YXJnZXQgTUlCLCBzcGVjaWZpY2FsbHkgdGhlIGFkZHJlc3MgYW5kCiAgICAgcGFyYW1zIHRhYmxlLgogICAKMTk5OS0wMi0wMiAxNDozNCAgYmFlcm0KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgLSBVcGRhdGVkIGNvcHlfd29yZCB0byBhY2NlcHQgcXVvdGVkIHN0cmluZ3MsIHdpdGggaW5jbHVkZWQgd2hpdGUKICAgICAgIHNwYWNlcy4gJ1wnIGVzY2FwZXMgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXIuCiAgIAoxOTk5LTAyLTAyIDEzOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHR5cG86IC1MIC0+IC1BIGluIGhlbHAgc3RyaW5ncyBkb2NzLgogICAKMTk5OS0wMi0wMiAxMzozMyAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgMjAzNiAtPiAyMDM4CiAgIAoxOTk5LTAxLTI2IDA5OjQ1ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGNoYW5nZSByZWZlcmVuY2UgSVAgbmV0IGFkZHJlc3NlcyB0byAxMC4xMC4xMC4wLgogICAKMTk5OS0wMS0yNSAxNjoyNSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBsb2NhbC9SRUFETUUubWliMmM6CgogICAtIChSRUFETUUsIFJFQURNRS5taWIyYyk6IG1pYjJjIHJlYWRtZSBmaWxlLgogICAKMTk5OS0wMS0yNSAxMToxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmgsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywgaG9zdF9yZXMuaCwgbWliaW5jbC5oLAogICAgIGZpbGUuYywgaW5ldC5jLCBwYXJzZS5jLCBzbm1wX2RlYnVnLmMpOgogICAgIC0gLVdhbGwgZml4ZXMuCiAgIAoxOTk5LTAxLTI1IDExOjExICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gdGVzdCBpZiBfX0ZVTkNUSU9OX18gaXMgc3VwcG9ydGVkIGJ5IHRoZSBjb21waWxlci4KICAgCjE5OTktMDEtMjUgMTA6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5oOgoKICAgLSAoc25tcF9kZWJ1Zy5oKTogc3BlY2lhbCB0ZXN0IGZvciBfX0ZVTkNUSU9OX18gYmVmb3JlIHVzaW5nIGl0LgogICAKMTk5OS0wMS0yNSAxMDozNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gKHN5c3RlbS5jKTogZml4IHN0cmluZ3MuaCBpbmNsdWRlLgogICAKMTk5OS0wMS0yNSAxMDozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGNvbnRleHRfcGFyc2UuYywgbWliLmMsIHBhcnNlLmMsCiAgIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMsCiAgIHN5c3RlbS5jOgoKICAgLSAoY29udGV4dF9wYXJzZS5jLCBtaWIuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywKICAgICBzbm1wX2NsaWVudC5jLCBzeXN0ZW0uYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIGFuc2kgZml4ZXMuCiAgIAoxOTk5LTAxLTI1IDEwOjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAodmVyc2lvbnRhZyk6IHR5cG8uCiAgIAoxOTk5LTAxLTI1IDEwOjI3ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGRlbHRhLmMsIHNubXBzdGF0dXMuYywgc25tcHRlc3QuYwosIHNubXB0cmFwLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICBzbm1wbmV0c3RhdC9pbmV0LmMsIHNubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gKHNubXBkZWx0YS5jLCBzbm1wc3RhdHVzLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsCiAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIGluZXQuYywgbWFpbi5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgIC0gbW9yZSBhbnNpIGZpeGVzLgogICAKMTk5OS0wMS0yMiAwNzoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gQ2hlY2sgZm9yIE5VTEwgb24gc2Vzc2lvbiBjbG9zZXMuCiAgIAoxOTk5LTAxLTIxIDA4OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogcmVtb3ZlIHVjZCBzcGVjaWZpYyBtb2R1bGUgZGVwZW5kcy4KICAgCjE5OTktMDEtMjEgMDg6NDAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wbGliL3NubXBfYXBpLmMKLCB3aW4zMi9jb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wX2FwaS5jLCBjb25maWcuaCk6IFBhdGNoIGZyb20gTWljaGFlbAogICAgIEouIFNsaWZjYWs6CiAgICAgLSBOT19OVUxMX0NPTVVOSVRZIC0+IE5PX1pFUk9MRU5HVEhfQ09NTVVOSVRZLgogICAKMTk5OS0wMS0yMSAwODozOSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogUGF0Y2ggZnJvbSBNaWNoYWVsIEouIFNsaWZjYWs6CiAgICAgLSB0eXBvIG9uIEpvZSdzIG5hbWUgZml4ZWQuCiAgIAoxOTk5LTAxLTIwIDE3OjExICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTcgKQogICAKMTk5OS0wMS0yMCAxNzowNCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU3ICkKICAgCjE5OTktMDEtMjAgMTc6MDIgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiByYW4gYXV0b2hlYWRlcgogICAKMTk5OS0wMS0yMCAxNjo0MCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMKLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNubXBfcGFyc2VfYXJncy5jLCBtYWluLmMsIHNubXBfYXBpLmMpOgogICAgIFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gYWxsb3cgemVybyBsZW5ndGggKGxlZ2FsKSBjb21tdW5pdHkgc3RyaW5ncy4KICAgCjE5OTktMDEtMjAgMTU6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogZGVidWdnaW5nIGNoYW5nZXMuCiAgIAoxOTk5LTAxLTIwIDE1OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGV4cG9ydCBzZGxpc3QgYW5kIHNkbGVuIHZhcmlhYmxlcy4KICAgCjE5OTktMDEtMjAgMTU6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiByZW1vdmUgdWNkIHNwZWNpZmljIG1pYiBtb2R1bGUgbWFrZSByZXF1aXJlbWVudHMuCiAgIAoxOTk5LTAxLTIwIDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgLSAoaHJfc3dpbnN0KTogI2lmZGVmIFJQTSBwcm90ZWN0IGEgZnJlZSByb3V0aW5lLgogICAKMTk5OS0wMS0yMCAxNTo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiB0eXBvCiAgIAoxOTk5LTAxLTIwIDE1OjMxICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBoZWxwaW5nIG91dCBjaGFuZ2VzLgogICAKMTk5OS0wMS0yMCAxNTozMCAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIC0gKENPUFlJTkcpOiBJdCdzIDE5OTkKICAgCjE5OTktMDEtMjAgMTU6MjIgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSAoRkFRLCBSRUFETUUpOiBhZGRlZCB2ZXJzaW9uIHN0YW1wLgogICAKMTk5OS0wMS0yMCAxNToyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTktMDEtMjAgMTU6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdWNkLXNubXAtaW5jbHVkZXMuaC4KICAgCjE5OTktMDEtMjAgMTU6MTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIC0gKHVjZC1zbm1wLWluY2x1ZGVzLmgpOiBtaW5pbWFsaXNoIGluY2x1ZGUgc2V0IGZvciBsaWJyYXJ5IGNsaWVudHMuCiAgIAoxOTk5LTAxLTIwIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2suYywgZXJyb3JtaWIuYywKICAgZXh0ZW5zaWJsZS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jOgoKICAgLSAoZGlzay5jLCBlcnJvcm1pYi5jLCBleHRlbnNpYmxlLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMpOgogICAgIC0gbGludXggMi4xIGtlcm5lbCBuZWVkcyBhc20vcGFnZS5oIChhbGwgaW5jbHVkZXMgbmVlZCB0byBiZSByZS13cml0dGVuKS4KICAgCjE5OTktMDEtMjAgMTU6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jCiwgcm91dGVfd3JpdGUuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYwo6CgogICAtIChhdC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywKICAgICB2YXJfcm91dGUuYyk6CiAgICAgLSBzeXMvc3RyZWFtLmggbmVlZGVkIGJ5IFNDTy4KICAgICAtIGludGVyZmFjZXMgc2NhbiBmaXhlcyBmb3IgbGludXggMi4wIHZzIDIuMSBjYW4gYmUgY29uZmlndXJlZCBlbHNld2hlcmUgbm93LgogICAgIC0gcHJvdGVjdCBnZXRfYWRkcmVzcyBjYWxscyBhZ2FpbnN0IE5VTEwgcG9pbnRlciByZXR1cm5zLgogICAKMTk5OS0wMS0yMCAxNToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiB2ZXJzaW9uIHRhZ2dpbmcgYWJpbGl0eSB0byBkbyBtYW55IHRoaW5ncy4KICAgCjE5OTktMDEtMjAgMTU6MTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgc25tcF92YXJzLmM6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgc3lzL3N0cmVhbS5oIGZvciBTQ08uCiAgIAoxOTk5LTAxLTIwIDE1OjE0ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gY2hlY2sgZm9yIGFzbS9wYWdlLmggKGxpbnV4KS4KICAgICAtIGNoZWNrIGZvciBzeXMvc3RyZWFtLmggKFNDTykuCiAgICAgLSBGaXggcnRlbnRyeSB0ZXN0LgogICAKMTk5OS0wMS0yMCAxNToxMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHZlcnNpb24gdGFnIGNyZWF0aW9uLgogICAKMTk5OS0wMS0yMCAxMjoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYXV0b19ubGlzdC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwKICAgYXBwcy8uY3ZzaWdub3JlLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXBfZGVidWcuaCwKICAgc25tcGxpYi92YWNtLmM6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBhdXRvX25saXN0LmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywKICAgICBob3N0X3Jlcy5oLCBtaWJpbmNsLmgsIC5jdnNpZ25vcmUsIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcGQuYywKICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuYywgaWYuYywgTWFrZWZpbGUuaW4sIG1pYi5jLCBwYXJzZS5jLAogICAgIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oLAogICAgIHZhY20uYyk6IGRlYnVnZ2luZyBzdXBwb3J0IGNvZGUgbW92ZWQgdG8gc25tcF9kZWJ1Zy5bY2hdLgogICAKMTk5OS0wMS0yMCAxMjoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogdHlwbyBpbiBhbnNpIGNoYW5nZXMuCiAgIAoxOTk5LTAxLTIwIDEyOjIxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSAoYWNjb25maWcuaCk6IHVubmVlZGVkIGNvbW1lbnQgcmVtb3ZlZC4KICAgCjE5OTktMDEtMjAgMTI6MjAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHBlcmwtU05NUCBhbmQgeTJrIHF1ZXN0aW9ucyBhZGRlZC4KICAgCjE5OTktMDEtMjAgMTI6MTkgIGhhcmRha2VyCgogICAqIGFnZW50Ly5wdXJlLCBzbm1wbGliLy5wdXJlOgoKICAgLSAoLnB1cmUsIC5wdXJlLCAucHVyZSk6IHJlbW92ZWQuCiAgIAoxOTk5LTAxLTE5IDIwOjAxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMKLCBzbm1wbGliL3NubXBfYXV0aC5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgo6CgogICAtIChzbm1wdGFibGUuYywgbWliLmMsIHBhcnNlLmMsIHNubXBfYXV0aC5jLCBsaWJzbm1wLmRlZik6IFBhdGNoIGZyb20KICAgICBNaWNoYWVsIEouIFNsaWZjYWs6CiAgICAgLSBhcHBzL3NubXB0YWJsZS5jIC0gc29tZSBjb21waWxlcnMgd2FybiBjb21wYXJpbmcgcG9pbnRlciB3aXRoIGludGVnZXIKICAgICAtIHNubXBsaWIvbWliLmMgLSBhbHJlYWR5IG1lbnRpb25lZCBiZWZvcmU7IGhlcmUgZm9yIGNvbXBsZXRlLW5lc3MKICAgICAtIHNubXBsaWIvcGFyc2UuYyAtIG1pbm9yIHRvdWNodXAgb2YgaW5jbHVkZXM7IHN5c3RlbS5oIGR1cCByZW1vdmVkCiAgICAgLSBzbm1wbGliL3NubXBfYXBpLmggLSBNU1Zpc3VhbCBDKysgZG9lc24ndCBoYXZlIF9fRlVOQ1RJT05fXwogICAgIC0gc25tcGxpYi9zbm1wX2F1dGguYyAtIG1pbm9yIGZpeCBvZiBjb21tZW50CiAgICAgLSB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiAtIHNubXBfcGFyc2VfYXJncyBuZWVkcyBhIG5ldyBmdW5jdGlvbgogICAKMTk5OS0wMS0xOSAxOTo1OSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIF9fUCBjaGVja2luZy4KICAgCjE5OTktMDEtMTggMTA6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5oLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuaCwgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oLAogICBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICB3aW4zMi9jb25maWcuaDoKCiAgIC0gKFJFQURNRSwgYXBwcywgYWdlbnQsIGFjY29uZmlnLmgpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSBhbnNpJ2lmeSBldmVyeXRoaW5nLgogICAKMTk5OS0wMS0xOCAxMDo0MyAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBhY2NvbmZpZy5oLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jCiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwgYWdlbnQvYXV0b19ubGlzdC5jLAogICBhZ2VudC9hdXRvX25saXN0LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaAosIGFnZW50L3NubXAycC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jLCBhZ2VudC9zbm1wZC5oCiwgYWdlbnQvdmFyX3N0cnVjdC5oLCBhZ2VudC92aWV3X3BhcnNlLmMsCiAgIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYywgYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5oLAogICBhZ2VudC9kbG1vZHMvZXhhbXBsZS5jLCBhZ2VudC9kbG1vZHMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS5jLCBhZ2VudC9taWJncm91cC9taWJJSS5oLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaAosIGFnZW50L21pYmdyb3VwL3YycGFydHkuYywgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5oCiwgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5oCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW0uaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMKLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmgsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaAosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaAosIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5oOgoKICAgLSAoUkVBRE1FLCBhcHBzLCBhZ2VudCwgYWNjb25maWcuaCk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIGFuc2knaWZ5IGV2ZXJ5dGhpbmcuCiAgIAoxOTk5LTAxLTE2IDIzOjEzICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTYgKQogICAKMTk5OS0wMS0xNiAyMzoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFjbC5jLCBhY2wuaCwgYWNsX3BhcnNlLmMsIGFzbjEuYwosIGFzbjEuaCwgY29udGV4dC5jLCBjb250ZXh0LmgsCiAgIGNvbnRleHRfcGFyc2UuYywgaW50NjQuYywgaW50NjQuaCwgbWQ1LmMsCiAgIG1kNS5oLCBtaWIuYywgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgKLCBwYXJ0eS5jLCBwYXJ0eS5oLCBwYXJ0eV9wYXJzZS5jLAogICByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wLmMsIHNubXAuaAosIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfYXV0aC5jLAogICBzbm1wX2NsaWVudC5jLCBzbm1wX2NsaWVudC5oLCBzbm1wX2ltcGwuaCwKICAgc3lzdGVtLmMsIHN5c3RlbS5oLCB2YWNtLmMsIHZhY20uaCwKICAgdmlldy5jLCB2aWV3Lmg6CgogICAtIChzbm1wbGliLyouW2NoXSk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIGFzbmknaWZ5IGFsbCBmdW5jdGlvbnMuCiAgIAoxOTk5LTAxLTE2IDIzOjA0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSAoc25tcGNtZC4xKTogdXBkYXRlZCAtRCBkZXNjcmlwdGlvbi4KICAgCjE5OTktMDEtMTUgMTY6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMsIHNtdXguaDoKCiAgIC0gKHNtdXguYywgc211eC5oKTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgIC0gc211eCBwYXRjaGVzLgogICAKMTk5OS0wMS0xNSAxNTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICAtICh2YWNtLmMpOiBERUJVR01TRyB0eXBvLgogICAKMTk5OS0wMS0xNSAxNTo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IG1ha2VmaWxlaW5kZXBlbmQuCiAgIAoxOTk5LTAxLTE1IDE1OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLAogICBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIG1pYmdyb3VwL01ha2VmaWxlLmluCiwgbWliZ3JvdXAvbWliSUkuaCwgbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgbWliZ3JvdXAvZHVtbXkvZHVtbXkuaCwgbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBtaWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgsIG1pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jCiwgbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmgsIG1pYmdyb3VwL21pYklJL2F0LmMsCiAgIG1pYmdyb3VwL21pYklJL2F0LmgsIG1pYmdyb3VwL21pYklJL2ljbXAuYywKICAgbWliZ3JvdXAvbWliSUkvaWNtcC5oLCBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgbWliZ3JvdXAvbWliSUkvaXAuYywKICAgbWliZ3JvdXAvbWliSUkvaXAuaCwgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaCwgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsIG1pYmdyb3VwL21pYklJL3N5c3RlbS5jLAogICBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuaAosIG1pYmdyb3VwL21pYklJL3RjcC5jLCBtaWJncm91cC9taWJJSS90Y3AuaCwKICAgbWliZ3JvdXAvbWliSUkvdWRwLmMsIG1pYmdyb3VwL21pYklJL3VkcC5oLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLAogICBtaWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCBtaWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oCiwgbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBtaWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsIG1pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYwosIG1pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaCwgbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jCiwgbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5oLCBtaWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMKLCBtaWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLCBtaWJncm91cC91Y2Qtc25tcC9wYXNzLmMKLCBtaWJncm91cC91Y2Qtc25tcC9wYXNzLmgsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBtaWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaCwgbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jCiwgbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLCBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuaCwKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMKLCBtaWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvKik6CiAgICAgLSBtYWRlIGFsbCAob2ssIHNvbWUuICFob3N0KSBtaWIgbW9kdWxlcyB1c2Ugc25tcGRfcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoKS4KICAgICAtIG1hZGUgYWxsIChvaywgc29tZS4gIWhvc3QpIG1pYiBtb2R1bGVzIHVzZSByZWdpc3Rlcl9taWIoKS4KICAgCjE5OTktMDEtMTUgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcGQuYywgc25tcGQuaDoKCiAgIC0gKHNubXBkLmMsIHNubXBkLmgpOgogICAgIC0gcmVtb3ZlIHJldmVyc2VfYnl0ZXMoKSB1c2FnZS4KICAgCjE5OTktMDEtMTUgMTE6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXAycC5jOgoKICAgLSAoc25tcDJwLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHJlbW92ZSByZXZlcnNlX2J5dGVzKCkgdXNhZ2UuCiAgIAoxOTk5LTAxLTE0IDA5OjAyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKTogdXBkYXRlIGZvciBTTk1QLnBtIDEuOC4KICAgCjE5OTktMDEtMDkgMjE6NDggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYXV0b19ubGlzdC5jLAogICBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICBtaWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIG1pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywgbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsIG1pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsIG1pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsIG1pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBtaWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBtaWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIG1pYmdyb3VwL21pYklJL2F0LmMsCiAgIG1pYmdyb3VwL21pYklJL2ljbXAuYywgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBtaWJncm91cC9taWJJSS9pcC5jLCBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIG1pYmdyb3VwL21pYklJL3N5c3RlbS5jLAogICBtaWJncm91cC9taWJJSS90Y3AuYywgbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgbWliZ3JvdXAvc211eC9zbXV4LmMsIG1pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywgbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCBtaWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwosIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYwosIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICAtIChhZ2VudC8qLmMpOgogICAgIC0gdXNlIHRoZSBuZXcgZGVidWdnaW5nIGZ1bmN0aW9ucy4KICAgICAtIGltcGxlbWVudCBuZWVkZWQgLUQgZmxhZyBjaGFuZ2VzLgogICAKMTk5OS0wMS0wOSAyMDo1MiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gKHNubXBjbWQuMSk6IGRpc2N1c3MgLUQgdXNhZ2UgY2hhbmdlLgogICAKMTk5OS0wMS0wOSAyMDo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogREVCVUdQT0lEIHJlcGxhY2VtZW50OiBERUJVR01TR09JRC4KICAgCjE5OTktMDEtMDkgMjA6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiByZW1vdmUgb2xkIHRva2VuIHNwZWNpZmllciBpbiBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQKICAgICBmb3JtYXQgbGluZS4KICAgCjE5OTktMDEtMDkgMjA6NTAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jLCBtYWluLmM6CgogICAtIChpZi5jLCBtYWluLmMpOiB1c2UgdGhlIG5ldyBkZWJ1Z2dpbmcgZnVuY3Rpb25zLgogICAKMTk5OS0wMS0wOSAyMDo1MCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIC0gKHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYyk6IHVzZSB0aGUgbmV3IGRlYnVnZ2luZyBmdW5jdGlvbnMuCiAgIAoxOTk5LTAxLTA5IDIwOjQ5ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKEZBUSwgUkVBRE1FKTogVVJMIGNoYW5nZXMuCiAgIAoxOTk5LTAxLTA5IDIwOjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBtYWtlIC1EIHJlZ2lzdGVyIHRoZSBkZWJ1Z2dpbmcgdG9rZW5zIHNwZWNpZmllZC4KICAgCjE5OTktMDEtMDkgMjA6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChzbm1wdGFibGUuYyk6IGNoYW5nZSBpbnRlcm5hbCBkZWJ1ZyB2YXJpYWJsZSB0byBsb2NhbGRlYnVnLgogICAKMTk5OS0wMS0wOSAyMDoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCByZWFkX2NvbmZpZy5jLAogICBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCB2YWNtLmM6CgogICAtIChtaWIuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgdmFjbS5jKToKICAgICAtIEltcGxlbWVudCB0aGUgbmV3IHRva2VuIGJhc2VkIGRlYnVnZ2luZyBtZXNzYWdlIHN1cHBvcnQuCiAgIAoxOTk5LTAxLTA1IDEwOjQ4ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGJ1bGt3YWxrLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYwosIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywKICAgc25tcHdhbGsuYzoKCiAgIC0gKHNubXBidWxrd2Fsay5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLAogICAgIHNubXB0YWJsZS5jLCBzbm1wd2Fsay5jKTogUGF0Y2ggZnJvbSBtc2xpZmNha0Bpc3MubmV0OgogICAgIC0gbWFrZSBtYWluKCkgcmV0dXJuIGFuIGludCBpbnN0ZWFkIG9mIHZvaWQuCiAgIAoxOTk5LTAxLTA1IDEwOjQxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSAoc25tcHRhYmxlLmMpOiBNYWtlIGZpZWxkIHNlcGFyYXRvciB0YWtlIGFyZ3VtZW50cyBkaXJlY3RseSBhZnRlciB0aGUgLWYuCiAgIAoxOTk5LTAxLTAyIDA4OjQ4ICBoYXJkYWtlcgoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IFBhdGNoIGZyb20gSmFrb2IgRWxsZXJzdGVkdDoKICAgICAtIG5ldyBjb21wbGV0ZSBsaXN0IG9mIGlmVHlwZXMuCiAgIAoxOTk4LTEyLTMxIDE3OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZpZCBUaWxsZXI6CiAgICAgLSBvaWRMZW4ncyB3ZXJlIHdyb25nIGZvciBtMm0gb2lkcy4KICAgCjE5OTgtMTItMzEgMTc6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIERhdmlkIFRpbGxlcjoKICAgICAtIG5lZWQgdG8gcmVhZF9vYmppZCgpIHRoZSBjb250ZXh0IG9pZCBiYXNlLCBub3QgdGhlIHBhcnR5IG9pZCBiYXNlCiAgICAgICBpbiBvbmUgbG9jYXRpb24uCiAgIAoxOTk4LTEyLTMxIDE3OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmM6CgogICAtIChldmVudC5jKTogUGF0Y2ggZnJvbSBEYXZpZCBUaWxsZXI6CiAgICAgLSBtZW1jbXAncyBzaXplcyB3ZXJlIHdyb25nLgogICAKMTk5OC0xMi0yOSAxNzowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHZhY20uYyAoVjMtYjMuMiksIHZhY20uYzoKCiAgIC0gKHZhY20uYyk6IEVuYWJsZSBtdWx0aXBsZSBzaWRlIGJ5IHNpZGUgdmlld3MgaW4gdGhlIHZpZXcgZmFtaWx5CiAgICAgdHJlZS4gIFRoZSB2aWV3cyBhbHJlYWR5IGV4aXN0ZWQsIGJ1dCB3ZXJlbid0IGNoZWNrZWQgYW5kIG9ubHkgdGhlCiAgICAgZmlyc3QgdmlldyB3YXMgZm91bmQuCiAgICAgLSBOb3QgZG9uZSBpbiBhIGNsZWFuIGZhc2hpb24uICBNdWNoIG9mIHRoZSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMKICAgICAgIHNob3VsZCBiZSByZXdyaXR0ZW4gd2l0aCBzdWItcGllY2VzIHRvIGRvIGl0IHByb3Blcmx5IHdpdGggZ3JlYXRlcgogICAgICAgc3BlZWQuCiAgIAoxOTk4LTEyLTI5IDE2OjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHJlbW92ZSBuZXdsaW5lcyBmcm9tIHNwcmludF92YWx1ZSgpIHdoZXJlIGFwcGxpY2FibGUuCiAgIAoxOTk4LTEyLTI2IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmM6CgogICAtIChkbG1vZC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggZGxtb2QgY29tcGlsYXRpb24gaW4gc25tcGRfcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoKSBjYWxsLgogICAKMTk5OC0xMi0yMiAxNDo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2FwaS5jOgoKICAgLSAobWliLmMsIHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGZpeCBteSBicm9rZW4gc2V0X2xvY2FsZSBzdHVmZi4KICAgCjE5OTgtMTItMjIgMDg6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBkb24ndCBjb21waWxlIGRsbW9kcwogICAKMTk5OC0xMi0yMSAxODoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gKHN5c3RlbS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBXaW4zMiBtZW1vcnkgbGVhayBmaXhlcyBmb3Igb3BlbmRpcigpLCBldGMuCiAgIAoxOTk4LTEyLTIxIDE4OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICAtIChmaWxlLmgsIFVDRC1TTk1QLU1JQi50eHQpOiBtb3ZlIHRoZSBmaWxlIG1pYiB0byAuMTUgc28gaXQgZG9lc24ndAogICAgIGNvbmZsaWN0IHdpdGggdGhlIGRlbW8gbWliLgogICAKMTk5OC0xMi0yMSAxODoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBhIC5nZGIgZmlsZSBvZiBtaW5lLgogICAKMTk5OC0xMi0yMSAwOTo1NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvaXBmLW1vZC5wbCwgbWlicy9JUEZJTFRFUi50eHQ6CgogICAtIChpcGYtbW9kLnBsLCBJUEZJTFRFUi50eHQpOiBQYXRjaCBmcm9tIFlhcm9zbGF2IFRlcmxldHNreToKICAgICAtIGlwZmlsdGVyIHBhc3Mgc2NyaXB0IGFuZCBtaWIgZmlsZS4KICAgCjE5OTgtMTItMTggMTg6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdmVyc2lvbmluZm8uYywgdmVyc2lvbmluZm8uaAo6CgogICAtICh2ZXJzaW9uaW5mby5jLCB2ZXJzaW9uaW5mby5oKTogbWliIG9iamVjdCB0byBkaXNwbGF5IGNvbmZpZ3VyZSBvcHRpb25zLgogICAKMTk5OC0xMi0xOCAxODoxNiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIHN0b3JlIGNvbmZpZ3VyZSBmbGFncyB0byBhIGRlZmluZS4KICAgCjE5OTgtMTItMTggMTg6MTIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGluY2x1ZGUgcmVhZF9jb25maWcuaC4KICAgCjE5OTgtMTItMTggMTg6MTEgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLSAobGlic25tcC5kZWYpOiB1cGRhdGUgZnJvbSBNaWNoYWVsIFNsaWZjYWsuCiAgIAoxOTk4LTEyLTE4IDE4OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaAo6CgogICAtIChwYXJzZS5jLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAtIGZpeGVzIGZyb20gTWljaGFlbCBTbGlmY2FrLgogICAgIC0gbWlzYyByZWFkX2NvbmZpZyBmdW5jdGlvbnMgcHVsbGVkIGluIGZyb20gdGhlIHYzIHdvcmsuCiAgIAoxOTk4LTEyLTE4IDExOjM2ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB0eXBvLgogICAKMTk5OC0xMi0xNyAwODowNSAgZHJlZWRlcgoKICAgKiBsb2NhbC9zbm1wZC11Y2Quc2g6CgogICBmaWxlIHNubXBkLXVjZC5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMy4KICAgCjE5OTgtMTItMTYgMDc6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHBvaW50ZXIgY2hlY2tzIGJlZm9yZSBmcmVlaW5nIG1lbW9yeS4KICAgCjE5OTgtMTItMTMgMDg6NTkgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlNSApCiAgIAoxOTk4LTEyLTEzIDA4OjU3ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBhZGRlZCBKZWZmIEpvaG5zb24gdG8gdGhlIGNvbnRyaWJ1dG9ycyBsaXN0LgogICAKMTk5OC0xMi0xMyAwODo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdC5jKTogUGF0Y2ggZnJvbSBKZWZmIEpvaG5zb246CiAgICAgLSBwcm90ZWN0IGFnYWluc3QgbWVtb3J5IGxlYWtzIHdpdGggdGhlIFJQTSBwYWNrYWdlIGluZm8gY2FsbHMuCiAgIAoxOTk4LTEyLTEzIDA4OjQyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIC0gKGluZXQuYyk6IGluaXQgcG9pbnRlciB0byBOVUxMLgogICAKMTk5OC0xMi0xMyAwODo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICAtIChocl9maWxlc3lzLmMpOiB3YXRjaCBvdXQgZm9yIE5VTEwgZmlsZSBwb2ludGVycy4KICAgCjE5OTgtMTItMTMgMDg6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IHJlbW92ZSBhIGZldyBkZWZpbmVzIHRoYXQgd2VyZSBtZXNzaW5nIHVwIHNvbGFyaXMgNy4KICAgCjE5OTgtMTItMTMgMDg6MTQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHJlbW92ZSAtdy8tVyBmbGFnIGluIHVzYWdlLgogICAKMTk5OC0xMi0xMyAwODoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IHNwYWNpbmcgaW4gbWliIG9wdGlvbiB1c2FnZSBmaXhlcy4KICAgCjE5OTgtMTItMTMgMDg6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIC0gKGRpc2suYyk6IGZpeCBkaXNrIHNpemUgZXJyb3IgZmxhZyByZXBvcnRpbmcgb24gU29sYXJpcy4KICAgCjE5OTgtMTItMTMgMDg6MDYgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogYmVnaW5uaW5nIG5vdGVzIGZvciAzLjYuCiAgIAoxOTk4LTEyLTEzIDA3OjQ5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiAtUCBmbGFnIGZvciB0b2dnbGluZyBuZXcgbWliIHBhcnNpbmcgb3B0aW9ucy4KICAgCjE5OTgtMTItMTMgMDc6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IG5ldyBmdW5jdGlvbnM6IHNubXBfbWliX3RvZ2dsZV9vcHRpb25zKCkgYW5kIHVzYWdlLgogICAKMTk5OC0xMi0xMyAwNzo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG1pYi5jLCBzbm1wX2FwaS5jKToKICAgICAtIHVzZSBzZXRsb2NhbGUoKSBpZiBhdmFpbGFibGUgdG8gY29ycmVjdCBpc3ByaW50IHByb2JsZW1zLgogICAKMTk5OC0xMi0wNSAxNjo1MiAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RlbW8ucmVtb3RlOgoKICAgZmlsZSBkZW1vLnJlbW90ZSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDQgMTY6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZjoKCiAgIGZpbGUgdWNkRGVtb1B1YmxpYy5jb25mIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wNCAxNjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jbWRzOgoKICAgZmlsZSB1Y2REZW1vUHVibGljLmNtZHMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTA0IDE2OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmM6CgogICBmaWxlIHVjZERlbW9QdWJsaWMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDQgMTY6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuaDoKCiAgIGZpbGUgdWNkRGVtb1B1YmxpYy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wNCAxNjo0NSAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtREVNTy1NSUIudHh0OgoKICAgZmlsZSBVQ0QtREVNTy1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wNCAxMTowMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBmaWxlIHNubXB1c20uYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDMgMTg6NDQgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kZW1vMi5mdW5jdGlvbnM6CgogICBmaWxlIGRlbW8yLmZ1bmN0aW9ucyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDMgMTg6NDQgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kZW1vMjoKCiAgIGZpbGUgZGVtbzIgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTAzIDE4OjQ0ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZGVtbzIuc2V0dXBmaWxlOgoKICAgZmlsZSBkZW1vMi5zZXR1cGZpbGUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTAyIDE1OjE5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgZmlsZSBzbm1wLmNvbmYuNS5kZWYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTExLTI3IDE2OjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBwYXNzLmM6CgogICBmaWxlIHNubXBwYXNzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTExLTI0IDE2OjQzICBkcmVlZGVyCgogICAqIHNubXBsaWIvdHJhbnNmb3JtX29pZHMuaDoKCiAgIGZpbGUgdHJhbnNmb3JtX29pZHMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTEtMjQgMTY6NDMgIGRyZWVkZXIKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmM6CgogICBmaWxlIGVuY29kZV9rZXljaGFuZ2UuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTEtMjMgMTY6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gbWlzYyBwYXJzaW5nIGJ1ZyBmaXhlcy4KICAgICAtIC13ICYgLVcgb3B0aW9ucyB0byBkZWZhdWx0IGFwcGxpY2F0aW9uIHBhcnNlX2FyZ3MuCiAgICAgLSBydW50aW1lIG9wdGlvbnMgdG8gY29udHJvbCB1bmRlcnNjb3JlIGFuZCBjb21tZW50IHBhcnNpbmcgaW4gbWlicy4KICAgCjE5OTgtMTEtMjMgMTY6MTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgbWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIG1pc2MgcGFyc2luZyBidWcgZml4ZXMuCiAgICAgLSAtdyAmIC1XIG9wdGlvbnMgdG8gZGVmYXVsdCBhcHBsaWNhdGlvbiBwYXJzZV9hcmdzLgogICAgIC0gcnVudGltZSBvcHRpb25zIHRvIGNvbnRyb2wgdW5kZXJzY29yZSBhbmQgY29tbWVudCBwYXJzaW5nIGluIG1pYnMuCiAgIAoxOTk4LTExLTIzIDE1OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMsIGlyaXguaCk6IGZpeCBsb2NhdGlvbiBvZiBfS0VSTkVMIGRlZmluZSBmb3IgaXJpeC4KICAgCjE5OTgtMTEtMjIgMDc6MjggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvLmN2c2lnbm9yZToKCiAgIGZpbGUgLmN2c2lnbm9yZSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTEtMjIgMDc6MjcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZGVtbzoKCiAgIGZpbGUgZGVtbyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTEtMTYgMjI6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiB0b28gbWFueSBpbXByb3ZlbWVudHMgdG8gY291bnQuCiAgIAoxOTk4LTExLTA2IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHYyIHRyYXAgc2VuZCBkZWJ1Z2dpbmcuCiAgIAoxOTk4LTExLTA2IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuaCk6IHVzZSB0cmFwMnNpbmsgZm9yIHYyIGhhbmRsZXJzCiAgIAoxOTk4LTExLTA2IDE3OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGZpeCB2MiB0cmFwIGdlbmVyYXRpb24uCiAgIAoxOTk4LTEwLTI0IDIzOjA3ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvbWlzY3Rlc3QuYzoKCiAgIGZpbGUgbWlzY3Rlc3QuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMTU6MzkgIGRyZWVkZXIKCiAgICogdGVzdGluZy9ldGltZXRlc3QuYzoKCiAgIGZpbGUgZXRpbWV0ZXN0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDEzOjU4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW0uaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmgsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvcmVhZF9jb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wZC5jLCB3b21iYXQuaCwKICAgICBzeXN0ZW0uaCwgdmFjbV92YXJzLmgsIGRsbW9kLmMsIGRpc2suaCwgZXh0ZW5zaWJsZS5oLCBmaWxlLmgsCiAgICAgbG9hZGF2ZS5oLCBtZW1vcnkuaCwgbWVtb3J5X2ZyZWVic2QyLmgsIHBhc3MuaCwgcGFzc19wZXJzaXN0LmgsCiAgICAgcHJvYy5oLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXBkLmMsIG1pYi5jLCByZWFkX2NvbmZpZy5jLAogICAgIHJlYWRfY29uZmlnLmgpOgogICAgIC0gbmV3IG9wdGlvbiAtSCBvbiBjb21tYW5kIGxpbmUgdG8gcHJpbnQgb3V0IC5jb25mIGZpbGUgZGlyZWN0aXZlcwogICAgICAgdGhhdCB0aGUgYXBwbGljYXRpb24gdW5kZXJzdGFuZHMuCiAgICAgLSBjcmVhdGVkIGEgbmV3IG9wdGlvbiB0byB0aGUgcmVhZCBjb25maWcgcmVnaXN0cmF0aW9uIHRvIGFsbG93CiAgICAgICBzcGVjaWZ5aW5nIG9mIGEgaGVscCBsaW5lLgogICAKMTk5OC0xMC0yMyAxMzo1NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IGVkaXRhYmxlIG9pZCBmaWVsZC4KICAgCjE5OTgtMTAtMjMgMTM6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMKOgoKICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMpOiBidWcgZml4ZXMsIG1pc3NpbmcgI2VuZGlmLgogICAKMTk5OC0xMC0yMyAxMzo1NCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc2VydCBAIHNpZ24uCiAgIAoxOTk4LTEwLTIzIDA5OjQ1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvVC5zaDoKCiAgIGZpbGUgVC5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMDk6NDUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9ldmFsX3Rlc3RsaXN0OgoKICAgZmlsZSBldmFsX3Rlc3RsaXN0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMyAwOTo0NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBmaWxlIGV2YWxfdG9vbHMuc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDA5OjQ1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaDoKCiAgIGZpbGUgZXZhbF9zdWl0ZS5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMDk6NDUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9ldmFsX29uZXByb2dyYW0uc2g6CgogICBmaWxlIGV2YWxfb25lcHJvZ3JhbS5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMDk6NDUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9ULmM6CgogICBmaWxlIFQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMDk6NDUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9SRUFETUU6CgogICBmaWxlIFJFQURNRSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMDc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgLSAoaHJfZmlsZXN5cy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIE5VTEwgY2hlY2tpbmcgb24gdGhlIGZpbGVzeXN0ZW0gbW91bnQgcG9pbnQuCiAgIAoxOTk4LTEwLTIxIDE5OjU1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvdGVzdF9rdWwuc2g6CgogICBmaWxlIHRlc3Rfa3VsLnNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL3Rlc3Rfa2V5Y2hhbmdlLnNoOgoKICAgZmlsZSB0ZXN0X2tleWNoYW5nZS5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy90ZXN0X3Rvb2xzLnNoOgoKICAgZmlsZSB0ZXN0X3Rvb2xzLnNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RhdGEua3VsLW1kNToKCiAgIGZpbGUgZGF0YS5rdWwtbWQ1IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEtZGVzOgoKICAgZmlsZSBkYXRhLmtleWNoYW5nZS1zaGExLWRlcyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExOgoKICAgZmlsZSBkYXRhLmtleWNoYW5nZS1zaGExIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLW1kNToKCiAgIGZpbGUgZGF0YS5rZXljaGFuZ2UtbWQ1IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RhdGEua3VsLXNoYTE6CgogICBmaWxlIGRhdGEua3VsLXNoYTEgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIxIDE3OjAxICBoYXJkYWtlcgoKICAgKiBtYW4vOiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuMy5kZWYKOgoKICAgLSAoLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLjMuZGVmKToKICAgICAtIG5ldyB1bnByb29mcmVhZCBtYW51YWwgb24gdGhlIHJlYWRfY29uZmlnIGFwaSAobW9zdCBvZiBpdCkuCiAgIAoxOTk4LTEwLTIxIDExOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIC0gKGhyX2ZpbGVzeXMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSB3YXRjaCBvdXQgZm9yIGVtcHR5IGZpbGUgbmFtZXMgcGFzc2VkIGluLgogICAKMTk5OC0xMC0yMSAxMDo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBGaXggcGFyc2VyIHRvIGRlYWwgd2l0aCBhbm9ueW1vdXMgY2hpbGRyZW4gcHJvcGVybHkuCiAgIAoxOTk4LTEwLTIwIDExOjM4ICBkcmVlZGVyCgogICAqIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jOgoKICAgZmlsZSBrZXltYW5hZ2V0ZXN0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE4IDIxOjE0ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBmaWxlIE1ha2VmaWxlLmluIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xOCAyMToxNCAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL3NjYXBpdGVzdC5jOgoKICAgZmlsZSBzY2FwaXRlc3QuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTYgMDg6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMKOgoKICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGFpeC5oKTogYWl4IGhlYWRlciBmaWxlIGZpeGVzLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBmaWxlIHRvb2xzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIvdG9vbHMuaDoKCiAgIGZpbGUgdG9vbHMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9sY2RfdGltZS5oOgoKICAgZmlsZSBsY2RfdGltZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBmaWxlIHNjYXBpLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIvc2NhcGkuaDoKCiAgIGZpbGUgc2NhcGkuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9sY2RfdGltZS5jOgoKICAgZmlsZSBsY2RfdGltZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmg6CgogICBmaWxlIGtleXRvb2xzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIGZpbGUga2V5dG9vbHMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9hbGxfZ2VuZXJhbF9sb2NhbC5oOgoKICAgZmlsZSBhbGxfZ2VuZXJhbF9sb2NhbC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL2FsbF9zeXN0ZW0uaDoKCiAgIGZpbGUgYWxsX3N5c3RlbS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL2RlYnVnLmg6CgogICBmaWxlIGRlYnVnLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE0IDE2OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogZml4IGZvciBocHV4OS4KICAgCjE5OTgtMTAtMTQgMTY6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZml4IGZvciBicm9rZW4gY29tcGlsZXIgd2FybmluZ3Mgb24gTlQuCiAgIAoxOTk4LTEwLTE0IDE2OjQyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICAtIChzbm1wZC4xLmRlZik6IGRvY3VtZW50IC1BLgogICAKMTk5OC0xMC0xNCAxNjo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBkb2N1bWVudCAtQS4KICAgCjE5OTgtMTAtMTQgMTY6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogLUE6IGFwcGVuZCB0byBsb2cgZmlsZS4KICAgCjE5OTgtMTAtMTQgMDk6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgLSAoaHJfc3RvcmFnZS5jKTogbWFjaGluZS90eXBlcy5oIGFuZCBzeXMvdm1tZXRlci5oIGZvciBmcmVlYnNkMy4KICAgCjE5OTgtMTAtMTQgMDk6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmg6CgogICAtIChob3N0X3Jlcy5oKTogbmV0L2luX3Zhci5oIGZvciBmcmVlYnNkMy4KICAgCjE5OTgtMTAtMTQgMDk6NDEgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBtYWNoaW5lL3R5cGVzLmguCiAgIAoxOTk4LTEwLTE0IDA5OjE3ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGNoYW5nZSBwdWJsaWMgY29tbXVuaXR5IGV4YW1wbGVzIC0+IHByaXZhdGUuCiAgIAoxOTk4LTEwLTA5IDIzOjIwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBEYXZlIFNoaWVsZCBleHBsYWlucyBpbiB3b25kZXJvdXMgZGV0YWlsIGFsbCBhYm91dCB0aGUgVkFDTSBtb2R1bGUuCiAgIAoxOTk4LTEwLTA5IDIzOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHN1cHBvcnQgZm9yIHN0cmljdCAoY2FzZSBzZW5zaXRpdmUpIG9wdGlvbiB0byB0aGUgbWliIGNvbXBpbGVyLgogICAKMTk5OC0xMC0wOSAyMzowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBDaGVjayBmb3IgZnVsbHkgcXVhbGlmaWVkIG9pZCBzdGF0ZW1lbnRzLgogICAKMTk5OC0xMC0wOSAwODowOSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdXNlIHpsaWIgd2hlbiB1c2luZyBycG0gbGlicmFyaWVzLgogICAKMTk5OC0xMC0wNyAxNzowMCAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKOgoKICAgLSAobGlic25tcC5kc3AsIGxpYnNubXBfZGxsLmRzcCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gd2luTlQgcHJvamVjdCBmaWxlIHVwZGF0ZXMuCiAgIAoxOTk4LTEwLTA3IDE2OjU0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgLSAoc25tcGRlbHRhLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGZpeCBleGl0aW5nIHByb2JsZW1zIG9uIE5ULgogICAKMTk5OC0xMC0wNyAxNjo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGZpeCBkZWZhdWx0IHBvcnQgcHJvYmxlbXMgKGFnYWluKS4KICAgCjE5OTgtMTAtMDcgMTY6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHJlbW92ZSB1bi1uZWVkZWQgaGVhZGVycy4KICAgCjE5OTgtMTAtMDcgMTY6NDkgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggbWFrZSBodG1sLgogICAKMTk5OC0xMC0wNyAxNjo0OSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gcHJvcGVybHkgbG9jYXRlIHZlcnNpb24uaCBpbiAkKHNyY2RpcikuCiAgIAoxOTk4LTEwLTA2IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTMgKQogICAKMTk5OC0xMC0wNiAxNTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiB0eXBvLgogICAKMTk5OC0xMC0wNiAxNTozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiBmaXggZm9yIGN2cyAxLjEwLgogICAKMTk5OC0xMC0wNiAxNTozNCAgaGFyZGFrZXIKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgLSAocmVtb3ZlLWZpbGVzKTogdXBkYXRlLgogICAKMTk5OC0xMC0wNiAxNTozMCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUItT0xELnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi1PTEQudHh0KTogYWRkZWQKICAgCjE5OTgtMTAtMDYgMTU6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBzZXR1cCBkZWZpbmUgZm9yIEhBVkVfVVNMRUVQLgogICAKMTk5OC0xMC0wNiAxNToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAtICh2YXJfcm91dGUuYyk6IGhhY2sgZml4ZXMgZm9yIGhwdXgxMCBhbmQgcnRlbnRyeS4KICAgCjE5OTgtMTAtMDUgMTc6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgLSAoaHJfcHJvYy5jKTogcG9zc2libGUgZml4IGZvciBzb2xhcmlzJ3MgcHJvY2VzcyBwZXJjZW50YWdlLgogICAKMTk5OC0xMC0wNSAxNjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZHVtbXkvOiBkdW1teS5jLCBkdW1teS5oOgoKICAgLSAoZHVtbXkuYywgZHVtbXkuaCk6IHVwZGF0ZSB0byByZW1vdmUgY29tbW9uX2hlYWRlci5oCiAgIAoxOTk4LTA5LTMwIDE0OjU2ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIEVYQU1QTEUuY29uZi5kZWYsIE5FV1MsIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYXAuYywgc25tcGxpYi9wYXJzZS5jOgoKICAgLSAoQ2hhbmdlTG9nLCBFWEFNUExFLmNvbmYuZGVmLCBORVdTLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbnRlcmZhY2VzLmMsIG1lbW9yeS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLCBwYXJzZS5jKToKICAgICAtIG1lcmdlIDMuNS4zIGNoYW5nZXMgaW50byBtYWluIHRydW5rLgogICAKMTk5OC0wOS0yNSAxODoxNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCB1dGlsX2Z1bmNzLmMpOiB1c2UgVVNMRUVQIGlmIGF2YWlsYWJsZSBmb3IKICAgICBzbWFsbCBzbGVlcCB0aW1lcyB3aGlsZSB3YWl0aW5nIGZvciBwcm9jZXNzZXMgdG8gZmluaXNoLgogICAKMTk5OC0wOS0yNSAxODowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHJlbW92ZSB1bm5lZWRlZCBjb21tZW50LW91dC4KICAgCjE5OTgtMDktMjUgMTg6MDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHZlcnNpb24uaCwgYW5kIHN0cmlwIGluY2x1ZGVzIG91dCBvZiBjb25maWcuaAogICAKMTk5OC0wOS0yNSAxNzo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogZG9uJ3QgaW5zdGFsbCBsaWJzbm1wLmguICBJdCdzIGdvaW5nIHRvIGNoYW5nZSB0b28KICAgICBtdWNoIGluIHRoZSBmdXR1cmUuCiAgIAoxOTk4LTA5LTI1IDE3OjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGluc3RhbGwgbW9yZSBoZWFkZXJzLgogICAKMTk5OC0wOS0yNSAxNzozMiAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBjb25maWcuaCwgd2luMzIuZHN3LCBsaWJzbm1wL2xpYnNubXAuZHNwCiwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAosIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwOgoKICAgLSAoY29uZmlnLmgsIHdpbjMyLmRzdywgbGlic25tcC5kc3AsIGxpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC5kc3AsCiAgICAgIHNubXB0YWJsZS5kc3ApOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHN0dXBpZCBPUyB1cGRhdGUuCiAgIAoxOTk4LTA5LTI1IDE3OjI2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9zZXNzX2FwaS4zOgoKICAgLSAoc25tcF9zZXNzX2FwaS4zKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBzZXNzaW9uIGRvY3VtZW50YXRpb24gdXBkYXRlLgogICAKMTk5OC0wOS0yNSAxNzoyNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKHNubXB0YWJsZS5jKTogcHJvY2VzcyBhcmdzIGRpcmVjdGx5IGluc3RlYWQgb2YgcmVseWluZyBvbiBnZXRfb3B0KCkuCiAgIAoxOTk4LTA5LTI1IDE3OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oLCByZWFkX2NvbmZpZy5jLAogICBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAobWliLmMsIG1pYi5oLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbQogICAgIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGZpeCBjb21waWxlciB3YXJuaW5ncywgZXJyb3JzLgogICAKMTk5OC0wOS0yNSAxNzoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMKOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgLSBUaGUgQ01VIGxpYnJhcnkgaGFzIGFuIG9wdGltaXphdGlvbiBpbiBzbm1wX2Nsb25lX3BkdSgpIHRoYXQgZG9lcwogICAgICBub3QgY29weSB6ZXJvIGxlbmd0aCBzdHJpbmdzLiAgSSBoYWQgbWVyZ2VkIHRoaXMgaW4gd2l0aCBjaGFuZ2VzCiAgICAgIG1hZGUgZm9yIG11bHRpLXRocmVhZCBzdXBwb3J0LiAgVW5mb3J0dW5hdGVseSwgSSBkaWQgbm90IG1ha2Ugc3VyZQogICAgICB0aGUgY2xvbmVkIFBEVSBoYWQgbm8gcG9pbnRlciBmb3IgdGhpcyBjYXNlLiAgT29wcyEKICAgIC0gQW5vdGhlciBwcm9ibGVtIGluIHNubXBfY2xvbmVfcGR1KCkgd2FzIHRoZSB0ZXN0IGZvciB6ZXJvIGxlbmd0aAogICAgICBzdHJpbmcgd2FzIG5vdCBiZWluZyBwZXJmb3JtZWQgb24gdGhlIGZpcnN0IHZhcmJpbmQgaW4gdGhlIGNoYWluLgogICAKMTk5OC0wOS0yNSAxNzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKEV4dC0zLTUtcGF0Y2hlcy41KSwgc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBkb24ndCByZWx5IG9uIHRoZSBnZXRzZXJ2YnluYW1lIHBvaW50ZXIgdG8gc3RheSBhcm91bmQuCiAgIAoxOTk4LTA5LTIzIDEzOjA2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcGFyc2UuYyk6IE5ldyBmbGFnOgogICAgIC0gLS1lbmFibGUtZW9sLXRlcm1pbmF0ZWQtY29tbWVudHMuCiAgIAoxOTk4LTA5LTIzIDEyOjE1ICBoYXJkYWtlcgoKICAgKiBJU1NVRVM6CgogICBmaWxlIElTU1VFUyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMjEgMTE6MTEgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMgKEV4dC0zLTUtcGF0Y2hlcy41KSwgc25tcF92YXJzLmMKICAgKFYzLWIxLls1LDJdKSwgc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IGZpbmFsbHkgZml4ZWQgdGhlIHdyaXRlX21ldGhvZCdzIGZvciBjcmVhdGlvbiBwcm9ibGVtLgogICAKMTk5OC0wOS0yMSAwODo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBmaWxlLmMsIGZpbGUuaDoKCiAgIC0gKGZpbGUuYywgZmlsZS5oKTogYWxsb3cgLTEgc2l6ZSB0byBpbmRpY2F0ZSBzaW1wbGUgc2l6ZSBtb25pdG9yaW5nLgogICAKMTk5OC0wOS0xOCAxNDowNCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IENoYW5nZSBmaWxlIHJldHVybiBjb2RlIGZyb20gVHJ1dGhWYWx1ZSB0bwogICAgIGludGVnZXIgc2luY2UgMS8yIGRvZXMgbm90IGZpdCB0aGUgY3VycmVudCAwLzEgcmV0dXJuIGNvZGUgc2NoZW1lLgogICAKMTk5OC0wOS0xOCAxNDowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oOgoKICAgLSAoZmlsZS5oKTogcmVtYXAgdG8gdGhlIDEwMC8xMDEgY29udmVudGlvbnMgb2YgdGhlIHVjZC1zbm1wIHRhYmxlcy4KICAgCjE5OTgtMDktMTggMTQ6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICAtICh1Y2Rfc25tcC5oKTogYWRkIHRoZSBmaWxlIG1pYiBtb2R1bGUuCiAgIAoxOTk4LTA5LTE4IDEzOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGZpbGUuYywgZmlsZS5oOgoKICAgLSAoZmlsZS5jLCBmaWxlLmgpOiBQYXRjaCBmcm9tIEpvbmFzIE9sc3NvbjoKICAgICAtIEltcGxlbWVudCBhIGZpbGUgc2l6ZSB3YXRjaGluZyBtaWIgbW9kdWxlICh1Y2Qtc25tcC9maWxlKS4KICAgCjE5OTgtMDktMTggMTM6MjAgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBhZGRlZCB0aGUgRmlsZVRhYmxlIHN1Ym1pdHRlZCBieSBKb25hcyBPbHNzb24uCiAgIAoxOTk4LTA5LTE4IDEyOjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAtdGMuaDoKCiAgIGZpbGUgc25tcC10Yy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xOCAwOTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBmaWxlIHNubXB1c20uYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTggMDk6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5oOgoKICAgZmlsZSBzbm1wdXNtLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE4IDA5OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgZmlsZSB1c21Vc2VyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE4IDA5OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oOgoKICAgZmlsZSB1c21Vc2VyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE2IDA3OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuaDoKCiAgIGZpbGUgdXNtU3RhdHMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTYgMDc6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jOgoKICAgZmlsZSB1c21TdGF0cy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNSAxMzowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZml4IGluaXRfc25tcCBjYWxscyBmcm9tIHNlc3Npb24gcm91dGluZXMuCiAgIAoxOTk4LTA5LTE1IDEzOjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiAvLyBjb21tZW50IC0+IC8qICovIGNvbW1lbnQuCiAgIAoxOTk4LTA5LTE1IDEzOjAyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIC0gKGluZXQuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gbWVtb3J5IHJlbGF0ZWQgZml4ZXMuCiAgIAoxOTk4LTA5LTE0IDIyOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmM6CgogICBmaWxlIHNubXBNUERTdGF0cy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNCAyMjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5oOgoKICAgZmlsZSBzbm1wTVBEU3RhdHMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTQgMTc6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaDoKCiAgIGZpbGUgc25tcHYzbWlicy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNCAxMjo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvZGxtb2RzL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWw6CiAgICAgLSBkbyBkbG1vZHMgY29tcGlsYXRpb24gYmV0dGVyIGF0IGxlYXN0IG9uIHNvbGFyaXMgYW5kIGxpbnV4LgogICAKMTk5OC0wOS0xNCAxMjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCBkbG1vZF9taWIuYywgdXRpbF9mdW5jcy5jLAogICAgIGR1bW15LmMsIHdvbWJhdC5jLCBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgICAgaHJfbmV0d29yay5jLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsCiAgICAgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywKICAgICBpcC5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgc25tcF9iZ3AuYywKICAgICBzbm1wX29zcGYuYywgc25tcF9yaXAyLmMsIGhwdXguYywgcGFzcy5jLCBwYXNzX3BlcnNpc3QuYywKICAgICByZWdpc3RyeS5jLCBhY2xfdmFycy5jLCBhbGFybS5jLCBjb250ZXh0X3ZhcnMuYywgZXZlbnQuYywKICAgICBwYXJ0eV92YXJzLmMsIHZpZXdfdmFycy5jLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gcmVuYW1lIGNvbXBhcmUgLT4gc25tcF9vaWRfY29tcGFyZSgpLgogICAKMTk5OC0wOS0xNCAxMjozNSAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGluc3RhbGwgc25tcF9zZXNzX2FwaS4zLgogICAKMTk5OC0wOS0xNCAwOToyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYzoKCiAgIGZpbGUgc25tcEVuZ2luZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNCAwOToyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuaDoKCiAgIGZpbGUgc25tcEVuZ2luZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNCAwOToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIGZpbGUgc25tcHYzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE0IDA5OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5oOgoKICAgZmlsZSBzbm1wdjMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTMgMjE6MDkgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB1cGRhdGU6IDMuNi5wcmUyCiAgIAoxOTk4LTA5LTEzIDIxOjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHJlYWRfY29uZmlnLmM6CgogICAtIChtaWIuYywgcmVhZF9jb25maWcuYyk6IHJlZml4IHRoZSBub24tbWFsbG9jZWQgY29uZmlndXJhdGlvbiB2YXJzLgogICAKMTk5OC0wOS0xMyAyMTowNSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogTmFtZSBhZGRpdGlvbi4KICAgCjE5OTgtMDktMTMgMjA6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBwcmV2ZW50IGRvdWJsZSBpbml0X3NubXAoKXMuCiAgIAoxOTk4LTA5LTEzIDIwOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogbm90IGZpbmRpbmcgYSBjb25maWcgZmlsZSBpcyBwcmludGVkIHdpdGggREVCVUdQKCkgaW5zdGVhZC4KICAgCjE5OTgtMDktMTMgMjA6MTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBkZWZpbmUgdXNhZ2UgbWlzcGVsbGluZyBTTk1QX0JBRF9QQVJTRSAtPiBTTk1QRVJSX0JBRF9QQVJTRS4KICAgCjE5OTgtMDktMTMgMjA6MTEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFyc2UuaDoKCiAgIC0gKHNubXB0YWJsZS5jLCBzbm1wdHJhbnNsYXRlLmMsIG1pYi5jLCBtaWIuaCwgcGFyc2UuYywgcGFyc2UuaCk6CiAgICAgLSBtZXJnZSBpbnRvIG1haW4gbGluZSBmcm9tIHRoZSAzLTYtcHJlMS10cmFucyBicmFuY2guCiAgIAoxOTk4LTA5LTEzIDE4OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBleGl0IC0+IHJldHVybi4KICAgCjE5OTgtMDktMTIgMDk6MDggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBNb3ZlIENBTl9VU0VfTkxJU1QgdGVzdHMgYmVsb3cgYXJjaCAuaCBmaWxlcy4KICAgCjE5OTgtMDktMTIgMDk6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGJ1ZyBmaXggdG8gY2hlY2sgZm9yIE5VTEwgc2Vzc2lvbiBwb2ludGVyIGJlZm9yZSB1c2luZyBpdC4KICAgCjE5OTgtMDktMTIgMDg6NTYgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW4sIG92L01ha2VmaWxlLmluOgoKICAgLSAob3YvTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgc2VjdGlvbnMgYWxyZWFkeSBkZWZpbmVkIGluIE1ha2VmaWxlLnRvcC4KICAgCjE5OTgtMDktMTIgMDg6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogYWRkIG1pYl9tb2R1bGVfc2h1dGRvd24uaAogICAKMTk5OC0wOS0xMiAwODo1NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IERvbid0IGZvcmNlIGNjIGFueW1vcmUsIGFsbG93IGdjYyB0byBnbyBmaXJzdC4KICAgCjE5OTgtMDktMTIgMDg6NTMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBtb3ZlIHVuLWNvbmZpZ3VyZWQgZGVmaW5lcyBhYm92ZSBAVE9QQC4KICAgCjE5OTgtMDktMTIgMDg6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBwcm90b3R5cGUgbW92ZSBpbml0X3NubXAoKSBhYm92ZSBpbml0X3NubXBfc2Vzc2lvbi4KICAgCjE5OTgtMDktMTEgMDk6MjQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wZGVsdGEuYywgbWFuL3NubXBfc2Vzc19hcGkuMywKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9pbnQ2NC5oCiwgc25tcGxpYi9saWJzbm1wLmgsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaCwKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmgsIHdpbjMyL2NvbmZpZy5oCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtICgqKTogTWVyZ2VkIHRoZSBNVCBjaGFuZ2VzIGludG8gdGhlIG1haW4gYnJhbmNoLgogICAKMTk5OC0wOS0wOSAyMTozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9saWJzbm1wLmg6CgogICBmaWxlIGxpYnNubXAuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LTEtTVQuCiAgIAoxOTk4LTA5LTA5IDIxOjM2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9zZXNzX2FwaS4zOgoKICAgZmlsZSBzbm1wX3Nlc3NfYXBpLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS0xLU1ULgogICAKMTk5OC0wOS0wOSAxNjo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBmaXggdHJhcCBzdHVmZiBicm9rZW4gYnkgdGhlIGNvZGUgbWVyZ2UuCiAgIAoxOTk4LTA5LTA5IDE2OjA5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzIub3B0LCBsaWJzbm1wL2xpYnNubXAuZHNwCiwgbGlic25tcC9saWJzbm1wLnBsZywgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCiwgbGlic25tcF9kbGwvbGlic25tcF9kbGwucGxnLAogICBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5wbGcKLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5wbGcKLCBzbm1wZ2V0L3NubXBnZXQuZHNwLCBzbm1wZ2V0L3NubXBnZXQucGxnLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LnBsZwosIHNubXBzZXQvc25tcHNldC5kc3AsIHNubXBzZXQvc25tcHNldC5wbGcsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5wbGcsCiAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwgc25tcHRlc3Qvc25tcHRlc3QucGxnLAogICBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsCiAgIHNubXB0cmFwL3NubXB0cmFwLnBsZywgc25tcHdhbGsvc25tcHdhbGsuZHNwLAogICBzbm1wd2Fsay9zbm1wd2Fsay5wbGc6CgogICAtICgqKTogTWVyZ2UgaW50byBtYWluIGJyYW5jaCBmcm9tIDMuNS4xIGJyYW5jaC4KICAgCjE5OTgtMDktMDkgMTU6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgYWNsLmgsIGFzbjEuYywgYXNuMS5oCiwgbWQ1LmgsIG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oLAogICBzbm1wLmMsIHNubXAuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwKICAgc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuaCwgc25tcF9pbXBsLmgsCiAgIHN5c3RlbS5jLCB2YWNtLmgsIHZpZXcuaDoKCiAgIC0gKCopOiBNZXJnZSBpbnRvIG1haW4gYnJhbmNoIGZyb20gMy41LjEgYnJhbmNoLgogICAKMTk5OC0wOS0wOSAxNTozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLCBhcHBzL01ha2VmaWxlLmluCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBtYW4vbWliX2FwaS4zLAogICBtYW4vc25tcF9hcGkuMywgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZgosIG1hbi9zbm1wdHJhbnNsYXRlLjEsIG1hbi9zbm1wdHJhcGQuOCwKICAgbWFuL3ZhcmlhYmxlcy41OgoKICAgLSAoKik6IE1lcmdlIGludG8gbWFpbiBicmFuY2ggZnJvbSAzLjUuMSBicmFuY2guCiAgIAoxOTk4LTA5LTA5IDE1OjMwICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBDT1BZSU5HLCBDaGFuZ2VMb2csIE1ha2VmaWxlLmluCiwgTkVXUywgUkVBRE1FLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbgosIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgosIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvc25tcDJwLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW0uaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuaDoKCiAgIC0gKCopOiBNZXJnZSBpbnRvIG1haW4gYnJhbmNoIGZyb20gMy41LjEgYnJhbmNoLgogICAKMTk5OC0wOS0wNyAxOTo0MiAgbWFyegoKICAgKiB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcDoKCiAgIGZpbGUgc25tcGRlbHRhLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTA3IDE5OjQyICBtYXJ6CgogICAqIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEucGxnOgoKICAgZmlsZSBzbm1wZGVsdGEucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDktMDcgMTk6NDIgIG1hcnoKCiAgICogd2luMzIvc25tcHRlc3Qvc25tcHRlc3QucGxnOgoKICAgZmlsZSBzbm1wdGVzdC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOS0wNyAxOTo0MiAgbWFyegoKICAgKiB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3A6CgogICBmaWxlIHNubXB0cmFwLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTA3IDE5OjQyICBtYXJ6CgogICAqIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcDoKCiAgIGZpbGUgc25tcHRlc3QuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDktMDcgMTk6NDIgIG1hcnoKCiAgICogd2luMzIvc25tcHRyYXAvc25tcHRyYXAucGxnOgoKICAgZmlsZSBzbm1wdHJhcC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOS0wNyAxMjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmg6CgogICBmaWxlIHZtc3RhdF9mcmVlYnNkMi5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDktMDcgMTI6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oOgoKICAgZmlsZSBtZW1vcnlfZnJlZWJzZDIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTAzIDE0OjI5ICBuYmEKCiAgICogbG9jYWwvZml4cHJvYzoKCiAgIC0gKGZpeHByb2MpOiBhZGRlZCBjb21tZW50IHRvIHRlc3QgQ1ZTLgogICAKMTk5OC0wOS0wMiAxODo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oLAogICBzbm1wX3ZhcnMuYywgc25tcGQuYywgc25tcGQuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICAgIHNubXBkLmgpOgogICAgIC0gc3VwcG9ydCBtaWItbW9kdWxlIHNodXRkb3duIGZ1bmN0aW9ucy4KICAgICAtIGRvIGEgbWluaW1hbCBwZXJzaXN0ZW50IGNhY2hlIGltcGxlbWVudGF0aW9uIGFuZCByZWFkIGl0IGF0IHN0YXJ0IHVwLgogICAgIC0gdGVzdCB3aXRoIGJlZ2lubmluZ3MgKHdyb25nIHBsYWNlKSBvZiBhZ2VudEJvb3RzIHZhcmlhYmxlLgogICAKMTk5OC0wOS0wMiAxODo0OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogdXNlIGluaXRfc25tcCBpbnN0ZWFkIG9mIGluaXRfbWliKCkuCiAgIAoxOTk4LTA5LTAyIDE4OjQ4ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0gKGxpYnNubXAuZGVmKTogZmluZF9tb2R1bGUuCiAgIAoxOTk4LTA5LTAyIDE4OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBpbml0X3NubXAoKS4KICAgCjE5OTgtMDktMDIgMTg6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmgsIHJlYWRfY29uZmlnLmMsCiAgIHJlYWRfY29uZmlnLmg6CgogICAtIChtaWIuYywgbWliLmgsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgIC0gcHJlL3Bvc3QgbWliIGxvYWRpbmcgY29uZmlnIGZpbGVzLgogICAgIC0gY3JlYXRlIGluaXRfc25tcCgpIHRvIHdyYXAgb3RoZXIgZnVjdGlvbnMuCiAgICAgLSBuZXcgc25tcC5jb25mIGRpcmVjdGl2ZXM6IG1pYnMsIG1pYmRpcnMsIG1pYmZpbGUuCiAgIAoxOTk4LTA5LTAyIDE4OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogdHlwby4KICAgCjE5OTgtMDktMDIgMTg6NDQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBwZXJzaXN0ZW50IGNvbmZpZyBmaWxlIHF1ZXN0aW9uLgogICAKMTk5OC0wOS0wMiAxODo0MyAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBhZGRlZCBzZWN1cml0eSBjaGVja3MuCiAgIAoxOTk4LTA4LTMxIDEzOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBhZGQgYSBibGFuayBsaW5lIHRvIHRoZSBlbmQgb2YgdGhlIHRyYXBkIG91dHB1dCBmb3IgcGFyc2luZy4KICAgCjE5OTgtMDgtMzEgMTM6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jIChFeHQtMy01LXBhdGNoZXMuMiksCiAgIGludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IG1pc3NpbmcgcmV0dXJuIG9uIGlmSW5FcnJvcnMgcmVzdWx0cy4KICAgCjE5OTgtMDgtMTQgMDg6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgZmlsZSB2bXN0YXRfZnJlZWJzZDIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA4LTE0IDA4OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYzoKCiAgIGZpbGUgbWVtb3J5X2ZyZWVic2QyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wNy0yMiAxNjoyMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIHNlZHNjcmlwdC5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4pOiBmaXggc2Vkc2NyaXB0IGluY2x1ZGVzLgogICAKMTk5OC0wNy0yMiAxNTozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogZG9uJ3QgY2hhbmdlIHJ1bm5pbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIHdpdGggc3RydG9rLgogICAKMTk5OC0wNy0yMCAxNzoxNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKHNubXBjaGVjay5kZWYpOiB3b3JrIGFyb3VuZCBmb3IgbmV3IG11bHRpLWRlcHRoIG1pYiB0YWJsZXMuLgogICAKMTk5OC0wNy0xNyAxMzoyMiAgaGFyZGFrZXIKCiAgICogbWlicy9SRkMtMTIxNS50eHQ6CgogICAtIChSRkMtMTIxNS50eHQpOiBjcmVhdGVkIGFuIGVtcHR5IG1pYiBtb2R1bGUgZm9yIGltcG9ydGluZyBvZiBUUkFQLVRZUEUuCiAgIAoxOTk4LTA3LTE3IDEzOjExICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELVNOTVAtTUlCLmluYywgVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi5pbmMsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gY3JlYXRlZCBzbWljbmcgaW5wdXQgZmlsZS4KICAgICAtIGZpeGVkIHRoZSBVQ0QtU05NUCBtaWIgdG8gZGVhbCB3aXRoIG1vc3Qgc21pYyBlcnJvcnMuCiAgIAoxOTk4LTA3LTE1IDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaDoKCiAgIC0gKG1lbW9yeS5oKTogTUVNU1dBUE1JTklNVU0gd2Fzbid0IGJlaW5nIHVzZWQuCiAgIAoxOTk4LTA3LTE1IDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB1c2luZ19tb2R1bGUgY2hhbmdlcy4KICAgCjE5OTgtMDctMTAgMDk6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogd3JvbmcgcGR1IHBvaW50ZXIgZm9yIHNubXB2MmMgdHJhcHMuCiAgIAoxOTk4LTA3LTA4IDE1OjUxICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy42LnByZTEgKQogICAKMTk5OC0wNy0wOCAxNTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jOgoKICAgLSAoZGxtb2RfbWliLmMpOiAtV2FsbCBmaXhlcy4KICAgCjE5OTgtMDctMDggMTU6MzEgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuYzoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmMpOiAtV2FsbCBmaXhlcy4KICAgCjE5OTgtMDctMDggMTU6MzEgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIChzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMpOiAtV2FsbCBmaXhlcy4KICAgCjE5OTgtMDctMDggMTU6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IC1XYWxsIGNvcnJlY3Rpb25zLgogICAKMTk5OC0wNy0wOCAxNDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogYnVnIGZpeGVzLgogICAKMTk5OC0wNy0wOCAxNDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGluY2x1ZGUgZml4ZXMuCiAgIAoxOTk4LTA3LTA4IDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogaW5jbHVkZSBzbm1wX2FwaS5oCiAgIAoxOTk4LTA3LTA4IDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3NfcGVyc2lzdC5jLCBwYXNzX3BlcnNpc3QuaAo6CgogICAtIChwYXNzX3BlcnNpc3QuYywgcGFzc19wZXJzaXN0LmgpOiBjbGVhbmVkIHVwIGFuZCAtV2FsbCBmaXhlcy4KICAgCjE5OTgtMDctMDggMTQ6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICAtICh2ZXJzaW9uaW5mby5jKTogaW5jbHVkZSBzeXN0ZW0uaAogICAKMTk5OC0wNy0wOCAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgLSAocGFzcy5jKTogaW5jbHVkZSBzeXMvd2FpdC5oCiAgIAoxOTk4LTA3LTA4IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgLSAodWNkX3NubXAuaCk6IHJlbW92ZWQgdWNkLXNubXAvcGFzc19wZXJzaXN0IGZyb20gZGVmYXVsdCBpbmNsdWRlIGxpc3QuCiAgIAoxOTk4LTA3LTA4IDE0OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogaW5jbHVkZSBmaXhlcy4KICAgCjE5OTgtMDctMDggMTQ6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzc19wZXJzaXN0LmMsIHBhc3NfcGVyc2lzdC5oCiwgcGFzcy1wZXJzaXN0LmMsIHBhc3MtcGVyc2lzdC5oOgoKICAgLSAocGFzcy1wZXJzaXN0LmMgcGFzcy1wZXJzaXN0LmgpOiBtb3ZlZCB0byBwYXNzX3BlcnNpc3QuW2NoXS4KICAgCjE5OTgtMDctMDggMTQ6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IGNyZWF0ZSB1bnJlZ2lzdGVyX3JlYWQuLigpIGZ1bmN0aW9uLgogICAKMTk5OC0wNy0wOCAxNDoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jOgoKICAgIC0gKGRsbW9kLmMpOiB1c2Ugc25tcGRfIHJlZ2lzdGVyX3JlYWRfY29uZmlnKCkgd3JhcHBlcnMuCiAgIAoxOTk4LTA3LTA4IDE0OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oKTogd3JhcHBlcnMgZm9yIHJlYWwgcmVhZF9jb25maWcoKXMuCiAgIAoxOTk4LTA3LTA4IDE0OjA0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2RsbW9kcy8uY3ZzaWdub3JlLCBhZ2VudC9kbG1vZHMvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYywgYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5oLAogICBhZ2VudC9kbG1vZHMvZXhhbXBsZS5jLCBhZ2VudC9kbG1vZHMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuaAosIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBtaWJzL0RMTU9ELU1JQi50eHQsIG1pYnMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIGRsbW9kX21pYi5jLCBkbG1vZF9taWIuaCwgZXhhbXBsZS5jLAogICAgIGV4YW1wbGUuaCwgZGxtb2QuYywgZGxtb2QuaCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLAogICAgIERMTU9ELU1JQi50eHQsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRXVnZW5lCiAgICAgUG9sb3ZuaWtvdjoKICAgICAtIG5ldyBkbG1vZCBzZXQuCiAgICAgLSBmaXggY29uZmlndXJlIHNjcmlwdC4KICAgCjE5OTgtMDctMDggMTM6MDggIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IGZvciBtaXNzaW5nIG9iamVjdCBpZGVudGlmaWVyIGxhYmVscy4KICAgCjE5OTgtMDctMDggMTM6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzeXN0ZW0uYyk6IGRvbid0IGZyZWUgZW52IHBvaW50ZXJzIHRoYXQgYXJlIGNyZWF0ZWQuCiAgIAoxOTk4LTA3LTA4IDEzOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBtYWtlIGhwX2ludGVyZmFjZXMgc3RydWN0dXJlIHN0YXRpYy4KICAgCjE5OTgtMDctMDggMTI6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgLSBmaXggIm51bWJlciBvZiByZXRyaWVzIiBidWcuCiAgICAgLSByZW1vdmUgb2RkIHRpbWVvdXQgY2FsY3VsYXRpb24gY29kZSBmb3IgcmV0cmllcyA+IDMuCiAgIAoxOTk4LTA3LTA4IDEyOjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgLSAodWNkX3NubXAuaCk6IGFkZGVkIHBhc3MtcGVyc2lzdCBtb2R1bGUuCiAgIAoxOTk4LTA3LTA4IDEyOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogcmVtb3ZlZCBmcm9tIGFnZW50IGRpci4KICAgCjE5OTgtMDctMDggMTI6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogc3RydWN0LmgsIHV0aWxfZnVuY3MuYywKICAgdXRpbF9mdW5jcy5oLCB1Y2Qtc25tcC9wYXNzLXBlcnNpc3QuYywKICAgdWNkLXNubXAvcGFzcy1wZXJzaXN0Lmg6CgogICAtIChzdHJ1Y3QuaCwgdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgsIHBhc3MtcGVyc2lzdC5jLAogICAgIHBhc3MtcGVyc2lzdC5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIERvdWdsYXNzOgogICAgIC0gY3JlYXRlIGEgcGFzcy1wZXJzaXN0IG1vZHVsZSB0byBoYW5kbGUgY29udGludW91c2x5IHJ1bm5pbmcgcGFzcyB0aHJvdWdocy4KICAgCjE5OTgtMDctMDggMTI6MjcgIGhhcmRha2VyCgogICAqIHdpbjMyLzogd2luMzIub3B0LCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJzbm1wL2xpYnNubXAucGxnLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwucGxnLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAosIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0L3NubXBnZXQuZHNwCiwgc25tcGdldC9zbm1wZ2V0LnBsZywgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwCiwgc25tcGdldG5leHQvc25tcGdldG5leHQucGxnLCBzbm1wc2V0L3NubXBzZXQuZHNwCiwgc25tcHNldC9zbm1wc2V0LnBsZywgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLnBsZywgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcAosIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5wbGcsIHNubXB3YWxrL3NubXB3YWxrLmRzcAosIHNubXB3YWxrL3NubXB3YWxrLnBsZzoKCiAgIC0gKHdpbjMyLm9wdCwgbGlic25tcC5kc3AsIGxpYnNubXAucGxnLCBsaWJzbm1wLmRlZiwgbGlic25tcF9kbGwucGxnLAogICAgIHNubXBidWxrd2Fsay5kc3AsIHNubXBidWxrd2Fsay5wbGcsIHNubXBnZXQuZHNwLCBzbm1wZ2V0LnBsZywKICAgICBzbm1wZ2V0bmV4dC5kc3AsIHNubXBnZXRuZXh0LnBsZywgc25tcHNldC5kc3AsIHNubXBzZXQucGxnLAogICAgIHNubXBzdGF0dXMuZHNwLCBzbm1wc3RhdHVzLnBsZywgc25tcHRyYW5zbGF0ZS5kc3AsCiAgICAgc25tcHRyYW5zbGF0ZS5wbGcsIHNubXB3YWxrLmRzcCwgc25tcHdhbGsucGxnKTogUGF0Y2ggZnJvbSBKb2UKICAgICBNYXJ6b3Q6CiAgICAgLSB3aW4zMiB1cGRhdGUuCiAgIAoxOTk4LTA3LTAxIDE1OjU3ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgLSAoc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jKToKICAgICAtIGZpeCBleHRlbnNpYmxpdHkgY2hlY2tpbmcgb2Ygb2lkcy4KICAgICAtIHNlcGVyYXRlIHJ1bm5pbmcgb2YgZXh0ZXJuYWwgY29tbWFuZCBpbnRvIG5ldyBmdW5jdGlvbi4KICAgCjE5OTgtMDctMDEgMTU6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IG1pbm9yIHNwYWNpbmcgY2hhbmdlcy4KICAgCjE5OTgtMDctMDEgMTU6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzeXN0ZW0uaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHN5c3RlbS5oKToKICAgICAtIGFkZGVkIERFQlVHUE9JRChuYW1lLCBuYW1lbGVuKTsKICAgICAtIG1vdmVkIERFQlVHUCBkZWZpbml0aW9uIGludG8gc25tcF9hcGkuaCB3aGVyZSBpdCBiZWxvbmdzLgogICAKMTk5OC0wNy0wMSAxMToyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oCiwgc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywKICAgICBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHNubXBkLmMsIE1ha2VmaWxlLmluLAogICAgIHN0cnVjdC5oLCBwYXNzLmgsIE1ha2VmaWxlLmluLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmgsIE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLAogICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gbW92ZWQgcmVhZF9jb25maWcgc3VwcG9ydCBpbnRvIHRoZSBsaWJyYXJ5IGFuZCB1c2UgaXQuCiAgICAgLSBiZWdpbm5pbmdzIG9mIHNubXB0cmFwZCBleHRlbnNpYmlsaXR5LgogICAKMTk5OC0wNy0wMSAxMToyMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaAosIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wX3ZhcnMuaCwKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLAogICAgIGFnZW50X3JlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywgTWFrZWZpbGUuaW4sCiAgICAgc3RydWN0LmgsIHBhc3MuaCwgTWFrZWZpbGUuaW4sIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuaCwgTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsCiAgICAgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgLSBtb3ZlZCByZWFkX2NvbmZpZyBzdXBwb3J0IGludG8gdGhlIGxpYnJhcnkgYW5kIHVzZSBpdC4KICAgICAtIGJlZ2lubmluZ3Mgb2Ygc25tcHRyYXBkIGV4dGVuc2liaWxpdHkuCiAgIAoxOTk4LTA2LTI4IDA5OjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogZml4IHNubXBfYWRkX3ZhcigpLgogICAKMTk5OC0wNi0yNiAxMDo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYywgc25tcF9iZ3AuYywgc25tcF9vc3BmLmMKLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmg6CgogICAtIChzbXV4LmMsIHNubXBfYmdwLmMsIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgpOiBQYXRjaAogICAgIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBGaXggZm9yIG5ldyBkZWZpbmVzIGFuZCBwcm9wZXIgaGVhZGVyIGluY2x1ZGVzLgogICAKMTk5OC0wNi0yNiAxMDo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgLSAoZGlzay5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIERvdWdsYXNzOgogICAgIC0gZml4IGNhbGN1bGF0aW9uIG9mIHRvdGFsZGlzayBieSBkb2luZyBibG9jayBkaXZpc2lvbiBmaXJzdCB0bwogICAgICAgcHJvdGVjdCBhZ2FpbnN0IDMyIGJpdCBvdmVyZmxvd3MuCiAgIAoxOTk4LTA2LTI0IDExOjQwICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGFkZGVkIC5pbmRleC4KICAgCjE5OTgtMDYtMjQgMTE6NDAgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcGQuYywgc25tcGQuaDoKCiAgIC0gKHNubXBkLmMsIHNubXBkLmgpOgogICAgIC0gY3JlYXRlZCAocG9vcmx5KSBzZW5kX3RyYXBfcGR1KCkgZm9yIHNlbmRpbmcgdjIgdHJhcHMgZnJvbSBtaWIgbW9kdWxlcy4KICAgCjE5OTgtMDYtMjQgMTE6MDggIGhhcmRha2VyCgogICAqIG1pYnMvOiAuY3ZzaWdub3JlLCBVQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzaHV0ZG93biB0cmFwIHNwZWNpZmljYXRpb25zLgogICAgIC0gbWlzYyBtaWIgZml4ZXMuCiAgIAoxOTk4LTA2LTI0IDEwOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC8uY3ZzaWdub3JlLCBhcHBzLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlLCAuY3ZzaWdub3JlKTogYSBmZXcgdXBkYXRlcy4KICAgCjE5OTgtMDYtMjQgMTA6NTcgIGhhcmRha2VyCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgLSAobWFuLy5jdnNpZ25vcmUpOiBpZ25vcmUgLmh0bWwgZmlsZXMuCiAgIAoxOTk4LTA2LTI0IDEwOjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBzZXQuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgLSBtb3ZlZCBoZXhfdG9fYmluYXJ5LCBhc2NpaV90b19iaW5hcnksIGFuZCBzbm1wX2FkZF92YXIgdG8gc25tcGxpYi4KICAgCjE5OTgtMDYtMjQgMTA6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgc25tcF9hcGkuYywgc25tcF9hcGkuaAo6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IGNyZWF0ZSBzbm1wX3BkdV9hZGRfdmFyaWFibGUoKS4KICAgCjE5OTgtMDYtMjQgMTA6MzAgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFuLT5odG1sIG1ha2Ugc3BlY2lmaWNhdGlvbi4KICAgCjE5OTgtMDYtMjIgMDk6MTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSAobWFpbi5jKTogUGF0Y2ggZnJvbSBKZXJyeSBHLiBEZUxhcHA6CiAgICAgLSBjb21tZW50ZWQgb3V0IHRyYWlsaW5nICNlbmRpZiBjb21tZW50LgogICAKMTk5OC0wNi0xOSAxMzoxNCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlIGZvciAzLjUuCiAgIAoxOTk4LTA2LTE5IDEzOjEzICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy41ICkKICAgCjE5OTgtMDYtMTkgMTM6MTIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogTGFzdCB1cGRhdGUgZm9yIDMuNS4KICAgCjE5OTgtMDYtMTkgMTM6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTgtMDYtMTkgMTI6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBtZW1zZXQgdG8gMCB0aGUgZW50aXJlIHN1YnRyZWUgc3RydWN0LgogICAKMTk5OC0wNi0xOSAxMjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAodXRpbF9mdW5jcy5jKTogZml4IGNoZWNrbWliKCkgaW4gY2FzZSB3ZSBnZXQgY2FsbGVkIG9uIGEgZ2V0IHdoZW4KICAgICB3ZSByZWFsbHkgc2hvdWxkbid0IChiYWQgYXJ0aWZhY3Qgb2YgbmV3IHRyZWUgc3RydWN0dXJlKS4KICAgCjE5OTgtMDYtMTkgMTI6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmM6CgogICAtIChkdW1teS5jKTogbWVudGlvbiBhdXRvX25saXN0KCkuCiAgIAoxOTk4LTA2LTE5IDEyOjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kdW1teS9BZGRNb2R1bGVGb3JEdW1taWVzLnR4dDoKCiAgIC0gKEFkZE1vZHVsZUZvckR1bW1pZXMudHh0KTogdXBkYXRlIHRvIGZpeCBwYXRocyBhbmQgbWlzYyBzdHVmZi4KICAgCjE5OTgtMDYtMTkgMTI6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBmaXggcmVnaXN0ZXJfbWliKCkgdG8gaW5pdCBwb2ludGVycyB0byBudWxsLgogICAKMTk5OC0wNi0xOSAwODo1OSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBDcmlzdGlhbiBFc3RhbjoKICAgICAtIGluc3RhbGwgSVBGV0FDQyBtaWIuCiAgIAoxOTk4LTA2LTE5IDA4OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaCwgbWlicy9JUEZXQUNDLU1JQi50eHQ6CgogICAtIChpcGZ3YWNjLmgsIElQRldBQ0MtTUlCLnR4dCk6IFBhdGNoIGZyb20gQ3Jpc3RpYW4gRXN0YW46CiAgICAgLSB0dXJuIGludG8gYSBjb3JyZWN0IHRhYmxlLgogICAKMTk5OC0wNi0xOSAwODo1OCAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBQYXRjaCBmcm9tIENyaXN0aWFuIEVzdGFuOgogICAgIC0gZXhhbXBsZSBvdXRwdXQgY29ycmVjdGlvbnMuCiAgIAoxOTk4LTA2LTE5IDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogd2FybiBCU0RJIHVzZXJzIGFnYWluc3QgL3Vzci91Y2IvY2MuCiAgIAoxOTk4LTA2LTE5IDA4OjQxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB1cGRhdGUgZnJvbSBEYXZlIFNoaWVsZDogbm90IGZvdW5kIG1vZHVsZXMgd2l0aCBjb25maWd1cmU/LgogICAKMTk5OC0wNi0xNyAxNToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuaDoKCiAgIC0gKGR1bW15LmgpOiBhZGQgRFVNTVktTUlCIGJ5IGRlZmF1bHQuCiAgIAoxOTk4LTA2LTE3IDE1OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUU6CgogICAtIChSRUFETUUpOiBtZW50aW9uIGR1bW15IGdyb3VwLgogICAKMTk5OC0wNi0xNyAwODoyMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBhZ2VudC9taWJncm91cC9kdW1teS9BZGRNb2R1bGVGb3JEdW1taWVzLnR4dAosIGFnZW50L21pYmdyb3VwL2R1bW15L0RVTU1ZLU1JQi50eHQsCiAgIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmgKOgoKICAgLSAoUkVBRE1FLCBBZGRNb2R1bGVGb3JEdW1taWVzLnR4dCwgRFVNTVktTUlCLnR4dCwgZHVtbXkuYywgZHVtbXkuaCk6CiAgICAgUGF0Y2ggZnJvbSBKYWtvYiBFbGxlcnN0ZWR0OgogICAgIC0gbWliIG1vZHVsZSBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlIGZvciBkdW1taWVzLgogICAKMTk5OC0wNi0xNyAwODoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuaDoKCiAgIC0gKG1pYi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHJlbW92ZSAybmQgaW5pdF9taWIoKSBwcm90b3R5cGUuCiAgIAoxOTk4LTA2LTE3IDA4OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBiY29weSAtPiBtZW1jcHkuCiAgIAoxOTk4LTA2LTE3IDA4OjEwICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcGJ1bGt3YWxrLjEsIHNubXBjbWQuMSwKICAgc25tcGRlbHRhLjEsIHNubXBnZXQuMSwgc25tcGdldG5leHQuMSwgc25tcHNldC4xCiwgc25tcHN0YXR1cy4xLCBzbm1wdGFibGUuMSwgc25tcHRyYXAuMSwKICAgc25tcHdhbGsuMToKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wYnVsa3dhbGsuMSwgc25tcGNtZC4xLCBzbm1wZGVsdGEuMSwgc25tcGdldC4xLAogICAgIHNubXBnZXRuZXh0LjEsIHNubXBzZXQuMSwgc25tcHN0YXR1cy4xLCBzbm1wdGFibGUuMSwgc25tcHRyYXAuMSwKICAgICBzbm1wd2Fsay4xKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGRvY3VtZW50YXRpb24gY2xlYW51cCBhbmQgY2VudHJhbGl6YXRpb24gb2YgY29tbW9uIG9wdGlvbnMuCiAgIAoxOTk4LTA2LTE3IDA4OjA4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgLSAoc25tcGRlbHRhLmMpOiB1c2FnZSgpIHVwZGF0ZS4KICAgCjE5OTgtMDYtMTcgMDg6MDggIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcDJwLmMsIHNubXBkLmMsIHNubXBkLmg6CgogICAtIChzbm1wMnAuYywgc25tcGQuYywgc25tcGQuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBtaXNjIHR5cGUgZml4ZXMuCiAgIAoxOTk4LTA2LTEyIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaCwgbWlicy9JUEZXQUNDLU1JQi50eHQsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKGlwZndhY2MuaCwgSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGNyZWF0ZSBhbmQgdXNlIGEgdWNkRXhwZXJpbWVudGFsIHNlY3Rpb24gZm9yIHRoZSBpcGZ3YWNjIG1pYiB0aWxsCiAgICAgICBpdCBzdGFiaWxpemVzLgogICAKMTk5OC0wNi0xMiAxMzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQva2VybmVsLmM6CgogICAtIChrZXJuZWwuYyk6IGRvbid0IHByaW50IGtscmVhZCBlcnJvcnMgdW5sZXNzIGluIGRlYnVnZ2luZyBtb2RlLgogICAKMTk5OC0wNi0xMiAxMzo0MyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiA2NGJpdCBmaXggbWVudGlvbmVkLgogICAKMTk5OC0wNi0xMiAxMzoxMyAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtIChsaWJzbm1wLmRlZik6IGFkZCBzZXRlbnYgdG8gdGhlIGxpc3QuCiAgIAoxOTk4LTA2LTEyIDEzOjEzICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIC0gKHdpbjMyL2NvbmZpZy5oKTogZG9uJ3QgaGF2ZSBzZXRlbnYuCiAgIAoxOTk4LTA2LTEyIDEzOjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogZnVuY3Rpb24gbmFtZSB0eXBvLgogICAKMTk5OC0wNi0xMiAxMzoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHRyYXAgdHlwZXMgd2VyZSBpbnQncyBub3QgbG9uZ3MgKGZhaWxlZCB1bmRlciA2NGJpdCBhcmNoKS4KICAgCjE5OTgtMDYtMTIgMTM6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIC0gKGRpc2suYyk6IHBlcmNlbnRhZ2UgY2hlY2sgd2FzIGJhY2t3YXJkcy4KICAgCjE5OTgtMDYtMTIgMTA6MTIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbWlub3IgdXBkYXRlLgogICAKMTk5OC0wNi0xMiAxMDoxMiAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBzaG93IHZhY20gZXhhbXBsZSBmb3IgcHVibGljL3ByaXZhdGUgZnJvbSBhbnl3aGVyZS4KICAgCjE5OTgtMDYtMTIgMDg6NTIgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWYsIEZBUToKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYsIEZBUSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSB1cGRhdGUgZm9yIFZBQ00gc3R1ZmYuCiAgIAoxOTk4LTA2LTEwIDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXAycC5jLCBzbm1wZC5jLCBzbm1wZC5oOgoKICAgLSAoc25tcDJwLmMsIHNubXBkLmMsIHNubXBkLmgpOiAtV2FsbCBjbGVhbnVwcy4KICAgCjE5OTgtMDYtMTAgMTU6MzEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlLgogICAKMTk5OC0wNi0xMCAxNTozMCAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBhZGRlZCBEYXZlJ3MgbGlzdC4KICAgCjE5OTgtMDYtMTAgMTQ6MTUgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjUucHJlMiApCiAgIAoxOTk4LTA2LTEwIDA4OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBzbm1wMnAuYywgc25tcGQuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wMnAuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSAgc3RhcnRzIHRvIHNlcGFyYXRlIG91dCB0aGUgaGlzdG9yaWMgU05NUHYyIHN0dWZmLgogICAgIC0gIGRvZXMgYSBiaXQgb2YgJ2NvZGUgdGlkeWluZycuCiAgICAgLSAgc3RhcnRzIHRvIG1vdmUgdG93YXJkcyBwb3J0LXNwZWNpZmljIGhhbmRsZXJzLgogICAKMTk5OC0wNi0xMCAwNzoxMSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICAtIChjb25maWcuaC5pbik6IGhhdmVfc2V0ZW52LgogICAKMTk5OC0wNi0wOCAxNDo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHVuZGlkIHJlZG8gb2YgY29tbWVudCBvZiBnZXR0aW1lb2ZkYXkoKS4KICAgCjE5OTgtMDYtMDggMTQ6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oLCBzbm1wX2FwaS5jLAogICBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jOgoKICAgLSAocGFyc2UuYywgcGFyc2UuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYyk6IFBhdGNoCiAgICBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgLSBhc3luYyBzdHVmZiBhZGRlZC4KICAgICAtIGdldF90YyBhZGRlZC4KICAgICAtIGJldHRlciBjb21tZW50cyBpbiBzb21lIHBsYWNlcy4KICAgCjE5OTgtMDYtMDggMTQ6MTYgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLSAobGlic25tcC5kZWYpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6IHczMiB1cGRhdGUuCiAgIAoxOTk4LTA2LTA4IDE0OjEyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgIC0gcmVtb3ZlIG1vcmUgY29uZmlnIGNyZWF0ZWQgaGVhZGVycyBvbiBtYWtlIGNvbmZpZ2NsZWFuLgogICAKMTk5OC0wNi0wOCAxMzo1OSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogdXBkYXRlIHJmYyAjIGZvciB2YWNtIHJlZmVyZW5jZS4KICAgCjE5OTgtMDYtMDggMTM6NTkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IEFkZGVkIEV1Z2VuZSdzIG5hbWUuCiAgIAoxOTk4LTA2LTA4IDEyOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogY3JlYXRlIGEgLmMgLT4gLm8gcnVsZSB0byBtYWtlIHN1cmUgYW5kIHBsYWNlIHRoZQogICAgIG9iamVjdCBmaWxlcyBpbiB0aGUgYXBwcm9wcmlhdGUgc3ViZGlyZWN0b3JpZXMuCiAgIAoxOTk4LTA2LTA4IDEwOjUwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB1cmwgdHlwZSBzcGxpdHRpbmcuCiAgIAoxOTk4LTA2LTA1IDExOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmM6CgogICAtIChkbG1vZC5jKToKICAgICAtIGNoYW5nZSB7ZGUsfWluaXQgZnVuY3Rpb25zIHRvIF9keW5hbWljX3tkZSx9aW5pdF9NT0RVTEUuCiAgICAgLSB1c2UgU05NUExJQlBBVEggaW5zdGVhZCBvZiBoYXJkIGNvZGVkIC91c3IvbG9jYWwvbGliLgogICAKMTk5OC0wNi0wNSAxMDo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgbWliLmMsIHBhcnNlLmgsIHN5c3RlbS5jCiwgc3lzdGVtLmg6CgogICAtIChhc24xLmMsIG1pYi5jLCBwYXJzZS5oLCBzeXN0ZW0uYywgc3lzdGVtLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gTUlCX0FDQ0VTUyBkZWZpbmUgY2hhbmdlcy4KICAgICAtIHNldGVudiBpbXBsZW1lbnRhdGlvbi4KICAgICAtIGlmZGVmIHdyYXBwZXJzIGZvciBPUEFRVUVfU1BFQ0lBTF9UWVBFUy4KICAgCjE5OTgtMDYtMDUgMTA6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0gKGhyX3N3cnVuLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gdGVzdCBmb3IgbnVsbCBwb2ludGVyLgogICAKMTk5OC0wNi0wNSAxMDo1MiAgaGFyZGFrZXIKCiAgICogbWFrZXRhcmdldDoKCiAgIC0gKG1ha2V0YXJnZXQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc3VwcG9ydCBmb3IgbGFyZ2VyIHRyZWUgZGVwdGhzLgogICAKMTk5OC0wNi0wNSAxMDo1MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSB0ZXN0IGZvciBzZXRlbnYuCiAgIAoxOTk4LTA2LTAzIDE0OjI2ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy41LnByZTEgKQogICAKMTk5OC0wNi0wMyAxNDoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHJlYWRfY29uZmlnLm8gaXMgbWlibW9kdWxlIGhlYWRlciBkZXBlbmRhbnQgdG9vLgogICAKMTk5OC0wNi0wMyAxNDoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4ncyk6IG1ha2UgZGVwZW5kLgogICAKMTk5OC0wNi0wMyAxNDoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYXBwcy9zbm1wc2V0LmMsCiAgIHNubXBsaWIvYXNuMS5oLCBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvaW50NjQuaCwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoaHJfZGlzay5jLCBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIHNubXBzZXQuYywgYXNuMS5oLAogICAgIGludDY0LmMsIGludDY0LmgsIG1pYi5jLCBzbm1wX2FwaS5jKToKICAgICAtIC1XYWxsIGZpeGVzLgogICAKMTk5OC0wNi0wMyAxNDowMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGZpeCBuZXcgLS13aXRoLWNjIGFuZCAtLXdpdGgtY2ZsYWdzIGFyZ3VtZW50cy4KICAgCjE5OTgtMDYtMDMgMTM6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZnJlZWJzZDIuaCk6CiAgICAgLSBtb3ZlIGNvbmZpZ3VyYWJsZSBkZWZpbmVzIHRvIGNvbmZpZ3VyZSByYXRoZXIgdGhhbiBpbiBmcmVlYnNkMi5oLgogICAKMTk5OC0wNi0wMyAxMzo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wdHJhcGQuYyk6CiAgICAgLSBjaGVjayBmb3IgZ2V0ZHRhYmxlc2l6ZSBhbmQgdXNlIGEgZ2VuZXJpYyBpZiBub3QgYXZhaWxhYmxlLgogICAKMTk5OC0wNi0wMyAxMzozOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IE5ldyBmbGFnczoKICAgICAtIC0td2l0aC1jYz1DQwogICAgIC0gLS13aXRoLWNmbGFncz1DRkxBR1MKICAgCjE5OTgtMDYtMDMgMTI6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgpOgogICAgIC0gZml4IHBkdS0+dmVyc2lvbnMgdG8gYmUgYWxsIGludHMuCiAgIAoxOTk4LTA2LTAzIDExOjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBtaXNzZWQgYSBuZWVkZWQgT1BBUVVFX1NQRUNJQUxfVFlQRVMgaWZkZWYuCiAgIAoxOTk4LTA2LTAzIDExOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcGQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYywgc25tcGQuYyk6IGluY2x1ZGUgbWliSUkvc25tcF9taWIuaC4KICAgCjE5OTgtMDYtMDMgMTE6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogUkVBRE1FLCBleGFtcGxlLmMsIGV4YW1wbGUuaCwKICAgd29tYmF0LmMsIHdvbWJhdC5oLCBleGFtcGxlcy9leGFtcGxlLmMsCiAgIGV4YW1wbGVzL2V4YW1wbGUuaCwgZXhhbXBsZXMvd29tYmF0LmMsCiAgIGV4YW1wbGVzL3dvbWJhdC5oOgoKICAgLSAoUkVBRE1FLCBleGFtcGxlLmMsIGV4YW1wbGUuaCwgd29tYmF0LmMsIHdvbWJhdC5oLCBleGFtcGxlLmMsCiAgICAgZXhhbXBsZS5oLCB3b21iYXQuYywgd29tYmF0LmgpOgogICAgIC0gbW92ZWQgd29tYmF0IGFuZCBleGFtcGxlIHRvIGV4YW1wbGVzLyBkaXJlY3RvcnkuCiAgIAoxOTk4LTA2LTAzIDExOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGUuYywgZXhhbXBsZS5oLCBtaXNjL2RsbW9kLmMKLCBtaXNjL2RsbW9kLmg6CgogICAtIChleGFtcGxlLmMsIGV4YW1wbGUuaCwgZGxtb2QuYywgZGxtb2QuaCk6IFBhdGNoIGZyb20gRXVnZW5lIFBvbG92bmlrb3Y6CiAgICAgLSBpbXBsZW1lbnQgYSBkeW5hbWljIGxvYWRpbmcgbW9kdWxlIGZvciBsb2FkaW5nIHNoYXJlZCBvYmplY3QgbWliIG1vZHVsZXMuCiAgIAoxOTk4LTA2LTAzIDEwOjU4ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBtZW50aW9uIENyaXN0aWFuIEVzdGFuIGluIHRoZSBjb2RlcnMgbGlzdC4KICAgCjE5OTgtMDYtMDMgMTA6NTggIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogbWVudGlvbiBpcGZ3YWNjCiAgIAoxOTk4LTA2LTAzIDEwOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgsIG1pYnMvSVBGV0FDQy1NSUIudHh0LAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChpcGZ3YWNjLmMsIGlwZndhY2MuaCwgSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIG1vdmVkIGlwZndhY2MgdG8gdWNkYXZpcy4xMyBhbmQgcmVtb3ZlZCBeTXMgYW5kIHNvbWUgYmxhbmsgbGluZXMuCiAgIAoxOTk4LTA2LTAzIDEwOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaDoKCiAgIC0gKGlwZndhY2MuaCk6IGNvbmZpZ19hZGRfbWliKElQRldBQ0MtTUlCKS4KICAgCjE5OTgtMDYtMDMgMTA6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaCwgbWlicy9JUEZXQUNDLU1JQi50eHQ6CgogICAtIChpcGZ3YWNjLmMsIGlwZndhY2MuaCwgSVBGV0FDQy1NSUIudHh0KTogUGF0Y2ggZnJvbSBDcmlzdGlhbiBFc3RhbjoKICAgICAtIGlwIGZpcmV3YWxsIGFjY291bnRpbmcgaW5mb3JtYXRpb24gbWliIGltcGxlbWVudGF0aW9uLgogICAKMTk5OC0wNi0wMyAxMDo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbXV4LmMsIHNtdXguaCwgc211eF9nYXRlZC5oLAogICBzbm1wX2JncC5jLCBzbm1wX2JncC5oLCBzbm1wX29zcGYuYywgc25tcF9vc3BmLmgKLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgsIHNtdXgvc211eC5jLAogICBzbXV4L3NtdXguaCwgc211eC9zbm1wX2JncC5jLCBzbXV4L3NubXBfYmdwLmgsCiAgIHNtdXgvc25tcF9vc3BmLmMsIHNtdXgvc25tcF9vc3BmLmgsIHNtdXgvc25tcF9yaXAyLmMKLCBzbXV4L3NubXBfcmlwMi5oOgoKICAgLSAoc211eC5jLCBzbXV4LmgsIHNtdXhfZ2F0ZWQuaCwgc25tcF9iZ3AuYywgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMsCiAgICAgc25tcF9vc3BmLmgsIHNubXBfcmlwMi5jLCBzbm1wX3JpcDIuaCwgc211eC5jLCBzbXV4LmgsIHNubXBfYmdwLmMsCiAgICAgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMsIHNubXBfb3NwZi5oLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgpOgogICAgIC0gbW92ZWQgc211eCBzdHVmZiBpbnRvIGEgc211eCBzdWItZGlyZWN0b3J5LgogICAKMTk5OC0wNi0wMiAxNDoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9hdXRvX25saXN0LmgsCiAgIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMKLCBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaCwga2VybmVsLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywKICAgICBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsIGhyX25ldHdvcmsuYywgaHJfb3RoZXIuYywKICAgICBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLAogICAgIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBocl91dGlscy5jLCBhdC5jLCBpbnRlcmZhY2VzLmMsCiAgICAgdmFyX3JvdXRlLmMsIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcHRhYmxlLmMsCiAgICAgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYywgZnJlZWJzZDIuaCwgaHB1eC5oLCBsaW51eC5oLCBuZXRic2QuaCwKICAgICBzb2xhcmlzLmgsIHN5c3YuaCwgYXNuMS5jLCBtaWIuYywgcGFyc2UuYywgcGFyc2UuaCwgc25tcF9hdXRoLmMsCiAgICAgc25tcF9pbXBsLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlbnNlbjoKICAgICAtIG1ha2UgaG9zdCByZXNvdXJjZXMgd29yayB1bmRlciBOZXRCU0QsIEZyZWVCU0QsIFNvbGFyaXMgYW5kIExpbnV4LgogICAgICAgLSBTdW5PUzQgYWxtb3N0IHdvcmtzLgogICAgIC0gQWRkIC1zLy1TIHRvIGNvbW1hbmQgbGluZSBvcHRpb25zIGZvciBwcmludGluZyBvZiBzaG9ydGVyIG9pZHMuCiAgICAgLSBudW1lcm91cyBidWcgZml4ZXMuCiAgIAoxOTk4LTA1LTMxIDE3OjU2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gbWFrZSBpdCBwb3NzaWJsZSBub3QgdG8gdXNlIG9wYXF1ZSBzcGVjaWFsIHR5cGVzIHdpdGggbmV3IGNtZCBsaW5lIGZsYWcuCiAgIAoxOTk4LTA1LTMxIDE3OjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBzZXQuYzoKCiAgIC0gKHNubXBzZXQuYyk6IGVuYWJsZSBzZXR0aW5nIG9mIG9wYXF1ZSBmbG9hdHMsIGRvdWJsZXMsIGludDY0cywgdWludDY0cy4KICAgCjE5OTgtMDUtMzEgMTc6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIGFzbjEuaCwgaW50NjQuYywgaW50NjQuaAosIG1pYi5jLCBzbm1wLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgKLCBzbm1wX2ltcGwuaDoKCiAgIC0gKGFzbjEuYywgYXNuMS5oLCBpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYywgc25tcC5jLCBzbm1wX2FwaS5jLAogICAgIHNubXBfYXBpLmgsIHNubXBfaW1wbC5oKToKICAgICAtIGltcGxlbWVudCBzcGVjaWFsIGRhdGEgdHlwZXMgdmlhIG9wYXF1ZXM6IGZsb2F0LCBkb3VibGUsIGludDY0LCB1aW50NjRzLgogICAKMTk5OC0wNS0yOSAxNjoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBfaW1wbC5oKTogY2hhbmdlIHBkdSB2ZXJzaW9uIGZyb20gbG9uZyB0byBpbnQuCiAgIAoxOTk4LTA1LTI5IDE2OjIwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvY29tbW9uX2hlYWRlci5oCiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2FjbF92YXJzLmMsIGFnZW50L21pYmdyb3VwL2FjbF92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL2FsYXJtLmMsIGFnZW50L21pYmdyb3VwL2FsYXJtLmgsCiAgIGFnZW50L21pYmdyb3VwL2F0LmMsIGFnZW50L21pYmdyb3VwL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5jLCBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuaAosIGFnZW50L21pYmdyb3VwL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5jLCBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5oLAogICBhZ2VudC9taWJncm91cC9ldmVudC5jLCBhZ2VudC9taWJncm91cC9ldmVudC5oLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaAosIGFnZW50L21pYmdyb3VwL2hvc3QuaCwgYWdlbnQvbWliZ3JvdXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC9ocHV4LmgsIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuaCwgYWdlbnQvbWliZ3JvdXAvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ocl9kaXNrLmgsIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5oLCBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmMKLCBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmgsCiAgIGFnZW50L21pYmdyb3VwL2hyX290aGVyLmMsIGFnZW50L21pYmdyb3VwL2hyX290aGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5jLCBhZ2VudC9taWJncm91cC9ocl9wYXJ0aXRpb24uaAosIGFnZW50L21pYmdyb3VwL2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hyX3ByaW50LmgKLCBhZ2VudC9taWJncm91cC9ocl9wcm9jLmMsIGFnZW50L21pYmdyb3VwL2hyX3Byb2MuaAosIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5oLCBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuYwosIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5oLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uaCwgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmMKLCBhZ2VudC9taWJncm91cC9ocl9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuYwosIGFnZW50L21pYmdyb3VwL2hyX3V0aWxzLmgsIGFnZW50L21pYmdyb3VwL2ljbXAuYwosIGFnZW50L21pYmdyb3VwL2ljbXAuaCwgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jCiwgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvaXAuaCwgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jCiwgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5oLCBhZ2VudC9taWJncm91cC9tZW1vcnkuYwosIGFnZW50L21pYmdyb3VwL21lbW9yeS5oLCBhZ2VudC9taWJncm91cC9taWJJSS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jCiwgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5oLCBhZ2VudC9taWJncm91cC9wYXNzLmMKLCBhZ2VudC9taWJncm91cC9wYXNzLmgsIGFnZW50L21pYmdyb3VwL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvcHJvYy5oLCBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5oLCBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5jCiwgYWdlbnQvbWliZ3JvdXAvcm91dGVfd3JpdGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvc3lzT1JUYWJsZS5jLCBhZ2VudC9taWJncm91cC9zeXNPUlRhYmxlLmgKLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgKLCBhZ2VudC9taWJncm91cC90Y3AuYywgYWdlbnQvbWliZ3JvdXAvdGNwLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5LmMsIGFnZW50L21pYmdyb3VwL3YycGFydHkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmMsIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5oCiwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5oLCBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jCiwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvdmlld192YXJzLmMsIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92bXN0YXQuYywgYWdlbnQvbWliZ3JvdXAvdm1zdGF0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suaAosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuaDoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC8qKToKICAgICAtIG1vdmVkIG1vc3QgbWliZ3JvdXAgcGllY2VzIGludG8gcmVsZXZlbnQgc3ViLWRpcmVjdG9yaWVzLgogICAgICAgLSBjaGFuZ2VkIGFsbCBoZWFkZXIgZmlsZSBhbmQgI2lmZGVmIFVTSU5HXyogbGluZXMgdG8gcmVmbGVjdCB0aGlzLgogICAKMTk5OC0wNS0yOSAxNToyMSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIGFiaWxpdHkgdG8gc3BlY2lmeSBtaWIgaW5mb3JtYXRpb24gb24gdGhlIGNtZCBsaW5lLgogICAKMTk5OC0wNS0yOSAxNToyMCAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiB3aW5TTk1QIG1lbnRpb24uCiAgIAoxOTk4LTA1LTI5IDExOjM0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKToKICAgICAtIEFkZCBhIGRlcGVuZGFuY3kgbGluZSBmb3Igc25tcF92YXJzLm8gZm9yIGFsbCB0aGUgbW9kdWxlIGluY2x1ZGVzLgogICAKMTk5OC0wNS0yOSAxMToyNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlKTogbWFrZSBvZiBjb25maWd1cmUuCiAgIAoxOTk4LTA1LTI5IDExOjI2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBwYXRjaCBmcm9tIE5pZWxzOiBpbmNsdWRlIHN5cy9zb2NrZXQgaW4gaWZfbXR1IHRlc3QuCiAgIAoxOTk4LTA1LTI5IDEwOjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9pbXBsLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2ltcGwuaCk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAtIGZpeCBjb21tdW5pdHkgbmFtZSBsZW5ndGggcHJvYmxlbXMgYW5kIGluY3JlYXNlIHNpemUuCiAgIAoxOTk4LTA1LTI5IDEwOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hdC5jOgoKICAgLSAoYXQuYyk6IFBhdGNoIGZyb20gQ2hyaXMgU21pdGg6IGZpeCBmb3IgaXJpeC4KICAgCjE5OTgtMDUtMjQgMTU6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLmM6CgogICAtIChpcC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZpeCBmb3IgbmV0YnNkIDwgMS4zLgogICAKMTk5OC0wNS0yNCAxNToyMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBjaGFuZ2UgdmFjbSBuZXdzIHdvcmRpbmcuCiAgIAoxOTk4LTA1LTI0IDE1OjIyICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB1cGRhdGUgdG8gY2hhbmdlIGEgZmV3IHRoaW5ncy4KICAgCjE5OTgtMDUtMjAgMDg6MzMgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQgKQogICAKMTk5OC0wNS0yMCAwODozMCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlLgogICAKMTk5OC0wNS0yMCAwODoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgogICAKMTk5OC0wNS0yMCAwODoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBjb25maWdfcGVycm9yKCkgLT4gY29uZmlnX3B3YXJuKCkgZm9yIG1pc3NpbmcgdG9rZW5zLgogICAKMTk5OC0wNS0yMCAwNzozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBfaW1wbC5oKTogdmVyc2lvbiBzaG91bGQgYmUgYSBsb25nLgogICAKMTk5OC0wNS0yMCAwNzozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAodXRpbF9mdW5jcy5jKTogbWFrZSBjaGVjbWliKCkgdXNlIG9pZCBub3QgaW50IGZvciBuZXduYW1lLgogICAKMTk5OC0wNS0yMCAwNzozNCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk4LTA1LTIwIDA3OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICAtIChtaWIuYywgcGFyc2UuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBleHRlbmQgcmFuZG9tIGxvb2t1cHMgZnVydGhlci4KICAgCjE5OTgtMDUtMTkgMTA6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiBmaXggc3dhcGluZm8gb24gaHB1eDEwIHN5c3RlbXMuICgvZXRjL3N3YXBpbmZvIC1yKS4KICAgCjE5OTgtMDUtMTkgMTA6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2F0LmM6CgogICAtIChhdC5jKTogc2V0IHRvIGRvIG5vdGhpbmcgd2hlbiBDQU5fVVNFX1NZU0NUTC4KICAgCjE5OTgtMDUtMTggMTg6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvaW50NjQuYzoKCiAgIC0gKGludDY0LmMpOgogICAgIC0gaW5jbHVkZSBoZWFkZXIgY2hhbmdlcyBmb3Igd2luMzIuCiAgIAoxOTk4LTA1LTE4IDE1OjM5ICBoYXJkYWtlcgoKICAgKiB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy40LnByZTkgKQogICAKMTk5OC0wNS0xOCAxMzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYyk6IHByb3RlY3QgdXNpbmcgdGhlIGRhdGUgcG9pbnRlciBhZ2FpbnN0IE5VTEwgc2V0dGluZ3MuCiAgIAoxOTk4LTA1LTE4IDEyOjUyICBoYXJkYWtlcgoKICAgKiBtaWJzLy5pbmRleDoKCiAgIC0gKG1pYnMvLmluZGV4KTogcmVtb3ZlZC4KICAgCjE5OTgtMDUtMTggMTE6MTcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBmaXggcnRlbnRyeSBzdHJ1Y3R1cmUgdGVzdCBvbiByZS1jb25maWd1cmVzLgogICAKMTk5OC0wNS0xNSAxMToxOCAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBjb25maWcuaCwgd2luMzIub3B0LCBsaWJzbm1wL2xpYnNubXAuZHNwCiwgbGlic25tcC9saWJzbm1wLnBsZywgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwucGxnCiwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5wbGcsIHNubXBnZXQvc25tcGdldC5wbGcKLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5wbGcsIHNubXBzZXQvc25tcHNldC5wbGcKLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMucGxnLAogICBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnLCBzbm1wd2Fsay9zbm1wd2Fsay5wbGc6CgogICAtIChjb25maWcuaCwgd2luMzIub3B0LCBsaWJzbm1wLmRzcCwgbGlic25tcC5wbGcsIGxpYnNubXAuZGVmLAogICAgIGxpYnNubXBfZGxsLmRzcCwgbGlic25tcF9kbGwucGxnLCBzbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0LnBsZywKICAgICBzbm1wZ2V0bmV4dC5wbGcsIHNubXBzZXQucGxnLCBzbm1wc3RhdHVzLnBsZywgc25tcHRyYW5zbGF0ZS5wbGcsCiAgICAgc25tcHdhbGsucGxnKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgIC0gd2luMzIgZmlsZSB1cGRhdGVzLgogICAKMTk5OC0wNS0xNSAxMToxNyAgaGFyZGFrZXIKCiAgICogRkFRLCBzbm1wbGliL21pYi5jOgoKICAgLSAoRkFRLCBtaWIuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBoYW5kbGUgcmFuZG9tIGxvb2t1cHMgd2l0aCBtdWx0aXBsZSBvaWQgc2VnbWVudHMuCiAgIAoxOTk4LTA1LTE1IDEwOjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gcHJvdmlkZSBhYmlsaXR5IHRvIGRvIHJhbmRvbSBzZWFyY2hlcyBzcGVjaWZ5aW5nIGEgbW9kdWxlIG5hbWUgdG8gbG9vayBpbi4KICAgCjE5OTgtMDUtMTUgMTA6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3JlYWRfY29uZmlnLmMsIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIG1hbi9zbm1wdHJhbnNsYXRlLjEsCiAgIHNubXBsaWIvaW50NjQuaCwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsCiAgICAgaHJfc3lzdGVtLmgsIGhyX3V0aWxzLmMsIHV0aWxfZnVuY3MuYywgdmFyX3JvdXRlLmMsCiAgICAgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0YWJsZS5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFuc2xhdGUuMSwKICAgICBic2QuaCwgc29sYXJpcy5oLCBzdW5vcy5oLCBpbnQ2NC5oLCBtaWIuYywgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgpOgogICAgIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzbm1wdHJhbnNsYXRlIHN1cHBvcnRzIC1SIGFuZCAtci4KICAgICAtIG1pc2NlbGxhbmVvdXMgd2FybmluZyBmaXhlcy4KICAgICAtIG9pZCBzZWFyY2hlciBhbHdheXMgaWdub3JlcyBjYXNlLgogICAgIC0gZml4ZWQgaHJfc3lzdGVtIHRvIGNvbXBpbGUgb24gU3VuT1M0LgogICAKMTk5OC0wNS0xNSAxMDoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IHNpbmdsZSBxdW90ZSBtaXNzaW5nIG1vZHVsZSBuYW1lcy4KICAgCjE5OTgtMDUtMTQgMDg6MjUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiB0eXBvcy4KICAgCjE5OTgtMDUtMTQgMDg6MjIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbWliMmMgbWVudGlvbmVkLgogICAKMTk5OC0wNS0xNCAwODoyMSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogbmV3IEZBUSBmcm9tIERhdmUgU2hpZWxkcy4KICAgCjE5OTgtMDUtMTQgMDc6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiBtb3ZlIHN5cy9wYXJhbS5oIHVwIGFib3ZlIGZzLmggaGVhZGVycy4KICAgCjE5OTgtMDUtMTMgMjE6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IHNwcmludF9ieV90eXBlKCkgZGlkbid0IGhhbmRsZSBjb3VudGVyNjQncy4KICAgCjE5OTgtMDUtMTMgMjE6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiBpbmNsdWRlIHN5cy9wYXJhbS5oIGZvciBic2RpCiAgIAoxOTk4LTA1LTEzIDIxOjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC5jOgoKICAgLSAoaXAuYyk6IGluY2x1ZGUgbmV0L3JvdXRlLmggYW5kIHN5c2xvZy5oIGZvciBic2RpLgogICAKMTk5OC0wNS0xMyAyMToyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IGRvbid0IHJldHVybiBhIGNvdW50ZXI2NCB0byBhIHNubXB2MSByZXF1ZXN0LgogICAKMTk5OC0wNS0xMyAyMToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGludDY0LmMsIGludDY0LmgsIG1pYi5jOgoKICAgLSAoaW50NjQuYywgaW50NjQuaCwgbWliLmMpOiBtYWtlIGludDY0LmMgdXNlIGNvdW50ZXI2NCdzIHN0cnVjdHVyZS4KICAgCjE5OTgtMDUtMTIgMTU6MTUgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlOCApCiAgIAoxOTk4LTA1LTEyIDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGRpc2suYywgZXhhbXBsZS5jLCBpbnRlcmZhY2VzLmMKLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwYXNzLmMsIHByb2MuYwosIHV0aWxfZnVuY3MuaCwgdm1zdGF0LmM6CgogICAtIChkaXNrLmMsIGV4YW1wbGUuYywgaW50ZXJmYWNlcy5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwYXNzLmMsCiAgICAgcHJvYy5jLCB1dGlsX2Z1bmNzLmgsIHZtc3RhdC5jKToKICAgICAtIGluY2x1ZGUgdGltZS5oIHByb3Blcmx5IGluc3RlYWQgb2YgcmVseWluZyBvbiB1dGlsX2Z1bmNzLmggdG8gZG8gaXQuCiAgIAoxOTk4LTA1LTEyIDExOjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc3lzdGVtLmM6CgogICAtIChzbm1wX2FwaS5jLCBzeXN0ZW0uYyk6CiAgICAgLSBtb3ZlIGRlYnVnZ2luZyBjb2RlIGZyb20gc3lzdGVtLmMgdG8gc25tcF9hcGkuYywgd2hlcmUgaXQgc2hvdWxkIGJlLgogICAKMTk5OC0wNS0xMiAxMTo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdm1zdGF0LmM6CgogICAtICh2bXN0YXQuYyk6IGNvcnJlY3Qgc3RyaW5ncyBpbmNsdXNpb24uCiAgIAoxOTk4LTA1LTEyIDExOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiBOVUxMIC0+IDAuCiAgIAoxOTk4LTA1LTEyIDExOjExICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gbXVuZ2UgcnBtIGxpYiBjaGVjayB0byBsaW5rIHdpdGggLWxkYiBhcyB3ZWxsLgogICAKMTk5OC0wNS0xMiAxMToxMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBtb3JlIHVwZGF0ZXMuCiAgIAoxOTk4LTA1LTEyIDEwOjUyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gaW5jbHVkZSBhIGdldGR0YWJsZXNpemUoKSBmdW5jdGlvbiBmb3IgaHB1eDkuCiAgIAoxOTk4LTA1LTEyIDEwOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIG1vcmUgc3dpbnN0IGZpeGVzIGZvciBycG0gbW9kdWxlcy4KICAgCjE5OTgtMDUtMTEgMTA6MzQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaCwKICAgc25tcF9hcGkuaCwgdmFjbS5jLCB2YWNtLmg6CgogICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCwgc25tcF9hcGkuaCwgdmFjbS5jLCB2YWNtLmgpOiBQYXRjaCBmcm9tCiAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmcmVlIHJvdXRpbmVzIGZvciB2YWNtICh0byBhbGxvdyAtSFVQKQogICAgIC0gZml4IHRoZSBwYXJzZXIgdG8gcmVwb3J0IHVubGlua2VkIE9JRHMuIFRoaXMgZGlkIHJldmVhbCBhbiBlcnJvciBpbiBhCiAgICAgICBDaXNjbyBNSUIgKENJU0NPLUlQTUNBU1QtTUlCKSB0aGF0IEkgaGFkIGJlZW4gdXNpbmcgKGl0IG5lZWRzIGFuCiAgICAgICBJTVBPUlRTIGNpc2NvRXhwZXJpbWVudCBGUk9NIENJU0NPLVNNSSkKICAgICAgIEFjdHVhbGx5IHRoZSBwYXJzZXIgd29ya2VkIG9rLCBleGNlcHQgZm9yIHRoZSBtaXNzaW5nIGVycm9yIG1lc3NhZ2VzLgogICAgIC0gcmV3cml0ZSBvZiB0aGUgcGFyc2VycyBsZXhpY2FsIGFuYWx5c2VyLCB0byBjb3JyZWN0IHRoZSBlcnJvcnMgdGhhdAogICAgICAgRGF2ZSBQZXJraW5zIGFuZCBvdGhlcnMgaGF2ZSBwb2ludGVkIG91dCByZWNlbnRseSAobmFtZTo6PSAsIERFU0NSSVBUSU9OIgogICAgICAgYW5kIHByb3BlciBoYW5kbGluZyBvZiAtLSBwYXJ0aWFsIGxpbmUgY29tbWVudHMgLS0pLiBXYXRjaCBvdXQhIHRoaXMgbGFzdAogICAgICAgbWF5IGZpbmQgZXJyb3JzIGluIG9sZCBNSUJzIChpbmNsdWRpbmcgdGhlIHZlcnNpb24gb2YgU05NUHYyLVRDIHRoYXQKICAgICAgIHdlIHNoaXApLiBNeSBGb3JlIFN5c3RlbXMgTUlCcyBoYWQgZXJyb3JzIHdpdGggdGhpcy4KICAgICAtIGltcGxlbWVudCB0aGUgbG9uZyBzaW5jZSBhbm5vdW5jZWQgLUggb3B0aW9uIHRvIHNubXB0YWJsZQogICAKMTk5OC0wNS0xMSAxMDozMiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBDb3JyZWN0aW9ucyBvZiBkaXNrIGVudHJ5IGNhcGl0aWxhemF0aW9uIHByb2JsZW1zLgogICAKMTk5OC0wNS0xMSAxMDozMSAgaGFyZGFrZXIKCiAgICogbWlicy9TTk1QdjItVEMudHh0OgoKICAgLSAoU05NUHYyLVRDLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSB0aGlzIGxhc3QgW3BhcnNlcl0gbWF5IGZpbmQgZXJyb3JzIGluIG9sZCBNSUJzIChpbmNsdWRpbmcgdGhlCiAgICAgICB2ZXJzaW9uIG9mIFNOTVB2Mi1UQyB0aGF0IHdlIHNoaXApLgogICAKMTk5OC0wNS0xMSAxMDozMCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0cmFuc2xhdGUuMToKCiAgIC0gKHNubXB0cmFuc2xhdGUuMSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBpbXBsZW1lbnQgdGhlIGxvbmcgc2luY2UgYW5ub3VuY2VkIC1IIG9wdGlvbiB0byBzbm1wdGFibGUuCiAgIAoxOTk4LTA1LTExIDEwOjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBpbXBsZW1lbnQgdGhlIGxvbmcgc2luY2UgYW5ub3VuY2VkIC1IIG9wdGlvbiB0byBzbm1wdGFibGUKICAgCjE5OTgtMDUtMTEgMTA6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgIGhyX3BhcnRpdGlvbi5jLCB2YWNtX3ZhcnMuYzoKCiAgIC0gKGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYywgdmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tCiAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzb21lIHByb3RvdHlwZXMgZm9yIHRoZSBocl8qLmMgZmlsZXMgKG5lZWRzIERhdmUncyByZWNlbnQgcGF0Y2gpCiAgICAgICBXYXJuaW5nOiB0aGUgcHJvYyBwYXJ0IHN0aWxsIGRvZXMgbm90IHdvcmsgd2l0aCBTb2xhcmlzIQogICAKMTk5OC0wNS0xMSAxMDoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywKICAgc25tcGQuaCwgdmFyX3N0cnVjdC5oOgoKICAgLSAocmVhZF9jb25maWcuYywgc25tcF92YXJzLmgsIHNubXBkLmMsIHNubXBkLmgsIHZhcl9zdHJ1Y3QuaCk6IFBhdGNoCiAgICAgZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZyZWUgcm91dGluZXMgZm9yIHZhY20gKHRvIGFsbG93IC1IVVApCiAgICAgLSBmcmVlIHJvdXRpbmVzIGZvciB0aGUgdHJhcHNpbmsgZGlyZWN0aXZlcyBpbiBzbm1wZAogICAKMTk5OC0wNS0xMSAwODoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9pbnQ2NC5jOgoKICAgLSAoaW50NjQuYyk6IGFkZCBpbmNyQnlVMzIoKS4KICAgCjE5OTgtMDUtMTEgMDg6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBvcGFxdWUncyBjYW4gaGF2ZSBhIHNpemUgc3BlY2lmaWVyLgogICAKMTk5OC0wNS0xMSAwODowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6CiAgICAgLSBjb3VudGVyNjRzLgogICAgIC0gY29uc29sb2RhdGlvbiBvZiB2YXJpYWJsZSBkZWNsYXJhdGlvbnMuCiAgICAgLSBtb3JlIGVycm9yIHN0aW5ncyBpbiBhbGwgZmlsZXMgZm9yIHVua25vd24gdmFyaWFibGUgdHlwZXMuCiAgIAoxOTk4LTA1LTExIDA4OjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogb3B0aW9uYWwgcG9ydCBudW1iZXIuCiAgIAoxOTk4LTA1LTExIDA4OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtICh1dGlsX2Z1bmNzLmMpOiBibGFuayBsaW5lIHJlbW92YWwuCiAgIAoxOTk4LTA1LTA4IDE0OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiB3b3JkaW5nIGNoYW5nZS4KICAgCjE5OTgtMDUtMDggMTE6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaHJfZGlzay5jLCBocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdC5jLCBocl9kaXNrLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkcy4KICAgCjE5OTgtMDUtMDggMTA6NTcgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgcGtnbG9jcy5oLgogICAKMTk5OC0wNS0wNyAwOTowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBkZWJ1ZyBpbmZvIGZvciBjb25maWcgZmlsZXMgcmVhZC4KICAgCjE5OTgtMDUtMDcgMDk6MDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBzeXMvc3RhdCBpbmNsdXNpb24gaW4gZnMgY2hlY2tzLgogICAKMTk5OC0wNS0wNyAwOTowNSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIC0gKENPUFlJTkcpOiBjb3JyZWN0aW9uIGZvciBkYXRlcy4KICAgCjE5OTgtMDUtMDYgMjI6MjggIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgLSAod2luMzIvY29uZmlnLmgpOiB1cGRhdGUgZnJvbSBKb2UgTWFyem90LgogICAKMTk5OC0wNS0wNiAyMTowOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IGNyZWF0ZWQgYSBtaWIyYyB0ZW1wbGF0ZSBjcmVhdG9yLgogICAKMTk5OC0wNS0wNiAyMTowOCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1ha2UgYm9ndXMgaW5kZXgncyBiZSAwLgogICAKMTk5OC0wNS0wNiAyMTowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaDoKCiAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oKToKICAgICAtIG5ldyBmdW5jdGlvbjogY2FsY3VsYXRlX3RpbWVfZGlmZih0MSwgdDIpLgogICAKMTk5OC0wNS0wNiAyMTowNiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBtaW5vciB3b3JkaW5nIGNoYW5nZS4KICAgCjE5OTgtMDUtMDYgMTQ6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZGlzay5jLCBlcnJvcm1pYi5jLCBleGFtcGxlLmMKLCBleGFtcGxlLmgsIGV4dGVuc2libGUuYywgbG9hZGF2ZS5jLAogICBtZW1vcnkuYywgcHJvYy5jLCBzeXNPUlRhYmxlLmMsIHN5c3RlbS5jCiwgdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgsIHZlcnNpb25pbmZvLmMKLCB2bXN0YXQuYzoKCiAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgZXhhbXBsZS5jLCBleGFtcGxlLmgsIGV4dGVuc2libGUuYywgbG9hZGF2ZS5jLAogICAgIG1lbW9yeS5jLCBwcm9jLmMsIHN5c09SVGFibGUuYywgc3lzdGVtLmMsIHV0aWxfZnVuY3MuYywKICAgICB1dGlsX2Z1bmNzLmgsIHZlcnNpb25pbmZvLmMsIHZtc3RhdC5jKToKICAgICAtIHJlbW92ZSB0aGUgbmV3bmFtZSByZXF1aXJlbWVudCBmcm9tIGNoZWNrbWliKCkuCiAgICAgLSBjcmVhdGUgaGVhZGVyX2dlbmVyaWMoKSBmb3Igc2ltcGxlIHNjYWxhciB0ZXN0cy4KICAgICAtIHVzZSBoZWFkZXJfZ2VuZXJpYygpIGluIGFsbCB1Y2Qgc3BlY2lmaWMgc2NhbGFyIG1pYnMsIGFuZCBleGFtcGxlLltjaF0uCiAgIAoxOTk4LTA1LTA2IDE0OjA2ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGFkZGVkIGludGVybmFsIHRhYmxlIHNlY3Rpb24uCiAgICAgLSBtaWIgbnVtYmVyIGNvcnJlY3Rpb25zIHRvIG1hdGNoIHRoZSBzb3VyY2UuCiAgIAoxOTk4LTA1LTA2IDExOjIyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB0a21pYi4KICAgCjE5OTgtMDQtMjkgMTE6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOgogICAgIC0gZGlzcGxheSB1bmxvYWRlZCBtb2R1bGUgZXJyb3IuCiAgICAgLSBkb24ndCB0cnkgdG8gbG9hZCBhIGZpbGUgb24gYSBjYW5jZWwuCiAgIAoxOTk4LTA0LTI5IDExOjMyICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogcHV0IHZtc3RhdCBiYWNrIGluIGFuZCByZW5hbWVkIHRvIHN5c3RlbVN0YXRzLgogICAKMTk5OC0wNC0yOSAxMTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB2bXN0YXQuYywgdm1zdGF0Lmg6CgogICAtICh2bXN0YXQuYywgdm1zdGF0LmgpOiBtb3ZlcywgY2hhbmdlcywgcmVtb3ZhbHMsIGFuZCBmaXhlcy4KICAgCjE5OTgtMDQtMjkgMTA6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZS5jLCBleGFtcGxlLmgsIHdvbWJhdC5jCiwgd29tYmF0Lmg6CgogICAtIChleGFtcGxlLmMsIGV4YW1wbGUuaCwgd29tYmF0LmMsIHdvbWJhdC5oKTogbW9yZSBjbGVhbiB1cHMuCiAgIAoxOTk4LTA0LTI5IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGUuYywgcHJvYy5jLCB2YXJfcm91dGUuYwosIHdvbWJhdC5jOgoKICAgLSAoZXhhbXBsZS5jLCBwcm9jLmMsIHZhcl9yb3V0ZS5jLCB3b21iYXQuYyk6CiAgICAgLSBubGlzdCBjbGVhbnVwcy4KICAgCjE5OTgtMDQtMjkgMTA6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC5jOgoKICAgLSAodGNwLmMpOiBkb24ndCB1c2UgVENQU1RBVF9TWU1CT0wgdW5sZXNzIGRlZmluZWQuCiAgIAoxOTk4LTA0LTI5IDA4OjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSAoc25tcHRhYmxlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IC1IIGhlYWRlciBwcmludGluZy4KICAgCjE5OTgtMDQtMjcgMTY6NDggIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBidWcgZml4ZXMuCiAgIAoxOTk4LTA0LTI3IDE2OjQ2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogTmV3IG1pYiBtZW51IGNvbW1hbmQ6IGxvYWQgYSBtaWIgbW9kdWxlIGJ5IElEIG5hbWUuCiAgIAoxOTk4LTA0LTI3IDE2OjI0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogYnVnIGZpeGVzIGFuZCBuZXcgbWliIG1lbnUgdG8gbG9hZCBuZXcgbWlicy4KICAgCjE5OTgtMDQtMjcgMTM6MzEgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNyApCiAgIAoxOTk4LTA0LTI3IDExOjAwICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMKLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYwosIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wd2Fsay5jOgoKICAgLSAoc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywKICAgICBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wd2Fsay5jKToKICAgICAtIFB1dCB0aGUgd29yZCAiVGltZW91dDogIiBpbiBmcm9udCBvZiB0aGUgIk5vIFJlc3BvbnNlIiBlcnJvcnMuCiAgIAoxOTk4LTA0LTI3IDExOjAwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZGVmaW5lIFNITElCX0xEQ09ORklHX0NNRCBhcyAiOiIgZm9yCiAgICAgc3RhdGljIGxpYnJhcnkgY2FzZXMuCiAgIAoxOTk4LTA0LTI3IDEwOjU5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICAtIChNYWtlZmlsZS50b3ApOiByZW1vdmVkIHVubmVlZGVkIHZhcmlhYmxlLgogICAKMTk5OC0wNC0yNCAxNjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmM6CgogICAtICh2YXJfcm91dGUuYyk6IHdhdGNoIG91dCBmb3Igc2luZ2xlIHJvdXRlIGxvb3BzLgogICAKMTk5OC0wNC0yNCAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaDoKCiAgIC0gKGF1dG9fbmxpc3QuYywgYXV0b19ubGlzdC5oKTogbl92YWx1ZSBpcyBhIGxvbmc6CiAgICAgLSByZXR1cm4gdGhlIHZhbHVlIGZyb20gYXV0b19ubGlzdF92YWx1ZSBhcyBhbiB1bnNpZ25lZCBsb25nLgogICAKMTk5OC0wNC0yNCAxNjozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLmM6CgogICAtICh0Y3AuYyk6IGluY2x1ZGUgbmV0aW5ldC90Y3BpcC5oIGZvciBEVTQuMC4KICAgCjE5OTgtMDQtMjQgMTQ6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc2suYzoKCiAgIC0gKGRpc2suYyk6IGNhbGN1bGF0ZSB2ZnMgYmxvY2sgc2l6ZSBpZiBwb3NzaWJsZSBhbmQgc2l6ZSA+IDI1NSBieXRlcy4KICAgCjE5OTgtMDQtMjQgMTQ6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5jOgoKICAgLSAoaHJfcGFydGl0aW9uLmMpOiBjbG9zZSBmaWxlIGRlc2NyaXB0b3IganVzdCBvcGVuZWQuCiAgIAoxOTk4LTA0LTI0IDE0OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmM6CgogICAtIChocl9maWxlc3lzLmMpOiBpbmNsdWRlIHN5cy9wYXJhbS5oIHRvIGRlZmluZSBNQVhQQVRITEVOLgogICAKMTk5OC0wNC0yNCAxNDozMiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIGNoZWNrIHN0YXR2ZnMuaCBmb3IgZl9iYXZhaWwuCiAgIAoxOTk4LTA0LTI0IDE0OjAzICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogbW9yZSBjbGVhbmluZyBhbmQgcmVuYW1pbmcuCiAgIAoxOTk4LTA0LTI0IDEwOjIyICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogdGhlIHRleHR1YWwgZGVzY3JpcHRpb25zIHdlcmUgdXBkYXRlZCBzb21lLgogICAKMTk5OC0wNC0yNCAxMDowMiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSByZW5hbWVkIGxhYmVscyB0byBiZSB1bmlxdWUgZnJvbSB0aGUgb2xkIGRlZmluaXRpb25zLgogICAgIC0gcmVudW1iZXJlZCBhZ2Fpbi4KICAgICAtIGNvbW1lbnRlZCBvbiB0aGUgZGVzZ2luIG9mIHRoZSBtaWIgYXQgdGhlIHRvcC4KICAgICAtIENoYW5nZWQgYmFjayB0byBTTUl2MS4KICAgICAtIHJlbW92ZWQgbG9ja2Qgc2VjdGlvbi4KICAgICAtIHJlbW92ZWQgdm1zdGF0IHNlY3Rpb24gdGlsbCBpdCBnZXRzIGltcGxlbWVudGVkLgogICAgIC0gcmVtb3ZlZCBzZXF1ZW5jZXMgb2Ygc2NhbGVycy4KICAgCjE5OTgtMDQtMjQgMTA6MDAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBtaWIgb2lkIGxvY2F0aW9uIHVwZGF0ZXMgZm9yIHVjZC1zbm1wIG1pYi4KICAgCjE5OTgtMDQtMjIgMDg6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gcGFyc2UgQklUUyBrZXl3b3Jkcy4KICAgCjE5OTgtMDQtMjIgMDc6NDkgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBjaGFuZ2VkIHdvcmRpbmcsIGNsZWFuZWQgdXAgYSBiaXQuCiAgIAoxOTk4LTA0LTIwIDE2OjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIG5lZWRlZCBwb2ludGVyIGNvcGllcy4KICAgCjE5OTgtMDQtMjAgMTY6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYzoKCiAgIC0gKHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gI2lmZGVmIGNoZWNrcyBvbiBzeW1ib2xzIGFuZCBoZWFkZXIgbW92ZW1lbnQuCiAgIAoxOTk4LTA0LTIwIDE2OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92YWNtX3ZhcnMuYzoKCiAgIC0gKHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHR5cGVjYXN0IGEgcG9pbnRlci4KICAgCjE5OTgtMDQtMjAgMTY6MDUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBnZXRob3N0YnlhZGRyIG1vdmVzIHVwLgogICAgIC0gaW5jbHVkZSBzeXMvd2FpdC5oLgogICAgIC0gc3lzbG9nICVkIC0+ICVsZCBmb3IgbG9uZyBzcGVjaWZpY190eXBlLgogICAKMTk5OC0wNC0yMCAxNjowMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKHNubXB0YWJsZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHByb3RvdHlwaW5nIGFuZCBvdGhlciBjbGVhbnVwcy4KICAgCjE5OTgtMDQtMjAgMTY6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLmM6CgogICAtIChpcC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHRlc3Qgc3ltYm9sIGRlZmluZXMgYW5kIGNsZWFudXAuCiAgIAoxOTk4LTA0LTIwIDE2OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gaGVhZGVyIG1vdmVzLgogICAKMTk5OC0wNC0yMCAxNjowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gYXBwcm9wcmlhdGUgdXNlIG9mIHN0cmR1cCBkdXJpbmcgc3RhcnR1cCBhbmQgYmV0dGVyIGZsYWcgY2hlY2tpbmcuCiAgIAoxOTk4LTA0LTIwIDE1OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhyX2ZpbGVzeXMuYywgaHJfc3dydW4uYzoKCiAgIC0gKGhyX2ZpbGVzeXMuYywgaHJfc3dydW4uYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmaXggc29tZSBob3N0IHJlc291cmNlcyBmb3Igc29sYXJpcy4KICAgCjE5OTgtMDQtMjAgMTU6NTYgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBzeXMvZGtpby5oCiAgIAoxOTk4LTA0LTIwIDE1OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3RfcmVzLmgsIGhyX2Rpc2suYywKICAgaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYywgaHJfc3RvcmFnZS5jOgoKICAgLSAoaG9zdF9yZXMuaCwgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9zdG9yYWdlLmMpOgogICAgIC0gUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgIC0gY29uc29saWRhdGUgdGhlIHN5c3RlbS1zcGVjaWZpYyBzdHVmZiBhIGJpdCAoc2hvdWxkIG1ha2UgaXQgZWFzaWVyCiAgICAgICAgIHRvIGZvbGxvdykKICAgICAgIC0gUmUtc3RydWN0dXJlcyB0aGUgRGlzayBzZWFyY2hpbmcsIGluIHN1Y2ggYSB3YXkgdGhhdCBpdCBjYW4gc2V0IHVwCiAgICAgICAgIHZpYSB0aGUgY29uZmlnIGZpbGUuICh3aGljaCBJIHN0aWxsIG5lZWQgdG8gZG8pCiAgICAgICAtIFNwZWVkIHVwIGRpc2sgc2VhcmNoaW5nIChieSBjYWNoaW5nIGludmFsaWQgcmVzdWx0cyAtIGEgKm1ham9yKiB3aW4hKQogICAgICAgLSBIYW5kbGUgcGFydGl0aW9ucyBzZW5zaWJseSAoYXJ0aGVyIHRoYW4gb25lIHBlciBkaXNrKQogICAgICAgLSBJbXByb3ZlIFNvbGFyaXMgc3VwcG9ydCBmb3IgdGhlIERldmljZSBncm91cAogICAKMTk5OC0wNC0yMCAxMDozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBjaGFuZ2Ugb2lkIGZyb20gdGV4dHVhbCB0byBudW1lcmljIHRvIGFsbG93IG5vdyBtaWJzIHRvCiAgICAgYmUgbG9hZGVkLgogICAKMTk5OC0wNC0wMSAxNjozNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogYWx3YXlzIHNlbmQgZW50ZXJwcmlzZSBhbmQgdHJhcG9pZCB0byBzY3JpcHRzLgogICAKMTk5OC0wNC0wMSAxNDo0MyAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU2ICkKICAgCjE5OTgtMDQtMDEgMTQ6NDAgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMsIHNubXBfdmFycy5oOgoKICAgLSAoc25tcF92YXJzLmMsIHNubXBfdmFycy5oKTogbWFrZSB1bnJlZ2VzdGVyaW5nIG9mIG1pYnMgd29yay4KICAgICAtIChpbiBtb3N0IGNhc2VzOi0/KQogICAKMTk5OC0wNC0wMSAxNDoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTgtMDQtMDEgMTQ6MTAgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogcmVtb3ZlZCBhIGZldyB0aGluZ3MhCiAgIAoxOTk4LTA0LTAxIDEzOjU0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBtb3ZlZCB0aGUgdmlldyBleGFtcGxlIHNlY3Rpb24gYWJvdmUgdGhlIGFjY2VzcyBzZWN0aW9uLgogICAKMTk5OC0wNC0wMSAxMzo1MyAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBhZGRlZCB2YWNtIGV4YW1wbGUgY29uZmlndXJhdGlvbi4KICAgCjE5OTgtMDQtMDEgMTM6NDcgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSAoRkFRLCBSRUFETUUpOiBtb3JlIDMuNCB1cGRhdGVzLgogICAKMTk5OC0wNC0wMSAxMzozMSAgaGFyZGFrZXIKCiAgICogTkVXUywgUE9SVElORzoKCiAgIC0gKE5FV1MsIFBPUlRJTkcpOiB1cGRhdGVzIGZvciAzLjQuCiAgIAoxOTk4LTA0LTAxIDEzOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICAtIChhdXRvX25saXN0LmMpOgogICAgIC0gcmVtb3ZlIG5vIGxvbmdlciBuZWVkZWQgZGVidWdnaW5nIHN0YXRlbWVudHMgb2YgdHJlZSB0cmF2ZXJzYWwuCiAgIAoxOTk4LTA0LTAxIDA5OjUyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogZW50ZXJwcmlzZV9sZW5ndGggaXMgc2l6ZW9mKG9pZCkgZGVwZW5kZW50LgogICAKMTk5OC0wMy0yNyAxNjo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsCiAgIG1pYmdyb3VwL2ludGVyZmFjZXMuYywgbWliZ3JvdXAvaXAuYywKICAgbWliZ3JvdXAvcmVnaXN0cnkuYzoKCiAgIC0gKHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwgaW50ZXJmYWNlcy5jLCBpcC5jLCByZWdpc3RyeS5jKToKICAgICAtIHByb3RvdHlwaW5nIGFuZCAtV2FsbCBmaXhlcy4KICAgCjE5OTgtMDMtMjcgMTY6NDIgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogZG9jdW1lbnQgbGlid3JhcC4KICAgCjE5OTgtMDMtMjcgMTY6MjMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcGQuYyk6CiAgICAgLSBjb3JyZWN0bHkgI2lmZGVmIG91dCB0aGUgdGNwd3JhcHBlcnMgcGF0Y2guCiAgIAoxOTk4LTAzLTI3IDE2OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBJbnRlcmZhY2VzX1NjYW5fTmV4dCBuZWVkZWQgYSA0dGggKE5VTEwpIGFyZ3VtZW50LgogICAKMTk5OC0wMy0yNyAxNjoxMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3NubXBkLmM6CgogICAtIChSRUFETUUsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcGQuYyk6IFBhdGNoIGZyb20KICAgICBBcnRodXIgSHl1bjoKICAgICAtIHRjcHdyYXBwZXJzIHN1cHBvcnQuCiAgIAoxOTk4LTAzLTI3IDExOjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYzoKCiAgIC0gKGhyX2RldmljZS5jKTogY2hlY2sgZGV2aWNlIGluZGV4IGFnYWluc3QgbWF4aW11bSAoc2VnZmF1bHQgb24gSFBVWCkuCiAgIAoxOTk4LTAzLTI3IDExOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiB1c2UgY29uZmlnX3B3YXJuKCkgZm9yIG1pc3NpbmcgZGlza3MuCiAgIAoxOTk4LTAzLTI3IDExOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAtIGNyZWF0ZSBjb25maWdfcHdhcm4oKSB0aGF0IGRvZXNuJ3QgaW5jcmVhc2UgdGhlIGVycm9yIGNvdW50IHRvCiAgICAgICBwcmV2ZW50IGV4aXRpbmcuICBVc2VkIGZvciBkaXNrcywgc2luY2Ugc29tZSBtaWdodCBieSBwcm9jZXNzIG9yCiAgICAgICBuZnMgbW91bnRlZC4KICAgCjE5OTgtMDMtMjcgMDk6MjAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6CiAgICAgLSBCZXRhIHZlcnNpb24gb2YgYW4gZXh0ZW5zaWJsZSB0cmFwIGRlbW9uLgogICAgICAgLSAtQyAnY29tbWFuZCcgb24gdGhlIGNvbW1hbmQgbGluZSBydW5zIHRoZSBjb21tYW5kIGFuZCBmZWVkcyBpdAogICAgICAgICBzdGRpbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdHJhcC4KICAgICAgIC0gdjEgdHJhcHMgYXJlIGNvbnZlcnRlZCB0byB2MiB0cmFwcyBmb3IgY29uc2lzdGFuY3kgb2YKICAgICAgICAgaW5mb3JtYXRpb24gc2VudCB0byB0aGUgc2NyaXB0cy4KICAgCjE5OTgtMDMtMjYgMDc6MjIgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9hdXRvX25saXN0LmgsCiAgIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwgYWdlbnQva2VybmVsLmMsCiAgIGFnZW50L3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywgYWdlbnQvbWliZ3JvdXAvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmMsIGFnZW50L21pYmdyb3VwL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuYywgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLCBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYwosIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfcGFydGl0aW9uLmMsIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYwosIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5jLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jCiwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMKLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL2lwLmMKLCBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMsIGFnZW50L21pYmdyb3VwL21lbW9yeS5jCiwgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jLCBhZ2VudC9taWJncm91cC9wYXNzLmMKLCBhZ2VudC9taWJncm91cC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9iZ3AuYywgYWdlbnQvbWliZ3JvdXAvc25tcF9vc3BmLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfcmlwMi5jLCBhZ2VudC9taWJncm91cC9zeXNPUlRhYmxlLmMKLCBhZ2VudC9taWJncm91cC90Y3AuYywgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmMKLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywgYWdlbnQvbWliZ3JvdXAvdm1zdGF0LmMKLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jCiwgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYywgc25tcGxpYi9hc24xLmMKLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi92YWNtLmMsIHNubXBsaWIvdmlldy5jCjoKCiAgIC0gKCouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBtaXNjIHBvcnRpbmcgaW1wcm92ZW1lbnRzICh0aGUgYnNkIGdyb3Vwcywgc3Vub3MsIC4uLikuCiAgICAgLSBzd2l0Y2ggYXV0b19ubGlzdHMgY2FsbGluZyBvcmRlciBvZiBfIHZzIG5vbiBfIGxvb2t1cHMuCiAgICAgLSByZXZlcnNlIGFsbCBzdHJpbmcuaC9zdHJpbmdzLmggaW5jbHVkZSBwb3NzaWJpbGl0aWVzLgogICAKMTk5OC0wMy0yNSAxNjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHB1eC5jOgoKICAgLSAoaHB1eC5jKTogZml4IHdyaXRlX21ldGhvZCBkZWNsYXJhdGlvbi4KICAgCjE5OTgtMDMtMjUgMTM6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkuYywgdjJwYXJ0eS5jLCB2YWNtX3ZhcnMuYwo6CgogICAtICh2MnBhcnR5LmMsIG1pYklJLmMsIHZhY21fdmFycy5jKTogZGVjbGFpciByZWdpc3RyYXRpb24gdmFyaWFibGVzIHN0YXRpY2x5LgogICAKMTk5OC0wMy0yNSAxMjo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYwo6CgogICAtIChNYWtlZmlsZS5pbiwgaW50NjQuYywgaW50NjQuaCwgbWliLmMpOiBDb2RlIGZyb20gRGF2aWQgVC4gUGVya2luczoKICAgICAtIGludGVncmF0ZWQgRGF2aWQncyBjb2RlIHRvIHByaW50IGNvdW50ZXI2NHMgYXMgaW50ZWdlcnMgcmF0aGVyIHRoYW4gaGV4LgogICAKMTk5OC0wMy0yNSAxMDo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIEFkZCBhbiAmIHRvIGFycGNvbS5hY19lbmFkZHIgaW4gbWVtc2V0LgogICAKMTk5OC0wMy0yNSAxMDo0NiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgbGludXguaCk6IG5ldyBkZWZpbmU6IERPTlRfVVNFX05MSVNULgogICAKMTk5OC0wMy0yNSAxMDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGQuYywgc25tcF9hcGkuYyk6IFNwZWxsaW5nIGVycm9ycyBmcm9tIHRoZSBDTVUgY29kZSBmaXhlZC4KICAgCjE5OTgtMDMtMjUgMTA6MzkgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBzaW1wbHkgZG9uJ3QgZGVmaW5lIENBTl9VU0VfTkxJU1Qgb24gbGludXguCiAgIAoxOTk4LTAzLTI1IDEwOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jCiwgbWliZ3JvdXAvcmVnaXN0cnkuYywgbWliZ3JvdXAvcmVnaXN0cnkuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCByZWdpc3RyeS5jLCByZWdpc3RyeS5oKToKICAgICAtIGZpeCB0aGUgcmVnaXN0cnkgbWliIHRvIHVzZSB0aGUgbmV3IG1vZHVsZSBzdHJ1Y3R1cmUuCiAgICAgLSBjcmVhdGUgYSB3b3JraW5nIGZpbmRfc3VidHJlZSgpIGFuZCBmaW5kX3N1YnRyZWVfbmV4dCgpLgogICAKMTk5OC0wMy0yNSAwOToxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLmM6CgogICAtICh0Y3AuYyk6IGluY2x1ZGUgdGNwaXAuaCBmb3IgZGlnaXRhbCB1bml4LgogICAKMTk5OC0wMy0yMiAxODoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBwYXNzLmMsIHByb2MuYywgdmFjbV92YXJzLmM6CgogICAtIChwYXNzLmMsIHByb2MuYywgdmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tIFNpbW9uIEJ1cmdlOgogICAgIC0gbW92ZSBzeXMvdHlwZXMuaCB1cCBmb3IgdWx0cml4LgogICAKMTk5OC0wMy0xOCAxNDowOSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU1ICkKICAgCjE5OTgtMDMtMTggMTM6NTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvcmVhZF9jb25maWcuYywgYWdlbnQvc25tcGQuYwosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBtYW4vbWliX2FwaS4zLAogICB3aW4zMi9jb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcmVhZF9jb25maWcuYywKICAgICBzbm1wZC5jLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXBkLmMsIG1haW4uYywgbWliX2FwaS4zLAogICAgIGNvbmZpZy5oKToKICAgICAtIFNOTVBMSUJQQVRIIC0+IFNOTVBTSEFSRVBBVEgKICAgICAtIGEgcmVhbCBTTk1QTElCUEFUSAogICAgIC0gbWFrZSB0aGUgYWdlbnQgcmVhZCAuY29uZiBmaWxlcyBmcm9tIFNOTVBTSEFSRVBBVEg6U05NUExJQlBBVEguCiAgIAoxOTk4LTAzLTE4IDEzOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGV4dGVuc2libGUuYywgbWVtb3J5LmMsIHBhc3MuYwosIHByb2MuYywgdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmg6CgogICAtIChleHRlbnNpYmxlLmMsIG1lbW9yeS5jLCBwYXNzLmMsIHByb2MuYywgdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgpOgogICAgIC0gd2FpdCBmb3IgcGlkIGFmdGVyIGdldF9leGVjX291dHB1dCgpIHdpdGggbmV3IHdhaXRfb25fZXhlYygpIGZ1bmN0aW9uLgogICAKMTk5OC0wMy0xOCAxMzoxMCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNlZHNjcmlwdC5pbiwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNlZHNjcmlwdC5pbiwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSByZS1udW1iZXJpbmcgb2YgdGhlIG5ldyB0YWJsZSBtb2R1bGVzLgogICAKMTk5OC0wMy0xOCAwOToxNyAgaGFyZGFrZXIKCiAgICogb3YvUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogY2hhbmdlZCBPViBwYXRoJ3MgdG8gbmV3ZXIgcmVsZWFzZSBwYXRocy4KICAgCjE5OTgtMDMtMTEgMTc6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jOgoKICAgLSAoc3lzdGVtLmMpOiBkb24ndCBjaG9tcCBuZXcgbGluZSBvbiByZWFkX2NvbmZpZyB1dGlscy4KICAgCjE5OTgtMDMtMTEgMTU6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBkZXBlbmQgdXBkYXRlLgogICAKMTk5OC0wMy0xMSAxNTo1NiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogbmFtZSB1cGRhdGUuCiAgIAoxOTk4LTAzLTExIDE1OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICAtIChhdXRvX25saXN0LmMpOiBiZXR0ZXIgZGVidWdnaW5nIHByaW50ZnMKICAgCjE5OTgtMDMtMTEgMTQ6NDAgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF9hZ2VudC5jCiwgc25tcF92YXJzLmMsIHNubXBkLmMsIG1pYmdyb3VwL2hvc3RfcmVzLmgKLCBtaWJncm91cC9ocl9kZXZpY2UuYywgbWliZ3JvdXAvaHJfZGV2aWNlLmgsCiAgIG1pYmdyb3VwL2hyX2Rpc2suYywgbWliZ3JvdXAvaHJfZGlzay5oLAogICBtaWJncm91cC9ocl9maWxlc3lzLmMsIG1pYmdyb3VwL2hyX2ZpbGVzeXMuaCwKICAgbWliZ3JvdXAvaHJfbmV0d29yay5jLCBtaWJncm91cC9ocl9uZXR3b3JrLmgsCiAgIG1pYmdyb3VwL2hyX290aGVyLmMsIG1pYmdyb3VwL2hyX3BhcnRpdGlvbi5jLAogICBtaWJncm91cC9ocl9wYXJ0aXRpb24uaCwgbWliZ3JvdXAvaHJfcHJpbnQuYywKICAgbWliZ3JvdXAvaHJfcHJpbnQuaCwgbWliZ3JvdXAvaHJfcHJvYy5jLAogICBtaWJncm91cC9ocl9wcm9jLmgsIG1pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgbWliZ3JvdXAvaHJfc3RvcmFnZS5oLCBtaWJncm91cC9ocl9zd2luc3QuYywKICAgbWliZ3JvdXAvaHJfc3dpbnN0LmgsIG1pYmdyb3VwL2hyX3N3cnVuLmMsCiAgIG1pYmdyb3VwL2hyX3N3cnVuLmgsIG1pYmdyb3VwL2hyX3N5c3RlbS5jLAogICBtaWJncm91cC9ocl9zeXN0ZW0uaCwgbWliZ3JvdXAvaW50ZXJmYWNlcy5jLAogICBtaWJncm91cC9pcC5jLCBtaWJncm91cC9taWJJSS5jLCBtaWJncm91cC9taWJJSS5oCiwgbWliZ3JvdXAvc3lzT1JUYWJsZS5jLCBtaWJncm91cC92MnBhcnR5LmMsCiAgIG1pYmdyb3VwL3YycGFydHkuaCwgbWliZ3JvdXAvdmFjbV92YXJzLmMsCiAgIG1pYmdyb3VwL3ZhY21fdmFycy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgICBob3N0X3Jlcy5oLCBocl9kZXZpY2UuYywgaHJfZGV2aWNlLmgsIGhyX2Rpc2suYywgaHJfZGlzay5oLAogICAgIGhyX2ZpbGVzeXMuYywgaHJfZmlsZXN5cy5oLCBocl9uZXR3b3JrLmMsIGhyX25ldHdvcmsuaCwgaHJfb3RoZXIuYywKICAgICBocl9wYXJ0aXRpb24uYywgaHJfcGFydGl0aW9uLmgsIGhyX3ByaW50LmMsIGhyX3ByaW50LmgsIGhyX3Byb2MuYywKICAgICBocl9wcm9jLmgsIGhyX3N0b3JhZ2UuYywgaHJfc3RvcmFnZS5oLCBocl9zd2luc3QuYywgaHJfc3dpbnN0LmgsCiAgICAgaHJfc3dydW4uYywgaHJfc3dydW4uaCwgaHJfc3lzdGVtLmMsIGhyX3N5c3RlbS5oLCBpbnRlcmZhY2VzLmMsCiAgICAgaXAuYywgbWliSUkuYywgbWliSUkuaCwgc3lzT1JUYWJsZS5jLCB2MnBhcnR5LmMsIHYycGFydHkuaCwKICAgICB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOgogICAgIC0gbWFzc2l2ZSBwcm90b3R5cGluZyBhbmQgLS1XYWxsIGZpeGVzLgogICAgIC0gZml4ZWQgdGhpbmdzIGJyb2tlbiBieSB0aGUgZnJlZWJzZCBwYXRjaCAob25seSBzb21lIEknbSBzdXJlKS4KICAgCjE5OTgtMDMtMTEgMTI6NTYgIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5jLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmM6CgogICAtIChhY2xvY2FsLm00LCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGljbXAuYywKICAgICBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOiBQYXRjaCBmcm9tIEdhcnJldHQKICAgICBXb2xsbWFuOgogICAgIC0gZnJlZWJzZCAzIHN5c2N0bCBpbXBsZW1lbnRhdGlvbnMuCiAgIAoxOTk4LTAzLTExIDEyOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGludGVyZmFjZXMuYywgdGNwLmMsIHVkcC5jLAogICB2YXJfcm91dGUuYywgdmFyX3JvdXRlLmg6CgogICAtIChpbnRlcmZhY2VzLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHZhcl9yb3V0ZS5oKTogUGF0Y2ggZnJvbQogICAgIENyYWlnIEJldmluczoKICAgICAtIHBvcnQgdG8gT3BlbkJTRC4KICAgCjE5OTgtMDMtMTEgMTA6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogc3lzT1JUYWJsZS5jLCBzeXNPUlRhYmxlLmgsIHN5c3RlbS5jCiwgc3lzdGVtLmg6CgogICAtIChzeXNPUlRhYmxlLmMsIHN5c09SVGFibGUuaCwgc3lzdGVtLmMsIHN5c3RlbS5oKToKICAgICAtIGZpeCB0aW1lIHZhbHVlcyBhbmQgbW92ZSBzeXNPUkxhc3RDaGFuZ2VkIHRvIHRoZSBzeXN0ZW0gZ3JvdXAuCiAgIAoxOTk4LTAzLTExIDA5OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhwdXguaCwgaHJfZmlsZXN5cy5oLCBtZW1vcnkuaAosIHNubXBfYmdwLmgsIHNubXBfb3NwZi5oLCBzbm1wX3JpcDIuaCwKICAgc3lzT1JUYWJsZS5oLCB2bXN0YXQuaDoKCiAgIC0gKGhwdXguaCwgaHJfZmlsZXN5cy5oLCBtZW1vcnkuaCwgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmgsCiAgICAgc25tcF9yaXAyLmgsIHN5c09SVGFibGUuaCwgdm1zdGF0LmgpOgogICAgIC0gZmluaXNoIGNvbnZlcnRpbmcgYSBmZXcgb2YgdGhlIGZpbGVzIHRoYXQgTmllbHMgbWlzc2VkLgogICAKMTk5OC0wMy0xMSAwODowNiAgaGFyZGFrZXIKCiAgICogbWlicy8uaW5kZXg6CgogICAtIChtaWJzLy5pbmRleCk6IHVwZGF0ZS4uLgogICAKMTk5OC0wMy0xMSAwODowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9jb21tb25faGVhZGVyLmgsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWNsX3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvYWxhcm0uaCwgYWdlbnQvbWliZ3JvdXAvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmgsIGFnZW50L21pYmdyb3VwL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuaCwgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXZlbnQuaCwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaAosIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5oLCBhZ2VudC9taWJncm91cC9ocl9kaXNrLmgKLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmgsCiAgIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuaCwgYWdlbnQvbWliZ3JvdXAvaHJfcGFydGl0aW9uLmgKLCBhZ2VudC9taWJncm91cC9ocl9wcmludC5oLCBhZ2VudC9taWJncm91cC9ocl9wcm9jLmgKLCBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5oLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5oLAogICBhZ2VudC9taWJncm91cC9ocl9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9pY21wLmgsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9pcC5jLAogICBhZ2VudC9taWJncm91cC9pcC5oLCBhZ2VudC9taWJncm91cC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuaCwgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuaCwgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdGNwLmgsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC92YWNtX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmgKLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuaCwgYXBwcy9zbm1wYnVsa3dhbGsuYwosIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMKLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wLmgsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2ltcGwuaCwgbWFuL01ha2VmaWxlLmluOgoKICAgLSAoKi8qLyovKik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmaXggYXV0b19ubGlzdCBvbiBwcmVjZWVkaW5nIF8gYXJjaGl0ZWN0dXJlcy4KICAgICAtIENoYW5nZSAqYWxsKiBkZWZpbmUgdXNhZ2UgdG8gbmV3IFNOTVBfIGFuZCBBU05fIHByZWZpeGVzLgogICAgIC0gbGVhdmUgbWliIGFjY2VzcyBvcGVuIGlmIG5vIGNvbTJzZWMgc3RhdGVtZW50cyB3ZXJlIGZvdW5kIGluIHNubXBkLmNvbmYuCiAgIAoxOTk4LTAzLTA5IDE3OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYklJLmMsIG1pYklJLmgsIHN5c09SVGFibGUuYwosIHN5c09SVGFibGUuaCwgc3lzdGVtLmMsIHYycGFydHkuYywKICAgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oOgoKICAgLSAobWliSUkuYywgbWliSUkuaCwgc3lzT1JUYWJsZS5jLCBzeXNPUlRhYmxlLmgsIHN5c3RlbS5jLCB2MnBhcnR5LmMsCiAgICAgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oKToKICAgICAtIGltcGxlbWVudCBzeXNPUlRhYmxlLgogICAgIC0gcmVnaXN0ZXIgbWlicyB1bmRlciBpdC4KICAgCjE5OTgtMDMtMDYgMTU6NDggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSByZW1vdmUgc2VjdXJpdHkgdHlwZSBwcm9tcHRzLgogICAKMTk5OC0wMy0wNiAxNTo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaDoKCiAgIC0gKGhvc3RfcmVzLmgpOiBtb3ZlIHNubXBfYXBpLmggdXAgYWJvdmUgc25tcF9pbXBsLmguCiAgIAoxOTk4LTAzLTA2IDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgLSAobWliSUkuaCk6IGFkZCB2YWNtX3ZhcnMuCiAgIAoxOTk4LTAzLTA2IDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtICh1dGlsX2Z1bmNzLmMpOgogICAgIC0gcmVtb3ZlIEdMT0JBTC1TRUNVUklUWSBjaGVja3MuCiAgIAoxOTk4LTAzLTA2IDE0OjAxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWdlbnQva2VybmVsLmMsIGFnZW50L3JlYWRfY29uZmlnLmMKLCBhZ2VudC9yZWFkX2NvbmZpZy5oLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9hY2xfdmFycy5jLCBhZ2VudC9taWJncm91cC9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ldmVudC5jLCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9pcC5jLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5LmgsIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmMKLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYwosIGFnZW50L21pYmdyb3VwL3RjcC5jLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmMsIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYwosIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jCiwgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtYW4vc25tcHRhYmxlLjEsIG1pYnMvLmluZGV4CiwgbWlicy9NYWtlZmlsZS5pbiwgbWlicy9TTk1QLUZSQU1FV09SSy1NSUIudHh0LAogICBtaWJzL1NOTVAtTVBELU1JQi50eHQsIG1pYnMvU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwKICAgbWlicy9TTk1QLVBST1hZLU1JQi50eHQsIG1pYnMvU05NUC1UQVJHRVQtTUlCLnR4dCwKICAgbWlicy9TTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwKICAgbWlicy9TTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYWNsLmgsIHNubXBsaWIvYWNsX3BhcnNlLmMsIHNubXBsaWIvYXNuMS5jCiwgc25tcGxpYi9jb250ZXh0LmgsIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnR5LmgsIHNubXBsaWIvcGFydHlfcGFyc2UuYwosIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9pbXBsLmgsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaAosIHNubXBsaWIvdmlldy5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIGtlcm5lbC5jLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX2FnZW50LmMsCiAgICAgc25tcF92YXJzLmMsIHNubXBkLmMsIGFjbF92YXJzLmMsIGFsYXJtLmMsIGNvbnRleHRfdmFycy5jLCBkaXNrLmMsCiAgICAgZXZlbnQuYywgZXh0ZW5zaWJsZS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgbWliaW5jbC5oLAogICAgIHBhcnR5X3ZhcnMuYywgcGFzcy5jLCBwcm9jLmMsIHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgsIHJvdXRlX3dyaXRlLmMsCiAgICAgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oLAogICAgIHZhcl9yb3V0ZS5jLCB2ZXJzaW9uaW5mby5jLCB2aWV3X3ZhcnMuYywgc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsCiAgICAgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXAuYywgc25tcHRyYXBkLmMsCiAgICAgaWYuYywgaW5ldC5jLCByb3V0ZS5jLCBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdGFibGUuMSwgLmluZGV4LAogICAgIE1ha2VmaWxlLmluLCBTTk1QLUZSQU1FV09SSy1NSUIudHh0LCBTTk1QLU1QRC1NSUIudHh0LAogICAgIFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIFNOTVAtUFJPWFktTUlCLnR4dCwgU05NUC1UQVJHRVQtTUlCLnR4dCwKICAgICBTTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0LAogICAgIE1ha2VmaWxlLmluLCBhY2wuaCwgYWNsX3BhcnNlLmMsIGFzbjEuYywgY29udGV4dC5oLCBjb250ZXh0X3BhcnNlLmMsCiAgICAgbWliLmMsIHBhcnR5LmgsIHBhcnR5X3BhcnNlLmMsIHNubXAuYywgc25tcC5oLCBzbm1wX2FwaS5jLAogICAgIHNubXBfYXV0aC5jLCBzbm1wX2NsaWVudC5jLCBzbm1wX2ltcGwuaCwgc3lzdGVtLmMsIHZhY20uYywgdmFjbS5oLAogICAgIHZpZXcuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBJbXBsZW1lbnQgdGhlIFNOTVB2MyBWaWV3IEJhc2VkIEFjY2VzcyBDb250cm9sIE1vZGVsIChSRkMgMjI3NSkuCiAgICAgLSBoZWFkZXIgZml4ZXMuCiAgICAgLSBiZXR0ZXIgaGVhZGVyLWZpbGUgI2RlZmluZSBuYW1lcyB0byBpbmNsdWRlIFNOTVBfLCBBU05fLCBldGMuIHByZWZpeGVzLgogICAKMTk5OC0wMy0wNCAxNTo0OSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIC0gKENPUFlJTkcpOiBkb2N1bWVudGF0aW9uIHJlcXVpcmVtZW50IGNoYW5nZS4KICAgCjE5OTgtMDItMjUgMDc6MjcgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcGQuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IHJlYWRfY29uZmlnIHBhcnNlcidzIGVuZCBvZiBsaW5lIHByb2JsZW1zLgogICAKMTk5OC0wMi0yMCAxMToxNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBmaXggbWFrZSBkZXBlbmQgdG8gbG9vayBmb3IgYW5kIHN0cmlwIC91c3IvbGliLyouCiAgIAoxOTk4LTAyLTIwIDExOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogZml4IG1ha2UgZGVwZW5kIHRvIGxvb2sgZm9yIGFuZCBzdHJpcCAvdXNyL2xpYi8qLgogICAKMTk5OC0wMi0yMCAwOToxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW46CiAgICAgLSBmaXggaW5jbHVkZSBmaWxlIGRlcGVuZGFuY2llcyBvbiBpcml4IHdpdGggX0tFUk5FTCBkZWZpbmVkLgogICAKMTk5OC0wMi0xOCAxNjo1MSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU0ICkKICAgCjE5OTgtMDItMTggMTY6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTgtMDItMTggMTY6MzMgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBvcGVuYnNkIGRlZmluZXMuCiAgIAoxOTk4LTAyLTE4IDE2OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmMsIHByb2MuYywgdGNwLmMsIHVkcC5jCiwgdmFyX3JvdXRlLmM6CgogICAtIChhdC5jLCBwcm9jLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIGJzZC5oLCBic2RpLmgsIGZyZWVic2QuaCwKICAgICBnZW5lcmljLmgsIGhwdXguaCwgbmV0YnNkLmgpOgogICAgIC0gdHJpZWQgdG8gbWVyZ2Ugc29tZSB0aGluZ3MgaW50byBzLyouaCBkZWZpbmVzIGluc3RlYWQuICBUaGVyZSBpcyBhCiAgICAgICBsb3QgdG8gZ28gc3RpbGwuCiAgIAoxOTk4LTAyLTE4IDE2OjI5ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChhY2NvbmZpZy5oLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIHJlbW92ZWQgdW5uZWVkZWQgc3R1ZmYuCiAgICAgLSBhZGRlZCBvcGVuYnNkLgogICAKMTk5OC0wMi0xOCAxNDozMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogcHJvdG90eXBpbmcgY2hlY2tzLgogICAKMTk5OC0wMi0xOCAxNDozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jKToKICAgICAtIHByb3RvdHlwaW5nIGFuZCAtLVdhbGwgY2hlY2tzLgogICAKMTk5OC0wMi0xOCAxNDoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhY2xfdmFycy5jLCBhdC5jLCBjb250ZXh0X3ZhcnMuYwosIGRpc2suYywgaG9zdF9yZXMuaCwgaHJfZGlzay5jLAogICBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsCiAgIGhyX3N3cnVuLmMsIGhyX3V0aWxzLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jCiwgaW50ZXJmYWNlcy5oLCBpcC5jLCBtZW1vcnkuYywKICAgbWliaW5jbC5oLCBwYXJ0eV92YXJzLmMsIHBhc3MuYywgcHJvYy5jLAogICByZWdpc3RyeS5jLCBzbXV4LmMsIHNubXBfbWliLmMsIHN5c3RlbS5jCiwgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywKICAgdmVyc2lvbmluZm8uYywgdmlld192YXJzLmMsIHZtc3RhdC5jOgoKICAgLSAoYWNsX3ZhcnMuYywgYXQuYywgY29udGV4dF92YXJzLmMsIGRpc2suYywgaG9zdF9yZXMuaCwgaHJfZGlzay5jLAogICAgIGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfdXRpbHMuYywKICAgICBpY21wLmMsIGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oLCBpcC5jLCBtZW1vcnkuYywgbWliaW5jbC5oLAogICAgIHBhcnR5X3ZhcnMuYywgcGFzcy5jLCBwcm9jLmMsIHJlZ2lzdHJ5LmMsIHNtdXguYywgc25tcF9taWIuYywKICAgICBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgdmVyc2lvbmluZm8uYywgdmlld192YXJzLmMsCiAgICAgdm1zdGF0LmMpOgogICAgIC0gbWFzc2l2ZSAtV2FsbCBhbmQgLS1zdHJpY3QtcHJvdG90eXBlcyBjaGVja2luZy4KICAgICAtIGJ6ZXJvIC0+IG1lbXNldC4KICAgCjE5OTgtMDItMTggMTM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYXQuYywgZXhhbXBsZS5jLCBocHV4LmMsCiAgIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywKICAgaHJfbmV0d29yay5jLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywKICAgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLAogICBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMKLCBpcC5jLCBwYXNzLmMsIHJlZ2lzdHJ5LmMsIHNtdXguYwosIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMKLCB2YXJfcm91dGUuYywgd29tYmF0LmM6CgogICAtIChhdC5jLCBleGFtcGxlLmMsIGhwdXguYywgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLAogICAgIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLAogICAgIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAgcGFzcy5jLCByZWdpc3RyeS5jLCBzbXV4LmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsCiAgICAgdmFyX3JvdXRlLmMsIHdvbWJhdC5jKToKICAgICAtIGFsbCBiY29weXMgLT4gbWVtY3B5LgogICAgIC0gaW5jbHVkZSBhIGZldyBleHRyYSBoZWFkZXJzIGZvciBERUJVR1Agc3RhdGVtZW50cy4KICAgCjE5OTgtMDItMTggMTM6MzQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IGF1dGh0cmFwc2VuYWJsZSAtPiBhdXRodHJhcGVuYWJsZS4KICAgCjE5OTgtMDItMTggMTM6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc2suaCwgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC9sb2FkYXZlLmgsIGFnZW50L21pYmdyb3VwL3Byb2MuaCwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoZGlzay5oLCBleHRlbnNpYmxlLmgsIGxvYWRhdmUuaCwgcHJvYy5oLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIHR1cm4gdGhlc2UgbWlicyBpbnRvIHJlYWwgdGFibGVzLiAgUmVxdWlyZWQgY2hhbmdpbmcgdGhlIG1pYiB0aG91Z2guCiAgIAoxOTk4LTAyLTE4IDExOjQ2ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmKTogY2hhbmdlIHRvIERBVEFESVIgZnJvbSBMSUJESVIuCiAgIAoxOTk4LTAyLTE4IDExOjQ1ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiBkZWZpbmUgTElCRElSIGFuZCBEQVRBRElSLgogICAKMTk5OC0wMi0xOCAwODoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywKICAgaXAuYywgdGNwLmMsIHVkcC5jOgoKICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jLCB1ZHAuYywgaXJpeC5oKToKICAgICBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAtIHBvcnQgdG8gaXJpeC4KICAgCjE5OTgtMDItMTggMDg6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIC0gKGF1dG9fbmxpc3QuYyk6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuOgogICAgIC0gZml4IGEgZGVidWdnaW5nIHN0YXRlbWVudCAobWlzc2luZyBhIHZhcmlhYmxlKS4KICAgCjE5OTgtMDItMTggMDg6MTUgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuOgogICAgIC0gY2hlY2sgZm9yIHN5cy9zeXNtcC5oLgogICAKMTk5OC0wMi0xOCAwODowNSAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZiwgbWlicy9VQ0QtU05NUC1NSUIudHh0LAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdm1zdGF0Lmg6CgogICAtIChFWEFNUExFLmNvbmYuZGVmLCB2bXN0YXQuYywgdm1zdGF0LmgsIHVjZF9zbm1wLmgsCiAgICAgVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTHV1ayBkZSBCb2VyOgogICAgIC0gaW1wbG1lbnQgYSB2bXN0YXQgbWliIGdyb3VwIG9uIGxpbnV4LgogICAKMTk5OC0wMi0xNyAwOTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0Y3AuYywgdWRwLmM6CgogICAtICh0Y3AuYywgdWRwLmMpOgogICAgIC0gbmxpc3Qgc3ltYm9sIG5hbWUgZXJyb3JzLgogICAKMTk5OC0wMi0xNyAwOTo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIGF1dG9ubGlzdC5oLCBzbm1wX3ZhcnMuYwo6CgogICAtIChhdXRvX25saXN0LmMsIGF1dG9ubGlzdC5oLCBzbm1wX3ZhcnMuYyk6CiAgICAgLSB1c2UgYXBwcm9wcmlhdGUgbWFsbG9jcywgYW5kIE5VTEwgaW5pdGlhbGl6YXRpb24gb2YgcG9pbnRlcnMuCiAgICAgLSBtYWxsb2MgdGhlIHN5bWJvbCByYXRoZXIgdGhhbiB1c2luZyBhIGZpeGVkIGxlbmd0aC4KICAgICAtIGluc2VydCBkZWJ1Z2dpbmcgY29kZS4KICAgICAtIGVuYWJsZSBwcmludGluZyBvZiB0aGUgbmxpc3QgdHJlZSBpZiBURVNUSU5HIGlzIGRlZmluZWQuCiAgIAoxOTk4LTAyLTE3IDA5OjUwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gdXNlIHNubXBfaXBhZGRyIGluc3RlYWQgb2YgaXBhZGRyIHRvIGF2b2lkIGhwdXggY29uZmxpY3RzLgogICAKMTk5OC0wMi0xMyAwOTowNyAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdHlwbzogYXV0aHRyYXBzZW5hYmxlIC0+IGF1dGh0cmFwZW5hYmxlLgogICAKMTk5OC0wMi0xMSAxNjo0NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHNlZCBkb2Vzbid0IGxpa2UgW2Etel0rIHR5cGUgZXhwcmVzc2lvbnMuCiAgIAoxOTk4LTAyLTExIDA5OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmM6CgogICAtIChocl9uZXR3b3JrLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gc29sYXJpcyBmaXhlcy4KICAgCjE5OTgtMDItMTEgMDk6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmg6CgogICAtIChob3N0X3Jlcy5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIGRvbid0IGluY2x1ZGUgY29uZmlnLmgKICAgCjE5OTgtMDItMTEgMDk6MjggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gcHMgYXV4IHNob3VsZCBkZWZpbmUgYXV4IG5vdCAtYXV4LgogICAKMTk5OC0wMi0xMSAwOToxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC9hdC5jLCBtaWJncm91cC9ocl9wcm9jLmMsCiAgIG1pYmdyb3VwL2hyX3N0b3JhZ2UuYywgbWliZ3JvdXAvbWVtb3J5LmMsCiAgIG1pYmdyb3VwL3RjcC5jLCBtaWJncm91cC91ZHAuYywgbWliZ3JvdXAvdmFyX3JvdXRlLmMKLCBhdXRvX25saXN0LmM6CgogICAtIChnZW5lcmljLmgsIGF1dG9fbmxpc3QuYywgYXQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIG1lbW9yeS5jLAogICAgIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gZml4IGFsbCBteSB0eXBvcyA7LSkuCiAgICAgLSBjcmVhdGUgYXV0b19ubGlzdF92YWx1ZSB0byByZXR1cm4gdGhlIGxvb2tlZC11cCB2YWx1ZS4KICAgCjE5OTgtMDItMDkgMTE6MTkgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlKTogY2hlY2sgZm9yIGlvY3Rscy5oLgogICAKMTk5OC0wMi0wOSAxMToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogIGluY2x1ZGUgaW9jdGxzLmggaWYgYXZhaWxhYmxlLgogICAKMTk5OC0wMi0wOSAxMToxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogY2hlY2sgZm9yIGlvY3Rscy5oCiAgIAoxOTk4LTAyLTA5IDExOjE3ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy40LnByZTMgKQogICAKMTk5OC0wMi0wOSAxMTowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBmaXggcHJvdG90eXBlcyBvbiBteSBicm9rZW4gdGFibGUgd2Fsa2luZyByb3V0aW5lcy4KICAgCjE5OTgtMDItMDkgMTE6MDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gY2hhbmdlZCAtLXdpdGgtc2hhcmVkLWxpYnJhcmllcyB0byAtLWVuYWJsZS1zaGFyZWQgdG8gbWF0Y2ggb3RoZXIgcGtncy4KICAgICAtIGRpc3BsYXkgYXJndW1lbnRzIGZvdW5kIGZvciAtLWVuYWJsZS1zaGFyZWQuCiAgIAoxOTk4LTAyLTA5IDExOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0Lmg6CgogICAtIChhdXRvX25saXN0LmgpOiBwcm90b3R5cGUgd3JhcHBlci4KICAgCjE5OTgtMDItMDkgMTE6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYXQuYywgZGlzay5jLCBlcnJvcm1pYi5jLAogICBleHRlbnNpYmxlLmMsIGhwdXguYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMKLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLAogICBpbnRlcmZhY2VzLmMsIGlwLmMsIGtlcm5lbF9zdW5vczUuYywgbG9hZGF2ZS5jCiwgbWVtb3J5LmMsIHByb2MuYywgdGNwLmMsIHVkcC5jLAogICB2YXJfcm91dGUuYzoKCiAgIC0gKGF0LmMsIGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jLCBocHV4LmMsIGhyX3Byb2MuYywKICAgICBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICBrZXJuZWxfc3Vub3M1LmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsIHByb2MuYywgdGNwLmMsIHVkcC5jLAogICAgIHZhcl9yb3V0ZS5jKToKICAgICAtIHVzZSBhdXRvX25saXN0LgogICAKMTk5OC0wMi0wNiAxNzoxMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvYXV0b19ubGlzdC5oLAogICBhZ2VudC9hdXRvbmxpc3QuaCwgYWdlbnQva2VybmVsLmMsIGFnZW50L3NubXBfdmFycy5jCiwgYWdlbnQvbWliZ3JvdXAvaXAuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYXV0b19ubGlzdC5jLCBhdXRvX25saXN0LmgsIGF1dG9ubGlzdC5oLCBrZXJuZWwuYywgc25tcF92YXJzLmMsIGlwLmMpOgogICAgIC0gY3JlYXRlZCBhIG5ldyBhdXRvX25saXN0IGZ1bmN0aW9uIGFuZCB1c2UgaXQgaW4gaXAuYy4KICAgCjE5OTgtMDItMDYgMTM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suYzoKCiAgIC0gKGhyX2Rpc2suYyk6IGNsb3NlKCkgZ290IGNhdWdodCBpbnNpZGUgYW4gZWxzZSBpdCBzaG91bGRuJ3QgaGF2ZSBkdWUKICAgICB0byBhbiBpZmRlZiBlcnJvci4KICAgCjE5OTgtMDItMDYgMTM6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsCiAgIGlwLmMsIHRjcC5jLCB1ZHAuYzoKCiAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMpOiBwcm90ZWN0IGFnYWluc3Qgbmxpc3QuaAogICAKMTk5OC0wMi0wMiAwODo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gSm9obiBIYXdraW5zb246CiAgICAgLSBmaXggdHlwbyBpbiBjb25maWd1cmUgZm9yIHNoYXJlZCBsaWJyYXJ5IGV4dGVuc2lvbiB3L28gc2hhcmVkIGxpYnJhcmllcy4KICAgCjE5OTgtMDEtMzAgMTU6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXAuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcC5jKTogZml4IGRlZmF1bHQgcG9ydCBmb3Igc25tcHRyYXAuCiAgIAoxOTk4LTAxLTMwIDE0OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBmaW5pc2ggbGludXggcHJvYmxlbXMgYW5kIHVzZSBpZl9zcGVlZC4KICAgCjE5OTgtMDEtMzAgMTQ6MzEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBpZl9zcGVlZC4KICAgCjE5OTgtMDEtMzAgMTM6NTAgIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZToKCiAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZ3VyZSk6IGRlZmluZSBpZm5ldCBmb3IgbGludXguCiAgIAoxOTk4LTAxLTMwIDEzOjQ5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBJIGNhbid0IHJlYWxseSBoYXZlIGZvcmdvdHRlbiBTaW1vbidzIG5hbWUgaW4gdGhlIGxpc3QKICAgICBjb3VsZCBJPwogICAKMTk5OC0wMS0zMCAxMDo1NSAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmUyICkKICAgCjE5OTgtMDEtMzAgMTA6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvcGFzcy5jLCBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoZGlzay5jLCBob3N0X3Jlcy5oLCBwYXNzLmMsIHJlZ2lzdHJ5LmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLAogICAgIHZlcnNpb25pbmZvLmMsIHNubXBfYXBpLmgpOgogICAgIC0gaW5jbHVkZSBuZXRpbmV0L2luLmggZm9yIGFkZHJlc3Mgc3RydWN0dXJlLgogICAKMTk5OC0wMS0zMCAxMDo0MyAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IGNoYW5nZSBtb2R1bGUgaW5kZXhpbmcgdG8gdXNlIG9pZCBpbnN0ZWFkIG9mIGEgbnVtZXJpYy4KICAgCjE5OTgtMDEtMzAgMTA6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogcmVnaXN0cnkuYywgcmVnaXN0cnkuaDoKCiAgIC0gKHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgpOiBiZWdpbiBtdW5naW5nIGZvciBuZXcgaGllcmFyY2h5LgogICAKMTk5OC0wMS0zMCAxMDo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgKLCB2YXJfc3RydWN0Lmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHZhcl9zdHJ1Y3QuaCk6CiAgICAgLSBtZXJnZSBEYXZlJ3MgY29kZSB3aXRoIG1pbmUuICBTdGlsbCBhIGZldyBidWdzIHRvIHdvcmsgdGhyb3VnaC4KICAgCjE5OTgtMDEtMzAgMTA6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Bhc3MuYzoKCiAgIC0gKHBhc3MuYyk6IHB1dCBwYXNzX2NvbWFwcmUgaGVyZS4KICAgCjE5OTgtMDEtMzAgMDk6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jLCBhZ2VudC9taWJncm91cC9tZW1vcnkuaCwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCwgbWVtb3J5LmMsIG1lbW9yeS5oKTogUGF0Y2ggZnJvbSBMdXVrIGRlIEJvZXI6CiAgICAgLSByZXBvcnQgY2FjaGVkLCBidWZmZXIsIGFuZCBzaGFyZWQgc3RhdGlzdGljcyBmb3IgbGludXguCiAgIAoxOTk4LTAxLTMwIDA4OjU3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdGVzdCBmb3IgJ3BzIGF1eCcgKHJlZGhhdCA1LjApLgogICAKMTk5OC0wMS0yMyAxNjozNCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0LCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3Bhc3MuYywgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC92YXJfc3RydWN0LmgsIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHZhcl9zdHJ1Y3QuaCwKICAgICBleHRlbnNpYmxlLmMsIHBhc3MuYywgcmVnaXN0cnkuYywgcmVnaXN0cnkuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBtYWtlIHRoZSBtaWIgcmVnaXN0cnkgcmVjb3JkIGFuZCBkaXNwbGF5IGEgbWliIG1vZHVsZSBuYW1lIGFzIHdlbGwuCiAgIAoxOTk4LTAxLTIzIDE2OjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmMsIGRpc2suYywgaG9zdF9yZXMuaCwKICAgaHJfb3RoZXIuaCwgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWNkX3NubXAuaCwKICAgdWRwLmMsIHZlcnNpb25pbmZvLmM6CgogICAtIChhdC5jLCBkaXNrLmMsIGhvc3RfcmVzLmgsIGhyX290aGVyLmgsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICAgIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWNkX3NubXAuaCwgdWRwLmMsIHZlcnNpb25pbmZvLmMpOgogICAgIC0gI2luY2x1ZGUgInNubXBfYXBpLmgiCiAgIAoxOTk4LTAxLTIzIDE2OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5jLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQsCiAgIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5Lmg6CgogICAtIChyZWdpc3RyeS5bY2hdLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGNyZWF0ZSBhIG5ldyB0YWJsZSBhdCB1Y2RhdmlzLjEwMyB0byBkaXNwbGF5IHJlZ2lzdGVyZWQgbWlicy4KICAgCjE5OTgtMDEtMjMgMTY6MTEgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLCByZWFkX2NvbmZpZy5jLAogICByZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsCiAgIG1pYmdyb3VwL3Bhc3MuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwKICAgICBleHRlbnNpYmxlLmMsIHBhc3MuYyk6CiAgICAgLSBjcmVhdGUgbmV3IGZ1bmN0aW9uczoKICAgICAgIC0gcmVnaXN0ZXJfc3VidHJlZSgpCiAgICAgICAtIHJlZ2lzdGVyX21pYigpCiAgICAgICAtIHVucmVnaXN0ZXJfbWliKCkuCiAgICAgLSBnZXQgcmlkIG9mIHJlYWRfY29uZmlnIHNwZWNpYWwgc3R1ZmYgZm9yIGV4dGVuc2liaWxpdHkgYW5kIHB1dCBpdAogICAgICAgaW4gdGhlaXIgb3duIHN1Ym1vZHVsZXMgd2hpY2ggbm93IGNhbGwgcmVnaXN0ZXJfbWliKCkuCiAgIAoxOTk4LTAxLTIzIDA4OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGRvbid0IGNsb3NlIGZpbGUgZGVzY3JpcHRvciBpbiBsaW51eCdzIEZJTEVfVE9fQlVGIG1hY3JvLgogICAKMTk5OC0wMS0yMSAyMjowNSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIGNyZWF0ZSBtLyBhbmQgcy8gZGlyZWN0b3JpZXMgYW5kIHVzZSB0aGVtIGZvciBzdXBwbGVtZW50YWwgY29uZmlnCiAgICAgICBpbmNsdWRlIGZpbGVzIGJhc2VkIG9uIHRoZSBjb25maWcuZ3Vlc3Mgb3V0cHV0LgogICAKMTk5OC0wMS0yMSAxNzozMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAqL01ha2VmaWxlLmluKToKICAgICAtIERvIGEgYmV0dGVyIHZlcnNpb24gb2Ygc2hsaWIgc3VwcG9ydC4gIFNob3VsZCBiZSB1c2VhYmxlIG5vdyBhdCBsZWFzdC4KICAgCjE5OTgtMDEtMjEgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZGlzay5jLCBlcnJvcm1pYi5jLCBleHRlbnNpYmxlLmMKLCBpbnRlcmZhY2VzLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsCiAgIHBhc3MuYywgcHJvYy5jLCBzeXN0ZW0uYywgdXRpbF9mdW5jcy5jLAogICB2YXJfcm91dGUuYywgdmVyc2lvbmluZm8uYzoKCiAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jLCBpbnRlcmZhY2VzLmMsIGxvYWRhdmUuYywKICAgICBtZW1vcnkuYywgcGFzcy5jLCBwcm9jLmMsIHN5c3RlbS5jLCB1dGlsX2Z1bmNzLmMsIHZhcl9yb3V0ZS5jLAogICAgIHZlcnNpb25pbmZvLmMpOgogICAgIC0gaW5jbHVkZSBzdHJ1Y3QuaCBleHBsaWNpdGx5LgogICAKMTk5OC0wMS0yMSAxMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jCiwgc25tcGQuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMpOgogICAgIC0gaW5jbHVkZSBzdHJ1Y3QuaCBleHBsaWNpdGx5LgogICAKMTk5OC0wMS0yMSAxMToxMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNjb25maWcuaCwKICAgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBsb2NhbC9NYWtlZmlsZS5pbiwgbWFuL01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgICAgY29uZmlndXJlLmluKToKICAgICAtIGJlZ2luIHN1cHBvcnQgZm9yIGNyZWF0aW5nIGFuZCB1c2luZyBzaGFyZWQgbGlicmFyaWVzLgogICAgIC0gYWxsIE1ha2VmaWxlcyBub3cgaW5jbHVkZSBhIE1ha2VmaWxlLnRvcCBmb3IgZWFzaWVyIGZ1dHVyZSBnbG9iYWwgY2hhbmdlcy4KICAgCjE5OTgtMDEtMjEgMTE6MDggIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICAtIChDT1BZSU5HKTogdXBkYXRlLgogICAKMTk5OC0wMS0xNiAwOTo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIFNoZXNoYWRyaSBZYWdhdGk6CiAgICAgLSBzaWduYWwgYSB0cmFwICgyKSB3aGVuIHRoZSBhZ2VudCBpcyBzaHV0IGRvd24uCiAgIAoxOTk4LTAxLTEyIDA5OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAtIChrZXJuZWxfc3Vub3M1LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gaW5jcmVhc2UgYnVmZmVyIHNpemUgdG8gaW5jcmVhc2UgbWF4IGludGVyZmFjZXMgcmVwb3J0ZWQgb24gU29sYXJpcy4KICAgCjE5OTgtMDEtMTIgMDk6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBVbmRpZCBhbm9uLWNoaWxkcmVuIGNoYW5nZS4KICAgCjE5OTgtMDEtMTIgMDk6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIG1pYi5jLCBzbm1wX2FwaS5oLAogICBzbm1wX2ltcGwuaCwgc3lzdGVtLmg6CgogICAtIChhc24xLmMsIG1pYi5jLCBzbm1wX2FwaS5oLCBzbm1wX2ltcGwuaCwgc3lzdGVtLmgpOiBQYXRjaCBmcm9tIE5pZWxzCiAgICAgQmFnZ2VzZW46CiAgICAgLSBoZWFkZXIgY2hhbmdlcyBhbmQgYm9vbGVhbiBjaGVjayBjb3JyZWN0aW9ucy4KICAgCjE5OTgtMDEtMTIgMDk6NDEgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIHNubXBkLmMKOgoKICAgLSAocmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gaGVhZGVyIGZpeGVzLgogICAgIC0gc25tcF9wZXJyb3IgdXNhZ2UuCiAgIAoxOTk4LTAxLTEyIDA5OjQwICBoYXJkYWtlcgoKICAgKiBGQVEsIElOU1RBTEwsIE1ha2VmaWxlLmluOgoKICAgLSAoRkFRLCBJTlNUQUxMLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBEb2N1bWVudGF0aW9uIHVwZGF0ZSB0byBmaXggcGF0aHMgZnJvbSByZWNlbnQgY2hhbmdlcy4KICAgCjE5OTgtMDEtMTIgMDk6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYWxhcm0uYywgYXQuYywgY29udGV4dF92YXJzLmMKLCBldmVudC5jLCBocl9kZXZpY2UuYywgaHJfZmlsZXN5cy5jLAogICBocl9wYXJ0aXRpb24uYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywKICAgaHJfc3dydW4uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgIHByb2MuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywKICAgdmFyX3JvdXRlLmM6CgogICAtIChhbGFybS5jLCBhdC5jLCBjb250ZXh0X3ZhcnMuYywgZXZlbnQuYywgaHJfZGV2aWNlLmMsIGhyX2ZpbGVzeXMuYywKICAgICBocl9wYXJ0aXRpb24uYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaWNtcC5jLAogICAgIGludGVyZmFjZXMuYywgaXAuYywgcHJvYy5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6CiAgICAgUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIEZpeCBoZWFkZXJzIGZvciBGcmVlQlNEIGFuZCBOZXRCU0QuCiAgIAoxOTk4LTAxLTEyIDA5OjE5ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYwosIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLAogICBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLAogICBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywgc25tcHdhbGsuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsCiAgICAgc25tcHRyYXBkLmMsIHNubXB3YWxrLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gcmVtb3ZlIHVudXNlZCBoZWFkZXJzLgogICAgIC0gc25tcF9wZXJyb3IgY2hhbmdlcy4KICAgCjE5OTgtMDEtMTIgMDk6MTkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46IGxpbmsgZGlyZWN0bHkgdG8gbGliLgogICAKMTk5OC0wMS0xMiAwOToxOCAgaGFyZGFrZXIKCiAgICogbWFuLzogbWliX2FwaS4zLCBzbm1wX2FwaS4zOgoKICAgLSAobWliX2FwaS4zLCBzbm1wX2FwaS4zKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGRvYyB1cGRhdGUgdG8gcmVmbGVjdCBtb3ZlZCBoZWFkZXJzLgogICAKMTk5OC0wMS0xMiAwOToxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6ICBmaXggYW5vbl9jaGlsZHJlbiBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MuCiAgIAoxOTk4LTAxLTA1IDE3OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogc3dhcCBhcmdzIHRvIG1lcmdlX2Fub25fY2hpbGRyZW4oKS4KICAgCjE5OTgtMDEtMDUgMTY6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZpeCBhc24xX2J1aWxkX29iamlkLgogICAKMTk5OC0wMS0wNSAxMzoyOCAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBzbm1wdjMKICAgCjE5OTgtMDEtMDUgMTM6MjggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogcHV0IGluaXRfbWliIGJhY2sgaW4gcGxhY2UgKG9wcHMpLgogICAKMTk5OC0wMS0wNSAxMzoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBhZGQgYSBmaW5kX21vZHVsZSgpIHJvdXRpbmUuCiAgIAoxOTk4LTAxLTA1IDEzOjI3ICBoYXJkYWtlcgoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgLSAobWliX2FwaS4zKTogY2hhbmdlICJhbGwiIHRvICJBTEwiLgogICAKMTk5Ny0xMi0zMCAxNzowMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IENyZWF0ZSBhIGdyYXBoaW5nIHdpZGdldC4KICAgCjE5OTctMTItMzAgMTQ6MDAgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOgogICAgIC0gbmV3IGNvbW1hbmQ6IHRhYmxlIHRvIGRpc3BsYXkgc25tcHRhYmxlcyBhcyBhIHRhYmxlLgogICAgIC0gbWlzYy4uLgogICAKMTk5Ny0xMi0yOSAwOTozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IEZpcnN0IGltcGxlbWVudGF0aW9uLgogICAKMTk5Ny0xMi0yMyAxNjozMCAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oLCBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmUxICkKICAgCjE5OTctMTItMjMgMTU6NTkgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBDcmVhdGUgYSBtaWIgdmFyaWFibGUgdG8gc2V0L3JlcG9ydCBpZiBkZWJ1Z2dpbmcKICAgICBpcyBvbiBvciBvZmYuCiAgIAoxOTk3LTEyLTIzIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHZlcnNpb25pbmZvLmMsIHZlcnNpb25pbmZvLmg6CgogICAtICh2ZXJzaW9uaW5mby5jLCB2ZXJzaW9uaW5mby5oKTogQ3JlYXRlIGEgbWliIHZhcmlhYmxlIHRvIHNldC9yZXBvcnQKICAgICBpZiBkZWJ1Z2dpbmcgaXMgb24gb3Igb2ZmLgogICAKMTk5Ny0xMi0yMyAxNToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC9hdC5jLCBtaWJncm91cC9hdC5oLAogICBtaWJncm91cC9ob3N0X3Jlcy5oLCBtaWJncm91cC9pY21wLmgsCiAgIG1pYmdyb3VwL2ludGVyZmFjZXMuYywgbWliZ3JvdXAvaW50ZXJmYWNlcy5oLAogICBtaWJncm91cC9pcC5oLCBtaWJncm91cC90Y3AuYywgbWliZ3JvdXAvdGNwLmgsCiAgIG1pYmdyb3VwL3VkcC5jLCBtaWJncm91cC91ZHAuaCwgcmVhZF9jb25maWcuYywKICAgc25tcF92YXJzLmM6CgogICAtIChhdC5jLCBhdC5oLCBob3N0X3Jlcy5oLCBpY21wLmgsIGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oLCBpcC5oLAogICAgIHRjcC5jLCB0Y3AuaCwgdWRwLmMsIHVkcC5oLCByZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYyk6CiAgICAgLSBjbGVhbiB1cCByZXF1aXJlZCBoZWFkZXJzIGZvciBsaW51eC4KICAgCjE5OTctMTItMjMgMTQ6NDYgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvYXQuYywgbWliZ3JvdXAvaWNtcC5jLAogICBtaWJncm91cC9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL2lwLmMsCiAgIG1pYmdyb3VwL3NubXBfbWliLmMsIG1pYmdyb3VwL3N5c3RlbS5jLCBtaWJncm91cC90Y3AuYwosIG1pYmdyb3VwL3VkcC5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYwo6CgogICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYyk6CiAgICAgLSBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIGJyZWFrIHVwIGNvbW1vbl9oZWFkZXIuaC4KICAgCjE5OTctMTItMjMgMTQ6NDQgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBkLjEuZGVmLCBzbm1wdHJhcGQuODoKCiAgIC0gKHNubXBkLjEuZGVmLCBzbm1wdHJhcGQuOCk6IGRlYnVnZ2luZyBmbGFnIGFkZGl0aW9ucy4KICAgCjE5OTctMTItMjMgMTQ6NDIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzay5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hwdXguYywgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmMsIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuYywgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pcC5jLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L21pYmdyb3VwL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfYmdwLmMsIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfb3NwZi5jLCBhZ2VudC9taWJncm91cC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL3RjcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuYywgYWdlbnQvbWliZ3JvdXAvd29tYmF0LmMsCiAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMKLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9pbXBsLmgsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmg6CgogICAtICgqKTogVHVybiBhbGwgZGVidWdnaW5nIHJvdXRpbmVzIGludG8gbGlicmFyeSBjYWxscyB0aGF0IGNhbiBiZQogICAgIHR1cm5lZCBvbiBhbmQgb2ZmIGF0IHJ1biB0aW1lLgogICAgIC0gREVCVUdQKCkgaXMgbm93IGEgdHlwaWNhbCBwcmludGYgc3R5bGUgZnVuY3Rpb24gYW5kIGlzIHVzZWQgZXZlcnl3aGVyZS4KICAgICAtIHZvaWQgc25tcF9zZXRfZG9fZGVidWdnaW5nKGludCkuCiAgICAgLSBpbnQgc25tcF9nZXRfZG9fZGVidWdnaW5nKCkuCiAgIAoxOTk3LTEyLTIzIDE0OjQwICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBBZGQgVGVkIFJ1bGUgdG8gY29kZXJzIGxpc3QuCiAgIAoxOTk3LTEyLTIzIDEyOjQ4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOgogICAgIC0gQ2hhbmdlIC1mIGZsYWcgdG8gLWwgYW5kIG1ha2UgLWYgbm8tZm9yay4KICAgICAtIGZpeCBwYXRjaCB3aGljaCBtdW5nZWQgYWJpbGl0eSB0byBnZW5lcmF0ZSBib3RoIC1QIGFuZCAtcyBzaW11bHRhbmVvdXNseS4KICAgCjE5OTctMTItMjMgMTI6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gVGVkIFJ1bGU6CiAgICAgLSBVc2Ugc3lzbG9nIG9wdGlvbiBMT0dfUElEIG9uIHN0YXJ0dXAuCiAgICAgLSBmb3JrIGlmIHN5c2xvZyBlbmFibGVkLgogICAgIC0gRW5hYmxlIGxvZ2dpbmcgdG8gb3RoZXIgc3lzbG9nIGZhY2lsaXRpZXMuCiAgICAgLSBwcmludCBhbGwgdHJhcCBkYXRhIHRvIGEgc2luZ2xlIHN5c2xvZyBsaW5lLgogICAKMTk5Ny0xMi0yMyAxMTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHB1eC5jOgoKICAgLSAoaHB1eC5jKTogI2lmZGVmJ2VkIG91dCB1bnVzZWQgd3JpdGVIUCBmdW5jdGlvbi4KICAgCjE5OTctMTItMjMgMTE6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzbm1wbGliL3N5c3RlbS5jKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KICAgCjE5OTctMTItMjMgMTE6NDIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIC0gKHNubXB0cmFwLmMpOiBQYXRjaCBmcm9tIEpvaGFubmVzIEdyb3NlbjoKICAgICAtIGZpeCBub24tZXhpc3RlbnQgbmxpc3QuaCBwcm9ibGVtcyB1bmRlciBsaW51eCByZWRoYXQgNS4wLgogICAKMTk5Ny0xMi0yMyAxMTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC9kaXNrLmMsIG1pYmdyb3VwL2Vycm9ybWliLmMsCiAgIG1pYmdyb3VwL2V4dGVuc2libGUuYywgbWliZ3JvdXAvaHJfZmlsZXN5cy5jLAogICBtaWJncm91cC9ocl9wcm9jLmMsIG1pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgbWliZ3JvdXAvaHJfc3dydW4uYywgbWliZ3JvdXAvaHJfc3lzdGVtLmMsCiAgIG1pYmdyb3VwL2xvYWRhdmUuYywgbWliZ3JvdXAvbWVtb3J5LmMsCiAgIGNvbW1vbl9oZWFkZXIuaDoKCiAgIC0gKG1pYmdyb3VwLyouYywgY29tbW9uX2hlYWRlci5oKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KICAgCjE5OTctMTItMjMgMTE6NDEgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gSm9oYW5uZXMgR3Jvc2VuOgogICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCiAgIAoxOTk3LTEyLTIzIDExOjM1ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc2Vkc2NyaXB0LmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNlZHNjcmlwdC5pbik6IEJTREkgZGVmaW5pdGlvbiBmaXhlcy4KICAgCjE5OTctMTItMjMgMTE6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYzoKCiAgIC0gKGhyX2ZpbGVzeXMuYyk6IFNvbGFyaXMgc3BlY2lmaWMgZml4ZXMuCiAgIAoxOTk3LTEyLTIzIDExOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jOgoKICAgLSAoaHJfc3dydW4uYyk6IENvcnJlY3QgYSBub24tY2FzdGVkIG1hbGxvYy4KICAgCjE5OTctMTItMTUgMTU6MDcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChVQ0QtZmllbGRzLCBvaWRfdG9fc3ltLmluLCBvaWRfdG9fdHlwZS5pbiwgc25tcF9wYXJzZV9hcmdzLmMsIGFjY29uZmlnLmgpOgogICAgIC0gUGF0Y2ggZnJvbSBUQU5BS0EgVGFrYXNoaToKICAgICAgIC0gc3VwcG9ydCBtb3JlIE9TIHR5cGVzIGluIHRoZSBvdi8gZGlyZWN0b3J5IGZpbGVzLgogICAgICAgLSBtaXN0YWtlOiAgYnNkaSB3YXMgZ2V0dGluZyBkZWZpbmVkIGFzIGlyaXguCiAgICAgICAtIGRvbid0IGNvcmUgZHVtcCBvbiAtdiB3aXRob3V0IGFueSBhcmd1bWVudHMuCiAgIAoxOTk3LTEyLTE1IDE1OjA3ICBoYXJkYWtlcgoKICAgKiBvdi86IFVDRC1maWVsZHMsIG9pZF90b19zeW0uaW4sIG9pZF90b190eXBlLmluOgoKICAgLSAoVUNELWZpZWxkcywgb2lkX3RvX3N5bS5pbiwgb2lkX3RvX3R5cGUuaW4pOiBQYXRjaCBmcm9tIFRBTkFLQSBUYWthc2hpOgogICAgIC0gc3VwcG9ydCBtb3JlIE9TIHR5cGVzIGluIHRoZSBvdi8gZGlyZWN0b3J5IGZpbGVzLgogICAgIC0gbWlzdGFrZTogIGJzZGkgd2FzIGdldHRpbmcgZGVmaW5lZCBhcyBpcml4LgogICAgIC0gZG9uJ3QgY29yZSBkdW1wIG9uIC12IHdpdGhvdXQgYW55IGFyZ3VtZW50cy4KICAgCjE5OTctMTItMTUgMTE6MTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvYXQuYywgbWliZ3JvdXAvZXhhbXBsZS5jLAogICBtaWJncm91cC9ocl9wcm9jLmMsIG1pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgbWliZ3JvdXAvaHJfc3dydW4uYywgbWliZ3JvdXAvaHJfc3lzdGVtLmMsCiAgIG1pYmdyb3VwL2ljbXAuYywgbWliZ3JvdXAvaW50ZXJmYWNlcy5jLAogICBtaWJncm91cC9pbnRlcmZhY2VzLmgsIG1pYmdyb3VwL2lwLmMsCiAgIG1pYmdyb3VwL2xvYWRhdmUuYywgbWliZ3JvdXAvbWVtb3J5LmMsCiAgIG1pYmdyb3VwL3JvdXRlX3dyaXRlLmMsIG1pYmdyb3VwL3RjcC5jLCBtaWJncm91cC91ZHAuYwosIG1pYmdyb3VwL3Zhcl9yb3V0ZS5jLCBtaWJncm91cC93b21iYXQuYywKICAgY29tbW9uX2hlYWRlci5oOgoKICAgLSAoYXQuYywgZXhhbXBsZS5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsCiAgICAgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaCwgaXAuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywKICAgICByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCB3b21iYXQuYywgY29tbW9uX2hlYWRlci5oKToKICAgICAtIFBhdGNoIGZyb20gU2ltb24gTGVpbmVuIHRvIGltcHJvdmUgaXJpeCA2LjIgc3VwcG9ydC4KICAgCjE5OTctMTItMTUgMTE6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC5oLCB1Y2Rfc25tcC5oLCB2MnBhcnR5Lmg6CgogICAtIChob3N0LmgsIHVjZF9zbm1wLmgsIHYycGFydHkuaCk6CiAgICAgLSB1c2UgY29uZmlnX2FkZF9taWIoKS4KICAgCjE5OTctMTItMTUgMTE6MDggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBuZXcgbWFjcm8gdG8gY2hhbmdlIGRlZmF1bHQgTUlCUyB3aGVuIG1vZHVsZXMgYXJlIGNvbXBpbGVkOgogICAgICAgY29uZmlnX2FkZF9taWIoKS4KICAgCjE5OTctMTItMDUgMTQ6MzAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB3YXJuIGluc3RlYWQgb2YgZXJyb3IgZm9yIGNvbmZpZ19yZXF1aXJlIG1hY3JvJ3MuCiAgIAoxOTk3LTEyLTA1IDExOjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXBfcGFyc2VfYXJncy5oLAogICBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywKICAgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wdGFibGUuYywKICAgc25tcHRlc3QuYywgc25tcHRyYXAuYywgc25tcHdhbGsuYzoKCiAgIC0gKGFwcHMvKi5jKTogc3VwcG9ydCByYW5kb20gYWNjZXNzIHJlcXVlc3RzIG9uIGFsbCBhcHBzIHZpYSAtUiBzd2l0Y2guCiAgIAoxOTk3LTEyLTA1IDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIG1ha2UgdHJhcCB2YXJpYWJsZXMgbG9uZydzIG5vdCBpbnRzIGZvciA2NGJpdCBtYWNoaW5lcyB0byBtYXRjaAogICAgICAgYXNuX2J1aWxkX2ludCBmdW5jdGlvbnMuCiAgIAoxOTk3LTEyLTAxIDEyOjQ0ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0gKCopOiAzLjMuMSBicmFuY2ggbWVyZ2VkIGludG8gbWFpbiBkZXZlbG9wbWVudCBicmFuY2guCiAgIAoxOTk3LTEyLTAxIDEyOjM5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0cmFwZC5jLCBtYW4vc25tcF9hcGkuMwosIG1pYnMvUkZDMTI3MS1NSUIudHh0LCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKCopOiAzLjMuMSBicmFuY2ggbWVyZ2VkIGludG8gbWFpbiBkZXZlbG9wbWVudCBicmFuY2guCiAgIAoxOTk3LTEyLTAxIDEyOjMyICBoYXJkYWtlcgoKICAgKiBGQVEsIElOU1RBTEwsIE5FV1MsIFJFQURNRSwKICAgYWNjb25maWcuaCwgYnVnLXJlcG9ydCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgKLCBhZ2VudC9taWJncm91cC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYwosIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYwosIGFnZW50L21pYmdyb3VwL2hyX3V0aWxzLmMsIGFnZW50L21pYmdyb3VwL3Byb2MuYwosIGFnZW50L21pYmdyb3VwL3NtdXguYzoKCiAgIC0gKCopOiAzLjMuMSBicmFuY2ggbWVyZ2VkIGludG8gbWFpbiBkZXZlbG9wbWVudCBicmFuY2guCiAgIAoxOTk3LTExLTE3IDA4OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHBhcnR5X3ZhcnMuYyAoRXh0LTMtMy1wYXRjaGVzLjEpLCBwYXJ0eV92YXJzLmMKOgoKICAgLSAocGFydHlfdmFycy5jKTogdXNlIHN0cmluZ3MuaCBkZWZpbmUgbm90IHN0cmluZy5oLgogICAKMTk5Ny0xMS0xNCAxMjozNiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMyApCiAgIAoxOTk3LTExLTE0IDEyOjM2ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiB2ZXJzaW9uIHVwZGF0ZS4KICAgCjE5OTctMTEtMTQgMTI6MzUgIGhhcmRha2VyCgogICAqIEZBUSwgTkVXUywgUkVBRE1FOgoKICAgLSAoRkFRLCBORVdTLCBSRUFETUUpOiBsYXN0IGRvY3VtZW50YXRpb24gdXBkYXRlcy4KICAgCjE5OTctMTEtMTQgMTI6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jOgoKICAgLSAod29tYmF0LmMpOiBxdWljayBkb2MgY2hhbmdlLgogICAKMTk5Ny0xMS0xNCAwODozMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogY29kZXIgbGlzdCB1cGRhdGUuCiAgIAoxOTk3LTExLTE0IDA4OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC93b21iYXQuYzoKCiAgIC0gKHdvbWJhdC5jKTogY29kZSBjb21tZW50cyBmcm9tIEFsYW4gQmF0aWUuCiAgIAoxOTk3LTExLTEyIDIwOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL3Zhcl9yb3V0ZS5jLCByZWFkX2NvbmZpZy5jOgoKICAgLSAodmFyX3JvdXRlLmMsIHJlYWRfY29uZmlnLmMpOiBTVERDIHR5cG9zLgogICAKMTk5Ny0xMS0xMiAyMDo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCBtaWJncm91cC92YXJfcm91dGUuYzoKCiAgIC0gKHZhcl9yb3V0ZS5jLCByZWFkX2NvbmZpZy5jKTogZml4IHFzb3J0IHBhcmFtcyBmb3IgU1REQy4KICAgCjE5OTctMTEtMTIgMjA6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLCBhZ2VudC9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgLSAodmFyX3JvdXRlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBkZWx0YS5jKTogUGF0Y2ggZnJvbSBEYXZpZCBaaW1tZXJtYW46CiAgICAgLSBGaXhlcyBmb3IgQUlYLgogICAKMTk5Ny0xMS0xMiAyMDozNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIC0gKCk6IFBhdGNoIGZyb20gRGF2aWQgWmltbWVybWFuOgogICAgIC0gRml4ZXMgZm9yIEFJWC4KICAgCjE5OTctMTEtMTIgMjA6MjcgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLSAod2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6IGZ1bmN0aW9uIGNoYW5nZXMuCiAgIAoxOTk3LTExLTEyIDE2OjA1ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTExICkKICAgCjE5OTctMTEtMTIgMTU6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTctMTEtMTIgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBpbmNsdWRlIFNURENfSEVBREVSUyBmb3IgQUlYLgogICAKMTk5Ny0xMS0xMiAxNToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jOgoKICAgLSAocGFydHlfdmFycy5jKTogaW5jbHVkZSBTVERDX0hFQURFUlMgZm9yIEFJWC4KICAgCjE5OTctMTEtMTIgMTU6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmg6CgogICAtIChzeXN0ZW0uaCk6IERvbid0IGluY2x1ZGUgY29uZmlnLmghCiAgIAoxOTk3LTExLTEyIDExOjQ5ICBoYXJkYWtlcgoKICAgKiBhcHBzLy5jdnNpZ25vcmU6CgogICAtIChhcHBzLy5jdnNpZ25vcmUpOiBhZGRlZCBzbm1wdGFibGUuCiAgIAoxOTk3LTExLTEyIDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IGRvYyB1cGRhdGUuCiAgIAoxOTk3LTExLTEyIDEwOjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaCwgc25tcF9hcGkuYywKICAgc25tcF9jbGllbnQuYzoKCiAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gcGFyc2VyIGltcHJvdmVtZW50cy4KICAgICAtIHBhcnNlciBkaXJlY3RvcnkgY2FjaGluZy4KICAgICAtIHNhdmVfZGVzY3JpcHRpb25zL21pYl93YXJuaW5ncyBzZXQgZnVuY3Rpb25zLgogICAKMTk5Ny0xMS0xMiAxMDozMyAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcGRlbHRhLjEsIHNubXB0YWJsZS4xLCBzbm1wdHJhcGQuODoKCiAgIC0gKG1hbi9zbm1wZGVsdGEuMSxzbm1wdGFibGUuMSxzbm1wdHJhcGQuOCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBkb2N1bWVudGF0aW9uIGNoYW5nZXMgYW5kIGFkZGl0aW9ucy4KICAgCjE5OTctMTEtMTIgMTA6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSAoc25tcG5ldHN0YXQvbWFpbi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHNubXB2MmMgc3VwcG9ydCBhbmQgYXJndW1lbnQgcGFyc2luZyBjaGFuZ2VzLgogICAKMTk5Ny0xMS0xMiAxMDozMCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcGdldG5leHQuYwosIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMKLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYzoKCiAgIC0gKGFwcHMvKi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHZhcmlvdXMgKHJlbW92ZSB1bm5lZWRlZCB2YXJzLCBldGMpLgogICAgIC0gYWRkIHNubXB0YWJsZS4KICAgICAtIG1ha2Ugc25tcHRyYXBkIG11bHRpLWxpbmd1YWwuCiAgIAoxOTk3LTExLTEyIDEwOjI5ICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBhZGQgQGRhdGFkaXJAIHRvIGZpbGVzIHRoYXQgbmVlZGVkIGl0LgogICAKMTk5Ny0xMS0xMiAxMDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jOgoKICAgLSAocGFydHlfdmFycy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGluY2x1ZGUgbmV0aW5ldC9pbi5oIGlmIGF2YWlsYWJsZS4KICAgCjE5OTctMTEtMTIgMTA6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzb2xhcmlzIHBhdGNoZXMuCiAgIAoxOTk3LTExLTEyIDEwOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gYWRkIEBkYXRhZGlyQCB0byBmaWxlcyB0aGF0IG5lZWRlZCBpdC4KICAgCjE5OTctMTEtMTIgMTA6MjUgIGhhcmRha2VyCgogICAqIE5FV1MsIFRPRE86CgogICAtIChORVdTLCBUT0RPKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGRvYyB1cGRhdGUuCiAgIAoxOTk3LTExLTEyIDA5OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jOgoKICAgLSAoaHJfc3dydW4uYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgZm9yIGxpbnV4L2hwdXgxMCBwcm9ibGVtcy4KICAgCjE5OTctMTEtMTIgMDk6MTcgIGhhcmRha2VyCgogICAqIG1hbi9taWJfYXBpLjM6CgogICAtIChtaWJfYXBpLjMpOiBEb2MgdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk3LTExLTEyIDA5OjE3ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBEb2MgdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk3LTExLTEyIDA4OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgIC0gRnJlZSBhIHBkdSBpbiBhIHNwb3QgdGhhdCBzaG91bGQgdGVjaG5pY2FsbHkgbmV2ZXIgYmUgbmVlZGVkLCBidXQKICAgICAgIGlzIG5pY2UgZm9yIHBlb3BsZSByZWFkaW5nIHRoZSBjb2RlLgogICAKMTk5Ny0xMS0xMiAwNzo0MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6IFczMiBzcGVjaWZpYyBmaXhlcy4KICAgCjE5OTctMTEtMDcgMTY6MzggIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlMTAgKQogICAKMTk5Ny0xMS0wNyAxNjozNyAgaGFyZGFrZXIKCiAgICogTkVXUywgUkVBRE1FLCBUT0RPOgoKICAgLSAoTkVXUywgUkVBRE1FLCBUT0RPKTogRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgogICAKMTk5Ny0xMS0wNyAxNjoxNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogd2F0Y2ggb3V0IGZvciAvdXNyL3VjYi9jYyBvbiBzb2xhcmlzIGFuZCBkb24ndCB1c2UgaXQuCiAgIAoxOTk3LTExLTA3IDE1OjI4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaCwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCB3aW4zMi9jb25maWcuaCwgd2luMzIvd2luMzIub3B0Ciwgd2luMzIvbGlic25tcC9saWJzbm1wLnBsZywKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwucGxnLAogICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwKICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5wbGcsCiAgIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC5wbGcsCiAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQucGxnLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwCiwgd2luMzIvc25tcHNldC9zbm1wc2V0LnBsZywKICAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnBsZywKICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZywKICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwLCB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5wbGcKOgoKICAgLSAoKik6IG1lcmdlIHRvIG1haW4gYnJhbmNoOiAgcGF0Y2hlcyBmcm9tIEpvZSBNYXJ6b3QuCiAgIAoxOTk3LTExLTA3IDEzOjM4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICAtIChzbm1wd2Fsay5jKTogc3RvcCBvbiBubyByZXNwb25zZSBmcm9tIGhvc3QuCiAgIAoxOTk3LTExLTA3IDEzOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmM6CgogICAtIChocl9uZXR3b3JrLmMpOiBkb24ndCBwYXNzIGNoYXIgKiogdG8gaW50ZXJmYWNlc19zY2FuX25leHQoKS4KICAgCjE5OTctMTEtMDcgMTM6MzcgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jOgoKICAgLSAocmVhZF9jb25maWcuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogVVNJTkcuKl9NSUJfTU9EVUxFIC0+IFVTSU5HLipfTU9EVUxFLgogICAKMTk5Ny0xMS0wNyAxMjoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgLSAoa2VybmVsX3N1bm9zNS5jKTogcGF0Y2ggZnJvbSBOaWVscyBmb3Igc29sYXJpcyA+Mi42LgogICAKMTk5Ny0xMS0wNyAxMjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYzoKCiAgIC0gKGhyX3N3cnVuLmMpOiBkb24ndCBwcmludCBhIHZhcmlhYmxlIHRoYXQgZG9lc24ndCBleGlzdCB1bmRlciBsaW51eC4KICAgCjE5OTctMTEtMDcgMTI6MjQgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBsaW51eC9oZHJlZy5oCiAgIAoxOTk3LTExLTA1IDE1OjI5ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTkgKQogICAKMTk5Ny0xMS0wNSAxNDo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IHByb3RlY3Qgdm1tZXRlci5oIGZyb20gbXVsdGlwbGUgaW5jbHVzaW9ucyBvbiBuZXRic2QuCiAgIAoxOTk3LTExLTA1IDEzOjU5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgc25tcGxpYi9taWIuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBrZXJuZWxfc3Vub3M1LmMsIG1pYi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIG9jdGV0IGNvdW50ZXJzIGZvciBzb2xhcmlzLgogICAgIC0gTWFrZWZpbGUuaW4gcGF0Y2hlcy4KICAgCjE5OTctMTEtMDUgMTM6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsCiAgIGlwLmMsIHRjcC5jLCB1ZHAuYzoKCiAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMpOgogICAgIC0gI2luY2x1ZGUgIm1pYl9tb2R1bGVfY29uZmlnLmgiCiAgIAoxOTk3LTExLTA1IDEzOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsCiAgIG1pYmdyb3VwL2Rpc2suYywgbWliZ3JvdXAvcHJvYy5jLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtIChzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLCBkaXNrLmMsIHByb2MuYywgdXRpbF9mdW5jcy5jKToKICAgICAtICNpbmNsdWRlICJtaWJfbW9kdWxlX2NvbmZpZy5oIi4KICAgCjE5OTctMTEtMDUgMTM6NDggIGhhcmRha2VyCgogICAqIGFnZW50LzogY29tbW9uX2hlYWRlci5oLCBtaWJncm91cC9ocl9kaXNrLmMsCiAgIG1pYmdyb3VwL2hyX2ZpbGVzeXMuYywgbWliZ3JvdXAvaHJfc3dydW4uYywKICAgbWliZ3JvdXAvaHJfdXRpbHMuYywgbWliZ3JvdXAvdmFyX3JvdXRlLmM6CgogICAtICgqKTogbWVyZ2UgZnJvbSBEYXZlJ3MgcHJlNiBwYXRjaGVzLgogICAKMTk5Ny0xMS0wNSAxMzo0MiAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKGFwcHMvTWFrZWZpbGUuaW4pOiBwdXQgc25tcHRyYXBkIGluIEBzYmluZGlyQAogICAKMTk5Ny0xMS0wNCAxMjo0NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOgogICAgIC0gQ2hlY2sgZm9yICRwcmVmaXggYmVpbmcgZGVmaW5lZCBhcyBOT05FIGZvciBvdGhlciB2YXJzLgogICAKMTk5Ny0xMS0wNCAxMjo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgIC0gI2luY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaAogICAgIC0gVVNJTkdfRVhURU5TSUJMRV9NSUJfTU9EVUxFIC0+IFVTSU5HX0VYVEVOU0lCTEVfTUlCX01PRFVMRQogICAKMTk5Ny0xMC0yOSAxNDowMCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU4ICkKICAgCjE5OTctMTAtMjkgMTI6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmg6CgogICAtIChob3N0X3Jlcy5oKTogZG9uJ3QgaW5jbHVkZSBjb25maWcuaCB0d2ljZS4KICAgCjE5OTctMTAtMjkgMTI6NTcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBhbmQgaW5jbHVkZSBzeXMvY2RlZnMuaCBpbiBjb25maWcuaC4KICAgCjE5OTctMTAtMjkgMTI6NDIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvY29tbW9uX2hlYWRlci5oCiwgYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oLAogICBhZ2VudC9yZWFkX2NvbmZpZy5jLCBhZ2VudC9yZWFkX2NvbmZpZy5oLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfYWdlbnQuaCwKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvc25tcGQuaCwgYWdlbnQvdmFyX3N0cnVjdC5oLAogICBhZ2VudC92aWV3X3BhcnNlLmMsIGFnZW50L21pYmdyb3VwL2FjbF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FjbF92YXJzLmgsIGFnZW50L21pYmdyb3VwL2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL2FsYXJtLmgsIGFnZW50L21pYmdyb3VwL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL2F0LmgsIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9kaXNrLmgsIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmgsIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2V2ZW50LmgsIGFnZW50L21pYmdyb3VwL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5oLCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaCwgYWdlbnQvbWliZ3JvdXAvaHB1eC5oLAogICBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYywgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5oCiwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pY21wLmgsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oCiwgYWdlbnQvbWliZ3JvdXAvaXAuYywgYWdlbnQvbWliZ3JvdXAvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhZ2VudC9taWJncm91cC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL21lbW9yeS5jLCBhZ2VudC9taWJncm91cC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jLCBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmgKLCBhZ2VudC9taWJncm91cC9wYXNzLmMsIGFnZW50L21pYmdyb3VwL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmgsIGFnZW50L21pYmdyb3VwL3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC5oLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX21pYi5oLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL3RjcC5jLAogICBhZ2VudC9taWJncm91cC90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMKLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uaAosIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5jLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuaAosIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLCBhZ2VudC9taWJncm91cC93b21iYXQuaAosIGFwcHMvLmN2c2lnbm9yZSwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuaCwgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMKLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oCiwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBzbm1wbGliL2FjbC5jLAogICBzbm1wbGliL2FjbC5oLCBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL2FzbjEuaAosIHNubXBsaWIvY29udGV4dC5jLCBzbm1wbGliL2NvbnRleHQuaCwKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWQ1LmgKLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmMKLCBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvcGFydHkuaCwKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfaW1wbC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLCBzbm1wbGliL3ZpZXcuaAosIHdpbjMyL2NvbmZpZy5oOgoKICAgLSAoKi4qLiopOiBfX1VDRF9QIC0+IF9fUCwgYW5kIGEgY29uZmlndXJlIGNoZWNrIHRvIGxvb2sgZm9yIGl0LgogICAKMTk5Ny0xMC0yOSAxMjoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5oOgoKICAgLSAocGFyc2UuaCk6IFNUQVRVU19LV19PUFRJT05BTCAtPiBTVEFUVVNfT1BUSU9OQUwKICAgCjE5OTctMTAtMjkgMTE6MjAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9taWJncm91cC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmMsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsCiAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB3YWxrLmMsIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBkZWx0YS4xCiwgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgKLCBzbm1wbGliL3BhcnNlLmg6CgogICAtIChhY2NvbmZpZy5oLCBhc24xLmMsIG1pYi5bY2hdLCBwYXJzZS5oLGFwcHMvKixlcnJvcm1pYi5jLGxvYWRhdmUuYywKICAgICAgZXh0ZW5zaWJsZS5jLCBkaXNrLmMsIHNubXBkZWx0YSopOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gdGhlIG5vdyB3ZWxsa25vd24gTmV0QlNEIGZpeCwKICAgICAtIFN1bk9TNCBjYyBkb2Vzbid0IGxpa2UgdW5zaWduZWQgbGl0ZXJhbHMgb3Igc3RydG91bCwKICAgICAtIGFkZGVkIGEgY2hhciB2ZXJzaW9uIG9mICI7IiwKICAgICAtIGFkZGVkIGZwcmludF92YXJpYWJsZSwgZnByaW50X29iamlkIGV0YwogICAgIC0gY2hhbmdlZCB0aGUgYXBwcyB0byBwcmludCBhbGwgZXJyb3IgbWVzc2FnZXMgdG8gc3RkZXJyLAogICAgIC0gY29tcGxldGVkIHRoZSBhY2Nlc3MgYW5kIHN0YXR1cyB2YWx1ZXMgaW4gc25tcGxpYi9wYXJzZS5oCiAgICAgLSBhZGRlZCBhIHJvdWdobHkgcGF0Y2hlZCB2ZXJzaW9uIG9mIHNubXBkZWx0YS4KICAgCjE5OTctMTAtMjkgMTA6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiBvcHBzLCBmb3Jnb3QgdG8gcHV0IGluIEBleGVjX3BhdGhALgogICAKMTk5Ny0xMC0yOSAxMDo0NyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIGxvY2FsL01ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW4KLCBvdi9NYWtlZmlsZS5pbjoKCiAgIC0gKGNvbmZpZyosICovTWFrZWZpbGUuaW4pOgogICAgIC0gTW92ZSBzbm1wbGlicGF0aCB0byBAZGF0YWRpckAgd2hpY2ggZGVmYXVsdHMgdG8gL3Vzci9sb2NhbC9zaGFyZS9zbm1wLgogICAKMTk5Ny0xMC0yOSAxMDoyNSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiwgbG9jYWwvTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbiwKICAgbWFuL21pYl9hcGkuMywgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZgosIG1pYnMvTWFrZWZpbGUuaW4sIG92L01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbiwgbWFuLyopOgogICAgIC0gUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZSB0byBjaGFuZ2UgaW5zdGFsbGF0aW9uIHBhdGhzLgogICAgICAgLSAobW9kaWZpZWQgdG8gcG9pbnQgYWdlbnQgdG8gc2JpbmRpciBpbnN0ZWFkIG9mIGV0Y2RpcikuCiAgIAoxOTk3LTEwLTI5IDEwOjA2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiByZW1vdmUgc3BhY2UgYmVmb3JlICUgc2lnbi4KICAgCjE5OTctMTAtMjkgMTA6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc2suYzoKCiAgIC0gKGRpc2suYyk6IGZpeCBwb2ludGVyIHByb2JsZW1zIGZyb20gb2xkIHJlYWRfY29uZmlnIGZvcm0gdG8gbmV3LgogICAKMTk5Ny0xMC0yOSAwOTo1NyAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluLCBhZ2VudC9taWJncm91cC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc2suaCwgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChkaXNrLltjaF0sIHN0cnVjdC5oLCBzZWRzY3JpcHQuaW4sIHNubXBkLmNvbmYuNS5kZWYsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZSB0byBhbGxvdyBhIG1pbmltdW0gcGVyY2VudGFnZSBvbiBkaXNrIHNwYWNlLgogICAgICAgLSAod2FzIG9yaWdpbmFsbHkgYSBtYXhpbXVtLCBidXQgSSBjaGFuZ2VkIGl0IHRvIG1pbmltdW0gaW5zdGVhZCkuCiAgIAoxOTk3LTEwLTI5IDA5OjQyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhZGQgc3lzL3NlbGVjdC5oIGZvciBhaXguCiAgIAoxOTk3LTEwLTI5IDA5OjQxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICAtIChzbm1wdHJhcC5jKTogcmVtb3ZlIHVudXNlZCBubGlzdCBzdHJ1Y3QuCiAgIAoxOTk3LTEwLTI4IDE3OjEyICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTcgKQogICAKMTk5Ny0xMC0yOCAxNzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAodXRpbF9mdW5jcy5jKTogUGF0Y2ggZnJvbSBOb2J1b19Pa2FiZUB5b2tvZ2F3YS5jby5qcDoKICAgICAtIGZpeCB1bndyYXBwZWQgZm9wZW4oKSBieSBhZGRpbmcgcmV0dXJuIE5VTEwgY2hlY2suCiAgIAoxOTk3LTEwLTI4IDE3OjA5ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgbWlicy9VQ0QtU05NUC1NSUIudHh0CjoKCiAgIC0gKGFjY29uZmlnLmgsIFVDRC1TTk1QLU1JQi50eHQpOiBkZWZpbmUgYnNkaSBhZ2VudCB0eXBlLgogICAKMTk5Ny0xMC0yOCAxNTo0OSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYzoKCiAgIC0gKGNvbmZpZyosIHJvdXRlX3dyaXRlLmMsIHZhcl9yb3V0ZS5jKToKICAgICAtIGZpeCBydGVudHJ5IHByb2JsZW1zIG9uY2UgYW5kIGZvciBwcm9iYWJseSBuZXZlci4KICAgCjE5OTctMTAtMjggMTQ6NTMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwgYWdlbnQva2VybmVsLmMKLCBhZ2VudC9rZXJuZWwuaCwgYWdlbnQvcmVhZF9jb25maWcuYywKICAgYWdlbnQvcmVhZF9jb25maWcuaCwgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcGQuaAosIGFnZW50L3Zhcl9zdHJ1Y3QuaCwgYWdlbnQvdmlld19wYXJzZS5jLAogICBhZ2VudC9taWJncm91cC9hY2xfdmFycy5jLCBhZ2VudC9taWJncm91cC9hY2xfdmFycy5oLAogICBhZ2VudC9taWJncm91cC9hbGFybS5jLCBhZ2VudC9taWJncm91cC9hbGFybS5oLAogICBhZ2VudC9taWJncm91cC9hdC5jLCBhZ2VudC9taWJncm91cC9hdC5oLAogICBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmgKLCBhZ2VudC9taWJncm91cC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuYywgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvZXZlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5oCiwgYWdlbnQvbWliZ3JvdXAvaHB1eC5oLCBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYwosIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5oLAogICBhZ2VudC9taWJncm91cC9pY21wLmMsIGFnZW50L21pYmdyb3VwL2ljbXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgKLCBhZ2VudC9taWJncm91cC9pcC5jLCBhZ2VudC9taWJncm91cC9pcC5oLAogICBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMsIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmMsIGFnZW50L21pYmdyb3VwL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmMsIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuaAosIGFnZW50L21pYmdyb3VwL3Bhc3MuYywgYWdlbnQvbWliZ3JvdXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvcm91dGVfd3JpdGUuaCwgYWdlbnQvbWliZ3JvdXAvc211eC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4LmgsIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmgsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5oLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYwosIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5oLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5oCiwgYWdlbnQvbWliZ3JvdXAvdmlld192YXJzLmMsIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5oCiwgYWdlbnQvbWliZ3JvdXAvd29tYmF0LmMsIGFnZW50L21pYmdyb3VwL3dvbWJhdC5oCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMKLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oCiwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBzbm1wbGliL2FjbC5jLAogICBzbm1wbGliL2FjbC5oLCBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL2FzbjEuaAosIHNubXBsaWIvY29udGV4dC5jLCBzbm1wbGliL2NvbnRleHQuaCwKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWQ1LmgKLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmMKLCBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvcGFydHkuaCwKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfaW1wbC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLCBzbm1wbGliL3ZpZXcuaAosIHdpbjMyL2NvbmZpZy5oOgoKICAgLSAoKi4qLiouKik6IHJlbmFtZSBtYWNybyBfX1AgLT4gX19VQ0RfUCB0byByZWR1Y2Ugc3R1cGlkIGNvbmZsaWN0cy4KICAgCjE5OTctMTAtMjggMTQ6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IGZpeCBydGVudHJ5IHN0cnVjdHVyZSBjaGVja3MgZm9yIHRoZSAqYnNkIGdyb3Vwcy4KICAgCjE5OTctMTAtMjggMTQ6MzAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wbGliL21pYi5jOgoKICAgLSAoYWNjb25maWcuaCwgbWliLmMpOiB1c2UgJzsncyBmb3IgRE9TIGVudiBwYXRocy4KICAgCjE5OTctMTAtMjggMDk6NTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3N5c3RlbS5jCiwgc25tcGxpYi9zeXN0ZW0uaDoKCiAgIC0gKGFjY29uZmlnLmgsIHN5c3RlbS5bY2hdLCBzbm1wLmMpOiBtb3ZlIHN0cmR1cCBkZWYgdG8gc3lzdGVtLltjaF0uCiAgIAoxOTk3LTEwLTI3IDE4OjMxICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTYgKQogICAKMTk5Ny0xMC0yNyAxODoyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBmaXggY29uZmlnX2FyY2hfcmVxdWlyZSBtYWNybyB0byBhY3R1YWxseSB3b3JrLgogICAKMTk5Ny0xMC0yNyAxODoxOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFjbF9wYXJzZS5jLCBjb250ZXh0X3BhcnNlLmMsIHBhcnR5X3BhcnNlLmMKLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcGxpYi8qLmMpOiB1c2Ugc25tcF9zZXRfZGV0YWlsIHRvIGhhbmRsZSBtYWxsb2MvZnJlZSBvZiBzbm1wX2RldGFpbC4KICAgCjE5OTctMTAtMjcgMTg6MTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIC0gKHNubXB3YWxrLmMpOiByZW1vdmUgZ290cm9vdCB2YXIuCiAgIAoxOTk3LTEwLTI3IDE4OjA1ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXAvbGlic25tcC5wbGcsCiAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZywgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AKLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC9zbm1wZ2V0LmRzcAosIHNubXBnZXQvc25tcGdldC5wbGcsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcAosIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LnBsZywgc25tcHNldC9zbm1wc2V0LmRzcAosIHNubXBzZXQvc25tcHNldC5wbGcsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AKLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnLCBzbm1wd2Fsay9zbm1wd2Fsay5kc3AKLCBzbm1wd2Fsay9zbm1wd2Fsay5wbGc6CgogICAtICh3aW4zMik6ICBhZGQgZmlsZXMgb24gbWFpbiBicmFuY2guCiAgIAoxOTk3LTEwLTI3IDE4OjAyICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCB3aW4zMi5kc3csIHdpbjMyLm9wdDoKCiAgIHdpbjMyIGZpbGVzCiAgIAoxOTk3LTEwLTI3IDE3OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogbWVyZ2UgYnVnczogZWxzZSBjaGVjayBhZ2FpbnN0IHBkdSBjb21tYW5kIHR5cGUuCiAgIAoxOTk3LTEwLTI3IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgLSAoc25tcF9hdXRoLmMpOiBtZXJnZSBidWdzLiAgTWlzc2luZyBicmFja2V0cy4KICAgCjE5OTctMTAtMjcgMTc6NDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IG1pc3NpbmcgYSBlbHNlIHN0YXRlbWVudCAoc2lnaCkuCiAgIAoxOTk3LTEwLTI3IDE3OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhyX2RldmljZS5oLCBocl9kaXNrLmgsIGhyX2ZpbGVzeXMuaAosIGhyX25ldHdvcmsuaCwgaHJfcHJpbnQuaCwgaHJfcHJvYy5oLAogICBocl9zd2luc3QuaCwgaHJfc3dydW4uaCwgaHJfc3lzdGVtLmg6CgogICAtIChhZ2VudC9taWJncm91cC9ocl8qLmgpOiBwcm9wZXIgaW5pdF8gcHJvdG90eXBlcy4KICAgCjE5OTctMTAtMjcgMTc6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiB0d28gbW9kdWxlcyBmb3IgZXh0ZW5zaWJsZSBjb3VudC4KICAgCjE5OTctMTAtMjcgMTc6MDUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgLSAoc25tcHN0YXR1cy5jKTogcmVtb3ZlIGR1cGxpY2F0ZSBkZWNsYWlyYXRpb24uCiAgIAoxOTk3LTEwLTI3IDE3OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYwosIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsCiAgIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywgaHJfc3dydW4uYwosIGhyX3N5c3RlbS5jOgoKICAgLSAoaHJfKi5jKTogRVJST1IgLT4gRVJST1JfTVNHLgogICAKMTk5Ny0xMC0yNyAxNjozNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5bY2hdKTogZml4IHBlcnJvciBsb3NzZXMgZnJvbSBtZXJnZS4KICAgCjE5OTctMTAtMjcgMTY6MjYgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQva2VybmVsLmMsIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMKLCBhZ2VudC9taWJncm91cC9hY2xfdmFycy5jLCBhZ2VudC9taWJncm91cC9hbGFybS5jCiwgYWdlbnQvbWliZ3JvdXAvYXQuYywgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmMKLCBhZ2VudC9taWJncm91cC9ldmVudC5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlLmMKLCBhZ2VudC9taWJncm91cC9pY21wLmMsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYwosIGFnZW50L21pYmdyb3VwL2lwLmMsIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYwosIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jCiwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywgYWdlbnQvbWliZ3JvdXAvdmlld192YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMKLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL2FjbC5jLAogICBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9hc24xLmgKLCBzbm1wbGliL2NvbnRleHQuYywgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsCiAgIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3BhcnR5LmMsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcC5oCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2ltcGwuaCwgc25tcGxpYi9zeXN0ZW0uYywKICAgc25tcGxpYi9zeXN0ZW0uaCwgc25tcGxpYi92aWV3LmM6CgogICAtICgqKTogbWVyZ2Ugb2YgVzMyIHBvcnQgYW5kIG1haW4gdmVyc2lvbiBicmFuY2guCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5wbGc6CgogICBmaWxlIHNubXB3YWxrLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBmaWxlIHNubXB3YWxrLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwOgoKICAgZmlsZSBzbm1wdHJhbnNsYXRlLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnOgoKICAgZmlsZSBzbm1wdHJhbnNsYXRlLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwOgoKICAgZmlsZSBzbm1wc3RhdHVzLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMucGxnOgoKICAgZmlsZSBzbm1wc3RhdHVzLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wc2V0L3NubXBzZXQucGxnOgoKICAgZmlsZSBzbm1wc2V0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwOgoKICAgZmlsZSBzbm1wc2V0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3A6CgogICBmaWxlIHNubXBnZXRuZXh0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5wbGc6CgogICBmaWxlIHNubXBnZXRuZXh0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwOgoKICAgZmlsZSBzbm1wZ2V0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wZ2V0L3NubXBnZXQucGxnOgoKICAgZmlsZSBzbm1wZ2V0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnBsZzoKCiAgIGZpbGUgc25tcGJ1bGt3YWxrLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcDoKCiAgIGZpbGUgc25tcGJ1bGt3YWxrLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIGZpbGUgbGlic25tcC5kZWYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgZmlsZSBsaWJzbm1wX2RsbC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwucGxnOgoKICAgZmlsZSBsaWJzbm1wX2RsbC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcC9saWJzbm1wLmRzcDoKCiAgIGZpbGUgbGlic25tcC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcC9saWJzbm1wLnBsZzoKCiAgIGZpbGUgbGlic25tcC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvd2luMzIuZHN3OgoKICAgZmlsZSB3aW4zMi5kc3cgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvY29uZmlnLmg6CgogICBmaWxlIGNvbmZpZy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3dpbjMyLm9wdDoKCiAgIGZpbGUgd2luMzIub3B0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMDk6NTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGNwLmgsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5oLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmg6CgogICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC8qLmgpOgogICAgIC0gbmV3IGNvbmZpZyBtYWNybzogIGNvbmZpZ19hcmNoX3JlcXVpcmUoYXJjaCwgbW9kdWxlKS4KICAgICAtIG1vdmVkIGFyY2ggZGVwZW5kYW50IG1vZHVsZXMgKG1lbW9yeSwgaHB1eCwga2VybmVsX3N1bm9zNSkgbG9hZHMKICAgICAgIGZyb20gdGhlIGNvbmZpZ3VyZSBpbnRvIHRoZSBhcHByb3ByaWF0ZSAuaCBmaWxlcy4KICAgLSAoaW50ZXJmYWNlcy5jLCB2YXJfcm91dGUuYyk6CiAgICAgLSB0eXBlY2FzdCBrbG9va3VwIGNhbGxzIGZvciBmcmVlYnNkMi4KICAgCjE5OTctMTAtMjIgMTE6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwgYWdlbnQvcmVhZF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzay5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoY29tbW9uX2hlYWRlci5oLCByZWFkX2NvbmZpZy5jLCBkaXNrLmMsIHNubXBfcGFyc2VfYXJncy5jKToKICAgICAtIFR5cG8ncyBmaXhlZCBieSBOaWVscy4KICAgCjE5OTctMTAtMjEgMTI6MzYgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNSApCiAgIAoxOTk3LTEwLTIxIDEyOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogZGlkIGEgbWFrZSBkZXBlbmQuCiAgIAoxOTk3LTEwLTIxIDEyOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgbWFrZWZpbGVpbmRlcGVuZC4uCiAgIAoxOTk3LTEwLTIxIDEyOjMxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgbWFrZWZpbGVpbmRlcGVuZCBzZXR1cC4KICAgCjE5OTctMTAtMjEgMTI6MjQgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgKLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICBtaWJncm91cC9kaXNrLmgsIG1pYmdyb3VwL2V4dGVuc2libGUuYywKICAgbWliZ3JvdXAvZXh0ZW5zaWJsZS5oLCBtaWJncm91cC9sb2FkYXZlLmgsCiAgIG1pYmdyb3VwL3Bhc3MuaCwgbWliZ3JvdXAvcHJvYy5jLCBtaWJncm91cC9wcm9jLmgKLCBtaWJncm91cC9yZWFkX2NvbmZpZy5jLCBtaWJncm91cC9yZWFkX2NvbmZpZy5oLAogICBtaWJncm91cC9zeXN0ZW0uYywgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmg6CgogICAtIChhZ2VudC9yZWFkX2NvbmZpZy5bY2hdLCBzbm1wZC5jLCBzbm1wX3ZhcnMuYywgbWliZ3JvdXAvKik6CiAgICAgLSBtb3ZlZCByZWFkX2NvbmZpZy5bY2hdIHVwIGEgbGV2ZWwgdG8gYWx3YXlzIGJlIGNvbXBpbGVkIGluLgogICAKMTk5Ny0xMC0yMSAxMTowMiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU0ICkKICAgCjE5OTctMTAtMjEgMTE6MDEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogYmVnaW5uaW5ncyBvZiBORVdTIHVwZGF0ZXMuCiAgIAoxOTk3LTEwLTIxIDExOjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgbWVtb3J5LmMKOgoKICAgLSAoaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jLCBtZW1vcnkuYyk6IGNsb3NlIG9wZW4gZmlsZXMgb24gbGludXguCiAgIAoxOTk3LTEwLTIxIDEwOjQ1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhbGxvdyAtdiAyaCBhbmQgMnAgZm9yIHBhcnR5IGNvZGUuCiAgIAoxOTk3LTEwLTIxIDEwOjE1ICBoYXJkYWtlcgoKICAgKiBQT1JUSU5HLCBSRUFETUU6CgogICAtIChQT1JUSU5HLCBSRUFETUUpOiBtaW5vciB1cGRhdGVzLgogICAKMTk5Ny0xMC0yMCAxOTo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IGRlZmluZSBhdCBsZWFzdCBibGFuayBmdW5jIG5saXN0X2luaXQoKSBvbiBsaW51eC4KICAgCjE5OTctMTAtMjAgMTk6NDIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBkZWZpbmUgbGludXgncyBPUyB0eXBlLgogICAKMTk5Ny0xMC0yMCAxODowMSAgaGFyZGFrZXIKCiAgICogSU5TVEFMTCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eF9nYXRlZC5oLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5LmgsIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC93b21iYXQuaDoKCiAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwL3YycGFydHkuaCwgdWNkX3NubXAuaCwgc211eF9nYXRlZC5oKToKICAgICAtIGNyZWF0ZWQgbmV3IHdyYXBwZXJzIGZvciB0aGUgdmFyaW91cyBtb2R1bGVzIHRvIG1ha2UgdGhlbSBlYXN5IHRvCiAgICAgICBhZGQgYW5kIHJlbW92ZSBhcyBuZWVkZWQuCiAgIAoxOTk3LTEwLTIwIDE3OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QuYywgaG9zdC5oLCBocl9kZXZpY2UuYywKICAgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsIGhyX25ldHdvcmsuYywgaHJfb3RoZXIuYwosIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsCiAgIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsCiAgIGhyX3N5c3RlbS5jOgoKICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvaHJfKi5jKToKICAgICAtIEEgbW9kdWxlLmMgZmlsZSBpcyBubyBsb25nZXIgcmVxdWlyZWQuICBPbmx5IHRoZSAuaCBmaWxlIGlzCiAgICAgICBuZWNlc3NhcnksIGZvciBwZW9wbGUgd2hvIHdhbnQgdG8gaGF2ZSBvbmUgbW9kdWxlIHdyYXAgYSBidW5jaCBvZiBvdGhlcnMuCiAgICAgLSByZW1vdmVkIGhvc3QuYwogICAgIC0gcmVuYW1lZCBhbGwgaHJfaW5pdCBmdW5jdGlvbnMgdG8gYmUgYXV0by1jYWxsZWQuCiAgIAoxOTk3LTEwLTIwIDE3OjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IFJFQURNRSwgd29tYmF0LmMsIHdvbWJhdC5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvUkVBRE1FLCB3b21iYXQuW2NoXSk6CiAgICAgLSBkb2N1bWVudGF0aW9uIHVwZGF0ZSB0byByZWZsZWN0IGNvbmZpZ19wYXJzZV9kb3RfY29uZigpIHVzYWdlLgogICAKMTk5Ny0xMC0yMCAxNzowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC9ocl8qLmMpOgogICAgIC0gQSBtb2R1bGUuYyBmaWxlIGlzIG5vIGxvbmdlciByZXF1aXJlZC4gIE9ubHkgdGhlIC5oIGZpbGUgaXMKICAgICAgIG5lY2Vzc2FyeSwgZm9yIHBlb3BsZSB3aG8gd2FudCB0byBoYXZlIG9uZSBtb2R1bGUgd3JhcCBhIGJ1bmNoIG9mIG90aGVycy4KICAgICAtIHJlbW92ZWQgaG9zdC5jCiAgICAgLSByZW5hbWVkIGFsbCBocl9pbml0IGZ1bmN0aW9ucyB0byBiZSBhdXRvLWNhbGxlZC4KICAgCjE5OTctMTAtMjAgMTY6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IHBhdGNoIGFsbCBvdGhlciBlbnYtdmFycyB0byB0YWtlICcrJyBpbiBmcm9udC4KICAgCjE5OTctMTAtMjAgMTY6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IEZyb20gRGF2ZTogIHBhdGNoIERFRkFVTFRfTUlCUyB0byB0YWtlICcrJyBpbiBmcm9udC4KICAgCjE5OTctMTAtMjAgMTY6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAtIGRvbid0IHJlcG9ydCBhbiBlcnJvciBpZiB5b3UgY2FuJ3QgZmluZCBhIHNubXBkLmNvbmYgZmlsZS4KICAgICAtIGRvbid0IHJlcG9ydCBhbGwgbGluZXMgYXMgYW4gZXJyb3IgKG9wcHMpLgogICAKMTk5Ny0xMC0yMCAxNjowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvcGFzcy5jOgoKICAgLSAocGFzcy5jKSBkb24ndCBudWxsIGxhc3QgY2hhciBpbiBjb21tYW5kIGxpbmUuCiAgIAoxOTk3LTEwLTIwIDExOjUxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9hZ2VudC5oCiwgYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcGQuaCwKICAgYWdlbnQvbWliZ3JvdXAvLmN2c2lnbm9yZSwgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9kaXNrLmgsIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmMsIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suYwosIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5oLCBhZ2VudC9taWJncm91cC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ocl9wcm9jLmMsIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5oLCBhZ2VudC9taWJncm91cC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmgsIGFnZW50L21pYmdyb3VwL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvcGFzcy5oLCBhZ2VudC9taWJncm91cC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3Byb2MuaCwgYWdlbnQvbWliZ3JvdXAvcmVhZF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvcmVhZF9jb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYwosIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uaAo6CgogICAtIChjb25maWcqLCBhZ2VudC9zbm1wKiwgYWdlbnQvbWliZ3JvdXAvKi5bY2hdKToKICAgICAtIENyZWF0ZWQgYSBuZXcgbWlibW9kdWxlLmggY29uZmlndXJhdGlvbiBtYWNybyBjYWxsZWQKICAgICAgIGNvbmZpZ19wYXJzZV9kb3RfY29uZigpIHdoaWNoIGNhbiBiZSBjYWxsZWQgdG8gcmVxdWVzdCBwYXJzaW5nIG9mCiAgICAgICB0aGUgc25tcGQuY29uZiBmaWxlKHMpIG9uIGEgcGVyIG1vZHVsZSBiYXNpcy4KICAgICAtIEFsbCByZWxhdGVkIHBhcnNpbmcgaGFzIGJlZW4gc3RyaXBlZCBmcm9tIHJlYWRfY29uZmlnLmMgYW5kIG1vdmUKICAgICAgIHRvIHRoZWlyIGNvcnJlY3QgbW9kdWxlIGluc3RlYWQuCiAgICAgLSBOZXcgZnVuY3Rpb246IGNvbmZpZ19wZXJyb3IoY2hhciAqKTogcHJpbnQgZXJyb3Igd2l0aCBmaWxlICYgbGluZSAjLgogICAgIC0gYmFzaWMgLVdhbGwgY2xlYW51cHMgaW4gaHIqIGFzIHdlbGwgKG5vdCBuZWFybHkgZG9uZSB5ZXQpLgogICAKMTk5Ny0xMC0yMCAxMTo0NSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogQ2hhbmdlcyBmcm9tIERhdmUuCiAgIAoxOTk3LTEwLTE1IDE4OjQwICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2hvc3QuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmgsIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfZGlzay5oLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuaCwgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5oLCBhZ2VudC9taWJncm91cC9ocl9vdGhlci5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfb3RoZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvaHJfcGFydGl0aW9uLmMsIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaHJfcHJpbnQuaAosIGFnZW50L21pYmdyb3VwL2hyX3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvaHJfcHJvYy5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmgsIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3dpbnN0LmgsIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmMKLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5oLCBhZ2VudC9taWJncm91cC9ocl9zeXN0ZW0uYwosIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuaCwgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmMKOgoKICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvaHIqKTogSG9zdCByZXNvdXJjZXMgbWliIGZyb20gRGF2ZSBTaGllbGQuCiAgICAgLSBtaW5vciBwYXRjaGVzIGJ5IG1lLCBtb3N0bHkgcG9pbnRlciBlcnJvcnMuCiAgIC0gKG1lbW9yeS5jKTogZml4ZWQgYSBudWxsIHBvaW50ZXIgcHJvYmxlbSB1bmRlciBsaW51eC4KICAgCjE5OTctMTAtMTUgMTI6MTIgIGhhcmRha2VyCgogICAqIG1pYnMvLmN2c2lnbm9yZToKCiAgIC0gKG1pYnMvLmN2c2lnbm9yZSk6ICBhZGRlZCBNYWtlZmlsZS4KICAgCjE5OTctMTAtMTUgMTI6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvYWNsX3BhcnNlLmMsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCjoKCiAgIC0gKGFwcHMvKi5jLCBhZ2VudC9zbm1wZC5jLCBzbm1wbGliLyouYyk6CiAgICAgLSBjcmVhdGUgYW5kIHVzZSBuZXcgZnVuY3Rpb246ICBzbm1wX3BlcnJvcihjaGFyICopCiAgICAgLSBmcmVlIGFsbG9jYXRlZCBzcGFjZSBvZiBzbm1wX2RldGFpbCB1cG9uIHVzYWdlIGJ5IHNubXBfYXBpX2VycnN0cmluZygpLgogICAKMTk5Ny0xMC0xNSAwOTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9hY2xfcGFyc2UuYywKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXAuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2ltcGwuaCwgc25tcGxpYi92aWV3LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmM6CgogICAtIChhcHBzLyouYywgYWdlbnQvc25tcGQuYywgc25tcGxpYi8qLmMpOiBQYXRjaCBmcm9tIE5pZWxzOgogICAgIC0gd2FybmluZyBmaXhlcy4KICAgICAtIHJlbW92ZSB0aGUgcHJpbnRmJ3MgZnJvbSB0aGUgbGlicmFyeSBhbmQgc2V0IGEgc25tcCAnZXJybm8nIGVxdWl2YWxlbnQuCiAgIAoxOTk3LTEwLTE1IDA5OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHZpZXdfcGFyc2UuYywgc25tcF92YXJzLmM6CgogICAtICh2aWV3X3BhcnNlLmMsIHNubXBfdmFycy5jKTogRnJvbSBOaWVsczogd2FybmluZyByZW1vdmFscyBhbmQgc3RhbmRhcmRpemF0aW9uLgogICAKMTk5Ny0xMC0xNCAxNTozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhY2xfdmFycy5jLCBhbGFybS5jLCBjb250ZXh0X3ZhcnMuYwosIGV2ZW50LmMsIGV2ZW50LmgsIGludGVyZmFjZXMuYywKICAga2VybmVsX3N1bm9zNS5jLCBtZW1vcnkuYywgbWVtb3J5LmgsIHBhcnR5X3ZhcnMuYwosIHJlYWRfY29uZmlnLmMsIHZhcl9yb3V0ZS5jLCB2ZXJzaW9uaW5mby5jCiwgdmlld192YXJzLmM6CgogICAtIChhZ2VudC9taWJncm91cC8qLmMpOiBZTVdSQU1GU0ZOOgogICAgIC0gKHlldCBtb3JlIHdhcm5pbmcgcmVtb3ZhbHMgYW5kIG1lbW9yeSBmdW5jdGlvbiBzdGFuZGFyZGl6YXRpb25zIGZyb20gTmllbHMpLgogICAgIC0gbWlub3IgbGludXgvbmV0YnNkL2JzZGkgY2xlYW4gdXBzLgogICAKMTk5Ny0xMC0xNCAxNToyMSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogRnJvbSBEYXZlIFNoaWVsZHM6IHJlZmVyIHJlYWRlciB0byBhbm90aGVyIGFuc3dlciBhcyB3ZWxsLgogICAKMTk5Ny0xMC0xNCAxNToxOCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9jb21tb25faGVhZGVyLmg6CgogICAtIChjb25maWcqLCBjb21tb25faGVhZGVyLmgpOiBkeW5peCBkb2Vzbid0IGhhdmUgbmV0L3JvdXRlLmguCiAgIAoxOTk3LTEwLTE0IDE1OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogRnJvbSBEYXZlIFNoaWVsZHM6CiAgICAgLSBzZWxmIGNvbnRhaW5lZCBtaWIgLnR4dCBmaWxlcyB3aXRoIG11bHRpcGxlIG1vZHVsZXMuCiAgIAoxOTk3LTEwLTE0IDE1OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgLSAobWliX2FwaS4zKTogZG9jIGFkZGl0aW9uOiAgYWRkX21pYmRpcigpIHJldHVybiB2YWx1ZS4KICAgCjE5OTctMDgtMjUgMDA6MjIgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzIGZvciBuZXRic2QuCiAgIAoxOTk3LTA4LTI1IDAwOjIxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAodmVyc2lvbnRhZyk6IGNoZWNraW4gdmVyc2lvbi5oLgogICAKMTk5Ny0wOC0yNSAwMDoyMSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IHR5cG8gaW4gaWZkZWYuCiAgIAoxOTk3LTA4LTE1IDA2OjQ1ICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQsIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTMgKQogICAKMTk5Ny0wOC0xNSAwMjozMCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zeXN0ZW0uYywgYWdlbnQvc25tcGQuYwosIHNubXBsaWIvc3lzdGVtLmg6CgogICAtIChjb25maWcqLCBzbm1wZC5jLCBzbm1wX2NsaWVudC5bY2hdLCBzeXN0ZW0uW2NoXSk6CiAgICAgLSBmaXggbW9yZSBsb25nL2ludCBwcm9ibGVtcyBvbiA2NCBiaXQgbWFjaGluZXMgdV9sb25nIC0+IGluX2FkZHJfdC4KICAgICAtIENoZWNrIGZvciBTSU9DR0lGQUREUiBpbiBzeXMvaW9jdGwuaCBhbmQgdXNlIGl0IGluIGdldF9teWFkZHIoKSBpZgogICAgICAgZGVmaW5lZC4KICAgCjE5OTctMDgtMTQgMDg6MjEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gRGF2aWQgQy4gTGF3cmVuY2UgZm9yIG5ldGJzZCAqIGJzZC9vcyAyLjAuCiAgIAoxOTk3LTA4LTE0IDA4OjE2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9wcm9jLmM6CgogICAtIChwcm9jLmMpOiBkb24ndCB1c2Ugc2V0ZXJyb3JzdGF0dXMoKSBpZiBub3QgdXNpbmcgdGhlIGVycm9ybWliLgogICAKMTk5Ny0wOC0xNCAwODoxNiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvUkVBRE1FOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvUkVBRE1FKTogUG9pbnQgb3V0IHRoYXQgbWliIGxpc3QgbXVzdCBiZSBpbiBkZXNjZW5kaW5nIG9yZGVyLgogICAKMTk5Ny0wOC0xNCAwODoxNSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUqKToKICAgICAtIFR5cG8ncyB3aGVuIGNvcHlpbmcgaW4gYSBhdXRvY29uZiB0ZXN0LgogICAgIC0gQWRkIGVycm9ybWliIHRvIGRlZmF1bHQgbW9kdWxlIGxpc3QgKHNpbmNlIGl0cyBubyBsb25nZXIgcmVxdWlyZWQpLgogICAgIC0gYmFja3F1b3RlIGEgLiBpbiBhIHNlZCByZWdleHAgdG8gd2F0Y2ggb3V0IGZvciBtb2R1bGUgbmFtZXMKICAgICAgIGJlZ2lubmluZyB3aXRoIHRoZSBsZXR0ZXIgby4KICAgCjE5OTctMDgtMTQgMDc6MzcgIHdoYXJkYWtlCgogICAqIEZBUSwgUkVBRE1FLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9hbGFybS5jLCBhZ2VudC9taWJncm91cC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmMsIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5oCiwgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhZ2VudC9taWJncm91cC9yZWFkX2NvbmZpZy5jCiwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMKLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIC0gKGNvbmZpZyosIEZBUSwgUkVBRE1FLCBhZ2VudC9taWJncm91cC8qLmMsIGFwcHMvKi5jKToKICAgICAtIFBhdGNoIGZyb20gRGF2aWQgUGF1bCBaaW1tZXJtYW46CiAgICAgICAtIHBvcnQgdG8gQUlYIDQuMS41LgogICAgICAgLSBmaXggbW9yZSB0eXBlIGNhc3RpbmcgcHJvYmxlbXMuCiAgIAoxOTk3LTA4LTE0IDAwOjQ2ICB3aGFyZGFrZQoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jCiwgc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jLCBtYWluLmMpOgogICAgIC0gYWRkIC1WIHZlcnNpb24gZmxhZ2UuCiAgIAoxOTk3LTA4LTEzIDA4OjEwICB3aGFyZGFrZQoKICAgKiB2ZXJzaW9uLmgsIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwgYWdlbnQvc25tcF9hZ2VudC5jCiwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaAosIGFnZW50L21pYmdyb3VwL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaAosIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuaAosIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmgsIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcKLCBzbm1wbGliL2NvbnRleHQuaCwgc25tcGxpYi9wYXJ0eS5oOgoKICAgLSAodmVyc2lvbi5oLCBhZ2VudC8qLCBhZ2VudC9taWJncm91cC8qKToKICAgICAtIG1vdmUgdmVyc2lvbiBzdHJpbmcgdG8gYSBnbG9iYWwgaGVhZGVyLgogICAgIC0gaW5zZXJ0IFVTSU5HXypfTU9EVUxFIG1hY3JvJ3MgaW4gbWFueSBwbGFjZXMgdG8gbWFrZSBtb2R1bGUKICAgICAgIHJlbW92YWwgbW9yZSBwb3NzaWJsZS4gIFlvdSBjYW4gbm93IGNvbXBpbGUgd2l0aCBhbG1vc3Qgbm8gbW9kdWxlcwogICAgICAgaW5zdGFsbGVkLgogICAKMTk5Ny0wOC0xMyAwNDo0NyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICAtIChzbm1wc3RhdHVzLmMpOiBvcHRhcmcvb3B0aW5kIG5lZWQgdG8gYmUgZGVjbGFpcmVkIHVuZGVyIHVsdHJpeDQuCiAgIAoxOTk3LTA4LTA3IDAyOjM0ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAoY29uZmlnKiwgbWVtb3J5LmMpOgogICAgLSBmaXggc3dhcCBvbiBIUFVYIDEwLjIwCiAgIAoxOTk3LTA4LTA3IDAxOjMzICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IGtlcm5lbC5jLCBtaWJncm91cC9wcm9jLmM6CgogICAtIChrZXJuZWwuYywgcHJvYy5jKTogUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZToKICAgICAtIEltcGxlbWVudCByZWFsIHByb2Nlc3MgdGFibGUgd2Fsa3Mgb24gVWx0cml4LgogICAKMTk5Ny0wOC0wNyAwMToxMCAgd2hhcmRha2UKCiAgICogUkVBRE1FLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlCiwgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3NubXAuYzoKCiAgIC0gKGNvbmZpZyosIGxvYWQuYywgZGlzay5jLCBwYXJzZS5jLCBzbm1wLmMpOiBQYXRjaCBmcm9tIFNpbW9uIEJ1cmdlOgogICAgIC0gVWx0cml4IGZpeGVzIGZvciBzdGF0ZnMsIGxvYWRhdmUuCiAgICAgLSBpbXBsZW1lbnQgc3RyZHVwIGlmIG5vdCBmb3VuZCBpbiBzeXN0ZW0uCiAgICAgLSB0ZXN0IGZvciB0ZXN0IGZsYWdzIGZvciBrZXJuZWwgY2hlY2tpbmcuCiAgICAgLSB3YXRjaCBvdXQgZm9yIHBzJ2VzIHRoYXQgcmV0dXJuIGVncmVwIHdpdGggdGhlIHBzIGFyZyBvbiB0aGUgbGluZS4KICAgICAtIHVwIG1heGltdW0gZGlza3MgdG8gNTAuCiAgIAoxOTk3LTA4LTA3IDAwOjI5ICB3aGFyZGFrZQoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IGJldHRlciBlcnJvciBtZXNzYWdlcyBieSBhcHBzLgogICAKMTk5Ny0wNy0yNCAyMzo1MCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gRWRkeSBKLiBHdXJuZXk6ICB1bmNvbW1lbnQgZ2V0dGltZW9mZGF5KCkgY2FsbC4KICAgCjE5OTctMDctMDMgMjM6MzQgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGJ1Zy1yZXBvcnQsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTIgKQogICAKMTk5Ny0wNy0wMyAyMzozMyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgKLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaDoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYywgbWliLltjaF0sIHBhcnNlLltjaF0pOgogICAgIC0gTmV3IG9wdGlvbiB0byBzbm1wdHJhbnNsYXRlICgtYSkgdG8gb3V0cHV0IGEgYXNjaWkgZHVtcCBvZiB0aGUgbWliCiAgICAgICBkYXRhYmFzZSBjYXBhYmxlIG9mIGJlaW5nIHVzZWQgYnkgdGhlIHBhcnNlciBmb3IgcXVpY2sgT0lEIHRyYW5zbGF0aW9ucy4KICAgCjE5OTctMDctMDEgMDg6MzcgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIHNlZHNjcmlwdC5pbiwKICAgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTEgKQogICAKMTk5Ny0wNy0wMSAwNzoyMCAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IGJzZGkzIHNwZWNpZmljIGhlYWRlcnMuCiAgIAoxOTk3LTA3LTAxIDA2OjQxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IGRpc2suYywgZXJyb3JtaWIuYywgbG9hZGF2ZS5jLAogICBtZW1vcnkuYzoKCiAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYyk6IGJzZGkzIHNwZWNpZmljIGhlYWRlcnMuCiAgIAoxOTk3LTA3LTAxIDA2OjAyICB3aGFyZGFrZQoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXBfcGFyc2VfYXJncy5oLAogICBzbm1wYnVsa3dhbGsuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRlc3QuYywKICAgc25tcHdhbGsuYzoKCiAgIC0gKGFwcHMvKi5jKTogQmV0dGVyIHVzYWdlIGluZm9ybWF0aW9uIGFuZCB1c2FnZSgpIHN0YW5kYXJpemF0aW9uLgogICAKMTk5Ny0wNy0wMSAwNTo0MSAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9jb21tb25faGVhZGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMKLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChjb25maWcqLCBjb21tb25faGVhZGVyLmgsIGludGVyZmFjZXMuYywgdmFyX3JvdXRlLmMsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gZml4IGZyZWVic2QzIHNwZWNpZmljIHByb2JsZW1zIChiYXNlZCBvbiBzdWdnZXN0aW9ucyBmcm9tIEJpbGwgRmVubmVyKS4KICAgCjE5OTctMDctMDEgMDE6MTAgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IGZpeCBwcm90b3R5cGluZyBmYWlsdXJlcy4KICAgCjE5OTctMDYtMzAgMDc6MTkgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgc25tcF9hcGkuYzoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCBzbm1wX2FwaS5jKTogU3VnZ2VzdGlvbnMgZnJvbSBMYXVra2FuZW4gTWFya2t1IE5SQy9Ia2k6CiAgICAgLSBNYWxsb2MgdHlwZWNhc3RzIGFuZCBvdGhlciBjb3JyZWN0aW9ucyBpbiBjYXN0aW5nLgogICAKMTk5Ny0wNi0zMCAwNjo1OCAgd2hhcmRha2UKCiAgICogbWFuL21pYl9hcGkuMywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgKOgoKICAgLSAobWliX2FwaS4zLCBwYXJzZS5bY2hdKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIEhhbmRsZSBtaWIgbW9kdWxlIHJlcGxhY2VtZW50cyB0aHJvdWdoIG5ldyBmdW5jdGlvbiBhbmQgcmVwbGFjZW1lbnQgdGFibGUuCiAgIAoxOTk3LTA2LTMwIDA2OjQ5ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAoY29uZmlnKiwgbWVtb3J5LmMpOiBQYXRjaCBmcm9tIHZsYWRAbWlzZXJ5LnJvc3ByaW50LnJ1OgogICAgIC0gaW1wbGVtZW50IG1lbW9yeSBzZWN0aW9uIG9mIHVjZCBtaWIgb24gbGludXguCiAgIAoxOTk3LTA2LTMwIDA2OjM4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC93b21iYXQuaDoKCiAgIC0gKHdvbWJhdC5oKTogYmV0dGVyIGRvY3VtZW50IGNvbmZpZ19sb2FkX21pYigpIGV4YW1wbGUuCiAgIAoxOTk3LTA2LTMwIDA2OjMzICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAtIChzbm1wdGVzdC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBmaXggZ2V0IC0+IGZnZXQgJ1xuJyBwcm9ibGVtLgogICAgIC0gQWxzbyBtYWtlcyBzdXJlIGl0IGhhbmRsZXMgdXAgYW5kIGxvd2VyIGNhc2VzLgogICAKMTk5Ny0wNi0zMCAwNTo1NCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jKTogRG9uJ3QgcHV0ICYgaW4gZnJvbnQgb2Ygb3NmNCBhY19lbmFkZHIuCiAgIAoxOTk3LTA2LTMwIDA1OjUzICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9taWJncm91cC9hbGFybS5jLCBhZ2VudC9taWJncm91cC9ldmVudC5jLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5oLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvc25tcC5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmM6CgogICAtIChhZ2VudC9zbm1wX3thZ2VudCx2YXJzfS5jLCBhbGFybS5jLCBldmVudC5jLCBhcHBzLyosCiAgICAgIHNubXBsaWIvc25tcHssX2FwaSxfYXV0aH0uYyk6CiAgICAgIC0gQWRkZWQgYmFzaWMgKG1vc3RseSBjb25mb3JtaW5nPykgdjJjIHN1cHBvcnQuCiAgICAgIC0gTWVyZ2VkIGFyZyBwYXJzaW5nIG9mIGFwcHMvKiBjbGllbnRzIGludG8gb25lIGZpbGUuCiAgIAoxOTk3LTA2LTI2IDIzOjM5ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBfX1AgbWFjcm9zIHdlcmUgY2FsbGVkIHdpdGggdG9vIG1hbnkgYXJndW1lbnRzIChuZWVkZWQgKGFyZ3MpKS4KICAgCjE5OTctMDYtMjMgMjM6NDIgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRToKCiAgIC0gKGFnZW50L21pYmdyb3VwL1JFQURNRSk6IG5lZWQgMiBsZWFkaW5nICctJ3Mgb24gLS13aXRoLW1pYi1tb2R1bGVzIGZsYWcuCiAgIAoxOTk3LTA2LTIzIDIzOjQxICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSopOiBic2RpMyBuZWVkcyB0byBkZWZpbmUgYnNkaTIsIG5vdCBpdHNlbGYgKGR1aCkuCiAgIAoxOTk3LTA2LTIzIDIzOjQwICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBKb2huIENoYXJsdG9uIHRvIGZpeCBsZWFkaW5nIHNwYWNlcyBpbiBzZWRzY3JpcHQuCiAgIAoxOTk3LTA2LTExIDA1OjQ2ICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiB3aG9vcHMuCiAgIAoxOTk3LTA2LTExIDA0OjUzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIG1ha2UgTUlCRklMRVMgZW52IHZhciB3b3JrIGNvcnJlY3RseS4KICAgCjE5OTctMDUtMjYgMDI6MzggIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIG5pZWxzIEJhZ2dlc2VuIHRvOgogICAgIC0gY2xvc2UgbWliZmlsZXMgZm9yIE1JQlM9QUxMLgogICAgIC0gQWxsb3cgU1lOVEFYIERpc3BsYXlTdHJpbmcgKFNJWkUpIGluc2lkZSBPQkpFQ1QtVFlQRS4KICAgCjE5OTctMDUtMjYgMDE6NTggIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGJ1Zy1yZXBvcnQsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4yICkKICAgCjE5OTctMDUtMjYgMDE6NTcgIHdoYXJkYWtlCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IFVwZGF0ZSBmb3IgMy4yLgogICAKMTk5Ny0wNS0yNiAwMTo1NiAgd2hhcmRha2UKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKHNubXBjaGVjay5kZWYpOiBuZXcgdmFyaWFibGVzIHRvIHNldCB3YWxrL2dldC9zZXQgY29tbWFuZCBsaW5lIHVzYWdlLgogICAKMTk5Ny0wNS0yNiAwMTo1MiAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IHRyYXAgbG9uZydzIGJhY2sgdG8gaW50cywgYmFkIHNvbHV0aW9uLgogICAKMTk5Ny0wNS0yNiAwMTo1MCAgd2hhcmRha2UKCiAgICogSU5TVEFMTCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChJTlNUQUxMLCBjb25maWd1cmUpOiBkZWZhdWx0IG1pYnMgbGlzdGVkIGNvcnJlY3RseS4KICAgCjE5OTctMDUtMjMgMDc6MzQgIHdoYXJkYWtlCgogICAqIG1hbi9taWJfYXBpLjM6CgogICAtIChtaWJfYXBpLjMpOiBNb2RpZml5IHRvIG5vdGUgZGVmYXVsdCBtaWJzLgogICAKMTk5Ny0wNS0yMyAwNzoyMyAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYnVnLXJlcG9ydCwKICAgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU4ICkKICAgCjE5OTctMDUtMjMgMDQ6NDAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiBDaGFuZ2UgdHJhcCB0eXBlcyBmcm9tIGludCB0byBsb25nLgogICAKMTk5Ny0wNS0yMyAwNDo0MCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMgdG8gZml4IFNOTVAgcGVybCBhZ2Fpbi4KICAgCjE5OTctMDUtMjMgMDQ6MzggIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2Vzc2VuIHRvIGZpeCBtdWx0aXBsZSBmcmVlcyBpbiB2MiBwZHUncy4KICAgCjE5OTctMDUtMjMgMDQ6MzcgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2Vzc2VuIHRvIGZpeCBlbmRpZW5uZXMgcHJvYmxlbXMuCiAgIAoxOTk3LTA1LTIzIDA0OjM2ICB3aGFyZGFrZQoKICAgKiBtaWJzLzogSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgU05NUHYyLVRDLnR4dDoKCiAgIC0gKEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIFNOTVB2Mi1UQy50eHQpOiBGcm9tIE5pZWxzOiBjaGFuZ2UgaW1wb3J0IGNsYXVzZXMuCiAgIAoxOTk3LTA1LTIzIDA0OjM2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZXNzZW4gdG8gZml4IGVuZGlhbm5lcyBwcm9ibGVtcy4KICAgCjE5OTctMDUtMjMgMDQ6MzUgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBTZXQgZGVmYXVsdCBNSUIgbGlzdC4KICAgCjE5OTctMDUtMjIgMDQ6MTMgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLU0yTS1NSUIudHh0OgoKICAgLSAoU05NUHYyLU0yTS1NSUIudHh0KTogcmVzdG9yZWQuICBHb3QgdHJ1bmNhdGVkLgogICAKMTk5Ny0wNS0yMSAwNjo0MCAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogQ2hhbmdlcyBmcm9tIERhdmUuCiAgIAoxOTk3LTA1LTIxIDA2OjM4ICB3aGFyZGFrZQoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IENoYW5nZXMgZnJvbSBEYXZlLgogICAKMTk5Ny0wNS0yMSAwMToxMyAgd2hhcmRha2UKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBVcGRhdGUgZm9yIDMuMi4KICAgCjE5OTctMDUtMjAgMDc6NTAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBjb2RlIGZyb20gRGF2ZSBTaGllbGQ6IGFkZCBiYWNrIGluIGZpbmRfbm9kZSgpIGZvciBwZXJsIHVzYWdlLgogICAKMTk5Ny0wNS0yMCAwNzo1MCAgd2hhcmRha2UKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBzbm1wc2V0IHNob3VsZCBjaGVjayBhZ2FpbnN0IHNpemUgZGVmaW5lZCBpbiBtaWIuCiAgIAoxOTk3LTA1LTIwIDAyOjI0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC91ZHAuYzoKCiAgIC0gKHVkcC5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uOiAgRml4IG15IGNwcCBzdHVwaWRpdHkuCiAgIAoxOTk3LTA1LTIwIDAxOjA4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBidWctcmVwb3J0LAogICBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTcgKQogICAKMTk5Ny0wNS0xOSAyMzoxOSAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2F1dGguYzoKCiAgIC0gKG1pYi5jLCBzbm1wX2F1dGguYyk6IGluY2x1ZGUgc3lzL3NlbGVjdC5oIGZvciBBSVguCiAgIAoxOTk3LTA1LTE5IDIzOjE5ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogcHJvdGVjdCBhZ2FpbnN0IDAgaW1wb3J0IGNhbGxzLgogICAKMTk5Ny0wNS0xOSAyMzoxOCAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItVEMudHh0OgoKICAgLSAoU05NUHYyLVRDLnR4dCk6IENvbW1lbnQgb3V0IE9iamVjdFN5bnRheCBpbXBvcnQuCiAgIAoxOTk3LTA1LTE5IDIzOjAzICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC91ZHAuYzoKCiAgIC0gKHVkcC5jKTogT25seSBkbyBNYXJ0aW4gSmFjb2Jzc2VuJ3MgZml4ZXMgZm9yIGZyZWVic2QyLgogICAKMTk5Ny0wNS0xNiAwMjoyNSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFByb3RlY3QgbWFsbG9jIGFnYWluc3QgMCBleHRlcm5hbCBpbXBvcnRzLgogICAKMTk5Ny0wNS0xNSAwNzo0MyAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLmM6CgogICAtICh1ZHAuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NlbjoKICAgICAtIEZpeCB1ZHBfaW5wY2Igc3RydWN0dXJlcy4KICAgCjE5OTctMDUtMTUgMDc6MjYgIHdoYXJkYWtlCgogICAqIElOU1RBTEwsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKiwgSU5TVEFMTCk6CiAgICAgLSBXb3JkaW5nIGFuZCBvcmRlciBjaGFuZ2VzIGluIGNvbmZpZ3VyZSAtLWhlbHAgbGluZXMuCiAgIAoxOTk3LTA1LTE1IDA3OjIyICB3aGFyZGFrZQoKICAgKiBJTlNUQUxMLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSosIElOU1RBTEwpOgogICAgIC0gRGlzcGxheSBkZWZhdWx0cyBpbiBjb25maWd1cmUgLS1oZWxwIGxpbmVzLgogICAKMTk5Ny0wNS0xNSAwNzowMSAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL21pYi5jOgoKICAgLSAoY29uZmlnKiwgbWliLmMpOgogICAgIC0gQ2hhbmdlZCBlbnYgdmFyaWFibGUgTUlCRklMRSAtPiBNSUJGSUxFUyAoc2luY2UgaXQgaXMgYSBsaXN0IG5vdykuCiAgICAgICAod2lsbCBhY2NlcHQgTUlCRklMRSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkpLgogICAgIC0gQnkgZGVmYXVsdCwgKm5vKiBhZGRpdGlvbmFsIG1pYmZpbGVzIGFyZSBsb2FkZWQgKGllLCBtaWIudHh0IGlzIG5vCiAgICAgICBsb25nZXIgbG9hZGVkKSBhbmQgbXVzdCBiZSB0dXJuZWQgb24gdGhyb3VnaCBjb25maWd1cmUgb3IgdGhlIGVudiB2YXIuCiAgICAgLSBOZXcgY29uZmlndXJlIG9wdGlvbnMgdG8gc2V0IGRlZmF1bHQgTUlCUywgTUlCRklMRVMsIE1JQkRJUlMuCiAgIAoxOTk3LTA1LTE1IDA2OjIyICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmg6CgogICAtIChwYXJzZS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDogIEFkZCBuZXcgbm9kZSBzdHJ1Y3R1cmUgZW50cmllcy4KICAgCjE5OTctMDUtMTUgMDU6MzcgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBwYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gZGVhbCB3aXRoIG11bHRpcGxlIG1vZHVsZSBJRCdzIGJlaW5nIHJlZmVyZW5jZWQgb3Igbm9kZXMgZGVmaW5lZC4KICAgICAtIHN1cHJlc3MgIm5hbWUgY2xhc2giIHdhcm5pbmdzIGZvciBhbm9ueW1vdXMgbm9kZXMuCiAgIAoxOTk3LTA1LTE1IDAyOjMyICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICAtIChtaWIuYywgcGFyc2UuYyk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBwcm90b3R5cGluZyBhbmQgbnVsbCBjaGVja2luZy4KICAgICAtIGlmIE1JQlMgaXMgc2V0IHRvIEFMTCwgcGFyc2UgZXZlcnl0aGluZyBmb3VuZC4KICAgCjE5OTctMDUtMTUgMDI6MzEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLVNNSS50eHQ6CgogICAtIChTTk1QdjItU01JLnR4dCk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46ICBjY2l0dCAtPiAwLgogICAKMTk5Ny0wNS0xNSAwMjozMCAgd2hhcmRha2UKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46ICBpbXBvcnQgaW5kZW50aWZpZXJzLgogICAKMTk5Ny0wNS0xNSAwMjoyOSAgd2hhcmRha2UKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIC0gKG1pYl9hcGkuMyk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46ICBNSUJTIHZhcmlhYmxlIGNhbiBiZSBzZXQgdG8gQUxMLgogICAKMTk5Ny0wNS0xNSAwMjoyOCAgd2hhcmRha2UKCiAgICogSU5TVEFMTDoKCiAgIC0gKElOU1RBTEwpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHJlZmVyZW5jZSB0aGUgbWFrZXRhcmdldCBzY3JpcHQuCiAgIAoxOTk3LTA1LTE1IDAyOjIzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBmaXggcHVyZWx5IG51bWVyaWMgT0lEcy4KICAgCjE5OTctMDUtMTUgMDI6MjIgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IHBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbiBmb3IgRnJlZUJTRAogICAKMTk5Ny0wNS0xNCAwNjowMCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYnVnLXJlcG9ydCwKICAgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU2ICkKICAgCjE5OTctMDUtMTQgMDQ6NDUgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogIFR5cGVjYXN0IG1hbGxvYy4KICAgCjE5OTctMDUtMTQgMDQ6MTcgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBPZGRiam9ybiBTdGVmZmVuc2VuOgogICAgIC0gUHJvdGVjdCBhZ2FpbnN0IGJhc2ggbmVlZGluZyAnOydzIG9uIG11bHRpcGxlIHN1YmRpciBtYWtlcy4KICAgCjE5OTctMDUtMTQgMDQ6MTMgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiB3YXJuIGlmIG1pYi50eHQgaXMgaW5zdGFsbGVkIGZyb20gYSBwcmV2aW91cyByZWxlYXNlLgogICAKMTk5Ny0wNS0xNCAwMjo0MSAgd2hhcmRha2UKCiAgICogbWliLnR4dCwgTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgbWliLnR4dCk6IHJlbW92ZWQgbWliLnR4dCBmcm9tIGRpc3RyaWJ1dGlvbi4gIE5vIGxvbmdlciBuZWVkZWQuCiAgIAoxOTk3LTA1LTEzIDA3OjIyICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIvbWliLmM6CgogICAtIChjb25maWcqLG1pYi5jKTogTmV3IGNvbmZpZ3VyZSBvcHRpb24gLS13aXRoLWRlZmF1bHQtbWlicz0ibGlzdDpsaXN0Ii4KICAgCjE5OTctMDUtMTMgMDY6MzggIHdoYXJkYWtlCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChtaWJzL01ha2VmaWxlLmluKTogdWNkLXNubXAudHh0IC0+IFVDRC1TTk1QLU1JQi50eHQuCiAgIAoxOTk3LTA1LTEzIDA2OjM2ICB3aGFyZGFrZQoKICAgKiBtaWJzL3VjZC1zbm1wLnR4dDoKCiAgIC0gKHVjZC1zbm1wLnR4dCk6IG1vdmVkIHRvIFVDRC1TTk1QLU1JQi50eHQKICAgCjE5OTctMDUtMTMgMDY6MzYgIHdoYXJkYWtlCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtb3ZlZCBmcm9tIHVjZC1zbm1wLnR4dC4KICAgCjE5OTctMDUtMTMgMDY6MDUgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGFyY2hpdGVjdHVyZSBsaXN0IHVwZGF0ZS4KICAgCjE5OTctMDUtMTMgMDY6MDUgIHdoYXJkYWtlCgogICAqIElOU1RBTEwsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKiwgSU5TVEFMTCk6IE5ldyBmbGFncyB0byBzZXQgcHJvbXB0ZWQgdmFsdWVzIGluc3RlYWQgb2YgcHJvbXB0aW5nLgogICAKMTk5Ny0wNS0xMyAwNTo0OCAgd2hhcmRha2UKCiAgICogbWlicy91Y2Qtc25tcC50eHQ6CgogICAtICh1Y2Qtc25tcC50eHQpOiBDaGFuZ2VkIElEIHRvIFVDRC1TTk1QCiAgIAoxOTk3LTA1LTEzIDAzOjAzICB3aGFyZGFrZQoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgLSAobWlicy9NYWtlZmlsZS5pbik6IHJlbW92ZWQgc25tcHYyLnR4dCwgcmZjMTI3MS50eHQuCiAgIAoxOTk3LTA1LTEzIDAzOjAyICB3aGFyZGFrZQoKICAgKiBtaWJzL3NubXB2Mi50eHQ6CgogICAtIChzbm1wdjIudHh0KTogcmVtb3ZlZC4KICAgCjE5OTctMDUtMTMgMDI6NTcgIHdoYXJkYWtlCgogICAqIG1pYnMvcmZjMTI3MS50eHQ6CgogICAtIChyZmMxMjcxLnR4dCk6IHJlbW92ZWQuCiAgIAoxOTk3LTA1LTEzIDAxOjUyICB3aGFyZGFrZQoKICAgKiBtaWJzLzogdWNkLXNubXAudHh0LCB1Y2QudHh0OgoKICAgLSAodWNkLnR4dCk6IHdob29wcy4gIFJlbW92ZWQuCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1JGQzEyMTMtTUlCLnR4dDoKCiAgIC0gKFJGQzEyMTMtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9SRkMxMTU1LVNNSS50eHQ6CgogICAtIChSRkMxMTU1LVNNSS50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvUkZDMTI3MS1NSUIudHh0OgoKICAgLSAoUkZDMTI3MS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1NMk0tTUlCLnR4dDoKCiAgIC0gKFNOTVB2Mi1NMk0tTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItUEFSVFktTUlCLnR4dDoKCiAgIC0gKFNOTVB2Mi1QQVJUWS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1VEUC1NSUIudHh0OgoKICAgLSAoVURQLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvVENQLU1JQi50eHQ6CgogICAtIChUQ1AtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItVE0udHh0OgoKICAgLSAoU05NUHYyLVRNLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItVEMudHh0OgoKICAgLSAoU05NUHYyLVRDLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItU01JLnR4dDoKCiAgIC0gKFNOTVB2Mi1TTUkudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1NSUIudHh0OgoKICAgLSAoU05NUHYyLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLUNPTkYudHh0OgoKICAgLSAoU05NUHYyLUNPTkYudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL0lQLU1JQi50eHQ6CgogICAtIChJUC1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9IT1NULVJFU09VUkNFUy1NSUIudHh0OgoKICAgLSAoSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9FdGhlckxpa2UtTUlCLnR4dDoKCiAgIC0gKEV0aGVyTGlrZS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL3VjZC50eHQ6CgogICAtICh1Y2QudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL0lGLU1JQi50eHQ6CgogICAtIChJRi1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTExIDIzOjUyICB3aGFyZGFrZQoKICAgKiBtaWJzL3VjZC1zbm1wLnR4dDoKCiAgIC0gKG1pYnMvdWNkLXNubXAudHh0KTogUGF0Y2ggZnJvbSBNYXJpbyBEZUZhemlvIHRvIGZpeCB0eXBvcy4KICAgICAtIGNvbXBpbGVzIHVuZGVyIFNOTVBjIDQuMWcuCiAgIAoxOTk3LTA1LTExIDIzOjQ5ICB3aGFyZGFrZQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChtYW4vTWFrZWZpbGUuaW4pOiBpbnN0YWxsIG1pYl9hcGkuMy4KICAgCjE5OTctMDUtMTEgMjM6NDggIHdoYXJkYWtlCgogICAqIElOU1RBTEwsIFJFQURNRSwgVE9ETzoKCiAgIC0gKElOU1RBTEwsIFJFQURNRSwgVE9ETyk6IGRvY3VtZW50YXRpb24gdXBkYXRlLgogICAKMTk5Ny0wNS0xMSAyMzo0NCAgd2hhcmRha2UKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IHJlbW92ZWQgQ0NIQUNLID8/Py4KICAgCjE5OTctMDUtMTEgMjM6NDMgIHdoYXJkYWtlCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jOgoKICAgLSAoY29uZmlnKiwgZXh0ZW5zaWJsZS5jKTogIEJTREkzIHNwZWNpZmljIGhlYWRlcnMgYW5kIGRlZmluZXMuCiAgIAoxOTk3LTA1LTEwIDA4OjIzICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IHNubXBkLmMsIG1pYmdyb3VwL3JlYWRfY29uZmlnLmMsCiAgIG1pYmdyb3VwL3N5c3RlbS5jOgoKICAgLSAoc25tcGQuYywgcmVhZF9jb25maWcuYywgc3lzdGVtLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZGVmYXVsdCB0cmFwIGNvbW11bml0eS4KICAgICAtIG11bHRpcGxlIHRyYXAgc2lua3MuCiAgIAoxOTk3LTA1LTEwIDA3OjUyICB3aGFyZGFrZQoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgLSAobWliX2FwaS4zKTogTmV3IGZpbGUgZnJvbSBEYXZlIFNoaWVsZC4KICAgCjE5OTctMDUtMTAgMDc6NDUgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgdXBkYXRlLgogICAKMTk5Ny0wNS0xMCAwNzo0MSAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIGRvbid0IHN1Ym1pdCBibGFuayBidWctcmVwb3J0cy4KICAgCjE5OTctMDUtMDkgMTU6NTAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIGRlYWwgd2l0aCBhbm9ueW1vdXMgSURzIChldmVuIGJldHRlcikuCiAgIAoxOTk3LTA1LTA5IDE1OjQ2ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBkZWFsIHdpdGggYW5vbnltb3VzIElEcy4KICAgCjE5OTctMDUtMDkgMTU6MjggIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIG5lZ2F0aXZlIG51bWJlcnMgaW4gbWlicy4KICAgCjE5OTctMDUtMDkgMTU6MDMgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYzoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jKTogcGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuOiBwcm90b3R5cGluZyAobW9zdGx5KS4KICAgCjE5OTctMDUtMDkgMTQ6NTIgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogc211eC5jLCBzbXV4Lmg6CgogICAtIChzbXV4LltjaF0pOiBwYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW46IHByb3RvdHlwaW5nLgogICAKMTk5Ny0wNS0wOSAxMzo0NiAgd2hhcmRha2UKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBVcGRhdGUuCiAgIAoxOTk3LTA1LTA5IDEzOjQ2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4LmMsIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlCiwgY29uZmlnLmguaW46CgogICAtIChzbXV4LmMsIGNvbmZpZyopOgogICAgIC0gY2hlY2sgZm9yIHNndHR5LmggYW5kIHByb3RvdHlwZSBiZXR0ZXIuCiAgIAoxOTk3LTA1LTA5IDEzOjM4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIG1pYi5jLCBtaWIuaCwgcGFyc2UuYwosIHBhcnNlLmg6CgogICAtIChtaWIuW2NoXSwgcGFyc2UuW2NoXSwgTWFrZWZpbGUuaW4pOiBOZXcgcGFyc2VyIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBSdW4tdGltZSBjb250cm9sIG9mIGluaXRpYWwgbW9kdWxlIGxvYWRpbmcKICAgICAgICAgICAgICh1c2VzIGVudiB2YXJpYWJsZXMgTUlCRElSUywgTUlCUywgYW5kIE1JQkZJTEUpCiAgICAgLSBEZWZpbmVkIGludGVyZmFjZXMgZm9yIGxvYWRpbmcgbW9kdWxlcyBhbmQgcmV0cmVpdmluZyBlbnRyaWVzCiAgICAgLSBNb2R1bGUgc2NvcGluZyBub3cgaW5jbHVkZXMgVGV4dHVhbCBDb252ZW50aW9ucwogICAgIC0gVG9rZW5zIGltcGxlbWVudGVkIGludGVybmFsbHkgbm8gbG9uZ2VyIHJlcXVpcmUgaW1wb3J0aW5nIHRoZQogICAgICAgY29ycmVzcG9uZGluZyBtb2R1bGVzCiAgIAoxOTk3LTA0LTIyIDExOjQ5ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBidWctcmVwb3J0LAogICBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTUgKQogICAKMTk5Ny0wNC0yMiAwODo0MyAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9zbXV4LmM6CgogICAtIChjb25maWcqLCBzbXV4LmMpOiBDaGVjayBmb3IgaGVhZGVycyBhbmQgZGVmaW5lIEZEX0NPUFkgaWYgbm90IGRlZmluZWQuCiAgIAoxOTk3LTA0LTIyIDA3OjQxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IHNtdXguYywgc211eC5oLCBzbm1wX2JncC5jLAogICBzbm1wX29zcGYuYywgc25tcF9yaXAyLmM6CgogICAtIChzbm1wX2JncC5jLCBzbm1wX3JpcDIuYywgc25tcF9vc3BmLmMsIHNtdXguW2NoXSk6CiAgICAgLSBzdGFuZGFyZGl6ZSBoZWFkZXJzIGZvciBhdXRvY29uZi4KICAgICAtIHNtdXhfaW5pdCgpIC0+IGluaXRfc211eCgpLgogICAgIC0gU01VWERFQlVHIC0+IERPREVCVUcgKC0tZW5hYmxlLWRlYnVnZ2luZyB0dXJucyB0aGlzIG9uIGF1dG9tYXRpY2FsbHkpLgogICAKMTk5Ny0wNC0yMiAwNjo1MSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbm1wX2JncC5jLCBzbm1wX2JncC5oLCBzbm1wX29zcGYuYwosIHNubXBfb3NwZi5oLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmg6CgogICAtIChzbm1wX2JncC5bY2hdLCBzbm1wX3JpcDIuW2NoXSwgc25tcF9vc3BmLltjaF0pOgogICAgIC0gY29uZm9ybSB0byBuZXcgbW9kdWxlIHN0YW5kYXJkcyBvZiBjb2RpbmcuCiAgIAoxOTk3LTA0LTIyIDA2OjQ3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9jb21tb25faGVhZGVyLmg6CgogICAtIChjb21tb25faGVhZGVyLmgpOiByZW1vdmUgZHVwbGljYXRlICh3YXJuaW5nKSBUQ1AgZGVmaW5lcyBvbiBvc2Y0IHN5c3RlbXMuCiAgIAoxOTk3LTA0LTIyIDA2OjIwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IFJFQURNRS5zbXV4LCBzbXV4LmMsIHNtdXguaCwKICAgc25tcF9iZ3AuYywgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jOgoKICAgLSAoUkVBRE1FLnNtdXgsIHNtdXguYywgc211eC5oLCBzbm1wX2JncC5jLCBzbm1wX29zcGYuYywgc25tcF9yaXAyLmMpOgogICAgIC0gc211eCBzdXBwb3J0IGZvciBnYXRlZCBmcm9tIFJvaGl0IER1YmUuCiAgIAoxOTk3LTA0LTIyIDA2OjAyICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wdGVzdC5jCiwgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAobWFueSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gZml4IHZhcmlvdXMgdGhpbmdzLCBtb3N0bHkgb24gbGludXguCiAgIAoxOTk3LTA0LTIyIDA1OjU5ICB3aGFyZGFrZQoKICAgKiBtYWtldGFyZ2V0LCBhZ2VudC9jb21tb25faGVhZGVyLmgsIGFnZW50L2tlcm5lbC5jCiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMubGludXguaCwKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzay5jLCBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC9pY21wLmMsIGFnZW50L21pYmdyb3VwL2ljbXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgKLCBhZ2VudC9taWJncm91cC9pcC5jLCBhZ2VudC9taWJncm91cC9pcC5oLAogICBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMsIGFnZW50L21pYmdyb3VwL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5jLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuaCwgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMKLCBhZ2VudC9taWJncm91cC90Y3AuYywgYWdlbnQvbWliZ3JvdXAvdGNwLmgsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5jLCBhZ2VudC9taWJncm91cC91ZHAuaCwKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5oOgoKICAgLSAobWFueSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gZml4IHZhcmlvdXMgdGhpbmdzLCBtb3N0bHkgb24gbGludXguCiAgIAoxOTk3LTA0LTIxIDIzOjQyICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2YXJpb3VzIHVwZGF0ZXMuCiAgIAoxOTk3LTAzLTI2IDA4OjA1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9zeXN0ZW0uYzoKCiAgIC0gKG1pYmdyb3VwL3N5c3RlbS5jKTogcmVwb3J0IGFnZW50IHVwdGltZSByYXRoZXIgdGhhbiBzeXN0ZW0gdXB0aW1lLgogICAKMTk5Ny0wMy0yNSAwNDozMCAgd2hhcmRha2UKCiAgICogSU5TVEFMTDoKCiAgIC0gKElOU1RBTEwpOiBtaW5vciBkb2MgdXBkYXRlIGZvciBuZXcgZmxhZ3MuCiAgIAoxOTk3LTAzLTI1IDAwOjM5ICB3aGFyZGFrZQoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGFkZGVkIHN5c2xvY2F0aW9uIGFuZCBzeXNjb250YWN0IGV4YW1wbGVzLgogICAKMTk5Ny0wMy0yNCAwNDo1NiAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZC4KICAgCjE5OTctMDMtMjQgMDA6NTEgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHJ1bnMgb24gYnNkaSAyLjEuCiAgIAoxOTk3LTAzLTI0IDAwOjUxICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogV2F0Y2ggb3V0IGZvciBtdWx0aXBsZSBzcGFjZXMgaW4gQyBkZWZzLgogICAKMTk5Ny0wMy0yNCAwMDo1MCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlLmMsIGV4YW1wbGUuaDoKCiAgIC0gKGV4YW1wbGUuYywuaCk6IE5ldyBleGFtcGxlIG1pYiBtb2R1bGUgZHVwbGljYXRpbmcgdGhlIHBhc3N0ZXN0CiAgICAgc2NyaXB0IGluIEMgY29kZS4KICAgCjE5OTctMDMtMjQgMDA6NDkgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiBwcm90b3R5cGUgd3JpdGUgZnVuY3Rpb24gYmV0dGVyLgogICAKMTk5Ny0wMy0xOCAwNzo1MyAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogc25tcC5jb25mIC0+IHNubXBkLmNvbmYKICAgCjE5OTctMDMtMTggMDc6NTIgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5Ny0wMy0xNCAwNzoxNiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvUkVBRE1FOgoKICAgLSAobWliZ3JvdXAvUkVBRE1FKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk3LTAzLTE0IDA0OjU1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBzZWRzY3JpcHQuaW4sCiAgIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTQgKQogICAKMTk5Ny0wMy0xNCAwNDo1NCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIG1pYnMvdWNkLXNubXAudHh0OgoKICAgLSAoYWNjb25maWcuaCwgdWNkLXNubXAudHh0KTogcmVjb2duaXplIG5ldyBob3N0cyBmb3Igc3lzT2JqZWN0SWQuCiAgIAoxOTk3LTAzLTE0IDA0OjUzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLCBhZ2VudC9zbm1wZC5jCjoKCiAgIC0gKHNubXBkLmMsIGNvbnRleHRfcGFyc2UuYywgcGFydHlfcGFyc2UuYywgc3lzdGVtLltjaF0pOgogICAgIC0gNjRiaXQgZml4OiBnZXRfbXlhZGRyKCkgc2hvdWxkIHJldHVybiBpbnQgbm90IGxvbmcuCiAgIAoxOTk3LTAzLTE0IDA0OjUxICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgYXBwcy9NYWtlZmlsZS5pbik6IGZpeCB0cmFwIGJ5IGluY2x1ZGluZyBvcHRpb25hbCAubyBmaWxlcy4KICAgCjE5OTctMDMtMTQgMDI6MjIgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfZ3JvdXB2YXJzLmg6CgogICAtIChzbm1wX2dyb3VwdmFycy5oKTogYXhlLgogICAKMTk5Ny0wMy0xNCAwMjoyMCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzX2V2ZW50Lmg6CgogICAtIChzbm1wX3ZhcnNfZXZlbnQuaCk6IGF4ZS4KICAgCjE5OTctMDMtMTQgMDI6MTggIHdoYXJkYWtlCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTctMDMtMTQgMDI6MTcgIHdoYXJkYWtlCgogICAqIG1ha2VkZXBlbmQuaW46CgogICAtIChtYWtlZGVwZW5kLmluKTogcnVuIG9uIHNubXBuZXRzdGF0IGRpciBhbHNvLgogICAKMTk5Ny0wMy0xNCAwMjowNyAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IEZpeCBzZWRzY3JpcHQgdG8gaW5jbHVkZSBzIyBhcyB3ZWxsIGFzIHMvIGNvbW1hbmRzLgogICAKMTk5Ny0wMy0xNCAwMjowMSAgd2hhcmRha2UKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoc25tcGQuMS5kZWYpOiBVcGRhdGVkIHRvIGluY2x1ZGUgLWMvLUMgYW5kIFNOTVBDT05GUEFUSCBlbnYgdmFyLgogICAKMTk5Ny0wMy0xNCAwMTo0OSAgd2hhcmRha2UKCiAgICogbWlicy91Y2Qtc25tcC50eHQ6CgogICAtICh1Y2Qtc25tcC50eHQpOiByZW1vdmUgdGhlIGxhc3Qgb2YgdGhlIHNlZCBzY3JpcHQgZGVmcy4KICAgCjE5OTctMDMtMTQgMDE6NDggIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBjb25maWcqLCBtaWJzL01ha2VmaWxlLmluKTogZW5hYmxlIG1pYnMvIG1ha2UgaW5zdGFsbC4KICAgCjE5OTctMDMtMTQgMDA6NDkgIHdoYXJkYWtlCgogICAqIG1pYnMvOiByZmMxMjcxLnR4dCwgc25tcHYyLnR4dCwgdWNkLXNubXAudHh0OgoKICAgLSAobWlicy97cmZjMTI3MSxzbm1wdjIsdWNkLXNubXB9LnR4dCk6IE5ldyBtaWJzIGRpcmVjdG9yeSBmb3Igc3ViLW1pYnMuCiAgIAoxOTk3LTAzLTE0IDAwOjQ3ICB3aGFyZGFrZQoKICAgKiBtaWIudHh0OgoKICAgLSAobWliLnR4dCk6IHN0cmVhbWVkIGRvd24uCiAgIAoxOTk3LTAzLTE0IDAwOjQ2ICB3aGFyZGFrZQoKICAgKiB1Y2Qtc25tcC50eHQ6CgogICAtICh1Y2Qtc25tcC50eHQpOiBtb3ZlZCB0byBtaWJzLy4KICAgCjE5OTctMDMtMTQgMDA6MzggIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBlY2UtbWliLmRlZiwgbWliLnR4dCwgbWliSUkudHh0CiwgdWNkLXNubXAudHh0OgoKICAgLSAodWNkLXNubXAudHh0LCBtaWIudHh0LCBNYWtlZmlsZS5pbik6IERvbid0IGJ1aWxkIG1pYiBmaWxlcyBhbnltb3JlLgogICAKMTk5Ny0wMy0xMyAwODo0NSAgd2hhcmRha2UKCiAgICogbWFrZXRhcmdldCwgYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvc25tcGQuaCwgYWdlbnQvbWliZ3JvdXAvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmMsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLAogICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaAosIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgbWFuL3NubXBkLjEuZGVmLAogICBtYW4vc25tcG5ldHN0YXQuMSwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAobWFueSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2Vuc2VuOgogICAgIC0gQSBsYXJnZSBudW1iZXIgb2YgcHJvYmxlbXMgd2l0aCB0aGUgTGludXggcG9ydAogICAgIC0gU29tZSBwcm9ibGVtcyB3aXRoIE5ldEJTRCAxLjJDLCBidXQgaXQncyBzdGlsbCBub3QgcGVyZmVjdAogICAgIC0gTW9yZSAoc3ltYm9saWMpIGRlYnVnIG91dHB1dCBmcm9tIHNubXBkLCB3aGVuIHVzaW5nIC1WLiAtZCBpbXBsaWVzIC1WCiAgICAgICBTaG93cyB5b3UgdmFyaWFibGUgcmVxdWVzdGVkIGFuZCB2YWx1ZSByZXR1cm5lZAogICAgIC0gUmV0dXJuIGlwUm91dGVNYXNrIHVuZGVyIFNvbGFyaXMKICAgICAtIHNubXBuZXRzdGF0IC1yIHNob3dzIG5vbi1zdGFuZGFyZCBuZXRtYXNrcwogICAgIC0gc25tcG5ldHN0YXQgLW8gKG5ldykgc2hvd3MgaW50ZXJmYWNlIG9jdGV0cywgd2l0aG91dCBlbnF1aXJpbmcgZm9yIG10dQogICAgICAgYW5kIG90aGVyIHZhcmlhYmxlcyBub3QgcHJlc2VudCBmb3IgYSBDaXNjbyBGcmFtZS1SZWxheSB2aXJ0dWFsIGNpcmN1aXQKICAgICAgIGludGVyZmFjZQogICAgIC0gc25tcG5ldHN0YXQgdGNwL3VkcCBwcmludC1vdXQgaGFkIG50b2hzL2h0b25zIGluIHdyb25nIHBsYWNlcyBmb3IgcG9ydAogICAgICAgbnVtYmVycyAoc2hvd3MgdXAgb24gbGl0dGxlLWVuZGlhbiBhcmNoaXRlY3R1cmVzKQogICAgIC0gYWRkcyBhIG1ha2V0YXJnZXQgc2NyaXB0IHRoYXQgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgcGFyYWxsZWwgc3ltbGlua2VkCiAgICAgICBzb3VyY2UgZGlyZWN0b3J5LiBVc2VmdWwgaWYgeW91ciBtYWtlIGRvZXMgbm90IHN1cHBvcnQgVlBBVEgKICAgCjE5OTctMDMtMTMgMDg6MTcgIHdoYXJkYWtlCgogICAqIGFnZW50L2NvbW1vbl9oZWFkZXIuaDoKCiAgIC0gKGNvbW1vbl9oZWFkZXIuaCk6IGZpeCBwYXRoIHRvIGFsYXJtLmguCiAgIAoxOTk3LTAzLTEzIDA3OjE3ICB3aGFyZGFrZQoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIHNubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgLSAoYXBwcy8qL01ha2VmaWxlLmluKTogZGVwZW5kIHByb2JsZW1zIGZpeC4KICAgCjE5OTctMDMtMTMgMDc6MTAgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IHJlbW92ZSBkdXBsaWNhdGUgZ2V0aG9zdG5hbWUgY2hlY2suCiAgIAoxOTk3LTAzLTEzIDA3OjA3ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kIGFuZCBydWxlIGZpeGVzIGFzIHdlbGwuCiAgIAoxOTk3LTAzLTEzIDA2OjQ1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogTmV3IG1ha2UgZGVwZW5kIHJ1bGVzIHRvIHNlcGVyYXRlIHN5c3RlbS9ub24gZGVwZW5kZW50IHN0dWZmLgogICAKMTk5Ny0wMy0xMyAwNjo0NSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogY2hlY2sgZm9yIHN5c3RlbSBkZXBlbmRlbnQgbW9kdWxlcy4KICAgCjE5OTctMDMtMTMgMDY6MzYgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogdmlld192YXJzLmMsIGNvbnRleHRfdmFycy5jLAogICBhY2xfdmFycy5jOgoKICAgLSAodmlld192YXJzLmMsIGNvbnRleHRfdmFycy5jLCBhY2xfdmFycy5jKTogZG9uJ3QgaW5jbHVkZSBzbm1wdjJfdmFycy5oLgogICAKMTk5Ny0wMy0xMyAwNjozNSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocHV4LmMsIG1lbW9yeS5jLCBtZW1vcnkuaDoKCiAgIC0gKGhwdXguYywgbWVtb3J5LmMsIG1lbW9yeS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMgdG8gZml4IG1pbm9yIHByb2JsZW1zLgogICAKMTk5Ny0wMy0xMyAwNTo0NCAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgYWNsLmNvbmYsIGtlcm5lbF9zdW5vczUuYwosIGtlcm5lbF9zdW5vczUuaCwgcm91dGVfd3JpdGUuYywKICAgc25tcF92YXJfcm91dGUuYywgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLAogICBtaWJncm91cC9rZXJuZWxfc3Vub3M1Lmg6CgogICAtIChrZXJuZWxfc3Vub3M1LltjaF0pOiBtb3ZlZCB0byBtaWJncm91cC8uCiAgIC0gKHJvdXRlX3dyaXRlLmMsIHNubXBfdmFyX3JvdXRlLmMpOiBkZWxldGUgZnJvbSBhZ2VudCBkaXIuCiAgIAoxOTk3LTAzLTEzIDA1OjM0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBhY2xfdmFycy5jLCBhbGFybS5jLAogICBhbGFybS5oLCBjb21tb25faGVhZGVyLmgsIGNvbnRleHRfdmFycy5jLCBldmVudC5jCiwgZXZlbnQuaCwgcGFydHlfdmFycy5jLCBzbm1wX3ZhcnMuYywKICAgc25tcGQuYywgdmlld192YXJzLmMsIG1pYmdyb3VwL2FjbF92YXJzLmMsCiAgIG1pYmdyb3VwL2FjbF92YXJzLmgsIG1pYmdyb3VwL2FsYXJtLmMsIG1pYmdyb3VwL2FsYXJtLmgKLCBtaWJncm91cC9jb250ZXh0X3ZhcnMuYywgbWliZ3JvdXAvY29udGV4dF92YXJzLmgKLCBtaWJncm91cC9ldmVudC5jLCBtaWJncm91cC9ldmVudC5oLAogICBtaWJncm91cC9wYXJ0eV92YXJzLmMsIG1pYmdyb3VwL3BhcnR5X3ZhcnMuaCwKICAgbWliZ3JvdXAvc25tcHYyX3N1YnRyZWVzLmgsIG1pYmdyb3VwL3NubXB2Ml92YXJzLmgsCiAgIG1pYmdyb3VwL3ZpZXdfdmFycy5jLCBtaWJncm91cC92aWV3X3ZhcnMuaDoKCiAgIC0gKGFnZW50LyosIG1pYmdyb3VwLyopOiBtb3ZlZCBhbGFybSwgY29udGV4dCwgdmlld3MsIGV2ZW50LCBwYXJ0eSwKICAgICBhbmQgYWNsIHZhcmlhYmxlIGdyb3VwcyB0byBtaWJncm91cC8uCiAgIAoxOTk3LTAzLTEzIDAxOjE0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlX3N1YnRyZWVzLmg6CgogICAtIChleHRlbnNpYmxlX3N1YnRyZWVzLmgpOiBSZW1vdmVkIGZpbGUuCiAgIAoxOTk3LTAzLTEzIDAwOjM3ICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9wYXJ0eV9wYXJzZS5jOgoKICAgLSAoY29uZmlnKik6IGNoZWNrIGZvciBpbl9hZGRyX3QgYW5kIGRlZmluZSBhcyB1X2ludCAoMzIgYml0cykgaWYgbm90IHByZXNlbnQuCiAgIC0gKGFwcHMvKi5jLCBwYXJ0eV9wYXJzZS5jKTogdXNlIGl0LgogICAKMTk5Ny0wMy0xMyAwMDozMiAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHdhbGsuYzoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgaW5fYWRkcl90IGFuZCBkZWZpbmUgYXMgdV9pbnQgKDMyIGJpdHMpIGlmIG5vdCBwcmVzZW50LgogICAtIChhcHBzLyouYywgcGFydHlfcGFyc2UuYyk6IHVzZSBpdC4KICAgCjE5OTctMDMtMTIgMDg6MTUgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiByZXR1cm5zIGZyb20gaW5ldF9hZGRyIGFyZSBpbl9hZGRyX3QgKHVfaW50KSBub3QgdV9sb25nLgogICAKMTk5Ny0wMy0xMiAwNjo1NSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvUkVBRE1FOgoKICAgLSAobWliZ3JvdXAvUkVBRE1FKTogZG9jIHVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5Ny0wMy0xMiAwNjo0OCAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQgdXBkYXRlLgogICAKMTk5Ny0wMy0xMiAwNjo0NSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2lwLmMsIGFnZW50L21pYmdyb3VwL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmMsIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmgKLCBhZ2VudC9taWJncm91cC9zbm1wLmMsIGFnZW50L21pYmdyb3VwL3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5oOgoKICAgLSAoY29uZmlndXJlLmluLCBzbm1wZC5jLCBzbm1wX2FnZW50LmMsIHJvdXRlX3dyaXRlLltjaF0sCiAgICAgdmFyX3JvdXRlLltjaF0sIGlwLltjaF0sIHNubXAuW2NoXSAtPiBzbm1wX21pYi5bY2hdKToKICAgICAtIE1vdmVkIHNubXAgbWliIG1vZHVsZSAtPiBzbm1wX21pYiBmb3IgbmFtaW5nIGNvbmZsaWN0cyB3aXRoIHNubXBsaWIuCiAgICAgLSBNb3ZlZCBzbm1wX3Zhcl9yb3V0ZS5jIC0+IG1pYmdyb3VwL3Zhcl9yb3V0ZS5jCiAgICAgLSBNb3ZlZCB3cml0ZV9yb3V0ZS5jIC0+IG1pYmdyb3VwL3dyaXRlX3JvdXRlLmMKICAgCjE5OTctMDMtMTIgMDA6MjggIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogc25tcF9taWIuYywgc25tcF9taWIuaDoKCiAgIC0gKG1pYmdyb3VwL3NubXAuW2hjXSAtPiBtaWJncm91cC9zbm1wX21pYi5baGNdKTogTW92ZWQgZHVlIHRvIG5hbWUgY2xhc2hlcy4KICAgCjE5OTctMDMtMTEgMDg6MzYgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2F0LmgsIGFnZW50L21pYmdyb3VwL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pcC5jLAogICBhZ2VudC9taWJncm91cC9zbm1wLmMsIGFnZW50L21pYmdyb3VwL3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL3RjcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuYywgYWdlbnQvbWliZ3JvdXAvd29tYmF0LmMsCiAgIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvc25tcF92YXJfcm91dGUuYywgc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYmdyb3VwLyopOgogICAgIC0gcmVtb3ZlIHRyYWlsaW5nIDtzIG9uIGJ1bmNoZXMgb2YgZnVuY3Rpb25zLgogICAgIC0gbWFrZSBldmVyeXRoaW5nIGJ1dCBpbnRlcmZhY2VzLmMgY29tcGlsZSBvbiBpcml4Ni4zLgogICAtIChjb25maWcqLHN5c3RlbS5jKTogdXNlIHVuYW1lIGFuZCBnZXRob3N0bmFtZSBpZiBhdmFpbGFibGUuCiAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogRG9uJ3QgY2hlY2sgX0tFUk5FTCBpZiBpZm5ldC5pZl9tdHUgYWxyZWFkeSB3b3Jrcy4KICAgCjE5OTctMDMtMTEgMDA6MDQgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2lwLmM6CgogICAtIChpcC5jKTogZnJlZWJzZDIgcGF0Y2guCiAgIAoxOTk3LTAzLTEwIDA4OjI4ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IHNwYWNlIHByb3RlY3QgbW9kdWxlcyB3aGVuIGNoZWNraW5nIGZvciB3aXRoIGdyZXAuCiAgIAoxOTk3LTAzLTEwIDA3OjU1ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IE5ldyBjb25maWd1cmUgb3B0aW9uOiAgLS13aXRoLW91dC1taWItbW9kdWxlcz0ibGlzdCIuCiAgIAoxOTk3LTAzLTA3IDA3OjExICB3aGFyZGFrZQoKICAgKiBhZ2VudC9jb21tb25faGVhZGVyLmg6CgogICAtIChjb21tb25faGVhZGVyLmgpOiBjb21tZW50IG91dCBlbmQgb2YgI2VuZGlmLgogICAKMTk5Ny0wMy0wNyAwNzowOSAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IG1ha2UgbmV3IGNvbmZpZ3VyZSBvcHRpb25zIHJlc3BlY3QgJChzcmNkaXIpLgogICAKMTk5Ny0wMy0wNyAwNjowMiAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUpOiByZW1vdmVkIHt9IHJlcXVpcmVtZW50IGZyb20gY29uZmlnX2xvYWRfbWliKCkgY2FsbHMuCiAgIAoxOTk3LTAzLTA3IDA2OjAwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmgsIGRpc2suaCwgZXJyb3JtaWIuaCwKICAgZXh0ZW5zaWJsZS5oLCBpY21wLmgsIGludGVyZmFjZXMuaCwgaXAuaCwKICAgbG9hZGF2ZS5oLCBtZW1vcnkuaCwgcHJvYy5oLCBzbm1wLmgsCiAgIHN5c3RlbS5oLCB0Y3AuaCwgdWRwLmgsIHZlcnNpb25pbmZvLmgsCiAgIHdvbWJhdC5oOgoKICAgLSAobWliZ3JvdXAvKik6IHJlbW92ZWQge30gcmVxdWlyZW1lbnQgZnJvbSBjb25maWdfbG9hZF9taWIoKSBjYWxscy4KICAgCjE5OTctMDMtMDcgMDU6MDEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIHNlZHNjcmlwdC5pbiwKICAgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlMyApCiAgIAoxOTk3LTAzLTA3IDA0OjUxICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXAuYzoKCiAgIC0gKHNubXBsaWIvc25tcC5jKTogcmVtb3ZlIHNlY29uZCBjdHlwZS5oIGluY2x1ZGUuCiAgIAoxOTk3LTAzLTA3IDA0OjUwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9ocHV4LmM6CgogICAtIChocHV4LmMpOiBpZmRlZiBhIGZldyBoZWFkZXJzIGZvciBjb3JyZWN0IG1ha2UgZGVwZW5kLgogICAKMTk5Ny0wMy0wNyAwNDo0OSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIChtaWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbik6IGRlcGVuZC4KICAgCjE5OTctMDMtMDcgMDQ6NDggIHdoYXJkYWtlCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMpOiByZW1vdmUgZXh0cHJvdG8uaCBpbmNsdWRlLgogICAKMTk5Ny0wMy0wNyAwNDo0NyAgd2hhcmRha2UKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kIGFuZCBleHRlbnNpYmxlLyByZW1vdmVzLgogICAKMTk5Ny0wMy0wNyAwNDo0NiAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZy5oLmluLCBzZWRzY3JpcHQuaW46CgogICAtIChNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluKTogRml4IHNlZHNjcmlwdCBnZW5lcmF0aW9uLiAgc2lnaC4KICAgCjE5OTctMDMtMDcgMDQ6NDQgIHdoYXJkYWtlCgogICAqIC5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogYWRkIG1pYl9tb2R1bGVfY29uZmlnLmgKICAgCjE5OTctMDMtMDcgMDQ6NDAgIHdoYXJkYWtlCgogICAqIHJlbW92ZS1maWxlczoKCiAgIC0gKHJlbW92ZS1maWxlcyk6IGFkZCBtYWtlZGVwZW5kLmluCiAgIAoxOTk3LTAzLTA3IDA0OjM5ICB3aGFyZGFrZQoKICAgKiBtYWtlZGVwZW5kLmluOgoKICAgLSAobWFrZWRlcGVuZC5pbik6IG5ldyBtYWtlIGRlcGVuZCBzY3JpcHQKICAgCjE5OTctMDMtMDcgMDI6NDIgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IGdlbmVyYXRlIGEgbWliX21vZHVsZV9jb25maWcuaCB3aXRoIGRlZmluZXMgb2Ygd2hhdHMgYmVpbmcgdXNlZC4KICAgCjE5OTctMDMtMDcgMDE6NDkgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oOgoKICAgLSAobWliZ3JvdXAvc3RydWN0LmgpOiBtb3ZlZCB0byBoZXJlLgogICAKMTk5Ny0wMy0wNyAwMTozNCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocHV4LmMsIGhwdXguaDoKCiAgIC0gKGhwdXguW2NoXSk6IEFkZGVkIGhwdXggc3BlY2lmaWMgZmlsZXMgZnJvbSBleHRlbnNpYmxlIGRpci4KICAgCjE5OTctMDMtMDcgMDE6MDcgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtIChtaWJtb2R1bGUvdmVyc2lvbnRhZyk6IG1vdmVkIGludG8gcGxhY2UgZnJvbSBleHRlbnNpYmxlLwogICAKMTk5Ny0wMy0wNyAwMDo1OCAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuaCwgbWliZ3JvdXAvZGlzay5jLCBtaWJncm91cC9kaXNrLmgKLCBtaWJncm91cC9lcnJvcm1pYi5jLCBtaWJncm91cC9lcnJvcm1pYi5oLAogICBtaWJncm91cC9leHRlbnNpYmxlLmMsIG1pYmdyb3VwL2V4dGVuc2libGUuaCwKICAgbWliZ3JvdXAvaXAuYywgbWliZ3JvdXAvaXAuaCwgbWliZ3JvdXAvbG9hZGF2ZS5jLAogICBtaWJncm91cC9sb2FkYXZlLmgsIG1pYmdyb3VwL3Bhc3MuYywgbWliZ3JvdXAvcGFzcy5oCiwgbWliZ3JvdXAvcHJvYy5jLCBtaWJncm91cC9wcm9jLmgsCiAgIG1pYmdyb3VwL3JlYWRfY29uZmlnLmMsIG1pYmdyb3VwL3JlYWRfY29uZmlnLmgsCiAgIG1pYmdyb3VwL3NubXAuYywgbWliZ3JvdXAvc3lzdGVtLmMsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuYywgbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgLSAoc25tcF92YXJzLmgsIG1pYmdyb3VwLyopOiBzdHJpY3QtcHJvdG90eXBpbmcgYW5kIGNvbmZpZ19yZXF1aXJlKClzLgogICAKMTk5Ny0wMy0wNyAwMDowNyAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZWQgbW9yZSBub24tbWliZ3JvdXAgc3BlY2lmaWMgY2FsbHMgYW5kIGhlYWRlcnMuCiAgIAoxOTk3LTAzLTA3IDAwOjA1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IG1pYmdyb3VwL01ha2VmaWxlLmluLCBtaWJncm91cC9kaXNrLmMsCiAgIG1pYmdyb3VwL2Rpc2suaCwgbWliZ3JvdXAvZXJyb3JtaWIuYywKICAgbWliZ3JvdXAvZXJyb3JtaWIuaCwgbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLAogICBtaWJncm91cC9leHRlbnNpYmxlLmgsIG1pYmdyb3VwL2xvYWRhdmUuYywKICAgbWliZ3JvdXAvbG9hZGF2ZS5oLCBtaWJncm91cC9tZW1vcnkuYywKICAgbWliZ3JvdXAvbWVtb3J5LmgsIG1pYmdyb3VwL21pYmRlZnMuaCwKICAgbWliZ3JvdXAvbWliaW5jbC5oLCBtaWJncm91cC9wYXNzLmMsIG1pYmdyb3VwL3Bhc3MuaAosIG1pYmdyb3VwL3Byb2MuYywgbWliZ3JvdXAvcHJvYy5oLAogICBtaWJncm91cC9yZWFkX2NvbmZpZy5jLCBtaWJncm91cC9yZWFkX2NvbmZpZy5oLAogICBtaWJncm91cC9zeXN0ZW0uYywgbWliZ3JvdXAvc3lzdGVtLmgsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuYywgbWliZ3JvdXAvdXRpbF9mdW5jcy5oLAogICBtaWJncm91cC92ZXJzaW9uaW5mby5jLCBtaWJncm91cC92ZXJzaW9uaW5mby5oLAogICBNYWtlZmlsZS5pbjoKCiAgIC0gKGV4dGVuc2libGUvKiAtPiBtaWJncm91cC8qKTogbW92ZWQgZXh0ZW5zaWJsZSBzdHVmZiB0byBtaWIgbW9kdWxlcy4KICAgCjE5OTctMDMtMDUgMDc6MjkgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBZZXAuIEl0IHdhcyB3cm9uZy4gIFRlc3RlZCBhbmQgd29ya3Mgbm93LgogICAKMTk5Ny0wMy0wNSAwNzoxNSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGZpeGVkIHByb3RvdHlwaW5nIGVycm9ycyBpbiBzbm1wX3BhcnNlLiAgUG9zc2libHkgd3JvbmcuCiAgIAoxOTk3LTAzLTA1IDA3OjEzICB3aGFyZGFrZQoKICAgKiBhZ2VudC9hY2xfdmFycy5jOgoKICAgLSAoYWNsX3ZhcnMuYyk6IGluY29ycmVjdGx5IGZpeGVkIHByb3RvdHlwaW5nIGVycm9ycyBmb3Igd3JpdGVfYWNsKCkuCiAgIAoxOTk3LTAzLTA1IDA2OjA1ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogYWNsLmMsIGFjbC5oLCBhY2xfcGFyc2UuYywgYXNuMS5jCiwgYXNuMS5oLCBjb250ZXh0LmMsIGNvbnRleHQuaCwKICAgY29udGV4dF9wYXJzZS5jLCBtZDUuYywgbWQ1LmgsIG1pYi5jLAogICBtaWIuaCwgcGFyc2UuYywgcGFyc2UuaCwgcGFydHkuYywgcGFydHkuaAosIHBhcnR5X3BhcnNlLmMsIHNubXAuaCwgc25tcF9hcGkuYywKICAgc25tcF9hcGkuaCwgc25tcF9hdXRoLmMsIHNubXBfY2xpZW50LmMsCiAgIHNubXBfY2xpZW50LmgsIHNubXBfaW1wbC5oLCBzeXN0ZW0uYywgc3lzdGVtLmgKLCB2aWV3LmMsIHZpZXcuaDoKCiAgIC0gKCouYywgKi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBwcm90b3R5cGUgKmV2ZXJ5dGhpbmcqLgogICAKMTk5Ny0wMy0wNSAwNjowMSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvYXQuYywgYWdlbnQvbWliZ3JvdXAvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pY21wLmgsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oCiwgYWdlbnQvbWliZ3JvdXAvaXAuYywgYWdlbnQvbWliZ3JvdXAvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcC5jLCBhZ2VudC9taWJncm91cC9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2Ml92YXJzLmgsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5oLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmgsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgLSAoKi5jLCAqLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHByb3RvdHlwZSAqZXZlcnl0aGluZyouCiAgIAoxOTk3LTAzLTA1IDA1OjU4ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYWdlbnQvYWNsX3ZhcnMuYywKICAgYWdlbnQvYWxhcm0uYywgYWdlbnQvYWxhcm0uaCwgYWdlbnQvY29tbW9uX2hlYWRlci5oCiwgYWdlbnQvY29udGV4dF92YXJzLmMsIGFnZW50L2V2ZW50LmMsCiAgIGFnZW50L2V2ZW50LmgsIGFnZW50L2tlcm5lbC5oLCBhZ2VudC9wYXJ0eV92YXJzLmMKLCBhZ2VudC9yb3V0ZV93cml0ZS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcF92YXJzX2V2ZW50LmgsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L3NubXBkLmgsIGFnZW50L3Zhcl9zdHJ1Y3QuaAosIGFnZW50L3ZpZXdfcGFyc2UuYywgYWdlbnQvdmlld192YXJzLmM6CgogICAtICgqLmMsICouaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcHJvdG90eXBlICpldmVyeXRoaW5nKi4KICAgCjE5OTctMDMtMDUgMDI6MzcgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IENvbnRyaWJ1dGVyIG5hbWUgYWRkaXRpb24uCiAgIAoxOTk3LTAzLTA1IDAyOjI4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wZC5oOgoKICAgZmlsZSBzbm1wZC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTEtNC1wcmUyLW5pZWxzLgogICAKMTk5Ny0wMy0wNSAwMjoyOCAgd2hhcmRha2UKCiAgICogYWdlbnQva2VybmVsLmg6CgogICBmaWxlIGtlcm5lbC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTEtNC1wcmUyLW5pZWxzLgogICAKMTk5Ny0wMy0wNSAwMjoxNyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gRWx3eW4gQiBEYXZpZXM6CiAgICAgLSBGaXggYSBQRFUgY2xvbmluZyBidWcuCiAgIAoxOTk3LTAzLTA1IDAxOjA0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC8uY3ZzaWdub3JlOgoKICAgLSAobWliZ3JvdXAvLmN2c2lnbm9yZSk6IG5ldyB0byBpZ25vcmUgY3JlYXRlZCAuaCBmaWxlcy4KICAgCjE5OTctMDMtMDUgMDE6MDMgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jOgoKICAgLSAoc3lzdGVtLmMpOiByZW1vdmVkIHN5c3RlbSBubGlzdCAodW51c2VkKS4KICAgCjE5OTctMDMtMDUgMDA6NDggIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvYXQuaCwgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXAuYywgYWdlbnQvbWliZ3JvdXAvc25tcC5oLAogICBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5oLCBhZ2VudC9taWJncm91cC91ZHAuaCwKICAgYWdlbnQvbWliZ3JvdXAvd29tYmF0Lmg6CgogICAtIChjb25maWcqLCBhZ2VudC8qLCBhZ2VudC9taWJncm91cC8qKToKICAgICAtIEFkZGVkIC5vIGZpbGUgbGlzdCB0byBhZ2VudC9NYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgY29uZmlndXJlLgogICAgIC0gbmV3IGZpbGVzIGdlbmVyYXRlZCBieSBjb25maWd1cmU6CiAgICAgICAtIG1pYmdyb3VwL21pYl9tb2R1bGVfaW5jbHVkZXMuaDogIEEgbGlzdCBvZiBtaWIgLmggZmlsZXMgZm9yIHNubXBfdmFycy5oLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChldmVyeSBtb2R1bGUgKm11c3QqIGhhdmUgYSAuaCBmaWxlKQogICAgICAgLSBtaWJncm91cC9taWJfbW9kdWxlX2luaXRzLmg6IEEgbGlzdCBvZiBpbml0X3dvbWJhdCgpIHR5cGUgZnVuY3Rpb25zLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbmx5IHByZXNlbnQgaWYgZXhpc3QgaW4gd29tYmF0LmMpLgogICAgICAgLSBtaWJncm91cC9taWJfbW9kdWxlX2xvYWRzLmg6IFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgYSBuZXcgbWFjcm8gaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbWliLmggZmlsZXMgY2FsbGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnX2xvYWRfbWliKCksIHdoaWNoIHNpbXBsaWZpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbG9hZGluZyBvZiB0aGUgbWliIHNlY3Rpb25zLgogICAKMTk5Ny0wMy0wNCAwNjo0NCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKGNvbmZpZyosIG1pYmdyb3VwL01ha2VmaWxlLmluKToKICAgICAtIG1pYmdyb3VwIGNvbXBpbGUgbGlzdCBpcyBidWlsZCBieSBjb25maWd1cmUgYW5kIGNhbiBiZSBhdWdtZW50ZWQKICAgICAgIGJ5IHRoZSAtLXdpdGgtbWliLW1vZHVsZXM9Imxpc3Qgb2YgbW9kdWxlcyIgY29tbWFuZCBsaW5lIHRvIGNvbmZpZ3VyZS4KICAgCjE5OTctMDItMTcgMDc6MTEgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbiwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlMiApCiAgIAoxOTk3LTAyLTE3IDA2OjMyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBSZW1vdmUgTUFYX05BTUVfTEVOR1RIIHJlcXVpcmVtZW50cy4KICAgCjE5OTctMDItMTcgMDY6MzEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2ljbXAuYzoKCiAgIC0gKGljbXAuYyk6IGRvbid0IHVzZSByZXQgdmFyaWFibGUsIHNpbmNlIGl0J3Mgbm90IGRlZmluZWQuCiAgIAoxOTk3LTAyLTE3IDA2OjMwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9ldmVudC5jOgoKICAgLSAoZXZlbnQuYyk6IFdhcyBwYXNzaW5nIGFuIGludCB0byBiY29weSBpbnN0ZWFkIG9mICZpbnQuCiAgIAoxOTk3LTAyLTE3IDA2OjMwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9hbGFybS5jOgoKICAgLSAoYWxhcm0uYyk6IHR5cGVkZWYgZm9yIGdldFN0YXRQdHIoKS4KICAgCjE5OTctMDItMTcgMDU6NTMgIHdoYXJkYWtlCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvKk1ha2VmaWxlLmluKTogIE1ha2UgZGVwZW5kLgogICAKMTk5Ny0wMi0xNyAwNTo0NyAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAobWliLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIHJlbW92ZQogICAgIEFOU0kgc3BlY2lmaWMgcmVxdWlyZW1lbnRzLgogICAKMTk5Ny0wMi0xNyAwNTo0NiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvLmN2c2lnbm9yZToKCiAgIC0gKGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmUpOiBBZGRlZC4KICAgCjE5OTctMDItMTcgMDU6MzggIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvY29tbW9uX2hlYWRlci5oLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywgYWdlbnQvdmFyX3N0cnVjdC5oCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL1JFQURNRQosIGFnZW50L21pYmdyb3VwL2F0LmMsIGFnZW50L21pYmdyb3VwL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGVfc3VidHJlZXMuaCwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMKLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL2lwLmMKLCBhZ2VudC9taWJncm91cC9pcC5oLCBhZ2VudC9taWJncm91cC9zbm1wLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvc25tcHYyX3N1YnRyZWVzLmgKLCBhZ2VudC9taWJncm91cC9zbm1wdjJfdmFycy5oLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYwosIGFnZW50L21pYmdyb3VwL3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdGNwLmgsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuaCwgYWdlbnQvbWliZ3JvdXAvd29tYmF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3dvbWJhdC5oOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLCBhZ2VudC9taWJncm91cCk6IERhdmUgU2hpZWxkIHNwbGl0IHVwIHRoZQogICAgIHNubXBfdmFycy5jIGFuZCByZWxhdGVkIGZpbGVzIGludG8gcGllY2VzIGZvciBlYXNpZXIgbWFuYWdlbWVudC4KICAgICBUaGUgcmVzdWx0cyBvZiBoaXMgd29yayBhcmUgaW4gdGhlIG5ldyBhZ2VudC9taWJncm91cCBkaXJlY3RvcnkuCiAgIAoxOTk3LTAyLTExIDA4OjAwICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUmVzdCBvZiBQaGlsaXAncyBwYXRjaCB0byBmaXggc3JjZGlyIHByb2JsZW1zIChzaCB2YXJzKS4KICAgCjE5OTctMDItMTEgMDc6NDQgIHdoYXJkYWtlCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKG1hbi9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gU2ltb24gTGVpbmluIHRvIGZpeCBzcmNkaXIgcHJvYmxlbXMuCiAgIAoxOTk3LTAyLTExIDA3OjQyICB3aGFyZGFrZQoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoYXBwcy9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gU2ltb24gTGVpbmluIHRvIGRlc2NlbmQgd2hlbiBtYWtlIGNsZWFuaW5nLgogICAKMTk5Ny0wMi0xMSAwNToxNCAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluLCBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmUxICkKICAgCjE5OTctMDItMTEgMDU6MTMgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hdXRoLmM6CgogICAtIChzbm1wX2F1dGguYyk6IHJlbW92ZSBub24tc3RhdGljIG1kNWRpZ2VzdCBwcm90b3R5cGUuCiAgIAoxOTk3LTAyLTExIDA1OjExICB3aGFyZGFrZQoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbWFuL01ha2VmaWxlLmluLCBvdi9NYWtlZmlsZS5pbgo6CgogICAtICh7bG9jYWwsbWFuLG92fS9NYWtlZmlsZS5pbik6IFJlbW92ZSBzcGFjZXMgaW4gZnJvbnQgb2YgdGFicy4KICAgCjE5OTctMDItMTEgMDU6MTAgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5saW51eC5oOgoKICAgLSAoc25tcF92YXJzLmxpbnV4LmgpOiBGaXggI2lmZGVmLgogICAKMTk5Ny0wMi0xMSAwNDoxNyAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLAogICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jCiwgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgc25tcGxpYi9hY2wuYywgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9hY2xfcGFyc2UuYwosIHNubXBsaWIvY29udGV4dC5jLCBzbm1wbGliL2NvbnRleHQuaCwKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3BhcnR5LmMsIHNubXBsaWIvcGFydHkuaCwKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXAuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvdmlldy5jLCBzbm1wbGliL3ZpZXcuaAo6CgogICAtIChhbGwgLmMgd2l0aCBtYWluKCksIHNubXBsaWIvKik6IFBhdGNoIGZyb20gUGhpbGlwIEd1ZW50aGVyOgogICAgIC0gTWFrZSBiZXR0ZXIgc3VwcG9ydCBmb3Igc2hhcmVkIGxpYiBwb3NzaWJpbGl0aWVzLgogICAKMTk5Ny0wMi0xMSAwNDoxMiAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogVXBkYXRlIHBlb3BsZSBzdXBwbHlpbmcgcGF0Y2hlcyBsaXN0LgogICAKMTk5Ny0wMi0xMSAwNDoxMCAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgbG9jYWwvTWFrZWZpbGUuaW4KLCBtYW4vTWFrZWZpbGUuaW4sIG92L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKk1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBQaGlsaXAgR3VlbnRoZXI6CiAgICAgLSBGaXggYWxsIE1ha2VmaWxlLmluJ3MgdG8gc3VwcG9ydCBhIGRpZmZlcmVudCBzcmMgZGlyLgogICAKMTk5Ny0wMi0xMSAwMzo1NCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6ICBGaXggaHB1eCBzcGVjaWZpYyBwcm9ibGVtcy4KICAgCjE5OTctMDItMTEgMDM6NTAgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5saW51eC5oOgoKICAgLSAoc25tcF92YXJzLmxpbnV4LmgpOiBSZW1vdmVkIG5vbi1saW51eCBzcGVjaWZpYyBzdHVmZi4KICAgCjE5OTctMDItMTEgMDM6NDcgIHdoYXJkYWtlCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMsCiAgIHNubXBfdmFycy5saW51eC5oOgoKICAgLSAoc25tcF92YXJzLmMsIHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5saW51eC5oKTogUGF0Y2ggZnJvbSBKZW5uaWZlciBCcmF5OgogICAgIC0gR2V0IGFnZW50IHdvcmtpbmcgb24gbGludXguCiAgIAoxOTk3LTAyLTEwIDAwOjU0ICB3aGFyZGFrZQoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IFdob29wcy4KICAgCjE5OTctMDItMTAgMDA6NTEgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbiwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4xLjMgKQogICAKMTk5Ny0wMi0xMCAwMDo1MCAgd2hhcmRha2UKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogVXBkYXRlIGZvciAzLjEuMwogICAKMTk5Ny0wMi0xMCAwMDoyMiAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICAtIChzbm1wbmV0c3RhdC9tYWluLmMpOiBSZW1vdmUgbWFsbG9jIHByb3RvdHlwZSwgbm93IGluIHN0ZGxpYi5oLgogICAKMTk5Ny0wMi0xMCAwMDoyMiAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogRGF2ZSBTaGllbGRzJyBhZGRpdGlvbnM6ICBmaW5kaW5nIG1vcmUgaW5mby4KICAgCjE5OTctMDItMDUgMDg6NDEgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbiwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4xLjMucHJlNCApCiAgIAoxOTk3LTAyLTA1IDA4OjI5ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgY29uZmlndXJlLmluKTogcmVtb3ZlZCB0Y2wgc3R1ZmYuCiAgIAoxOTk3LTAyLTA1IDA4OjI0ICB3aGFyZGFrZQoKICAgKiBORVdTLCBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSAoTkVXUyk6IHJlbW92ZWQgdGNsIHN0dWZmLgogICAKMTk5Ny0wMi0wNSAwODoyMCAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOiBDaGFuZ2Ugc3ViamVjdCBsaW5lIHRvIHNob3J0ZW4gYW5kIGZvcmNlIGJldHRlciBkZXNjcmlwdGlvbi4KICAgCjE5OTctMDItMDUgMDg6MTMgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzeXN0ZW0uYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gZml4IG5saXN0IHByb2JsZW1zLgogICAKMTk5Ny0wMi0wNSAwODowOSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX2dyb3VwdmFycy5oLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChtYW55KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHNubXAgbWliIGdyb3VwIGNsZWFudXBzLgogICAgIC0gdHJhcCBnZW5lcmF0aW9uIGNsZWFudXBzLgogICAgIC0gYWRkZWQgbWFuIGVudHJpZXMgZm9yIHRyYXAgZ2VuZXJhdGlvbi4KICAgICAtIGltcHJvdmVkIGFnZW50IGRlYnVnZ2luZyBvdXRwdXQgd2l0aCBhZ2VudCdzIC1kIGZsYWcuCiAgIAoxOTk3LTAyLTA1IDA4OjA3ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUHV0IC9kZXYva3N5bXMgYWhlYWQgb2YgL2tlcm5lbC91bml4LgogICAKMTk5Ny0wMi0wNSAwNzozMyAgd2hhcmRha2UKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBtaXNjIHJlcXVlc3RlZCBhZGRpdGlvbnMuCiAgIAoxOTk3LTAyLTA1IDA3OjMzICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiBEYXZlIHVwZGF0ZWQgYXJjaGl0ZWN0dXJlIGxpc3RzLgogICAKMTk5Ny0wMi0wNCAwMDo0MSAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogQWRkZWQgVE9DIGFuZCBhdXRvciBub3RlcyA7LSkuCiAgIAoxOTk3LTAyLTA0IDAwOjM3ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIFNpbW9uOiBjb21tZW50ICNpZmRlZiBlbmRpbmdzIGZvciBBTlNJIGNvbXBsaWVycy4KICAgCjE5OTctMDItMDQgMDA6MzYgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBGaXggaHB1eCBwcm9ibGVtcywgKmFnYWluKi4KICAgCjE5OTctMDItMDQgMDA6MzUgIHdoYXJkYWtlCgogICAqIFRPRE86CgogICAtIChUT0RPKTogQWRkZWQgc3VnZ2VzdGlvbnMgZnJvbSB1Y2Qtc25tcC1jb2RlcnMuCiAgIAoxOTk3LTAyLTA0IDAwOjM1ICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiBEYXZlJ3MgbGF0ZXN0IHJldmlzaW9uLgogICAKMTk5Ny0wMi0wMyAwNDo1NSAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluLCBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMy5wcmUzICkKICAgCjE5OTctMDItMDMgMDQ6NTMgIHdoYXJkYWtlCgogICAqIGJ1Zy1yZXBvcnQ6CgogICAtIChidWctcmVwb3J0KTogbW92ZSBjb25maWcuY2FjaGUgdG8gZW5kIG9mIG1lc3NhZ2UuCiAgIAoxOTk3LTAyLTAzIDA0OjMzICB3aGFyZGFrZQoKICAgKiBORVdTLCBSRUFETUUsIFRPRE86CgogICAtIChSRUFETUUsIE5FV1MsIFRPRE8pOiBVcGRhdGUgZm9yIDMuMS4zLgogICAKMTk5Ny0wMi0wMyAwNDoxNSAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKToKICAgICAtIGFkZGVkIEZBUSBwb2ludGVyLgogICAgIC0gRGF2ZSdzIEVuZ2xpc2ggcG9pbnRlcnMgKGllLCBoZSBwcm9vZmVkIGl0IGFuZCBJLCB1aCwgZG9uJ3QuLi4pLgogICAgIC0gc3dpdGNoIGZ0cCBtaXJyb3IuCiAgICAgLSBidWctcmVwb3J0IHNjcmlwdCBtZW50aW9uZWQuCiAgICAgLSBJIC0+IFdlLCBtZSAtPiB1cy4uLgogICAKMTk5Ny0wMi0wMyAwMzo1MSAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogcmVtb3ZlIHByb2plY3QgaGlzdG9yeS4KICAgCjE5OTctMDItMDMgMDM6NDcgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBhZGQgc29tZSBpcml4IGFwcHJvcHJpYXRlIGluY2x1ZGVzLgogICAKMTk5Ny0wMi0wMyAwMzo0NCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gKHNubXBsaWIvc3lzdGVtLmMpOiB0eXBvOiAgbmVlZHMgYSBzcGFjZSBiZXR3ZWVuICdzdGF0aWMnIGFuZCAnc3RydWN0Jy4KICAgCjE5OTctMDItMDMgMDI6NTAgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOgogICAgIC0gQ2hlY2sgZm9yIGlyaXggNi4yIGhlYWRlcnMuCiAgICAgLSBDaGVjayBpZiBfS0VSTkVMIG5lZWRzIHRvIGJlIGRlZmluZWQgZm9yIGlyaXggYW5kIGlmbmV0IHVzYWdlLgogICAgIC0gVXNlIHRoZSBmb3VuZCBVTkFNRSBwcm9ncmFtIGluc3RlYWQgb2YgYXNzdW1pbmcgd2UgaGF2ZSBpdC4KICAgCjE5OTctMDItMDMgMDE6NDggIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzbm1wbGliL3N5c3RlbS5jKTogIFVzZSBDQU5fVVNFX1NZU0NUTCBpbnN0ZWFkIG9mIGJzZGxpa2UuCiAgIAoxOTk3LTAyLTAzIDAxOjQ3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZAogICAgIC0gTWFyayBzdHVmZiBmb3IgbGF0ZXIgY2hhbmdlcy4KICAgCjE5OTctMDItMDMgMDE6NDUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKToKICAgICAtIENoZWNrIGZvciB3aG9hbWksIGxvZ25hbWUuCiAgICAgLSBEb24ndCBwYXNzIG51bGwgYXJncyB0byBrc2guCiAgIAoxOTk3LTAyLTAzIDAxOjAzICB3aGFyZGFrZQoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGNvbW1lbnQgb3V0IHBvc3NpYmxlIHNlY3VyaXR5IHByb2JsZW0gbGluZXMuCiAgIAoxOTk3LTAyLTAzIDAxOjAyICB3aGFyZGFrZQoKICAgKiBidWctcmVwb3J0OgoKICAgLSAoYnVnLXJlcG9ydCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBkb21haW4gbmFtZSBmaXggYW5kIGVkaXRvciBib21iIG91dC4KICAgCjE5OTctMDEtMzEgMDI6MDMgIHdoYXJkYWtlCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnIHVwZGF0ZQogICAKMTk5Ny0wMS0zMSAwMTo1OSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IGNoYW5nZWQgYXJjaCB0byBocHBhIGFuZCBtYWtlIHN1cmUgL2Jpbi9rc2ggZXhpc3RzLgogICAKMTk5Ny0wMS0zMSAwMTo0OSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IGZpcmUgb2ZmIGtzaCBpZiBocHV4ICYmIHNoLgogICAKMTk5Ny0wMS0zMSAwMTowMSAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uOgogICAgIC0gQ2hhbmdlIHNvbWUgc3lzdGVtIHNwZWNpZmljIGlmZGVmcyB0byBDQU5fVVNFX1NZU0NUTC4KICAgICAtIEZpeCBjb21wbGlhdGlvbiBlcnJvcnMgb24gYnNkaTIuCiAgICAgLSBGaXggcm91dGluZyB0YWJsZXMgZm9yIHNpbWlsYXIuCiAgIAoxOTk3LTAxLTMxIDAwOjU3ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwgY29uZmlnLmguaW4sCiAgIGFjY29uZmlnLmg6CgogICAtIChjb25maWcqKTogQ2hlY2sgZm9yIGtzdGF0LmggYW5kIGlmIHN5c2N0bCBjYW4gcmVhZCB0aGUgYm9vdHRpbWUuCiAgIAoxOTk3LTAxLTI5IDA0OjA4ICB3aGFyZGFrZQoKICAgKiBidWctcmVwb3J0OgoKICAgLSAoYnVnLXJlcG9ydCk6CiAgICAgLSBjaGFuZ2UgdG8gYWRkcmVzcyAoYmFjaykgdG8gdWNkLXNubXAtY29kZXJzLgogICAgIC0gQWRkIGEgdHJhcCBvbiBzaWduYWxzIHRvIHJlbW92ZSB0bXAgZmlsZXMuCiAgIAoxOTk3LTAxLTI5IDAzOjU4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IGtlcm5lbC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICAtIChrZXJuZWwuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIEZpeCB2YXJpb3VzIHdhcm5pbmdzL2Vycm9ycy4KICAgICAtIEltcGxlbWVudCByZWFsIHRyYXBzLgogICAKMTk5Ny0wMS0yOSAwMzoxMSAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUpOiB1cGRhdGUKICAgCjE5OTctMDEtMjkgMDM6MTEgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHJldmlzaW9uIG9uZSEKICAgCjE5OTctMDEtMjkgMDM6MTAgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IE5ldyBwcyBvcHRpb25zIHRvIGNoZWNrIGZvci4KICAgCjE5OTctMDEtMjkgMDM6MDkgIHdoYXJkYWtlCgogICAqIGFjbG9jYWwubTQ6CgogICAtIChhY2xvY2FsLm00KTogRml4IGNoZWNrX3N0cnVjdF9mb3IgdG8gZGVmaW5lIHRoaW5ncyBjb3JyZWN0bHkuCiAgIAoxOTk3LTAxLTI5IDAzOjA4ICB3aGFyZGFrZQoKICAgKiAuY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSAuc29mdHdhcmUuZGIuc2gKICAgCjE5OTctMDEtMjkgMDM6MDcgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oKToKICAgIC0gU05NUEJMT0NLID0gIVNOTVBCTE9DSwogICAKMTk5Ny0wMS0yOSAwMzowNyAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOgogICAgLSBBbHdheXMgdXNlIG11bHRpcGFydDogdmVyc2lvbiBpbmZvIGFuZCBjb25maWcuY2FjaGUgYXJlIG9uZS4KICAgIC0gcmUtYXJyYW5nZWQgYSBiaXQuCiAgICAtIEFkZGVkIGludHJvZHVjdGlvbi4KICAgIC0gR3Vlc3MgYXQgZG9tYWluIG5hbWUgaWYgcG9zc2libGUuCiAgIAoxOTk3LTAxLTI5IDAxOjQ3ICB3aGFyZGFrZQoKICAgKiBidWctcmVwb3J0OgoKICAgYnVnIHJlcG9ydGluZyBzY3JpcHQgYWRkCiAgIAoxOTk3LTAxLTIxIDAwOjE3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMpOgogICAgIC0gUGF0Y2ggZnJvbSBLYXJsIExlaGVuYmF1ZXIgPGthcmxAaGFtbWVyMS5vcHMuTmVvU29mdC5jb20+CiAgICAgICAtIGhhbmRsZSBtdWx0aXBsZSBpbnRlcmZhY2UgbmFtZXMgPiAxMCBwcm9wZXJseS4KICAgCjE5OTctMDEtMjAgMjM6MzQgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuaDoKCiAgIC0gKHNubXBfY2xpZW50LmgpOiByZW1vdmUgc2Vjb25kICh3cm9uZykgZnVuY3Rpb24gcHJvdG90eXBlLgogICAKMTk5Ny0wMS0yMCAyMzozMyAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiByZW1vdmUgc2Vjb25kIGNoYXIgZGVmaW5pdGlvbi4KICAgCjE5OTctMDEtMjAgMDc6NTkgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjMucHJlMSApCiAgIAoxOTk3LTAxLTIwIDA3OjQzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuaAo6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5bY2hdKToKICAgICAtIFBhdGNoIGZyb20gUGF0cmljZSBWQU5BQ0tFUiA8dmFuYWNrZXJAd29ybGRuZXQuZnI+OgogICAgICAgLSBmaXggcmVxdWVzdCBkZWxldGlvbnMgaW4gc25tcF9yZWFkKCkuCiAgICAgICAtIGFkZGVkIHJldHVybiBhcmd1bWVudCB0byBzbm1wX2FkZF9udWxsX3ZhcigpLgogICAKMTk5Ny0wMS0yMCAwNjo1NSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbiA8bWFydGluQGV4bWFuZGF0by5zZT46CiAgICAgLSBhZGQgYnNkaSB0byBzb21lICNpZmRlZnMuCiAgIAoxOTk3LTAxLTIwIDA2OjM4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jLCBleHRlbnNpYmxlLmMsIHJlYWRfY29uZmlnLmMpOiBSZW1vdmUgQU5TSSBjcHAgI2VsaWYncy4KICAgCjE5OTctMDEtMjAgMDY6MzYgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBBdXRvaGVhZGVyIGlzIGR1bWI6ICBQdXQgbWFjcm8gZGVmaW5lcyBiZWxvd2UgQEJPVFRPTUAgc3ltYm9sLgogICAKMTk5Ny0wMS0yMCAwNjoyMiAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSBQYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW4gPE5pZWxzLkJhZ2dlc2VuQHVuaS1jLmRrPjoKICAgIC0gKHNubXBfY2xpZW50LmMpOiBXYWl0IDEyMCBzZWNvbmRzIGJlZm9yZSByZXR1cm5pbmcuCiAgIAoxOTk3LTAxLTIwIDA2OjA4ICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgbWFuL3NubXB0cmFwZC44LCBzbm1wbGliL2FjbC5oLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9jb250ZXh0LmgsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJ0eS5jLCBzbm1wbGliL3BhcnR5LmgKLCBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdmlldy5oOgoKICAgLSBQYXRjaGVzIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAtIGltcGxlbWVudGVkOiBpbnRlcmZhY2VzLmlmVGFibGUuaWZFbnRyeS5pZlNwZWNpZmljLAogICAgICAgICBpcC5pcFJvdXRpbmdEaXNjYXJkcywKICAgICAgICAgaXAuaXBBZGRyVGFibGUuaXBBZGRyRW50cnkuaXBBZEVudFJlYXNtTWF4U2l6ZSwKICAgICAgICAgaXAuaXBSb3V0ZVRhYmxlLmlwUm91dGVFbnRyeS5pcFJvdXRlTWFzayAsCiAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZU1ldHJpYzUsCiAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZUluZm8sIGlwLmlwTmV0VG9NZWRpYVRhYmxlLAogICAgICAgICB1ZHAudWRwVGFibGUuCiAgICAtIHVkcCBjb25uZWN0aW9uIHRhYmxlLgogICAgLSBpcE5ldFRvTWVkaWEuCiAgIAogICAtIFBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbiA8TmllbHMuQmFnZ2VzZW5AdW5pLWMuZGs+OgogICAgLSB1ZHBOb1BvcnQsIHRjcEluRXJycyBmaXhlcyBmb3IgU29sYXJpcy4KICAgIC0gbGludXggYXBwbGljYXRpb24gc3VwcG9ydC4KICAgIC0gc25tcCB2YXJpYWJsZSBncm91cC4KICAgIC0gc2ltcGxlIGNvbGQgc3RhcnQgdHJhcHMgdmlhIGV4ZWMoJ3NubXB0cmFwJykuCiAgICAtIE1JQiBwYXJzZXIgZml4ZXMuCiAgICAtIE1lbW9yeS9mcmVlIGFsbG9jYXRpb24gZml4ZXMuCiAgIAoxOTk3LTAxLTIwIDA2OjA0ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L2FsYXJtLmgsIGFnZW50L2V2ZW50LmMsCiAgIGFnZW50L2V2ZW50LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfZ3JvdXB2YXJzLmgsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywgYWdlbnQvdmFyX3N0cnVjdC5oCiwgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMKOgoKICAgLSBQYXRjaGVzIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAtIGltcGxlbWVudGVkOiBpbnRlcmZhY2VzLmlmVGFibGUuaWZFbnRyeS5pZlNwZWNpZmljLAogICAgICAgICBpcC5pcFJvdXRpbmdEaXNjYXJkcywKICAgICAgICAgaXAuaXBBZGRyVGFibGUuaXBBZGRyRW50cnkuaXBBZEVudFJlYXNtTWF4U2l6ZSwKICAgICAgICAgaXAuaXBSb3V0ZVRhYmxlLmlwUm91dGVFbnRyeS5pcFJvdXRlTWFzayAsCiAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZU1ldHJpYzUsCiAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZUluZm8sIGlwLmlwTmV0VG9NZWRpYVRhYmxlLAogICAgICAgICB1ZHAudWRwVGFibGUuCiAgICAtIHVkcCBjb25uZWN0aW9uIHRhYmxlLgogICAgLSBpcE5ldFRvTWVkaWEuCiAgIAogICAtIFBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbiA8TmllbHMuQmFnZ2VzZW5AdW5pLWMuZGs+OgogICAgLSB1ZHBOb1BvcnQsIHRjcEluRXJycyBmaXhlcyBmb3IgU29sYXJpcy4KICAgIC0gbGludXggYXBwbGljYXRpb24gc3VwcG9ydC4KICAgIC0gc25tcCB2YXJpYWJsZSBncm91cC4KICAgIC0gc2ltcGxlIGNvbGQgc3RhcnQgdHJhcHMgdmlhIGV4ZWMoJ3NubXB0cmFwJykuCiAgICAtIE1JQiBwYXJzZXIgZml4ZXMuCiAgICAtIE1lbW9yeS9mcmVlIGFsbG9jYXRpb24gZml4ZXMuCiAgIAoxOTk3LTAxLTE3IDAyOjU4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6CiAgICAgLSBVc2FnZSgpIHVwZGF0ZSBhbmQgdmVyc2lvbiBwcmludG91dCB1cGRhdGUuCiAgIAoxOTk3LTAxLTE3IDAyOjUxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYywgZXh0ZW5zaWJsZS5jKToKICAgICAtIE5ldyBhcmcgLWMgRklMRTogIAkgICBSZWFkIEZJTEUgYXMgYSBjb25maWd1cmF0aW9uIGZpbGUgYXMgd2VsbC4KICAgICAtIE5ldyBhcmcgLUM6ICAgICAgIAkgICBEb24ndCByZWFkIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmaWxlcy4KICAgICAtIE5ldyBlbnYgU05NUENPTkZQQVRIOiAgUmVhZCBzbm1wZHssLmxvY2FsfS5jb25mIGZpbGVzIGluOiBzZXBlcmF0ZWQgcGF0aC4KICAgCjE5OTctMDEtMTQgMDc6NDUgIHdoYXJkYWtlCgogICAqIFBPUlRJTkcsIFJFQURNRSwgVE9ETzoKCiAgIC0gKFBPUlRJTkcsIFJFQURNRSwgVE9ETyk6ICBBZGRlZCB1Y2Qtc25tcC1jb2RlcnMgYXMgZGVmYXVsdCBtYWlsIGFkZHJlc3MuCiAgIAoxOTk3LTAxLTA5IDIzOjQ2ICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBSZW1vdmUgYnJva2VuIEZEX1NFVCBjb2RlLgogICAKMTk5Ny0wMS0wOSAyMzo0NSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogQ2hlY2sgZm9yIC9kZXYva3N5bXMgZm9yIHNvbGFyaXMga2VybmVsLgogICAKMTk5Ny0wMS0wOSAyMzo0MyAgd2hhcmRha2UKCiAgICogQ09QWUlORzoKCiAgIC0gKENPUFlJTkcpOiAgVXBkYXRlIGZvciA5Ny4KICAgCjE5OTYtMTItMDUgMDA6MTkgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjIuMSApCiAgIAoxOTk2LTEyLTA1IDAwOjE5ICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiBVcGRhdGUuCiAgIAoxOTk2LTEyLTA1IDAwOjE0ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgLSAobWQ1LmMpOiByZW1vdmUgYW5zaSBzcGVjaWZpYyBDIGZlYXR1cmVzICh1bnNpZ25lZCBjb25zdGFudHMpLgogICAKMTk5Ni0xMi0wNSAwMDoxMyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoaWYuYyk6ICNpZm5kZWYgLT4gI2lmZGVmIGZvciBzaWdzZXQuCiAgIAoxOTk2LTEyLTA0IDAxOjAzICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4yICkKICAgCjE5OTYtMTItMDQgMDE6MDEgIHdoYXJkYWtlCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIC0gKENoYW5nZUxvZywgTkVXUyk6ICBVcGRhdGUgZm9yIHJlbGVhc2UgMy4xLjIuCiAgIAoxOTk2LTEyLTA0IDAwOjQ5ICB3aGFyZGFrZQoKICAgKiBQT1JUSU5HLCBSRUFETUU6CgogICAtIChQT1JUSU5HLCBSRUFETUUpOiAgVXBkYXRlIGZvciByZWxlYXNlIDMuMS4yLgogICAKMTk5Ni0xMi0wNCAwMDoxNSAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IGFzbjEuYywgcGFyc2UuYywgc25tcF9hcGkuYywKICAgc25tcF9jbGllbnQuYzoKCiAgIC0gKGFzbjEuYywgcGFyc2UuYywgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYyk6CiAgICAgLSBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxOaWVscy5CYWdnZXNlbkB1bmktYy5kaz46CiAgICAgICAtIFBhcnNlciBmaXhlcyBmb3IgbXVsdGlwbGUgbm9kZXMuCiAgICAgICAtIG1lbW1vdmUvY29weSBkZWxldGVzLgogICAKMTk5Ni0xMi0wMyAwNTo1MSAgd2hhcmRha2UKCiAgICogZWNlLW1pYi5kZWY6CgogICAtIChlY2UtbWliLmRlZik6IFVzZWQgLT4gQXZhaWwgaW4gbWVtb3J5IHNlcXVlbmNlLgogICAKMTk5Ni0xMi0wMyAwMjoxNCAgd2hhcmRha2UKCiAgICogRVhBTVBMRS5jb25mLmRlZiwgbG9jYWwvcGFzc3Rlc3Q6CgogICAtIChFWEFNUExFLmNvbmYuZGVmLCBwYXNzdGVzdCk6IE1vdmUgcGFzc3Rlc3QgdG8gdWNkYXZpcyBzdWJ0cmVlLgogICAKMTk5Ni0xMi0wMyAwMjowMyAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBGcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgIC0gRml4IGFycCB0YWJsZSBmb3IgaHB1eC4KICAgLSAoY29uZmlnKik6IENoZWNrIGZvciBhcnBoZC5hdF9uZXh0IGFuZCB1c2UgaW4gYWJvdmUuCiAgIAoxOTk2LTEyLTAzIDAxOjA1ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgLSAobWQ1LmMpOiBQdXQgJ1UnbnNpZ25lZCBtYXJrZXIgYXQgZW5kIG9mIGNvbnN0YW50cyB0byByZW1vdmUgZ2NjIHdhcm5zLgogICAKMTk5Ni0xMi0wMyAwMTowMyAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGNvbmZpZyosIHNubXBfdmFycy5jKToKICAgICAtIFdyb3RlIEFDX0NIRUNLX1NUUlVDVF9GT1IgYW5kIHVzZSBpdC4KICAgICAtIE1ha2UgQUNfQ0hFQ0tfSUZORVRfRk9SIHVzZSBhYm92ZS4KICAgICAtIENoYW5nZXF1b3RlICdbXScgLT4gJycgYXJvdW5kIHNlZCBleHByZXNzaW9uIHdpdGggW11zICgtRG9zdHlwZSkuCiAgIAoxOTk2LTEyLTAxIDIzOjU1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAtIGlmUGh5c0FkZHIgLSBpbiBJbnRlcmZhY2VfR2V0X0V0aGVyX0J5X0luZGV4LCBIUC1VWCBoYXMgdGhlIHNhbWUKICAgICAgICAgICBFdGhlckFkZHIgc3RydWN1cmUgYXMgTUlQUy4KICAgCiAgICAgLSBpcEFkRW50SWZJbmRleCAtIGluIHZhcl9pcEFkZHJFbnRyeSwgdGhlcmUgaXMgYSBmYWxzZSBtYXRjaCBvbgogICAgICAgICAgIHRoZSBsb29wYmFjayBpbnRlcmZhY2UsIGdpdmluZyB0aGUgd3JvbmcgYW5zd2VyIG9mIHRoZSBmaXJzdAogICAgICAgICAgIGludGVyZmFjZSBpbmRleC4KICAgCiAgICAgLSB1ZHBJbkVycm9ycyAtIGluIHZhcl91ZHAsIHRoZSBjb3VudCBvZiBVRFAgZXJyb3JzIG9taXRzIGRpc2NhcmRlZAogICAgICAgICAgIHBhY2tldHMuICBTb21lIHN5c3RlbXMgKGkuZS4gSFAtVVgpIGhhdmUgZXh0ZW5kZWQgdGhlIHVkcHN0YXQKICAgICAgICAgICBzdHJ1Y3R1cmUgdG8gaW5jbHVkZSB0aGVzZS4gIEkndiB0d2Vha2VkIHRoaXMgYW5hbG9nb3VzIHRvIGEKICAgICAgICAgICBzaW1pbGFyIGFkZGl0aW9uIGluIHRoZSB0Y3BzdGF0IHN0cnVjdHVyZS4KICAgCiAgICAgLSB0Y3BDb25uU3RhdGUgLSBIUC1VWCBoYXMgYWRkZWQgYW4gZXh0cmEgc3RhdGUgaW50byB0aGUgbGlzdCwgd2hpY2gKICAgICAgICAgICB0aHJvd3MgdGhlIHJlc3Qgb2YgdGhlbSBvdXQuCiAgIAoxOTk2LTExLTI2IDIzOjU2ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogVHJ1bmNhdGUgc3lzdGVtIG5hbWVzIGJleW9uZCBbLV9dLiouCiAgIAoxOTk2LTExLTI2IDIzOjQ1ICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAtIChpZi5jKTogUmVzZXQgc2lnbmFsIG9uIGFsbCB0eXBlcyBvZiBzaWduYWwgaW1wbGVtZW50YXRpb25zLgogICAKMTk5Ni0xMS0yNiAyMzozNCAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoaWYuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgLSBXYXRjaCBvdXQgZm9yIGludGVyZmFjZSBuYW1lcyB3aXRoICcgJyBpbiB0aGVtLgogICAgIC0gUmVzZXQgc2lnbmFsIG9uIEJTRCBzaWduYWwgaW1wbGVtZW50YXRpb25zLgogICAKMTk5Ni0xMS0yNiAyMzoyMSAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogVXBkYXRlLgogICAKMTk5Ni0xMS0yNiAyMzoyMSAgd2hhcmRha2UKCiAgICogSU5TVEFMTDoKCiAgIC0gKElOU1RBTEwpOiBUeXBvOiAgMy4xLjMgLT4gMy4wLjMuCiAgIAoxOTk2LTExLTI2IDIzOjA1ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogRGVmYXVsdCBzeXNsb2MgVUNEYXZpcyAtPiBVbmtub3duLgogICAKMTk5Ni0xMS0yNiAyMzowMiAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgLSBDaGFuZ2UgY29tbWVudHMgdG8gcmVmbGVjdCB3aGF0IGl0cyBhY3R1YWxseSBsb29raW5nIGF0LgogICAgIC0gUmVtb3ZlIGlmZGVmIGFyb3VuZCBpZm5ldCBkZWNsYXJhdGlvbnMuCiAgIAoxOTk2LTExLTI1IDAwOjE1ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChjb25maWcqLCBzbm1wX2ltcGwuaCk6IE1vdmVkIHZvaWQgLT4gY2hhciBkZWZpbmUgdG8gYSBjb25maWd1cmUgdGVzdC4KICAgCjE5OTYtMTEtMjQgMjM6NDMgIHdoYXJkYWtlCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoe2FnZW50LGFwcHN9L01ha2VmaWxlLmluKTogUHV0IGxpYnNubXAuYSBpbiBmcm9udCBvZiAtbCBsaWJzLgogICAKMTk5Ni0xMS0yNCAwNzo0NSAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMi5wcmUxICkKICAgCjE5OTYtMTEtMjQgMDc6MjQgIHdoYXJkYWtlCgogICAqIGFnZW50L2tlcm5lbC5jLCBJTlNUQUxMLCBhY2NvbmZpZy5oLAogICBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChrZXJuZWwuYywgY29uZmlnKiwgSU5TVEFMTCk6ICBOZXcgY29uZmlndXJlIHN3aXRjaDogIC0td2l0aG91dC1yb290LWFjY2Vzcy4KICAgICAtIFRoZSBhZ2VudCBkb2Vzbid0IGV4aXQgaWYgaXQgY2FuJ3Qgb3BlbiAvZGV2L2ttZW0uCiAgIAoxOTk2LTExLTIyIDA1OjM3ICB3aGFyZGFrZQoKICAgKiBjb25maWcuZ3Vlc3MsIGNvbmZpZy5oLmluLCBjb25maWcuc3ViLAogICBjb25maWd1cmUsIGluc3RhbGwtc2gsIG1raW5zdGFsbGRpcnM6CgogICAtIChjb25maWcqLCBpbnN0YWxsLXNoLCBta2luc3RhbGxkaXJzKTogVXBncmFkZWQgdG8gYXV0b2NvbmYgMi4xMS4KICAgCjE5OTYtMTEtMjIgMDA6MTQgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBBZGQgY2hlY2tzIGZvciBpZm5ldC5baW9dYnl0ZXMuCiAgIAoxOTk2LTExLTIyIDAwOjA2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogTWVyZ2UgZnJvbSBGcmVlQlNEMi0zLTEtMS4KICAgICAtIEFkZCBjaGVja3MgZm9yIGlmbmV0Lltpb11ieXRlcy4KICAgCjE5OTYtMTEtMjEgMjM6MTggIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBUcmFzaCBpbnRlcmZhY2UgY2FjaGluZy4KICAgCjE5OTYtMTEtMTUgMDc6NDQgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiAgQWRkIGJhY2sgaW4gInJlYWRpbmcgbWliLi4uIiBkZWJ1Z2dpbmcgc3RhdG1lbnRzLgogICAKMTk5Ni0xMS0xNSAwNzo0MyAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKiwgZXh0ZW5zaWJsZS5jKTogTWFrZSB1bmFtZSBjYWxscyB3b3JrIGNvcnJlY3RseS4KICAgCjE5OTYtMTEtMTQgMDY6MjQgIHdoYXJkYWtlCgogICAqIGFwcHMvOiBzbm1wdHJhcC5jLCBzbm1wbmV0c3RhdC9pbmV0LmMsCiAgIHNubXBuZXRzdGF0L3JvdXRlLmM6CgogICAtIChzbm1wdHJhcC5jLCBpbmV0LmMsIHJvdXRlLmMpOiB0eXBlY2FzdGluZyB3YXJuaW5nIGZpeGVzLgogICAKMTk5Ni0xMS0xNCAwNjoxNyAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6CiAgICAgLSBDaGVjayBmb3IgZXhpc3RhbmNlIG9mIHRjcHN0YXQudGNwc19yY3ZtZW1kcm9wLgogICAgIC0gQ2hlY2sgZm9yIHN5cy92ZnMuaC4KICAgCjE5OTYtMTEtMTQgMDY6MTYgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOgogICAgIC0gI2lmZGVmIHR5cG8uCiAgICAgLSBwcm90b3R5cGUgZm9yIEludGVyZmFjZV9TY2FuX0luaXQoKS4KICAgICAtIENoZWNrIGZvciBleGlzdGFuY2Ugb2YgdGNwc3RhdC50Y3BzX3Jjdm1lbWRyb3AgYmVmb3JlIHVzaW5nLgogICAKMTk5Ni0xMS0wOCAwODowNiAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IEZpeGVkICd0b3VjaGl0Jy4KICAgCjE5OTYtMTEtMDggMDg6MDMgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBDcmVhdGVkIGEgJ3RvdWNoaXQnIHRvIHRvdWNoIGNvbmZpZyBmaWxlcyBwcm9wZXJseS4KICAgCjE5OTYtMTEtMDcgMDU6MTkgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IHR5cGVjYXN0IGZvciBzcHJpbnRfb2JqaWQoKS4KICAgCjE5OTYtMTEtMDcgMDU6MTcgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBpZmRlZiB0eXBvcy4KICAgCjE5OTYtMTEtMDcgMDU6MTYgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogaWZkZWYncyBhcm91bmQgc3RyaW5ncy5oLgogICAKMTk5Ni0xMS0wNyAwNToxNSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IENoYW5nZWQgZGVmYXVsdCBTTk1QVjJBVVRIIHRvIFNOTVBWMS4KICAgCjE5OTYtMTEtMDcgMDA6MzQgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvc25tcF92YXJfcm91dGUuYywgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIEJTRGkyIDMuMS4xIGJyYW5jaCBtZXJnZS4KICAgCjE5OTYtMTEtMDcgMDA6MjIgIHdoYXJkYWtlCgogICAqIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXBidWxrd2Fsay5jCiwgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMKLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBtYW4vc25tcHRyYW5zbGF0ZS4xLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFyc2UuaDoKCiAgIC0gTmllbHMgMy4xLjEgYnJhbmNoIG1lcmdlLgogICAKMTk5Ni0xMS0wNyAwMDoxNSAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4sCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIC0gTmV0QlNEIDMuMS4wLjEgYnJhbmNoIG1lcmdlLgogICAKMTk5Ni0xMS0wNCAwMTowOCAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IENoZWNrIGZvciBubGlzdCBpbiAtbG1sZCAoaXJpeCkuCiAgIAoxOTk2LTExLTA0IDAwOjMwICB3aGFyZGFrZQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoY29uZmlnKiwgc25tcF92YXJzLmMsIGV4dGVuc2libGUuYyk6ICBNb3JlIGluY2x1ZGUgY2hlY2tzIGZvciBsaW51eC4KICAgCjE5OTYtMTAtMzEgMjM6NTQgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW4gIDxzaW1vbkBzd2l0Y2guY2g+OgogICAgIC0gYXNuX2J1aWxkX3Vuc2lnbmVkX2ludCwgYXNuX2J1aWxkX3Vuc2lnbmVkX2ludDY0OgogICAgICAgLSBEb24ndCB0cnkgdG8gc3RyaXAgRkZzIGZyb20gdGhlIGhpZ2ggZW5kIG9mIHVuc2lnbmVkIHZhbHVlcy4KICAgICAgIC0gU2tpcCB0aGUgc3RyaXBwaW5nIGNvZGUgZW50aXJlbHkgaWYgd2UgaGF2ZSB0byBhZGQgYSBudWxsIGJ5dGUuCiAgIAoxOTk2LTEwLTMwIDA0OjQ4ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGVjZS1taWIuZGVmOgoKICAgLSAoY29uZmlnKiwgZWNlLW1pYi5kZWYpOgogICAgIC0gQ2hhbmdlIGV4dGVuc2libGUgbWliIGxvY2F0aW9uIHRvIHVjZGF2aXMgZW50ZXJwcmlzZSBtaWI6IDIwMjEuCiAgICAgLSBSZW1vdmUgYXNzb2NpYXRlZCBwcm9tcHRpbmcgZnJvbSBjb25maWd1cmUgc2NyaXB0IGFuZCBldGMuCiAgIAoxOTk2LTEwLTMwIDA0OjQ3ICB3aGFyZGFrZQoKICAgKiBQT1JUSU5HLCBSRUFETUU6CgogICAtIChQT1JUSU5HLFJFQURNRSk6IEFkZCBhIG5ldyBQT1JUSU5HIGZpbGUgdG8gcmVmZXJlbmNlIGF1dG9jb25mIHBsZWUuCiAgIAoxOTk2LTEwLTE2IDIzOjAyICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4xLkJTREkgKQogICAKMTk5Ni0xMC0wOSAwNzo0NiAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMSApCiAgIAoxOTk2LTEwLTA5IDA3OjQ1ICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2csIE5FV1MpOiB1cGRhdGUgZm9yIDMuMS4xLgogICAKMTk5Ni0xMC0wOSAwNzoyMiAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogQWRkZWQgdGhhbmtzIG5hbWUuCiAgIAoxOTk2LTEwLTA5IDA3OjE4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogRnJvbTogZ2FoQGJlbGxjb3JlLmNvbSAoR2FyeSBBLiBIYXl3YXJkKQogICAgIC0gRnJlZSBwZHUgY29tbXVuaXR5IHRvIHF1ZWxjaCBwdXJpZnkuCiAgIAoxOTk2LTEwLTA5IDAwOjMwICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKToKICAgICAtIHByaW50IGEgbmV3IGxpbmUgaW4gcHJpbnRfZXJyb3IoKSBpZiBkZWJ1Z2dpbmcgaXMgdHVybmVkIG9uLgogICAgIC0gdG9zc09iamVjdElkZW50aWZpZXIoKTogY2F0Y2ggbXVsdGlwbGUgYnJhY2tldCBjbGF1c2VzIChJRSB7IHswIDB9IH0gKS4KICAgCjE5OTYtMTAtMDkgMDA6MDQgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOgogICAgIC0gUGFyc2UgT0JKRUNULUlERU5UWSBhcyBPQkpFQ1QtR1JPVVAgKHNhdmVzIG9ubHkgZGVzY3JpcHRpb24pLgogICAgIC0gQ2hhbmdlIHByaW50X2Vycm9yKCksIHJlYWRfbWliKCkgdG8gcmVmbGVjdCBmaWxlIGFuZCBjb3JyZWN0IGxpbmUgbnVtYmVyLgogICAKMTk5Ni0xMC0wNyAwNDoyMyAgd2hhcmRha2UKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogQWRkZWQgc3lzY29udGFjdCBhbmQgc3lzbG9jYXRpb24uCiAgIAoxOTk2LTEwLTA3IDA0OjIzICB3aGFyZGFrZQoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICAtIChzbm1wZC4xLmRlZik6IENoYW5nZWQgdG8gcmVmbGVjdCBTTk1QTElCL21pYnMuCiAgIAoxOTk2LTEwLTA3IDAzOjA2ICB3aGFyZGFrZQoKICAgKiAuY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6ICBBZGRlZCB1Y2Qtc25tcC50eHQKICAgCjE5OTYtMTAtMDcgMDM6MDAgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlLmluKToKICAgICAtIHRpbWVzdGFtcCBzdGFtcC1oIGF0IGVuZC4KICAgICAtIGVtYWNzIGxvY2FsIHZhcnMuCiAgIAoxOTk2LTEwLTA3IDAyOjIyICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKToKICAgICAtIGFkZGVkIC0tcmVjaGVjayB0byBjb25maWcuc3RhdHVzIGNhbGwgdG8gcmVnZW5lcmF0ZSBzZWxmLgogICAgIC0gQ2hhbmdlZCBlY2UtbWliLnR4dCAtPiB1Y2Qtc25tcC50eHQgYW5kIGluc3RhbGwgKGFuZCBnZW5lcmF0ZSkgcHJvcGVybHkuCiAgIAoxOTk2LTEwLTA3IDAxOjExICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBSZW1vdmVkIHNubXAgdmVyc2lvbiBjaGVjayBvbiBlcnJvciByZXR1cm4gZnJvbSBzZXQuCiAgIAoxOTk2LTEwLTA3IDAwOjUyICB3aGFyZGFrZQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogY2hlY2sgY29ycmVjdGx5IGZvciBnZXQvc2V0bW50ZW50LgogICAKMTk5Ni0xMC0wNyAwMDowMSAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IE1pYiBpbnN0YWxsYXRpb24gY2hhbmdlZCB0byByZWZsZWN0IG5ldyBtaWIgZGlyZWN0b3J5LgogICAKMTk5Ni0xMC0wNiAyMzo0OSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6ICBQcm9wZXIgYXV0b2NvbmYgZGlyZW50IGhlYWRlcnMuCiAgIAoxOTk2LTEwLTA2IDIzOjQxICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogIE5vdyBsb2FkcyBhbGwgbWlicyAoZmlsZXMpIGluIHRoZSBkaXJlY3RvcnkgU05NUExJQi9taWJzLgogICAKMTk5Ni0xMC0wNCAwMjowMSAgd2hhcmRha2UKCiAgICogbWFuLzogc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogbGliIC0+IGxpYi9zbm1wIHBhdGggY29ycmVjdGlvbiBpbiBGSUxFUyBzZWN0aW9uLgogICAtIChzbm1wZC4xLmRlZik6CiAgICAgLSBBZGRlZCBhIEZJTEVTIHNlY3Rpb24uCiAgICAgLSBHZW5lcmFsIGNsZWFuIHVwLgogICAKMTk5Ni0xMC0wNCAwMTo0NiAgd2hhcmRha2UKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKToKICAgICAtIENsZWFuZWQgdXAgbWFuIHBhZ2UgZm9ybWF0dGluZy4KICAgICAtIEFkZGVkIG5vdGUgYWJvdXQgU05NUHNldCBjb21tdW5pdHkgc3RyaW5ncy4KICAgICAtIG1pbm9yIHByb29mLXJlYWRpbmcgKG1ham9yIHByb29maW5nIG5lZWRlZCBzdGlsbCkuCiAgICAgLSBSZS1vcmdhbml6ZWQgYSBiaXQuCiAgIAoxOTk2LTEwLTA0IDAxOjQ0ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUmVtb3ZlIHNwYWNlcyBmcm9tIHNlZHNjcmlwdCB3aGVuIHVzaW5nIGJyb2tlbiBjcHAgKGdjYykuCiAgIAoxOTk2LTEwLTA0IDAxOjQzICB3aGFyZGFrZQoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IEFkZGVkIHNubXBnZXQvc2V0IHRvIHBhc3MgZXhhbXBsZS4KICAgCjE5OTYtMTAtMDMgMDg6MTAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChzbm1wX2ltcGwuaCk6ICBUdXJuIG9uIG9sZCBDTVUgZGVidWdnaW5nIHN0YXRtZW50cyB3aXRoIC0tZW5hYmxlLWRlYnVnZ2luZy4KICAgCjE5OTYtMTAtMDMgMDg6MDUgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6CiAgICAgLSBNYWtlIGFnZW50IHByb3Blcmx5IGNoZWNrIHNubXBzZXQgZXhpdCBjb2RlcyBhbmQgdXNlIHRoZW0gKG9uIENPTU1JVCkuCiAgIAoxOTk2LTEwLTAxIDA4OjI4ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqLCByZWFkX2NvbmZpZy5jKToKICAgICAtIENoZWNrIGZvciBtbnRlbnQuaCBhbmQgaW5jbHVkZSBpdC4KICAgICAtIENoZWNrIGZvciAvZXRjL21udHRhYiBvciAvZXRjL210YWIgYW5kIHVzZSBhcHByb3ByaWF0ZWx5LgogICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAtIHBpY2sgZ2V0bW50ZW50IG92ZXIgZ2V0ZnNmaWxlIGlmIGJvdGggYXJlIGF2YWlsYWJsZS4KICAgICAtIGRlYnVnIGNsZWFudXAgKG9maWxlIC0+IHN0ZGVyciwgY2hlY2sgZm9yIERPREVCVUcgaW5zdGVhZCBvZiBjb25zdCB2YXIpLgogICAKMTk5Ni0xMC0wMSAwNzozMCAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChwYXJzZS5jLCBwYXJzZS5oKTogRnJvbSBKb2UgTWFyem90OgogICAgIC0gYWxsb3dzIHRoZSBDTVUgbGliIHRvIHJldGFpbiB0aGUgVEMgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIGEKICAgICAgIHBhcnRpY3VsYXIgb2JqZWN0LiBJbiBwYXJ0aWN1bGFyIHRoaXMgYWxsb3dzIERpc3BsYXlTdHJpbmdzIHRvIGJlCiAgICAgICBkaWZmZXJlbnRpYXRlZCBmcm9tIE9jdGV0U3RyaW5ncyB3aGVuIHRoZXkgYXJlIGxvb2tlZCB1cCBpbiB0aGUKICAgICAgIE1pYiBUcmVlLgogICAKMTk5Ni0wOS0yNSAwNToxNCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMpOiBmcmVlYnNkMiB0eXBlY2FzdC4KICAgCjE5OTYtMDktMjQgMDg6MTYgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogdHlwbyBmaXhpbmcgYSB0eXBvIChzaWdoLi4pLgogICAKMTk5Ni0wOS0yNCAwODowMiAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IE1vdmVkIGEgdmFyaWFibGUgZGVjbGFpcmF0aW9uLgogICAKMTk5Ni0wOS0yNCAwNzo1OSAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jKTogdHlwb3MuCiAgIAoxOTk2LTA5LTI0IDA3OjU0ICB3aGFyZGFrZQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoY29uZmlnKiwgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYyk6IEFkZGVkIHN5cy9zZWxlY3QuaCBmb3IgQUlYLgogICAKMTk5Ni0wOC0zMCAwMjo1MSAgd2hhcmRha2UKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogTW9yZSBtaW5vciBidWdzIGxpc3RlZAogICAKMTk5Ni0wOC0zMCAwMjo0OSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZWQgbWFsbG9jIHByb3RvdHlwZSBkdWUgdG8gY29uZmxpY3Rpb25zLgogICAKMTk5Ni0wOC0zMCAwMToxNSAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogVXBkYXRlZCBmb3IgMy4xLjAuMQogICAKMTk5Ni0wOC0zMCAwMDozNCAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMC4xICkKICAgCjE5OTYtMDgtMzAgMDA6MzQgIHdoYXJkYWtlCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIC0gKE5FV1MsIENoYW5nZUxvZyk6IFVwZGF0ZWQgZm9yIDMuMS4wLjEKICAgCjE5OTYtMDgtMzAgMDA6MjQgIHdoYXJkYWtlCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIChhcHBzL01ha2VmaWxlLmluKTogIEFkZGVkIGtlcm5lbF9zdW5vczUubyB0byBzbm1wdHJhcCBmb3IgZ2V0S3N0YXQuCiAgIAoxOTk2LTA4LTMwIDAwOjIzICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICAtIChzbm1wdHJhcC5jKTogcGF0Y2ggc2NyZXdlZCB1cC4KICAgCjE5OTYtMDgtMzAgMDA6MjIgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gcmVtb3ZlZCAtWHMgZmxhZyBmb3IgZ2NjIG9uIHNvbGFyaXMuCiAgICAgLSBsb2dmaWxlIGNoZWNrcyBmb3IgZXhpc3RhbmNlIG9mIC92YXIvbG9nIGFuZCAvdXNyL2FkbS4KICAgCjE5OTYtMDgtMjkgMDc6MjkgIHdoYXJkYWtlCgogICAqIFJFQURNRSwgVE9ETzoKCiAgIC0gQ2hhbmdlZCBteSBlbWFpbCBhZGRyZXNzIHRvIG15IG5ldyBvbmUuCiAgIAoxOTk2LTA4LTI5IDA3OjIwICB3aGFyZGFrZQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYXV0b2NvbmYqLCBzbm1wX3ZhcnMuYyk6IFJlbW92ZWQgc29tZSBzb2xhcmlzIGlmZGVmcy4KICAgCjE5OTYtMDgtMjkgMDc6MDMgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIC0gKHNubXB3YWxrLmMpOiBSZW1vdmVkIFNWUjQgaWZkZWZzCiAgIAoxOTk2LTA4LTI5IDA2OjU4ICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBzdGF0dXMuYzoKCiAgIC0gKHNubXBzdGF0dXMuYyk6IFBhdGNoIGZyb20gVHJldm9yIEJvdXJnZXQgPHRib3VyZ2V0QHF1YWxjb21tLmNvbT4KICAgICAtIG1hbGxvYyBzeXNkZXNjIGluc3RlYWQgb2YgYXNzdW1pbmcgPCAxMjggYnl0ZXMuCiAgIAoxOTk2LTA4LTI5IDA2OjA4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgIC0gZ2NjIHdhcm5pbmdzIE5VTEwgLT4gMAogICAKMTk5Ni0wOC0yOSAwNjowNyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAtIHNhdmUgbWliIGRlc2NyaXB0aW9ucyBmb3Igc25tcHRyYW5zbGF0ZSBhbmQgb3RoZXIgYXBwcyB0aGF0IG5lZWQgaXQuCiAgIAoxOTk2LTA4LTI5IDA2OjA2ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgLSBwcm90b3R5cGVzIGZvciBnY2Mgd2FybmluZ3MKICAgCjE5OTYtMDgtMjkgMDY6MDYgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgIC0gdWNoYXIocykgY2FuJ3QgYmUgbGVzcyB0aGFuIDAuCiAgIAoxOTk2LTA4LTI5IDA2OjAzICB3aGFyZGFrZQoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcHRyYXAuMToKCiAgIC0gKG1hbi9zbm1wdHJhcC4xKTogIGFkZGVkIGJ5IE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgIAoxOTk2LTA4LTI5IDA1OjU5ICB3aGFyZGFrZQoKICAgKiBhcHBzLzogc25tcGJ1bGt3YWxrLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYwosIHNubXBzZXQuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcC5jLAogICBzbm1wdHJhcGQuYywgc25tcHdhbGsuYzoKCiAgIC0gKGFwcHMvKi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgIC0gc2V0IGV4aXQgY29kZXMgb2YgMCBmb3IgYWxsIGFwcHMuCiAgICAgLSBSZW1vdmVkIFNWUjQgI2lmZGVmcy4KICAgICAtIEdyZWF0bHkgaW1wcm92ZWQgc25tcHRyYXAuCiAgIAoxOTk2LTA4LTI3IDAxOjA0ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhdXRvY29uZiopOgogICAgIC0gRnJlZUJTRCBhZGRpdGlvbnMuCiAgICAgLSBOZXcga2VybmVsIGxvY2F0aW9uOiAgL2tlcm5lbCAoaWNrKS4KICAgICAtIExvZyBmaWxlIGRlZmF1bHQgaW50ZWxsaWdlbnRseSBjaGVja3MgZm9yIC92YXIvbG9nIGFuZCAvdXNyL2FkbS4KICAgICAtIENoZWNrcyBmb3IgZ2V0bG9hZGF2ZygpLgogICAKMTk5Ni0wOC0yNyAwMTowMCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IE1vcmUgd2FycGVkIEZyZWVCU0QgY2hhbmdlcwogICAKMTk5Ni0wOC0yNyAwMDozOCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMpOiBGcmVlQlNEIHNwZWNpZmljIGNoYW5nZXMuCiAgIAoxOTk2LTA4LTI3IDAwOjAxICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICAtIChzbm1wdHJhcC5jKToKICAgICAtIEZyZWVCU0Qgc3BlY2lmaWMgY2hhbmdlcy4KICAgICAtIG1vcmUgYXV0b2NvbmYgY29tcGxldGU6IHBhdGhzIHRvIGxpYnJhcmllcyBhbmQga2VybmVsIGxvY2F0aW9uLgogICAKMTk5Ni0wOC0yNiAyMzo0NyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogRml4IGJ5dGUgb3JkZXIgcHJvYmxlbSAoY29udmVydCB0byBuZXR3b3JrIGJlZm9yZSBzZW5kaW5nKS4KICAgCjE5OTYtMDgtMjYgMDc6NTcgIHdoYXJkYWtlCgogICAqIGFnZW50LzogZXZlbnQuYywga2VybmVsLmMsIHJvdXRlX3dyaXRlLmM6CgogICAtIChldmVudC5jLCBrZXJuZWwuYywgcm91dGVfd3JpdGUuYyk6IEZyZWVCU0QgbW9kaWZpY2F0aW9ucwogICAKMTk5Ni0wOC0yNiAwNzo1NSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IEZpeGVkIGEgZ2NjL0ZyZWVCU0Qgb3B0aW1pemF0aW9uIGJ1ZyAoc3R1cGlkIGNvbXBpbGVyKQogICAKMTk5Ni0wOC0yNiAwMTozNyAgd2hhcmRha2UKCiAgICogZWNlLW1pYi5kZWY6CgogICAtIChlY2UtbWliLmRlZik6ICBjb21tYXMgb3V0IG9mIHBsYWNlLgogICAKMTk5Ni0wOC0yNiAwMTozNyAgd2hhcmRha2UKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pIEV4dHJhIG1pYiBwYXJzaW5nIGlkZWFzIGFkZGVkLgogICAKMTk5Ni0wOC0yNiAwMTozNiAgd2hhcmRha2UKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpIFR5cG8sIGV4dHJhIHF1b3RhdGlvbiBtYXJrLgogICAKMTk5Ni0wOC0yMSAwNjozMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvcGFzc3Rlc3Q6CgogICBBZGRlZCBwYXNzdGVzdCEKICAgCjE5OTYtMDUtMjQgMTU6NDYgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xICkKICAgCjE5OTYtMDUtMjQgMTU6NDQgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBjb3B5cmlnaHQgdXBkYXRlCiAgIAoxOTk2LTA1LTI0IDE1OjQzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2csIE5FV1MpOiAzLjEgcmVsZWFzZSBpbmZvIHVwZGF0ZS4KICAgCjE5OTYtMDUtMjQgMTU6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmVkIHNvbWUgaWZkZWYgcmVxdWlyZW1lbnRzLgogICAKMTk5Ni0wNS0yNCAxNToyOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2Njb25maWcuaCwgY29uZmlnLmguaW4pOiAjaWZkZWYgdHlwb3MKICAgCjE5OTYtMDUtMjQgMTQ6MDIgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgbWVtbW92ZSBiZWZvcmUgeW91IGRlZmluZSBpdC4KICAgCjE5OTYtMDUtMjQgMTM6NTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jLCByb3V0ZS5jOgoKICAgLSAoaWYuYywgcm91dGUuYyk6IGNhc3QgcmV0dXJucyBmcm9tIGluZGV4IHRvIGNoYXIgKi4KICAgCjE5OTYtMDUtMjQgMTM6NTQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiAgZGVmaW5lIG1lbW1vdmUgaWYgbm90IGRlZmluZWQgYW5kIG1lbWNweSBpcy4KICAgCjE5OTYtMDUtMjQgMTM6MTMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6ICBub3RlIG9uIGNyZWF0aW5nIGNvbW1lbnRzIGFkZGVkLgogICAKMTk5Ni0wNS0yNCAxMzoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IGRlY2xhcmF0aW9ucyBjbGVhbnVwCiAgIAoxOTk2LTA1LTI0IDEzOjA5ICBoYXJkYWtlcgoKICAgKiBtaWJJSS50eHQ6CgogICAtIChtaWJJSS50eHQpOiByZW1vdmVkIDtzIGF0IHRoZSBlbmQgb2YgdGhlIEJFR0lOIGxpbmVzLgogICAKMTk5Ni0wNS0yNCAxMzowOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnKik6ICBDaGVjayBmb3Igc3lzL21udHRhYi5oCiAgIAoxOTk2LTA1LTI0IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IG1pbm9yIGV4YW1wbGUgZmlsZSBjaGFuZ2VzLgogICAKMTk5Ni0wNS0yNCAxMjozOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogQWRkZWQgYSB0aGFua3Mgc2VjdGlvbi4KICAgCjE5OTYtMDUtMjQgMTI6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHNubXBsaWIvcGFyc2UuYyk6ICBwYXJzaW5nIGZpeGVzIGZyb20gTWlrZSBQZXJpayA8bWlrZXBAY3J0LmNvbT4KICAgCjE5OTYtMDUtMjMgMTc6NDcgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgZ2V0bW50ZW50LgogICAKMTk5Ni0wNS0yMyAxNzowOSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKiwgZXh0ZW5zaWJsZS5jKTogZml4ZWQgZGlzayBjaGVja3Mgb24gU29sYXJpcyBhbmQgYWxwaGEncwogICAgIC0gdXNlIHN0YXR2ZnMgb3ZlciBmc3RhYiBpZiBib3RoIHByZXNlbnQuCiAgIAoxOTk2LTA1LTIzIDE2OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYWNsLmMsIHBhcnR5LmMsIHZpZXcuYzoKCiAgIC0gKGFjbC5jLCBwYXJ0eS5jKTogaW5jbHVkZSBzdGRpby5oCiAgIAoxOTk2LTA1LTIzIDE0OjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAtIChpZi5jKTogdHlwZSBjYXN0aW5nIGJ1Z3MuCiAgIAoxOTk2LTA1LTIzIDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYWNsLmMsIHBhcnR5LmMsIHZpZXcuYzoKCiAgIC0gKGFjbC5jLCBwYXJ0eS5jLCB2aWV3LmMpOiByZW1vdmVkIE5VTEwgZGVmaW5lcy4KICAgCjE5OTYtMDUtMjMgMTQ6NDMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBEb24ndCBkZWZpbmUgcmFuZG9tIGlmIGl0IGFscmVhZHkgZXhpc3RzLgogICAKMTk5Ni0wNS0yMiAxMjo1NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoYXBwcy9zbm1wbmV0c3RhdC9pZi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgIC0gcmV3b3JrZWQgdGhlIHdheSBzbm1wbmV0c3RhdCAtaSB3b3Jrcy4KICAgCjE5OTYtMDUtMjIgMTI6NDkgIGhhcmRha2VyCgogICAqIGFnZW50Lzoga2VybmVsX3N1bm9zNS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L2tlcm5lbF9zdW5vczUuYywgc25tcF92YXJzLmMsCiAgICAgIGFnZW50L2V4dGVuc2libGUvZXh0ZW5zaWJsZS5jLHJlYWRjb25maWcuYyxzbm1wX3ZhcnMuYyk6CiAgICAgLSBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+OgogICAgICAgLSBmaW5hbGx5IG5haWxlZCB0aGF0IG1pc3NpbmcgaW5pdGlhbGl6YXRpb24gdGhhdCBnYXZlIHByb2JsZW1zCiAgICAgICAgIHdpdGggdGhlIEFUIHN1YnRyZWUKICAgICAgIC0gSSBhbHNvIGltcGxlbWVudGVkIHRoZSBkaXNrIHBhcnQgb2YgdGhlIGV4dGVuc2liaWxpdHkgaW4gdGhlCiAgICAgICAgIGF0dGFjaGVkIHBhdGNoLgogICAKMTk5Ni0wNS0yMiAwODo1MCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWd1cmUsIGluc3RhbGwtc2gsCiAgIG1raW5zdGFsbGRpcnM6CgogICAtIChjb25maWcuZ3Vlc3MsIGNvbmZpZ3VyZSwgaW5zdGFsbC1zaCwgbWtpbnN0YWxsZGlycyk6IEF1dG9jb25mLTIuMTAKICAgCjE5OTYtMDUtMjIgMDg6NTAgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKG1hbi9NYWtlZmlsZS5pbikgVXBkYXRlZCB0aGUgd2F5IHNlZHNjcmlwdCBpcyB1c2VkLgogICAKMTk5Ni0wNS0xNSAxMjozNSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKSBGaXhlZCBhIGhvcnJpYmxlIHR5cG8uICBQIC0+IFBSRUZJWAogICAKMTk5Ni0wNS0xNSAxMjoyMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoYXBwcy9zbm1wbmV0c3RhdC9pZi5jKSByZW1vdmVkICYgaW4gZnJvbnQgb2YgYXJyYXkgcGFzc2VkIGFzIGFyZy4KICAgCjE5OTYtMDUtMTUgMTI6MDMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSkgQWRkZWQgYSBub3RlIChwb2ludGVyIHRvIGRvY3MpIG9uIHRoZSBhZ2VudCdzIGV4dGVuc2libGl0eS4KICAgCjE5OTYtMDUtMTUgMTI6MDAgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKSBtYWtlIGluc3RhbGwgYXMgcm9vdC4KICAgCjE5OTYtMDUtMTUgMDk6NTEgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLkExICkKICAgCjE5OTYtMDUtMTUgMDk6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGFnZW50L2tlcm5lbF9zdW5vczUuYykgcGF0Y2ggbWlzdGFrZS4KICAgCjE5OTYtMDUtMTUgMDk6MjkgIGhhcmRha2VyCgogICAqIENPUFlJTkcsIFJFQURNRSwgVE9ETzoKCiAgIC0gKENPUFlJTkcsIFJFQURNRSwgVE9ETykgUmVsZWFzZSBkb2NzIHVwZGF0ZWQuCiAgIAoxOTk2LTA1LTE1IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnRlZCBwYXNzIHRocnUgbWlicy4KICAgCjE5OTYtMDUtMTUgMDk6MDYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW46CgogICAtIChNYWtlZmlsZS5pbixzZWRzY3JpcHQuaW4pIEFkZGVkIFBSRUZJWCB0byB0aGUgc2Vkc2NyaXB0LgogICAKMTk5Ni0wNS0xNSAwOTowNSAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZSwgYWdlbnQvLmN2c2lnbm9yZSwgYXBwcy8uY3ZzaWdub3JlLAogICBsb2NhbC8uY3ZzaWdub3JlOgoKICAgLSAoKi8uY3ZzaWdub3JlKSBpZ25vcmUgZmlsZSB1cGRhdGUuCiAgIAoxOTk2LTA1LTE1IDA5OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGtlcm5lbF9zdW5vczUuYywga2VybmVsX3N1bm9zNS5oOgoKICAgLSAoYWdlbnQva2VybmVsX3N1bm9zNS5jKSBQYXRjaCBmcm9tICJEYW4gQS4gRGlja2V5IiA8ZGRpY2tleUB0cmFuc2l0aW9uLmNvbT4KICAgICAtIEJldHRlciBjYWNoaW5nIGFsZ29yaXRobSBmb3IgaW1wcm92ZWQgc3BlZWQuCiAgIAoxOTk2LTA1LTE1IDA4OjU5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAtIChhZ2VudC9leHRlbnNpYmxlL3Bhc3MuYykgUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgIC0gSW1wbGVtZW50ZWQgbWlzc2luZyBwYXJ0cyBvZiBpbnRlcmZhY2UgYWRkcmVzcyBhbmQgbmV0d29yayBvdXRwdXQgKC1pKQogICAKMTk5Ni0wNS0xMyAxNTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9pbXBsLmgpOiBDaGFuZ2UgUldSSVRFIHRvIGluY2x1ZGUgV3JpdGUgZm9yIFYyIGJpdHMuCiAgIAoxOTk2LTA1LTEzIDE1OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9leHRlbnNpYmxlL2V4dGVuc2libGUuYyk6CiAgICAgLSBCdWcgZml4OiBHTE9CQUxTRUNVUklUWSBidWc6ICBzYXZlIHJpZ2h0bW9zdCB0d28gYml0cyBpbiBhY2wuCiAgIAoxOTk2LTA1LTEwIDE4OjE2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBzdGF0dXMuMSwgc25tcGxpYi9wYXJzZS5jCjoKCiAgIC0gKG1hbnkpOiBNZXJlZ2VkIGJhZ2dlc2VuLTMtMC03LTIgYnJhbmNoIGludG8gbWFpbiB0cnVuay4KICAgCjE5OTYtMDUtMTAgMTc6MDYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wc3RhdHVzLjE6CgogICBmaWxlIHNubXBzdGF0dXMuMSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCYWdnZXNlbi0zLTAtNy0yLgogICAKMTk5Ni0wNS0xMCAxNzowNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICBmaWxlIHNubXBzdGF0dXMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCYWdnZXNlbi0zLTAtNy0yLgogICAKMTk5Ni0wNS0xMCAxMDoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQva2VybmVsX3N1bm9zNS5jOgoKICAgLSAoa2VybmVsX3N1bm9zNS5jKTogQSBwYXRjaCB0byBmaXggYSB2aXJ0dWFsIGludGVyZmFjZSBwcm9ibGVtLgogICAgIC0gcGF0Y2ggc3VwcGxpZWQgYnkgIkRhbiBBLiBEaWNrZXkiIDxkZGlja2V5QHRyYW5zaXRpb24uY29tPgogICAKMTk5Ni0wNS0wOSAxNjoxMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMKOgoKICAgLSAoY29uZmlndXJlLmluKTogU29sYXJpcyBzcGVjaWZpYyBjcHAgZmxhZ3MgYWRkZWQgZm9yIFNVTnNwcm8ncyBjcHAuCiAgIC0gKGFnZW50L3tzbm1wX3ZhcnMsc25tcGR9LmMsYWdlbnQvZXh0ZW5zaWJsZS97ZXh0ZW5zaWJsZSxtaXNjLHBhc3N9LmMsCiAgICAgIHNubXBsaWIve21pYixzbm1wX2NsaWVudH0uYyk6CiAgICAgLSBDbGVhbmVkIHVwIHByb3RvdHlwZXMgdG8gbWF0Y2ggbW9yZSBjYXJlZnVsbHkgKHdpdGggU29sYXJpcydzIHNwcm8gY2MpLgogICAKMTk5Ni0wNS0wOSAxMzozMiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFjY29uZmlnLmgsYWdlbnQve01ha2VmaWxlLHNubXBfdmFycy5jfSxhZ2VudC9leHRlbnNpYmxlL21hbnkpOgogICAgIC0gQWRkZWQgc3VwcG9ydCBmb3IgcGFzc3RocnUgbWlicy4gIFRvdGFsIGNvbnRyb2wgaXMgaGFuZGVkIHRvIGV4ZWMncy4KICAgCjE5OTYtMDUtMDkgMTM6MjcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbikKICAgICAtIEFkZGVkIGEgY2hlY2sgZm9yIHZhcmlvdXMgcmFuZG9tIGZ1bmN0aW9ucy4KICAgICAtIEluY2x1ZGVkIGFub3RoZXIgaWZkZWYgdG8gZW5zdXJlIG5vICNkZWZpbmUgbG9vcHMgb2NjdXIgd2l0aCBzdHIvaW5kZXggZm5zLgogICAKMTk5Ni0wNS0wOSAxMzoyNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICAtIChhcHBzL3NubXBzZXQuYykgQWRkZWQgJy4nIGFzIGEgZGVsaW1pdGVyIGZvciBkZWNpbWFsIGVuY29kZWQgc3RyaW5ncy4KICAgCjE5OTYtMDUtMDMgMTQ6NDAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIC0gKGFwcHMvc25tcHRyYXAuYykgQWRkZWQgI2luY2x1ZGU8c3lzL3NvY2tpby5oPgogICAKMTk5Ni0wNS0wMyAxNDozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYykgU29sYXJpcyBmaXggZm9yIGludGVyZmFjZXMuCiAgICAgLSBGcm9tIERhbiBBLiBEaWNrZXkgPGRkaWNrZXlAdHJhbnNpdGlvbi5jb20+CiAgIAoxOTk2LTA1LTAzIDE0OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJfcm91dGUuYyxzbm1wX3ZhcnMuYykKICAgICAtIENoYW5nZWQgdGhlIGludGVyZmFjZSBjb3VudGVyIHRvIGEgc2hvcnQgZm9yIGFsbCBhcmNoaXRlY3R1cmVzIChidXMgZXJyKQogICAgIC0gVW5kZWZlZCBhIGZ1bmN0aW9uIHRoYXQgaXMgbmV2ZXIgdXNlZC4KICAgCjE5OTYtMDUtMDMgMTQ6MzMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbgo6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pCiAgICAgLSBBZGRlZCBhIGNoZWNrIGZvciB2YXJpb3VzIHJhbmRvbSBmdW5jdGlvbnMuCiAgICAgLSBJbmNsdWRlZCBhbm90aGVyIGlmZGVmIHRvIGVuc3VyZSBubyAjZGVmaW5lIGxvb3BzIG9jY3VyIHdpdGggc3RyL2luZGV4IGZucy4KICAgCjE5OTYtMDUtMDEgMTQ6NTkgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4wLjcuMiApCiAgIAoxOTk2LTA1LTAxIDE0OjU5ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2csTkVXUykgdmVyc2lvbiB1cGRhdGUgMy4wLjcuMgogICAKMTk5Ni0wNS0wMSAxNDo1NiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgsYWdlbnQvZXh0ZW5zaWJsZS9taWJkZWZzLmgpOiByZW1vdmVkIGNvbWVudHMvc3BhY2VzIGZyb20gZGVmaW5lcy4KICAgCjE5OTYtMDUtMDEgMTQ6MzcgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbikgZm9yZ290IE5FVEJTRDFJRCBkZWYuCiAgIAoxOTk2LTA1LTAxIDE0OjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSAobG9jYWwvc25tcGNoZWNrKSBUay1iMTAgZml4ZXMuCiAgIAoxOTk2LTA1LTAxIDE0OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9yb3V0ZV93cml0ZS5jOgoKICAgLSAoYWdlbnQvcm91dGVfd3JpdGUuYyxhZ2VudC9leHRlbnNpYmxlL2V4dGVuc2libGUuYyk6CiAgICAgLSBuZXRic2QxLjFCIHNwZWNpZmljIGZpeGVzOiBjbGFzaCB3aXRoIHN5c19lcnJsaXN0IGFuZCBydF9kc3QgZGVmaW5lcy4KICAgCjE5OTYtMDUtMDEgMTM6NTUgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmOgoKICAgLSAobWFuL3NubXBkLjEuZGVmLHNubXBkLmNvbmYuNS5kZWYpIC5DIC0+IC5CLCB0byBpbmNyZWFzZSBucm9mZiBwb3J0YWJpbGl0eS4KICAgCjE5OTYtMDUtMDEgMTM6NTQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSosIGFnZW50L2V4dGVuc2libGUve3JlYWRfY29uZmlnLGV4dGVuaXNibGV9LmMpOgogICAgIC0gY29uZmlndXJpZmllZCAobmV3IHdvcmQpIHNvbWUgb2YgTmllbHMnIGNoYW5nZXMgYW5kIHRoZSBiY29weS9tZW1tb3ZlIHN0dWZmLgogICAKMTk5Ni0wNS0wMSAxMjozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBrZXJuZWwuYywga2VybmVsX3N1bm9zNS5jLCBzbm1wX3ZhcnMuYwosIHNubXBkLmM6CgogICAtIChtYW55KSBGaXhlcyBmb3IgU29sYXJpcyAoMi41KSBzdWJtaXR0ZWQgYnkKICAgICAgICAgICAgTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz46CiAgICAgICAiU29tZSBhcmUgbXkgb3duLCBvdGhlcnMgYXJlIGZyb20gWXVyaSBSYWJvdmVyIHdobyBvcmlnaW5hbGx5CiAgICAgICAgY3JlYXRlZCB0aGUgcGF0Y2guIFNvbWUgb2YgdGhpcyBpcyB0aGVyZSB0byBlbGltaW5hdGUgdGhlCiAgICAgICAgZGVwZW5kZW5jeSBvbiB0aGUgdWNibGliIGNvbXBhdGliaWxpdHkgc3R1ZmYsIHNvbWUgaXMgImNvc21ldGljIiwKICAgICAgICBidXQgaXQgYWxzbyBmaXhlcyBhIHNlcmlvdXMgcHJvYmxlbSBpbiB0aGUgYWdlbnQsIHdoZXJlIHdhbGtpbmcKICAgICAgICB0aGUgbWliIHRyZWUgY2FuIGxvb3AgZW5kbGVzc2x5IGlmIHlvdSBoYXZlIG11bHRpcGxlIG5ldHdvcmsKICAgICAgICBpbnRlcmZhY2VzLiIKICAgCjE5OTYtMDQtMjUgMTI6MTkgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4wLjcuMSApCiAgIAoxOTk2LTA0LTI1IDEyOjE4ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoQ2hhbmdlTG9nLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbikgRGVmaW5lZCBERUJVR1AgaWYgRE9ERUJVRyBpcyBub3QgZGVmaW5lZC4KICAgCjE5OTYtMDQtMjQgMTQ6NTQgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4wLjcgKQogICAKMTk5Ni0wNC0yNCAxNDo1MyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nLE5FV1MpIHVwZGF0ZSBmb3IgMy4wLjcKICAgCjE5OTYtMDQtMjQgMTQ6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIChsb2NhbC9zbm1wY2hlY2spIG5ldyBwcmVmOiAgZG9uJ3QgcG9wIGZvcndhcmQgb24gbmV3IHByb2JsZW1zLgogICAKMTk5Ni0wNC0yNCAxMzoyNSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jOgoKICAgLSAoY29uZmlnKixhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jKSBjb25maWcgY2hlY2tpbmcgZm9yIHJ0ZW50cnkucnRfbmV4dAogICAKMTk5Ni0wNC0yNCAxMTo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFyX3JvdXRlLmMpIEAjJCVpbmcgc29sYXJpcwogICAKMTk5Ni0wNC0yNCAxMTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFyX3JvdXRlLmMpIENoZWNrZWQgZm9yIHN5cy9tYnVmIGZvciBkZXRlcm1pbmluZyBydGVudHJ5LnJ0X25leHQKICAgCjE5OTYtMDQtMjQgMDk6MDcgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKSB1cGRhdGVkCiAgIAoxOTk2LTA0LTI0IDA5OjAwICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpIHVwZGF0ZWQKICAgCjE5OTYtMDQtMjQgMDg6NTQgIGhhcmRha2VyCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgLSAobWFuLy5jdnNpZ25vcmUpIGFkZGVkIHNubXBkLjEKICAgCjE5OTYtMDQtMjQgMDg6NTMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBlY2UtbWliLmRlZiwKICAgb3YvVUNELWZpZWxkcywgb3Yvb2lkX3RvX3N5bS5pbiwgb3Yvb2lkX3RvX3R5cGUuaW4KOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGVjZS1taWIuZGVmLCBvdi8qKSBBZGRlZCBOZXRCU0QgdG8gc3lzLU9JRCByZXR1cm5lZC4KICAgCjE5OTYtMDQtMjQgMDg6NDQgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLHNubXBfdmFycy5jKSBtb3JlIGNvbmZpZyBmaWxlcyBmb3IgTmV0QlNELgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYykgcmVtb3ZlZCBhcnAgdGFibGVzIGZvciBuZXRic2QuCiAgIAoxOTk2LTA0LTI0IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hbGFybS5jOgoKICAgLSAoYWdlbnQvYWxhcm0uYykgRml4ZWQgc29tZSBkZWZpbmUgbmFtaW5nIGNvbmZsaWN0cyBmb3IgTmV0QlNEICh0aW1lcmFkZCgpKS4KICAgCjE5OTYtMDQtMjQgMDg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pIEZvcmdvdCBhIHF1b3RlLiAgKHdoeSBoYXNuJ3QgdGhpcyBhcHBlYXJlZCBiZWZvcmU/KQogICAKMTk5Ni0wNC0yNCAwODozNiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKSBNb3JlIGhlYWRlciBmaWxlIGNoZWNrcyAodm0vdm0uaCAoKyBvdGhlcnMpIGFuZCB1ZnMvZmZzL2ZzLmgpCiAgIAoxOTk2LTA0LTE2IDE4OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYykgQWRkZWQgZmZsdXNoIGNhbGxzIGFmdGVyIHByaW50aW5nIHBhY2tldCBkdW1wcwogICAKMTk5Ni0wNC0xNiAwOTo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByb3V0ZV93cml0ZS5jLCBzbm1wX3Zhcl9yb3V0ZS5jOgoKICAgLSAoYWdlbnQve3JvdXRlX3dyaXRlLmMsc25tcF92YXJfcm91dGUuY30pIE9TRjMuMiBzcGVjaWZpYyBjaGFuZ2VzLiAgYXJnLgogICAKMTk5Ni0wNC0xNiAwOTo0NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUpIEkgZm9yZ290IERNRU1fTE9DIG5lZWRzIHRvIGJlICN1bmRlZidlZCBpZiBub3QgZm91bmQKICAgCjE5OTYtMDQtMTUgMTQ6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChhZ2VudC9zbm1wZC5jKSBGaXhlZCAyIGdldHRpbWVvZmRheSBjYWxscyAtLSBhZGRlZCBhIE5VTEwgdGltZXpvbmUgcHRyLgogICAKMTk5Ni0wNC0xNSAxNDoxMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKSBOZXcgY29tbWFuZCBsaW5lIG9wdGlvbjogIC0td2l0aC1kZWZhdWx0cy4gIERvbid0IHByb21wdCB0aGUgdXNlci4KICAgLSAoY29uZmlndXJlKSBidWcgZml4ZXM6ICB3YXNuJ3QgcXVvdGluZyBrZXJuZWwgYW5kIGRtZW0gbG9jYXRpb24uCiAgIC0gKGNvbmZpZ3VyZSkgZ2NjIGNwcCByZXF1aXJlcyAteCBjIHRvIGFjY2VwdCAuaW4gZmlsZSBzdWZmaXguCiAgIAoxOTk2LTA0LTE1IDEyOjUzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUpIE5ldyBjb21tYW5kIGxpbmUgb3B0aW9uOiAgLS1lbmFibGUtZGVidWdnaW5nLiAgVHVybnMgb24gZGVidWdnaW5nLgogICAtIChjb25maWd1cmUpIEZpeGVzIGZvciB0eXBlIGNoZWNraW5nIG9mIDQuNCBydGVudHJ5IHN0cnVjdHVyZXMgb24gYWxwaGFzLgogICAKMTk5Ni0wNC0xMiAxNjo0OCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBlY2UtbWliLmRlZiwKICAgc2Vkc2NyaXB0LmluLCBhZ2VudC9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBvdi9VQ0QtZmllbGRzLAogICBvdi9vaWRfdG9fc3ltLmluLCBvdi9vaWRfdG9fdHlwZS5pbiwKICAgb3YvYml0bWFwcy9VQ0QuZmllbGRzOgoKICAgLSAoc25tcF92YXJfcm91dGUuYykKICAgICAtIENoYW5nZWQgbmxpc3Qgd2FybmluZ3MgdG8gb25seSBwcmludCBpZiBET0RFQlVHIGlzIGRlZmluZWQgaW4gY29uZmlnLmgKICAgLSAobWFueSkgQWRkZWQgc3VwcG9ydCBmb3IgaHBwYTEuMS1ocC1ocHV4MTAuMDEKICAgICAtIHRvdGFsbHkhIHJlZGlkIHRoZSByb3V0aW5nIHRhYmxlcyBmb3IgQlNEIDQuNCBkZXJpdmVkIHN5c3RlbXMKICAgICAgIChhbHBoYSwgaHB1eDEwLjAxKywgbmV0YnNkKSBzaW5jZSBocHV4MTAgZG9lc24ndCBoYXZlIDQuMyBjb21wYXQgc3RydWN0cy4KICAgLSAoZWNlLW1pYi5kZWYpIENhcGl0YWxpemF0aW9uIHByb2JsZW0uCiAgIC0gKGNvbmZpZ3VyZS5pbikKICAgICAtIENsZWFuZWQgdXAga2VybmVsIGNoZWNraW5nCiAgICAgLSBTdGFydGVkIHVzaW5nIGEgYXV0b2NvbmYgMi44IGZlYXR1cmUgdG8gY2hlY2sgZm9yIGNhY2hlIHZhbHVlcy4KICAgCjE5OTYtMDQtMTIgMTQ6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L2V4dGVuc2libGUuYykKICAgICAtIENoYW5nZWQgbmxpc3Qgd2FybmluZ3MgdG8gb25seSBwcmludCBpZiBET0RFQlVHIGlzIGRlZmluZWQgaW4gY29uZmlnLmgKICAgCjE5OTYtMDQtMDUgMTY6MTkgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKG1hbi9NYWtlZmlsZS5pbikgQWRkZWQgYSAnY2xlYW4nIGRlZmluaXRpb24gdG8gdGhlIE1ha2VmaWxlLgogICAKMTk5Ni0wNC0wNSAxNjoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChzbm1wbGliL2FzbjEuYykgcmVtb3ZlZCBhIHJlcXVpcmVkICd1bml4JyBkZWZpbmUgc3Vycm91bmRpbmcgYSBoZWFkZXIgZmlsZS4KICAgCjE5OTYtMDQtMDUgMTY6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSkgYXV0b2NvbmYtMi43IC0+IGF1dG9jb25mLTIuOQogICAKMTk5Ni0wNC0wNSAxNjoxMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKGxvY2FsL3NubXBjaGVjay5kZWYpIFRrLWI4ID0+IFRrLWIxMCBjaGFuZ2VzCiAgIAoxOTk2LTAzLTExIDE1OjU4ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICBzbWFsbCBDaGFuZ2VMb2cgdXBkYXRlCiAgIAoxOTk2LTAzLTExIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBmaXhlZCBhIHRpbWVvdXQgYnVnIGNhdXNlZCBieSBhcmNoaXRlY3R1cmVzCiAgICAgd2l0aCBhbiB1bnNpZ25lZCB0aW1ldmFsLnR2X3NlYyB2YWx1ZS4KICAgICAtIFRoYW5rcyBnb2VzIHRvIEdpb3Zhbm5pIFMuIE1hcnpvdCA8Z21hcnpvdEBiYXluZXR3b3Jrcy5jb20+IGZvcgogICAgICAgdGhlIHBhdGNoIQogICAKMTk5Ni0wMy0xMSAxNTo0MSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjAuNiApCiAgIAoxOTk2LTAzLTExIDE1OjQxICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2cvTkVXUyk6IHVwZGF0ZWQgZm9yIDMuMC42CiAgIAoxOTk2LTAzLTExIDE1OjM5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBtb3JlIGNsZWFuIHVwIGFuZCBhZGRlZCByZWZlcmVuY2UgdG8gdGhlIHVjZC1zbm1wIG1haWxpbmcgbGlzdC4KICAgCjE5OTYtMDMtMTEgMTU6MTcgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGNsZWFuZWQgdXAsIHJlLWFycmFuZ2VkLCBzaG9ydGVuZWQgKHNlY3Rpb25zIG1vdmVkIHRvIG1hbi8qIGRvY3MpLgogICAKMTk5Ni0wMy0xMSAxNToxNyAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluLCBtYW4vc25tcGQuMS5kZWYsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBzZWRzY3JpcHQuaW46CgogICAtIChtYW4ve01ha2VmaWxlLmluLHNubXBkLjEuZGVmLHNubXBkLmNvbmYuNS5kZWZ9LHZlcnNpb250YWcsc2Vkc2NyaXB0LmluKToKICAgICAtIGNsZWFuZWQgdXAgZG9jdW1lbnRhdGlvbiBtb3JlIGFuZCBhZGRlZCB0aGUgdmVyc2lvbiBudW1iZXIgdG8gdGhlIHRyYWlsZXJzLgogICAKMTk5Ni0wMy0xMSAxMzozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jLCBleHRlbnNpYmxlLmMpOiBjb21tZW50ZWQgb3V0IG5saXN0IHdhcm5pbmdzLgogICAKMTk5Ni0wMy0wOCAxMDozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oKSBmaXhlZCBhIGZpeCB0aGF0IHNob3VsZG4ndCBoYXZlIGJlZW4gZml4ZWQuCiAgIAoxOTk2LTAzLTA4IDEwOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wbGliL3NubXBfY2xpZW50LmMpIENoZWNrIGlmIHZhcmlhYmxlIGNvbnRlbnQgaXMgTlVMTCBiZWZvcmUgdXNpbmcuCiAgIAoxOTk2LTAzLTA2IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAoc25tcGxpYi9taWIuYykgcHJpbnRlZCB2YWx1ZXMgZm9yIHRpbWV0aWNrcyBhcmUgbm8gbG9uZ2VyIG5lZ2F0aXZlLgogICAKMTk5Ni0wMy0wNiAxNjozOCAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICAtIChlY2UtbWliLmRlZikKICAgICAtIENoYW5nZWQgY2FwaXRhbGl6YXRpb24gc2NoZW1lcyB0byBiZSBtb3N5IGNvbXBsaWFudC4KICAgICAtIE1hZGUgdGhlIG1lbW9yeSBtaWIgU1lOVEFYIHBvaW50IHRvIHRoZSBNZW1vcnkgc2VxdWVuY2UgbGlrZSBpdCBzaG91bGQuCiAgIAoxOTk2LTAzLTA2IDA5OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoYWdlbnQvc25tcGQuYykgQWRkZWQgT19UUlVOQyB0byB0aGUgbG9nZmlsZSBvcGVuKCkgY2FsbC4KICAgCjE5OTYtMDItMjEgMTY6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCkKICAgICAtIENoYW5nZWQgdHJhcF90eXBlICYgc3BlY2lmaWNfdHlwZSB0byBsb25nIGZyb20gaW50IGZvciA2NCBiaXQgYXJjaGl0ZWN0dXJlcy4KICAgICAgIC0gc3VnZ2VzdGVkIGJ5IGZyYW5jdXNAbWV0c255LmRlbHBoaS5jb20uCiAgIAoxOTk2LTAyLTIxIDE2OjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIHNubXB0cmFwLmM6CgogICAtIChhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0cmFwLmMpCiAgICAgLSBBZGRlZCBhcHBzL3NubXB0cmFwCiAgICAgICAtIGNvZGUgdGFrZW4gZnJvbSAyLjAuMSBhbmQgc3VibWl0dGVkIHRvIG1lIGJ5IGZyYW5jdXNAbWV0c255LmRlbHBoaS5jb20uCiAgICAgICAtIEkgaGF2ZSB5ZXQgdG8gdGVzdCBpdC4KICAgCjE5OTYtMDItMjEgMTY6MTIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4sIG1hbi8uY3ZzaWdub3JlLAogICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNlZHNjcmlwdC5pbiwgbWFuL01ha2VmaWxlLmluLCBtYW4vc25tcGQuY29uZi41LmRlZikKICAgICAtIEFkZGVkIHRoZSBiZWdpbm5pbmdzIG9mIGEgc25tcGQuY29uZiBtYW51YWwgcGFnZS4KICAgCjE5OTYtMDItMTYgMTY6MzIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChhY2NvbmZpZy5oLGNvbmZpZy5oLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L2V4dGVuc2libGUvcmVhZF9jb25maWcuYykKICAgICAtIC5jb25mIGZpbGUgYWRkaXRpb246ICAiY29tbXVuaXR5IE4gU1RSSU5HIiB0byBjaGFuZ2UgY29tbXVuaXR5IG5hbWVzCiAgIAoxOTk2LTAyLTEyIDE0OjI4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oaW4sIGFnZW50L2V4dGVuc2libGUvbWlzYy5jKQogICAgIC0gVGhlIGFnZW50IG5vdyBzZXRzIGFuIGFsYXJtIHRvIHJlc3RhcnQgcmF0aGVyIHRoYW4gZG9pbmcgYXQgdGhlCiAgICAgICBzbm1wc2V0IHRpbWUgdG8gcmV0dXJuIGEgdmFsdWUgdG8gdGhlIHNubXBzZXQgcmVxdWVzdC4KICAgCjE5OTYtMDItMDkgMTc6MDQgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLAogICBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGVjZS1taWIuZGVmLCBzZWRzY3JpcHQuaW4sIGFnZW50L3NubXBfdmFycy5jLAogICBvdi8uY3ZzaWdub3JlLCBvdi9NYWtlZmlsZS5pbiwgb3YvUkVBRE1FLAogICBvdi9VQ0QtQ29tcHV0ZXIsIG92L1VDRC1maWVsZHMsIG92L29pZF90b19zeW0uaW4sCiAgIG92L29pZF90b190eXBlLmluLCBvdi9iaXRtYXBzL1VDRC4yMC5tLAogICBvdi9iaXRtYXBzL1VDRC4yMC5wLCBvdi9iaXRtYXBzL1VDRC4yNi5tLAogICBvdi9iaXRtYXBzL1VDRC4yNi5wLCBvdi9iaXRtYXBzL1VDRC4zMi5tLAogICBvdi9iaXRtYXBzL1VDRC4zMi5wLCBvdi9iaXRtYXBzL1VDRC4zOC5tLAogICBvdi9iaXRtYXBzL1VDRC4zOC5wLCBvdi9iaXRtYXBzL1VDRC40NC5tLAogICBvdi9iaXRtYXBzL1VDRC40NC5wLCBvdi9iaXRtYXBzL1VDRC41MC5tLAogICBvdi9iaXRtYXBzL1VDRC41MC5wLCBvdi9iaXRtYXBzL1VDRC5maWVsZHM6CgogICAtIEJldHRlciBPcGVuVmlldyBzdXBwb3J0CiAgICAgLSBSZXR1cm5zIGRpZmZlcmVudCBzeXNPYmplY3RJRCdzIGZvciBlYWNoIGFyY2hpdGVjdHVyZQogICAgIC0gQWRkZWQgYSAnb3YnIGRpcmVjdG9yeSBmb3IgT3BlblZpZXcgc3VwcG9ydCBmaWxlcwogICAgICAgLSBjdXJyZW50bHkgY29udGFpbnMgbmVjZXNzYXJ5IGZpbGVzIHRvIHN1cHBvcnQgYSBVQ0QgYml0bWFwIGZpbGUKICAgICAgICAgZm9yIGhvc3RzIHVzaW5nIHRoZSB1Y2Qtc25tcCBhZ2VudC4gIFNlZSB0aGUgb3YvUkVBRE1FIGZpbGUgZm9yIGRldGFpbHMuCiAgIAoxOTk2LTAxLTI2IDA4OjI1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gVGhlIFNvbGFyaXMgMi41IGtlcm5lbCBoYXMgbW92ZWQgdG8gL2tlcm5lbC9nZW51bml4CiAgICAgLSBUaGFua3MgZ29lcyB0byBwb21taWVyQHZvbG5heS5zdG9ydGVrLmNvbSAoVmluY2VudCBQb21taWVyIChUb3Vsb3VzZSkpCiAgIAoxOTk2LTAxLTI0IDE2OjM2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGVjZS1taWIuZGVmLCBzZWRzY3JpcHQuaW46CgogICAtIChNYWtlZmlsZSwgY29uZmlnLmgsIGVjZS1taWIuKiwgc2Vkc2NyaXB0LmluKQogICAgIC0gY2hhbmdlZCB0aGUgd2F5IG1pYi50eHQgaXMgYnVpbHQKICAgICAgIC0gc3BsaXQgdGhlIGNvbW1hbmQgaW50byB0d28gcGFydHMgdG8gYnVpbGQgYSBlY2UtbWliLnR4dCBhcyB3ZWxsCiAgICAgLSBhZGRlZCBhIG5ldyBPYmplY3RJRCBhZGRpdGlvbiB0byBlY2UtbWliLnR4dAogICAgIC0gREVGTUFYTE9BREFWRSAtPiBEUkVNT1ZFTUVFRk1BWExPQURBVkUKICAgCjE5OTYtMDEtMjQgMTY6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az4KICAgICAtIGZpeGVzIC1wIFBPUlQgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBhY3R1YWxseSB1c2UgdGhlIHJlcXVlc3RlZCBwb3J0LgogICAgIC0gZml4ZXMgdGhlIC1sIExPR0ZJTEUgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBhY3R1YWxseSB1c2UgaXQuCiAgIAoxOTk2LTAxLTI0IDE2OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gUmV0dXJuaW5nIEVYVEVOU0lCTEVET1RNSUIuQUdFTlRJRCBhcyB0aGUgbmV3IG9iamVjdGlkCiAgIAoxOTk2LTAxLTIyIDE3OjMwICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2csTkVXUykKICAgICAtIFByZXBlZCBmb3IgMy4wLjUgcmVsZWFzZQogICAKMTk5Ni0wMS0yMiAxNzoyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKGxvY2FsL3NubXBjaGVjaykKICAgICAtIGFkZGVkIGFnZW50IGNvbnRyb2xzOiAgcmVzdGFydCwgdXBkYXRlY29uZmlnLCBjbGVhcmNhY2hlLgogICAgIC0gcmVtb3ZlZCBhbiBvbGQgZGVidWdnaW5nIHByaW50Zi4KICAgICAtIGN0cmwtZiA9PiBmaXhhbGwuCiAgICAgLSBBZGRlZCBrZXlib2FyZCBhY2NlbGVyYXRvcnMgdG8gdGhlIGFzc29jaWF0ZWQgbWVudSBpdGVtcy4KICAgICAtIE1hZGUgaGlnaGxpZ2h0VGhpY2tuZXNzIGEgZ2xvYmFsIHBhcmFtZXRlciB2aWEgJHdpbmRvdy0+b3B0aW9uKCdhZGQnKS4KICAgICAtIEFkZGVkIGEgZW50cnkgYm94IHRvIHRoZSBleGVjdXRhYmxlIGNvbW1hbmRzIHdpdGggdGhlIGNvbW1hbmQgdG8gcnVuLgogICAKMTk5Ni0wMS0yMiAxNzoxOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChsb2NhbC9NYWtlZmlsZS5pbikgQWRkZWQgYSBjaG1vZCB0byBtYWtlIHRoZSBzbm1wY2hlY2sgc2NyaXB0IGV4ZWN1dGFibGUKICAgCjE5OTYtMDEtMjIgMTY6MjcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhY2NvbmZpZy5oLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvZXh0ZW5zaWJsZS8qLmMpCiAgICAgLSBBZGRlZCBuZXcgZGVmaW5lcyB0byB0dXJuIG9uL29mZiBzZWN0aW9ucyBvZiB0aGUgZXh0ZW5zaWJsZSBtaWIuCiAgICAgLSBUaGlzIGFsc28gZml4ZXMgdGhlIG1pYi50eHQgZmlsZSBkZWZpbml0aW9ucyBpZiBzb21ldGhpbmcgaXMgdHVybmVkIG9mZi4KICAgLSAoTWFrZWZpbGUuaW4pIHJlbW92ZWQgJHtzcmNkaXJ9IGZyb20gdGhlIGZyb250IG9mIHN0YW1wLWguaW4KICAgCjE5OTYtMDEtMTkgMTc6MzEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgcmVtb3ZlLWZpbGVzOgoKICAgLSAoY29uZmlndXJlKikKICAgICAtIHVwZGF0ZWQgdG8gYXV0b2NvbmYgdjIuNwogICAgIC0gSG9wZWZ1bGx5IG5vdyB1c2luZyBjb3JyZWN0ICdtYWtlJyBkZWZpbml0aW9ucwogICAKMTk5NS0xMi0yOCAxNToyNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIGxvY2FsL01ha2VmaWxlLmluKSBNaW5vciBjbGVhbnVwcy4KICAgCjE5OTUtMTItMjggMTI6MTQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKENoYW5nZUxvZyxFWEFNUExFLmNvbmYuZGVmKSBzcGVsbCBjaGVjayAoc2lnaCkKICAgCjE5OTUtMTItMjggMTI6MDkgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIENoYW5nZUxvZywgRVhBTVBMRS5jb25mLmRlZiwKICAgTWFrZWZpbGUuaW4sIE5FV1MsIFJFQURNRSwgc2Vkc2NyaXB0LmluOgoKICAgLSBDcmVhdGVkIGEgRVhBTVBMRS5jb25mIGZpbGUgZm9yIGV4YW1wbGUgdXNhZ2UuCiAgIAoxOTk1LTEyLTI4IDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2csIE5FV1MpOiAgVXBkYXRlZCB0aGVzZSBmb3IgMy4wLjQgcmVsZWFzZS4KICAgCjE5OTUtMTItMjggMTA6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pOiAgTmV2ZXIgZmluaXNoZWQgdGhlIGluc3RhbGwgaXRlbS4KICAgCjE5OTUtMTItMjggMTA6MjIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBUT0RPLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbgosIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBlY2UtbWliLmRlZiwKICAgc2Vkc2NyaXB0LmluLCBsb2NhbC8uY3ZzaWdub3JlLCBsb2NhbC9NYWtlZmlsZS5pbgosIGxvY2FsL3NubXBjaGVjay5kZWYsIFRPRE86CgogICAtIEFkZGVkIGEgc2Vkc2NyaXB0IHdoaWNoIGlzIGJ1aWx0IGZyb20gY29uZmlnLmggYW5kIGFnZW50L2V4dGVuc2libGUvbWliZGVmcy5oCiAgICAgLSB1c2VkIHRvIGR5bmFtaWNhbGx5IGJ1aWxkIG1pYi50eHQgYW5kIGxvY2FsL3NubXBjaGVjay4KICAgCjE5OTUtMTItMjggMTA6MDEgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmU6CgogICAtIEFkZGVkIHNlZHNjcmlwdCB0byB0aGUgLmN2c2lnbm9yZSBmaWxlLgogICAKMTk5NS0xMi0yMCAxNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gRm91bmQgYW5kIGZpeGVkIGEgbWVtb3J5IGxlYWsgaW4gdGhlIHJvdXRpbmcgdGFibGUgbWliLgogICAKMTk5NS0xMi0yMCAwOTo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBzbm1wX29wZW4gY2FsbHMgZ2V0c2VydmJ5bmFtZSBvbmx5IG9uY2Ugbm93LCBhdCB0aGUgcmVxdWVzdCBvZiBHYXJ5CiAgICAgSGF5d2FyZCA8Z2FoQGRpcmFjLmJlbGxjb3JlLmNvbT4uCiAgIAoxOTk1LTEyLTA1IDE1OjAxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSAoc25tcGNoZWNrKQogICAgIC0gTmV3IGZsYWc6ICAtZCwgZG9uJ3Qgc3RhcnQgY2hlY2tpbmcgYW55dGhpbmcuICBKdXN0IGJyaW5nIHVwIGludGVyZmFjZS4KICAgICAtIGNoZWNrIGZvciBibGFuayBvdXRwdXQgb2Ygc25tcGdldCBiZWZvcmUgcGFyc2luZyB3aXRoIHMvLy9nCiAgICAgICBjb25zdHJ1Y3RzLgogICAKMTk5NS0xMi0wNSAxNDo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKikgYWRkZWQgQUNfVFlQRV9QSURfVCB0byB0aGUgY29uZmlndXJlIGNoZWNrcwogICAKMTk5NS0xMi0wMSAxNjoyMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gbG9jYWwvc25tcGNoZWNrOiAgICAgICAqbmV3IGZlYXR1cmVzKgogICAgIC0gaGFuZGxlcyBmYWlsZWQgc25tcHdhbGsvZ2V0L3NldHMgbXVjaCBtb3JlIGdyYWNlZnVsbHkgbm93CiAgICAgLSBuZXcgcHJlZmVyZW5jZTogIFlvdSBjYW4gcGljayB3aGF0IHR5cGVzIG9mIHByb2JsZW1zIHRvIGNoZWNrIGZvcgogICAgICAgLSAtZiBvbiB0aGUgY29tbWFuZCBsaW5lIG9ubHkgY2hlY2tzIGZvciBmaXhhYmxlIHByb2JsZW1zCiAgICAgLSBubyBsb25nZXIgcGluZzo6ZWNob3MgaG9zdHMgYmVmb3JlIGNoZWNraW5nIHRoZW0KICAgICAgIC0gaW5zdGVhZCByZWxpZXMgb24gJ05vIFJlc3BvbnNlJyB0eXBlIHJlcGxpZXMgZnJvbSBzbm1wd2Fsay9nZXQgdG8KICAgICAgICAgZGV0ZXJtaW5lIGlmIGEgaG9zdCBpcyB1cC4KICAgICAgIC0gcGluZyB0aGUgaG9zdCBpcyBzdGlsbCBhbiBvcHRpb24gKHRocm91Z2ggdGhlIGNvbW1hbmQgbGluZSBhbmQgbWVudXMpCiAgICAgLSBjb252ZXJ0ZWQgZnJvbSBUay1iNCB0byBUay1iOAogICAgIC0gQWRkZWQgYSBsb2dnaW5nIHdpbmRvdyBmb3IgZGVidWdnaW5nIGFuZCB0cmFja2luZyBvZiBhY3Rpb25zLgogICAgICAgLSBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbnM6ICAtViBOVU0gIGluaXRpYWwgbG9nIHZlcmJvc2l0eSBsZXZlbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtTCAgICAgIHNob3cgdGhlIGxvZyB3aW5kb3cgYXQgc3RhcnR1cAogICAgIC0gTm93IHRyYW5zbGF0ZXMgbWliIG51bWJlcnMgaW50byBtb3JlIHJlYXNvbmFibGUgbmFtZXMKICAgCjE5OTUtMTEtMjAgMTY6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIC0gKHRyYXBub3RpZikgTG9ncyBuby1yZXNwb25jZSBlcnJvcnMuCiAgIC0gKHRyYXBub3RpZikgQmV0dGVyIHN0cmluZyBjaGVja2luZyAocXVvdGVzIGFsbCB2YXJpYWJsZXMgbm93KQogICAKMTk5NS0xMS0yMCAxNjowOSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBjb25maWd1cmUsCiAgIG1raW5zdGFsbGRpcnM6CgogICAtIChhbGwgYXV0b2NvbmYgYnVpbHQgZmlsZXMpIFVwZGF0ZWQgZXZlcnl0aGluZyB0byBhdXRvY29uZiAyLjUKICAgCjE5OTUtMTEtMjAgMTY6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pIENoZWNrIGZvciAtbGVsZiBmb3Igc29sYXJpcyAyLjMgYW5kIHlvdW5nZXIKICAgCjE5OTUtMTEtMjAgMTY6MDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbikgQ2hlY2sgZm9yIC1sZWxmIGZvciBzb2xhcmlzIDIuMyBhbmQgeW91bmdlcgogICAtIChjb25maWd1cmUuaW4pIE1vcmUgc29sYXJpcyBzcGVjaWZpY3M6ICAtRFNWUjQKICAgLSAoY29uZmlndXJlLmluKSBDYWNoZXMgaW5pdGlhbCBwcm9tcHQgaW4gdGhlIGNvbmZpZ3VyZSBzY3JpcHQgc28geW91CiAgICAgd29uJ3QgYmUgYnVnZ2VkIHR3aWNlIGJ5IHRoZSBpbml0aWFsIHF1ZXN0aW9uLgogICAKMTk5NS0xMS0yMCAxNjowNSAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pIEZpbmQgYW5kIGZpeCBtZW1vcnkgbGVhayBzb21ldGltZQogICAKMTk5NS0xMS0yMCAxNjowNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKSBBZGRlZCBwb2ludGVyIHRvIHRoaXMgZmlsZSB2aWEgZnRwCiAgIAoxOTk1LTEwLTE3IDE3OjI3ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICBDaGFuZ2VMb2cgdXBkYXRlCiAgIAoxOTk1LTEwLTE3IDE3OjEwICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXM6CgogICByZW1vdmUtZmlsZXMgbmVlZHMgdG8gJ2NkJyB0byB0aGUgY29ycmVjdCBkaXJlY3RvcnkgZmlyc3QKICAgCjE5OTUtMTAtMTcgMTY6NTcgIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlczoKCiAgIGFkZGVkIHRoZSByZW1vdmUtZmlsZXMgZXhwb3J0IGNvbW1hbmQKICAgCjE5OTUtMTAtMTYgMTc6MjMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSkgT25lIGxhc3QgZWNobyAtbiB2cyBcYyBmaXgKICAgCjE5OTUtMTAtMTYgMTY6NDMgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wYnVsa3dhbGsuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jCiwgc25tcHNldC5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcGQuYywKICAgc25tcHdhbGsuYzoKCiAgIC0gKGFwcHMpIGFsbCBhcHBzIHdlcmUgc3RpbGwgbG9va2luZyBpbiAvZXRjLyBmb3IgLmNvbmYgZmlsZXMKICAgCjE5OTUtMTAtMTYgMTY6NDEgIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSkgZml4ZWQgXGMgdnMgLW4gZGVwZW5kZW5jeQogICAKMTk5NS0xMC0xNiAxNjoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpIHdhcyBzdGlsbCBsb29raW5nIGluIC9ldGMgZm9yIHR3byAuY29uZiBmaWxlcy4KICAgCjE5OTUtMTAtMTYgMTU6NTUgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIEFkZGVkIGluZm8gcmVxdWVzdCB0byBib3R0b20gb2YgVE9ETwogICAKMTk5NS0xMC0xNiAxNTo1NSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSBDaGFuZ2VMb2cgdXBkYXRlCiAgIAoxOTk1LTEwLTE2IDE1OjA1ICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETykgbWFya2VkIGluc3RhbGwgYXMgZmluaXNoZWQgYW5kIHNvbGFyaXMgcG9ydCBhcyBjbG9zZQogICAKMTk5NS0xMC0xNiAxNTowMSAgaGFyZGFrZXIKCiAgICogSU5TVEFMTCwgTWFrZWZpbGUuaW4sIFJFQURNRSwKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbgosIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZXMpIG1ha2UgaW5zdGFsbCBlY2hvcyB3aGF0IGl0cyBkb2luZyBpbiBhIG1vcmUgY2xlYXIgZmFzaGlvbgogICAtIChJTlNUQUxMKSBhZGRlZCBiZXR0ZXIgaW5zdHJ1Y3Rpb25zIHRvIHRoZSBJTlNUQUxMIGZpbGUuCiAgIC0gKFJFQURNRSkgbWlub3Igd29yZGluZyBjaGFuZ2VzCiAgIAoxOTk1LTEwLTE2IDEzOjAxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4KLCBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgbWFuLy5jdnNpZ25vcmUsIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlcykgRmFpcmx5IGRlY2VudCAnbWFrZSBpbnN0YWxsJyBub3cgcG9zc2libGUuICBJbnN0YWxscwogICAgIGludG8gdGhlIGRpcmVjdG9yeSBzcGVjaWZpZWQgYnkgLS1wcmVmaXggZm9yIHRoZSAuL2NvbmZpZ3VyZSBzY3JpcHQuCiAgIC0gKGV4dGVuc2libGUuYykgY29uZmlnIGZpbGUgcmUtbG9jYXRpb246IG5vdyB1c2VzIHRoZSBTTk1QTElCUEFUSAogICAgIGRlZmluZWQgbG9vc2VseSBhcyAkKHByZWZpeCkvbGliL3NubXAvLgogICAKMTk5NS0xMC0xMyAxNTo0NCAgaGFyZGFrZXIKCiAgICogVE9ETywgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgc3RhbXAtaCwgYWdlbnQvc25tcGQuYywKICAgc25tcGxpYi9taWIuYzoKCiAgIC0gKHNubXBkLmMpIEFkZGVkIC1wIHBvcnQgdG8gLS1oZWxwIG91dHB1dAogICAtIChjb25maWcpIFNldHVwIHRvIHVzZSAtLXByZWZpeCB0byBsb29rIGZvciBjb25maWcgZmlsZXMuCiAgIAoxOTk1LTEwLTExIDE3OjMzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgYWNsb2NhbC5tNCwKICAgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gVGhlIGNvbmZpZ3VyZSBzY3JpcHQgbm93IHByb21wdHMgZm9yIGltcG9ydGFudCB2YWx1ZXMgdG8gYmUgcHV0IGluCiAgICAgY29uZmlnLmguICBTb21lIHRoaW5ncyBuZWVkIHRvIHVzZSAkKHByZWZpeCkgaW5zdGVhZCBob3dldmVyLgogICAtIChNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4pCiAgICAgKyBsaW5raW5nIHRvIC4uL3NubXBsaWIvbGlic25tcC5hIGluc3RlYWQgb2YgLi4vbGliL2xpYnNubXAuYSB0bwogICAgICAgcmVtb3ZlIGluc3RhbGwgcmVxdWlyZW1lbnQuCiAgICAgKyAgcHV0IC4uL2xpYi9saWJzbm1wLmEgaW4gYXBwbGljYXRpb24KICAgCjE5OTUtMTAtMDYgMTY6NDEgIGhhcmRha2VyCgogICAqIE5FV1MsIFRPRE86CgogICAtIChORVdTLy1UT0RPKSAtaC8tLWhlbHAsIC12Ly0tdmVyc2lvbiBjb21tYW5kIGxpbmUgb3B0aW9ucwogICAKMTk5NS0xMC0wNiAxNjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpIFVzYWdlIG9mIC0taGVscCBhbmQgLS12ZXJzaW9uIHNob3VsZCB3b3JrIG5vdy4uLiAgR05VIHN0YW5kYXJkLgogICAKMTk5NS0xMC0wNiAxNjozMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBwYXJzZS5jLCBzbm1wLmM6CgogICAtIChwYXJzZS5jLCBzbm1wLmMpIGFkZGVkIGNvbmZpZy5oIHRvIHRoZSBsaXN0IG9mIGluY2x1ZGVzLgogICAKMTk5NS0xMC0wNiAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpIEFkZGVkIHR3byBuZXcgZmxhZ3M6CiAgICAgLWggZm9yIGhlbHAKICAgICAtdiBmb3IgdmVyc2lvbiBpbmZvcm1hdGlvbgogICAKMTk5NS0xMC0wNiAxMTozNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKSBNb3ZlZCBJTlNUQUxMQVRJT04gaW5zdHJ1Y3Rpb25zIHRvIElOU1RBTEwKICAgICAgICAgICAgICBDaGFuZ2VkIGxpc3Rpbmcgb2Ygc3VwcG9ydGVkIGFyY2hpdGVjdHVyZXMKICAgICAgICAgICAgICBVcGRhdGVkIEFWQUlMQUJJTElUWSBzZWN0aW9uCiAgIAoxOTk1LTEwLTA2IDExOjI2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKSBub3cgY2FjaGVzIG1vcmUgdmFsdWVzIChwcyBhcmdzLCBldGMpIGFuZAogICAgIGNoZWNrcyBmb3IgdGhlIGxvY2F0aW9uIG9mIHBzIChubyBsb25nZXIgYXNzdW1pbmcgdG8gYmUgL2Jpbi9wcykKICAgCjE5OTUtMTAtMDYgMTE6MjQgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKSBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIG1vdmVkIHRvIGhlcmUKICAgCjE5OTUtMTAtMDUgMTU6MjIgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIFRPRE8sIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc3RhbXAtaC5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2tlcm5lbF9zdW5vczUuYywgYWdlbnQva2VybmVsX3N1bm9zNS5oLAogICBhZ2VudC9yb3V0ZV93cml0ZS5jLCBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIC0gTW9yZSBTb2xhcmlzIHBvcnRpbmcuCiAgICAgLSBNb3N0IG1pYklJIGVudHJpZXMgbm93IHdvcmsuCiAgICAgICAgLSBIYXZlbid0IGNoZWNrZWQgcmV0dXJuZWQgaW5mb3JtYXRpb24gZm9yIGFjY3VyYWN5CiAgICAgLSBzeXNVcFRpbWUgc3RpbGwgZmFpbHMuCiAgICAgLSBjYyBhbmQgZ2NjIGJvdGggY29tcGlsZSBldmVyeXRoaW5nIG5vdy4KICAgCjE5OTUtMTAtMDMgMDk6NDIgIGhhcmRha2VyCgogICAqIHN0YW1wLWgsIHN0YW1wLWguaW46CgogICAoLmN2c2lnbm9yZSkgcmVtb3ZlZCBmaWxlcyBzdGFtcC1oIHN0YW1wLWguaW4gZmlsZXMgc2luY2UgbWFrZWZpbGUgbmVlZGVkIHRoZW0uCiAgIAoxOTk1LTEwLTAzIDA5OjM1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIChNYWtlZmlsZS5pbikgUmVtb3ZlZCAuL2NvbmZpZ3VyZSBhbmQgLi9jb25maWcuaC5pbiBmcm9tICJhbGw6IiBkZXBlbmRlbmNpZXMKICAgCjE5OTUtMTAtMDMgMDk6MzEgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmU6CgogICAoLmN2c2lnbm9yZSkgcmVtb3ZlZCBjb25maWcuaC5pbiBmcm9tIGN2cyBpZ25vcmUgbGlzdCAoYmFkIGJhZCkKICAgCjE5OTUtMTAtMDMgMDk6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgKGNvbmZpZy5oLmluKSBBZGRlZCBmaWxlLgogICAKMTk5NS0xMC0wMyAwOToyNCAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIChUT0RPKSBVcGRhdGUgb2YgdGhlIFRPRE8gbGlzdDogIGluY2x1ZGVkIHNubXB2MSBjb25maWcgaWRlYXMKICAgCjE5OTUtMTAtMDMgMDk6MjQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICAoYWNjb25maWcuaCkgTWlub3IgYnVnOiAgcmVjdXJzaXZlIGNvbW1lbnRzIG5vdCBjb3JyZWN0IGZvciBjb21waWxlcnMgKEFJWCkKICAgCjE5OTUtMDktMjkgMTM6NDYgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKSB1cGRhdGVkIHRoZSBuZXdzIGZpbGUuCiAgIAoxOTk1LTA5LTI5IDEzOjQxICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgVE9ETywgYWNjb25maWcuaAosIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGluc3RhbGwtc2gsIG1raW5zdGFsbGRpcnMsCiAgIGFnZW50Ly5jdnNpZ25vcmUsIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hY2xfdmFycy5jCiwgYWdlbnQvYWxhcm0uYywgYWdlbnQvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L2V2ZW50LmMsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9wYXJ0eV92YXJzLmMKLCBhZ2VudC9yb3V0ZV93cml0ZS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywgYWdlbnQvdmlld19wYXJzZS5jCiwgYWdlbnQvdmlld192YXJzLmMsIGFwcHMvLmN2c2lnbm9yZSwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jCiwgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0Ly5jdnNpZ25vcmUsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIHNubXBsaWIvLmN2c2lnbm9yZSwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9hY2wuYywgc25tcGxpYi9hY2xfcGFyc2UuYwosIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NvbnRleHQuYywKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3BhcnR5LmMsIHNubXBsaWIvcGFydHlfcGFyc2UuYywKICAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYwosIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zeXN0ZW0uYywKICAgc25tcGxpYi92aWV3LmM6CgogICAtIHBvcnRlZCB0byBHTlUncyBhdXRvY29uZmlnMi40CiAgICAgLSB0byBpbnN0YWxsLCB5b3UgbXVzdCBub3cgcnVuIC4vY29uZmlndXJlIGZpcnN0IHRvIGdlbmVyYXRlIHRoZQogICAgICAgTWFrZWZpbGVzIGFuZCBjb25maWcuaAogICAgIC0gYWxtb3N0IGFsbCBvZiB0aGUgY29kZSBpcyBub3cgZHluYW1pY2FsbHkgY2hlY2tlZCBmb3IgcHJvYmxlbXMKICAgICAgIHJhdGhlciB0aGFuIGJlaW5nIGRlcGVuZGFudCBvbiBhcmNoaXRlY3R1cmUgbmFtZXMuCiAgIC0gc3lzdGVtIG5hbWUgbm93IGR5bmFtaWNhbGx5IGRldGVybWluZWQgYXQgcnVuIHRpbWUgKGZyb20gdW5hbWUgLW4pCiAgIC0gY3JlYXRlZCBhICdtYWtlIGRlcGVuZCcgY2FsbCAoZmluYWxseSkuCiAgIC0gKGFnZW50L3NubXBfdmFycy5oKSBjaGFuZ2VkIFNZU05BTUUgZGVmaW5lIHRvIFNZU1RFTU5BTUUgZGVmaW5lIHRvCiAgICAgYXZvaWQgYSBjb25mbGljdCB3aXRoIGEgc29sYXJpcyBoZWFkZXIgZmlsZS4KICAgLSBwcm90ZWN0aW5nIGJldHRlciBhZ2FpbnN0IGluY2x1ZGUgaGVhZGVyIGZpbGVzIHR3aWNlLgogICAtIE1vc3Qgb2YgcG9ydCB0byBTb2xhcmlzIDIuNCBmaW5pc2hlZC4gIFRoZSBrZXJuZWwgcmVhZHMgc3RpbGwgbmVlZCB3b3JrLgogICAKMTk5NS0wOS0yMSAwOToyOSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgMy4wLjIuMSByZWxlYXNlIChjb21waWxhdGlvbiBidWcgZml4KQogICAKMTk5NS0wOS0yMSAwOToyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9tZDUuYzoKCiAgIChzbm1wbGliL21kNS5jKSBGb3Jnb3QgdG8gaW5jbHVkZSBzeXMvdHlwZXMuaCBmb3IgdV9sb25nIGRlZmluaXRpb24uCiAgIAoxOTk1LTA5LTE4IDE2OjI0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICBOZXdzL0NoYW5nZWxvZyB1cGRhdGVzCiAgIAoxOTk1LTA5LTE4IDE2OjE0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICBCZWdpbm5pbmdzIG9mIGEgbWFudWFsIHBhZ2UgZm9yIHNubXBkCiAgIAoxOTk1LTA5LTE4IDE2OjA5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBNaW5vciBtb2RzIHRvIFJFQURNRSBmaWxlLgogICAKMTk5NS0wOS0wMSAxNDo1MiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIEFkZGVkIGEgTkVXUyBmaWxlIHRvIHJlcG9ydC9yZWNvcmQgbWFqb3IgY2hhbmdlcwogICAKMTk5NS0wOS0wMSAxMTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBrZXJuZWwuYywgc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMKOgoKICAgLSBGaXhlZCBhbHBoYSdzIGtlcm5lbCBsb29rdXBzOgogICAgICogQ01VIGNvZGUgd2FzIHBhc3NpbmcgaW50cyBpbnRvIGxzZWVrIChuZWVkcyBsb25nKS4KICAgCjE5OTUtMDctMzEgMTY6MjcgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIHNubXBjaGVjayBjaGFuZ2VzOgogICAgIC0gdGVybWluYWwgKGFzY2lpKSBiYXNlZCBzdXBwb3J0ZWQgZml4ZWQuCiAgICAgICAtIERldGVjdHMgcHJlc2VuY2Ugb2YgYSBESVNQTEFZIHZhcmlhYmxlLgogICAgICAgLSBOb3cgcmVxdWlyZXMgdGhlIFRlcm06OlJlYWRrZXkgcGFja2FnZS4KICAgICAgIC0gYXNrcyB1c2VycyB3ZWF0aGVyIHRvIGZpeCBwcm9ibGVtcwogICAgIC0gcmFpc2VzIGFuZCBkZWljb25pZmllcyB3aGVuIG5ldyBwcm9ibGVtcyBhcmUgZm91bmQKICAgICAtIHNldHMgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgbmV3IHByb2JsZW1zIHRvIHBpbmtpc2gKICAgICAtIG5ldyBwcmVmZW5jZTogIHBpbmcgaG9zdD8KICAgICAtIGdsb2JhbCBrZXkgYmluZGluZ3M6CiAgICAgICAgIGN0cmwtcSA9IHF1aXQ7IGN0cmwtaCA9IGhpZGU7IGN0cmwtcyA9IHNlZW4gYWxsCiAgIAoxOTk1LTA3LTI4IDE0OjIzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIFlldCBtb3JlIHByb2JsZW1zIGZpeGVkIGluIHRoZSBhbHBoYSBwb3J0LgogICAgIC0tIG1vcmUgaW50IC0+IGxvbmcgY2hlY2tpbmcuCiAgIAoxOTk1LTA3LTI2IDE2OjMwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQvcm91dGVfd3JpdGUuYwosIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9tZDUuYywKICAgc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIC0gQWRkZWQgYSBuZXcgI2RlZmluZTogRVhJVF9PTl9CQURfS0xSRUFEIHRvIGNvbmZpZy5oCiAgICAgSWYgZGVmaW5lZCwgYW5kIGFuIGVycm9yIG9jY3VycyB3aGlsZSByZWFkaW5nIHRoZSBrZXJuZWwgY29udGVudHMsCiAgICAgdGhlIGFnZW50IHdpbGwgZXhpdC4gIFRoaXMgd2FzIHRoZSBkZWZhdWx0LiAgSSB3YW50ZWQgaXQgdG8KICAgICBjb250aW51ZS4KICAgCiAgIC0gUG9ydCB0byBkZWMtYWxwaGEvT1NGIDMuMQogICAgIC0gYWxwaGEncyBsb25nIGlzIDggYnl0ZXMsIG5vdCA0LgogICAgIC0gc2hvdWxkIGJlIChtb3N0bHkpIDY0IGJpdCBjbGVhbiBub3cuCiAgICAgLSBjbGVhbmVkIHVwIGEgTE9UIG9mIGJ1Z3MgQ01VIGNvZGUgaW4gdGhlIHByb2Nlc3MuCiAgIAoxOTk1LTA3LTE0IDE1OjIwICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICBDaGFuZ2Vsb2cgdXBkYXRlCiAgIAoxOTk1LTA3LTE0IDE1OjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSBzbm1wY2hlY2sgKHRrLXBlcmwtYjQgc2NyaXB0KSBpcyBwcmV0dHkgc3RhYmxlIGF0IHRoaXMgcG9pbnQuICBJCiAgICAgbG9zdCBjdXJzZXMgc3VwcG9ydCwgYW5kIG5lZWQgdG8gcmUtYWRkIGl0IHN0aWxsLCBzbyBpdCBpcyBzdGlsbAogICAgIGJldGEuICBJdCBkb2VzIGV4cGVjdCBhIGxvZyBmaWxlIG9mIHByb2JsZW1zIHRvIGV4aXN0IChwb2ludCBpdCB0bwogICAgIC9kZXYvbnVsbCksIGFuZCBuZWVkcyB0byBrbm93IHRoZSBsb2NhdGlvbnMgb2YgdGhlIG1pYnMgdG8gY2hlY2sKICAgICAod2hpY2ggYXJlbid0IGNvbmZpZ3VyZWQgYnkgJ21ha2UnKSwgc28gaXQgbmVlZHMgc29tZSB3b3JrLgogICAgIEhvd2V2ZXIsIGl0IHdpbGwgcXVlcnkgYW4gYWdlbnQsIGNoZWNrIGl0cyBwcm9ibGVtcyBiYXNlZCBvbiB0aGUKICAgICBzdGF0dXMgb2YgdGhlIGVycm9yIGZsYWcgKG9yIHJldHVybiBjb2RlKSBiZWluZyA+MSBhbmQgcmVwb3J0IHRoZW0KICAgICB3aXRoIG5lYXQgR1VJLWJ1dHRvbnMgYW5kIHN0dWZmIChvaCB3b3cpLiAgTm8gZG9jdW1lbnRhdGlvbiBvbiBpdCB0aG91Z2guCiAgIAoxOTk1LTA3LTE0IDE1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBGaW5pc2hlZCB0aGUgcmVzdGFydCBtaWIuICBUaGlzIGlzIGEgc2V0YWJsZSBzdWItbWliIG9mIHRoZSB2ZXJzaW9uCiAgICAgbWliLCBkZWZhdWx0IHRvIFZFUlNJT04uMTIoLjEpLiAgSWYgc25tcC1zZXQgdG8gJzEnLCBpdCB3aWxsIHJlc3RhcnQKICAgICB0aGUgYWdlbnQuCiAgIAogICAgICogIEEgc2lkZSBlZmZlY3Qgb2YgdGhpcyBpcyB0aGF0IGl0IHJlc3RhcnRzIDMgdGltZXMgb3Igc28sIHNpbmNlIGl0CiAgICAgICAgbmV2ZXIgcmV0dXJucyBhIHJlc3BvbmNlIHRvIHRoZSBwcm9ncmFtIGdlbmVyYXRpbmcgdGhlIHJlcXVlc3QuCiAgICAgICAgSWYgc2FpZCBwcm9ncmFtIHRyaWVzIHRvIHJlc2VuZCB0aGUgcmVxdWVzdCAod2hpY2ggbW9zdCBkbyksIGl0CiAgICAgICAgd2lsbCBBR0FJTiByZXN0YXJ0IHRoZSBhZ2VudC4uLiAgb2ggd2VsbC4KICAgCjE5OTUtMDctMTAgMTI6MzAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICBNaW5vciBjb21tZW50IGNoYW5nZSBpbiBjb25maWcuaAogICAKMTk5NS0wNy0xMCAxMToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFR3byBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbnM6CiAgICAgLWwgTE9HRklMRSAgICAgICBPdXRwdXRzIHN0ZGVyci9vdXQgdG8gTE9HRklMRSAob3ZlcnJpZGVzIGNvbmZpZy5oIGRlZikKICAgICAtTCAgICAgICAgICAgICAgIERvIE5PVCB3cml0ZSB0byBhIGxvZyBmaWxlIChvdmVycmlkZXMgY29uZmlnLmgpCiAgIAoxOTk1LTA2LTIxIDA5OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBzbm1wbGliOgogICAgIEJ1ZyBmaXg6ICBmZHNldCAtPiAoaW50ICopIGZkc2V0IGluIHNlbGVjdCBjYWxsLgogICAKMTk5NS0wNi0yMSAwOToxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIENoYW5nZWQgZGVmYXVsdCBDQyB0byBjYyBhZ2Fpbi4KICAgCjE5OTUtMDYtMjEgMDk6MTggIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgZWNlLW1pYi5kZWY6CiAgIEJ1ZyBGaXg6CiAgICAgTG9hZGF2ZSBtaWI6ICBJbnRlZ2VyIC0+IERpc3BsYXlTdHJpbmcKICAgICB2ZXJzaW9uQ2xlYXJDYWNoZTogIC0+IHJlYWQtd3JpdGUgKHdhcyByZWFkLW9ubHkpCiAgIAogICBGZWF0dXJlOgogICAgIEFkZGVkIGEgc2V0YWJsZSBtaWIgZW50cnkgdG8gdGhlIHZlcnNpb24gbWliIHRvIHJlLXJlYWQgdGhlIGNvbmZpZyBmaWxlKHMpLgogICAKMTk5NS0wNi0yMSAwOToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ2hhbmdlZCBhbm90aGVyICJlbXB0eSIgZXJyb3IgbWVzc2FnZSBpbiB0aGUgQ01VIGNvZGUgdG8gYSByZWFsIHdhcm5pbmcuCiAgIAoxOTk1LTA2LTE2IDE0OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEhvdXNlIENsZWFuaW5nOgogICAgIE1pc3NlZCBhIFZFUlNJT05fSUQKICAgCjE5OTUtMDYtMTYgMTQ6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgSG91c2UgQ2xlYW5pbmc6CiAgICAgVG9vayBvdXQgZ2NjL2Fuc2kgcmVxdWlyZW1lbnQgZm9yIHRoZSBhZ2VudC4KICAgICBwZXJyb3IoKSBpcyBjYWxsZWQgbW9yZSBmcmVxdWVudGx5IGZvciBsb2cgYXJjaGl2YWwKICAgCiAgIE5ldyBCdWcvSGF2ZW4ndCBzb2x2ZWQ6CiAgICAgSFAtVVg6ICBpZiBhZ2VudC8qLmMgYW5kIGFnZW50L2V4dGVuc2libGUvKi5jIGFyZSBidWlsdCB3aXRoIGdjYywKICAgCSAgRGlzcGxheVN0cmluZ3MgcmV0dXJuIGdhcmJhZ2UuICBObyBjbHVlIGFzIHRvIHdoeS4KICAgCjE5OTUtMDYtMTYgMTA6MTUgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMsIHNubXBfdmFycy5oCiwgc25tcGQuYzoKCiAgIEhvdXNlIGNsZWFuaW5nCiAgICAgLSBDb21waWxlcyBjbGVhbmx5IG9uIGhwdXgvZ2NjCiAgIAkoZXhjZXB0IG9uZSBpbmNsdWRlIGZpbGUgZXJyb3IgSSBkb24ndCBoYXZlIGNvbnRyb2wgb3Zlci4pCiAgICAgLSBDaGFuZ2UgVkVSU0lPTl9JRCAtPiBWRVJTSU9OSUQgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggSFAncyBpbmNsdWRlcy4KICAgCjE5OTUtMDYtMTYgMTA6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgUmVtb3ZlZCAnZ21ha2UnIC0+ICdtYWtlJyBpbiBhZ2VudC9NYWtlZmlsZQogICAKMTk5NS0wNi0xNCAxNDowOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgQVZBSUxBQklMSVRZIHNlY3Rpb24gdG8gdGhlIFJFQURNRSBmaWxlLgogICAKMTk5NS0wNi0xNCAxMzo1NiAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBSRUFETUU6CgogICBVcGRhdGVkIHRoZSBDaGFuZ2VMb2cKICAgQWRkZWQgYSAicmVhbCIgZGlzY2xhaW1lciB0byB0aGUgUkVBRE1FIGZpbGUuCiAgIAoxOTk1LTA2LTE0IDEzOjQzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIEFkZGVkIG1vcmUgZG9jdW1lbnRhdGlvbiB0byB0aGUgUkVBRE1FIGZpbGUuCiAgIC0gQ3JlYXRlZCBhIG1haWxpbmcgbGlzdCB0byBoYW5kbGUgYW5ub3VuY2VtZW50cwogICAgICh1Y2Qtc25tcC1hbm5vdW5jZUBlY2UudWNkYXZpcy5lZHUpCiAgIAoxOTk1LTA2LTE0IDEyOjU2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gQ2xlYW5lZCB1cC9BZGRlZCBtb3JlIGRvY3VtZW50YXRpb24gdG8gY29uZmlnLmgKICAgLSBHTE9CQUxTRUNVUklUWSBub3cgdXNlcyB0aGUgbGVmdCBtb3N0IGZvdXIgYml0cyBpbiB0aGUgTUlCIGFjbC4KICAgICBUaGlzIGlzIG1vcmUgY29tcGF0aWJsZSB3aXRoIHRoZSBDTVUgY29kZSB0aGFuIHVzaW5nIHRoZSBsZWZ0IG1vc3QKICAgICAyLCB3aGljaCB3YXMgZG9uZSBwcmV2aW91c2x5LgogICAKMTk5NS0wNi0xNCAxMToyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBhZ2VudDoKICAgLSBNaWIgdGFibGUgaXMgbm93IHFzb3J0ZWQgYXQgcnVuIHRpbWUgYW5kIHRoZSBleHRlbnNpYmxlIHZhcmlhYmxlcyBhcmUKICAgICBzb3J0ZWQgaW4gYXQgdGhpcyB0aW1lLiAgVGhpcyBicmluZ3MgdGhlIGFnZW50IHVwIHRvIGNvcnJlY3QKICAgICBTTk1Qd2Fsay9nZXRuZXh0IHByb3RvY29scy4gIFlvdSBjYW4gbm93IHdhbGsgdGhlIGVudGlyZSB0cmVlCiAgICAgaW5jbHVkaW5nIHRoZSBleHRlbnNpYmxlIHNlY3Rpb25zIGFuZCBpdCB3b24ndCBzdG9wLgogICAgICogVGhpcyBoYXMgYW4gYWRkZWQgYm9udXMgb2YgY2hlY2tpbmcgdGhlIG1pYiB0YWJsZQogICAgICAgKGFnZW50L3NubXBfdmFycy5jKSBmb3IgY29ycmVjdCBvcmRlci4gIEkgaGF2ZSBhZGRlZCB0aGluZ3MgdG8gdGhlCiAgICAgICB3cm9uZyBsb2NhdGlvbiB0b28gbWFueSB0aW1lcyBhbmQgY2F1c2VkIHRoZSBhZ2VudCB0byBmdW5jdGlvbgogICAgICAgaW5jb3JyZWN0bHkuICBNYWpvciB3aW4uCiAgIAoxOTk1LTA2LTEyIDEwOjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBsb2NhbC90cmFwbm90aWY6CiAgICAgLS0gdXNlcyBzbm1wdjIgbm93IChjb3JyZWN0bHkpCiAgIAoxOTk1LTA2LTA5IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQ2hhbmdlZCB0ZXN0IC14IHRvIHRlc3QgLWYgaW4gc25tcGxpYi9NYWtlZmlsZS4gIE5vdCBhbGwgT1NlcwogICAgIChpZSB1bHRyaXgpIGhhbmRsZSB0aGlzLgogICAKMTk5NS0wNi0wOSAxMzoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9tZDUuYzoKCiAgIEZpeGVkIEF1dGhlbnRpY2F0aW9uIGVycm9yIChhZ2FpbikgKGNvcnJlY3QgdGhpcyB0aW1lKSBiZXR3ZWVuCiAgICAgICAgIHJldmVyc2VkIGJ5dGUgb3JkZXIgbWFjaGluZXMuCiAgICAgLS0gICNpZmRlZiBocHV4L1NZU1Yvc3VuIGluIG1kNS5jIHJldmVyc2VzIGJ5dGUgb3JkZXIKICAgCjE5OTUtMDYtMDkgMTI6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWQ1LmM6CgogICBGaXhlZCBBdXRoZW50aWNhdGlvbiBlcnJvciBiZXR3ZWVuIHJldmVyc2VkIGJ5dGUgb3JkZXIgbWFjaGluZXMuCiAgICAgLS0gICNpZmRlZiBocHV4L1NZU1YgaW4gbWQ1LmMgcmV2ZXJzZXMgYnl0ZSBvcmRlcgogICAKMTk5NS0wNi0wOSAxMDoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBDb3JyZWN0bHkgb3JkZXJlZCB0aGUgbWliIHRhYmxlIGxpc3QuCiAgICAgLS0gIE5lZWQgdG8gd3JpdGUgYSBkeW5hbWljIGNoZWNrZXIvcmUtb3JkZXJlci4KICAgCjE5OTUtMDYtMDkgMTA6MjAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIEFkZGVkIGEgU05NUEJMT0NLIG9wdGlvbiB0byB0aGUgY29uZmlnLmggZmlsZS4gIFN1cHBvc2VkaWx5IHNldHRpbmcKICAgICB0aGlzIHRvIHplcm8gKG5vdyB0aGUgZGVmYXVsdCkgd2lsbCBhbGxvdyBzbm1wIHJlcXVlc3RzIHRvIHRpbWUgb3V0LgogICAgIEhhdmVuJ3QgdGVzdGVkIGl0IHRocm91Z2hseS4KICAgICAgIC0tIENvbnRyaWJ1dGVkIGJ5IFNhbmphaSBOYXJhaW4gPG5hcmFpbkB0aHVtcGVyLmJlbGxjb3JlLmNvbT4KICAgCjE5OTUtMDYtMDUgMTI6NDQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgUkVBRE1FLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICogYWdlbnQvZXh0ZW5zaWJsZS9NYWtlZmlsZToKICAgICAgIC0tICBubyBsb25nZXIgcmVxdWlyZXMgR05VIG1ha2UKICAgICAgIC0tICBldGFncyBubyBsb25nZXIgcnVuIGJ5IGRlZmF1bHQKICAgCiAgICogU3VuT1MgYWRkaXRpb25zOgogICAgICAgLS0gbG9hZGF2ZXJhZ2UgY2hlY2tpbmcgTUlCIGVuYWJsZWQKICAgICAgIC0tIGRpc2sgY2hlY2tpbmcgTUlCIGVuYWJsZWQKICAgCjE5OTUtMDYtMDIgMTY6MjEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEZpbmFsIG1vZGlmaWNhdGlvbiBmb3IgaW5pdGFsIHJlbGVhc2UKICAgCjE5OTUtMDYtMDIgMTU6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgI2lmZGVmIGhwdXggYXJvdW5kIGhwdXggc3BlY2lmaWMgbWlicwogICAKMTk5NS0wNi0wMiAxNTozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIEVSUk9SKCkgZGVmaW5lIG5vdyBmbHVzaGVzIHN0ZG91dAogICAKMTk5NS0wNi0wMiAxNTozMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgTm93IHVzZXMgdjIgcmVxdWVzdCBwcm90b2NvbC4KICAgCjE5OTUtMDYtMDIgMTU6MjggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFByaW50cyBNSUIgdG8gc3Rkb3V0IGZvciBleGlzdGVudCBtaWJzCiAgIAoxOTk1LTA2LTAyIDE1OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEFkZGVkIGEgY2hlY2sgZm9yIFNOTVBWMi9TTk1QVjJBVVRIIHR5cGUgYXV0aG9yaXphdGlvbi4KICAgCjE5OTUtMDYtMDIgMTU6MjcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICBSZW9yZ2FuaXplZCBjb25maWcuaCBpbiBtb3JlIG9yIGxlc3Mgb3JkZXIgb2YgaW1wb3J0YW5jZQogICBBZGRlZCBkZWZpbml0aW9ucyBmb3IgU05NUFYyT05MWSB0eXBlIGF1dGhvcml6YXRpb24uCiAgIAoxOTk1LTA2LTAyIDE1OjI2ICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIHJlbW92ZWQgYm9ndXMgdHdvIGxpbmVzCiAgIAoxOTk1LTA1LTMxIDE2OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIE5ldzoKICAgCiAgICAgQWRkZWQgdHdvIG5ldyBBQ0wgdHlwZXM6ICBQUklWQVVUSFJXIGFuZCBQUklWQVVUSFJPIHdoaWNoIHdpbGwgb25seQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29yayBpZiB0aGUgcmVxdWVzdCBpcyBhdXRoZW50aWNhdGVkIChieSBhbnl0aGluZykuCiAgIAoxOTk1LTA1LTMxIDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBOZXc6CiAgIAogICAgIEFkZGVkIC1mIG9wdGlvbiB0byBSRUFETUUKICAgCjE5OTUtMDUtMzEgMTQ6NDkgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgTmV3OgogICAKICAgICBOZXcgTUlCOiAgc25tcEVycm9ycyB0byBsb2cgcHJvYmxlbXMgd2l0aCB0aGUgYWdlbnQKICAgCjE5OTUtMDUtMzEgMTQ6NDcgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIHNubXBfdmFycy5jLCBzbm1wZC5jOgoKICAgTmV3OgogICAKICAgICBOZXcgZGVmaW5pdGlvbiBpbmNsdWRlZCBmb3IgYSBkZWZhdWx0IHBsYWNlIHRvIGxvZyBtZXNzYWdlczogTE9HRklMRQogICAgIE5ldyBNSUI6ICBzbm1wRXJyb3JzIHRvIGxvZyBwcm9ibGVtcyB3aXRoIHRoZSBhZ2VudAogICAgIEZvcmtzIGF3YXkgZnJvbSBjYWxsaW5nIHNoZWxsIGJ5IGRlZmF1bHQgbm93IHVubGVzcyAtZiBzcGVjaWZpZWQuCiAgIAogICBNaXNjOgogICAKICAgICBJZmRlZnMgYXJvdW5kIGFsbCBhZGRlZCBzZWN0aW9ucyBvZiBjb2RlIHRvIGRpc2FibGUgZHVybmluZyBjb21waWxhdGlvbgogICAKMTk5NS0wNS0zMSAxNDo0NSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIE5ldzoKICAgCiAgICAgTmV3IGRlZmluaXRpb24gaW5jbHVkZWQgZm9yIGEgZGVmYXVsdCBwbGFjZSB0byBsb2cgbWVzc2FnZXM6IExPR0ZJTEUKICAgICBOZXcgTUlCOiAgc25tcEVycm9ycyB0byBsb2cgcHJvYmxlbXMgd2l0aCB0aGUgYWdlbnQKICAgCiAgIEJ1Z3M6CiAgIAogICAgIGhwdXggY29tcGxpZXJzIGRvbid0IGRlZmluZSBTWVNWIGJ5IGRlZmF1bHQuLi4KICAgCjE5OTUtMDUtMTkgMTU6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBBZGRlZCBtZW51cyBhbmQgbW92ZWQgc29tZSBjb21tYW5kcyB0aGVyZSBhcyB3ZWxsIGFzIHByZWZyZW5jZXMuCiAgIE5vdyByZXNjYW5zIGFmdGVyIDUgbWludXRlcyBhbmQgY2hlY2tzIHRoZSBsb2cuCiAgIAoxOTk1LTA1LTE5IDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBlZ3JlcGluZyBmb3IgYW4gZXhhY3QgbWF0Y2ggZm9yIGhvc3RzIG5vdy4KICAgCjE5OTUtMDUtMTkgMTU6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgTW9yZSBkZWZpbmVzIG1vdmVkIHRvIGNvbmZpZy5oCiAgIAoxOTk1LTA1LTE5IDE1OjQyICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGFjY29uZmlnLmgsIGVjZS1taWIuZGVmOgoKICAgV29ya2luZyB0b3dhcmQgYW4gZXhwb3J0YWJsZSB2ZXJzaW9uLgogICAKMTk5NS0wNS0xNyAxMjo0NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIFdvcmtpbmcgdmVyc2lvbi4KICAgICAtLSAgbm93IG9wZXJhdGVzIG9uIGEgc2VsZWN0aW9uCiAgICAgLS0gIHN0aWxsIGhhcyBhIGxvdCBvZiByb29tIGZvciBpbXByb3ZlbWVudC4KICAgCjE5OTUtMDUtMDggMTY6MjUgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBGYWlybHkgZnVuY3Rpb25pbmcgdmVyc2lvbi4KICAgTmVlZCB0byBwb3J0IHRvIHBlcmw1LjAwMSAmIHRrNGIzCiAgIAoxOTk1LTA1LTA1IDE3OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIE9wcHMuICBTZXQgdHAtPm5hbWVsZW4gdG8gYmUgLTEsIHdoZW4gaXQgaXMgYSB1bnNpZ25lZCBjaGFyLiAgVXNpbmcgMCBub3cuCiAgIAoxOTk1LTA1LTA1IDE2OjE4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvc25tcF92YXJzLmMKOgoKICAgUmUtYXJyYW5naW5nIGFuZCBSZS1uYW1pbmcgc3R1ZmYgZm9yIGV4dGVybmFsIGRpc3RyaWJ1dGlvbgogICAKMTk5NS0wNS0wMyAxMzowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBNYWpvciBidWc6CiAgICAgQ2hhbmdpbmcgdHJlZSBzaXplIGNhdXNlZCBwcm9ibGVtcy4KICAgICBleHRlbnNpYmxlIHRyZWUgbm93IGFkZHMgYSBoYWx0IGNvbmRpdGlvbiAobmFtZWxlbiA9IC0xKSB0byBjaGVjayBmb3IKICAgCjE5OTUtMDUtMDMgMTI6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgQWRkZWQgcHJvdG90eXBlIGRlY2xhaXJhdGlvbiBmb3IgZmluZF9leHRlbnNpYmxlKCkKICAgCjE5OTUtMDUtMDMgMDk6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIENoYW5nZWQgdGltZW91dCB0byBiZSAzMCBzZWNvbmRzLgogICAKMTk5NS0wNS0wMyAwOToyMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvcnNubXA6CgogICBOZXcgc2NyaXB0OgogICAgIHdhbGtzIGFuIGV4dGVuc2libGUgKG9yIGFueSkgbWliIHRyZWUuICBIYXMgYnVpbHQgaW4ga25vd2xlZGdlIG9mCiAgICAgdGhlIG1pYnMgZm9yIGxheS1wZW9wbGVzIHVzZWFnZS4KICAgCjE5OTUtMDUtMDMgMDk6MTkgIGhhcmRha2VyCgogICAqIGxvY2FsL2ZpeHByb2M6CgogICBGaXhlZCBidWc6ICBVc2luZyBhIHdyb25nIHZhcmlhYmxlCiAgIAoxOTk1LTA1LTAzIDA5OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEFkZGVkIGV4dGVuc2libGUgbWliIGVudHJ5LgogICAgIC0tIGZpbmRfZXh0ZW5zaWJsZSBub3cgcmV0dXJucyB0aGUgZGVmYXVsdCBtaWIgdHJlZSBvciBhbgogICAgICAgIGFwcHJvcHJpYXRlIG1pYiB0cmVlIHdpdGggdGhlIGNyZWF0ZWQgZXh0ZW5zaWJsZSBlbnRyeSBpbiBpdC4KICAgCjE5OTUtMDUtMDMgMDk6MTAgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgQWRkZWQgbG9hZCBhdmVyYWdlIG1pYiBlbnRyeQogICAKMTk5NS0wNC0xNyAxMjoyNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIFN0YXJ0ZWQgd3JpdHRpbmcgYSBUayBpbnRlcmZhY2UuLi4gIENvZGUgaXMgc3RpbGwgdmVyeSB2ZXJ5IHVnbHksIGJ1dCB3b3Jrcy4KICAgCjE5OTUtMDQtMTcgMTI6MjQgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIE5vdyBsb2dzIGl0c2VsZiBjb3JyZWN0bHkuCiAgIAoxOTk1LTA0LTEzIDE0OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIGEgZGVwZW5kYW5jeSBmb3Igd2VzL21pYmRlZnMuaCB0byBzbm1wX3ZhcnMuYwogICAKMTk5NS0wNC0wNyAxMjo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMKLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0tIFBvcnRlZCB0byBkZWMgNTAwMC8yMDAgVWx0cml4IDQuMiBhcmNoaXRlY3R1cmVzCiAgICAgICAgIFRPRE86ICBtZW1vcnkvc3dhcCBpbiB3ZXMuYwogICAKMTk5NS0wMy0zMSAxNTozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIEJ1Z3M6CiAgICAgV2FzIGFjdGluZyBzbG93IHNpbmNlIGl0IHdhcyBjaGVja2luZyBlYWNoIG1pYiBsb2NhdGlvbiB0d2ljZS4KICAgICBSZW1vdmVkIHBlcmwgLXcgd2FybmluZ3MKICAgCjE5OTUtMDMtMTUgMTY6NDggIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBzbm1wY2hlY2sgaXMgbm93IHdyaXR0ZW4gdXNpbmcgcGVybDUncyBvYmplY3Qgb3JpZW50ZWQgcm91dGluZXMuCiAgIAoxOTk1LTAzLTE1IDE0OjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDTVUgQnVnIGZpeGVzOgogICAgIC0tIGJldHRlciBqb2IgdGhhbiBteSBwcmV2aW91cyBoYWNrIGZpeGluZyBnZXRfdG9rZW4uCiAgICAgICAgKyBnZXRfdG9rZW4gbm93IHJlcXVpcmVzIGEgdGhpcmQgYXJndW1lbnQgZGljdGF0aW5nIHRoZSBtYXggc3RyaW5nCiAgICAgICAgICBsZW5ndGggdGhlIHRva2VuIGNhbiBob2xkLgogICAKMTk5NS0wMy0xNSAwOToyNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgVXBkYXRlZCBSRUFETUUuaHB1eCBmaWxlIGZyb20gSFAtcG9ydC0xLTEtMS4uLgogICAKMTk5NS0wMy0xNSAwOToyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIHBlcmwgLT4gcGVybDUKICAgTm8gbG9uZ2VyIGRlcGVuZHMgb24gT1ZzIHNubXBzZXQsIGNhbiBub3cgdXNlIENNVXMgc25tcHNldCAoL3Vzci9sb2NhbC9ldGMpCiAgIAoxOTk1LTAzLTEwIDEzOjM0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQWRkZWQgL2V0YyBhcyBhbm90aGVyIHBhdGggdG8gc2VhcmNoIHdoZW4gbG9va2luZyBmb3IgbWliLnR4dAogICAKMTk5NS0wMy0xMCAxMzozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgTWFqb3IgaGFja2luZyB0byBwYXJzZSgpIHRvIHdvcmsgYXQgYWxsLgogICAgIC0tIE5vdyBJIGRvbid0IHVuc3RhbmQgd2h5IGl0IGV2ZXIgc3VjY2Vzc2Z1bGx5IHBhcnNlZCB0aGUgbWliLnR4dCBmaWxlLgogICAgIC0tIGdldF90b2tlbiB3YXMgY29uc3RhbnRseSBjYWxsZWQgdG8gcmVhZCBERVNDUklQVElPTiBzdHJpbmdzIGludG8KICAgICAgICBhIGNoYXIgYXJyYXkgb2YgZWl0aGVyIDY0IChNQVhUT0tFTikgb3IgNDA5NiAoTUFYUVVPVEVTVFIpIGluCiAgICAgICAgbGVuZ3RoLiAgTUFOWSBvZiB0aGUgREVTQ1JJUFRJT04gc3RyaW5ncyBhcmUgbG9uZ2VyIHRoYW4gdGhpcy4KICAgICAtLSBIYWNrZWQgcGFyc2VRdW90ZWRTdHJpbmcgdG8gbWFrZSBzdXJlIHJldHVybmVkIGFyZSBzdHJpbmdzIDwgTUFYUVVPVEVTVFIKICAgCjE5OTUtMDMtMTAgMTM6MTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICAjaW5jbHVkZSA8c29ja2V0aW8uaD4gaXMgbm90IG5lZWRlZCBvbiBIUFVYCiAgIAoxOTk1LTAzLTEwIDEzOjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzLy5jdnNpZ25vcmU6CgogICBBZGRlZCBzbm1wZ2V0bmV4dCBhbmQgc25tcHNldCB0byAuY3ZzaWdub3JlCiAgIAoxOTk1LTAzLTA5IDEzOjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvc25tcGQuYywgc25tcGxpYi9NYWtlZmlsZS5pbgosIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ01VIDIuMS4yIC0+IDIuMS4yLjEgTWVyZ2UuCiAgIAoxOTk1LTAzLTA4IDE2OjA3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBtYW4vc25tcGJ1bGt3YWxrLjEsIG1hbi9zbm1wZ2V0LjEsIG1hbi9zbm1wZ2V0bmV4dC4xCiwgbWFuL3NubXBuZXRzdGF0LjEsIG1hbi9zbm1wc2V0LjEsCiAgIG1hbi9zbm1wdHJhbnNsYXRlLjEsIG1hbi9zbm1wdHJhcGQuODoKCiAgIEluaXRpYWwgcmV2aXNpb24KICAgCjE5OTUtMDMtMDggMTY6MDYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBSRUFETUUuY211LCBhZ2VudC9NYWtlZmlsZS5pbgosIGFnZW50L3NubXBkLmMsIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wc2V0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXBnZXRuZXh0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvaWYuYwosIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiwgbWFuL1JFQURNRSwgbWFuL3NubXB0ZXN0LjEsCiAgIG1hbi9zbm1wd2Fsay4xLCBtYW4vc25tcGJ1bGt3YWxrLjEsCiAgIG1hbi9zbm1wZ2V0LjEsIG1hbi9zbm1wZ2V0bmV4dC4xLAogICBtYW4vc25tcG5ldHN0YXQuMSwgbWFuL3NubXBzZXQuMSwKICAgbWFuL3NubXB0cmFuc2xhdGUuMSwgbWFuL3NubXB0cmFwZC44LAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL2FjbC5jLAogICBzbm1wbGliL2FjbC5oLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9jb250ZXh0LmMsIHNubXBsaWIvY29udGV4dC5oLAogICBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgsCiAgIHNubXBsaWIvcGFydHkuYywgc25tcGxpYi9wYXJ0eS5oLAogICBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9pbXBsLmgsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdmlldy5jLAogICBzbm1wbGliL3ZpZXcuaDoKCiAgIE5ldyByZWxlYXNlIG9mIENNVSdzIGNvZGU6CiAgICAgLS0gU2VlIFJFQURNRSBmb3Igc3BlY2lmaWMgZGV0YWlscwogICAgIC0tIHNubXBzZXQsc25tcGdldG5leHQgYWRkZWQKICAgICAtLSAtcSBmbGFnIGFkZGVkICJxdWljayBwcmludCIKICAgICAtLSBidWcgZml4ZXMKICAgICAtLSBNYW4gcGFnZXMgdXBkYXRlZAogICAKMTk5NS0wMy0wMiAxNDowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIE1pbm9yIGJhY2tzcGFjZSBjaGFuZ2VzLi4uCiAgIFJlbW92ZWQgLXcgc3dpdGNoIGZvciBwZXJsCiAgIAoxOTk1LTAzLTAyIDE0OjA5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9maXhwcm9jOgoKICAgRml4IGZyb20gVGltOiBjb3JyZWN0bHkgZmluZHMgcGlkIG5vdwogICAKMTk5NS0wMi0wOSAxMjozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIHBlcmwgLXcgcHJvZHVjZXMgbm8gd2FybmluZ3Mgbm93IGlmIG5vIGNtZCBsaW5lIGFyZ3MgYXJlIGdpdmVuLgogICBBZGRlZCB0d28gbW9yZSBzdGF0dXMgaW5kaWNhdG9ycyAoc2xlZXBpbmcsIGNoZWNraW5nKSBmb3IgZml4IHJvdXRpbmUuCiAgIE5vdyBzbGVlcHMgZm9yIDIgc2Vjb25kcyBpbnN0ZWFkIG9mIDEgKG5vdCBxdWljayBlbm91Z2ggdG8gY2F0Y2ggWCByZXN0YXJ0cykKICAgCjE5OTUtMDItMDkgMTI6MzEgIGhhcmRha2VyCgogICAqIGxvY2FsL2ZpeHByb2M6CgogICBDaGFuZ2VkIHBzIC1lbCB0byBwcyAtZTogIHBzIC1lbCByZXBvcnRlZCBYIGFzIGJlaW5nIGFsaXZlIGluc3RlYWQgb2YgPGRlZnVuY3Q+CiAgIAoxOTk1LTAyLTA4IDE1OjIwICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIEFkZGVkIGEgbWliIHRvIHByb3ZpZGUgY2FwYWJpbGl0eSBmb3IgaWdub3JpbmcgdGhlIGV4ZWMgY2FjaGUuCiAgICAgLS0gIE5lZWRlZCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgYSAnZml4JyB0byBjaGVjayB0byBzZWUgaWYgdGhlICdmaXgnIHdvcmtlZC4KICAgCjE5OTUtMDItMDggMTU6MDQgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBQb2tlcyB0aGUgcmVzZXQtY2FjaGUgbWliIHRvIGVuc3VyZSBhIG5ldyAncHMnIG91dHB1dCBmb3IgZml4ZWQgcHJvYmxlbXMuCiAgIAoxOTk1LTAyLTA4IDE0OjQ2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgTmV3IG9wdGlvbnM6CiAgICAgLXk6ICBhbHdheXMgdHJ5IHRvIGZpeCB0aGUgcHJvYmxlbXMKICAgICAtbjogIG5ldmVyIHRyeSB0byBmaXggdGhlIHByb2JsZW1zCiAgIEN1cnJlbnRseSBkZWZhdWx0cyB0byBuZXZlciAoc2hvdWxkIHByb21wdCkgdGlsbCBJIGNhbiBnZXQgcGVybCdzCiAgICAgZ2V0YyhTVERJTikgdG8gd29yay4uLgogICBVc2VzIHNubXBzZXQgdG8gYWNjb21wbGlzaCB0aGlzLCB3aGljaCBpcyBPVnMgYW5kIG9ubHkgbGljZW5jZWQgZm9yIG9uZSBob3N0LgogICAKMTk5NS0wMi0wOCAxMDozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBrZXJuZWwuYywgc25tcGQuYzoKCiAgIEFkZGVkICdjbG9zZSBvbiBleGVjJyBmbGFncyB0byBvcGVuIGZpbGVzICgvZGV2LyptZW0qKSBhbmQgc29ja2V0cy4KICAgICAtLSAgUHJldmVudHMgc3Bhd25lZCBwcm9jZXNzZXMgZnJvbSBrZWVwaW5nIHNubXBkIGZyb20gcmVzdGFydGluZy4KICAgICAgICAgKEVycm9ycyB3ZXJlOiAgQ2FuJ3QgYmluZCBzb2NrZXQgKGluIHVzZSkgYW5kIENhbid0IG9wZW4gL2Rldi9kbWVtKQogICBTZXQgT19SRE9OTFkgZmxhZyBvbiAvZGV2LyptZW0qIGZpbGVzLCByZXF1aXJlZCBieSB0aGUgJ21hbiBwYWdlJyAoZWxzZSB1bmRlZikKICAgCjE5OTUtMDItMDMgMTM6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgQWRkZWQgd2VzL2V4ZWMubwogICAKMTk5NS0wMi0wMyAxMzo0OSAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBBZGRlZCBtaWIgZGVmcyBmb3IgdGhlIHJlYWQvd3JpdGUgZml4IGZvciBwcm9jcyBhbmQgZXhlYyBmdW5jdGlvbnMKICAgCjE5OTUtMDItMDMgMTM6MzggIGhhcmRha2VyCgogICAqIGxvY2FsLzogZWNlLXNubXBkLmNvbmYsIGZpeHByb2MsIGZpeHByb2MuY29uZjoKCiAgIEFkZGVkIGZpeHByb2MgYW5kIGl0cyBkYXRhYmFzZSAoaW5zdGFsbGVkIGluIC9sb2NhbC9zY3JpcHRzIGFuZCAvbG9jYWwvZXRjKQogICBDb3BpZWQgdGhlIGN1cnJlbnQgL2V0Yy9lY2Utc25tcGQuY29uZiB0byB0aGlzIGRpcmVjdG9yeSwgZm9yCiAgIGFyY2hpdmluZy4KICAgCjE5OTUtMDItMDEgMTQ6MjQgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIHNubXBfYWdlbnQuYzoKCiAgIEFkZGVkIHdyaXRlLW1pYiBhYmlsaXR5IHRvIGZpeCBhIGdpdmVuIHByb2Nlc3MKICAgICAtLSB3aWxsIGV2ZW50dWFsbHkgY2FsbCBUaW0ncyBzY3JpcHQgdG8gZml4IHRoZSBwcm9jZXNzCiAgICAgLS0gRGVmaW5lZCBpbiB3ZXMuaAogICAKMTk5NS0wMi0wMSAxMTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBGaXhlZCBNYWtlZmlsZSBidWc6ICBjYWxsZXMgJChNQUtFKSBub3cgaW5zdGVhZCBvZiBleHBsaWNpdCBtYWtlLgogICAKMTk5NS0wMS0zMCAxMzozMyAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBWZXJzaW9uIGluZm9ybWF0aW9uIG5vdyBjb250YWlucyBhIENWUyB0YWcgaW5mbyBtaWIKICAgVkVSQ0RBVEUgbm93IHdvcmtzIHByb3Blcmx5LgogICAKMTk5NS0wMS0zMCAxMToxOSAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBBZGRlZCB2ZXJzaW9uIG1pYiB0byBkZWZpbml0aW9ucy4KICAgCjE5OTUtMDEtMzAgMTE6MDggIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIHNubXBfdmFycy5jOgoKICAgQWRkZWQgdmVyc2lvbiBtaWIgKFZFUklERU5ULFZFUkRBVEUsVkVSQ0RBVEUpCiAgIEFkZGVkIG1pYmluY2wuaCBhbmQgbWliZGVmcy5oIHRvIHN0YXJ0IHNwbGl0dGluZyB1cCBtaWJzIGluIHdlcy5jIGludG8KICAgICBzZXBlcmF0ZSBmaWxlcy4gIEluY2x1ZGUgdGhlc2UgdHdvIGZpbGVzIHRvIGluY2x1ZGUgbmVjZXNzYXJ5IGRlZnMKICAgRVJST1JNU0cgZGVmcyBub3cgQUxMIHJldHVybiBjdXJyZW50IG51bWVyaWNhbCByZXN1bHQgd2l0aCB0aGUgbXNnLgogICAKMTk5NS0wMS0yNyAxNzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBQdXQgaW4gZGVmaW5lcyBmb3IgdGhlIHN1YiBtaWIgbnVtcyB7c25tcF92YXJzLmMsIHdlcy5ofQogICAKMTk5NS0wMS0yNyAxMzoxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIEFkZGVkIHBhdGhzICgvdXNyL2xvY2FsL2V0YykgdG8gc25tcHtnZXQsd2Fsa30KICAgCjE5OTUtMDEtMjcgMTI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgTWFkZSBubGlzdCBlbnRyeSBjaGFuZ2VzLiAgbm8gbG9uZ2VyIGRpZXMgZnJvbSBhIEFycFRhYmxlIHF1ZXJ5LgogICAKMTk5NS0wMS0yNyAxMjoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBNb3ZlZCBrZXJuZWwvbmxpc3QgcHJpbnRvdXQgb2Ygbm90IGZvdW5kIG5saXN0IGVudHJpZXMgb3V0IG9mICNpZmRlZiBocHV4CiAgIAoxOTk1LTAxLTI3IDExOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGNwcCBNaXN0YWtlIGZpeDogI2lmZGVmIEhQVVggLT4gI2lmZGVmIGhwdXgKICAgCjE5OTUtMDEtMjUgMTc6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgUG9ydGVkIChiYWNrKSB0byBTdW40OgogICAgIC0tIHN3YXAgYW5kIGRpc2sgbWlicyBub3Qgc3VwcG9ydGVkIHlldAogICAgIC0tIGZvdW5kIG51bWVyb3VzIGJ1Z3MgSSBoYWRuJ3Qgbm90aWNlZCB1bmRlciBIUFVYLCBtb3N0bHkgdHlwZQogICAgICAgIGNhc3RpbmcuCiAgIAoxOTk1LTAxLTI1IDE2OjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgQWRkZWQgU3dhcC9NZW1vcnkgbWliIGNoZWNrICguNCksIG5vdyB0aGF0IGl0IGNvbmZvcm1zIHRvIC57MSwyLDEwMCwxMDF9IHNwZWNzLgogICBDaGFuZ2VkIGZvcm1hdGluZyB0byB1c2UgJS1uLm5zIHNwZWNpZmljYXRpb25zIGluc3RlYWQgb2YgdGFiIHNlcGVyYXRpb25zLgogICAKMTk5NS0wMS0yMyAxNjowMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgQnVnIGZpeDogIFBvbGxlZCB3cm9uZyBtaWIgKDEwMCBpbnN0ZWFkIG9mIDEwMSkgZm9yIGVycm1zZyBzdHJpbmcuCiAgIAoxOTk1LTAxLTIzIDEyOjU3ICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIFR5cG8gZml4ZXMgaW4gdGhlIG1pYiBkZWYgZmlsZSBmb3IgT1YuCiAgIAoxOTk1LTAxLTIzIDEyOjAwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgV29uJ3QgY2hlY2sgZG93biBob3N0czotKQogICAKMTk5NS0wMS0yMyAxMDo1NyAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBBbGwgKHdhdGNoZWQpIG1pYnMgbm93IHVzZToKICAgICAxOiAgTUlCSU5ERVgsIGp1c3QgYW4gaW5kZXggdG8gdGhlIG51bWJlciBvZiB2YXJzCiAgICAgMjogIEVSUk9STkFNRSwgYSBnZW5lcmljIG9uZSB3b3JkIG5hbWUgZm9yIHRoZSBjYXVzZSBvZiBFUlJPUntGTEFHLE1TR30uCiAgIAoxOTk1LTAxLTIzIDEwOjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBBZGRlZCAvMS9PVi9iaW4gdG8gdGhlIHBhdGggdG8gZmluZCB0aGUgc25tcCB1dGlscyB3aXRob3V0IHBhdGggZXh0ZW5zaW9ucy4KICAgTW9yZSB2YXJpYWJsZSB1c2FnZTogcmVtb3ZlZCB1c2Ugb2YgY29tbWFuZCBsaW5lIGFyZ3MgZGlyZWN0bHkuCiAgIElmIHRoZSBlcnJvciBmbGFnIGhhcyBjaGFuZ2VkIGJhY2sgdG8gbm9ybWFsLCBvbmx5IGxvZyBpdCBpbiB0aGUKICAgICBlY2UtdG90YWwgbG9nIGZpbGUgaW5zdGVhZC4KICAgCjE5OTUtMDEtMjMgMTA6MjYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBXaWxsIHRha2UgaG9zdHMgZnJvbSB0aGUgbG9nIGZpbGUgaWYgbm9uZSBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KICAgICAtLSAgb3IgaWYgdGhlIGZpcnN0IGFyZyBpcyBhICctYScgd2lsbCAoQSlkZCB0byB0aGUgY29tbWFuZCBsaW5lIGxpc3QuCiAgIERpc3BsYXlzIHdoYXQgaG9zdCBpdCBpcyBjaGVja2luZyBhcyBpdCBjaGVja3MgaXQuCiAgIENoYW5nZWQgdGhlIG91dHB1dCBmb3JtYXQgKEkndmUgeWV0IHRvIHNlZSBpZiBpdCBhY3R1YWxseSBsb29rcyBnb29kIHRob3VnaCkuCiAgIAoxOTk1LTAxLTE4IDE1OjIyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgQmVnaW5uaW5nIG9mIGEgc2NyaXB0IHRvIGNoZWNrIGVycm9ycyB3aXRoIGEgbWFjaGluZSBhbmQgcmVwb3J0IHRoZW0KICAgICB2aWEgc25tcAogICBUT0RPOiAgb3B0aW9uIHRvIGZpeCB0aGUgZXJyb3JzIGlmIHJvb3Qgb24gY2xvdmVyIChuZWVkIHRvIHJzaCB0byB0aGUgbWFjaGluZSkKICAgCjE5OTUtMDEtMDUgMTQ6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIENoYW5nZWQgdGhlIHRyYXBub3RpZiBmaWxlIHRvIHJlZmxlY3QgcmVjZW50IHNvdXJjZSBjaGFuZ2VzOgogICAgIC0tIHJlbW92ZWQgbWVtIGVycm9yIHNlY3Rpb24uLi4gIFRoZXkgYXJlIGhhbmRsZWQgdmlhIHRoZSBub3JtYWwgZXJyCiAgICAgICAgcm91dGUgc2luY2UgdGhleSBub3cgaGF2ZSBhbiBlcnJvciBtc2cgbGlrZSB0aGUgcmVzdAogICAgIC0tIEVycm9yIGZsYWcgaXMgbm93IGF0IDEwMCwgYW5kIGVycm9yIG1lc3NhZ2UgaXMgYXQgMTAxLgogICAKMTk5NS0wMS0wNSAxNDo0NSAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBDaGFuZ2VkIHRoZSBtaWIgZmlsZSB0byByZWZsZWN0IHRoZSBjdXJyZW50IHNvdXJjZSBjb2RlLgogICBBbGwgbWlicyBub3cgaGF2ZSBFcnJvckZsYWcgYW5kIEVycm9yTXNnIGFzIDEwMCwxMDEKICAgCjE5OTUtMDEtMDUgMTQ6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogdHJhcG5vdGlmLCB3ZXNyZXN0YXJ0OgoKICAgY29waWVkIHRoZSByZXN0YXJ0IGFuZCB0cmFwbm90aWYgc2NyaXB0cyB0byB0aGUgc3JjIHRyZWUgZm9yIGN2cyBhcmNoaXZpbmcuCiAgIAoxOTk1LTAxLTA0IDE2OjMyICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIEluaXRpYWwgcmVsZWFzZS4KICAgTmVlZHMgdG8gYmUgdXBkYXRlZC4KICAgCjE5OTUtMDEtMDQgMTY6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvOiAuY3ZzaWdub3JlLCBzbm1wbmV0c3RhdC8uY3ZzaWdub3JlOgoKICAgSnVzdCBhIC5jdnNpZ25vcmUgZmlsZQogICAKMTk5NS0wMS0wNCAxNjoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiAuY3ZzaWdub3JlLCBzbm1wX3ZhcnMuYzoKCiAgIEZlYXR1cmU6CiAgICAgQWRkZWQgdGhlIGRpc2sgd2F0Y2hpbmcgZmFjaWxpdGllcyB0byByZXBvcnQgZGlzayBzcGFjZQogICAgICAgLS0gbmV3IGNvbmZpZyBvcHRpb24gJ2Rpc2sgRElTSyBNSU5BVkFJTCcKICAgICBBZGRlZCBzdXBwb3J0IGZvciBhIHNlY29uZCBjb25maWcgZmlsZSBhcyBDT05GSUdGSUxFVFdPCiAgICAgICAtLSBkZWZhdWx0cyB0byAvZXRjL2VjZS1zbm1wZC5sb2NhbC5jb25mCiAgICAgICAtLSBpbnRlbnQ6ICBvbmUgaXMgcmRpc3RlZCBhbmQgb25lIGlzIG1hY2hpbmUgc3BlY2lmaWMKICAgICAgIC0tIFRPRE86ICBOZWVkcyB0byBlcmFzZSBwcmV2aW91cyBkZWZpbml0aW9ucyByYXRoZXIgdGhhbiBhZGRpbmcKICAgICAgICAgIHR3byB3aXQgdGhlIHNhbWUgbmFtZQogICAKICAgQ2hhbmdlOgogICAgIE1JQiBkZWZpbml0aW9uIGNoYW5nZToKICAgICAgIC0tIEFsbCBtaWJzIHdpdGggZXJyb3IgZmxhZ3Mgbm93IHVzZSBFUlJPUkZMQUcvRVJST1JNU0cgaW5zdGVhZC4KICAgICAgIC0tIFRoZXNlIGRlZmF1bHQgdG8gMTAwIGFuZCAxMDEsIGFuZCBhcmUgc2V0IGJ5IG9ubHkgdHdvIGRlZmluZXMKICAgICBTaG9ydGVuZWQgZXJyb3IgbWVzc2FnZSBmb3IgcHJvY2VzcyBlcnJvcnMgdG8gZml0IG9uIHRoZSBzY3JlZW4uCiAgICAgU3dhcCBtaWIgY29kZSBjbGVhbnVwCiAgIAogICBUT0RPOgogICAgIEFkZGVkIGJlZ2lubmluZ3Mgb2Yga2VybmFsIGxvY2tpbmcgdGVzdHMuICBOZWVkIHRvIGZpbmQgYSBtYWNoaW5lCiAgICAgd2l0aCBhIGJyb2tlbiBycGMubG9ja2QgdG8gdGVzdCB0aGUgY29kZSB0aG91Z2guCiAgIAogICBCdWdzOgogICAgIE15IG5saXN0IGFycmF5IGRpZG4ndCBoYXZlIGEgTlVMTCBlbmRpbmcuCiAgIAoxOTk0LTEyLTE0IDE3OjEzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGRlZCB0aGUgUkVBRE1FIGZpbGUKICAgCjE5OTQtMTItMTQgMTc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvaHB1eC5jOgoKICAgQWRkZWQgaHB1eC5jCiAgIAoxOTk0LTEyLTE0IDE2OjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIHBhcnR5X3BhcnNlLmMsIHNubXBfY2xpZW50LmMKOgoKICAgSFAtVVggcG9ydCBvZiB0aGUgQ01VIGNvZGUKICAgCjE5OTQtMTItMTQgMTU6NDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBSRUFETUUuY211LCBtaWJJSS50eHQsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMKLCBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL2FzbjEuaCwKICAgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5oLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYWNsX3BhcnNlLmMsIHNubXBsaWIvc25tcC5oLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9jbGllbnQuaCwKICAgc25tcGxpYi9zbm1wX2ltcGwuaCwgc25tcGxpYi9hY2wuYywKICAgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9wYXJ0eS5jLCBzbm1wbGliL3BhcnR5LmgKLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvdmlldy5jCiwgc25tcGxpYi9jb250ZXh0LmMsIHNubXBsaWIvY29udGV4dC5oCiwgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWQ1LmMKLCBzbm1wbGliL21kNS5oLCBzbm1wbGliL3ZpZXcuaCwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wZ2V0LmMsIHNubXBsaWIvLnB1cmUKLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uaAosIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgbWFuL3NubXBfYXBpLjMKLCBtYW4vc25tcHRlc3QuMSwgbWFuL3NubXB3YWxrLjEsCiAgIG1hbi92YXJpYWJsZXMuNSwgbWFuL1JFQURNRSwgbWFuL2Rlcy4xCiwgbWFuL2Rlcy4zOgoKICAgSW5pdGlhbCBDTVUgc25tcCBjb2RlLCB2ZXJzaW9uIDIuMS4yCiAgIAoxOTk0LTEyLTE0IDE1OjQzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgUkVBRE1FLmNtdSwgbWliSUkudHh0LAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jCiwgc25tcGxpYi9hc24xLmgsIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuaAosIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9zbm1wLmgsIHNubXBsaWIvc25tcF9hcGkuaAosIHNubXBsaWIvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2ltcGwuaCwKICAgc25tcGxpYi9hY2wuYywgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9wYXJ0eS5jLAogICBzbm1wbGliL3BhcnR5LmgsIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi92aWV3LmMKLCBzbm1wbGliL2NvbnRleHQuYywgc25tcGxpYi9jb250ZXh0LmgsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21kNS5oCiwgc25tcGxpYi92aWV3LmgsIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcGdldC5jCiwgc25tcGxpYi8ucHVyZSwgc25tcGxpYi9zeXN0ZW0uYywKICAgc25tcGxpYi9zeXN0ZW0uaCwgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wdGVzdC5jCiwgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5oLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIG1hbi9zbm1wX2FwaS4zLAogICBtYW4vc25tcHRlc3QuMSwgbWFuL3NubXB3YWxrLjEsIG1hbi92YXJpYWJsZXMuNSwKICAgbWFuL1JFQURNRSwgbWFuL2Rlcy4xLCBtYW4vZGVzLjM6CgogICBJbml0aWFsIHJldmlzaW9uCiAgIAoxOTk0LTExLTE4IDE1OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLAogICBzbm1wZC5jOgoKICAgQWRkZWQgc29tZSBocC1taWJzCiAgIAoxOTk0LTExLTA0IDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEFkZGVkIFZpcnR1YWwgTWVtb3J5IG1pYiAoY3VycmVudGx5IG9ubHkgdG90YWwgYW5kIHVzZWQpCiAgIAoxOTk0LTEwLTI4IDEzOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jOgoKICAgaHAtdXggbWFjaGluZXMgbm93IHJldHVybiB0aGUgY29ycmVjdCBtaWIgbG9jYXRpb24gZm9yIHRoZWlyIGFyY2ggdHlwZS4KICAgQWRkZWQgaHAtdXggdG8gdGhlIGlmZGVmcyBmb3IgUm91dGVfU2Nhbl9SZWxvYWQoKSBmdW5jdGlvbiBmb3IgY29ycmVjdAogICAgICBrZXJuYWwgcmVhZGluZy4KICAgCjE5OTQtMTAtMjYgMTM6MzEgIGhhcmRha2VyCgogICAqIGFnZW50LzogcGFydHlfdmFycy5jLCBzbm1wX3ZhcnMuYzoKCiAgIERlYyBjb21waWxhdGlvbiBhY2hpdmVkLCB0aG91Z2ggaXRzIG5vdCBvcGVuaW5nIGFueSBwb3J0cyB3aGVuIHJ1bi4KICAgCjE5OTQtMTAtMjQgMTQ6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgQWRkZWQgdGhlIGV4dGVuc2libGUgbWliIHNlY3Rpb24uCiAgIAoxOTk0LTEwLTIwIDE2OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBzbm1wX3ZhcnMuYywgdmFyX3N0cnVjdC5oOgoKICAgQWRkZWQgdGhlIHJlbWFpbmluZyBocC11eCBzeW1ib2xzCiAgIHB1dCBhbGwgZGVwZW5kYW5jaWVzIGZvciBteSBzdHVmZiB1bmRlciB3ZXMvCiAgIG1vdmVkIHRoZSB2YXJpYWJsZSBkZWNsYWlyYXRpb25zIChzdHJ1Y3RzKSB0byB2YXJfc3RydWN0cy5oIHNvIHRoZXkgY291bGQgYmUKICAgcmVmZXJlbmNlZCBieSBvdGhlciBmaWxlcy4KICAgQ2hhbmdlZCB0aGUgZGVmYXVsdCB2YWx1ZXMgdG8gaHAtdXggZnJvbSBCU0QgYW5kIG90aGVyIG1pc2Mgc3RyaW5ncwogICBBZGRlZCBhcHByb3ByaWF0ZSBkZXBlbmRhbmNpZXMgdG8gdGhlIG1ha2VmaWxlCiAgIENoYW5nZWQgZXJyb3JzIGFuZCBhZGRlZCBzdHVmZiB0byB0aGUgdmFyaWFibGUgZGVjbGFpcmF0aW9ucyBmb3IgbXkgc3R1ZmYKICAgCjE5OTQtMTAtMTQgMTA6NDYgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIGtlcm5lbC5jLCBzbm1wX3Zhcl9yb3V0ZS5jCiwgc25tcF92YXJzLmM6CgogICBmaXhlZCBubGlzdCBmb3IgdGhlIGhwcy4gIE5vdCBzdXJlIG9mIHRocmVlIHBhcnRpY3VsYXIgbmxpc3QKICAgcmVmZXJlbmNlcyAoZm9yIHRoZSBhcnAgdGFibGUpLiAgVGhlIHJlc3QgYXJlIHdvcmtpbmcuCiAgIEFsc28gYWRkZWQgd2VzLyogZG8gdGhlIGRlcGVuZGFuY2VzIGZvciBzbm1wX3ZhcnMuYwogICAKMTk5NC0xMC0xNCAwODozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBrZXJuZWwuYywgc25tcF92YXJzLmM6CgogICBJIGZpeGVkIHRoZSBzb3VyY2UgZm9yIGNvbXBpbGF0aW9uIGFuZCBiZWdhbiBhZGRpbmcgbXkgb3duIG1pYiBkZWZzLgogICBBbnkgaW5jbHVkZWQgbWlicyB3aGljaCBtYWtlIGtlcm5hbCByZWFkcyBzdGlsbCBmYWlsLgogICAKMTk5NC0xMC0xMyAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgaGlzdG9yeS5oLCBrZXJuZWwuYwosIHNubXBfYWdlbnQuYywgc25tcF92YXJfcm91dGUuYywKICAgc25tcF92YXJzLmgsIHNubXBkLmMsIGFsYXJtLmMsCiAgIGV2ZW50LmMsIGhpc3RvcnkuYywgcGFydHlfdmFycy5jLAogICBzbm1wX3ZhcnMuYywgc25tcF92YXJzX2V2ZW50LmgsIHZpZXdfdmFycy5jCiwgYWNsLmNvbmYsIGFjbF92YXJzLmMsIGFsYXJtLmgKLCBjb250ZXh0X3ZhcnMuYywgZXZlbnQuaCwgbTJtLmgKLCBzbm1wX3ZhcnNfbTJtLmgsIHZpZXdfcGFyc2UuYywgLnB1cmUKLCByb3V0ZV93cml0ZS5jOgoKICAgSW5pdGFsIENNVSBzb3VyY2UuCiAgIAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuOCAtPiBWNS4wLjkKCjIwMDMtMDktMDUgMjM6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZAosIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDMtMDktMDUgMjM6NDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZm9yZ290IGEgdGVzdCBhZnRlciB0aGUgaWYKICAgCjIwMDMtMDktMDUgMjM6MzcgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGFkZGVkIEJvYiBSb3dsYW5kcwogICAKMjAwMy0wOS0wNSAyMzozMCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zCiwgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zCiwgbmV0c25tcF9tdWx0aXBsZXhlci4zLCBuZXRzbm1wX29sZF9hcGkuMwosIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2NhbGFyLjMKLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3RhYmxlLjMKLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zCiwgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbmV0c25tcF90b2RvLjMsCiAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG94eWdlbiB1cGRhdGUKICAgCjIwMDMtMDktMDUgMjM6MjUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHVwZGF0ZSBmb3IgNS4wLjkKICAgCjIwMDMtMDktMDUgMjI6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZS5jLCB0YWJsZV9pdGVyYXRvci5jOgoKICAgUGF0Y2ggIzgwMDU2MSBmcm9tIEJvYiBSb3dsYW5kcyB0byBmaXggNjRiaXQgcHJvYmxlbXMgKC0+IHNpemVfdCkKICAgCjIwMDMtMDktMDUgMjI6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgUGF0Y2ggIzgwMDQ4NSBmcm9tIEJvYiBSb3dsYW5kcyBmb3IgNjQgYml0IGFnZW50eCBwcm9ibGVtcwogICAKMjAwMy0wOS0wNSAyMjoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBQYXRjaCAjNzkyMDA4IGZyb20gVGhvbWFzPyB0byBhbGxvdyB1c21Vc2VyIHRva2VucyB0byBvdmVycmlkZSBwcmV2aW91cyBlbnRyaWVzCiAgIAoyMDAzLTA5LTA1IDIyOjA0ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBtaWIyYy4xLmRlZiwgc25tcGNtZC4xLmRlZiwKICAgc25tcGRlbHRhLjEsIHNubXBkZi4xLCBzbm1wbmV0c3RhdC4xLAogICBzbm1wc3RhdHVzLjEuZGVmLCBzbm1wdGFibGUuMS5kZWYsCiAgIHNubXB0ZXN0LjEuZGVmLCBzbm1wdHJhbnNsYXRlLjEuZGVmOgoKICAgUGF0Y2ggIzc4OTQ4NSBmcm9tIEJvYiBSb3dsYW5kcyBmb3IgYSBsb25nIG5lZWRlZCBvdmVyaGF1bCBvZiB0aGUgbWFudWFsIHBhZ2VzLgogICAKMjAwMy0wOS0wNSAyMjowMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBvbmUgcnVuLWF3YXkgcGF0Y2gKICAgCjIwMDMtMDktMDUgMjE6NTggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUuaW4sIGFnZW50L3NubXBkLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9taWIuYwosIHNubXBsaWIvcGFyc2UuYzoKCiAgIGhpZ2ggbGV2ZWwgY29tbWVudHMgYWJvdXQgY29udGFpbmVkIGNvcHlyaWdodHMgbW92ZWQgZnJvbSB0aGUgbWFpbiBicmFuY2gKICAgCjIwMDMtMDktMDUgMjE6NTQgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtaW5vciB1cGRhdGVzCiAgIAoyMDAzLTA5LTA1IDIxOjIxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KOgoKICAgQWRkIG9wdGlvbmFsIGFyZ3VtZW50cyB0byB0aGUgLS13aXRoLXBlcmwtbW9kdWxlcyBmbGFnIGZvciBwYXNzaW5nIGRvd24KICAgCjIwMDMtMDktMDUgMTY6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICAtIGZpeCBhIGdldGJ1bGsgYnVnIHBvaW50ZWQgb3V0IGJ5IEp1cmlqIFNtYWtvdi4KICAgCjIwMDMtMDctMjcgMTY6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCBmaWxlbmFtZSBpbiBlcnJvciBtc2csIGFzIG5vdGVkIGluIGNvZGVycwogICAKMjAwMy0wNy0yNCAxODoxNCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYWRkIGFjY2VzcyB0byBhdWdtZW50cyB0YWcgKGZpeCBidWcgNzQwMDgyOiBtaWIyYyBoYW5kbGVzIEFVR01FTlRpbmcgdGFibGVzCiAgIGluY29ycmVjdGx5KQogICAKMjAwMy0wNy0yNCAxODoxMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIGluZGV4ZXMgZnJvbSBhdWdtZW50ZWQgdGFibGUgZm9yIHRhYmxlcyB1c2luZyBhdWdtZW50cyAoZml4CiAgIGJ1ZyA3NDAwODI6IG1pYjJjIGhhbmRsZXMgQVVHTUVOVGluZyB0YWJsZXMgaW5jb3JyZWN0bHkpCiAgIAoyMDAzLTA3LTI0IDA1OjI3ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGRlZmluZSBORVRTTk1QX0lOTElORSBhcyBlbXB0eSBpZiBub3QgZGVmaW5lZAogICAKMjAwMy0wNy0xMCAwOTozMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCB0eXBvOyB1c2Ugd2hpY2ggdG8gZmluZCBzY3A7IGFkZCBleHRyYSBjb25maWcgdG8gb3RoZXIgY29uZmlnCiAgIAoyMDAzLTA3LTA5IDIwOjU2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIGhvc3QvcGF0aCB1cGxvYWQ7IHRyeSB0byBleHRyYWN0IG1vcmUgaW5mbyBmcm9tIG1ha2UgbG9nIG9uIGVycm9yCiAgIAoyMDAzLTA3LTA5IDIwOjU0ICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1wYWNrYWdlLCBuc2ItbmlnaHRseToKCiAgIGFkZCBob3N0L3BhdGggdXBsb2FkIHBhcmFtczsgdXNlIG5ldyBuc2ItZGVmYXVsdC1wYXRocwogICAKMjAwMy0wNy0wMyAyMDo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBjb250YWluZXJfbGlzdF9zc2xsLmMsIGNvbnRhaW5lcl9udWxsLmMKOgoKICAgb29wcyAtIG5vIG5ldyBmZWF0dXJlcyBmb3IgNS4wLjgKICAgCjIwMDMtMDctMDMgMjA6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYzoKCiAgIGZpbGUgY29udGFpbmVyX2xpc3Rfc3NsbC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY1LTAtcGF0Y2hlcy4KICAgCjIwMDMtMDctMDMgMjA6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmM6CgogICBmaWxlIGNvbnRhaW5lcl9udWxsLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjUtMC1wYXRjaGVzLgogICAKMjAwMy0wNy0wMyAyMDoyNiAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBjb250YWluZXJfbGlzdF9zc2xsLmMsIGNvbnRhaW5lcl9udWxsLmMKOgoKICAgbmV3IGNvbnRhaW5lcnMKICAgCjIwMDMtMDctMDIgMTM6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBQYXRjaCAjNzI0OTI1IGZyb20gUGV0ZXIgV2FyYXNpbiB0byBmaXggbmV0c25tcF9zdWJ0cmVlX3VubG9hZCgpIHRvIHVwZGF0ZSB0aGUgcm9vdCBwb2ludGVyCiAgIAoyMDAzLTA3LTAyIDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsIHNubXBsaWIvcGFyc2UuYwo6CgogICBQYXRjaCAjNzYwNDQ4IGZyb20gQm9iIFJvd2xhbmRzL1N1biB0byBmaXggYnVnICM3NTE5MTMgdG8gcHJvdGVjdCBhIGZldyBtaW5vciBzZWN1cml0eSB2aW9sYXRpb25zCiAgIAoyMDAzLTA3LTAyIDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3N0cmxjcHkuYzoKCiAgIGZpbGUgc3RybGNweS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY1LTAtcGF0Y2hlcy4KICAgCjIwMDMtMDctMDIgMTA6NDQgIGhhcmRha2VyCgogICAqIENPUFlJTkcsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9zbm1wZC5jLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3N0cmxjcHkuYzoKCiAgIFBhdGNoICM3NjA0MTcgZnJvbSBCb2IgUm93bGFuZHMvU3VuIGZvciBmaXhpbmcgQnVnICM3NTE5MjAgZm9yIG1pbm9yIHNlY3VyaXR5IHByb2JsZW1zIChQSUQgZmlsZSB1bmxpa2VkIGZpcnN0LCBhbmQgdXNlIHN0cmxjcHkgaW5zdGVhZCBvZiBzdHJjcHkuICBBIG5ldyBzdHJsY3B5IGZpbGUgd2FzIGRlZmluZWQgaWYgbm90IGRlZmluZWQgZm9yIGEgc3lzdGVtLgogICAKMjAwMy0wNy0wMiAxMDozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGRvbid0IHVzZSBpc3NwYWNlIGFuZCBpc3ByaW50IHNpbXVsdGFuaW91c2x5CiAgIAoyMDAzLTA3LTAyIDEwOjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBjb21tZW50IGNoYW5nZSBmb3IgY2xhcmlmaWNhdGlvbgogICAKMjAwMy0wNy0wMiAxMDoyNiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIFBhdGNoICM3NjQwNDcgZnJvbSBTdGVwaGVuIEouIEZyaWVkbDogUmVtb3ZlIHJlZHVuZGFudCBkZWNsYXJhdGlvbiBmcm9tIHNubXBfZGVidWcuaCBhbmQgZml4IGEgZmV3IGNvbW1lbnRzCiAgIAoyMDAzLTA3LTAyIDEwOjIxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoICM3NTkzMDkgZnJvbSBTdGVwaGVuIEZyaWVkbCB0byBhZGQgcHJvbXB0IG92ZXItcmlkZSBmbGFnIGRlc2NyaXB0aW9ucyB0byBwcm9tcHQgb3V0cHV0CiAgIAoyMDAzLTA3LTAyIDEwOjE5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHBhdGNoICM3NTkyOTg6IGZpeCBzcGVsbGluZyBlcnJvcgogICAKMjAwMy0wNi0yNSAxNDoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGZpeCBwcm94eWluZyBmb3IgZ2V0YnVsawogICAKMjAwMy0wNi0yMiAwNzoyMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgZml4IHVzYWdlIGZvciBmbGFnIG9yZGVyaW5nCiAgIAoyMDAzLTA2LTE2IDE0OjU5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBuZWVkZWQgY29tbWVudCBhYm91dCBpdCBiZWluZyBicm9rZW4sIGFzIHBvaW50ZWQgb3V0CiAgIGJ5IEJydWNlLgogICAKMjAwMy0wNi0xNiAxNDo1OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIHN1cHBvcnQgLCBzZXBhcmF0ZWQgYXJndW1lbnRzIHRvIC1UIGxpa2UgLWggc2F5cyBpdCB3aWxsLgogICAKMjAwMy0wNi0xNiAxNDo1NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIEJydWNlIFNoYXcncyBwYXRjaCA3NTU1NTMgdG8gZml4IFJVTlRFU1RTIHRlc3QgbnVtYmVyIHJlcG9ydGluZyB3aGVuCiAgIHRlc3Rpbmcgc3Vic2V0cyBhcmUgdXNlZC4KICAgCjIwMDMtMDYtMTYgMTQ6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFBhdGNoICM3NTU1NDAgZnJvbSBCcnVjZSBTaGF3IGFuZCBJUkM6U2ViTm9iIHRvIGZpeCBidWcgIzcwMTQzOSBmb3IgNjQgYml0IHNvbGFyaXMgc3lzdGVtcyBhbmQgNjQgYml0IGludGVnZXJzIHJldHVybmVkIGJ5IGdldEtzdGF0CiAgIAoyMDAzLTA2LTE2IDE0OjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1NWFnZW50djFtaW50cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwCjoKCiAgIFBhdGNoICM3NTQxMDUgZnJvbSBCcnVjZSBTaGF3IHRvIGZpeCBzb21lIHNwZWxsaW5nIGVycm9ycwogICAKMjAwMy0wNi0xMCAxNTo0OCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEJld2FyZSBvZiBkZXJlZmVyZW5jaW5nIGEgTlVMTCBwb2ludGVyCiAgIAoyMDAzLTA2LTEwIDEwOjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW1vdmUgdGhlIHVudXNlZCBmdW5jdGlvbiBhcyBwb2ludGVkIG91dCBieSBCb2IgUm93bGFuZHMKICAgCjIwMDMtMDYtMDkgMTY6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhZ2VudC9zbm1wX2FnZW50LmMKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIExvbmcgb3ZlcmR1ZSBwYXRjaCAjNjk1MTkyIGZyb20gUm9uIFRhYm9yIHRvIGZpeCB0aGUgVkFDTSBzcGlubmluZyBwcm9ibGVtIHRoYXQgSSBkaWRuJ3QgcXVpdGUgZml4IGJlZm9yZQogICAKMjAwMy0wNi0wOSAxNjowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMKLCB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVM6CgogICBmaXggYnVnICM3MDY3MTAgdG8gc2hvdyB3aGVuIHByaXZhY3kgaGFzIGJlZW4gZGlzYWJsZWQKICAgCjIwMDMtMDYtMDkgMTU6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGJ1ZyAjNzQ4NDMxIGZyb20gSm9obiBTaGl2ZXI6IGZpeCB0aHJlYWQtc2FmZSBwcm9ibGVtcyB3aXRoIHNubXBfZ2V0X2ZkX2Zvcl9zZXNzaW9uICh3aGljaCB3YXMgbWlzc2luZyBpbiB0aGUgNS54IGxpbmUgYW55d2F5KQogICAKMjAwMy0wNi0wOSAxNDo0OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLk1hdHN1c2hpdGEudHh0LCBSRUFETUUuTWF0c3VzaGl0YS50eHQ6CgogICBQYXRjaCAjNzQ4MzA1IGZyb20gc3Jpbml2YXNhIHJhbyBndXJ1c3UgZGVzY3JpYmluZyBob3cgdG8gYnVpbGQgbmV0LXNubXAgb24gTWF0c3VzaGl0YSBlbWJlZGRlZCBzeXN0ZW1zCiAgIAoyMDAzLTA2LTA5IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIFBhdGNoIDc0NjMzOTogT3R0byBTb2xhcmVzIGZpeGVzIGEgZmlsZSBkZXNjcmlwdG9yIGxlYWsgb24gbGludXgKICAgCjIwMDMtMDYtMDkgMTQ6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIHBhdGNoICM3NDA5MTggZnJvbSBFcmljIEUuIEJvd2xlczogZml4IHBhc3MgdGhyb3VnaCBpbnZvY2F0aW9uIGZvciBTRVRzCiAgIAoyMDAzLTA2LTA5IDE0OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBQYXRjaCAjNzQ5MDYyIHRvIGZpeCBjYWNoaW5nIGNyYXNoaW5nIGFuZCBjbGFzaGluZyB1bmRlciBTb2xhcmlzCiAgIAoyMDAzLTA2LTA5IDE0OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgcGF0Y2ggIzc0OTEwMyBmcm9tIEdhcnJ5IEMgTWFyc2hhbGwgdG8gZml4IHRoZSBwcm94eSB3aGVuIGEgdGltZW91dCBvY2N1cnMgZnJvbSB0aGUgdGFyZ2V0CiAgIAoyMDAzLTA2LTA2IDIzOjE3ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBtaXNzaW5nIGxlbmd0aCBieXRlIHdoZW4gc2V0dGluZyBpbmRleCB3aXRoIGNoZWNrcyBkaXNhYmxlZAogICAKMjAwMy0wNS0yOCAxNzoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICByZW1vdmUgdW51c2VkIGNvZGUgYXMgcG9pbnRlZCBvdXQgYnkgUGV0ZXIgV2FyYXNpbgogICAKMjAwMy0wNS0yOCAxNDoyOSAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0OgoKICAgYWRkZWQgVjQvVjUgbm90ZSBmcm9tIG1haW4gYnJhbmNoIHRvIHBhdGNoZXMKICAgCjIwMDMtMDUtMjMgMTE6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZyZWUgY29udGFpbmVyIGFmdGVyIGZyZWVpbmcgY29udGVudHMKICAgCjIwMDMtMDUtMjMgMTE6MjQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsCiAgIHNubXBsaWIvY29udGFpbmVyLmM6CgogICB1cGRhdGUgY29udGFpbmVyIGZyZWUgbWFjcm8vY29kZSB0byBkZWFsIHcvcG9pbnRlciBiZWluZyBkZWxldGVkCiAgIAoyMDAzLTA1LTIzIDExOjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYzoKCiAgIEVYVEVOU0lCTEVNSUIgLT4gVUNEQVZJU19NSUIKICAgCjIwMDMtMDUtMTQgMTA6MzAgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlnLmluCiAgIAoyMDAzLTA1LTE0IDEwOjI4ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IG5ldC1zbm1wLWNvbmZpZyBjaG1vZCB0byB3b3JrIGZyb20gY29uZmlndXJlIGFuZCBjb25maWcuc3RhdHVzCiAgIAoyMDAzLTA1LTEyIDIyOjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUGF0Y2ggIzczNTUxMSBmcm9tIEFsZXggQnVyZ2VyOiBmaXggc25tcHRyYXBkIHRvIGVuc3VyZSB0aGVyZSBhcmUgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIHZhcmJpbmRzCiAgIAoyMDAzLTA1LTEyIDIyOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgUGF0Y2ggIzczNjc4NCBmcm9tIFJvbiBUYWJvcjogZml4IHByb3hpZXMgZm9yIHJlc3RhcnRlZCBOU01QdjMgc3ViLWFnZW50cwogICAKMjAwMy0wNS0wOCAxNjoxNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgbWVudGlvbiBBbmRyZXcgRmluZGxheQogICAKMjAwMy0wNS0wOCAxNjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIChleGNlbGxlbnQpIHBhdGNoICM3MDU1NjYgZnJvbSBBbmRyZXcgRmluZGxheSBvbiBwZXJsIGFnZW50IHN1cHBvcnQ6CiAgIAogICAxKSBBZ2VudCBjYW5ub3QgcmV0dXJuIE1BQyBhZGRyZXNzZXMgY29udGFpbmluZyB6ZXJvIG9jdGV0LgogICAKICAgMikgQWdlbnQgY29yZWR1bXBzIHdoZW4gdHJ5aW5nIHRvIHJldHVybiBJUCBhZGRyZXNzZXMKICAgaWYgdGhlc2UgYXJlIHN1cHBsaWVkIGFzIGRvdHRlZC1xdWFkIG9yIGFzIGEgaG9zdG5hbWUKICAgdGhhdCBmYWlscyB0byByZXNvbHZlLgogICAKICAgMykgQWdlbnQgY29ycnVwdHMgT0lEIHZhbHVlcy4KICAgCiAgIDQpIEFnZW50IHRydW5jYXRlcyBhbnkgT0NURVRfU1RSSU5HIG9yIEJJVF9TVFJJTkcgdGhhdAogICBjb250YWlucyBhIHplcm8gb2N0ZXQgKHRoaXMgaXMgdGhlIHJvb3QgY2F1c2Ugb2YgKDEpIGFib3ZlKQogICAKICAgQVBJIGNoYW5nZXMgaW50cm9kdWNlZDoKICAgCiAgIGEpIElQIGFkZHJlc3NlcyBub3cgcGFzc2VkIGFzIGJpbmFyeSBzdHJpbmdzICg0IG9jdGV0cwogICBmb3IgSVB2NCkgcmF0aGVyIHRoYW4gZG90dGVkLXF1YWQgb3IgbmFtZS4gVGhpcwogICBzaWRlc3RlcHMgdGhlIElQdjQvSVB2NiBwcm9ibGVtIGFuZCBsZWF2ZXMgdGhlIGNhbGxpbmcKICAgc2NyaXB0IHRvIGRlYWwgd2l0aCBuYW1lLT5hZGRyZXNzIHJlc29sdXRpb24gYW5kCiAgIGFzc29jaWF0ZWQgZXJyb3IgaGFuZGxpbmcuCiAgIAoyMDAzLTA1LTA4IDA5OjQyICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBtZW50aW9uIEFsZXggQnVyZ2VyLCB3aG8gc3VibWl0dGVkIHRoZSBwZXJsIHdpbjMyIHBhdGNoZXMKICAgCjIwMDMtMDUtMDggMDk6MzIgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG1lbnRpb24gU3RlcGhlbgogICAKMjAwMy0wNS0wOCAwOTozMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMKOgoKICAgcGF0Y2ggIzcxMDI3NSBmcm9tIFN0ZXBoZW4gSi4gRnJpZWRsOiBjb25zdCBmaXhlcyBmb3IgQVBJcyB0aGF0IGRvbid0IG1vZGlmeSB0aGVpciBhcmd1bWVudHMKICAgCjIwMDMtMDUtMDggMDk6MjggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIG1pc3NlZCBhIGNvbW1pdCBmb3IgYSBwZXJsIHBhdGNoCiAgIAoyMDAzLTA1LTA4IDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzcxMjEwMTogbWlub3IgaXJpeCBmaXgKICAgCjIwMDMtMDUtMDggMDk6MjEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBNZW50aW9uIHBhdGNoICM3MTU2MDMKICAgCjIwMDMtMDUtMDggMDk6MTggIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUuc3Vicy5wbCwKICAgQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEwsIFNOTVAvUkVBRE1FLCBTTk1QL1NOTVAueHMKLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIHBhdGNoICM3MTU2MDM6IGZpeCBwZXJsIG1vZHVsZSBidWlsZHMgdW5kZXIgd2luZG93cwogICAKMjAwMy0wNS0wOCAwNzoxMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHRyeSB0byB1c2UgZGVmYXVsdCBjb250YWluZXIgaWYgbm9uZSBzcGVjaWZpZWQ7IG5vbi1leGlzdGVudCByb3cgc3RhdHVzIG5vdAogICBsZWdhbCBmb3IgYSBuZXcgcm93OyBzYW5pdHkgY2hlY2sgYXNzZXJ0czsgcmVtb3ZlIHVudXNlZCBjb29wZXJhdGl2ZQogICBub3RpZmljYXRpb24gY29kZTsgY2hlY2sgZm9yIG51bGwgdGFibGUgY29udGFpbmVyCiAgIAoyMDAzLTA1LTA4IDA3OjA2ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICByZW1vdmUgb2JqZWN0X21vbml0b3IgYXMgaXQgZG9lc24ndCBkbyBhbnl0aGluZyBhbmQgd291bGQgYmUgYSBuZXcgZmVhdHVyZSBpZgogICBpdCBkaWQKICAgCjIwMDMtMDUtMDggMDc6MDUgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggc3lzbmFtZSB0cmFuc2xhdGlvbiBmb3IgLzsgYWxsb3cgZXh0cmEgY29uZmlnIHRvIGJlIHNwZWNpZmllZCBpbgogICBlbnZpcm9ubWVudCB2YXIKICAgCjIwMDMtMDUtMDggMDc6MDIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGNoZyBORVRfU05NUF9VU0VfQVNTRVJUIGRlZmluZSB0byBORVRTTk1QX1VTRV9BU1NFUlQgdG8gYmUgY29uc2lzdGVudAogICAKMjAwMy0wNS0wOCAwNjo1OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwKICAgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIGFwcGx5IHBhdGNoIFsgNzI0OTI3IF0gdG8gZml4IGxvZyBtc2c7IGFkZCBcbiB0byBsb2cgbXNncwogICAKMjAwMy0wNS0wNSAxNTozNSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBhZ2VudHhQaW5nSW50ZXJ2YWwKICAgCjIwMDMtMDUtMDUgMTA6MzUgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlndXJlLmluCiAgIAoyMDAzLTA1LTA1IDEwOjI5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5pbjoKCiAgIGNobW9kIG5ldC1zbm1wLWNvbmZpZyBhZnRlciBjb25maWd1cmUsIGluc3RlYWQgaW4gbWFrZQogICAKMjAwMy0wNC0wMyAxNToxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgd3JhcCBTTk1QX0ZSRUUgbWFjcm8gdy9kbyB3aGlsZSwgc28gaXQgd29uJ3QgYWZmZWN0IGlmL3RoZW4gZmxvdwogICAKMjAwMy0wMy0yOCAwNjo0OCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmtyYjU6CgogICBLZW4gSG9ybnN0ZWluIG5vdGVkIHRoYXQgdGhlIHJ3dXNlciAtcyBmbGFnIHdhcyBtaXNzaW5nIGl0J3MgYXJndW1lbnQKICAgCjIwMDMtMDMtMjggMDY6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgUGF0Y2ggZnJvbSBLZW4gZm9yIG1pc2Mga3JiNSBmaXhlcyAoZW5jcnlwdGlvbiB0eXBlcywgTmV3IGNyeXB0byBzdXBwb3J0LC4uLgogICAKMjAwMy0wMy0xOSAxMTo0NiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgcmVtb3ZlIHRyYWlsaW5nIFwgZnJvbSBwZXJsIHJ1bGVzCiAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjcgLT4gVjUuMC44CgoyMDAzLTAzLTE3IDE3OjMzICByc3RvcnkKCiAgICogTkVXUywgbWFuL25ldHNubXBfaGFuZGxlci4zLAogICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjM6CgogICB1cGRhdGUgZm9yIDUuMC44CiAgIAoyMDAzLTAzLTE3IDE3OjIwICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBGQVEKLCBSRUFETUUsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC44ICkKICAgCjIwMDMtMDMtMTQgMTQ6NTUgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLAogICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQKLCBwZXJsL1NOTVAvU05NUC5wbSwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgdXBkYXRlIGZvciA1LjAuOC5wcmUyCiAgIAoyMDAzLTAzLTE0IDE0OjQwICByc3RvcnkKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuOC5wcmUyCiAgIAoyMDAzLTAzLTE0IDEzOjUzICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMwo6CgogICB1cGRhdGUgZm9yIDUuMC44LnByZTIKICAgCjIwMDMtMDMtMTQgMTM6NDUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHRyYWlsaW5nIHNsYXNoIG9uIHNyY2RpciBmb3IgY29tbWVudCBjaGVja3MKICAgCjIwMDMtMDMtMTQgMTM6NDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtb3JlIGV4dHJhIG1vZHVsZXMgYW5kIHRyYW5zcG9ydHMKICAgCjIwMDMtMDMtMTQgMTI6NDQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIHVzZSBuZXcgbWFjcm8gZm9yIGlubGluaW5nOyBmaXggc29tZSBpbmRlbnQgbWFkbmVzcwogICAKMjAwMy0wMy0xNCAxMjo0MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIHVzZSBuZXcgbWFjcm8gZm9yIHRlc3RpbmcgaWYgaW5saW5pbmcgaXMgb24KICAgCjIwMDMtMDMtMTQgMTI6NDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGFpeC5oLCBocHV4LmgsCiAgIGlyaXguaDoKCiAgIGRvbid0IHVuZGVmIGlubGluZQogICAKMjAwMy0wMy0xNCAxMjo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICByZW5hbWUgbWFjcm8gdXNlZCB0byB0ZXN0IGZvciBpbmxpbmluZwogICAKMjAwMy0wMy0xNCAxMjozOSAgcnN0b3J5CgogICAqIHdpbjMyLzogY29uZmlnLmgsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgaWYgaW5saW5lIG1hY3JvIG5vdCBkZWZpbmVkLCBkZWZpbmUgYXMgZW1wdHkKICAgCjIwMDMtMDMtMTQgMTI6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMKLCBhZ2VudC9vYmplY3RfbW9uaXRvci5jLCBhZ2VudC9zbm1wX2FnZW50LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsIHNubXBsaWIvZGF0YV9saXN0LmMKLCBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgcmVwbGFjZSBpbmxpbmUgdy9tYWNybwogICAKMjAwMy0wMy0xMyAxOTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcGF0Y2ggZnJvbSBUb21teSBDaHJpc3RlbnNlbiB0byBmaXggc29tZSBBZ2VudFggKG1vc3RseSkgbWVtb3J5IGxlYWtzCiAgIAoyMDAzLTAzLTEyIDEzOjQwICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBwYXRjaCAjNjk5MzgwOiBGcm9tIENocmlzdG9waGUgS2FsdDogbWFrZSBuZXQtc25tcC1jb25maWcgZG8gd2hhdCBpdCdzIGRvY3VtZW50IHRvIGRvIChhZGQgLUxAbGliZGlyQCkKICAgCjIwMDMtMDMtMTIgMTE6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHBhdGNoICM3MDA2NzI6IHJlc2V0IGl0bXAgdG8gdGhlIG5ldyB2YWx1ZSBsZW5ndGggYWZ0ZXIgZGVjb2RpbmcgYSBoZXggc3RyaW5nCiAgIAoyMDAzLTAzLTExIDE3OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBBcHBsaWVkIG9wZW5zc2wgZHluYW1pYyB2ZXJzaW9uIGhhY2svZml4CiAgIAoyMDAzLTAzLTExIDE1OjE0ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBhZGQgV1JBUExJQlMgdmFyIGluc3RlYWQgb2YgZGlyZWN0IHN1YnN0aXR1dGlvbgogICAKMjAwMy0wMy0xMSAxNToxMiAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBXUkFQTElCUyB0byAtLWFnZW50LWxpYnMgYW5kIC0tZXh0ZXJuYWwtYWdlbnQtbGlicwogICAKMjAwMy0wMy0xMSAwMDozMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHJldmVydCB0byAyLjEzCiAgIAoyMDAzLTAzLTA2IDAxOjQ0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCiAgIAoyMDAzLTAzLTA2IDAxOjQxICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IGxpYndyYXAgdy9uc2w7IG1ha2Ugc3VyZSBhbGwgcXVvdGVzIHJlc3RvcmVkIGJlZm9yZSB1c2luZyBBQyBtYWNyb3MuIFRoaXMKICAgc2VlbXMgdG8gbWVzcyB1cCB0aGUgY29uZmlnIG91dHB1dCB3aGlsZSBjaGVja2luZyBmb3IgbW9kdWxlcywgYnV0IHcvb3V0IGl0LAogICBJIGdldCBlcnJvcnMgZnJvbSBtNCB3aGVuIHJ1bm5pbmcgYXV0b2NvbmYuCiAgIAoyMDAzLTAzLTA1IDIwOjUxICByc3RvcnkKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBuZXQtc25tcC1jb25maWcteAogICAKMjAwMy0wMy0wNSAyMDo0OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBjaGVjayBmb3IgYW4gb3B0aW9uYWwgM3JkIHBhcmFtLCBub2N2cywgdG8gbm90IGNvbW1pdCBhZnRlciB1cGRhdGluZyB2ZXJzaW9uCiAgIAoyMDAzLTAzLTA1IDIwOjQ4ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHB1dCBhbGwgdGhlIHZlcnNpb24gbnVtYmVyIGNoYW5nZXMgaW4gdGhlIHNhbWUgc3RlcAogICAKMjAwMy0wMy0wNSAyMDoyMSAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC44LnByZTEgKQogICAKMjAwMy0wMy0wNSAyMDowMCAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0sCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICB1cGRhdGUgdmVyc2lvbiB0byA1LjAuOC5wcmUxCiAgIAoyMDAzLTAzLTA1IDE5OjA0ICByc3RvcnkKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBiYWNrIG91dCBkb2NzIGZvciBuZXcgZnVuY3Rpb25hbGl0eSBhY2NpZGVudGFsbHkgYWRkZWQgd2hlbiBhcHBseWluZyBwYXRjaAogICAKMjAwMy0wMy0wNSAxODo0MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGJhY2sgb3V0IG5ldyBmdW5jdGlvbmFsaXR5IGFjY2lkZW50YWxseSBhZGRlZCB3aGVuIGFwcGx5aW5nIHBhdGNoCiAgIAoyMDAzLTAzLTA1IDE4OjIwICByc3RvcnkKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICB1cGRhdGVzIGZyb20gQnJ1Y2UgU2hhdwogICAKMjAwMy0wMy0wNSAxODoxOCAgcnN0b3J5CgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgYWRkIHNubXBkLjgKICAgCjIwMDMtMDMtMDUgMTg6MTIgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfaGFuZGxlci4zLAogICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YS4zOgoKICAgdXBkYXRlcyBmb3IgNS4wLjgKICAgCjIwMDMtMDMtMDUgMTg6MDQgIHJzdG9yeQoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICB1cGRhdGUgdG8gNS4wLjgKICAgCjIwMDMtMDMtMDUgMTc6NTggIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgcmVtb3ZlIG9ic29sZXRlIGFyZ3VtZW50OyBmaXggdHlwbwogICAKMjAwMy0wMy0wNSAxNzo1OCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgZXhjbHVkZSBmdHAgZnJvbSBjb21tZW50IGNoZWNrOyB1c2UgZWdyZXAKICAgCjIwMDMtMDMtMDUgMTc6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIGNoZyBDKysgc3R5bGUgY29tbWVudAogICAKMjAwMy0wMy0wNSAxNzo1MCAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBhcmdoISBGcmVlQlNEIGlzIGRyaXZpbmcgbWUgY3JhenkhICBzZXQgUkFORE9NPTIgaWYgUkFORE9NIG5vdCBkZWZpbmVkOyB1c2UgdGVzdAogICAKMjAwMy0wMy0wNSAxNzoyMiAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBzaW1wbGlmeSBuZXRzdGF0IGFyZ3MgJiB0d2VhayBncmVwIHJlZ2V4IGZvciBtdWx0aSBwbGF0Zm9ybSBjb21wYXRhYmlsaXR5CiAgIAoyMDAzLTAzLTA1IDE3OjExICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGNoZWNrIC9iaW4gYW5kIC91c3IvYmluIGZvciBuZXRzdGF0IChwcm9iYWJseSBhIGdvb2Qgam9iIGZvciBjb25maWd1cmUpCiAgIAoyMDAzLTAzLTA1IDE3OjAyICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIG1pc3NlZCBvbmUsIHJlOiAoKCApKSAtPiBleHByCiAgIAoyMDAzLTAzLTA1IDE2OjU4ICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIHVzZSBtb3JlIHBvcnRhYmxlIGV4cHIgaW5zdGVhZCBvZiAgKCggKSkgZm9yIGFyaXRobWV0aWMgZXhwcmVzc2lvbnMKICAgCjIwMDMtMDMtMDUgMTY6MTYgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgZm9yIHN5c3RlbXMgd2l0aCAvYmluL25ldHN0YXQsIGNoZWNrIHRoYXQgc25tcGQgcG9ydCBpcyBub3QgaW4gdXNlLiBJZiBpdCBpcywKICAgdHJ5IHVwIHRvIHRocmVlIHJhbmRvbSBvdGhlcnMgYmVmb3JlIGdpdmluZyB1cC4KICAgCjIwMDMtMDMtMDUgMTU6MTYgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLWZ1bmN0aW9ucywgbnNiLXBhY2thZ2U6CgogICBkb24ndCBwcm9tcHQgYmV0d2VlbiBzdGVwcyBieSBkZWZhdWx0CiAgIAoyMDAzLTAzLTA1IDE1OjExICByc3RvcnkKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIGltcG9ydCBTTk1QX1NMRUVQIHRpbWUgZnJvbSBlbnZpcm9ubWVudCwgaWYgYXZhaWxhYmxlCiAgIAoyMDAzLTAzLTA1IDE1OjEwICByc3RvcnkKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBkb24ndCByZWRlZmluZSBpbmxpbmUKICAgCjIwMDMtMDMtMDUgMTU6MDggIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICB2ZXJzaW9uIDUuMC44CiAgIAoyMDAzLTAzLTA1IDE1OjA3ICByc3RvcnkKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBzb21lIGZpbGVzIGF1dG9jb25mIG1heSBjcmVhdGUKICAgCjIwMDMtMDMtMDUgMTM6NDIgIG5iYQoKICAgKiBhY2xvY2FsLm00LCBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIKLCBsdG1haW4uc2gsIGNvbmZpZ3VyZToKCiAgIFVwZGF0ZSBsaWJ0b29sIHRvIHZlcnNpb24gMS40LjMsIGZvciB0aGUgYmVuZWZpdCBvZiBEYXJ3aW4KICAgCjIwMDMtMDMtMDUgMTM6MzkgIG5iYQoKICAgKiBjb25maWd1cmUuaW46CgogICBEb250IGZvcmNlIC1JL3Vzci9sb2NhbC9pbmNsdWRlIGZvciAtLXdpdGgtZG1hbGxvYwogICAKMjAwMy0wMy0wNCAxMjo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgd3JvbmcgdHlwZSByZXR1cm5lZCBmb3IgbnNNb2R1bGVNb2RlcyBhcyByZXBvcnRlZCBieSBNaWNoYWVsIEtpcmtoYW0KICAgCjIwMDMtMDMtMDMgMTU6MDMgIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIE1lbnRpb24gdGhlIEFnZW50WEFkZHJlc3MsIEFnZW50c1JldHJpZXMgYW5kIEFnZW50WFRpbWVvdXQgcGFyYW1ldGVycwogICAKMjAwMy0wMy0wMyAxNDoyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBBZGQgc3VwcG9ydCBmb3IgT3BlbkJTRCAzLiBTb3J0IHNvbWUgbGluZXMgZm9yIGVhc2llciByZWZlcmVuY2UuCiAgIAoyMDAzLTAzLTAxIDEwOjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBhZ2VudHggcGF0Y2ggZnJvbSBUb21teSBDaHJpc3RlbnNlbjogYmV0dGVyIGVycm9yIGNoZWNraW5nCiAgIAoyMDAzLTAzLTAxIDA5OjU5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgYWdlbnR4IHBhdGNoIGZyb20gVG9tbXkgQ2hyaXN0ZW5zZW46IGRvbid0IGNyZWF0ZSBkZWxlZ2F0ZWQgY2FjaGUgZm9yIENMRUFOVVBTRVQKICAgCjIwMDMtMDItMjggMjM6NDYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIHR5cG8KICAgCjIwMDMtMDItMjggMjM6MTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIFBhdGNoICM1OTc2MjkgZnJvbSBNYXR0IFNlbHNreSB0byBmaXggbWFuIHBhZ2UgaW5zdGFsbGF0aW9uCiAgIAoyMDAzLTAyLTI4IDEzOjE4ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEJldHRlciBlcnJvciBtZXNzYWdlIGlmIHdlIGNhbm5vdCBjcmVhdGUgcGlkIGZpbGUKICAgCjIwMDMtMDItMjggMTM6MTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIFVzZSBGUyB0eXBlcyB3aXRoIExpbnV4CiAgIAoyMDAzLTAyLTI3IDAwOjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgc3luYyB3L21haW4KICAgCjIwMDMtMDItMjYgMTg6NTIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBzeW5jIHcvbWFpbjogcHV0IGluIG1pc3NpbmcgSU5TVEFMTF9EQVRBCiAgIAoyMDAzLTAyLTI2IDE4OjA1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBJbXBsZW1lbnQgc3lzUmF3SW50ZXJydXB0cyBhbmQgc3lzUmF3Q29udGV4dCBmb3IgU29sYXJpcwogICAKMjAwMy0wMi0yNiAxNDozMCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggYSBDIHByZWNlZGVuY2UgYm90Y2gtdXAsIHRoYW5rcyB0byBGYWJy7WNpbyBMYXMgQ2FzYXMgPEZhYnJpY2lvQGF0YW4uY29tLmJyPgogICAKMjAwMy0wMi0yNiAxNDoxNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgSW1wbGVtZW50IHRoZSBzc1Jhd0ludGVycnVwdHMgYW5kIHNzUmF3Q29udGV4dCBjb3VudGVycyBpbiBMaW51eAogICAKMjAwMy0wMi0yNiAxNDoxMyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBGaXggdGhlIC1TIG9wdGlvbgogICAKMjAwMy0wMi0yNSAxNDozOCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgZml4IGxvZ2ljIG9mIHRlc3Qgb3BlcmF0aW9uCiAgIAoyMDAzLTAyLTI1IDE0OjMzICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcDoKCiAgIHVzZSBBVVRPKENPTkZ8SEVBREVSKSBmcm9tIGNvbmZpZ3VyZSwgaW5zdGVhZCBvZiBoYXJkY29kZWQ7IGRvbid0IHRyeSBhbmQgcnVuCiAgIEFVVE8oQ09ORnxIRUFERVIpIGlmIG5vdCBmb3VuZAogICAKMjAwMy0wMi0yNSAxNDoxMSAgcnN0b3J5CgogICAqIG1hbi9zbm1wZC44LmRlZjoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDogbmV3IGZpbGUKICAgCjIwMDMtMDItMjUgMTQ6MDMgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoIChjb3JyZWN0bHksIHRoaXMgdGltZSkKICAgCjIwMDMtMDItMjUgMTM6NDkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDogYWRkIE5PQVVUT0RFUFMKICAgCjIwMDMtMDItMjUgMTM6MzggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6IGFkZCBzbXV4IHRvIGRpc3QgbW9kdWxlczsgbW92ZSBtYWtlIHRlc3QgaW50byBuc2ItbWFrZTsKICAgcmVtb3ZlIHRlZSBzbyByYyBpcyBwcmVzZXJ2ZWQ7IHVzZSBuZXcgTk9BVVRPREVQUwogICAKMjAwMy0wMi0yNSAxMzoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIFJlY29nbmlzZSAiZGVmVmVyc2lvbiB2MyIgYXMgd2VsbCBhcyAiZGVmVmVyc2lvbiAzIiBhcyBkb2N1bWVudGVkCiAgIGluIHRoZSBtYW4gcGFnZXMgKHByaW9yIHRvIFBldGVyIEJyZWl0ZW5sb2huZXIncyBjb3JyZWN0aW9uKQogICBbV2UgbWlnaHQgYXMgd2VsbCBzdXBwb3J0IGJvdGggc3R5bGVzLi4uLl0KICAgCjIwMDMtMDItMjUgMTM6MjAgIHJzdG9yeQoKICAgKiBFWEFNUExFLmNvbmYuZGVmLCBzZWRzY3JpcHQuaW4sCiAgIG1hbi9NYWtlZmlsZS5pbiwgbWFuL21pYjJjLjEuZGVmLAogICBtYW4vcmVhZF9jb25maWcuMy5kZWYsIG1hbi9zbm1wLmNvbmYuNS5kZWYsCiAgIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgbWFuL3NubXBjbWQuMS5kZWYsCiAgIG1hbi9zbm1wY29uZi4xLmRlZiwgbWFuL3NubXBkLjEuZGVmLAogICBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYsIG1pYnMvTWFrZWZpbGUuaW46CgogICBzeW5jIHcvbWFpbiBicmFuY2g6IChJIGhvcGUgSSBnb3QgdGhpcyByaWdodCkKICAgLUFwcGx5IFBldGVyIEJyZWl0ZW5sb2huZXIncyBkb2N1bWVudGF0aW9uIGNoYW5nZXMKICAgIChwYXRjaGVzICM2OTIzODEsICA2OTIzODIgYW5kICA2OTIzODgpCiAgIAoyMDAzLTAyLTI1IDEzOjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBwYXRjaCAjNjU3ODA4OiBjYWxjdWxhdGUgYSBwcm9wZXIgaWZTcGVlZCB1bmRlciBsaW51eCB3aGVuIHBvc3NpYmxlCiAgIGFuZCBkbyBtb3JlIHByb3BlciBpZk9wZXJTdGF0dXMgc3RhdGUgZGV0ZXJtaW5hdGlvbi4KICAgCjIwMDMtMDItMjUgMTM6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgLSBJcmZhbiBTaGVyaWZmIHBvaW50ZWQgb3V0IGEgYnVnIHdpdGggZ2V0bmV4dCByZXF1ZXN0cyBkaXJlY3RseSB0byBhIGNvbHVtbi4KICAgLSBjaGVjayBlbnRyeSBub2RlIGFzIHN1Z2dlc3RlZCBieSBJcmZhbiBTaGVyaWZmCiAgIAoyMDAzLTAyLTI1IDEzOjE0ICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgUmVtb3ZlIGxhc3QgcmVtYWluaW5nIHVzZSBvZiAnbmxpc3QnIHVuZGVyIEhQLVVYIDEwICYgMTEuCiAgIEFzIHBlciBwYXRjaCAjNjU2NzczIGZyb20gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyCiAgIAoyMDAzLTAyLTI1IDEzOjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIENoZWNraW5nIHRoZSBsZW5ndGggb2YgYSBzdHJpbmcgYnVmZmVyIG9uY2UgaXMgc3VmZmljaWVudC4KICAgVXNpbmcgJ3N0cm5uY3B5JyBbc2ljXSB0byBjaGVjayB0aGlzIGxlbmd0aCB0d2ljZSBpcyB1bm5lY2Vzc2FyeS4uLgogICAKMjAwMy0wMi0yNSAxMzoxMiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICAtIE1lc3Mgd2l0aCBvdXRwdXQgb2YgZG94eWdlbiB0byBhZGQgc2YgbG9nb3MsIGV0YywgdG8gdGhlIGJvdHRvbSBvZiB0aGUKICAgICBnZW5lcmF0ZWQgaHRtbCBmaWxlcy4KICAgLSBBcHBseSBQZXRlciBCcmVpdGVubG9obmVyJ3MgbmV0LXNubXAtY29uZmlnIHBhdGNoICgjNjkyMzczKQogICAKMjAwMy0wMi0yNSAxMzoxMSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIFBhdGNoICM2NTUxNTQgZnJvbSBKb2VsIFJvc2RhaGw6IG1vcmUgcHJvcGVyIGRlbW9uaXphdGlvbjoKICAgICAtIGNsb3NlIHN0ZGluL3N0ZG91dC9zdGRlcnIgaWYgYXBwcm9wcmlhdGUuCiAgICAgLSBkb3VibGUgZm9yay4KICAgICAtIGNoZGlyIC8gICBbZXhjZXB0IHVuZGVyIHdpbmRvd3NdCiAgIAoyMDAzLTAyLTI1IDEzOjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIFBhdGNoICM2NjIxNjkgZnJvbSBKYW4gV2lsbGVtIEx1aXRlbjogZGlza2lvIHN1cHBvcnQgZm9yIERhcndpbgogICAKMjAwMy0wMi0yNSAxMzoxMCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC90LzogYnVsa3dhbGsudCwgc2V0LnQ6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIEZpeCB0ZXN0cyBmb3IgYnVsa3dhbGsgKGR1cGxpY2F0ZSBoZWFkZXIpIGFuZCBzZXQgKGludmFsaWQgT0lEIGNvbnN0YW50KQogICAKMjAwMy0wMi0yNSAxMzowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBBY2NvbW1vZGF0ZSBhIGZ1c3N5IElSSVggZW52aXJvbm1lbnQsIHdoaWNoIGlzIHBpY2t5IGFib3V0IDx1bmlzdGQuaD4KICAgU2VlIGJ1ZyAjNjY3NzI2CiAgIAoyMDAzLTAyLTI1IDEzOjA0ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgQnJ1Y2UgU2hhdyBwb2ludGVkIG91dCBhIGNvbW1lbnQgdHlwbwogICAKMjAwMy0wMi0yNSAxMzowMiAgcnN0b3J5CgogICAqIHBlcmwvOiBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgU05NUC9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIGZpeCBteSBkZWNsYXJhdGlvbnMgYXMgcG9pbnRlZCBvdXQgYnkgQW5kcmV3IFBhZ2UKICAgCjIwMDMtMDItMjUgMTM6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBBbiBhZGRpdGlvbmFsIGNoYW5nZSB0byBzdXBwb3J0ICd0JyBoaW50cwogICAKMjAwMy0wMi0yNSAxMzowMCAgcnN0b3J5CgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIC1kb2N1bWVudCBwYXRjaCAjNjc0MjE4OiByZW9wZW4gbG9nIGZpbGVzIG9uIEhVUC4KICAgLUFwcGx5IFBldGVyIEJyZWl0ZW5sb2huZXIncyBkb2N1bWVudGF0aW9uIGNoYW5nZXMKICAgIChwYXRjaGVzICM2OTIzODEsICA2OTIzODIgYW5kICA2OTIzODgpCiAgIAoyMDAzLTAyLTI1IDEyOjU5ICByc3RvcnkKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIC1kb2N1bWVudCBtb25pdG9yIC10IGZvciB0aHJlc2hvbGQgbW9uaXRvcmluZwogICAtQXBwbHkgUGV0ZXIgQnJlaXRlbmxvaG5lcidzIGRvY3VtZW50YXRpb24gY2hhbmdlcwogICAgKHBhdGNoZXMgIzY5MjM4MSwgIDY5MjM4MiBhbmQgIDY5MjM4OCkKICAgCjIwMDMtMDItMjUgMTI6NTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIFBhdGNoIGZyb20gQ2hyaXN0b3BoZSB0byBzdXBwb3J0IG1vbml0b3IgLXQgZm9yIHRocmVzaG9sZCBtb25pdG9yaW5nCiAgIAoyMDAzLTAyLTI1IDEyOjU1ICByc3RvcnkKCiAgICogRkFROgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBDbGFyaWZ5IHRoZSBsb2NhbC1vbmx5IGFjY2VzcyBmb3Igbm9uLXN0YW5kYXJkIHBvcnQgQWdlbnRYIGNvbm5lY3Rpb25zCiAgIAoyMDAzLTAyLTI1IDEyOjU0ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgICAtICBjbG9zZSBhbmQgcmUtb3BlbiBsb2cgZmlsZSBvbiByZWNlaXZpbmcgYSBIVVAgKHBhdGNoIDY3NDIxOCwgc3VibWl0dGVkCiAgICAgICAgYnkgYW5vbnltb3VzKQogICAKMjAwMy0wMi0yNSAxMjo1MiAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDogQnJ1Y2UgU2hhdyBwb2ludGVkIG91dCBhIGNvbW1lbnQgdHlwbwogICAKMjAwMy0wMi0yNSAwOTowNCAgZHRzMTIKCiAgICogbWFuL3NubXBkLjguZGVmOgoKICAgQXBwbHkgUGV0ZXIgQnJlaXRlbmxvaG5lcidzIGNvbmZpZ3VyYXRpb24tcmVsYXRlZCBkb2N1bWVudGF0aW9uIGFuZCBpbnN0YWxsYXRpb24gY2hhbmdlcy4KICAgKHBhdGNoZXMgIzY5MjM3MiwgIDY5MjM3NywgIDY5MjM3OSBhbmQgNjkyMzg2KQogICAKMjAwMy0wMi0xMyAyMDowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBQYXRjaCAjNjU0MzI5OiBkb3VibGUgY2hlY2sgbGVuZ3RocyB3aGVuIGNvcHlpbmcKICAgCjIwMDMtMDItMTIgMDk6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuaDoKCiAgIHVwZGF0ZQogICAKMjAwMy0wMi0xMSAxMToxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jCjoKCiAgIHBhdGNoICM2Njc2OTQgKGFub24pIHRvIGFkZCBiYWNrIG5ld2xpbmVzIHRvIHBhc3MgY29kZQogICAKMjAwMy0wMi0wMyAxMDoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRnJvbSBSaWNoYXJkIExhaW5nOiBjaGFuZ2UgdmFsdWUgY2hlY2sgb2YgYSBzdHJpbmcgdG8gdXNlIGEgcHJvcGVyIGxlbmd0aC4KICAgCjIwMDMtMDEtMjQgMTA6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgcGF0Y2ggIzY3MjAyMSBmcm9tIEpvc2h1YSBHaWxlczogbGFyZ2Ugc2V0IHJlcXVlc3QgZml4ZXMKICAgCjIwMDMtMDEtMjAgMjM6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGFkZCBtaXNzaW5nIGJyYWNlCiAgIAoyMDAzLTAxLTIwIDIzOjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGFkZCBiYWNrIChhY2NpZGVudGFsbHkgZGVsZXRlZCkgY3JlYXRpb24gb2YgZ3ppcHBlZCB0YXJiYWxsCiAgIAoyMDAzLTAxLTIwIDIzOjA5ICByc3RvcnkKCiAgICogc25tcGxpYi90ZXN0X2JpbmFyeV9hcnJheS5jOgoKICAgYWRkIHN0cmluZyB0ZXN0IGNhc2UKICAgCjIwMDMtMDEtMjAgMjM6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZpeCBhcnJheV9xc29ydDsgZml4IGJpbmFyeSBzZWFyY2g7IGNvbid0IHJlY3Vyc2Ugb24gaW5zZXJ0LCBkZWwsIGV0YyBzaW5jZQogICB0aGUgSU5TRVJUL0RFTEVURSBtYWNyb3MgYWxyZWFkeSBoYW5kbGUgbXVsdGlwbGUgaW5kZXhlcwogICAKMjAwMy0wMS0yMCAyMjo1NCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG9mZmljaWFsIHBhdGNoIFsgNjY5NzA3IF0gNS4wLjc6IDE2LUJpdCBSZXF1ZXN0IElEcwogICAKMjAwMy0wMS0yMCAyMjo1MiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwKICAgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIGZpeCB0eXBvIGluIGxvZyBtZXNzYWdlOyBhZGQgbmV0c25tcF9jb21wYXJlX21lbQogICAKMjAwMy0wMS0yMCAyMjo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBjcmVhdGUgbWQ1c3VtcyBhZnRlciBjcmVhdGluZyBnemlwcGVkIHRhcmJhbGwKICAgCjIwMDMtMDEtMjAgMjI6NTEgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGFkZCBhbm90aGVyIGxldmVsIG9mIGRpcmVjdG9yaWVzIHRvIG1ha2UgZGVwZW5kLCBwZXIgZHRzIG9uIGNvZGVycwogICAodGhvdWdodCB0aGlzIHdhcyBpbiA1LjAuNywgYnV0IGFwcGFyZW50bHkgbm90ISkKICAgCjIwMDMtMDEtMTQgMDg6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmMsIGRveHlnZW4uY29uZiwgYWdlbnQvYWdlbnRfaGFuZGxlci5jCiwgZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGRveHlnZW4gY2hhbmdlcwogICAKMjAwMy0wMS0xMyAyMTo0OSAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9oYW5kbGVyLjM6CgogICB1cGRhdGUgZm9yIDUuMC43CiAgIAoyMDAzLTAxLTEzIDIwOjMwICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHJlY29nbml6ZSBuZXcgJ3QnIGNvZGUgaW4gZGlzcGxheSBoaW50cwogICAKMjAwMy0wMS0xMyAyMDowNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHBhdGNoIGZvciBtZW1vcnkgbGVha3Mgc2VudCB0byBjb2RlcnMgYnkgSmF5IFBhcmxhcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC42IC0+IFY1LjAuNwoKMjAwMy0wMS0xMSAwMToxNSAgcnN0b3J5CgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgY29uZmlndXJlLXN1bW1hcnkKICAgCjIwMDMtMDEtMTEgMDE6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAzLTAxLTExIDAxOjA4ICByc3RvcnkKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSB2YXJpYXRpb25zIG9mIGNoYW5nZWxvZy5hZGQKICAgCjIwMDMtMDEtMTAgMjA6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hcGkuYzoKCiAgIGRveHlnZW4gb3V0cHV0IHRhZ3MgdG8gcHV0IHRoZSByZWNlbnRseSBkZWZpbmVkIGZ1bmN0aW9ucyBpbnRvIGdyb3Vwcy4KICAgCjIwMDMtMDEtMTAgMjA6MDkgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBuZXRzbm1wX2FnZW50LjMsCiAgIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfZGVidWcuMywKICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF90YWJsZS4zCiwgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG94eWdlbiB1cGRhdGVzCiAgIAoyMDAzLTAxLTEwIDE3OjM4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG9wcHMKICAgCjIwMDMtMDEtMTAgMTc6MjkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcmVtb3ZlIGRvdWJsZSBjaGVja2luZyBvdXRwdXQKICAgCjIwMDMtMDEtMTAgMTQ6MzMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldDoKCiAgIGZpeCBwb3NpdGlvbmFsIGFyZ3VtZW50cwogICAKMjAwMy0wMS0xMCAwOTowNCAgZHRzMTIKCiAgICogRkFROgoKICAgUmVmZXJlbmNlIEJydWNlIFNoYXcncyBkaXNjdXNzaW9uIG9mIHRoZSBwZXJsIGNvbXBpbGF0aW9uIHByb2JsZW1zCiAgIChzZWUgUkVBRE1FLnNvbGFyaXMpCiAgIAoyMDAzLTAxLTEwIDA4OjMxICBkdHMxMgoKICAgKiBGQVE6CgogICBNZW50aW9uIEFnZW50WCB1bmRlciB3aW5kb3dzLCBhbmQgYmVlZiB1cCB0aGUgcGVybCBzdHVmZiBhIGJpdC4KICAgQWRkIGEgbWlzc2luZyBlbnRyeSBpbiB0aGUgY29udGVudHMgbGlzdC4KICAgKFRoaXMgbWF5IHByb3ZlIHRvbyBsYXRlIGZvciA1LjAuOCwgYnV0IGF0IGxlYXN0IGl0J2xsIGJlIHJlYWR5IGZvciBuZXh0IHRpbWUhKQogICAKMjAwMy0wMS0wOSAxODo0MSAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgbWFrZSBkb2MgdXBkYXRlLgogICAKMjAwMy0wMS0wOSAxODozOCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF90YWJsZS4zCiwgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgbWFrZSBkb2MgdXBkYXRlLgogICAKMjAwMy0wMS0wOSAxODozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbW9kZV9lbmRfY2FsbC5oOgoKICAgZW5kLW9mLW1vZGUgaGVscGVyIHRvIGNhbGwgbW9yZSBoYW5kbGVycyBhZnRlciBwcm9jZXNzaW5nIHRoZSBtYWluCiAgIGxpbmUuICBGdW5jdGlvbmFsbHkgYWxsb3dzIHBhcmFsbGVsIGhhbmRsZXIgdHJlZXMgYW5kIGNhbGxiYWNrcyBhZnRlcgogICBhIHBhcnRpY3VsYXIgbW9kZSBpcyBjb21wbGV0ZWQgKHVzZWZ1bCBmb3IgdGhpbmdzIHJlZ2lzdGVyZWQgdW5kZXIgYQogICBzZXJpYWxpemUgaGFuZGxlciB3aGVuIHlvdSBkb24ndCBrbm93IHdoZW4gdGhlIG1vZGUgaXMgb3ZlcikuCiAgICAgIChub3QgdXNlZCBhbnl3aGVyZSBpbiBwcm9kdWN0aW9uIGNvZGUgeWV0LikuCiAgIAoyMDAzLTAxLTA5IDExOjU1ICBkdHMxMgoKICAgKiBGQVE6CgogICBNZW50aW9uIHRoZSBwZXJsIHNoYXJlZC9zdGF0aWMgbGlicmFyeSBwcm9ibGVtLAogICB0aGUgdW5yZXNwb25zaXZlIGFnZW50IHByb2JsZW0gKGFuZCBmaXgpLCBhbmQKICAgZGlzY2xhaW0gYWxsIGtub3dsZWRnZSBvZiBEYXZpZCBUb3duJ3MgTmV0OjpTTk1QIG1vZHVsZSwKICAgCjIwMDMtMDEtMDkgMTA6MjcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDE2MHNubXB2MmNidWxrZ2V0LCBUMDIyMHNubXB2M2J1bGtnZXQKOgoKICAgR2V0QnVsayB0ZXN0aW5nIHN1cHBsaWVkIGJ5IFhpYW9mZW5nIExpbmcKICAgCjIwMDMtMDEtMDkgMTA6MjYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBBZGQgLXggZmxhZyBmb3IgY2FsbGluZyBzdWJ0ZXN0cyB3aXRoICJzaCAteCIuCiAgIEZpeCBudW1iZXIgY291bnRpbmcgZm9yIGludGVyYWN0aXZlIG91dHB1dC4KICAgCjIwMDMtMDEtMDcgMTg6NDkgIGhhcmRha2VyCgogICAqIENPUFlJTkcgKFY0LTItcGF0Y2hlcy44KSwgQ09QWUlORzoKCiAgIHllYXIgdXBkYXRlCiAgIAoyMDAzLTAxLTA3IDEzOjE4ICBoYXJkYWtlcgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy41OCksIEZBUToKCiAgIGlyYyBzZXJ2ZXIgbmFtZSBjaGFuZ2UKICAgCjIwMDMtMDEtMDcgMTE6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBidWcgIzY2MzYyOCBhbmQgcGF0Y2g6IGZpeCBpcCBhZGRyZXNzIGluZGV4IHBhcnNpbmcgZnJvbSBPSURzCiAgIAoyMDAzLTAxLTA3IDA0OjUzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBSZW1vdmUgcmVkdW5kYW50IGNvZGUgdG8gZnJlZSAnY2FsbGJhY2tfZGF0YV9rZWVwJyBkYXRhLgogICBUaGlzIGJyYW5jaCB3b3VsZCBuZXZlciBiZSBpbnZva2VkLCBhbmQgaXMgaW4gdGhlIHdyb25nCiAgIHBsYWNlIGFueXdheS4gIFBhdGNoIHN1cHBsaWVkIGJ5IEpheSBQYXJsYXIKICAgCjIwMDMtMDEtMDYgMTE6MTYgIG5iYQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgU29sYXJpcyA5IGhlYWRlcgogICAKMjAwMy0wMS0wNSAxODoxNCAgbmJhCgogICAqIHdpbjMyL3dpbjMyLm9wdDoKCiAgIE1ha2UgaXQgY29tcGlsZSB3aXRoIFZDKysKICAgCjIwMDMtMDEtMDUgMTc6MjggIG5iYQoKICAgKiB3aW4zMi86IGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsIHdpbjMyLm9wdAosIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgTWFrZSBpdCBjb21waWxlIHdpdGggVkMrKwogICAKMjAwMy0wMS0wNSAxNTo0NSAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIFNOTVAtRlJBTUVXT1JLLU1JQi50eHQsCiAgIFNOTVAtTVBELU1JQi50eHQsIFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsCiAgIFNOTVAtUFJPWFktTUlCLnR4dCwgU05NUC1UQVJHRVQtTUlCLnR4dCwKICAgU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQsIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dAosIFNOTVB2Mi1NSUIudHh0LCBTTk1QdjItVE0udHh0LCByZmNsaXN0OgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgUkZDIHZlcnNpb25zCiAgIAoyMDAzLTAxLTAzIDE1OjUwICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBkb24ndCBjYWxsIEFDX0RJU0FCTEVfU0hBUkVELCBhcyBzZXRzIHRoZSBkZWZhdWx0IHRvIGRpc2FibGVkIChpdCdzIHZlcnkKICAgcHJlc2VuY2UgaW4gY29uZmlndXJlLmluIGdlbmVyYXRlcyBhIGNvbmZpZ3VyZSB3aXRoIHNoYXJlZCBkaXNhYmxlZCwgZXZlbgogICBpZiBpdCB3YXMgaW4gYW4gaWYgYmxvY2s7IGZvciBkZXZlbG9wZXIgZGVmYXVsdCwgc2V0IGVuYWJsZV9zaGFyZWQgZGlyZWN0bHkKICAgdW5sZXNzIGl0IHdhcyBwcmV2aW91c2x5IHNldDsgdGVzdCB0aGF0IGVuYWJsZV9zaGFyZWQ9eWVzIGZvciBlbWJlZGRlZC1wZXJsCiAgIAoyMDAzLTAxLTAzIDA4OjAyICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy41NyksIEZBUToKCiAgIE1lbnRpb24gdGhlIFN0cmF0dXMgVk9TIHBvcnQuIChUaGFua3MgdG8gQnJhbmRvbiBIYWxsKQogICAKMjAwMy0wMS0wMiAxODowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIHBhcmVucyBhcm91bmQgeCBpbiBtYWNybyBpbiBjYXNlIHggaXMgbXVsdGlwbGUgQyB0b2tlbnMKICAgCjIwMDItMTItMjIgMTI6MzIgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIEZBUSwKICAgUkVBRE1FLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNy5wcmUyICkKICAgCjIwMDItMTItMjIgMTI6MzEgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC43LnByZTIKICAgCjIwMDItMTItMjIgMTI6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTEyLTIwIDA3OjU4ICBuYmEKCiAgICogTWFrZWZpbGUuaW46CgogICBjbGVhbiBhd2F5IG5ldC1zbm1wLWNvbmZpZyBvbiBtYWtlIGNsZWFuCiAgIAoyMDAyLTEyLTIwIDA3OjU3ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYwo6CgogICBzdGFzaCB0aGUgb2lkX3N0YXNoIC4uLgogICAKMjAwMi0xMi0yMCAwNDo0OSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEEgcGF0Y2ggZnJvbSBWNCB0aGF0IGRpZG4ndCBtYWtlIGl0IC4uLiBhbGxvdyBsaXN0IG9mIG51bWVyaWMgYml0cyBzZXR0aW5nIEJJVFMKICAgCjIwMDItMTItMjAgMDI6NTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYwo6CgogICBhZGQgYSBnbG9iYWwgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIHJlZ2lzdGVyaW5nIGRpcmVjdGx5IHZpYSBhIGNhbGxiYWNrLgogICAKMjAwMi0xMi0yMCAwMjozNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaDoKCiAgIGFkZCBjYWxsYmFjay5oCiAgIAoyMDAyLTEyLTIwIDAyOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBmaXggcGVyc2lzdGVudCBzdG9yYWdlIGZpbGUgcmVuYW1pbmcuICAoc25wcmludGYgY2hhbmdlIG1pc3Rha2UpCiAgIAoyMDAyLTEyLTIwIDAyOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgc29tZSBuZXcgcm91dGluZXMgZm9yIHNhdmluZyBvaWQgc3Rhc2ggZGF0YSB0byBwZXJzaXN0ZW50IHN0b3JhZ2UuCiAgICAgKG5vdCB1c2VkIGFueXdoZXJlIGluIGN1cnJlbnQgcHJvZHVjdGlvbiBjb2RlKQogICAKMjAwMi0xMi0xOSAxNzo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAtIHdhdGNoIGZvciB1bmRlZnMgcGFzc2VkIGluIGFzIGEgdmFsdWUgdG8gYSBTRVQgY2xhdXNlLgogICAtIGNoYW5nZSBCSVRTIHRvIGEgT2N0ZXQgU3RyaW5nIGFzIGl0IHNob3VsZCBiZS4KICAgICAtIG9uIGEgc2lkZSBub3RlLCBkbyB5b3Uga25vdyB0aGF0IHRoZSBOZXQtU05NUCBwYXJzZXIgZG9lc24ndAogICAgICAgZGlzdGluZ3Vpc2ggYmV0d2VlbiBCSVRTIGFuZCBCSVQgU1RSSU5HIGluIGl0J3MgbGlzdCBvZiB0eXBlcz8gIEkKICAgICAgIGRvbid0IHRoaW5rIGl0J3MgcG9zc2libGUgdG8gdXNlIGJvdGggdHlwZXMgaW4gdGhlIGNvZGUgdG9kYXkKICAgICAgICh3aGljaCBpcyBmaW5lLCBzaW5jZSBCSVQgU1RSSU5HIGlzIG5vdCB1c2VkIGluIFNOTVB2MiBhbmQgYmV5b25kKS4KICAgCjIwMDItMTItMTkgMTc6NDkgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIHByaW50IGEgd2FybmluZyB3aGVuIHlvdSBjYW4ndCBwYXJzZSBhbiBPSUQgKGVyciwgbm90IGlkZWFsKQogICAKMjAwMi0xMi0xOSAxNzo0OCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gbWlzYyBidWcgZml4ZXMuCiAgIC0gc2tpcCBTRVRpbmcgY29sdW1ucyB3aXRoIG5vIHZhbHVlIHBhc3NlZCBpbi4KICAgCjIwMDItMTItMTkgMTQ6NDMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGVzL2V4YW1wbGUuYywgaG9zdC9ocl9uZXR3b3JrLmMKLCBob3N0L2hyX3N3aW5zdC5jOgoKICAgQmVpbmcgYSBiaXQgcXVpY2ssIGVoLCBEYXZlIC4uLgogICAKMjAwMi0xMi0xOSAxMToxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jIChWNC0yLXBhdGNoZXMuMTIpLCBhdC5jOgoKICAgRW5zdXJlIHRoZSBpZm5hbWUgYnVmZmVyIGlzIGJpZyBlbm91Z2ggdG8gcmVhZCBpbiBhIGZ1bGwtbGVuZ3RoIG5hbWUuCiAgIChGcm9tIHRoZSBTVVNFICJhdWRpdCIgcGF0Y2gpCiAgIAoyMDAyLTEyLTE5IDExOjA1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wbGliL21pYi5jCiAgIChWNC0yLXBhdGNoZXMuWzI4LDksMywzLDMwXSksIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wbGliL21pYi5jOgoKICAgRGV0ZWN0IHdoZW4gbWVtb3J5IGFsbG9jYXRpb25zIGZhaWwsIGFuZCBkb24ndCBwbG91Z2ggb24gcmVnYXJkbGVzcy4KICAgKEJhc2VkIG9uIGNoYW5nZXMgd2l0aGluIHRoZSBTVVNFICJhdWRpdCIgcGF0Y2gpCiAgIAoyMDAyLTEyLTE5IDEwOjA3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi92YWNtLmM6CgogICBUaGUgR3JlYXQgU1VTRSAnc3ByaW50ZicgSHVudC4uLi4uCiAgIAoyMDAyLTEyLTE5IDA2OjAyICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICAgIC0gY29kZSB3aXRoIEJTRGk0CiAgIAoyMDAyLTEyLTE5IDA1OjUwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBjaGFuZ2UgYSBjb21tZW50IHRoYXQgZG9lc24ndCB0YWtlIGludG8gYWNjb3VudCB0aGUgdHJhbnNwb3J0IHN0dWZmCiAgICAgLSBmaXggc29tZSBwYXJ0aWN1bGFybHkgYmFkIGZvcm1hdHRpbmcgaW4gc25tcF9vcGVuX2V4CiAgIAoyMDAyLTEyLTE4IDEzOjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICByZW1vdmUgbWVtLWxlYWsgY29tbWVudC4gIE91dCBvZiBkYXRlIGFuZCB3YXMgZml4ZWQKICAgCjIwMDItMTItMTggMTM6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIGRlbGV0ZSBleHBlcmltZW50YWwgd2FybmluZyBhYm91dCBhZ2VudHgKICAgCjIwMDItMTItMTggMTM6NDAgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIGZpeCBidWcjNjU1NDg4OiBkZXNjcmlwdGlvbnMgb2Ygc3NJT1Jhd1JlY2VpdmVkIGFuZCBzc1Jhd0ludGVycnVwdHMgd2VyZSByZXZlcnNlZAogICAKMjAwMi0xMi0xOCAwODoxOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIHJlc3RhcnQgc3RkZXJyIGxvZ2dpbmcgb24gSFVQIChpZiAtTCB3YXMgZ2l2ZW4gb24gY29tbWFuZCBsaW5lKQogICAKMjAwMi0xMi0xNyAxOTozMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHJlbW92ZSAnOycgZnJvbSBkZWZpbmU7IGlmIHRhYmxlIGhhcyBhIHN0b3JhZ2UgdHlwZSwgY2hlY2sgdGhhdCBpdCdzIG5vdAogICByZWFkIG9ubHkgYmVmb3JlIGFsbG93aW5nIHNldHMKICAgCjIwMDItMTItMTcgMTk6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS1wZXJzaXN0ZW50LmNvbmY6CgogICBuZXZlciBtaW5kCiAgIAoyMDAyLTEyLTE3IDE5OjAyICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC90ZXN0LnBsOgoKICAgRG9uJ3QgY2hlY2sgZm9yIHByZWZpeGVzIGluIHRlc3QuICBUaGV5IGRvbid0IGV4aXN0LiAgSG93ZXZlciwgZG8gc2V0IFNOTVBDT05GUEFUSCBpbiB0ZXN0IGluaXRpYWxpemF0aW9uIHRvIGEgYm9ndXMgdmFsdWUKICAgCjIwMDItMTItMTcgMTg6NTggIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIHJlbW92ZSBkaXJlY3QgY2FsbCB0byBpbml0X3NubXAoKS4gIFRoaXMgaXMgYWxyZWFkeSBjYWxsZWQgYnkgdGhlIC5wbSBmaWxlCiAgIAoyMDAyLTEyLTE3IDEwOjIyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktcGVyc2lzdGVudC5jb25mOgoKICAgcGVyc2lzdGVuY2UgZm9yIGFycmF5LXRhYmxlcwogICAKMjAwMi0xMi0xNyAxMDowNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBhZGQgcmVhZF9jb25maWdfc3RvcmVfZGF0YV9wcmVmaXg7IGFkZCBBU05fVElNRVRJQ0tTIHcvQVNOX1VOU0lHTkVEIGNhc2VzCiAgIAoyMDAyLTEyLTE3IDA5OjQ0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBkb24ndCB1c2UgU09fUkVVU0VfQUREUiBzbyBhZ2VudCBwb3J0IGNhbid0IGJlIGhpamFja2VkCiAgIAoyMDAyLTEyLTE3IDA5OjQzICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgdXNlIGxvY2FsIHZhciBmb3IgYmFzZSBhZ2VudCBsaWJzOyByZW9yZGVyIGJhc2UgYWdlbnQgbGlicyBzbyBzdGF0aWMgbGlua2luZwogICB3b3JrcwogICAKMjAwMi0xMi0xNiAxODozMiAgbmJhCgogICAqIHNubXBsaWIvc2NhcGkuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5oOgoKICAgWWV0IGFub3RoZXIgY29tcGlsZXIgd2FybmluZyAuLi4KICAgCjIwMDItMTItMTYgMTc6NTAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIHJlbW92ZSBib2d1cyBjb21tZW50IHJlZmVyZW5jZSB0byB0YWJsZV9kYXRhc2V0IGhlbHBlci4KICAgCjIwMDItMTItMTYgMTc6NDIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwgYXBwcy9zbm1wdHJhcGQuYwosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmMKOgoKICAgU3ByZWFkIHNvbWUgbWFnaWMgZHVzdCB0byBxdWVsbCBjb21waWxlciB3YXJuaW5ncyAod2h5IGlzbid0IC0tZW5hYmxlLXNsaWVudC1saWJ0b29sIHRoZSBkZWZhdWx0IC4uLikKICAgCjIwMDItMTItMTYgMTE6NDQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIGZpeCBzbWFsbCBtZW1vcnkgbGVhayAocGVlcm5hbWUgaXMgY29waWVkIGJ5IHNubXBfb3Blbl9leCkKICAgCjIwMDItMTItMTYgMTE6MzEgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBmaXggc21hbGwgbWVtb3J5IGxlYWsKICAgCjIwMDItMTItMTYgMTE6MTkgIGpicG4KCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhawogICAKMjAwMi0xMi0xNiAxMDowMiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICByZW1vdmUgcmVkdW5kYW50IGluY2x1ZGUgKGNhdXNlZCBwcm9ibGVtcyBvbiBTdW4gNS43LCByZXBvcnRlZCBieSBqYnBuKQogICAKMjAwMi0xMi0xNiAwODoyMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNvbmZpZ3VyZSB3L291dCBkZXZlbG9wZXIKICAgCjIwMDItMTItMTYgMDg6MTggIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIERFVkZMQUdTPSIiIGlmIG5vdCBkZXZlbG9wZXIKICAgCjIwMDItMTItMTYgMDI6MzkgIG5iYQoKICAgKiBzbm1wbGliLzogb2lkX3N0YXNoLmMsIHNjYXBpLmMsIHNubXBBQUw1UFZDRG9tYWluLmMKLCBzbm1wSVBYRG9tYWluLmMsIHNubXBUQ1BJUHY2RG9tYWluLmMsCiAgIHNubXBVRFBJUHY2RG9tYWluLmM6CgogICBkbWFsbG9jIHN1cHBvcnQKICAgCjIwMDItMTItMTYgMDI6MzkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIFBvc3NpYmxlIGxlYWsgb2YgZmQgb24gZXJyb3IgcmV0dXJuCiAgIAoyMDAyLTEyLTE0IDEwOjIyICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC43LnByZTEgKQogICAKMjAwMi0xMi0xNCAxMDoyMSAgcnN0b3J5CgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjcucHJlMQogICAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjYgLT4gVjUuMC43cHJlMQoKMjAwMi0xMi0xNCAwOTo1OSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNoZWNrIGZvciBhZ2VudC9taWJncm91cDsgZml4IG1vZHVsZXMgZm9yIGNvbmZpZ19kaXN0CiAgIAoyMDAyLTEyLTE0IDA5OjU4ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9kZWJ1Zy4zLAogICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgIG5ldHNubXBfdG9kby4zOgoKICAgdXBkYXRlIGZvciA1LjAuNy5wcmUxCiAgIAoyMDAyLTEyLTE0IDA5OjU0ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgYnVtcCByZXYgdG8gNS4wLjcKICAgCjIwMDItMTItMTQgMDk6NDkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCAtbiB0byBncmVwIGZvciBDKysgY29tbWVudHMKICAgCjIwMDItMTItMTQgMDk6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0xMi0xNCAwOTo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgcmVtb3ZlIEMrKyBjb21tZW50cwogICAKMjAwMi0xMi0xNCAwOTozMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgYWRkIGNvbW1lbnRzIHRvIHNvbWUgc3RydWN0dXJlIG1lbWJlcnMKICAgCjIwMDItMTItMTQgMDk6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBlcnJvcnMgZHVyaW5nIGNvbW1pdCB1bmRvIHNob3VsZCBiZSB4eEZBSUxFRDsgdXNlIHNldF9yZXF1ZXN0X2Vycm9yIGluc3RlYWQgb2YKICAgc2V0X21vZGVfcmVxdWVzdF9lcnJvcjsgcmVtb3ZlIGluY29ycmVjdCBjb21tZW50OyBtb3JlIGRlYnVnZ2luZzsgY2hlY2sgZm9yCiAgIGFuZCBjYWxsIGxvd2VyIGhhbmRsZXJzCiAgIAoyMDAyLTEyLTE0IDA5OjI3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgYWx3YXlzIHByb2Nlc3MgbGF0ZXIgcGFzc2VzIG9mIGEgc2V0IHJlcXVlc3QKICAgCjIwMDItMTItMTMgMTY6MDYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgUXVlbGwgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMTItMTMgMTU6NDcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMKOgoKICAgUXVlbGwgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMTItMTMgMTU6NDAgIG5iYQoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBGaXggaW5jb21wbGV0ZSB6ZXJvaW5nIG9mIHNlY3VyaXR5IGRhdGEKICAgCjIwMDItMTItMTMgMTU6MzkgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBGaXggYSBwb3NzaWJsZSBmcmVlaW5nIG9mIGEgTlVMTCBwb2ludGVyCiAgIAoyMDAyLTEyLTEzIDE1OjM4ICBuYmEKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIFF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTEyLTEzIDExOjM4ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBDbGVhciB0aGUgJ3Byb2Nlc3NlZCcgZmxhZyBiZXR3ZWVuIHBhc3Nlcywgc28gdGhhdCBoYW5kbGVycwogICBjYW4gY29ycmVjdGx5IGNsZWFuIHVwIGFmdGVyIGVycm9ycyBoYXZlIGJlZW4gZGV0ZWN0ZWQuCiAgIAoyMDAyLTEyLTEzIDExOjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBhZGQgYXNzZXIgdG8gdHJ5IGFuZCBjYXRoIGludGVybWl0dGVudCBjcmFzaCBpJ3ZlIGJlZW4gc2VlaW5nCiAgIAoyMDAyLTEyLTEzIDExOjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgbG9nIHVua25vd24gYWdlbnR4IG9wZXJhdGlvbgogICAKMjAwMi0xMi0xMyAxMDoxMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGlmIG5vIHJvdyBjcmVhdGUgY2FsbGJhY2sgb24gc2V0LCB1c2UgTk9UV1JJVEFCTEUgaW5zdGVhZCBvZiBOT1NVQ0hJTlNUQU5DRQogICAKMjAwMi0xMi0xMyAxMDowNCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jOgoKICAgZml4IGN1dC1uLXBhc3RlIHNvIGRlbGVnYXRlZCBmbGFnIGRpc3BsYXllZCBwcm9wZXJseQogICAKMjAwMi0xMi0xMyAxMDowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgbG9nIHRleHQgKEFQUHxMSUJ8VE9LKSBpbnN0ZWFkIG9mIHN0b3JlIGlkIGluIGRlYnVnIG1zZ3MKICAgCjIwMDItMTItMTMgMDk6NTMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgLS13aXRoLWxpYndyYXAKICAgCjIwMDItMTItMTMgMDk6NDkgIHJzdG9yeQoKICAgKiBGQVE6CgogICBncmFtbWFyL2luZGVudGlvbiB0d2VhayArIG1lbnRpb24gc3RyaXAgZm9yIG1lbW9yeSBmb290cHJpbnQgcXVlc3Rpb24KICAgCjIwMDItMTItMTMgMDk6MzIgIGR0czEyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIFJlbW92ZSBleHBsaWNpdCBtZW50aW9uIG9mIFNOTVAgbW9kdWxlIGRvY3VtZW50YXRpb24uCiAgIFRoaXMgc2V0dGluZyBkb2Vzbid0IHNlZW0gdG8gYmUgbmVjZXNzYXJ5LCBhbmQgd2l0aG91dCBpdCwKICAgdGhlIG1hbiBwYWdlIGlzIGluc3RhbGxlZCBhdXRvbWF0aWNhbGx5LgogICAKMjAwMi0xMi0xMyAwNzo0NyAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIG1ha2UgLVMgZG8gdGhlIHNhbWUgYXMgc25tcGQgLVMgKHNldCB0aGUgc3lzbG9nIGZhY2lsaXR5KQogICAgIC0gbWFrZSAtbCBwcmludCBhIHdhcm5pbmcgc2F5aW5nIHRoYXQgaXQgaXMgZGVwcmVjYXRlZCBhbmQgLVMgc2hvdWxkCiAgICAgICBiZSB1c2VkIGluc3RlYWQKICAgCjIwMDItMTItMTMgMDc6MTQgIGpicG4KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGluY3JlYXNlIHdpZHRoIG9mIHRva2VuIGZpZWxkIHRvIGltcHJvdmUgbGVnaWJpbGl0eSBvZgogICAgICAgY29uZmlndXJhdGlvbiBkaXJlY3RpdmUgaGVscCBvdXRwdXQKICAgCjIwMDItMTItMTIgMTc6NDYgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHVua25vd24gLU8gb3B0aW9ucwogICAKMjAwMi0xMi0xMiAxNTo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgRml4IHNvbWUgc2l6ZV90IHRoYXQgcmVhbGx5IHNob3VsZCBiZSBpbnQKICAgCjIwMDItMTItMTIgMTQ6MTggIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIG1hbi9zbm1wLmNvbmYuNS5kZWYsCiAgIG1hbi9zbm1wY21kLjEuZGVmLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgQSBsb25nIG92ZXJkdWUgcGF0Y2ggKCM0MTUyNTIpIGZyb20gUm9iZXJ0IEhhc3RpbmdzIHRoYXQgaW1wbGVtZW50cwogICByZXZlcnNlIERJU1BMQVktSElOVCBwcm9jZXNzaW5nLCBpLmUuIGl0IGFsbG93cyB5b3UgdG8gaW5wdXQgZGF0YQogICBmb3JtYXR0ZWQgbGlrZSB0aGUgRElTUExBWS1ISU5UIHByZXNjcmliZXMuIEVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0CiAgIGNhbiBiZSBkaXNhYmxlZCB3aXRoIHRoZSAtSWggb3B0aW9uIG9yIG5vRGlzcGxheUhpbnQgaW4gc25tcC5jb25mCiAgIAoyMDAyLTEyLTEyIDEzOjU2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBwYXJzZSBvaWRzIGluIHZpZXcgc3RhdGVtZW50cyB0aGUgc2FtZSB3YXkgdGhlIGFwcHMgZG8gaXQgKGNvbnNpc3RlbmN5LCBoZSBzYWlkKQogICAKMjAwMi0xMi0xMiAxMzozNSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIEFkZCBhIGdldFJvb3RPSUQgZnVuY3Rpb24gdG8gdGhlIHJlZ2luZm8gcG9pbnRlciBwYXNzZWQgaW50byBoYW5kbGVycy4KICAgCjIwMDItMTItMTIgMTM6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBjaGFuZ2UgY3JlYXRlIGFuZCBkdXBsaWNhdGUgcm93IHRvIHJldHVybiBzcGVjaWZpYyBjb250ZXh0IGluc3RlYWQgb2YgZ2VuZXJpYwogICBuZXRzbm1wX2luZGV4OyBjYXRjaCBlcnJvciBmcm9tIHBhcnNlX29pZF9pbmRleGVzIG9uIHJvdyBjcmVhdGlvbgogICAKMjAwMi0xMi0xMiAxMzozNCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvbWliLnQ6CgogICBQcmludCBlcnJvcnMgdG8gU1RERVJSIGluc3RlYWQuCiAgICAgKGFjdHVhbGx5IGRvbid0IGJlY2F1c2UgdGhlc2Ugc3RhdGVtZW50cyBhcmUgY29tbWVudGVkIG91dCBpbiB0aGUKICAgICBmaXJzdCBwbGFjZSkKICAgCjIwMDItMTItMTIgMTM6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBSZXZlcnNlIHRoZSBjb250ZXh0IG9mIGEgY29udGV4dCBpZiBzdGF0ZW1lbnQgc28gaWYgbm90IHRoZSBjb250ZXh0CiAgIHRoZW4gZG9uJ3QgdXNlIHRoZSBjb250ZXh0IGluIHRoZSBnaXZlbiBjb250ZXh0LgogICAKMjAwMi0xMi0xMiAxMjo1NiAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIGRyb3AgbG9uZy1kZXByZWNhdGVkIC1xIGFuZCAtUyBvcHRpb25zCiAgICAgLSBtaW5vciBmb3JtYXR0aW5nIGZpeGVzCiAgIAoyMDAyLTEyLTEyIDEyOjM1ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgbWVzc2FnZSBpbiB1c2FnZQogICAKMjAwMi0xMi0xMiAxMTozNyAgZHRzMTIKCiAgICogbWFuL3NubXBkLjEuZGVmLCBhZ2VudC9zbm1wZC5jOgoKICAgSW1wbGVtZW50IGEgY29tbWFuZC1saW5lIG9wdGlvbiAoLVMpIHRvIHNldCB0aGUgZmFjaWxpdHkgdG8gdXNlIHdoZW4KICAgbG9nZ2luZyB2aWEgc3lzbG9nLiAgIEJhc2VkIG9uIGFuIGlkZWEgYnkgSm9lbCBSb3NkYWhsIChQYXRjaCAjNjI3NzAxKQogICBOb3RlIHRoYXQgLWwgYW5kIC1MIGFyZSBhbHJlYWR5IHRha2VuOi0oCiAgIAogICBUb0RvOgogICAgIFByb3ZpZGUgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzIGZvciBib3RoIHRoaXMsIGFuZCB0aGUgc3lzbG9nIHRva2VuICgnc25tcGQnKS4KICAgCjIwMDItMTItMTIgMTE6MTggIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKOgoKICAgU3VwcG9ydCBzZXR0aW5nIG9mIHN5c0Rlc2NyIGFuZCBzeXNPYmplY3RJRCB2aWEgc25tcGQuY29uZgogICBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMgKHRob3VnaCBub3QgdmlhIFNOTVAgU0VUIHJlcWVzdHMpLgogICBQYXRjaGVzIHN1cHBsaWVkIGJ5IEpvZWwgUm9zZGFobCAoIzYyNzcwMiBhbmQgIzYyODAxMSkKICAgCjIwMDItMTItMTIgMTA6NTggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiBhbGxfaGVscGVycy5jLCB0YWJsZS5jOgoKICAgU3VwcHJlc3Mgc29tZSBjb21waWxlciB3YXJuaW5ncy4KICAgQmFzZWQgb24gcGF0Y2ggc3VwcGxpZWQgYnkgQ2hyaXMgSm9obnMgKCM2NDQwNDEpCiAgIAoyMDAyLTEyLTEyIDEwOjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9zb2xhcmlzMi5jIChWNC0yLXBhdGNoZXMuNiksCiAgIG1lbW9yeV9zb2xhcmlzMi5jOgoKICAgVXNlICdzeXNjb25mJyB0byByZXBvcnQgb24gU29sYXJpcyBtZW1vcnkgdXNhZ2UuCiAgIEJhc2VkIG9uIHBhdGNoIHN1cHBsaWVkIGJ5IEJlbiBTdGVybiAoIzY1MTE4MikKICAgCjIwMDItMTItMTIgMTA6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIEJhc2ljIHN1cHBvcnQgZm9yIG11bHRpcGxlIEFnZW50WCBzb2NrZXRzIChvbiB0aGUgbWFzdGVyIHNpZGUgYXQgbGVhc3QpLgogICBTZWUgRmVhdHVyZSBSZXF1ZXN0ICM2MzI1NTYKICAgCjIwMDItMTItMTIgMDg6NTcgIHJzdG9yeQoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgY3JlYXRlIHZlcnNpb24gdGFnIGZyb20gdmVyc2lvbiBzbyBjdnMgZXhwb3J0IHdvcmtzOyBmaXggUkVMOyBhZGQgdGFyLmd6CiAgIG9mIHNvdXJjZSBhcyBkZXBlbmRlbmN5IGZvciBycG1maWxlcwogICAKMjAwMi0xMi0xMiAwODowNCAgbmJhCgogICAqIHNubXBsaWIvOiBkYXRhX2xpc3QuYywgc25tcENhbGxiYWNrRG9tYWluLmMsCiAgIHNubXBUQ1BEb21haW4uYywgc25tcFVEUERvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5jCiwgc25tcF9lbnVtLmMsIHNubXBfc2VjbW9kLmMsIHNubXBfdHJhbnNwb3J0LmMKOgoKICAgZG1hbGxvYyBzdXBwb3J0CiAgIAoyMDAyLTEyLTEyIDA3OjE4ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRG9jdW1lbnQgdGhlIC1PVSBvcHRpb24sIGFuZCBhbHBoYWJldGlzZSB0aGUgaGFuZGxpbmcgb2Ygb3B0aW9ucy4KICAgCjIwMDItMTItMTIgMDY6MjUgIGR0czEyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsICdzbm1waW5mb3JtJyBhcyBhIHJlbGF0aXZlIGxpbmssIHJhdGhlciB0aGFuIGFuIGFic29sdXRlIG9uZS4KICAgRml4IHByb3ZpZGVkIGJ5IHRoZSBpbmRlZmF0aWdhYmxlIFN0ZWZhbiBSYWRtYW4gKEJ1ZyAjNjUyNTg3KQogICAKMjAwMi0xMi0xMiAwNTo1NiAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBRdW90ZSBjb25maWd1cmUgb3B0aW9ucyB3aGVuIGNvbnRydWN0aW5nIG5ldC1zbm1wLWNvbmZpZ3VyZSBhbmQgbmV0LXNubXAtY29uZmlndXJlLmgKICAgVGhpcyBhbGxvd3Mgb3B0aW9ucyBjb250YWluaW5nIHNwYWNlcywgZXRjLCB0byBiZSBoYW5kbGVkIGNvcnJlY3RseS4KICAgKFNlZSBGZWF0dXJlIFJlcXVlc3QgIzU0NzE1MikKICAgCjIwMDItMTItMTEgMTY6NTIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIFBhdGNoIGZvciBGcmVlQlNELiBUaGFua3MgdG8gSnVuIEt1cml5YW1hCiAgIAoyMDAyLTEyLTExIDEyOjE2ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9sb2dnaW5nLmMgKFY0LTItcGF0Y2hlcy40KSwgc25tcF9sb2dnaW5nLmM6CgogICBUcnkgZGlzYWJsaW5nIGxpbmUtYnVmZmVyaW5nIG9uIFdpbmRvd3Mgc3lzdGVtcyAoc2luY2UgaXQKICAgYXBwYXJlbnRseSBlbmFibGVzIGZ1bGwtYnVmZmVyaW5nIGluc3RlYWQpLiAgU2VlIEJ1ZyAjNTU4ODM3LgogICAKMjAwMi0xMi0xMSAxMToyNSAgZHRzMTIKCiAgICogcGVybC9TTk1QL3QvOiBhc3luYy50LCBnZXQudCwgZ2V0bmV4dC50LAogICBub3RpZnkudCwgc2V0LnQ6CgogICBFeHBsaWNpdGx5IHNldCBTTk1QIHZlcnNpb24gPSAxICh0aGUgb3JpZ2luYWwgZGVmYXVsdCBhcyBleHBlY3RlZCBieSB0aGUgdGVzdHMpCiAgIFRoaXMgc2hvdWxkIG5vdyBwYXNzIGFsbCB0ZXN0cyBhcGFydCBmcm9tIGNvbmYudCAjMwogICAKMjAwMi0xMi0xMSAwNjo0NiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0Lmg6CgogICBCZSBtb3JlIHNlbGVjdGl2ZSBpbiB1c2luZyB0aGUgNjQtYml0IHZlcnNpb24gb2Ygbmxpc3QuIChCdWcgIzYxMTY1NSkKICAgCjIwMDItMTItMTEgMDY6MjcgIGR0czEyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgTWVudGlvbiB0aGUgbm9uLWZ1bmN0aW9uYWxpdHkgb2Ygb25lIG9mIHRoZSBzdWdnZXN0ZWQgYXBwcm9hY2hlcy4KICAgKEJ1ZyAjNjE3MTE5KS4gICBSZXBvcnRlZCBieSBRdWFuYWggR2lic29uLU1vdW50CiAgIAoyMDAyLTEyLTExIDA2OjIwICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEVuc3VyZSB0aGF0IHRoZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgZXhpc3RzIGJlZm9yZSBpbnN0YWxsaW5nIHRoZQogICBlbWJlZGRlZCBwZXJsIHNjcmlwdC4gIChCdWcgIzYxNzg5MSkgRml4IHByb3ZpZGVkIGJ5IFN0ZWZhbiBSYWRtYW4uCiAgIAoyMDAyLTEyLTExIDA1OjU2ICBkdHMxMgoKICAgKiBSRUFETUUuc25tcHYzIChWNC0yLXBhdGNoZXMuNCksIFJFQURNRS5zbm1wdjM6CgogICBEb2N1bWVudCB0aGUgbG9jYXRpb24gYXNzdW1wdGlvbnMgYmVpbmcgbWFkZSBpbiB0aGlzIGRlc2NyaXB0aW9uLgogICAKMjAwMi0xMi0xMSAwNDo0NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jLAogICBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIFByb3ZpZGUgYSBtZWNoYW5pc20gZm9yIGZvcmNpbmcgc3RyaW5ncyB0byBiZSBkaXNwbGF5ZWQgaW4gZWl0aGVyCiAgIEFTQ0lJIG9yIEhleCBmb3JtYXQsIGJ5cGFzc2luZyB0aGUgImd1ZXNzIiBtZWNoYW5pc20gYXMgdG8gd2hpY2gKICAgaXMgbW9yZSBhcHByb3ByaWF0ZS4gICBTdWdnZXN0ZWQgYnkgTmljayBLYW5ha2Frb3JuLgogICAgIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IGFmZmVjdCBvYmplY3RzIHdpdGggYSBEaXNwbGF5LUhpbnQgaW4KICAgdGhlaXIgTUlCIGRlZmluaXRpb24uCiAgIAoyMDAyLTEyLTExIDA0OjMwICBkdHMxMgoKICAgKiBhZ2VudC9kc19hZ2VudC5oLCBhZ2VudC9zbm1wZC5jLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gKICAgKFY0LTItcGF0Y2hlcy5bMiwyNiw2XSksIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L3NubXBkLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwKICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgQ29tbWFuZC1saW5lIG9wdGlvbiB0byBjb250cm9sIHdoZXRoZXIgdG8gdW5saW5rIHRoZSBQSUQgZmlsZSBvciBub3QuCiAgIE5lY2Vzc2FyeSBmb3IgY29ycmVjdCB0ZXN0IG9wZXJhdGlvbi4KICAgCjIwMDItMTItMTEgMDQ6MjEgIGR0czEyCgogICAqIHBlcmwvT0lEL3Rlc3QucGw6CgogICBUaGUgbGF0ZXN0IGxpYnJhcnkgZGVmYXVsdHMgdG8gTU9EVUxFOjpuYW1lIHN0eWxlIG91dHB1dCwKICAgc28gYWRqdXN0IHRoZSBleHBlY3RlZCBvdXRwdXQgY2hlY2tzIGFjY29yZGluZ2x5LgogICBBbHNvLCB0aGVyZSBhcmUgYWN0dWFsbHkgMzYgdGVzdHMsIG5vdCAzNSEKICAgCjIwMDItMTItMTEgMDQ6MTcgIGR0czEyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIEluaXRpYWxpc2UgdGhlIFNOTVAgbGlicmFyaWVzLCB0byBzZXQgdXAgdGhlIE9JRCB0cmVlLgogICBBZGRyZXNzZXMgYnVncyAjNjM4MDI0IGFuZCAjNjI3NjQzCiAgICAgW1FuOiBEbyB3ZSBuZWVkIHRvIHN1cHBseSBhbiAnYXBwbmFtZScgKGMuZCB0aGUgU05NUCBtb2R1bGUpID9dCiAgIAoyMDAyLTEyLTEwIDE5OjI5ICBuYmEKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmM6CgogICBBbGxvdyBydW50aW1lIGNvbmZpZ3VyYXRpb24gb2YgcGVyc2lzdGVudCBkaXJlY3RvcnkKICAgCjIwMDItMTItMTAgMTk6MjQgIG5iYQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBSZXBvcnQgZXJyb3JzIGhhbmRsaW5nIHBlcnNpc3RlbnQgc3RvcmFnZSBmaWxlcwogICAKMjAwMi0xMi0xMCAxOToyMyAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBQYXNzIHVwIGVycm9yIG9uIGRpcmVjdG9yeSBjcmVhdGlvbgogICAKMjAwMi0xMi0xMCAxNzoyNyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBCZXR0ZXIgcmVzcGVjdCBmb3IgdGhlIG1heCB3aWR0aCBvcHRpb24gKHNubXB0cmFuc2xhdGUgLVRkKQogICAKMjAwMi0xMi0xMCAxNzoyNiAgbmJhCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCB0aGUgb2lkT3V0cHV0Rm9ybWF0IG9wdGlvbgogICAKMjAwMi0xMi0xMCAxNzoyNSAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDbGVhbiB1cC4gUmVtb3ZlIGNhbGxzIHRvIG9ic29sZXRlIGZ1bmN0aW9ucyBzbm1wX3NldF9xdWlja19wcmludCwKICAgc25tcF9nZXRfZHVtcF9wYWNrZXQsIHNubXBfZ2V0X3N1ZmZpeF9vbmx5LiBSZW1vdmUgbGFzdCB0cmFjZXMgb2YgdGhlCiAgIG5vbl9zZXF1ZW50aWFsIGJhY2t3YXJkcyBoYWNrLiBNYWtlIHN1cmUgaXQgd29ya3MgZm9yIGFsbCAtTyBvcHRpb25zLgogICAKMjAwMi0xMi0xMCAxMTo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMgKFY0LTItcGF0Y2hlcy4yNiksCiAgIGludGVyZmFjZXMuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBlbXB0eSBsaW5lcyBpbiAvcHJvYy9uZXQvZGV2ICAoQnVnICM2MjU0MjYpCiAgIAoyMDAyLTEyLTEwIDExOjQxICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcHYzLmMgKFY0LTItcGF0Y2hlcy41KSwgc25tcHYzLmM6CgogICBGcmVlIGRlc3RpbmF0aW9uIG1lbW9yeSBiZWZvcmUgY2xvbmluZyBTTk1QIEVuZ2luZSBJRC4KICAgRml4IHByb3ZpZGVkIGJ5IE1hcnRpbiBDYXJsc3Nvbi4gIChCdWcgIzgzNTQ4MSkKICAgCjIwMDItMTItMTAgMTE6MDcgIGR0czEyCgogICAqIHBlcmwvOiBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgU05NUC9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgQWRkICIkQ29uZmlne2NjZmxhZ3N9IiB0byBDQ0ZMQUdTLiAgIChTZWUgYnVnICM2NDA4OTkpCiAgIAoyMDAyLTEyLTEwIDEwOjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlwQWRkci5jIChWNC0yLXBhdGNoZXMuOCksIGlwQWRkci5jOgoKICAgQWRkIHN1cHBvcnQgZm9yIExpbnV4IHZpcnR1YWwgaW50ZXJmYWNlcyBpbiB0aGUgaXBBZGRyZXNzVGFibGUuCiAgIChOb3RlIHRoaXMgZG9lcyAqbm90KiBpbmNsdWRlIHNlcGFyYXRlIHBlci12LWludGVyZmFjZSBzdGF0aXN0aWNzCiAgICBpbiB0aGUgaW50ZXJmYWNlcyB0YWJsZSkuCiAgIAogICBQYXRjaCBzdXBwbGllZCBieSBKZW5zIFNpdHRuZXIgKCM2MjEyNzQpCiAgIAoyMDAyLTEyLTEwIDA0OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBSZW1vdmUgYSBjb3VwbGUgb2YgZXh0cmFuZW91cyBeTSBjaGFyYWN0ZXJzLgogICAKMjAwMi0xMi0xMCAwMjozNiAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBXaGVuIHVzaW5nIC1PcXYgYW5kIHByaW50aW5nIGFuIGVtcHR5IHN0cmluZyB5b3UgY291bGQgZW5kIHVwIHdpdGgKICAgYSBOVUxMIHN0cmluZyBhbmQgbm90IGFuIGVtcHR5IHN0cmluZyBsZWFkaW5nIHRvIHNvbWUgdmVyeSBvYnNjdXJlCiAgIHByb2JsZW1zIGluIHNubXB0YWJsZSBhbmQgb3RoZXIgYXBwbGljYXRpb25zLgogICAKMjAwMi0xMi0wOSAxMToxMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgSGFuZGxlIG1pc3NpbmcgaW50ZWdlciB2YWx1ZXMgKHdoZXRoZXIgMzItIG9yIDY0LWJpdCEpLiAgIE9vcHMhCiAgIAoyMDAyLTEyLTA5IDEwOjEyICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjQtMi1wYXRjaGVzLjM4KSwgc25tcF9hcGkuYzoKCiAgIEhhbmRsZSBpbnRlZ2VyLWJhc2VkIHZhbHVlcyBjb3JyZWN0bHkgb24gYSA2NC1iaXQgcGxhdGZvcm0uCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IFRob21hcyBXZWJlciAoIzU2MTA3MSkKICAgCjIwMDItMTItMDkgMDk6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIFRha2Ugbm90ZSBvZiBzdWJhZ2VudC1yZXF1ZXN0ZWQgYnl0ZSBvcmRlcmluZyBpbiBzdWJzZXF1ZW50IGNvbW11bmljYXRpb25zLgogICBQYXRjaCBzdXBwbGllZCBieSBVcmJhbiAoIzYzMjI4NCkKICAgCjIwMDItMTItMDkgMDk6MzIgIGR0czEyCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjI1KSwgc25tcGQuYzoKCiAgIFJlbW92ZSB0aGUgUElEIGZpbGUgb24gYWdlbnQgc2h1dGRvd24uCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEpvZWwgUm9zZGFobCAoIzYyNzY5OSkKICAgCjIwMDItMTItMDkgMDk6MjUgIGR0czEyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBIYW5kbGUgJ3N0cnVjdCBzb2NrYWRkcicgdGhhdCBjb250YWluICdzYV9sZW4nIGZpZWxkcyBkaWZmZXJlbnRseQogICB0byB0aG9zZSB0aGF0IGRvbid0IChjLmYgaWZpbHRlcl9pb2N0bC5jIGluIEJJTkQgOS4yLjEgc291cmNlcykKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSm9lbCBSb3NkYWhsICgjNjI3Njk2KQogICAKMjAwMi0xMi0wOSAwNzoxMiAgZHRzMTIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBSZWNvZ25pc2UgQlNEaTQsIGFuZCB0d2VhayB0aGUgcmVjb2duaXRpb24gb2YgJ2Rsb3BlbicuCiAgIFBhdGNoZXMgc3VwcGxpZWQgYnkgSm9lbCBSb3NkYWhsLgogICAKMjAwMi0xMi0wOSAwNjoxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMKOgoKICAgUmVtb3ZlIHNvbWUgd2FybmluZ3MsIGFuZCB0cnkgdG8gY29wZSB3aXRoICdzeXNjdGwnIGZhaWx1cmVzLgogICBQYXRjaGVzIHN1cHBsaWVkIGJ5IENocmlzIEpvaG5zLgogICAKMjAwMi0xMi0wOSAwNDoyMCAgZHRzMTIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBNZW50aW9uIHRoZSBsaW1pdGF0aW9ucyBvbiAvdXNyL3VjYi9zZWQsCiAgIGFuZCBwb2ludCBwZW9wbGUgdG93YXJkcyAvdXNyL2Jpbi9zZWQgaW5zdGVhZC4KICAgCjIwMDItMTItMDcgMDg6NDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgSW5zZXJ0IG5ld2x5LWNyZWF0ZWQgcm93cyBpbnRvIHRoZSBwZXItcmVxdWVzdCBsaXN0cywgc28gdGhhdCBsb3dlcgogICBsZXZlbCBoYW5kbGVycyBjYW4gYWNjZXNzIHRoZW0uCiAgICAgW1FuOiBTaG91bGQgd2UgZG8gc29tZXRoaW5nIHNpbWlsYXIgd2l0aCB1cGRhdGVkIGxpc3RzIGFzIHdlbGw/XQogICAKMjAwMi0xMi0wNyAwODozNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBSZXBvcnQgYmFjayB0aGUgY29ycmVjdCBlcnJvciBmb3Igcm93cyB0aGF0IGNvdWxkbid0IGJlIGNyZWF0ZWQuCiAgIAoyMDAyLTEyLTA3IDA4OjMyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBmcmVlaW5nIGEgcm93IHRoYXQgbmV2ZXIgZ290IGNyZWF0ZWQgaW4gdGhlIGZpcnN0IHBsYWNlLgogICAKMjAwMi0xMi0wNiAxODowNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgU2tpcCBvbiBub24tb3BlbnNzbCBtYWNoaW5lcy4gIFRIaXMgc2hvdWxkIGJlIGNoYW5nZWQgdG8ganVzdCBub3QgdXNpbmcgZW5jcnlwdGlvbiBvbiB0aG9zZSBtYWNoaW5lcywgYnV0IEkgZG8gbm90IGhhdmUgdGhlIHRpbWUgYXQgdGhlIG1vbWVudAogICAKMjAwMi0xMi0wNiAxMzoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgcmVtb3ZlIHVjZERlbW9QdWJsaWMgZnJvbSAtLWVuYWJsZS1taW5pLWFnZW50CiAgIAoyMDAyLTEyLTA2IDEzOjAyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICByZW1vdmUgdWNkRGVtb1B1YmxpYyBmcm9tIC0tZW5hYmxlLW1pbmktYWdlbnQKICAgCjIwMDItMTItMDYgMTI6MDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRG9uJ3QgZGVsZXRlIHRoZSAib2xkIiAobm9uLWV4aXN0ZW50KSByb3csIHdoZW4gdGlkeWluZyB1cCBhZnRlcgogICBjcmVhdGluZyBhIG5ldyByb3cuCiAgIAoyMDAyLTEyLTA2IDExOjQwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFR3ZWFrIGhhbmRsaW5nIG9mIChpbnZhbGlkKSBSb3dTdGF0dXMgY3JlYXRpb24gcmVxdWVzdHMgaW4gYW4KICAgImF1dG9tYXRpYyBjcmVhdGlvbiIgdGFibGUuICAgVGhlc2Ugc2hvdWxkIHJldHVybiB3cm9uZ1ZhbHVlIG9yCiAgIGluY29uc2lzdGVudFZhbHVlLCByYXRoZXIgdGhhbiBub3RXcml0YWJsZS4KICAgCjIwMDItMTItMDUgMDU6NDcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgU3VwcG9ydCB1c2Ugb2YgUm93U3RhdHVzIG9iamVjdCB0byBjb250cm9sIGNyZWF0aW9uIG9mIG5ldyByb3dzCiAgIChpLmUuIHdoZW4gdGhlICdhbGxvd19jcmVhdGlvbicgZmxhZyBpcyBub3Qgc2V0KS4KICAgVGhpcyBzaG91bGQgZGVhbCB3aXRoIGV2ZXJ5dGhpbmcgZXhjZXB0IGRldGVybWluaW5nIHdoZXRoZXIgYQogICByb3cgaXMgcmVhZHkgdG8gZ28gJ2FjdGl2ZScgKGUuZy4gdmlhICdjcmVhdGVBbmRHbycpLiAgU3VjaCBhCiAgIGRlY2lzaW9uIGlzIGluaGVyZW50bHkgc3BlY2lmaWMgdG8gZWFjaCBpbmRpdmlkdWFsIE1JQiwgc28gbXVzdAogICByZWFsbHkgYmUgZG9uZSBpbiB0aGUgbG93ZXItbGV2ZWwgaGFuZGxlci4KICAgCjIwMDItMTItMDUgMDU6NDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgU3RvcCBwcm9jZXNzaW5nIHdoZW4gYSAnbm9uLXdyaXRhYmxlIGNyZWF0ZScgaXMgZGV0ZWN0ZWQuCiAgIAoyMDAyLTEyLTA0IDE5OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICAtIEJJVF9TVFIgLT4gT0NURVRfU1RSLCB3aGljaCBpcyB3aGF0IGl0IHNob3VsZCBiZS4KICAgLSBydW4gZXZlbnRUYWJsZSBlbnRyaWVzLgogICAKMjAwMi0xMi0wNCAxOTozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jOgoKICAgQklUX1NUUiAtPiBPQ1RFVF9TVFIsIHdoaWNoIGlzIHdoYXQgaXQgc2hvdWxkIGJlLgogICAKMjAwMi0xMi0wNCAxOTozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlT2JqZWN0c1RhYmxlLmMsCiAgIG10ZVRyaWdnZXJCb29sZWFuVGFibGUuYzoKCiAgIHVzZSBuZXRzbm1wX3N0cmR1cF9hbmRfbnVsbCB0byBnZXQgcmVhbCBzdHJpbmdzIGZyb20gbWliIGRhdGEuCiAgIAoyMDAyLTEyLTA0IDE5OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBldmVudC1taWIuaCwKICAgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgKLCBtdGVFdmVudFRhYmxlLmMsIG10ZUV2ZW50VGFibGUuaDoKCiAgIC0gaW1wbGVtZW50ZWQgdGhlIG10ZUV2ZW50VGFibGUgYW5kIHRoZSBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlCiAgICAgLSBGWUksIHRvdGFsIGltcGxlbWVudGF0aW9uIHRpbWU6IGFib3V0IDQgaG91cnMKICAgICAtIG5vIGVhc3ktdG8tdXNlIC5jb25mIHdyYXBwZXJzIHlldCB0aG91Z2guICBzbm1wc2V0IHN1cHBvcnQgb25seS4KICAgCjIwMDItMTItMDQgMTk6MjkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICAtIHVzZSB0aGUgbmV0c25tcF90YWJsZV9zZXRfYWRkX2luZGV4ZXMgZnVuY3Rpb24gd2hpY2ggYWN0dWFsbHkgd29ya3MuCiAgIAoyMDAyLTEyLTA0IDE5OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICAtIGNyZWF0ZSBhIG5ldHNubXBfdGFibGVfc2V0X2FkZF9pbmRleGVzIGZ1bmN0aW9uLgogICAtIEFsbG93IHJvdyBjcmVhdGlvbiB1c2luZyByb3dTdGF0dXMgd2hlbiB0aGUgZGF0YSBjb2x1bW4gZXhpc3RzLCBidXQKICAgICB0aGVyZSBpcyBubyBhc3NpZ25lZCB2YWx1ZSAoaWUsIGlzIE5VTEwpLgogICAtIHVzZSBuZXRzbm1wX3N0cmR1cF9hbmRfbnVsbCBpbnN0ZWFkIG9mIG1lbWR1cCB0byBtYWtlIHN1cmUgYW4KICAgICBpbXBsaWNpdCBOVUxMIGlzIGluIHBsYWNlIGZvciB0aGluZ3MgdGhhdCB1c2UgdGhlIGRhdGEgYW5kIG5lZWQgaXQKICAgICBhcyBhIHJlYWwgc3RyaW5nLgogICAKMjAwMi0xMi0wNCAxOToyNyAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgZG9jdW1lbnQgLS1wcmVmaXgKICAgCjIwMDItMTItMDQgMTM6MTYgIGhhcmRha2VyCgogICAqIE5FV1MgKFY0LTItcGF0Y2hlcy45KSwgTkVXUzoKCiAgIGRvY3VtZW50IDQuMi42CiAgIAoyMDAyLTEyLTAzIDA0OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBDbG9zZSBwcmludGVyIGZpbGUgaGFuZGxlIHdpdGggJ2ZjbG9zZScgcmF0aGVyIHRoYW4gJ3BjbG9zZScgdG8gYXZvaWQKICAgYSBtZW1vcnkgbGVhayBvbiBTb2xhcmlzIDIuNi4gICBGaXggcHJvdmlkZWQgYnkgSmFjb2JvIE1hdHV0ZS4KICAgCjIwMDItMTItMDMgMDQ6MzMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9kYXRhLmMsIHRhYmxlX2RhdGFzZXQuYzoKCiAgIFRyYW5zbGF0ZSBHZXROZXh0IChhbmQgR2V0QnVsaykgcmVxdWVzdHMgaW50byBzaW1wbGUgR2V0IHJlcXVlc3RzLAogICB3aGVuIHBhc3NpbmcgdGhlbSBmcm9tIHRoZSB0YWJsZV9kYXRhIGhhbmRsZXIgdG8gdGFibGVfZGF0YXNldC4KICAgICBUaGlzIGlzIGFuYWxvZ291cyB0byBob3cgdGhlIGl0ZXJhdGUgaGFuZGxlciB3b3JrcywgYW5kIGFsbG93cwogICBsb3dlciBsZXZlbCBoYW5kbGVycyB0byBvdmVycmlkZSB0aGUgYmFzaWMgYmVoYXZpb3VyICh3aXRob3V0CiAgIGhhdmluZyB0byBkdXBsaWNhdGUgYWxsIG9mIHRoZSAiZmluZCBuZXh0IHJvdyIgY29kZSBldmVyeSB0aW1lKS4KICAgCjIwMDItMTItMDIgMDQ6NDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIFJldHVybiBTTk1QdjItc3R5bGUgZXhjZXB0aW9ucywgcmF0aGVyIHRoYW4gdGhlIFNOTVB2MSAnbm9TdWNoTmFtZScgZXJyb3IuCiAgIFRoaXMgdXNlZCB0byBicmVhayBBZ2VudFggc3ViYWdlbnRzLCBidXQgdGhlIGxhdGVzdCBjaGFuZ2UgdG8gc25tcF9hZ2VudC5jCiAgICh0byBjYXRjaCBub1N1Y2h7SW5zdGFuY2UsT2JqZWN0fSBleGNlcHRpb25zKSBzZWVtcyB0byBoYXZlIGZpeGVkIHRoYXQgcHJvYmxlbS4KICAgCjIwMDItMTItMDIgMDQ6NDAgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEV4cGxpY2l0bHkgcGFyZW50aGVzaXNlIGEgY29tcGFyaXNvbiwgdG8ga2VlcCB0aGUgY29tcGlsZXIgaGFwcHkuCiAgIAoyMDAyLTEyLTAyIDA0OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJbmNsdXNpdmUtcmFuZ2UgR2V0TmV4dCByZXF1ZXN0cyBhcmUgdHJhbnNtaXR0ZWQgYXMgR2V0IHJlcXVlc3RzLCBzbyBtYXkKICAgd2VsbCByZXR1cm4gbm9TdWNoe0luc3RhbmNlLE9iamVjdH0gZXhjZXB0aW9ucy4gIENhdGNoIHRoZXNlIGFzIHdlbGwuCiAgIAoyMDAyLTEyLTAyIDA0OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIENhdGNoIChhbmQgcmVqZWN0KSBhdHRlbXB0cyB0byBjcmVhdGUgYSBuZXcgcm93IHZpYSBhIG5vbi13cml0YWJsZSBvYmplY3QuCiAgIAoyMDAyLTExLTI4IDA0OjI0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBOdWxsIG91dCBvbmUgZmluYWwgbG9vcF9jb250ZXh0IHBvaW50ZXIgYWZ0ZXIgYmVpbmcgZnJlZWQuCiAgIChQYXRjaCBwcm92aWRlZCBieSBSb2dlciBNY0NhbG1hbikKICAgCjIwMDItMTEtMjYgMTc6NTkgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBEaXNjYXJkIHRoZSBzZWNvbmRhcnkgKEdST1VQKSBERVNDUklQVElPTiBpbnNpemUgYSBNT0RVTEUtQ09NUExJQU5DRQogICB0byBhdm9pZCBsZWFraW5nIG1lbW9yeS4gVGhhbmtzIHRvIEV1Z2VuZV9CcnVrQGJtYy5jb20KICAgCjIwMDItMTEtMjYgMTc6NTMgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIFJlaW5zdGF0ZSB0aGUgLXcgb3B0aW9ucyB0aGF0IHdhcyBsb3N0IGluIHRoZSBpbmRlbnQgZnVyeQogICAKMjAwMi0xMS0yNiAxMDo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICBUaGUgbm90aWZpY2F0aW9uIHZhcmlhYmxlIHNob3VsZG4ndCBiZSBzdGF0aWMuICBBIGJ1ZyBmb3VuZCB3aGlsZQogICB0cmFja2luZyBkb3duIGEgcHJvYmxlbSBwb2ludGVkIG91dCBieSBWZW5pY2Ugb24gSVJDLgogICAKMjAwMi0xMS0yNiAwNDoxMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIEZpeCBpbmNvcnJlY3QgdXNhZ2Ugb2YgU0VfTUFYX0lEUyB2cyBTRV9NQVhfU1VCSURTLgogICBSZXBvcnRlZCBieSAnc2hpbmVwZWFrJwogICAKMjAwMi0xMS0yNSAyMjo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvRkFRMkhUTUw6CgogICBoYWNrIG9mIGEgaGFjayBvZiBhIGhhY2ssIG9yOiBmaXggbXVsdGktbGluZSBGQVEgcXVlc3Rpb25zCiAgIAoyMDAyLTExLTI1IDEwOjA4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuYWdlbnR4OgoKICAgbWVudGlvbiBhZ2VudHhQaW5nSW50ZXJ2YWwKICAgCjIwMDItMTEtMTggMjE6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oOgoKICAgYXBwbGllZCBwYXRjaCAjNTI3NjUwCiAgIAoyMDAyLTExLTExIDE3OjEwICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJlc3BlY3QgdGhlIG1pYmRpcnMgY29uZiBkaXJlY3RpdmUuIFRoYW5rcyB0byBTdGVmYW4gUmFkbWFuIChzcmFkbWFuKQogICAKMjAwMi0xMS0xMSAxNjo1NyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgRml4IGEgbWlzc2luZyBlcnJvciByZXR1cm4KICAgCjIwMDItMTEtMTEgMTQ6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYzoKCiAgIGZpeCB0YWRkciBnZW5lcmF0aW9uL3BhcnNpbmcgZm9yIHBvcnQgYmFzZWQgdHJhbnNwb3J0cyB0byBwcm9wZXJseSB1c2UKICAgbmV0d29yayBieXRlIG9yZGVyaW5nLgogICAKMjAwMi0xMS0xMSAxNDoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIGZpeCB3cml0ZSBzdXBwb3J0IGZvciB0aGUgdGltZW91dCBjb2x1bW4KICAgCjIwMDItMTEtMDkgMTA6MDYgIG5iYQoKICAgKiBhZ2VudC9taWJfbW9kdWxlcy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgRG8gYXdheSB3aXRoIGEgYnVuY2ggb2YgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMTEtMDkgMDk6NTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICB1Y2Qtc25tcC9tZW1vcnkuYywgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIHVjZC1zbm1wL3Bhc3MuYywgdWNkLXNubXAvcHJvYy5jLCBob3N0L2hyX3ByaW50LmMKOgoKICAgWmVybyBpcyBhbiBPSyBmaWxlIGRlc2NyaXB0b3IuIC0xIGlzIHRoZSBlcnJvciByZXR1cm4KICAgCjIwMDItMTEtMDkgMDk6NTQgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jOgoKICAgTW9yZSB0byB0aGUgcG9pbnQgbWVzc2FnZSBmb3IgdW5kZWZpbmVkIGlkZW50aWZpZXJzLiBCcm91Z2h0IGZvcndhcmQgZnJvbSA0LjIKICAgCjIwMDItMTEtMDkgMDk6NTIgIG5iYQoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBQcmludCB0aGUgZXJyb3IgaW5mb3JtYXRpb24gaW4gY2FzZSBvZiBlcnJvcgogICAKMjAwMi0xMS0wOSAwOTo1MSAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB2MiBleGNlcHRpb24gcmVzdWx0cwogICAKMjAwMi0xMS0wOSAwOTo0OSAgbmJhCgogICAqIHNlZHNjcmlwdC5pbiwgbWFuL3NubXBjbWQuMS5kZWY6CgogICBQcm90ZWN0IFBSRUZJWCB3aGVuIGl0IGlzIHRoZSBlbnYgdmFyLiBUaGFua3MgdG8gU3RlZmFuIFJhZG1hbiAoc3JhZG1hbikKICAgCjIwMDItMTEtMDkgMDk6NDcgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBBZGQgUkZDIDMzNzEgTDJUUC1NSUIKICAgCjIwMDItMTEtMDkgMDk6NDYgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIFVwZGF0ZWQgZnJvbSBJQU5BCiAgIAoyMDAyLTExLTA3IDA1OjU1ICBqYnBuCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAgIC0gZml4IC1DZiBhbmQgLUN3IG9wdGlvbiBwcm9jZXNzaW5nIChwcmV2aW91c2x5IHdvdWxkIGNvcmUgZHVtcCBpZgogICAgICAgbm8gb3B0aW9uIHBhc3NlZCksIGFzIHBvaW50ZWQgb3V0IGJ5IGhhbXBhIG9uICNuZXQtc25tcAogICAKMjAwMi0xMS0wNiAxNTozNSAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGZpeCBjdXQvcGFzdGUKICAgCjIwMDItMTEtMDYgMTU6MDQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlndXJlLmluICYgbWFrZWZpbGVzCiAgIAoyMDAyLTExLTA2IDE0OjA4ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIG1pc3NpbmcgZW5kIHF1b3RlCiAgIAoyMDAyLTExLTA2IDEzOjM1ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIEBERVZGTEFHU0Agd2VoZXJ2ZXIgdGhlcmUgaXMgYSBAQ0ZMQUdTQCwgZXhjZXB0IGZvciB0aGUgbmV3IC0tYmFzZS1jZmxhZ3MKICAgCjIwMDItMTEtMDYgMTM6MjIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBhZGQgQERFVkZMQUdTQCB0byBDRkxBR1MKICAgCjIwMDItMTEtMDYgMTM6MjEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBzZXBlcmF0ZSBkZXZlbG9wZXIgY2ZsYWdzIGZyb20gbm9ybWFsIGNmbGFncwogICAKMjAwMi0xMS0wNiAxMjo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIGNoYW5nZSBzdHJ1Y3QuaCBpbmNsdWRlIHRvIHVzZSAiIiBpbnN0ZWFkIG9mIDxuZXQtc25tcC8+LCBzaW5jZSBpdCBpdCBhIGxvY2FsCiAgIGluY2x1ZGUsIG5vdCBhIHN5c3RlbSBpbmNsdWRlCiAgIAoyMDAyLTExLTA2IDEyOjM5ICByc3RvcnkKCiAgICogYWNjb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oLCB3aW4zMi9jb25maWcuaCwKICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBwdXJnZSBJTl9VQ0RfU05NUF9TT1VSQ0UKICAgCjIwMDItMTEtMDUgMTI6MjQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgYWRkZWQgYSB4bWxzaG9ydCBkZWxpbWl0ZXIgYXMgcmVxdWVzdGVkIGJ5IGxhbmRzIG9uIElSQwogICAKMjAwMi0xMS0wNSAxMTo1OSAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICB0YWJzIC0+IHNwYWNlcyBvbmx5IHRyeSB0byBjaG1vZCBSTyBzcmMgZGlyIGlmIG93bmVyIG9mIGRpcnMKICAgCjIwMDItMTEtMDUgMTE6NTYgIHJzdG9yeQoKICAgKiBta2luc3RhbGxkaXJzOgoKICAgbWFraW5nIGEgZGlyZWN0b3J5IGlzIG5vdCBhbiBlcnJvciwgc28gZG9uJ3Qgc2VuZCBvdXRwdXQgdG8gc3RkZXJyCiAgIAoyMDAyLTExLTA0IDExOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICBhbGxvdyB1bnJlZ2lzdGVyZWQgc2VjdXJpdHkgbW9kZWxzIDw9IDIKICAgCjIwMDItMTEtMDQgMTE6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGVuYWJsZSByb3cgY3JlYXRpb24gdG8gYmUgYmV0dGVyIHN1cHBvcnRlZCAocm93c3RhdHVzIG5vIGxvbmdlciBoYXMgdG8KICAgYmUgZmlyc3QgaW4gdGhlIGxpc3QsIC4uLikKICAgCjIwMDItMTEtMDQgMTE6MTMgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBjcHBmbGFncyB0byAtLWNmbGFncwogICAKMjAwMi0xMS0wNCAxMToxMyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGFkZCBzdHVmZiBmb3IgNS4wLjcgKG9yIHdoYXRldmVyKSBtZW50aW9uaW5nIGEgZmV3IG5ldyBmZWF0dXJlcy4KICAgCjIwMDItMTEtMDEgMTI6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeGVkIGJ1ZyAjNjMyMDk0IHVzaW5nIHRoZSBzdWdnZXN0ZWQgbWV0aG9kOiB3YXRjaCBmb3IgTlVMTCBzdHJlcnJvcigpIHJldHVybgogICAKMjAwMi0xMS0wMSAxMDowOSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgdW5kbyBteSBjaGFuZ2VzIGZyb20gciA1LjE3LCBhdHRlbXB0aW5nIHRvIHJlZHVjZSBydW5zIG9mIGNvbmZpZy5zdGF0dXMKICAgYnkgdXNpbmcgZXhwbGljaXQgcGF0aHMgdG8gc3JjZGlyLCBhbmQgbGV0IFZQQVRIIGRvIGl0J3MgdGhpbmcKICAgCjIwMDItMTAtMjkgMTQ6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgdGFyZ2V0IHRvIGJ1aWxkIGJpbmFyeSBhcnJheSB0ZXN0IGFwcDsgdHdlYWsgdG8gcGFyc2UgdGVzdCB0YXJnZXQgKHJlZHVjZXMgbW9zdAogICBidXQgbm90IGFsbCBleHRlcm5hbCByZWZlcmVuY2VzKQogICAKMjAwMi0xMC0yOSAxNDoyNyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZml4IGZvciBiaW5hcnkgc2VhcmNoIHByb2JsZW0gbm90ZWQgYnkgUm9teSBDaHJpc3RlbnNlbiBvbiBjb2RlcnM7IHBhcnRpYWwKICAgKGlmZGVmJ2Qgb3V0KSBjb2RlIGZvciBhIGJpbmFyeSBhcnJheSBpdGVyYXRvcgogICAKMjAwMi0xMC0yOSAxNDoyNSAgcnN0b3J5CgogICAqIHNubXBsaWIvdGVzdF9iaW5hcnlfYXJyYXkuYzoKCiAgIHNpbXBsZSB0ZXN0IHByb2dyYW0gZm9yIGJpbmFyeSBhcnJheQogICAKMjAwMi0xMC0yOSAwOToyOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBGaXggZGVidWdnaW5nIGFzIG5vdGVkIGluIGJ1ZyAjNjMwMzQ4CiAgIAoyMDAyLTEwLTI4IDE5OjQ3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNoYW5nZWQgLjEuNi4zIHRvIDEuMy42IGFzIG5vdGVkIGluIGNvbXAucHJvdG9jb2xzLnNubXAKICAgCjIwMDItMTAtMjggMTU6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZjoKCiAgIGNoYW5nZWQgcGFzc3dvcmQKICAgCjIwMDItMTAtMjggMTQ6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZjoKCiAgIG1pc2MgdmFjbSBmaXhlcwogICAKMjAwMi0xMC0yOCAwODo0MSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcmVtb3ZlIGVycm9uZW91cyBmcmVlKCkgb2YgcnhidWYKICAgCjIwMDItMTAtMjUgMTI6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeGVkIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCAtPiBORVRTTk1QX09QX0NBTExCQUNLX0RJU0NPTk5FQ1QgYXMgbm90ZWQgYnkgVHJvZ0wgb24gSVJDCiAgIAoyMDAyLTEwLTI1IDA3OjM0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBwZXJmb3JtIGEgTkVUU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHR5cGUgY2FsbGJhY2sgaWYgd2UKICAgICAgIGRlY2lkZSB0byBzaHV0ZG93biBhIHN0cmVhbSB0eXBlIGNvbm5lY3Rpb24gYmVjYXVzZSB3ZSByZWNlaXZlZAogICAgICAgYW4gZXhjZXNzaXZlbHkgbGFyZ2UgcGFja2V0LgogICAKMjAwMi0xMC0yNCAxMDo0MSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgdGhlIHN1cGVyLWJ1Zy1wYXRjaCBnZW5lcmF0b3IgU3RlZmFuIFJhZG1hbiB0byB0aGUgVEhBTktTIGxpc3QKICAgCjIwMDItMTAtMjQgMTA6NDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGJ1ZyAjNjE3NTA4OiBhZGRlZCB0aGUgbXRhX3NlbmRtYWlsIG1vZHVsZSB0byAtLWhlbHAKICAgCjIwMDItMTAtMjQgMTA6MzUgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgdXBkYXRlIGluc3RhbGwgbGlzdCBmb3IgbWliMmMgY29uZiBmaWxlcyBhbmQgcmVtb3ZlIG9sZCBvbmUKICAgCjIwMDItMTAtMjMgMjA6MzQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IGluY29ycmVjdCB2YXJpYWJsZSBuYW1lIEkgbm90aWNlZCB3aGVuIGNvcHlpbmcgdG8gYSBkaWZmZXJlbnQgY29uZmlndXJlIHNjcmlwdCBpbiBhbm90aGVyIHBhY2thZ2UKICAgCjIwMDItMTAtMjMgMjA6MjggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgRml4ZWQgYnVnIzYxNzgzODogdmVyc2lvbnRhZyBpc24ndCBkaXN0cmlidXRlZCBhbmQgc2hvdWxkbid0IGJlIGFsd2F5cwogICB1c2VkIGluIHRoZSBtYWtlIGRpc3RjbGVhbiBjYWxscy4KICAgCjIwMDItMTAtMjMgMjA6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGluY29uc2VxdWVuY2lhbCBtZW1vcnkgbGVha3MgZml4ZWQgKGluaXQgdGltZSBsZWFrcykuCiAgIAoyMDAyLTEwLTIzIDIwOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBGaXhlZCB2YXJpb3VzIG1lbW9yeSBsZWFrcyBpbiB0aGUgdGFibGVfaXRlcmF0b3IgYXMgcG9pbnRlZCBvdXQgYnkKICAgUm9nZXIgTWNDYWxtYW4gYW5kIEpheSBQYXJsYXIgb24gdGhlIC1jb2RlcnMgbGlzdCAoaW5jbHVkaW5nIHRoZWlyIHBhdGNoZXMpCiAgIAoyMDAyLTEwLTIzIDE4OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBzbm1wTm90aWZ5VGFibGUuYwogICAKMjAwMi0xMC0yMyAxODo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZnJlZSBhIHByZXZpb3VzbHkgbWFsbG9jZWQgcG9pbnRlciB0byB0aGUgd2F0Y2ggdmFyaWFibGUgYmVmb3JlIHJlcGxhY2luZyBpdC4KICAgCjIwMDItMTAtMjMgMTg6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYzoKCiAgIHJlbW92ZSBkdXBsaWNhdGUgdW51c2VkIG1hbGxvYy4KICAgCjIwMDItMTAtMjEgMTI6NDMgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuOS5oOgoKICAgICAtIGFkZCBzeXN0ZW0gZmlsZSBmb3IgU29sYXJpcyA5CiAgIAoyMDAyLTEwLTE3IDIyOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLCBzbm1wbGliL3ZhY20uYzoKCiAgIE9wdGltaXplZCB0aGUgVkFDTSBjaGVja3MgaW4gdGhlIGNhc2Ugb2YgZ2V0bmV4dC9nZXRidWxrIHNvIHRoYXQgd2hlbgogICBsYXJnZSBwb3J0aW9ucyBvZiB0aGUgbWliIHRyZWUgYXJlIGV4Y2x1ZGVkLCB0aGUgc3ViLW1pYiBhY2Nlc3MgY29kZQogICB3b24ndCBiZSBjYWxsZWQgYXQgYWxsIChmaW5hbGx5IGltcGxlbWVudGluZyBhIHZlcnkgbG9uZyBuZWVkZWQgb3B0aW1pemF0aW9uKS4KICAgCjIwMDItMTAtMTcgMjI6NDEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgbmV3IGZ1bmN0aW9uIHRvIGZpbmQgdGhlIGNvbW1vbmFsaXR5IGJldHdlZW4gdHdvIG9pZHM6IG5ldHNubXBfb2lkX2ZpbmRfcHJlZml4CiAgIAoyMDAyLTEwLTE3IDIyOjM5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNsb2NhbC5tNCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICBQcmludCBvdXQgYSAic3VtbWFyeSIgYXQgdGhlIGVuZCBvZiBhIHJ1bgogICAKMjAwMi0xMC0xNyAwNTo0MCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgUHJvcGVybHkgdGVybWluYXRlIGEgbG9vcCBjb25zdHJ1Y3QgKG1pc3NpbmcgJ0BlbmRAJykKICAgU3BvdHRlZCBieSBLYXJsIENvb3Blci4gICAgT29wcyEKICAgCjIwMDItMTAtMTYgMTc6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcmVzdG9yZSBjb250aW51ZSBhZnRlciBFSU5UUiBjYXVzZWQgYnkgc2lnbmFsIHdlIGhhbmRsZWQgKGluc3RlYWQgb2YgZmFsbGluZwogICB0aG9yb3VnaCB0byBleGl0ISkKICAgCjIwMDItMTAtMTYgMTc6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgY2hlY2sgZm9yIG91ciBzaWduYWwgZmxhZ3Mgb24gRUlOVFIsIGFuZCBvbmx5IHJlbGVzZWN0IGlmIG5vdCBjaGFuZ2VkOwogICBkZWJ1ZyBtc2cgd2hlbiBzaWduYWxzIHJlZ2lzdGVyZWQgYW5kIGZvciBzZWxlY3QvZmRzZXRzOwogICAKMjAwMi0xMC0xNiAxNTo1MiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIG1vdmUgQ1BQRkxBR1MgYmVmb3JlIHVzZXIgY29uZmlndXJlIENGTEFHUy4uIHNvIGlmIGEgdXNlciBhZGRzIHNvbWV0aGluZwogICBsaWtlIC91c3IvbG9jYWwvaW5jbHVkZSB0byBDRkxBR1MsIHdlIHdpbGwgcGljayB1cCBvdXIgbG9jYWwgaW5jbHVkZXMgZmlyc3QsCiAgIGluc3RlYWQgb2YgaW5jbHVkZXMgZnJvbSBhIHByZXZpb3VzIHJlbGVhc2UuLgogICAKMjAwMi0xMC0xNiAwMDowNiAgcnN0b3J5CgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2xvZy5jLCBzbm1wdHJhcGRfbG9nLmgKOgoKICAgbWFrZSBzdXJlIHNubXB0cmFwZCBhbHdheXMgaG9ub3JzIERTX0FQUF9OVU1FUklDX0lQIGZvciBsb2dnaW5nCiAgIAoyMDAyLTEwLTE1IDE3OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIG5ldHNubXBfZ2V0X2Jvb2xlYW4gLT4gbmV0c25tcF9kc19nZXRfYm9vbGVhbgogICAKMjAwMi0xMC0xNSAxNDowOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGZpeCBjb25zdGFudCB1c2VkIGluIGFzc2VydCwgbm90ZWQgb24gY29kZXJzCiAgIAoyMDAyLTEwLTE1IDE0OjA3ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgaW5jbHVkZSBzeXNsb2cgZm9yIGxpYndyYXAgbG9nIGxldmVscwogICAKMjAwMi0xMC0xNSAxMDozOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBBZGQgeWV0IGFub3RoZXIgd2F5IHRvIHNwZWNpZnkgdjYgYWRkcmVzc2VzCiAgIAoyMDAyLTEwLTE0IDExOjU0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIGZpeCBpcHY2IHRyYW5zcG9ydCBhZGRyZXNzIHNwZWNzCiAgIAoyMDAyLTEwLTExIDE5OjE4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuY211LCBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBSZW1vdmUgdGhlIFJFQURNRS5jbXUgZmlsZSAoZW50aXJlbHkgb3V0IG9mIGRhdGUgYXQgdGhpcyBwb2ludCkuCiAgIAoyMDAyLTEwLTExIDE2OjU3ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcGF0Y2ggIzYwMDkzMyBmcm9tIERvbmFsIERpYW1vbmQ6IGRza1BlcmNlbnROb2RlIGZvciBGcmVlQlNENAogICAKMjAwMi0xMC0xMSAxNjo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFBhdGNoICM1OTgyODAgZnJvbSBKZWZmIFdhdHNvbjogbWFrZSAtT1Egbm90IHByaW50IHR5cGUgd2FybmluZ3MuCiAgIAoyMDAyLTEwLTExIDE2OjQzICBoYXJkYWtlcgoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgZml4IGluY2x1ZGUgZGlyZWN0b3J5CiAgIAoyMDAyLTEwLTExIDE2OjQyICBoYXJkYWtlcgoKICAgKiBkaXN0Ly5jdnNpZ25vcmU6CgogICBpZ25vcmUgcnBtIHN1YmRpcgogICAKMjAwMi0xMC0xMSAxNjozMiAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGJldHRlciBkb2NzIGFib3V0IGF1dG8tZXh0cmFjdGVkIFNGIG5ld3MKICAgCjIwMDItMTAtMTEgMTY6MDQgIGhhcmRha2VyCgogICAqIGRpc3QvOiBNYWtlZmlsZSwgbmV0LXNubXAuc3BlYzoKCiAgIG1lcmdlIGluIHBhdGNoICM1OTg4Njk6IE1hcmsgSGFyaWcncyBiZXR0ZXIgcnBtIHN0dWZmCiAgIAoyMDAyLTEwLTExIDE1OjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jCjoKCiAgIEFsdGVybmF0aXZlIHRvIGEgcGF0Y2ggc3VnZ2VzdGlvbjogYWRkIC1PVSB0byBub3QgcHJpbnQgVU5JVFMgc3VmZml4ZXMuCiAgIAoyMDAyLTEwLTExIDE1OjE4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIC4uL2FnZW50L3NubXBfYWdlbnQuYwogICAKMjAwMi0xMC0xMSAxNToxNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IGRvbnRQcmludFVuaXRzCiAgIAoyMDAyLTEwLTExIDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQYXRjaCAjNjE3MTUxIGZyb20gQW5kcmV3IFJ1Y2tlciBKb25lczogZml4IGxpYndyYXAgaGVhZGVycy4KICAgICAtIEknbSBzdGlsbCB1bmhhcHB5IHdpdGggaG93IGxpYndyYXAgZnVuY3Rpb25zLi4uICBuZWVkcyB0aGlua2luZyBhYm91dC4KICAgCjIwMDItMTAtMTEgMTM6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgUGF0Y2ggIzMxMjY5NCBmcm9tIEpvaG4gU3VydmV5b3I6IGZpeCBkaXNraW8gb24gc29sYXJpcy4KICAgCjIwMDItMTAtMTEgMTM6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBBcHBsaWVkIHBhdGNoICM2MjEzOTggZnJvbSBNYXR0aGV3IEtyZW56ZXIgdG8gZml4IGxpbnV4IGFycCB0YWJsZS4KICAgCjIwMDItMTAtMTEgMDk6NDcgIHJzdG9yeQoKICAgKiB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3A6CgogICBjaGcgbmV0c25tcG1pYnMgLT4gbmV0c25tcG1pYnNza2QgKG5vdGVkIG9uIGNvZGVycyBieSBKZWQgV2hpdHRlbikKICAgCjIwMDItMTAtMTEgMDk6NDUgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICAgIC0gbm90ZSBzcXVhcmUgYnJhY2tldHMgZm9yIElQdjYgYWRkcmVzc2VzCiAgIAoyMDAyLTEwLTExIDA5OjQwICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gcmVzdGFydCBzZWxlY3QoKSBtb3JlIHF1aWNrbHkgaWYgYW4gRUlOVFIgaGFwcGVucwogICAKMjAwMi0xMC0xMSAwMTo1MSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgYXBwbGllZCBIYXJyaWUncyBwYXRjaCBkZXNjcmliaW5nIGxvdyBtZW1vcnkgZm9vdHByaW50cwogICAKMjAwMi0xMC0xMCAxMTozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICBQYXRjaCBmcm9tIEtlbiBIb3JzdGVpbiB0byBmaXggS1NNIG1vZHVsZQogICAKMjAwMi0xMC0xMCAwNjoyMiAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICAgIC0gcmVtb3ZlIGJhZCBpbmxpbmVzIHdoaWNoIGNhdXNlIGZpbGUgbm90IHRvIGNvbXBpbGUgd2l0aCBTdW4gQ0MuCiAgICAgICBTZWUgYnVnICM2MjA4MjcuCiAgIAoyMDAyLTEwLTEwIDAyOjAzICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBhZGQgLmxhIGZpbGVzCiAgIAoyMDAyLTEwLTEwIDAyOjAwICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBtYWtlIHRoZSAuc3BlYyBmaWxlIGFsbW9zdCB1c2FibGUuCiAgIAoyMDAyLTEwLTA4IDE4OjU1ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBGQVEgdXBkYXRlcyBmb3IgZG93bmxvYWQgc2l0ZXMuCiAgIAoyMDAyLTEwLTA4IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBQYXRjaCBmcm9tIEpvc2h1YSBLZXJvZXMgZm9yIHN0cmluZyBjb21wYXJpc29ucwogICAKMjAwMi0xMC0wNyAxMzo1NyAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgYWRkZWQgYSBzdGF0ZW1lbnQgYWJvdXQgdGhlIENPUFlJTkcgZmlsZSAoc3VnZ2VzdGVkIGJ5IEhhcnJpZSkKICAgCjIwMDItMTAtMDYgMTQ6MzIgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgbnNiLSogbGlrZXMgZnVsbCBwYXRocywgdXBkYXRlIGV4YW1wbGVzOyBmaXggc291cmNlZm9yZ2UgdXBsb2FkIHNpdGUKICAgCjIwMDItMTAtMDUgMTc6NDIgIGhhcmRha2VyCgogICAqIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jCiwgRkFRLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNiApCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC41IC0+IFY1LjAuNgoKMjAwMi0xMC0wNSAxNDoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTEwLTA1IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB1cGRhdGUgZm9yIDUuMC42CiAgIAoyMDAyLTEwLTA1IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgcmVtb3ZlIGlsbGVnYWwgZmxhZyBmcm9tIG5zYi1jb25maWcKICAgCjIwMDItMTAtMDUgMTM6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBlZmVuY2UgaXMgeW91ciBmcmllbmQ6IGRvbid0IGFsbG9jYXRlIDAgYnl0ZXMKICAgCjIwMDItMTAtMDUgMTI6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGVmZW5jZSBpcyB5b3VyIGZyaWVuZDogZG9uJ3QgcmVmZXJlbmNlIHB0ciBhZnRlciBpcyBoYXMgYmVlbiBmcmVlJ2QuCiAgIAoyMDAyLTEwLTA0IDA3OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggc2Vjb25kYXJ5IGVmZmVjdCBvZiBidWcgNjEzOTgzIGFuZCByZWFsbHkgZml4IGl0IHRoaXMgdGltZS4KICAgCjIwMDItMTAtMDIgMTA6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC86IHR1bm5lbC5jIChWNC0yLXBhdGNoZXMuMiksIHR1bm5lbC5jCjoKCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcyB0byBmaXggc29tZSBjb2RpbmcgZXJyb3JzCiAgIAoyMDAyLTEwLTAxIDA3OjM5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBvZmZpY2FsIHBhdGNoIDYxNzA0OTogaW5pdGlhbGl6ZSBjb250YWluZXIgbGlzdCBlYXJsaWVyIChpbiBpbml0X2FnZW50KQogICAKMjAwMi0xMC0wMSAwNzozNSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgcmVtb3ZlIF5NIGNoYXJhY3RlcnMgKGRhbW4gd2luZG93cyBlZGl0b3JzKQogICAKMjAwMi0wOS0zMCAxNToxNyAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNSApCiAgIAoyMDAyLTA5LTMwIDE1OjE2ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGFkZCBpbmZvIG9uIG1kNXN1bXMgYW5kIGdwZyBzaWduaW5nCiAgIAoyMDAyLTA5LTMwIDE1OjE1ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIGZpeCBjaG1vZCB0byBkbyB3aGF0IEkgd2FudGVkLCBub3Qgd2hhdCBJIHRvbGQgaXQKICAgCjIwMDItMDktMzAgMTU6MTQgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2csIE1ha2VmaWxlLnRvcCwgTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjUKICAgCjIwMDItMDktMzAgMTQ6MjcgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICBtZXJnZSBwcmUgY2hhbmdlcyBpbnRvIDUuMC40IGNvbW1lbnRzCiAgIAoyMDAyLTA5LTMwIDE0OjI1ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjQKICAgCjIwMDItMDktMzAgMTQ6MjMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBORVdTIHVwZGF0ZXMgZm9yIDUuMC40CiAgIAoyMDAyLTA5LTMwIDE0OjAzICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgdXBkYXRlIG15IGVtYWlsIGFkZHJlc3MKICAgCjIwMDItMDktMzAgMTQ6MDMgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIHJlbGVhc2UgNS4wLjQKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjMgLT4gVjUuMC41CgoyMDAyLTA5LTMwIDE2OjA4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgbWFrZSBsZW4gYSBzaXplX3QgdG8gZml4IHByb2JsZW0gb24gNjQgYml0IHN5c3RlbSwgcmVwb3J0ZWQgYnkgc2Vibm9kYCBpbiBJUkMKICAgCjIwMDItMDktMzAgMTY6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBkb24ndCB1c2Ugc3RhdGljIGxvY2FsIHZhcnMsIGFzIHRoZXkgYXJlIGxpa2VseSB0byBjYXVzZSBwcm9ibGVtcyB3aXRoIHRocmVhZHMKICAgCjIwMDItMDktMzAgMTU6NDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgbWFrZSBzdXJlIGluc3RhbGwgZGlyIGlzIHJlbGF0aXZlIHRvIGJ1aWxkIGRpcgogICAKMjAwMi0wOS0zMCAxNToyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgYWRkIG1pc3NpbmcgbmV3bGluZSBpbiBkZWJ1ZwogICAKMjAwMi0wOS0zMCAxNToxOSAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItZnVuY3Rpb25zLCBuc2ItcGFja2FnZToKCiAgIGZpeCB0eXBvcwogICAKMjAwMi0wOS0zMCAxNToxOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGF2b2lkIGluZmluaXRlIGxvb3AKICAgCjIwMDItMDktMzAgMTQ6NTkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBhc3N1bWUgbWFrZSBpcyBHTlUgbWFrZSwgYW5kIHNlYXJjaCBmb3IgaXQuIHJlcXVpcmUgdXNlciB0byBzZXQgYW4KICAgZW52IHZhciBpZiBubyBHTlUgbWFrZSBpcyBmb3VuZCBpbiBQQVRICiAgIAoyMDAyLTA5LTMwIDE0OjU4ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIGlmIENWUyBkaXIgaXMgcm8sIGF1dG9tYWdpY2FsbHkgbWFrZSBpdCBydyBiZWZvcmUgdXBkYXRlIGFuZCBybyBhZnRlciB1cGRhdGUKICAgCjIwMDItMDktMjcgMTQ6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG1ha2UgZ2V0X3NldF9jYWNoZSgpIHJldHVybiBhbiBlcnJvciBpZiBubyBwcmV2aW91cyBTRVQgaGFzIGJlZW4gc3RhcnRlZC4KICAgCjIwMDItMDktMjcgMTQ6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBkb3VibGUgY2hlY2sgYWdhaW5zdCBzb21lIG51bGwgcG9pbnRlcnMgYmVmb3JlIHVzaW5nIHRoZW0gaW4gdGhlIGNhY2hlIGNvZGUuCiAgIAoyMDAyLTA5LTI3IDEzOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBzZXQgdHJlZWNhY2hlX251bSB0byAtMSBhdCBpbml0IG9mIG1lbW9yeSwgdG8gYmUgZXh0cmEgc2FmZS4KICAgCjIwMDItMDktMjYgMTQ6NTggIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wZC5jOgoKICAgbW92ZSBsaWJ3cmFwIHZhcmlhYmxlcwogICAKMjAwMi0wOS0yNiAxNDo1NyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIG9rLCByZW1vdmUgdGNwd3JhcHBlcnMgdmFycwogICAKMjAwMi0wOS0yNiAxMzo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGRlZmluZSBzdHVwaWQgdmFyaWFibGVzIG5lZWRlZCBieSB0Y3B3cmFwcGVycyBiZWNhdXNlIHRoZXkgZG9uJ3QgZ2V0CiAgIGNvbmNlcHRzIG9mIGVuY2Fwc3VsYXRpb24uICBhcmcuCiAgIAoyMDAyLTA5LTI2IDExOjI2ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgY2hhbmdlIGNhbGxfcHYgdG8gcGVybF9jYWxsX3B2IGZvciBvbGRlciB2ZXJzaW9ucyBvZiBwZXJsLgogICAKMjAwMi0wOS0yNiAxMToxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHJ1biBzdHJkdXAoKSBvbiBnZXRfbWliX2RpcigpIHJlc3VsdHMgdG8gZml4IGJ1ZyBwb2ludGVkIG91dCBieSBFdWdlbmUgQnJ1ay4KICAgCjIwMDItMDktMjMgMTM6MTQgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtZW50aW9uIGZyZXNobWVhdAogICAKMjAwMi0wOS0yMyAxMzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0CjoKCiAgIC0gaW1wbGVtZW50IGEgKGxvbmcgbmVlZGVkKSBzZXR0YWJsZSB2YXJpYWJsZSB0byBzdG9yZSB0aGUgY3VycmVudAogICAgIHBlcnNpc3RlbnQgaW5mb3JtYXRpb24uCiAgIAoyMDAyLTA5LTIzIDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIG1ha2Ugbm90IGluIHRpbWUgd2luZG93IHJlcG9ydHMgdHJpZ2dlciBhIHJlc2VuZCBvZiBpbmZvcm1zLgogICAgIChzdWdnZXN0aW9uIGZyb20gRXJpayBBbmdnYXJkKQogICAKMjAwMi0wOS0yMCAxMToyOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaDoKCiAgICAgLSByZW1vdmUgZnVuY3Rpb25zIHZhY21fcGFyc2Vfc2VjdXJpdHkgYW5kIHZhY21fZnJlZV9zZWN1cml0eSB3aGljaAogICAgICAgZG9uJ3QgZXhpc3QKICAgCjIwMDItMDktMTkgMTc6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICAtIHN1cHBvcnQgYWdlbnQgc2h1dGRvd25zICh3ZWxsLCBvayBpdCdzIGp1c3QgYW4gYXBpIHNpbmNlIGl0IGRvZXNuJ3Qgd29yaykuCiAgIC0gbWlzYyBidWcgZml4ZXMuCiAgIAoyMDAyLTA5LTE5IDE2OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogYWdlbnQueHMsIG5ldHNubXBfcmVxdWVzdF9pbmZvUHRyLnBtOgoKICAgZml4IGFnZW50IHJlcXVlc3RfaW5mb1B0ciBwcm9ibGVtcy4KICAgCjIwMDItMDktMTkgMTI6MDQgIGR0czEyCgogICAqIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3A6CgogICBDb21waWxlIGFuZCBsaW5rIHdpdGggJ2dldG9wdC5jJyBleHBsaWNpdGx5LgogICAKICAgVGhpcyBzaG91bGQgbm90IGJlIG5lY2Vzc2FyeSwgYnV0IGZvciBzb21lIHJlYXNvbgogICAodGhhdCBjb21wbGV0ZWx5IGVzY2FwZXMgbWUhKSwgdXNpbmcgY29tbWFuZC1saW5lIG9wdGlvbnMKICAgKHN1Y2ggYXMgLUlSKSB3aXRoIHRoZSBSZWxlYXNlIHZlcnNpb24gb2Ygc25tcHRyYW5zbGF0ZQogICBjYXVzZXMgYSBydW4tdGltZSBETEwgZXJyb3IuICAoVGhlIERlYnVnIHZlcnNpb24gaXMgZmluZSkuCiAgIFRoZSBvdGhlciBhcHBsaWNhdGlvbnMgc2VlbSB0byBiZSBPSyAtIHRoaXMgcHJvYmxlbSBvbmx5CiAgIHNlZW1zIHRvIGhpdCBzbm1wdHJhbnNsYXRlLiAgU28gYXMgYSBzdGlja2luZy1wbGFzdGVyLAogICBjb21waWxpaW5nIGdldG9wdC5jIGluIGFzIHBhcnQgb2YgdGhlIHByb2plY3QsIGtlZXBzIGJvdGgKICAgdmVyc2lvbnMgb2YgdGhlIGFwcGxpY2F0aW9uIGhhcHB5LgogICAgIFNvbWVvbmUgd2l0aCBiZXR0ZXIgV2luZG93cyBrbm93bGVkZ2UgdGhhbiBtZSBuZWVkcyB0bwogICBsb29rIGF0IHRoaXMgYW5kIGZpeCBpdCBwcm9wZXJseS4KICAgCjIwMDItMDktMTkgMDY6MTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICAgIC0gdW5kbyB3b3JzdCBvZiBpbmRlbnQgZGFtYWdlCiAgIAoyMDAyLTA5LTE5IDA2OjAzICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgICAtIHJlbW92ZSBfZHBhcnNlIGZ1bmN0aW9ucyAod2hpY2ggZG9uJ3QgZXhpc3QpCiAgIAoyMDAyLTA5LTE4IDEwOjU1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICByZXNldCBTTk1QX1NMRUVQIGFmdGVyIGxvb3AKICAgCjIwMDItMDktMTggMTA6NDEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgICAtIHJlbW92ZSB2ZXJ5IG9ic29sZXRlIChhbmQgbm90IHVzZWQgYW55d2hlcmUpICNkZWZpbml0aW9ucyBvZgogICAgICAgUEFSVFlfTUlCX0JBU0UgYW5kIENPTlRFWFRfTUlCX0JBU0UKICAgCjIwMDItMDktMTggMDI6NTkgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB0d2VhayBmb3IgNS4wLjQgbGFzdCBtaW51dGUgdXBkYXRlCiAgIAoyMDAyLTA5LTE4IDAyOjQ4ICByc3RvcnkKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgY2hnID4gdG8gLWd0IHRvIGFjaGlldmUgaW50ZW5kZWQgcmVzdWx0CiAgIAoyMDAyLTA5LTE4IDAxOjM5ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjQKICAgCjIwMDItMDktMTggMDE6MzMgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjQgKQogICAKMjAwMi0wOS0xOCAwMTozMiAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjQKICAgCjIwMDItMDktMTggMDA6NTkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCAkKHNyY2RpcikgdG8gYSBmZXcgZGVwZW5kZW5jaWVzIHRvIHRyeSBhbmQgcmVkdWNlIHRoZSAjIG9mIHRpbWVzIHRoYXQKICAgY29uZmlnLnN0YXR1cyBpcyBydW4gd2hlbiBidWlsZGluZyBvdXRzaWRlIHRoZSBzcmMgZGlyCiAgIAoyMDAyLTA5LTE4IDAwOjU0ICByc3RvcnkKCiAgICogUkVBRE1FLndpbjMyOgoKICAgdmlzdWFsbHkgcHJvdm9jYXRpdmUgc2VjdGlvbiBoZWFkZXJzOyBhZGQgcmVjZW50IHN0YXR1cyAoYWxsIGJhZCBuZXdzKTsKICAgbm90IHRvIHVzZSBuZXcgd2luMzJzZGsuZHN3IHRvIGdldCBhZGRpdG9uYWwgZnVuY3Rpb25hbGl0eSB3aXRoIHBsYXRmb3JtIHNkazsKICAgcmVtb3ZlIGluZm8gb24gcmVtb3ZpbmcgYWdlbnR4LCBhcyBpdCdzIGJlZW4gYXJvdW5kIG5vdyBmb3IgYSB3aGlsZTsgYWRkCiAgIHNlY3Rpb24gb24gd2hhdCBmaWxlcyB0byBlZGl0IHRvIGFkZCBtaWIyYyBnZW5lcmF0ZWQgY29kZSB0byBhZ2VudDsgcmVtb3ZlCiAgIHJlZmVyZW5jZSB0byBzcGVjaWZpYyByZWxlYXNlIG51bWJlciBpbiBleGFtcGxlCiAgIAoyMDAyLTA5LTE4IDAwOjI1ICByc3RvcnkKCiAgICogd2luMzIvc25tcGRzZGsvc25tcGQuZHNwOgoKICAgdGFrZSAnc2RrJyBvdXQgb2YgZXhlIG5hbWUKICAgCjIwMDItMDktMTggMDA6MjUgIHJzdG9yeQoKICAgKiB3aW4zMi93aW4zMnNkay5kc3c6CgogICBzd2FwIHNubXBkc2RrIGZvciBzbm1wZAogICAKMjAwMi0wOS0xOCAwMDoxNCAgcnN0b3J5CgogICAqIHdpbjMyLzogZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCiwgc25tcGQvc25tcGQuZHNwLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwKICAgc25tcGRmL3NubXBkZi5kc3AsIHNubXBnZXQvc25tcGdldC5kc3AsCiAgIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwCiwgc25tcHNldC9zbm1wc2V0LmRzcCwgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwKICAgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwgc25tcHRyYXAvc25tcHRyYXAuZHNwLAogICBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgc25tcHVzbS9zbm1wdXNtLmRzcCwKICAgc25tcHZhY20vc25tcHZhY20uZHNwLCBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBnZXQgYWxsIG91ciBkdWNrcyBpbiBhIHJvdzogYWRkIGFkdmFwaTMyLmxpYiB0byBsaW5rIGxpbmVzLCBtYWtlIHN1cmUgYWxsCiAgIFJlbGVhc2UgYW5kIERlYnVnIGxpYnMvYXBwcyBhcmUgY29tcGlsZSB3aXRoIHNhbWUgQysrIHNldHRpbmdzCiAgIAoyMDAyLTA5LTE4IDAwOjEyICByc3RvcnkKCiAgICogd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgcmVtb3ZlIHNkayBkZXBlbmRlbnQgbW9kdWxlcwogICAKMjAwMi0wOS0xOCAwMDoxMCAgcnN0b3J5CgogICAqIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaDoKCiAgIGdyb3VwIG1vZHVsZXMgdGhhdCBkZXBlbmQgb24gd2luMzIgc2RrIHRvZ2V0aGVyLCB3aXRoIGlmZGVmCiAgIAoyMDAyLTA5LTE4IDAwOjA4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBubyBjYWxsYmFjayBmb3Igd2luMzIgdW50aWwgcGlwZSBmZCBwcm9ibGVtIGlzIGZpeGVkCiAgIAoyMDAyLTA5LTE4IDAwOjA3ICByc3RvcnkKCiAgICogd2luMzIvOiBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsCiAgIHNubXBkc2RrL3NubXBkLmRzcDoKCiAgIG5ldyB2ZXJzaW9ucyBmb3Igc2RrIHVzZXJzCiAgIAoyMDAyLTA5LTE4IDAwOjA1ICByc3RvcnkKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgbmV3IHdvcmtzcGFjZSBmb3Igc2RrIHVzZXJzCiAgIAoyMDAyLTA5LTE2IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIG1pYiBtb2R1bGUgbG9hZGluZyBmaXhlcyBieSBjYWxsaW5nIGluaXRfc25tcCBmaXJzdAogICAKMjAwMi0wOS0xMyAxNTowNSAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB0d2VhayBleGFtcGxlIG5zYi1jb25maWcgY29tbWFuZDsgYWRkIC1iIGJhY2sgdG8gY3ZzMmNsLCBvdGhlcndpc2UgeW91CiAgIGdldCBjaGFuZ2Vsb2cgbXNncyBmcm9tIG90aGVyIGJyYW5jaGVzIGFuZCBoYXZlIHRvIHdlZWQgdGhlbSBvdXQKICAgCjIwMDItMDktMTMgMTI6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvT0lELzogT0lELnBtLCBPSUQueHMsIHRlc3QucGw6CgogICBmaXggaWxsZWdhbCBvaWRzIHRvIG5vdCByZXR1cm4gYSBwb2ludGVyLgogICAKMjAwMi0wOS0xMyAxMDo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgICAgLSBtaW5vciBvcHRpbWlzYXRpb247IHdlIGRvbid0IG5lZWQgYSB6ZXJvLXRlcm1pbmF0ZWQgY29tbXVuaXR5CiAgICAgICBzdHJpbmcgZXhjZXB0IGZvciBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKMjAwMi0wOS0xMyAxMDozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGRlZCAtaSBvcHRpb24gdG8gcmVxdWVzdCBpbmRlbnQgbm90IGJlIHJ1bgogICAKMjAwMi0wOS0xMyAxMDowNiAgamJwbgoKICAgKiBDT1BZSU5HOgoKICAgICAtIGFkZCBtaXNzaW5nIHZlcmIgaW4gaW50cm9kdWN0aW9uCiAgIAoyMDAyLTA5LTEyIDE1OjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHByb3RlY3QgY2FsbGluZyBzb21lIFN2SVYgZGVyZWZlcmVuY2UgZnVuY3Rpb25zIGlmIGl0J3Mgbm90IGFuIElWLgogICAgIC0gZWxpbWluYXRlcyB0aGUgcmVtYWluaW5nIHBlcmwgd2FybmluZ3MuCiAgIAoyMDAyLTA5LTEyIDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBpbmNsdWRlIGxkZmxhZ3Mgd2hlcmUgYXBwcm9wcmlhdGUgKC0tbGlicywgLS1hZ2VudC1saWJzLCAuLi4pCiAgIAoyMDAyLTA5LTEyIDAxOjQ4ICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1uaWdodGx5LCBuc2ItcGFja2FnZToKCiAgIGFkZC91c2UgbmV3IG9wdGlvbiB0byByZW1vdmUgYnVpbGQgZGlyIGFmdGVyIHN1Y2Nlc3NmdWwgYnVpbGQKICAgCjIwMDItMDktMTIgMDE6NDcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBwcmludCBidWlsZCBkaXIKICAgCjIwMDItMDktMTIgMDE6MTkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNjb25maWcsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBtdWNoIG1vcmUgY29tcGxleCB0ZXN0cyBvZiBVU00gdXNlciBjcmVhdGlvbi9tb2RpZmljYXRpb24uCiAgIAoyMDAyLTA5LTEyIDAxOjA3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogZXZhbF90b29scy5zaCwgdGVzdHMvVDAwMXNubXB2MWdldCwKICAgdGVzdHMvVDAwMnNubXB2MWdldG5leHQsIHRlc3RzL1QwMDNzbm1wdjFnZXRmYWlsLAogICB0ZXN0cy9UMDA0c25tcHYxbm9zdWNoOgoKICAgLSBzdXBwb3J0IGZvciBtdWx0aXBsZSB0ZXN0cyBhdCBvbmNlLgogICAtIG1lcmdlIHYxIHRlc3RzIGludG8gYSBzaW5nbGUgKGZhc3RlcikgdGVzdC4KICAgCjIwMDItMDktMTIgMDA6MzQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBtb25rZXkgYXJvdW5kIHdpdGggcmV0dXJuaW5nIGVycm9yIGNvZGVzLCBqdXN0IGV4aXQ7IG1vcmUgcmVnZXhwIHR3ZWFrcwogICAKMjAwMi0wOS0xMSAxOTozNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgLSB1c2Ugc3ViLXNlY29uZCBzbGVlcHMgaWYgYXZhaWxhYmxlCiAgIC0gc2xlZXAgMSAoc3ViLSlzZWNvbmQgYXQgYSB0aW1lIHdoZW4gd2FpdGluZyBmb3IgcGFydGljdWxhciB0ZXN0cwogICAgIHJhdGhlciB0aGFuIHRoZSBmdWxsIFNOTVBfU0xFRVAgZHVyYXRpb24uCiAgIAoyMDAyLTA5LTExIDE5OjI0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgdXNlIHNubXBfbG9nIGluc3RlYWQgb2YgcHJpbnRmIGZvciBzaHV0ZG93biBtZXNzYWdlLgogICAKMjAwMi0wOS0xMSAxODo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWlzc2luZyB2YXJpYWJsZSBkZWNsIHBvaW50ZWQgb3V0IGJ5IGlyYzpkZgogICAKMjAwMi0wOS0xMCAxNjoxNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHR3ZWFrIGVycm9yIHJlZ2V4cHMgJiBlcnJvciBtZXNzYWdlcwogICAKMjAwMi0wOS0xMCAxNToyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGNvbXBpbGVyIHdhcm5pbmdzIGFyZSB5b3VyIGZyaWVuZCE7IGZpeCBlbWJlZGVkIGNvbW1lbnRzOyBmaXggbm9uLXZvaWQKICAgZnVuY3Rpb25zIHcvbm8gcnRuIHZhbHVlczsgY29kZSByZW9yZyB0byBmaXggZW1hY3MgaW5kZW50IGNvbXBsYWludHMKICAgCjIwMDItMDktMTAgMTU6MjYgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG5ldyBzdGFydC1mbGFnIGVuZC1mbGFnIHRhcmdldHMgdG8gaGVscCBuaWdodGx5IGJ1aWxkIHNjcmlwdCBkZXRlcm1pbmUKICAgaWYgYSBtYWtlIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkKICAgCjIwMDItMDktMTAgMTU6MTIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICB0d2Vha3MgZm9yIG5ldyBzY3JpcHQgZm9yIGF1dG9tYXRlZCBuaWdodGx5IGJ1aWxkczsgYWQgbnNiLWFib3J0LCBuc2ItZmxvdzsKICAgZGlyZWN0IHNvbWUgbWVzc2FnZXMgdG8gc3RkZXJyOyB1c2UgbmV3IHN0YXJ0LWZsYWcgZW5kLWZsYWcgbWFrZSB0YXJnZXRzOwogICB1cGRhdGUgZXJyb3IgZ3JlcCB0byBpbmNsdWRlICcqKionOyBjaGVjayBmb3IgbmV3IHZhbHVlIHRvIHJtIC1mUiBidWlsZCBkaXIKICAgCjIwMDItMDktMTAgMTU6MDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgbmV3IHNjcmlwdCBmb3IgYXV0b21hdGVkIG5pZ2h0bHkgYnVpbGRzCiAgIAoyMDAyLTA5LTEwIDE1OjA4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIGFkZCBvcHRpb24gdG8gcm0gLWZSIGJ1aWxkIGRpciBhdCBzdGFydDsgY2hlY2sgc2NyaXAgcGF0aCBmb3IgbnNiLWZ1bmN0aW9uczsKICAgcHJlZml4IGRlZmF1bHQgYnVpbGQgZGlyIHcvdmVyc2lvbjsgZXhpdCB3L3JjIGZyb20gbnNiLWJ1aWxkCiAgIAoyMDAyLTA5LTEwIDE1OjA1ICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1jb25maWcsIG5zYi1wbGF0Zm9ybToKCiAgIGFkZCBjdXJyZW50IHBhdGggdG8gc2NyaXB0IHRvIG5zYi1mdW5jdGlvbiBzZWFyY2ggcGF0aAogICAKMjAwMi0wOS0wOSAwOToyOCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gZml4IGJ1ZyBwb2ludGVkIG91dCBieSBKYXJlZCBTbWl0aC1NaWNrZWxzb24gKGJ1ZyAjNjA1MTQ3KQogICAgICAgd2hlcmVieSBwYXNzaW5nIGFuIHVua25vd24gdHlwZSBjaGFyYWN0ZXIgdG8gc25tcF9hZGRfdmFyIHdvdWxkCiAgICAgICBjYXVzZSBhIHNlZ2ZhdWx0LgogICAKMjAwMi0wOS0wOSAwOTowOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBkb3VibGUgY2hlY2sgYSBwb2ludGVyIHZhbHVlIGJlZm9yZSB1c2luZyBpdC4KICAgCjIwMDItMDktMDkgMDk6MDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ3VycmVudCBoZWFkZXIgdXBkYXRlIHBhdGNoIGZvciBuZXRic2QgZnJvbSBQYXRyaWNrIFdlbGNoZS4KICAgCjIwMDItMDktMDYgMTg6MzAgIGRyaWVodWlzCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIE1hcmsgdGhlIG5vbi1yYXcgdmFyaWFudHMgb2Ygb2JqZWN0cyB0aGF0IGFyZSBhY2Nlc3NhYmxlIGFzIHJhdyBjb3VudGVycwogICBhcyBkZXByZWNhdGVkLCB0byAoaG9wZWZ1bGx5ISkgY3V0IGRvd24gb24gdGhlIG51bWJlciBvZiB1c2VycyB0aGF0IGdldAogICBiaXR0ZW4gYnkgaXQuLgogICAKMjAwMi0wOS0wNCAxNDozNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBhZGRlZCBCcnVjZSdzIGVtYWlsIGFkZHJlc3MKICAgCjIwMDItMDktMDQgMTQ6MjcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlczoKCiAgIGZpeCBwZXJsY2xlYW4KICAgCjIwMDItMDktMDQgMTQ6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBGaXggcHJvY2VzcyBncm91cGluZyBieSBjYWxsaW5nIHNldHNpZCgpIChyZXBvcnRlZCBieSBpcmM6VHJvZ0wpCiAgIAoyMDAyLTA5LTA0IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNoZWNrIGZvciBzZXRzaWQoKS4KICAgCjIwMDItMDktMDMgMTM6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZml4IGNhc2VzIHdoZXJlIHRoZXJlIGVpdGhlciBhcmUgbm8gdGFibGVzIG9yIG5vIHNjYWxhcnMuCiAgIAoyMDAyLTA5LTAzIDEzOjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGRvbid0IHVzZSBOVUxMIHZhcmlhYmxlcy4KICAgCjIwMDItMDktMDIgMjI6MzMgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjQucHJlMiApCiAgIAoyMDAyLTA5LTAyIDIyOjMzICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciByZWxlYXNlIDUuMC40LnByZTIKICAgCjIwMDItMDktMDIgMjI6MjIgIHJzdG9yeQoKICAgKiBtYW4vbmV0c25tcF9oYW5kbGVyLjM6CgogICB1cGRhdGVkIGRvY3MKICAgCjIwMDItMDktMDIgMjI6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMDktMDIgMjI6MTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1jb25maWc6CgogICB0cnkgYW5kIGd1ZXNzIGF0IHNyYyBkaXIgaWYgbm90IHNwZWNpZmllZAogICAKMjAwMi0wOS0wMiAyMjoxNSAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBhZGQgbm90ZSBhYm91dCBlcnIgd2hlbiBidWlsZGluZyBpbiBhbmQgb3V0IG9mIHNvdXJjZSB0cmVlCiAgIAoyMDAyLTA5LTAyIDIxOjU1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBmdWxsIHBhdGggdG8gdmVyc2lvbnRhZywgaW4gY2FzZSB3ZSBhcmUgYnVpbGRpbnQgb3V0c2lkZSBvZiBzcmMgZGlyZWN0b3J5CiAgIAoyMDAyLTA5LTAyIDIxOjM3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgcmVtb3ZlIGZvcmNlZCBwcm9tcHQgb24gZXJyb3JzCiAgIAoyMDAyLTA5LTAyIDIxOjM2ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgd2FybmluZ3Mgd2hlbiBWRVJTSU9OIGlzIHJlcXVpcmVkOyBhZGQgdGFyY2xlYW4gdGFyZ2V0OyBhZGQgdGFyY2xlYW4gdG8KICAgZGlzdGNsZWFuIHRhcmdldAogICAKMjAwMi0wOS0wMiAyMTozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBhZGQgbXNnIG9uIGVycm9yOyBhZGQgY2xlYW4gdGFyZ2V0CiAgIAoyMDAyLTA5LTAyIDIwOjI3ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSB3aW4zMiAmIEFnZW50WCBzdGF0dXMKICAgCjIwMDItMDktMDIgMjA6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgZml4IHRvIGF2b2lkIGxvY2tpbmcgdXAgdGhlIGFnZW50IHdoZW4gYSBzdWdhZ2VudCBkaWVzIGR1cmluZyBhIHNldCByZXF1ZXN0LiBXZQogICBtdXN0IGNsZWFuIHVwIHRoZSBkZWxlZ2F0ZWQgcmVxdWVzdHMgd2hlbiB0aGUgc2Vzc2lvbihzKSBhcmUgY2xvc2VkLCBzbyB0aGF0CiAgIHRoZXkgd2lsbCBiZSBwcm9jZXNzZWQgYW5kIHJlbW92ZWQsIGFsbG93aW5nIGZ1cnRoZXIgcmVxdWVzdHMgdG8gYmUgcHJvY2Vzc2VkLgogICAKMjAwMi0wOS0wMSAxMzo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgY2hhbmdlIHJlc3VsdCB0eXBlIGJhY2sgdG8gaW50LCBhcyBpdCBtYXkgcmVjZWl2ZSBhIG5lZ2F0aXZlIHZhbHVlCiAgIAogICBQTEVBU0UgY2hlY2sgdGhlIHVzZSBvZiBhIHZhcmlhYmxlIGJlZm9yZSBjaGFuZ2luZyBpcyBzaWduZWRuZXNzLCBlc3BlY2lhbGx5CiAgIGFyZW91bmQgcmVsZWFzZSB0aW1lIQogICAKMjAwMi0wOC0zMCAxNToxOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmg6CgogICBpbmNsdWRlIGNoZWNrX3ZhcmJpbmQuaAogICAKMjAwMi0wOC0zMCAxNToxOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGNoYW5nZSBOT1NVQ0hOQU1FIHRvIE5PU1VDSElOU1RBTkNFIGFnYWluLCBhcyBpdCBzZWVtcyB0aGUgYWdlbnRYIGZpeCBhbHNvCiAgIGNvcnJlY3RseSBkZWFscyB3aXRoIHRoaXMgZXJyb3IgY29kZQogICAKMjAwMi0wOC0zMCAwOToxNCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICAtIGRlbGV0ZSBzdW5zaXRlLmNubGFiLXN3aXRjaC5jaCBtaXJyb3IsIGFzIGl0IGlzbid0IG9uZSBhbnltb3JlLgogICAKMjAwMi0wOC0yOSAxMzozMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNoZWNrIGZvciBtb2R1bGVzIGJlZm9yZSBjb25maWd1cmluZyB0aGVtCiAgIAoyMDAyLTA4LTI5IDEwOjUyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBGaXggdGhlIGxhc3QgQUVTIGJ1ZyBJIGtub3cgb2YuICBBRVMxMjggd29ya3MgZ3JlYXQuCiAgICAgSSBzdGlsbCBOZWVkIHRvIGZpeCAxOTIvMjU2IGZvciBsb25nZXIga2V5IGdlbmVyYXRpb24gZnJvbSBNRDUvU0hBCiAgIAoyMDAyLTA4LTI5IDEwOjUyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgdXNlIHRoZSByaWdodCBwZXJsIG1vZHVsZSBuYW1lIGluIHRoZSB1c2UgbGluZS4KICAgCjIwMDItMDgtMjkgMDY6NDcgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICB3aW4zMi9jb25maWcuaDoKCiAgIE1vcmUgV2luMzItcmVsYXRlZCB0aWR5aW5nIHVwLgogICBUaGUgYWdlbnQgbm93IGNvbXBpbGVzIHdpdGggcmVsYXRpdmVseSBmZXcgd2FybmluZ3MuCiAgIAoyMDAyLTA4LTI5IDA0OjUwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmgsCiAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgd2luMzIvY29uZmlnLmgsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRGVjbGFyZSBuZXcgcm91dGluZSAnbmV0c25tcF9vaWRfZXF1YWxzJywgYW5kIGFzc29ydGVkIFdpbjMyIGNsZWFudXAgZml4ZXMuCiAgIAoyMDAyLTA4LTI4IDE0OjE1ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGNsYXJpZnkgY3ZzMmNsIHNjcmlwdCBuYW1lOyByZW1vdmUgLWIgZmxhZyBmcm9tIGN2czJjbCBwZXIgRGF2ZTsgYSBsaXR0bGUKICAgcmVvcmdhbml6YXRpb247IHB1dCBjb21tYW5kcyBvbiBzZXBhcmF0ZSBsaW5lcyBwcmVmaXhlZCB3aXRoICQ7IG5vdGUgNS54LzQueAogICBkaWZmZXJlbmNlcyBwZXIgRGF2ZSdzIGVtYWlsOyBwbHVnIG15IG5ldyBzY3JpcHRzIHdoZXJlIGFwcHJvcHJpYXRlCiAgIAoyMDAyLTA4LTI3IDE0OjQ4ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGFkZCBVUkwgZm9yIGN2czJjbDsgdXBkYXRlIGN2czJjbCBjbWRzIHRvIGN2czJjbC5wbCwgc2luY2UgdGhhdCdzIHRoZSBmaWxlCiAgIHRoYXQncyBhY3R1YWxseSBkaXN0cmlidXRlZAogICAKMjAwMi0wOC0yNyAwMDo1OSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHVwZGF0ZSBmb3IgcmVsZWFzZSA1LjAuNC5wcmUxCiAgIAoyMDAyLTA4LTI3IDAwOjI1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgRkFRLCBSRUFETUUsCiAgIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjQucHJlMSApCiAgIAoyMDAyLTA4LTI3IDAwOjI0ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciByZWxlYXNlIDUuMC40LnByZTEKICAgCjIwMDItMDgtMjcgMDA6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQgKDUuNiksIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kICg1LjUpLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQgKDUuNiksIGFwcHMvTWFrZWZpbGUuZGVwZW5kICg1LjUpLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCAoNS41KSwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKICAgKDUuNSk6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0wOC0yNyAwMDoxNyAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMyAoNS4zKSwgbmV0c25tcF9idWxrX3RvX25leHQuMyAoNS4zKSwKICAgbmV0c25tcF9kZWJ1Zy4zICg1LjMpLCBuZXRzbm1wX2hhbmRsZXIuMyAoNS4zKSwgbmV0c25tcF9pbnN0YW5jZS4zCiAgICg1LjMpLCBuZXRzbm1wX211bHRpcGxleGVyLjMgKDUuMyksIG5ldHNubXBfb2xkX2FwaS4zICg1LjMpLAogICBuZXRzbm1wX3JlYWRfb25seS4zICg1LjMpLCBuZXRzbm1wX3NjYWxhci4zICg1LjIpLAogICBuZXRzbm1wX3NlcmlhbGl6ZS4zICg1LjMpLCBuZXRzbm1wX3RhYmxlLjMgKDUuMyksCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMyAoNS4zKSwgbmV0c25tcF90YWJsZV9kYXRhLjMgKDUuMyksCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zICg1LjMpLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMgKDUuMyksCiAgIG5ldHNubXBfdG9kby4zICg1LjMpLCBuZXRzbm1wX3dhdGNoZXIuMyAoNS4yKToKCiAgIHVwZGF0ZSBtYW4gcGFnZXMgZm9yIDUuMC40LnByZTEKICAgCjIwMDItMDgtMjcgMDA6MTAgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1jb25maWcgKDEuMSk6CgogICBuZXcgZmlsZSB0byBjb25maWd1cmUgdXNpbmcgc2FtZSBvcHRpb25zIGFzIG5zYi1wYWNrYWdlIGZvciB0ZXN0IG9yIGRpc3QKICAgCjIwMDItMDgtMjcgMDA6MDkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlICgxLjMpOgoKICAgZG9uJ3QgYXBwZW5kIHN5cy1uYW1lIHdoZW4gYnVpbGRpbmcgaW4gc3JjIHRyZWUKICAgCjIwMDItMDgtMjcgMDA6MDkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnMgKDEuMTkpOgoKICAgZml4IHR5cG8KICAgCjIwMDItMDgtMjcgMDA6MDYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnMgKDEuMTgpOgoKICAgcmVuYW1lIG5zYi1nZXQtY29uZmcgLT4gbnNiLWNvbmZpZy1kaXN0OyB1c2UgZG91YmxlIHF1b3RlcyBjdXogb2Ygc29tZQogICB3aWVyZCBzaGVsbCB0aGluZyBJIGRvbid0IHlldCB1bmRlcnN0YW5kOyBjaGVjayBmb3Igc3JjIGRpciBpbiBjb25maWcqCiAgIAoyMDAyLTA4LTI2IDIzOjM0ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4gKDUuMTIpOgoKICAgdHdlYWsgY29tbWVudGNoZWNrIHRhcmdldCB0byB3b3JrIG91dHNpZGUgdGhlIHNvdXJjZSB0cmVlCiAgIAoyMDAyLTA4LTI2IDIzOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICg1LjMpLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICg1LjEpLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oICg1LjIpLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmggKDUuMSksIHNubXBsaWIvd2luc2VydmljZS5jCiAgICg1LjEpOgoKICAgcmVtb3ZlIEMrKyBzdHlsZSBjb21tZW50cyAoYW5kIGFueXRoaW5nIHRoYXQgZXZlbiByZW1vdGVseSByZXNlbWJsZXMgb25lKQogICAKMjAwMi0wOC0yNiAxNzo0NyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucyAoMS4xNyk6CgogICBwYXNzIG1ha2UgcGFyYW1zIHRvIG1ha2UsIHNvIHdlIGRvbid0IHRyeSB0byBpbnN0YWxsIGluIC91c3IvbG9jYWwvYmluIG9mCiAgIHRoZSBjb21waWxlIHNlcnZlcnMuLi4gOi0vCiAgIAoyMDAyLTA4LTI2IDE3OjM5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjE2KToKCiAgIG1ha2UgZGlzdCAmIGV4dHJhIHRyYW5zcG9ydHM7IG5vIGlwdjYgb24gRGFyd2luOyBtYWtlIHRvdWNoaXQgYmVmb3JlIG1ha2UKICAgCjIwMDItMDgtMjYgMTc6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMgKDUuNCk6CgogICByZXBsYWNlIHVfaW50MzJfdCwgd2hpY2ggZG9lc24ndCBjb21waWxlIG9uIFN1biA1LjgsIHdpdGggdV9pbnQKICAgCjIwMDItMDgtMjYgMTY6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYyAoNS4yKToKCiAgIGZpeCB1bmRlY2xhcmVkIHZhcmlhYmxlIGVycm9yIHNwb3R0ZWQgb24gU3VuLCB3aGljaCBsaW51eCBtaXNzZWQgY29tcGxldGVseS4KICAgSSBoYXZlIG5vIGlkZWEgaG93IHRoaXMgY29tcGlsZWQgYmVmb3JlISEKICAgCjIwMDItMDgtMjYgMTY6NDMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnMgKDEuMTUpOgoKICAgY2xlYW5lciB3YXkgdG8gYWRkIHN5c3RlbSBzcGVjaWZpYyBtb2R1bGVzOyBkaXNhYmxlIHBlcmwsIGFzIGl0IGJyZWFrcwogICBidWlsZHMgb3V0c2lkZSBvZiB0aGUgc291cmNlIHRyZWUKICAgCjIwMDItMDgtMjYgMTU6NDUgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnMgKDEuMTQpOgoKICAgb25seSBjb25maWd1cmUgSVBYIG9uIExpbnV4CiAgIAoyMDAyLTA4LTI2IDE1OjQ0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjEzKToKCiAgIG9ubHkgY29uZmlndXJlIElQWCBvbiBMaW51eDsgYmFpbCBvbiBjb25maWd1cmUgZXJyb3JzCiAgIAoyMDAyLTA4LTI2IDE1OjA0ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0cyAoMS40KToKCiAgIGFkZCBzdWdnZXN0aW9uIHRvIHN5bWxpbmsgbnNiLSogaW4gbG9jYWwgYmluIGRpcgogICAKMjAwMi0wOC0yNiAxNTowMyAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItcGFja2FnZSAoMS4yKSwgbnNiLWZ1bmN0aW9ucyAoMS4xMik6CgogICBhZGQgb3B0aW9uIGZvciBwcmUtcmVsZWFzZSB0ZXN0IGNvbmZpZ3VyZSBvcHRpb25zCiAgIAoyMDAyLTA4LTI2IDE1OjAyICByc3RvcnkKCiAgICogUkVBRE1FLnNubXB2MyAoNS4zKToKCiAgIG1ha2Ugc2VjdGlvbiBoZWFkZXJzIHN0YW5kIG91dCBtb3JlOyBtb3ZlIG5vdGUgYWJvdXQgZW5jcnlwdGlvbiBub3QgYmVpbmcKICAgZW5hYmxlZCB0byBhIG1vcmUgcHJvbWluZW50IHBsYWNlLgogICAKMjAwMi0wOC0yNCAyMToyNCAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYwogICAoVjQtMi1wYXRjaGVzLlszNywzXSk6CgogICBNZXJnZSBmcm9tIEhFQUQ6IGRldGVjdCB0aGUgcmVxdWlyZW1lbnQgZm9yIGxpbmtpbmcgd2l0aCAtbGRldnN0YXQuCiAgIFVnbHkgaGFjayB0byBtYWtlIHN1cmUgZGlza2lvIGRldmljZSBuYW1lcyBpbmNsdWRlIHRoZSBkZXZpY2UgbnVtYmVyLgogICAKMjAwMi0wOC0yMyAxMTo0NiAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbiAoVjQtMi1wYXRjaGVzLjMpOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMDgtMjIgMDg6MzEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNy5oICg1LjIpOgoKICAgICAtIERPTlRfVVNFX05MSVNUIHJlaW5zdGF0ZWQsIHNvIE5PX0tNRU1fVVNBR0UgcmVkdW5kYW50CiAgIAoyMDAyLTA4LTIyIDA4OjI5ICBqYnBuCgogICAqIGFjY29uZmlnLmggKDUuOSksIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gKDUuMTApOgoKICAgICAtIHJlaW5zdGF0ZSB0ZXN0IGZvciBET05UX1VTRV9OTElTVAogICAKMjAwMi0wOC0yMiAwNzoxMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jICg1LjEwKToKCiAgICAgLSBzdG9wIGFuZCByZXN0YXJ0IGxvZ2dpbmcgd2hlbiBIVVBwZWQuICBUaGlzIGFsbG93cyBsb2dmaWxlcyB0byBiZQogICAgICAgcm90YXRlZCBhbmQgc28gZm9ydGguCiAgIAoyMDAyLTA4LTIyIDA3OjA2ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmMgKFY0LTItcGF0Y2hlcy4yNCk6CgogICAgIC0gc3RvcCBhbmQgcmVzdGFydCBsb2dnaW5nIHdoZW4gSFVQcGVkLiAgVGhpcyBhbGxvd3MgbG9nZmlsZXMgdG8gYmUKICAgICAgIHJvdGF0ZWQgYW5kIHNvIGZvcnRoLgogICAKMjAwMi0wOC0yMiAwNDozMSAgZHRzMTIKCiAgICogUkVBRE1FLnNubXB2MyAoNS4yKToKCiAgIEFkZCB0aGUgbWlzc2luZyAnLXgvWCcgb3B0aW9ucyB0byB0aGUgZXhhbXBsZSBhdXRoUHJpdiBjb21tYW5kIGxpbmUKICAgICAocmVwb3J0ZWQgYnkgUHJhc2FkYSBSIFZhbmtheWFsYXBhdGkpCiAgIAoyMDAyLTA4LTIwIDExOjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAoNS42KSwgYXBwcy9zbm1wdHJhcGQuYyAoNS40KSwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oICg1LjMpLCBGQVEgKDUuMTcpOgoKICAgcXVpZXQgc25tcHRyYXBkIHdoZW4gaXQgY2FuJ3QgY29ubmVjdCB0byB0aGUgYWdlbnR4IG1hc3Rlci4KICAgCjIwMDItMDgtMjAgMDg6NTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNy5oICg1LjEpOgoKICAgICAtIGFkZCAjZGVmaW5lIE5PX0tNRU1fVVNBR0UgMSBzaW5jZSBuZXQtc25tcC1jb25maWcuaC5pbiBubyBsb25nZXIKICAgICAgIHBheXMgYXR0ZW50aW9uIHRvIHRoZSBET05UX1VTRV9OTElTVCB0b2tlbi4gIE9taXNzaW9uIG9mIHRoaXMKICAgICAgIGNhdXNlcyB0aGUgYWdlbnQgdG8gZXhpdCB3aXRoIHRoZSBtZXNzYWdlICJpbml0X2ttZW06IGt2bV9vcGVuCiAgICAgICBmYWlsZWQ6IGVycm9yIDAiLgogICAKICAgICAgIE5PVEU6IHRoaXMgbWF5IG5lZWQgYXBwbHlpbmcgdG8gb3RoZXIgbWVtYmVycyBvZiB0aGUgU29sYXJpcyAyCiAgICAgICBmYW1pbHksIGJ1dCBJIGRvbid0IGhhdmUgbWFjaGluZXMgdG8gaGFuZCB0byB0ZXN0IHRoaXMuCiAgIAoyMDAyLTA4LTIwIDA4OjQ4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyAoNS4yKToKCiAgICAgLSBkZXRlY3QgZ2lnYWJpdCBldGhlcm5ldCBkZXZpY2VzIChnZU4pCiAgICAgLSB1bmRvIGluZGVudCBtYXloZW0KICAgCjIwMDItMDgtMjAgMDU6NTcgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCAoNS4xKToKCiAgICAgLSBmb3Igbm93LCBkb24ndCAjaW5jbHVkZSBzbm1wX2xvY2tpbmcuaCBzaW5jZSBpdCBicmVha3MgcmUtZW50cmFudAogICAgICAgc3VwcG9ydCAoYmVjYXVzZSBtdXRleF90eXBlIGdldHMgbXVsdGlwbHktZGVmaW5lZCkuICBGdXJ0aGVybW9yZSwgdGhlCiAgICAgICBmdW5jdGlvbnMgaXQgZGVjbGFyZXMgYXJlIG5ldmVyIHVzZWQgYW55d2hlcmUsIG5vciBkZWZpbmVkIGFueXdoZXJlLgogICAKMjAwMi0wOC0yMCAwNTo1NiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oICg1LjEpOgoKICAgICAtIGRvbid0IGRlZmluZSAiZG8gbm90aGluZyIgbWFjcm9zIGZvciBzbm1wX3Jlc19sb2NrIGV0IGFsLiBmdW5jdGlvbnMKICAgICAgIG9uIFdpbjMyIHBsYXRmb3JtIChzaW5jZSByZWFsICJkbyBub3RoaW5nIiBmdW5jdGlvbnMgYXJlIHJlcXVpcmVkIGZvcgogICAgICAgcmVhc29ucyBiZXN0IGtub3duIHRvIHNvbWVvbmUgZWxzZSkuCiAgICAgLSB1bm1hbmdsaW5nCiAgIAoyMDAyLTA4LTIwIDA1OjU0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvY2tpbmcuaCAoNS4xKToKCiAgICAgLSBmaXggaGlnaGx5IGJvZ3VzIG5vbi1DIHN5bnRheAogICAKMjAwMi0wOC0yMCAwNTo1MyAgamJwbgoKICAgKiBzbm1wbGliL210X3N1cHBvcnQuYyAoNS4xKToKCiAgICAgLSBzbm1wX3Jlc19sb2NrIGV0IGFsLiBmdW5jdGlvbnMgbm8gbG9uZ2VyICNkZWZpbmVkIHRvICJkbyBub3RoaW5nIgogICAgICAgdGFyZ2V0cyBmb3IgV2luMzIgaW4gbXRfc3VwcG9ydC5oLCB0aGVyZWZvcmUgbm8gbmVlZCB0byAjdW5kZWYgdGhlbQogICAgICAgaGVyZS4KICAgICAtIHVubWFuZ2xpbmcKICAgCjIwMDItMDgtMjAgMDE6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAoNS4yKToKCiAgIGhlYWRlcnMgZm9yIGNhY2hlIGVuYWJsaW5nIGZ1bmN0aW9ucy4KICAgCjIwMDItMDgtMjAgMDE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAoNS4zKToKCiAgIGRvbid0IHVzZSBub24tZXhpc3RlbnQgbWVtb3J5IHBvaW50ZXJzIHRvIHRoZSByZXNwb25zZSBkYXRhIChlZzogInRpbWVvdXQiKQogICAKMjAwMi0wOC0xOSAxNzo0NiAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCAoNS4xKToKCiAgIENoYW5nZSBhIGZldyBjb25kaXRpb25hbHMgdG8gdXNlICNpZiBpbiBwbGFjZSBvZiAjaWZkZWYKICAgCjIwMDItMDgtMTkgMTc6MjggIG5iYQoKICAgKiBzbm1wbGliLzogbWliLmMgKDUuMTcpLCBwYXJzZS5jICg1LjQpOgoKICAgQWxpZ24gd2l0aCA0LjIgYnJhbmNoCiAgIAoyMDAyLTA4LTE5IDE3OjI2ICBuYmEKCiAgICogbWlicy86IERJU01BTi1TQ0hFRFVMRS1NSUIudHh0ICg1LjEpLAogICBJQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCLnR4dCAoNS4xKSwgSUFOQWlmVHlwZS1NSUIudHh0CiAgICg1LjEpLCBJTkVULUFERFJFU1MtTUlCLnR4dCAoNS4xKSwgTWFrZWZpbGUubWliICg1LjIpLCBpYW5hbGlzdAogICAoNS4xKSwgbWliZmV0Y2ggKDUuMSksIHJmY2xpc3QgKDUuMSk6CgogICBVcGRhdGUgdG8gY3VycmVudCBNSUJzCiAgIAoyMDAyLTA4LTE5IDE3OjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgKDUuNyk6CgogICBCYWlsIG91dCBmb3IgYmFkIHNubXBBZG1pblN0cmluZyB2YWx1ZQogICAKMjAwMi0wOC0xOSAxMDo0MyAgamJwbgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy41MyksIEZBUSAoNS4xNik6CgogICAgIC0gZG9uJ3QgdXNlIHBvc2l0aW9uYWwgY29tbXVuaXR5IHBhcmFtZXRlciBpbiBleGFtcGxlcwogICAgIC0gYnJlYWsgYSBjb3VwbGUgb2Ygb3Zlci1sb25nIGxpbmVzCiAgICAgLSBtZW50aW9uIG5ldHNubXBfIHZhcmlhbnQgb2YgZHNfc2V0XyBmdW5jdGlvbgogICAKMjAwMi0wOC0xOSAwNTo0NCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNTIpLCBGQVEgKDUuMTUpOgoKICAgQWRkIGFuIGVudHJ5IGFib3V0IHRoZSBzbm1wdHJhcGQvQWdlbnRYIHdhcm5pbmcgbWVzc2FnZS4KICAgCjIwMDItMDgtMTggMjE6MjQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnMgKDEuMTEpOgoKICAgZG9uJ3QgY29uZmlndXJlIHdpdGggYnVpbGQgaW5zdGFsbCBkaXIsIGl0IGlzIGFscmVhZHkgc3BlY2lmaWVkIG9uIGNtZCBsaW5lCiAgIGZvciBtYWtlIGluc3RhbGwKICAgCjIwMDItMDgtMTggMTM6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgKDUuNyk6CgogICBtb3JlIGRlYnVnZ2luZyAtIGxvZyB2YWx1ZSByZXF1ZXN0IGlzIHRyeWluZyB0byBzZXQKICAgCjIwMDItMDgtMTYgMTg6MTMgIGhhcmRha2VyCgogICAqIFJFQURNRSAoNS45KToKCiAgIGFkZGVkIEJydWNlIFNoYXcgdG8gdGhlIHRoYW5rcyBsaXN0CiAgIAoyMDAyLTA4LTE2IDE4OjEyICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc29sYXJpcyAoMS4yKToKCiAgIEEgZ3JlYXQgdXBkYXRlIHRhbGtpbmcgYWJvdXQgcGVybCBhbmQgc29sYXJpcyBmcm9tIEJydWNlIFNoYXcKICAgCjIwMDItMDgtMTYgMDQ6NTEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAoNS40KToKCiAgIENhdGNoIGV4cGxpY2l0bHkgJ25vU3VjaEluc3RhbmNlJyBleGNlcHRpb25zLCB3aGVuIHdhbGtpbmcgYW4KICAgaXRlcmF0b3ItaGFuZGxlZCBtb2R1bGUsIHNvIHRoYXQgaG9sZXMgY2FuIGJlIHNraXBwZWQgYW5kIHRoZQogICBuZXh0IHJlYWwgaW5zdGFuY2UgcmV0cmlldmVkLiAgKFRoaXMgd2FzIGFscmVhZHkgaGFuZGxlZCBmb3IKICAgbW9kdWxlcyB0aGF0IGRpZG4ndCBtYXJrIG1pc3NpbmcgaW5zdGFuY2VzIGV4cGxpY2l0bHkpLgogICAKMjAwMi0wOC0xNiAwMzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jICg1LjEzKToKCiAgIHR1cm4gb2ZmIGNhY2hpbmcgYnkgZGVmYXVsdCwgc2luY2UgdGhlIGFnZW50eCBjb2RlIGFwcGVhcnMgYnJva2VuLgogICAKMjAwMi0wOC0xNiAwMzowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jICg1LjUpLCBzbm1wX2FnZW50LmMgKDUuMTIpOgoKICAgc3BlZWQgZW5oYW5jZW1lbnRzIHZpYSBpbXBsZW1lbnRpbmcgYSByZWdpc3RyYXRpb24gc3VidHJlZSBsb29rdXAKICAgY2FjaGUuICBncmVhdGx5IHNwZWVkcyB0aGluZ3MgdXAgd2hlbiBzaW1pbGFyIHJlcXVlc3RzIGNvbWUgaW4KICAgKHNubXB3YWxrLCAuLi4pLgogICAKMjAwMi0wOC0xNSAxMzozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jICg1LjMpOgoKICAgcHJvdGVjdCBhZ2FpbnN0IE5VTEwgbGFiZWxzIGluIHN1YnRyZWVzCiAgIAoyMDAyLTA4LTE1IDExOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jICg1LjMpLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICg1LjQpLAogICBhZ2VudC9hZ2VudF90cmFwLmMgKDUuMSksIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICg1LjIpLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jICg1LjEpLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICg1LjEpLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMgKDUuMiksIHNubXBsaWIvc25tcHVzbS5jICg1LjMpOgoKICAgdXNlIG5ldHNubXBfb2lkX2VxdWFscyAod2hpY2ggaXMgc29tZXRpbWVzIGZhc3RlciB0aGFuCiAgIHNubXBfb2lkX2NvbXBhcmUpIGluIGEgZmV3IHBsYWNlcyB0byBhY2hpZXZlIGJhcmVseSBub3RpY2VhYmxlIHNwZWVkIGdhaW5zLgogICAKMjAwMi0wOC0xNSAxMToxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jICg1LjIpOgoKICAgZG91YmxlIGNoZWNrIGEgcG9pbnRlciBleGlzdHMgYmVmb3JlIHBhc3NpbmcgaXQgdG8gc3RyY21wKCkKICAgCjIwMDItMDgtMTUgMTE6MDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTCAoNS43KToKCiAgIGNoYW5nZSBNQU4zUE9EUyB0byBzb21ldGhpbmcgY29tcGxpYW50IHdpdGggdGhlIHBlcmwgbWFudWFscy4gIEkgdGhpbmsuCiAgIAoyMDAyLTA4LTE0IDEzOjQyICByc3RvcnkKCiAgICogYXBwcy9zbm1wc2V0LmMgKDUuMik6CgogICBhZGQgZGVidWcgZm9yIGxvY2FsIHBhcnNpbmcgb2YgYXJncwogICAKMjAwMi0wOC0xNCAxMjoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICg1LjUpLCBtYXN0ZXJfYWRtaW4uYyAoNS40KSwKICAgc3ViYWdlbnQuYyAoNS41KToKCiAgIGFkZCBtb3JlIGRldGFpbGVkIGluIGRlYnVnIG1lc3NhZ2VzOyBhZGQgYSBmZXcgbmV3IGRlYnVncwogICAKMjAwMi0wOC0xNCAxMjoyMyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYyAoNS4xMSk6CgogICB3aGVuIGFsbCBkZWxlZ2F0ZWQgcmVxdWVzdHMgaGF2ZSBmaW5pc2hlZCwgY2hlY2sgYWxsIHJlcXVlc3RzIHN0YXR1cyBzbyB0aGF0CiAgIGFzcCBzdGF0dXMgaXMgc2V0LCB3aGljaCBpcyBuZWNlc3NhcnkgZm9yIGNvcnJlY3QgYWdlbnR4IHNldCBwcm9jZXNzaW5nLgogICAobm93IGlmIEkgY2FuIGp1c3QgZ2V0IGFsbCB0aGlzIGhhaXIgb2ZmIHRoZSBmbG9vciwgYW5kIGdsdWUgaXQgYmFjayB0byBteQogICBoZWFkLCBhbmQgdGhlbiBmaXggdGhhdCBkZW50IGluIHRoZSB3YWxsIHdoZXJlIEkndmUgYmVlbiBiYW5naW5nIG15IGhlYWQuLi4uKQogICAKMjAwMi0wOC0xMyAxNzoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jICg1LjE0KToKCiAgIGZpeCBhIGxlbmd0aCBjb21wYXJpc29uIHByb2JsZW0gd2l0aCBuZXRzbm1wX29pZF9pc19zdWJ0cmVlKCkKICAgCjIwMDItMDgtMTMgMTc6MjQgIGhhcmRha2VyCgogICAqIE5FV1MgKDUuNik6CgogICBkb2N1bWVudCBhIGZldyByZWNlbnQgY2hhbmdlcy4KICAgCjIwMDItMDgtMTMgMTc6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYyAoNS4xKToKCiAgIEZpeCBvcGVuIGZpbGUgcnVuYXdheSBvbiBzb2xhcmlzLiAgU2VlIGJ1ZyAjNTkyODA2IHJlcG9ydGVkIGJ5IEphbWVzIElyd2luLgogICAKMjAwMi0wOC0xMyAxNTowNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCAoNS43KToKCiAgIGFycmF5IG9mIHBvaW50ZXJzID0gcG9pbnRlciB0byBhIHBvaW50ZXIKICAgCjIwMDItMDgtMDkgMTk6MzIgIGhhcmRha2VyCgogICAqIGxvY2FsL0ZBUTJIVE1MICg1LjEpOgoKICAgbWlzYyBkb2MgZml4ZXMuCiAgIAoyMDAyLTA4LTA5IDE5OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICg1LjQpLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCAoNS4yKSwgc25tcGxpYi9zbm1wdXNtLmMKICAgKDUuMiksIHNubXBsaWIvc25tcHYzLmMgKDUuMyk6CgogICBpbml0aWFsIEFFUyBzdXBwb3J0LgogICAKMjAwMi0wOC0wOSAxOTozMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmggKDUuMiksIHNubXBsaWIvc25tcF9hcGkuYwogICAoNS4xMyk6CgogICBzbGlnaHQgc3BlZWQgdXBzIGZvciBzbm1wX29pZF9jb21wYXJlKCkgdG8gZG8gc2luZ2xlIGludCBjb21wYXJlcyB0aWxsICE9CiAgIAoyMDAyLTA4LTA5IDE5OjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmMgKDUuMik6CgogICAtIG9wZW5zc2wgMC45Ljcgc3VwcG9ydCBmb3IgREVTIGNoYW5nZXMuCiAgIC0gaW5pdGlhbCBBRVMgc3VwcG9ydC4KICAgCjIwMDItMDgtMDkgMTk6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYyAoNS4yKToKCiAgIGluZGVudCBmaXhlcy4KICAgCjIwMDItMDgtMDkgMTk6MjcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHNjYXBpLmggKDUuMSksIHNubXB1c20uaCAoNS4xKToKCiAgIGRlZmluZSBBRVMga2V5IHNwZWNpZmljcwogICAKMjAwMi0wOC0wOSAxOToyNiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCAoNS44KSwgY29uZmlndXJlICg1LjE3KSwgY29uZmlndXJlLmluICg1LjE1KSwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiAoNS45KToKCiAgIC0gY2hlY2sgZm9yIG9wZW5zc2wgLjAuOS43IERFUyBzdHJ1Y3R1cmVzIGFuZCBmdW5jdGlvbnMuCiAgIC0gY2hlY2sgZm9yIEFFUyBzdXBwb3J0IGluIG9wZW5zc2wgKD4gMC45LjcpCiAgIAoyMDAyLTA4LTA5IDE5OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAoNS40KToKCiAgIGZpeCBtb2RlIHByb2Nlc3NpbmcgZm9yIFJFU0VSVkUxL1JFU0VSVkUyIHRlc3QgZmFpbHVyZXMKICAgCjIwMDItMDgtMDkgMTg6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMgKDUuMTApOgoKICAgbG9nIG1zZyB3aGVuIHdlIGlnbm9yZS9maXggaWxsZWdhbCBlcnJvcl92YWx1ZXMgZm9yIHRoZSBjbGllbnQgQVBJcwogICAKMjAwMi0wOC0wOSAxODoyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZiAoNS4xMik6CgogICBjb3JyZWN0aW9ucyB0byBleGFtcGxlIGNvZGUKICAgCjIwMDItMDgtMDkgMTg6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgKDUuNik6CgogICByZXZlcnQgZXJyb3JzIHRvIHVuaW5mb3JtYXRpdmUgU05NUHYxIG5vU3VjaE5hbWUgZm9yIEFnZW50WCBnZXQtbmV4dC9pbmNsdXNpdmUKICAgcHJvY2Vzc2luZzsgYWxzbyBhZGQgbW9yZSBjb21tZW50cyBoZXJlIGFuZCB0aGVyZQogICAKMjAwMi0wOC0wOSAxNzowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAoNS40KToKCiAgIGRlYnVnIG1zZyBmb3IgYWdlbnR4IG9pZCBmb3IgY2FzZXMgb3RoZXIgdGhhbiBnZXQvZ2V0bmV4dAogICAKMjAwMi0wOC0wOSAxMTo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAoNS4zKToKCiAgIGRvbid0IGZyZWUgcmVnaXN0cmF0aW9uIGluZm8gb24gZmFpbHVyZSwgYXMgbmV0c25tcF9yZWdpc3Rlcl9taWIgYWxyZWFkeSBkaWQgaXQKICAgCjIwMDItMDgtMDkgMDk6NTcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgKDUuMiksIHNubXBDYWxsYmFja0RvbWFpbi5jICg1LjEpLAogICBzbm1wSVBYRG9tYWluLmMgKDUuMSksIHNubXBUQ1BEb21haW4uYyAoNS40KSwgc25tcFRDUElQdjZEb21haW4uYwogICAoNS41KSwgc25tcFVEUERvbWFpbi5jICg1LjYpLCBzbm1wVURQSVB2NkRvbWFpbi5jICg1LjcpLAogICBzbm1wVW5peERvbWFpbi5jICg1LjQpLCBzbm1wX3RyYW5zcG9ydC5jICg1LjEpOgoKICAgICAtIHJlbmFtZSBzbm1wXzxkb21haW4+X2JsYWggZnVuY3Rpb25zIHRvIG5ldHNubXBfPGRvbWFpbj5fYmxhaAogICAgIC0gbWFrZSB0cmFuc3BvcnQgbWVtYmVyIGZ1bmN0aW9ucyBzdGF0aWMsIHRvIGVtcGhhc2lzZSB0aGF0IHRoZXkgc2hvdWxkCiAgICAgICBub3QgYmUgdXNlZCBkaXJlY3RseQogICAgIC0gaGFuZGxlIEVJTlRSIGluIHNlbmQgYW5kIHJlY3YgZnVuY3Rpb25zIChhcyBwb2ludGVkIG91dCBieSBBbnR0aSBLdW50c2kKICAgICAgIGluIGJ1ZyByZXBvcnQgIzU3NjgwNikKICAgICAtIGZvcm1hdHRpbmcgZml4ZXMKICAgCjIwMDItMDgtMDkgMDk6NTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc25tcEFBTDVQVkNEb21haW4uaCAoNS4zKSwKICAgc25tcElQWERvbWFpbi5oICg1LjIpLCBzbm1wVENQRG9tYWluLmggKDUuMiksIHNubXBUQ1BJUHY2RG9tYWluLmgKICAgKDUuMyksIHNubXBVRFBEb21haW4uaCAoNS4yKToKCiAgICAgLSBtaW5vciBmb3JtYXR0aW5nIGZpeGVzCiAgIAoyMDAyLTA4LTA5IDA5OjU0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oICg1LjMpOgoKICAgICAtIGRvbid0IGV4cG9ydCBuZXRzbm1wX3VuaXhfYmxhaCgpIGZ1bmN0aW9ucwogICAKMjAwMi0wOC0wOSAwOTo1MyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCAoNS4xKToKCiAgICAgLSBmaXggbmFzdHkgZm9ybWF0dGluZwogICAKMjAwMi0wOC0wOCAxMjoxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcHYzLmMgKDUuMik6CgogICByZXdvcmQgY29uZmlnX3BlcnJvciBtc2dzIHRvIHJlbW92ZSAiRXJyb3IiLCBhcyBpdCBpcyByZWR1bmRhbnQKICAgCjIwMDItMDgtMDggMTI6MTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2tleXRvb2xzLmMgKDUuMSk6CgogICByZW1vdmUgaWZkZWYgdG8gbG9nIG1zZyB0byB1c2VyLCBhZnRlciBtYWtpbmcgbXNnIG1vcmUgaW5mb3JtYXRpdmU7IHJlbW92ZQogICBhbm5veWluZyBibGFuayBsaW5lcwogICAKMjAwMi0wOC0wOCAxMTozMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCAoNS43KSwgY29uZmlndXJlICg1LjE2KSwgY29uZmlndXJlLmluICg1LjE0KToKCiAgIFBhdGNoIGZyb20gSGFycmllIHRvIGNvbXBsZXRlbHkgZGlzYWJsZSBrbWVtIHVzYWdlCiAgIAoyMDAyLTA4LTA2IDAzOjMwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICg1LjMpOgoKICAgICAtIHNldCBtYWluX3Nlc3Npb24gdG8gTlVMTCBpbiBzdWJhZ2VudF9zaHV0ZG93bigpLiAgVGhpcyAoYWxvbmcgd2l0aCB0aGUKICAgICAgIGRlcmVnaXN0cmF0aW9uIG9mIGFsbCBhbGFybXMpIGFsbG93cyBBZ2VudFggZnVuY3Rpb25hbGl0eSB0byBiZQogICAgICAgc3RvcHBlZCBhbmQgcmVzdGFydGVkIGluIHN1YmFnZW50cy4KICAgICAtIFRoYW5rcyB0byBWaXNoYWwgVmVybWEgZm9yIG9yaWdpbmFsIHBhdGNoCiAgIAoyMDAyLTA4LTA2IDAzOjI3ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmggKDUuMSk6CgogICAgIC0gYWRkIHNubXBfYWxhcm1fdW5yZWdpc3Rlcl9hbGwoKSBmdW5jdGlvbgogICAKMjAwMi0wOC0wNiAwMzoyNiAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9hbGFybS5jICg1LjMpLCBzbm1wX2FwaS5jICg1LjEyKToKCiAgICAgLSBhZGQgc25tcF9hbGFybV91bnJlZ2lzdGVyX2FsbCgpIGZ1bmN0aW9uCiAgICAgLSBjYWxsIGl0IGZyb20gc25tcF9zaHV0ZG93bigpCiAgICAgLSB0aGFua3MgdG8gVmlzaGFsIFZlcm1hIGZvciBvcmlnaW5hbCBwYXRjaAogICAKMjAwMi0wOC0wNiAwMzoxNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYyAoVjQtMi1wYXRjaGVzLjQpOgoKICAgICAtIGFkZCBkZWJ1Z2dpbmcgb3V0cHV0IHdoZW4gYWxsIGFsYXJtcyB1bnJlZ2lzdGVyZWQKICAgCjIwMDItMDgtMDYgMDM6MTAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgKFY0LTItcGF0Y2hlcy40KToKCiAgICAgLSBzZXQgbWFpbl9zZXNzaW9uIHRvIE5VTEwgaW4gc3ViYWdlbnRfc2h1dGRvd24oKS4gIFRoaXMgKGFsb25nIHdpdGggdGhlCiAgICAgICBkZXJlZ2lzdHJhdGlvbiBvZiBhbGwgYWxhcm1zKSBhbGxvd3MgQWdlbnRYIGZ1bmN0aW9uYWxpdHkgdG8gYmUKICAgICAgIHN0b3BwZWQgYW5kIHJlc3RhcnRlZCBpbiBzdWJhZ2VudHMuCiAgICAgLSBUaGFua3MgdG8gVmlzaGFsIFZlcm1hIGZvciB0aGlzIHBhdGNoICgjNTU4NTE3KQogICAKMjAwMi0wOC0wNiAwMzowOCAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9hbGFybS5jLCBzbm1wX2FsYXJtLmgsIHNubXBfYXBpLmMKICAgKFY0LTItcGF0Y2hlcy5bMywxLDM2XSk6CgogICAgIC0gYWRkIHNubXBfYWxhcm1fdW5yZWdpc3Rlcl9hbGwoKSBmdW5jdGlvbgogICAgIC0gY2FsbCBpdCBmcm9tIHNubXBfc2h1dGRvd24oKQogICAgIC0gdGhhbmtzIHRvIFZpc2hhbCBWZXJtYSBmb3IgcHJvdmlkaW5nIHRoaXMgcGF0Y2gKICAgCjIwMDItMDgtMDUgMTA6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYgKDUuMyk6CgogICBtYXRjaCBmdW5jdGlvbiBkZWZpbml0aW9uIHcvTmV0c25tcF8qX0RhdGFQb2ludCB0eXBlZGVmczsgYWRkIGN2cyBJZAogICAKMjAwMi0wOC0wMyAxMTo1MiAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlMgKDEuNSk6CgogICBicmVhayB1cCBsaW5lcyBsb25nIHRoYW4gODAgY2hhcnM7IGFiY2RlLCBub3QgYWJjZGQKICAgCjIwMDItMDgtMDMgMDM6MjEgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlMgKDEuNCk6CgogICBtb3JlIHVwZGF0ZXMgYWJvdXQgdGhpbmdzIFdlcyBkb2VzIGF0IDEyOjMwIGFtCiAgIAoyMDAyLTA4LTAzIDAyOjQ0ICBoYXJkYWtlcgoKICAgKiBGQVEgKDUuMTQpLCBSRUFETUUgKDUuOCksIHNlZHNjcmlwdC5pbiAoNS42KSwgcGVybC9TTk1QL1NOTVAucG0KICAgKDUuMTIpLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jICg1LjUpOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC4zICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuMiAtPiBWNS4wLjMKCjIwMDItMDgtMDIgMjM6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50Ly5jdnNpZ25vcmU6CgogICBhZGQgLmxpYnMKICAgCjIwMDItMDgtMDIgMjM6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBmaWxlCiAgIAoyMDAyLTA4LTAyIDIzOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMDgtMDIgMjM6MzcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmb3Jnb3R0ZW4gdG8gY2hlY2sgaW4gdGVzdCBmb3IgcGVybF9ldiBjaGFuZ2VzCiAgIAoyMDAyLTA4LTAyIDIzOjM1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIHJlbW92ZSBkZWJ1Z2dpbmcgcHJpbnQgKG9wcHMpCiAgIAoyMDAyLTA4LTAyIDIzOjM1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgZml4IGRlZmF1bHQgdmVyc2lvbiB1c2FnZS4KICAgCjIwMDItMDgtMDIgMjM6MzQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFBhdGNoICM1NzIzOTQgZnJvbSBLYXRzdWhpc2EgQUJFOgogICAgIC0gc3VwcG9ydCBsaW5rIGxvY2FsIGFkZHJlc3NlcwogICAgIC0gYmluZCB0byBpcHY2IG9ubHkgaWYgSVBWNl9WNk9OTFkgaXMgZGVmaW5lZC4KICAgCjIwMDItMDgtMDIgMjM6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBmaXggY29uZmlndXJlIHNwZWNpZmllZCBkZWZhdWx0IHZlcnNpb25pbmcKICAgCjIwMDItMDgtMDIgMjI6NTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUGF0Y2ggIzU3MjM5NDogYWRkIGlwdjYgdHJhbnNwb3J0cyB3aGVuIC0tZW5hYmxlLWlwdjYgZGVmaW5lZC4gIFRoYW5rcyB0byBLYXRzdWhpc2EgQUJFLgogICAKMjAwMi0wOC0wMiAxNDo1OSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjMKICAgCjIwMDItMDgtMDIgMTQ6NTUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zLmRlZjoKCiAgIHVwZGF0ZQogICAKMjAwMi0wOC0wMiAxNDozOSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1vcmUgZG9jcy4KICAgCjIwMDItMDgtMDIgMTQ6MjkgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9tdWx0aXBsZXhlci4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9zY2FsYXIuMywKICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF90YWJsZS4zLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF93YXRjaGVyLjMsIE1ha2VmaWxlLmluOgoKICAgZG94eWdlbiB1cGRhdGUuCiAgIAoyMDAyLTA4LTAyIDE0OjI2ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdXBkYXRlIGZvciB5ZXQgbW9yZSBzdHVmZi4KICAgCjIwMDItMDgtMDIgMTQ6MjYgIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlczoKCiAgIHJlbW92ZSBhIGZldyBtb3JlIGRpc3QgcmVsYXRlZCBmaWxlcy4KICAgCjIwMDItMDgtMDIgMTQ6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGVycm9yIG1lc3NhZ2UgY2hhbmdlIHRvIHJlbW92ZSBERVMgc3BlY2lmaWMgZXJyb3IgbXNnLgogICAKMjAwMi0wOC0wMiAxNDoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC90eXBlbWFwOgoKICAgc3BhY2luZyBmaXhlcy4KICAgCjIwMDItMDgtMDIgMTQ6MjIgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvOiBNYWtlZmlsZS5QTCwgYWdlbnQueHM6CgogICByZW5hbWVkIGZpbGUuCiAgIAoyMDAyLTA4LTAyIDE0OjIyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogbmV0c25tcF9yZXF1ZXN0X2luZm8ucG0sCiAgIG5ldHNubXBfcmVxdWVzdF9pbmZvUHRyLnBtOgoKICAgcmVuYW1lZCBmaWxlCiAgIAoyMDAyLTA4LTAyIDE0OjIwICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIEFkZCBhICJldmFsdmFycyIgZGlyZWN0aXZlIHRvIGRvIHNpbXBseSByZXBsYWNlbWVudHMuCiAgIAoyMDAyLTA4LTAyIDE0OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgdXNlIENWU1VTRVIgdmFyaWFibGUgd2hlbiBkb2luZyBzdHVmZiBpbnN0ZWFkIG9mIG15IGhhcmQtY29kZWQgbmFtZS4KICAgCjIwMDItMDgtMDIgMTQ6MTQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHVwZGF0ZSBsaWJ0b29sIHZlcnNpb24gZm9yIDUuMC4zCiAgIAoyMDAyLTA4LTAyIDE0OjEzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGNoYW5nZSBjaGVja2NvbW1lbnQgdGFnIHRvIGV4Y2x1ZGUgd2luMzIgZmlsZXMuCiAgIAoyMDAyLTA4LTAyIDE0OjEzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgY2hhbmdlbG9nIGJ1aWxkIG5vdGVzIGF0IHRoZSBib3R0b20gb2YgdGhlIGZpbGUuCiAgIAoyMDAyLTA4LTAyIDE0OjAxICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgY3JlYXRlZCBhIGhvdy10byBmaWxlIGZvciBtYWtpbmcgcmVsZWFzZXMKICAgCjIwMDItMDgtMDIgMTQ6MDEgIGhhcmRha2VyCgogICAqIGRpc3QvY2hhbmdlbG9nZml4OgoKICAgY2hhbmdlbG9nIGZpeC11cCBzY3JpcHQKICAgCjIwMDItMDgtMDIgMTA6MjEgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICB0cmFuc2xhdGUgJy8nIGluIHN5c3RlbSBuYW1lIHRvICdfJyAoZm9yIGN5Z3dpbikKICAgCjIwMDItMDgtMDIgMDk6NTYgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgZml4IHNlY3Rpb24gY3ZzIGdldCBjb21tYW5kIGV4YW1wbGUKICAgCjIwMDItMDgtMDIgMDk6MDYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaDoKCiAgIFN1cHByZXNzICdpbmxpbmUnIHdoZW4gbm90IHVzaW5nIEdDQy4gU3VnZ2VzdGVkIGJ5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcgogICAKMjAwMi0wOC0wMiAwODo1OSAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBmaXggc2VjdGlvbiBvbiBza2lwcGluZyBtYWtlIHRlc3Q7IGFkZCAtcCBmbGFnIHRvIGV4YW1wbGVzCiAgIAoyMDAyLTA4LTAyIDA4OjUyICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGRlc2NyaWJlIHVzZSBvZiBuc2ItcGFja2FnZSBzY3JpcHQuIFRlc3RlcnMgYW5kIGNvbW1lbnRzIGFwcHJlY2lhdGVkLi4uCiAgIAoyMDAyLTA4LTAyIDA4OjMzICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGxhdGZvcm06CgogICBvdXRwdXQgcGxhdGZvcm0gaW5mbwogICAKMjAwMi0wOC0wMiAwODoxOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgcmVuYW1lZCB0byBuc2ItcGFja2FnZQogICAKMjAwMi0wOC0wMiAwODoxOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICByZW5hbWVkIG5zYi1idWlsZCB0byBhdm9pZCBjb25mdXNpb24gd2l0aCBzY3JpcHQgZnVuY3Rpb24KICAgCjIwMDItMDgtMDIgMDg6MTUgIGhhcmRha2VyCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIENoYW5nZSBsb2NhdGlvbiBuYW1lIHRvIFVua25vd24KICAgCjIwMDItMDgtMDIgMDg6MDggIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vQVNOLnBtLCBhZ2VudC9hZ2VudC5wbSwKICAgYWdlbnQvbmV0c25tcF9yZXF1ZXN0X2luZm8ucG06CgogICBtb3JlIG9sZCBwZXJsIGZpeGVzCiAgIAoyMDAyLTA4LTAyIDA4OjA0ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogT0lEL09JRC5wbSwgYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtCjoKCiAgIG1vcmUgb2xkIHBlcmwgZml4ZXMKICAgCjIwMDItMDgtMDIgMDg6MDAgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgbW9yZSBvbGQgcGVybCBmaXhlcwogICAKMjAwMi0wOC0wMiAwNzo0OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCByZXR1cm4gY29kZQogICAKMjAwMi0wOC0wMiAwNzo0OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgZG9uJ3QgcHVsbCBmaXJzdCBhcmcgdGlsIGFmdGVyIGdldG9wdHMvc2hpZnQ7IG1vdmUgc2V0IG9mIGRlZmF1bHQgb3B0cwogICAKMjAwMi0wOC0wMiAwNzozNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCBvcHRpb24gdG8gc2tpcCBidWlsZCBvciB0ZXN0IHN0ZXBzOyBhZGQgLWYgb3B0aW9uIHRvIHByb21wdCB0byBvdmVycmlkZQogICBubyBwcm9tcHQgZmxhZyAodXNlZnVsIGZvciBlcnJvcnMpOyBuZXcgbnNiLW1ha2UgbWV0aG9kOyBjaGVjayByYyBvZgogICBtYWtlIGNsZWFuCiAgIAoyMDAyLTA4LTAyIDA3OjM2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBhZGQgb3B0aW9uIHRvIHNraXAgYnVpbGQgb3IgdGVzdCBzdGVwczsgdHdlYWsgdXNhZ2UKICAgCjIwMDItMDgtMDIgMDc6MTAgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGZpeCB0eXBvOyByZW1vdmUgZXh0cmEgdHJhaWxpbmcgc2xhc2ggaW4gZGlyCiAgIAoyMDAyLTA4LTAyIDA2OjMzICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBjaGVjayBtb3JlIHBsYWNlcyB0byBzb3VyY2UgbnNiLWZ1bmN0aW9uczsgZml4IGZvciBjbWQgbGluZSBidWlsZCBwYXRoCiAgIAoyMDAyLTA4LTAyIDA2OjI4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAganVzdCBzaG93IGVycm9ycyBhZnRlciBidWlsZCwgbm90IHdhcm5pbmdzCiAgIAoyMDAyLTA4LTAxIDE3OjA0ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICByZXZlcnQgdG8gbm9uLWFuc2kgcHJvdG90eXBlcyBmb3Igb2xkZXIgcGVybCB3aXRoIG9sZGVyIGNvbXBpbGVycyBvbgogICBvbGRlciBzeXN0ZW1zLiAgTm90IHRoYXQgSSdtIGdydW1weSwgb2YgY291cnNlLgogICAKMjAwMi0wOC0wMSAxNjoyNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIGNoZWNrIGZvciBvbGRlciBhbmQgbmV3IGVtYmVkZGVkIHBlcmwgY2FsbCBmdW5jdGlvbnMKICAgCjIwMDItMDgtMDEgMTQ6MDcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBzeW1saW5rIHRvIHNyYyBmcm9tIGJ1aWxkOyB1cGRhdGUgbnNiLWdldC1jb25maWcKICAgCjIwMDItMDgtMDEgMTQ6MDYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGZpeCBmb3IgY21kIGxpbmUgYnVpbGQgZGlyCiAgIAoyMDAyLTA4LTAxIDEyOjU4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IGNvbmZpZyBpbnN0YWxsIHBhdGg7IHJlbW92ZSBwbGF0Zm9ybSBzcGVjaWZpYyBmcm9tIG5zYi1idWlsZAogICAKMjAwMi0wOC0wMSAxMjo1NiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgcmVtb3ZlIGhhcmQgY29kZWQgaW5mbwogICAKMjAwMi0wOC0wMSAxMjoyMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCBvcHRpb24gdG8gc2tpcCBwcm9tcHRzOyByZW1vdmUgcHJldmlvdXMgaW5zdGFsbHM7IHR3ZWFrIGVyciBwYXR0ZXJuCiAgIAoyMDAyLTA4LTAxIDEyOjE0ICBqYnBuCgogICAqIG1hbi9zbm1wX2FsYXJtLjMuZGVmOgoKICAgICAtIHVzZSBuZXRzbm1wX2RzX3NldF9ib29sZWFuKCkgaW5zdGVhZCBvZiBkc19zZXRfYm9vbGVhbigpCiAgIAoyMDAyLTA4LTAxIDEyOjEyICBqYnBuCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zLmRlZjoKCiAgICAgLSBjaGFuZ2UgY29kZSBzYW1wbGUgdG8gdXNlIG5ldHNubXBfZHNfc2V0X2Jvb2xlYW4oKQogICAgIC0gdXBkYXRlIHJlZmVyZW5jZXMgdG8gbGlicmFyaWVzICh3aGljaCB3ZXJlIHN0aWxsIHRhbGtpbmcgYWJvdXQKICAgICAgIGxpYnVjZGFnZW50IGV0IGFsLikgLS0gUExFQVNFIFJFVklFVyBCRUZPUkUgNS4wLjMKICAgCjIwMDItMDgtMDEgMTI6MDcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBsb3RzIG9mIGZpeGVzIHRvIHByZXZpb3VzZSB1bnRlc3RlZCBzY3JpcHRzCiAgIAoyMDAyLTA4LTAxIDEyOjA0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBzY3JpcHQgdG8gYnVpbGQgcmVsZWFzZXMuLi4gc3RpbGwgc29tZSBoYXJkY29kaW5nIHdoaWxlIHRlc3RpbmcsIGJ1dCBpdHMKICAgZ2V0dGluZyB0aGVyZS4uLgogICAKMjAwMi0wOC0wMSAxMTo1MSAgcnN0b3J5CgogICAqIGRpc3QvOiBjdnNzaG93LCBjdnN1cDoKCiAgIHV0aWxpdHkgc2NyaXB0cwogICAKMjAwMi0wOC0wMSAwOTozMCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHNjYWxhci5jLCBzY2FsYXIyLmM6CgogICBHbyB3aXRoIHRoZSAic2NhbGFyIGFzIHN1cGVyLWhhbmRsZXIgb2YgaW5zdGFuY2UiIGltcGxlbWVudGF0aW9uLgogICBTY2FsYXIxLmMgaXMgcHJvYmFibHkgcmVkdW5kZW50LCBidXQgd2UgY2FuIHJlbW92ZSB0aGlzIGxhdGVyLgogICAoWXVwIC0gSSdtIGEgY293YXJkLi4uLikKICAgCjIwMDItMDgtMDEgMDE6MTEgIGR0czEyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIE1pbm9yIHR5cG9zLCBwbHVzIGVtcGhhc2lzZSB0aGUgbmVlZCBmb3IgdGhlIElwSGxwQVBJIGxpYnJhcnkuCiAgIAoyMDAyLTA3LTMwIDA4OjI2ICBkdHMxMgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL291dHB1dDoKCiAgIFJlY29nbmlzZSAnMCcgYXMgYSB2YWxpZCBzZXR0aW5nIGZvciBzdWZmaXhQcmludGluZywgYW5kIHVwZGF0ZSB0aGUKICAgcHJvbXB0cyB0byBtYXRjaCB0aGUgdjUgb3V0cHV0IGZvcm1hdHMgZGVmYXVsdHMuIFNlZSBCdWcgIzU2NzQ1MQogICAKMjAwMi0wNy0zMCAwNzo1OSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEZpcnN0IGF0dGVtcHQgYXQgdGFja2xpbmcgQnVnICM1NzQ0MzQKICAgUmVjb2duaXNlIHRoYXQgZGVmYXVsdCBvdXRwdXQgZm9ybWF0IGlzIGVxdWl2YWxlbnQgdG8gLU9TLgogICBTbm1wdGFibGUgc3RpbGwgY3Jhc2hlcyB3aXRoIC1PZiBvciAtT3UsIGJ1dCBhdCBsZWFzdCB0aGUKICAgZGVmYXVsdCBpbnZvY2F0aW9uIHdvcmtzLgogICAKMjAwMi0wNy0zMCAwNTo0MSAgZHRzMTIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBFeHBvcnQgbmV3bHktZGVmaW5lZCBwdWJsaWMgbmFtZXMsIGFuZCByZS1leHBvcnQgc29tZSByb3V0aW5lcyB0aGF0CiAgIGhhdmUgY2hhbmdlZCBuYW1lLiAgVGhpcyBzaG91bGQgbm93IGNvbXBpbGUgdW5kZXIgVmlzdWFsIEMrKyBhZ2Fpbi4KICAgCjIwMDItMDctMzAgMDI6MjcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRG9uJ3QgcmVtb3ZlIGEgUm93LVN0YXR1cyBhdXRvLWRlbGV0ZWQgcm93IHVudGlsIHRoZSBsYXN0IG1pbnV0ZSwKICAgaW4gY2FzZSBvdGhlciAobG93ZXIpIGhhbmRsZXJzIHRyeSB0byBhY2Nlc3MgaXQuCiAgIAoyMDAyLTA3LTMwIDAxOjM4ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy4xKSwgRkFROgoKICAgTWVudGlvbiB0aGUgbmVlZCB0byBlc2NhcGUgcXVvdGVzIHdoZW4gcXVlcnlpbmcgc3RyaW5nLWluZGV4ZWQgdGFibGVzLgogICAKMjAwMi0wNy0yOSAyMzo1NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHVwZGF0ZSByZWdpc3RlciBmdW5jdGlvbiBuYW1lCiAgIAoyMDAyLTA3LTI5IDIzOjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgYXV0b2dlbiBleGFtcGxlIGNvZGUgZm9yIGluZGV4IGNoZWNraW5nIGluIGV4dHJhY3RfaW5kZXg7IHVwZGF0ZSByZWdpc3RlcgogICBmdW5jdGlvbiBuYW1lOyB1c2UgY29udGFpbmVyIGluICpfZ2V0X2J5X2lkeCgpCiAgIAoyMDAyLTA3LTI5IDE2OjIzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdXBkYXRlIGZvciBuZXcgc3RydWN0IG5hbWU7IGFkZCBleGFtcGxlIGNvZGUgYXMgY29tbWVudHMgaW5zdGVhZCBvZiB2YXJfWFhYCiAgIGFuZCBzdWNoOyBpbiBhIGZldyBpbXBvcnRhbnQgcGxhY2VzIGFkZCBjb2RlIHdoaWNoIHdpbGwgYWxsb3cgYSBuZXdseQogICBnZW5lcmF0ZWQgbW9kdWxlIHRvIGJlIGNvbXBpbGVkIGlmIC1EVEFCTEVfQ09OVEFJTkVSX1RPRE8gaXMgc3BlY2lmaWVkOwogICBwcm9iYWJseSBhIGZldyBvdGhlciB0d2Vha3MgSSBmb3Jnb3QKICAgCjIwMDItMDctMjkgMDM6MDYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9hcnJheS5jLCB0YWJsZS5jLCB0YWJsZV9kYXRhLmMKLCB0YWJsZV9kYXRhc2V0LmMsIHRhYmxlX2l0ZXJhdG9yLmM6CgogICBQcm90ZWN0IGFnYWluc3QgZGVmZXJlbmNpbmcgTlVMTCBwb2ludGVycy4KICAgKE1vc3Qgb2YgdGhlc2UgU2hvdWxkIE5ldmVyIEhhcHBlbiBidXQgWW91IENhbid0IEJlIFRvbyBDYXJlZnVsISkKICAgCjIwMDItMDctMjkgMDM6MDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgICAtIGRldGVjdCBgZG1mZScgZXRoZXJuZXQgY2FyZHMgYXMgZm91bmQgb24gTmV0cmEgWDEgbWFjaGluZXMuCiAgICAgICBUaGFua3MgdG8gSm9obiBPbHNvbiBmb3IgdmVyaWZ5aW5nIHRoaXMgZml4LgogICAKICAgICAgIEFsc28gbm90ZSB0aGF0IGBpbmRlbnQnIGhhcyAtLS0tZWQgdGhlIGZvcm1hdHRpbmcgb2YgdGhpcyBmaWxlCiAgICAgICBiZXlvbmQgbGVnaWJpbGl0eSBpbiBzZXZlcmFsIHBsYWNlcy4gIEkgZG9uJ3QgdGhpbmsgd2Ugd2FudCB0bwogICAgICAgZG8gKnRoYXQqIGFnYWluLgogICAKMjAwMi0wNy0yOSAwMjo0MCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBGdWxsZXIgdmFsaWRhdGlvbiBvZiBSb3dTdGF0dXMgdmFsdWVzIHdydCByb3cgY3JlYXRpb24vZXhpc3Rpbmcgcm93cy4KICAgCjIwMDItMDctMjkgMDE6MjUgIGR0czEyCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCiwgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgVGFrZSBhY2NvdW50IG9mIHJlY2VudCBjaGFuZ2VzIGluIGxpYnJhcnkgZmlsZXMuCiAgICdSZWxlYXNlJyBhcHBsaWNhdGlvbnMgc3RpbGwgZG9uJ3QgbGluayBwcm9wZXJseSwgYnV0IGF0IGxlYXN0CiAgIHRoZSBsaWJyYXJpZXMgY29tcGlsZSwgYW5kIHRoZSAnRGVidWcnIHNpZGUgc2VlbXMgdG8gd29yay4KICAgCjIwMDItMDctMjkgMDE6MjMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oOgoKICAgVHdlYWsgaW5saW5lIGhhbmRsaW5nIGZvciBBSVggLSBzdWdnZXN0ZWQgYnkgQW5keSBIb29kLgogICAKMjAwMi0wNy0yNiAxMDo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICByZW1vdmUgYXV0b2RlcGVuZGVuY2llcyB1bnRpbCBwb3J0YWJsZSBzb2x1dGlvbiBjYW4gYmUgZm91bmQKICAgCjIwMDItMDctMjYgMDg6NDEgIGR0czEyCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9jb25maWcuaCwgbWliX21vZHVsZV9pbmNsdWRlcy5oLAogICBtaWJfbW9kdWxlX2luaXRzLmg6CgogICBSZW1vdmUgbWVudGlvbiBvZiB0aGUgKG9ic29sZXRlKSB1Y2Qtc25tcC9yZWdpc3RyeSBtb2R1bGUuCiAgIAoyMDAyLTA3LTI2IDA3OjMyICBkdHMxMgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIFByb3RlY3QgdGhlIFdpbjMyIHZlcnNpb24gb2YgdGhlIGNvbmZpZyBmaWxlLCBzbyB0aGF0IHRoZSBvdGhlciBoZWFkZXIKICAgZmlsZXMgcmVjb2duaXNlIHRoYXQgaXQgaGFzIGluZGVlZCBiZWVuIGluY2x1ZGVkLgogICAKMjAwMi0wNy0yNiAwNzoyNCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuMCksIEZBUToKCiAgIEEgYml0IG1vcmUgZGV0YWlsIG9uIG1pYjJjLCBwbHVzIHRoZSBub24td3JpdGVhYmlsaXR5IG9mIHN5c3tMb2NhdGlvbixDb250YWN0fQogICAKMjAwMi0wNy0yNiAwNToyMiAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuOSksIEZBUToKCiAgIEFub3RoZXIgZW50cnkgYWJvdXQgaW52YWxpZCB1c2Ugb2YgbWliMmMuCiAgIAoyMDAyLTA3LTI2IDA1OjE2ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgU3VwcHJlc3MgdGhlICJub24tc3RhbmRhcmQiIGNvbmRpdGlvbmFsIGNvbnN0cnVjdCwKICAgc2luY2UgaXQncyBub3QgcmVjb2duaXNlZCBieSBzb21lIHZlcnNpb25zIG9mICdtYWtlJy4KICAgCjIwMDItMDctMjUgMDU6MDAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBBZGQgdGhlICdzY2FsYXInIGFuZCAnd2F0Y2hlcicgaGVscGVycyB0byB0aGUgaGVscGVyIGxpYnJhcnkuCiAgIAoyMDAyLTA3LTI1IDAzOjI4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgKOgoKICAgU3VwcG9ydCBmb3Igd2F0Y2hpbmcgYSBzeXNVcFRpbWUgbWFya2VyLgogICAKMjAwMi0wNy0yNSAwMzoyNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgTmV3IHJvdXRpbmUgZm9yIHJldHJpZXZpbmcgYSBjb2x1bW4gdmFsdWUgZGlyZWN0bHkgZnJvbSBhIHJlcXVlc3Qgc3RydWN0dXJlLgogICAKMjAwMi0wNy0yNCAxMzoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgY2hlY2sgZm9yIHNldHRpbmcgc2FtZSB2YWx1ZSBpbiBkc19zZXRfc3RyaW5nLCBzaW5jZSBpdCBmcmVlcyB0aGUgb2xkCiAgIHZhbHVlIGJlZm9yZSBkdXBpbmcgdGhlIG5ldyBvbmUKICAgCjIwMDItMDctMjQgMTE6NTggIHJzdG9yeQoKICAgKiBkaXN0L3NubXBkLWluaXQuZDoKCiAgIGZpcnN0IHN0YWIgYXQgaW5pdC5kIHN0YXJ0dXAgc2NyaXB0IGZvciBzbm1wZAogICAKMjAwMi0wNy0yNCAwNjo0OCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBXaGVuIHJ1bm5pbmcgb2ZmIHRoZSBlbmQgb2Ygb25lIGNvbHVtbiwgYW5kIG1vdmluZyBvbiB0byB0aGUgbmV4dAogICAoaW4gYSBHZXROZXh0KSwgd2UgbmVlZCB0byBzdGFydCBhZ2FpbiB3aXRoIHRoZSBmaXJzdCByb3cuCiAgIFRoaXMgaXMgcHJvYmFibHkgdGhlIGludGVudGlvbiBvZiB0aGUgY29uZGl0aW9uYWwgYmxvY2sgYXQgdGhlIHN0YXJ0CiAgIG9mIHRoaXMgbG9vcCwgYnV0IEkgY2FuJ3Qgc2VlIGhvdyB0aGlzIHRlc3QgY291bGQgZXZlciBwb3NzaWJseSBtYXRjaC4KICAgCiAgIE5vdGUgdGhhdCB0aGVyZSBpcyBhbHNvIGEgcmVmZXJlbmNlIHRvIHRoZSByb3cgZGF0YSBhY2Nlc3NpYmxlIHZpYQogICB0aGUgJ3JlcXVlc3QtPnBhcmVudF9kYXRhJyBkYXRhIGxpc3QuICAgVGhpcyB3aWxsIGFsc28gbmVlZCB0byBiZQogICByZXdvdW5kLiAgU3VnZ2VzdGlvbnMgYXMgdG8gaG93IGJlc3QgdG8gZG8gc28gZ3JhdGVmdWxseSByZWNlaXZlZC4KICAgCjIwMDItMDctMjQgMDY6MzkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgVXNlIFNOTVB2Mi1zdHlsZSBleGNlcHRpb25zIHJhdGhlciB0aGFuIHRoZSB1bmluZm9ybWF0aXZlIFNOTVB2MQogICAnbm9TdWNoTmFtZScgZXJyb3IgZm9yIG1pc3NpbmcgdGFibGUgb2JqZWN0cy4KICAgCjIwMDItMDctMjQgMDY6MzcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHRoZSBwb3NzaWJpbGl0eSBvZiBmYWlsaW5nIHRvIGV4dHJhY3QgYSByb3cgc3RydWN0dXJlLgogICAKMjAwMi0wNy0yNCAwNjozNSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBVc2UgU05NUHYyLXN0eWxlIGV4Y2VwdGlvbnMgcmF0aGVyIHRoYW4gdGhlIHVuaW5mb3JtYXRpdmUgU05NUHYxCiAgICdub1N1Y2hOYW1lJyBlcnJvciBmb3IgbWlzc2luZyB0YWJsZSBvYmplY3RzLgogICAKMjAwMi0wNy0yNCAwNjozMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgVXNlIFNOTVB2Mi1zdHlsZSBleGNlcHRpb25zIHJhdGhlciB0aGFuIHRoZSB1bmluZm9ybWF0aXZlIFNOTVB2MQogICAnbm9TdWNoTmFtZScgZXJyb3IgZm9yIGludmFsaWQgdGFibGUgb2JqZWN0cy4KICAgCjIwMDItMDctMjMgMTQ6NTkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIG1pc3NpbmcgY29tbWVudCB0ZXJtaW5hdG9yLjotKAogICAKMjAwMi0wNy0yMyAxMjowMiAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgdXNlIG5ldyBuZXRzbm1wX2Fzc2VydCBpbnN0ZWFkIG9mIGFzc2VydAogICAKMjAwMi0wNy0yMyAxMjowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oLCBzbm1wbGliL01ha2VmaWxlLmluCjoKCiAgIGFkZCBuZXcgbmV0c25tcF9hc3NlcnQsIHdoaWNoIGRlZmF1bHRzIHRvIGxvZ2dpbmcgYSBtZXNzYWdlCiAgIAoyMDAyLTA3LTIzIDA3OjQzICBkdHMxMgoKICAgKiBtYW4vOiBtaWJfYXBpLjMgKFY0LTItcGF0Y2hlcy4zKSwgbWliX2FwaS4zLmRlZjoKCiAgIEZpeCB0aGUgZGVzY3JpcHRpb25zIG9mIHRoZSAnc3ByaW50X3JlYWxsb2MnIGNhbGxzLCB0byBpbmNsdWRlIHRoZSAnYWxsb3dfcmVhbGxvYycgcGFyYW1ldGVyLgogICAKMjAwMi0wNy0yMiAxMDo1OCAgcnN0b3J5CgogICAqIGRpc3QvOiBuZXQtc25tcC5zcGVjLCBuc2ItZnVuY3Rpb25zOgoKICAgbmV3IChhbG1vc3QgZW1wdHkpIHNwZWMgZmlsZTsgc3RhcnQgY3JlYXRpbmcgZnVuY3Rpb25zIGZvciBhdXRvbWF0ZWQgYnVpbGRzCiAgIAoyMDAyLTA3LTIyIDAxOjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgKOgoKICAgQSBtb3JlIGdlbmVyYWxpc2VkIGZvcm0gb2YgdGhlICduc19yZWdpc3Rlcl97dHlwZX1faW5zdGFuY2UnIHJvdXRpbmVzLAogICBpbXBsZW1lbnRlZCBhcyBhIHNlcGFyYXRlIGhlbHBlciBtb2R1bGUsIGFuZCB1c2VhYmxlIHdpdGggYm90aCB0aGUKICAgaW5zdGFuY2UgYW5kIHNjYWxhciBoZWxwZXJzLgogICAgIFRoaXMgYWxzbyBzdXBwb3J0cyBhcmJpdHJhcnkgQVNOIHR5cGVzIChpbmNsdWRpbmcgc3RyaW5ncyBhbmQgT0lEcykuCiAgIAoyMDAyLTA3LTIyIDAxOjQzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcjEuYywgYWdlbnQvaGVscGVycy9zY2FsYXIyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2NhbGFyLmg6CgogICBBZ2VudCBoZWxwZXIgbW9kdWxlIGZvciBzdXBwb3J0IG9mIHNjYWxhciBvYmplY3RzLgogICBWZXJ5IHNpbWlsYXIgdG8gdGhlICJpbnN0YW5jZSIgaGVscGVyLCBleGNlcHQgdGhhdCB0aGlzIGRlYWxzIHdpdGgKICAgaW52YWxpZCBpbnN0YW5jZSBzdWJpZGVudGlmaWVycyBhcyB3ZWxsIChyZXBvcnRpbmcgbm9TdWNoSW5zdGFuY2UKICAgcmF0aGVyIHRoYXQgbm9TdWNoT2JqZWN0KS4KICAgCiAgIFRoZXJlIGFyZSB0d28gcGFyYWxsZWwgaW1wbGVtZW50YXRpb25zIGFzIHRoZSBtb21lbnQ6CiAgICAgLSBzY2FsYXIxIGlzIGVzc2VudGlhbGx5IGFuIGVuaGFuY2VkIGNvcHkgb2YgdGhlIGluc3RhbmNlIGhlbHBlciwKICAgICAgIGJ1dCBpcyBjb21wbGV0ZWx5IGluZGVwZW5kZW50IG9mIGl0LgogICAgIC0gc2NhbGFyMiBzaXRzIGFib3ZlIHRoZSBpbnN0YW5jZSBoZWxwZXIsIGFuZCB1c2VzIHRoYXQgdG8gZG8gbW9zdAogICAgICAgb2YgdGhlIHJlYWwgcHJvY2Vzc2luZy4KICAgU2NhbGFyMSBpcyBwcm9iYWJseSBzbGlnaHRseSBtb3JlIGVmZmljaWVudCwgd2hpbGUgc2NhbGFyMiBmZWVscyBtb3JlCiAgIGluIGtlZXBpbmcgd2l0aCB0aGUgZ2VuZXJhbCBldGhvcyBvZiB0aGUgaGFuZGxlciBtZWNoYW5pc20uCiAgIFdlIHByb2JhYmx5IG5lZWQgdG8gZGVjaWRlIHdoaWNoIHRvIGFkb3B0LCBhbmQganVuayB0aGUgb3RoZXIuCiAgIAoyMDAyLTA3LTE5IDE0OjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgdXNlIG5ldCBhZ2VudHggcmV0aXJlcy90aW1lb3V0IGRzIHZhbHVlcwogICAKMjAwMi0wNy0xOSAxNDoyMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICByZWdpc3RlciBwYXJzZXIgZm9yIGFnZW50eFRpbWVvdXQgYW5kIGFnZW50eFJldHJpZXMgdG9rZW5zCiAgIAoyMDAyLTA3LTE5IDE0OjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIHJlZnMgdG8gbm9uLWV4aXN0ZW50IG5zdEFnZW50KiBmaWxlcwogICAKMjAwMi0wNy0xOSAxNDoxNCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBtb3ZlIE9ORV9TRUMgdG8gZGVmaW5pdGlvbnMuaDsgYWRkIEFHRU5UWF9USU1FT1VUIGFuZCBBR0VOVFhfUkVUUklFUyBkZWZhdWx0cwogICAKMjAwMi0wNy0xOSAxNDoxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIGFkZCBBR0VOVFhfVElNRU9VVCBhbmQgQUdFTlRYX1JFVFJJRVMKICAgCjIwMDItMDctMTkgMTQ6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmg6CgogICBtb3ZlIGRlZmluaXRpb24gb2YgT05FX1NFQyBoZXJlIGZyb20gc25tcGQuYwogICAKMjAwMi0wNy0xOSAxMToyMyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBwYXNzIGxvY2FsIG9iaiwgbm90IHJhbmRvbSB1bml0aWFsaXplZCBwb2ludGVyLjotKAogICAKMjAwMi0wNy0xOSAwNDowNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBIYW5kbGUgc3lzdGVtcyB3aGVyZSBNQVhQQVRITEVOIGlzbid0IGRlZmluZWQuCiAgIAoyMDAyLTA3LTE5IDAzOjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIFVzZSB0aGUgInN5c3RlbS1pbmRlcGVuZGVudCIgU05NUF9NQVhQQVRIIGxlbmd0aCBkZWZpbml0aW9uIGluc3RlYWQgb2YgTUFYUEFUSExFTgogICAKMjAwMi0wNy0xOCAyMjowMCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSByZWZzIHRvIG5vbmV4aXN0ZW50IG1pYmdyb3VwL25zdEFnZW50TW9kdWxlT2JqZWN0LmgKICAgCjIwMDItMDctMTggMTk6NDQgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuMiApCiAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjEgLT4gVjUuMC4yCgoyMDAyLTA3LTE4IDE5OjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBtaW5vciBwYXRjaCBmb3Igbm9uLWV4aXN0ZW50IChkaWVkKSBsb2cgZmlsZXMuCgoyMDAyLTA3LTE4IDE5OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwMi0wNy0xOCAxOTo0MCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjIKCjIwMDItMDctMTggMTk6NDAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgbWFrZSBkZXBlbmQgZml4ZXMuCgkKMjAwMi0wNy0xOCAxODo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi86IGFsYXJtLmMsIGV2ZW50LmM6CgogICBtYWtlIHRoZSBybW9uIGNvZGUgY29tcGlsZS4KICAgIC0gbmV3IHN1YnRyZWUgcG9pbnRlciBzdHJ1Y3R1cmUuCiAgICAtIHNwcmludF9vYmppZCAtPiBzbnByaW50X29iamlkCiAgIAoyMDAyLTA3LTE4IDE4OjMyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHNpbGVuY2UgcGVybCBzdWJkaXJlY3RvcnkgYnVpbGQgY29tbWFuZHMuCiAgIAoyMDAyLTA3LTE4IDE4OjMxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIC0gVXNlIG5ldHNoIC10IC1kIHhtbCB0byBnZXQgeG1sIG91dHB1dCBmcm9tIG5ldHNoLgogICAgIChPaywgSSdtIHNpdHRpbmcgaGVyZSBhdCBhbiBJRVRGIGNvbmZlcmVuY2UgaGF2aW5nIGFuIGFyZ3VtZW50IGFib3V0CiAgICAgIHhtbCB2cyBCRVIgYW5kIG5lZWRlZCBhIFhNTCgtbGlrZSkgZXhhbXBsZSBvZiBhIGh1Z2UgZGF0YSBzZXQsIHNvIEkKICAgICAgbWFkZSBuZXRzaCBkbyBpdC4pCiAgIAoyMDAyLTA3LTE4IDE3OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSBpbml0aWFsIHN1cHBvcnQgZm9yIGRvaW5nIHJlcXVlc3RzIGZyb20gbXVsdGlwbGUgaG9zdHMgKHJldHJpZXZhbCwgbm90IHNldHMpCiAgIAoyMDAyLTA3LTE4IDE3OjUwICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIG1vcmUgZml4ZXMgdG8gc3RpbGwgdWdseSBjb2xvcml6ZWQgdGV4dCAod2VsbCwgdGhlIHRleHQgaXMgcHJldHR5IGJ1dAogICB0aGUgc3VwcG9ydCBpcyB1Z2x5KS4KICAgCjIwMDItMDctMTggMTc6NDIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIGNoYW5nZSB0ZXh0IHN0cmluZyBlcnJvciB0byBtYXRjaCBmdW5jdGlvbiBuYW1lIGNhbGxlZC4KICAgCjIwMDItMDctMTggMTU6MzEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKLCBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIHJlbmFtZSBmcmVlIC0+IGNmcmVlIHRvIGF2b2lkIHNvbWUgcHJvYmxlbSB3ZXMgaGFkLi4uIDstKQogICAKMjAwMi0wNy0xOCAxNDo0MSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICB0d28gcGVvcGxlIGZpeGluZyBtZW1vcnkgbGVhayBpbiBkaWZmZXJlbnQgcGxhY2VzID0gc2VnZmF1bHQKICAgCjIwMDItMDctMTggMTE6MDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICAkbmFtZSAtPiAkaQogICAKMjAwMi0wNy0xOCAxMDo1NiAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2JqZWN0X21vbml0b3IuaDoKCiAgIHVwZGF0ZSB0byB1c2UgY29udGFpbmVycwogICAKMjAwMi0wNy0xOCAwOTo0MCAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCAtLWRlYnVnLXRva2VucywgLS1pbmRlbnQtb3B0aW9ucwogICAKMjAwMi0wNy0xOCAwOToxOCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0LmgsIHNubXBsaWIvc25tcC10Yy5jCiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaXJpeC5oOgoKICAgQXBwbHkgcGF0Y2ggZnJvbSBCdWcgIzU4MjM0NywgZm9yIElyaXggNi41IHN1cHBvcnQuCiAgIFN1Ym1pdHRlZCBieSBKYW4gWWVueWEgS2FzcHJ6YWsKICAgCjIwMDItMDctMTggMDk6MTIgIGR0czEyCgogICAqIG1hbi86IHNubXB0cmFwZC44IChWNC0yLXBhdGNoZXMuNSksIHNubXB0cmFwZC44LmRlZjoKCiAgIEZpeCBtYXJrdXAgcHJvYmxlbSBvbiBzbm1wdHJhcGQgbWFuIHBhZ2UgKEJ1ZyAjNTgzMzI5KQogICAKMjAwMi0wNy0xOCAwOToxMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBUaGUgZml4IGZvciB0aGUgdG1fZ210b2ZmIHByb2JsZW0gb24gQUlYIChCdWcgIzU2NTc2OSkgYWxzbyBhcHBsaWVzIHRvIEFJWCA1CiAgIAoyMDAyLTA3LTE4IDA5OjA2ICBkdHMxMgoKICAgKiBhcHBzLzogZW5jb2RlX2tleWNoYW5nZS5jIChWNC0yLXBhdGNoZXMuMSksIGVuY29kZV9rZXljaGFuZ2UuYwo6CgogICBGaXggb2ZmLWJ5LW9uZSBidWZmZXIgb3ZlcmZsb3cgKHBhdGNoICM1NzcyNjEpCiAgIAoyMDAyLTA3LTE4IDA4OjUxICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBHZW5lcmF0ZSBvbmUgY29kZS1maWxlIHBlciB0YWJsZSAodG8gbWF0Y2ggdGhlIGhlYWRlciBzdHJ1Y3R1cmUpLgogICBNeSBhcG9sb2dpZXMgaWYgdGhpcyBpc24ndCBjb3JyZWN0LCBSb2JlcnQgLSBidXQgdGhlIHByZXZpb3VzIGJlaGF2aW91cgogICBzZWVtZWQgdG8gYmUgYnJva2VuLgogICAKMjAwMi0wNy0xOCAwODozNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgVGFja2xlIHNvbWUgb2YgdGhlIGltbWVkaWF0ZSBkZWZpY2llbmNpZXMgaW4gdGhlIGZpcnN0IGRyYWZ0IG9sZC1hcGkgY29uZmlnLgogICAoTm93IHRoYXQgV2VzIGhhcyBwb2ludGVkIG1lIGluIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGRvY3VtZW50YXRpb24hKQogICAKMjAwMi0wNy0xOCAwODoyMiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBGaXggdGhlICdkZWNsJyBzdWJzdGl0dXRpb24gaGFuZGxpbmcgKHNvIGl0IGRvZXNuJ3QgaW5jbHVkZSB0aGUgaW50ZXJuYWwgdG9rZW4gYXMgd2VsbCkuCiAgIAoyMDAyLTA3LTE4IDA3OjE4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5zY2FsYXIuY29uZjoKCiAgIFByb3ZpZGUgdGhlIG1pc3NpbmcgcGFyYW1ldGVyIGluIGEgcmVhZF9vbmx5IGluc3RhbmNlIHJlZ2lzdHJhdGlvbi4KICAgCjIwMDItMDctMTggMDc6MDkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oCjoKCiAgIEJyaW5nIHRoZSAncmVhZF9vbmx5X2ludCcgaW5zdGFuY2UgaGFuZGxlciBpbiBsaW5lIHdpdGggdGhlIHJlc3Qgb2YKICAgdGhlIGNvbnZlbmllbmNlIGluc3RhbmNlIGhhbmRsZXJzLgogICAoYW5kIGV2ZW4gYnJlYWsgdGhlIGhhYml0IG9mIGEgbGlmZXRpbWUgYW5kIGRlY2xhcmUgdGhlIHRoaW5nLi4uLikKICAgCjIwMDItMDctMTggMDU6NDggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGZpeCBhbm90aGVyIG1lbW9yeSBsZWFrIGR1ZSB0byBhbiBpbXByb3BlciBpZmRlZmVkIG91dCBzZWN0aW9uIG9mIGNvZGUKICAgCjIwMDItMDctMTggMDQ6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIEknbSBiZWdpbm5pbmcgdG8gcmVncmV0IGV2ZXIgcnVubmluZyBpbmRlbnQgb24gdGhlIGNvZGUgYmFzZS4uLgogICAKMjAwMi0wNy0xNyAxNTo0MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgbWliMmMuY29uZjoKCiAgIGRvY3VtZW50IGFuZCBpbnN0YWxsIG1pYjJjLm9sZC1hcGkuY29uZgogICAKMjAwMi0wNy0xNyAxMzowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZpeCBzZWdmYXVsdCAocG9zc2libHkgY3JlYXRpbmcgbWVtb3J5IGxlYWspOyBhdXRob3IgbmVlZHMgdG8gZXhhbWluZSBjb2RlCiAgIAoyMDAyLTA3LTE3IDA3OjQxICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmFycmF5LXVzZXIuY29uZiwgbWliMmMuY29uZiwKICAgbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwgbWliMmMuaW50X3dhdGNoLmNvbmYsCiAgIG1pYjJjLml0ZXJhdGUuY29uZiwgbWliMmMuc2NhbGFyLmNvbmY6CgogICBEYXZlJ3MgYmVpbmcgdW5yZWFzb25hYmx5IHBpY2t5IGFib3V0IGdyYW1tYXIgJiBzcGVsbGluZyBhZ2Fpbi4KICAgSnVzdCBpZ25vcmUgaGltLCBhbmQgaGUnbGwgZ28gYXdheS4uLi4uCiAgIAoyMDAyLTA3LTE3IDA3OjIwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBJbml0aWFsIHN1cHBvcnQgZm9yIHRoZSBvbGQgNHgtc3R5bGUgYWdlbnQgQVBJIHVzaW5nIHRoZSBuZXcgdmVyc2lvbiBvZiBtaWIyYy4KICAgSXQgZG9lc24ndCBoYW5kbGUgdHlwZXMgcHJvcGVybHksIGFuZCBJJ20gc3VyZSBJJ2xsIGhhdmUgYnVnZ2VyZWQgdXAgc29tZSBvZgogICB0aGUgY29udHJvbCBzdHJ1Y3R1cmUgaGFuZGxpbmcsIGJ1dCBpdCBzZWVtcyB0byBnZW5lcmF0ZSBzb21ldGhpbmcgdGhhdCdzCiAgIHByZXR0eSBjbG9zZSB0byB0aGUgb2xkIG91dHB1dC4gICBJdCdzIGJldHRlciB0aGFuIG5vdGhpbmcuLi4uLgogICAKMjAwMi0wNy0xNiAyMjo0MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICByZXN0b3JlIGlubGluZSBmdW5jdGlvbnMgKHNpZ2guIEkgZmVlbCBsaWtlIEknbSBwbGF5aW5nIHJpbmctYXJvdW5kLXRoZS1yb3NpZSkKICAgCjIwMDItMDctMTYgMjE6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgcmVuYW1lIHNvbWUgc3RydWN0IG1lbWJlcnMgdG8gbWFrZSBjb2RlIGVhc2llciB0byByZWFkOyBhIGJpdCBvZiByZS1vcmRlcmluZwogICBpbiB0aGUgc2V0IGNvZGU7IG5ldyBmbGFncyBmb3IgbmV3IGFuZCBkZWxldGVkIHJvd3M7IHJvdyBkZWxldGVzIG5vdwogICBhY3R1YWx5IHdvcmshCiAgIAoyMDAyLTA3LTE2IDE5OjMyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGNoYW5nZSBjb21wbGV4IG1hY3JvcyBpbnRvIGZ1bmN0aW9ucy4gd291bGQgYmUgbmljZSBpZiBDIGhhZCBpbmxpbmUuCiAgIAoyMDAyLTA3LTE2IDE4OjA3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgdW1tLCB0cnkgdXNpbmcgY29ycmVjdCBkZWZpbmUuOi0vCiAgIAoyMDAyLTA3LTE2IDE4OjA1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgdGVzdCB0aGF0IG5ldC1zbm1wLWNvbmZpZy5oIGhhcyBiZWVuIGluY2x1ZGVkLCBpbnN0ZWFkIG9mIGFjdHVhbGx5IGluY2x1ZGluZyBpdC4uCiAgIChzaG91bGRuJ3QgdGhpcyByZWFsbHkgYmUgaW4gYWxsIHRoZSBoZWFkZXIgZmlsZXM/KQogICAKMjAwMi0wNy0xNiAxMjoxNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHVwZGF0ZSBmb3IgY29udGFpbmVycwogICAKMjAwMi0wNy0xNiAxMToyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA3LTE2IDExOjE2ICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgb2lkX2FycmF5IHJlbGF0ZWQgZGVwZW5kZW5jaWVzIChncnVtYmxlIGdydW1ibGUpCiAgIAoyMDAyLTA3LTE2IDExOjE0ICByc3RvcnkKCiAgICogYXBwcy9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgb2lkX2FycmF5IHJlbGF0ZWQgZGVwZW5kZW5jaWVzCiAgIAoyMDAyLTA3LTE2IDExOjAyICByc3RvcnkKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5kZXBlbmQsIG1pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBvaWRfYXJyYXkgcmVsYXRlZCBkZXBlbmRlbmNpZXMKICAgCjIwMDItMDctMTYgMTA6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKOgoKICAgcmVtb3ZlIG9pZF9hcnJheSByZWxhdGVkIGRlcGVuZGVuY2llcwogICAKMjAwMi0wNy0xNiAxMDo1MCAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICByZW1vdmUgZmFjdG9yeS5jCiAgIAoyMDAyLTA3LTE2IDEwOjI5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIG5ldHNubXBfY29udGFpbmVyX2luaXRfbGlzdCgpIGluIHN0YXJ0dXAgaW5pdHMKICAgCjIwMDItMDctMTYgMTA6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmgsIHNubXBsaWIvb2lkX2FycmF5LmMKOgoKICAgcmVtb3ZlIHVudXNlZCBmaWxlcwogICAKMjAwMi0wNy0xNiAxMDoyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBjaGcgcGFyYW0gdHlwZSBmcm9tIHZvaWQqIHRvIHN0cnVjdCAqCiAgIAoyMDAyLTA3LTE2IDEwOjAzICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSByZWNlbnRseSBkZWxldGVkIG9pZF9hcnJheS5oOyBhZGQgZmFjdG9yeSwgYmluYXJ5IGFycmF5IC5bY2hdOyBkZXJpdmUKICAgT0JKUyBhbmQgTE9CSlMgZnJvbSBDU1JDUzsgYWRkIChvcHRpb25hbCkgYXV0byBkZXBlbmRlbmN5IGdlbmVyYXRpb24KICAgCjIwMDItMDctMTYgMDk6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaDoKCiAgIHJlbW92ZSByZWNlbnRseSBkZWxldGVkIG9pZF9hcnJheS5oCiAgIAoyMDAyLTA3LTE2IDA5OjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oOgoKICAgc3RydWN0IHN1YnRyZWUgLT4gbmV0c25tcF9zdWJ0cmVlCiAgIAoyMDAyLTA3LTE2IDA5OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICByZW1vdmUgbGFzdCByZW1haW5pbmcgcmVmcyB0byBub3cgZGVmdW5jdCBvaWRfYXJyYXkKICAgCjIwMDItMDctMTYgMDk6NDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oLAogICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGdlbmVyaWMgYmluYXJ5IGFycmF5IGNvbnRhaW5lciBleHRyYWN0ZWQgZnJvbSBvaWRfYXJyYXkKICAgCjIwMDItMDctMTYgMDk6NDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oOyBuZXcgdHlwZWRlZiBzdHJ1Y3QgbmV0c25tcF9pbmRleCAob2lkIHB0ciArIGxlbikKICAgCjIwMDItMDctMTYgMDk6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHVzZSBnZW5lcmljIGNvbnRhaW5lciBpbnRlcmZhY2U7IHVzZSBuZXcgbmV0c25tcF9pbmRleCBpbnN0ZWFkIG9mCiAgIG9pZF9hcnJheV9oZWFkZXI7IHJlbmFtZSBhcnJheV9ncm91cCAtPiByZXF1ZXN0X2dyb3VwCiAgIAoyMDAyLTA3LTE2IDA5OjM0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGFkZCBpdGVyYXRvcnM7IG1vcmUgZnVuY3Rpb24gdHlwZWRlZnM7IHJlbmFtZSBzb21lIGZ1bmMgcHRycywgYWRkIGZpbmRfbmV4dCwKICAgZ2V0X3N1YnNldCwgZ2V0X2l0ZXJhdG9yLCBmb3JfZWFjaCwgbmNvbXBhcmU7IGFkZCBhYmlsaXR5IHRvIGhhdmUgbmVzdGVkCiAgIGNvbnRhaW5lcnM7IG1vcmUgdXRpbGl0eSByb3V0aW5lczsgY29udmVuaWVuY2UgbWFyY3Jvczsgc3RhcnQgYWRkaW5nIGNvbW1lbnRzCiAgIAoyMDAyLTA3LTE2IDA5OjI5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZhY3RvcnkuaDoKCiAgIGRlY2xhcmF0aW9ucyBmb3IgYSBnZW5lcmljIGZhY3RvcnkKICAgCjIwMDItMDctMTYgMDg6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2R5bml4LmMsIG1lbW9yeV9ocHV4LmMKLCB2bXN0YXRfZHluaXguYywgdm1zdGF0X2hwdXguYzoKCiAgIEFwcGx5IHBhdGNoIGZyb20gYnVnIHJlcG9ydCA1ODE2MTggKGFsc28gYXBwbGljYWJsZSB0byBkeW5peCkKICAgUHJvdmlkZWQgYnkgTmljaG9sYXMgTC4gTmlnYXkKICAgCjIwMDItMDctMTYgMDY6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vQVNOLnBtLCBPSUQvT0lELnBtLCBhZ2VudC9hZ2VudC5wbSwKICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICByZW1vdmUgIm91ciIgcHJvYmxlbSBhbmQgdXNlIG9sZGVyICJ1c2UgdmFycyIgaW5zdGVhZCBmb3Igb2xkZXIgcGVybC4KICAgICAodGhpcyBzaG91bGQgbWFrZSBpdCB3b3JrIHdpdGggcGVybCA1LjAwNS4gIENvdWxkIHNvbWUgb25lIHRlc3QgdGhpcwogICAgICBmb3IgbWU/KQogICAKMjAwMi0wNy0xNSAwNjo0NSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gbmFtZXMgb2YgbmV0c25tcF9zdWJ0cmVlIGVsZW1lbnRzIGNoYW5nZWQKICAgCjIwMDItMDctMTUgMDY6NDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgIAoyMDAyLTA3LTE1IDA1OjI1ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIFNvbWUgcmVhbGx5IG5hc3R5IGhhY2tzIHRvIGdldCBjb2xvcml6ZWQgdGFibGVzIHRvIHdvcmsuCiAgIAoyMDAyLTA3LTE0IDIwOjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC86IGJ1bGt3YWxrLnQsIG1pYi50OgoKICAgY29tbWVudCBvdXQgYnJva2VuIHRlc3RzIGZvciBub3cgKFhYWCBtYXJrZWQpCiAgIAoyMDAyLTA3LTE0IDIwOjUwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBnZXRidWxrLgogICAKMjAwMi0wNy0xNCAyMDoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIEEgbmV3IGZ1bmN0aW9uIHRvIGNhbGwgYSBzdWItaGFuZGxlciBidXQgcGFzc2luZyBpdCBvbmx5IG9uZSByZXF1ZXN0IHRvIGhhbmRsZS4KICAgCjIwMDItMDctMTAgMjE6MjEgIHJzdG9yeQoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIGRlZmluZSBMT0dfREFFTU9OLCBzaW5jZSB3aW5kb3dzIGRvZXNuJ3QgaGF2ZSBpdAogICAKMjAwMi0wNy0xMCAyMTowNyAgcnN0b3J5CgogICAqIHdpbjMyLzogY29uZmlnLmgsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgcmVtb3ZlIGRlZmluZSBvZiBpbl9hZGRyX3QsIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiBuZXQtc25tcC90eXBlcy5oCiAgIAoyMDAyLTA3LTEwIDAyOjM2ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAKMjAwMi0wNy0xMCAwMjozNSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgICAtIGRvbid0IHVzZSAwIGluICVwIGZvcm1hdCBzcGVjaWZpZXJzCiAgIAoyMDAyLTA3LTEwIDAyOjM0ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAgIC0gZml4IHNvbWUgaG9ycmlibGUgaW5kZW50IGJyb2tlbiBmb3JtYXR0aW5nCiAgIAoyMDAyLTA3LTEwIDAyOjMzICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgICAgLSByZW1vdmUgc29tZSBvYnNvbGV0ZSB2YXJpYWJsZXMKICAgCjIwMDItMDctMTAgMDI6MzMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gcmVmbGVjdCBjaGFuZ2VkIGZ1bmN0aW9uIG5hbWVzIGZyb20gYWdlbnRfcmVnaXN0cnkKICAgCjIwMDItMDctMTAgMDI6MzIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgICAtIGNoYW5nZXMgZHVlIHRvIHJlbmFtaW5nIG9mIHN0cnVjdCBzdWJ0cmVlIHRvIG5ldHNubXBfc3VidHJlZQogICAgIC0gTk9URSBNRU1PUlkgTEVBSyAod2hpY2ggSSBjYW4ndCBzZWUgaG93IHRvIGZpeCAtLSBuZXcgYWdlbnQgQVBJCiAgICAgICBleHBlcnRzIHBsZWFzZSBleGFtaW5lKQogICAKMjAwMi0wNy0xMCAwMjoyOSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgICAgLSBuYW1lLCBzdGFydCwgZW5kIG1lbWJlcnMgYXJlIG5vdyBkeW5hbWljYWxseSBhbGxvY2F0ZWQgdG8gcmVkdWNlCiAgICAgICB3YXN0ZWQgbWVtb3J5IChieSBhIGZhY3RvciBvZiA1IG9yIHNvKQogICAgIC0gZnVuY3Rpb25zIGFyZSByZW5hbWVkIGNvbnNpc3RlbnRseQogICAKMjAwMi0wNy0xMCAwMjoyMCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50LzogYWdlbnRfcmVnaXN0cnkuaCwKICAgbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaCwgc25tcF9hZ2VudC5oLCBzbm1wX3ZhcnMuaAosIHZhcl9zdHJ1Y3QuaDoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAKMjAwMi0wNy0wOSAwNjowMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gZnJlZSBjYWNoZV9pZCBzdG9yYWdlIHdoZW4gY2xvc2luZyBzZXNzaW9uCiAgIAoyMDAyLTA3LTA5IDA1OjU2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBqdXN0IGNhbGwgbmV0c25tcF9kc19zaHV0ZG93bigpIG9uY2UgaW4gc25tcF9zaHV0ZG93bigpCiAgIAoyMDAyLTA3LTA5IDA0OjE1ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIG5ldHNubXBfZml4dXBfbWliX2RpcmVjdG9yeSgpCiAgIAoyMDAyLTA3LTA5IDAzOjE0ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gYWRkIGEgY2FzdCB0byBxdWVsbCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA3LTA4IDIyOjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgZXh0ZXJuIEMgZm9yIEMrKyBjb21waWxlcwogICAKMjAwMi0wNy0wOCAwNzoyMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oOgoKICAgICAtIHJlbW92ZSBvYnNvbGV0ZSBmdW5jdGlvbiBwcm90b3R5cGVzCiAgIAoyMDAyLTA3LTA3IDE5OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdXBkYXRlIHRvIHVzZSBjb250YWluZXJzCiAgIAoyMDAyLTA3LTA3IDE5OjM4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oOgoKICAgZml4IHR5cG8KICAgCjIwMDItMDctMDcgMTk6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2suYywgcHJvYy5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDctMDcgMTk6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50L25zTW9kdWxlVGFibGUuYywKICAgYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsIGhvc3QvaHJfc3dpbnN0LmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNy0wNyAxOTowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFycwogICAKMjAwMi0wNy0wNyAxOTowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX3N0YXNoLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMDctMDcgMTg6NTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0wNy0wNyAxODo1MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgbWFrZSBwYXJhbSBjb25zdDsgZml4IGNvbXBpbGUgY29uc3Qgd2FybmluZwogICAKMjAwMi0wNy0wNyAxODoyNyAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZzsgZml4IG1lbW9yeSBsZWFrOyBwcmVwIGEgZmV3IGNvbW1lbnRzIGZvciBpbmRlbnQKICAgCjIwMDItMDctMDYgMTQ6MTEgIGhhcmRha2VyCgogICAqIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICBGQVEsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC4yLnByZTEgKQogICAKMjAwMi0wNy0wNiAxNDoxMCAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgY2hhbmdlIHByb2plY3QgdmVyc2lvbiB0byA1LjAuMgogICAKMjAwMi0wNy0wNiAxNDowOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgc25tcHRyYXBkIGlzIGFjdHVhbGx5IGJ1aWx0IGluIHRoZSBhcHBzIGRpcmVjdG9yeSwgbm90IHRoZSBhZ2VudCBkaXJlY3RvcnkuCiAgIAoyMDAyLTA3LTA1IDExOjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBjbGFyaWZ5IGRpcmVjdGlvbnMgZm9yIG9idGFpbmluZyBwZXJsL1NOTVAgbW9kdWxlLgogICAKMjAwMi0wNy0wNSAwNToxOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAgIC0gSSBtdXN0IG5vdCBjaGVjayBpbiBjb2RlIHdpdGhvdXQgY29tcGlsaW5nIGl0CiAgICAgLSBJIG11c3Qgbm90IGNoZWNrIGluIGNvZGUgd2l0aG91dCBjb21waWxpbmcgaXQKICAgICAtIEkgbXVzdCBub3QgY2hlY2sgaW4gY29kZSB3aXRob3V0IGNvbXBpbGluZyBpdAogICAgIC0gSSBtdXN0IG5vdCBjaGVjayBpbiBjb2RlIHdpdGhvdXQgY29tcGlsaW5nIGl0CiAgICAgLSAuLi4KICAgCjIwMDItMDctMDUgMDM6MjMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudHgvY2xpZW50LmMsIG1pYklJL3N5c3RlbV9taWIuYzoKCiAgICAgLSBzeXNPYmplY3RJRCB3YXMgYmVpbmcgcmV0dXJuZWQgbWludXMgaXRzIGxhc3Qgc3ViLWlkZW50aWZpZXIgYmVjYXVzZQogICAgICAgdGhlIGxlbmd0aCB2YXJpYWJsZSBoYWQgbm90IGJlZW4gdXBkYXRlZCB0byByZWZsZWN0IHRoZSBmYWN0IHRoYXQgaXQKICAgICAgIGlzIG5vdyBsb25nZXIuICBDb2RlIGNoYW5nZWQgdG8gdXNlIHNpemVvZigpIGluc3RlYWQsIHNvIHRoaXMgd29uJ3QKICAgICAgIGhhcHBlbiBhZ2Fpbi4gIFJlcG9ydGVkIGJ5IFN0aWFuIFNvaWxhbmQgKGJ1ZyAjNTc3NDM5KS4KICAgCjIwMDItMDctMDQgMTA6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICB1Y2Qtc25tcCAtPiBuZXQtc25tcAogICAKMjAwMi0wNy0wNCAwNzowNiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbW9kaWZpZWQgaGFuZGxpbmcgb2Ygb3BhcXVlIHBvaW50ZXIgZm9yIHN0cmVhbS1iYXNlZCB0cmFuc3BvcnRzIHRvCiAgICAgICBhdm9pZCBib3RoIG11bHRpcGxlIGZyZWUoKSBwcm9ibGVtIGFuZCB1bm5lY2Vzc2FyeSBjb3B5aW5nLgogICAKMjAwMi0wNy0wNCAwNjowMCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWYsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jCiAgIChWNC0yLXBhdGNoZXMuWzUsOV0pLCBtYW4vc25tcGQuY29uZi41LmRlZiwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBBcHBseSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIncyBOZXR3b3JrRGlzayBwYXRjaCAjNTU0NTU0CiAgIAoyMDAyLTA3LTA0IDA1OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jLCBocl9maWxlc3lzLmgKICAgKFY0LTItcGF0Y2hlcy5bNSwxXSksIGhyX2ZpbGVzeXMuYywgaHJfZmlsZXN5cy5oOgoKICAgQXBwbHkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyJ3MgTkZTIGZpbGVzeXN0ZW0gcGF0Y2ggIzU1NDU1MwogICAoc2ltcGxpZmllZCB0byBhdm9pZCB0aGUgcmUtaW5kZW50YXRpb24gLSB3aGljaCBtYWtlcyBpdCBlYXNpZXIgdG8gc2VlCiAgICB3aGF0J3MgY2hhbmdlZC4gIFRoZSB3aG9sZSBIb3N0UmVzIGdyb3VwIG5lZWRzIGNsZWFuaW5nIHVwIGFueXdheSEpCiAgIAoyMDAyLTA3LTA0IDA1OjUyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBFbnN1cmUgdHJhbnNwb3J0IG9wYXF1ZSBkYXRhIGlzbid0IG11bHRpcGx5IGFzc2lnbmVkCiAgIChhbmQgaGVuY2UgbXVsdGlwbHkgZnJlZWQpIGZvciBzdHJlYW0tYmFzZWQgdHJhbnNwb3J0cy4KICAgRGF0YWdyYW0tYmFzZWQgdHJhbnNwb3J0cyBkb24ndCBzdWZmZXIgZnJvbSB0aGlzIHByb2JsZW0uCiAgIEJhc2VkIG9uIFBhdGNoIDU3Mzc3MQogICAKMjAwMi0wNy0wMyAxNjoyOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgYmUgcHJlY2lzZSBhYm91dCB3aGF0IGZpbGUgbmVlZHMgdG8gYmUgY29uZmlndXJlZCBmb3IgYWNjZXNzIGNvbnRyb2wKICAgCjIwMDItMDctMDMgMTQ6MTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgZml4IG1pbm9yIGdyYW1tYXIgZXJyb3JzOyBhZGQgZGVzY3IgZm9yIG1pYjJjLmFycmF5LXVzZXI7IGFkZCBzZWN0aW9uIGhlYWRlcgogICBmb3IgZ2VuZXJhdGluZyBoZWFkZXIgZGVmaW5pdGlvbiBmaWxlcwogICAKMjAwMi0wNy0wMyAxMzoxMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiB0eXBlcy5oLCBsaWJyYXJ5L3N5c3RlbS5oOgoKICAgbW92ZSBpbmNsdWRlIGZvciBpbl9hZGRyX3QgdG8gbmV0LXNubXAvdHlwZXMuaCwgd2hlcmUgaW5fYWRkcl90IGlzIGRlZmluZWQKICAgZm9yIHN5c3RlbXMgdy9vdXQgbmV0aW5ldC9pbi5oCiAgIAoyMDAyLTA3LTAzIDEyOjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuc2NhbGFyLmNvbmY6CgogICBtb3JlIHR3ZWFrcyBub3RpY2VkIG9uIHRoZSBtYWlsaW5nIGxpc3QKICAgCjIwMDItMDctMDMgMDg6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvdGVzdC5wbDoKCiAgIG1ha2UgdGVzdCBjbGVhbnVwcyB0ZXN0LnBsCiAgIAoyMDAyLTA3LTAzIDAzOjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYyAoVjQtMi1wYXRjaGVzLjEpLCB1dGlsX2Z1bmNzLmMKOgoKICAgU2h1dCB0aGUgYWdlbnQgZG93biBjbGVhbmx5IGJlZm9yZSByZXN0YXJ0aW5nLgogICBUaGlzIGNsb3NlcyBhbnkgU05NUC9BZ2VudFggcG9ydHMgYXMgd2VsbC4KICAgCjIwMDItMDctMDMgMDM6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIE9JRCBzdWItaWRlbnRpZmllcnMgYXJlIHVuc2lnbmVkLCBzbyB0cmVhdGluZyB0aGVtIGFzIHNpZ25lZCBjYW4KICAgZ2l2ZSB0aGUgd3JvbmcgcmVzdWx0cyB3aXRoIGxhcmdlIHZhbHVlcy4KICAgCjIwMDItMDctMDMgMDM6MjAgIGR0czEyCgogICAqIHNubXBsaWIvc3lzdGVtLmggKFY0LTItcGF0Y2hlcy41KSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgRW5zdXJlIGluX2FkZHJfdCBpcyBkZWZpbmVkLgogICAKMjAwMi0wNy0wMyAwMjozNCAgZHRzMTIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBUZXN0aW5nIGZvciA8c3lzL2Rpc2tsYWJlbC5oPiByZXF1aXJlcyA8bWFjaGluZS90eXBlcy5oPiBvbiBOZXRCU0QgMS41LgogICBSZXBvcnRlZCBieSBGZWxpY2lhIE5lZmYuCiAgIChBcHBhcmVudGx5IGZyb20gdGhlIE5ldEJTRCBidWcgZGF0YWJhc2UgLSB3aHkgdGhleSBkaWRuJ3QgdGVsbCB1cyBhYm91dAogICBpdCBpcyBhIG15c3RlcnkgdG8gbWUuLi4uKQogICAKMjAwMi0wNy0wMyAwMjoxOSAgZHRzMTIKCiAgICogY29uZmlndXJlLmluOgoKICAgRml4IHRoZSBkZWZhdWx0IHZhbHVlIGZvciBzeXNPYmplY3RJRCBhcyByZXBvcnRlZCBpbiB0aGUgY29uZmlndXJlIC0taGVscCBvdXRwdXQuCiAgIChUaGUgYWN0dWFsIHZhbHVlIHVzZWQgaXMgY29ycmVjdCAtIGl0J3MganVzdCB0aGUgaGVscCBvdXRwdXQgdGhhdCdzIHdyb25nKS4KICAgU3BvdHRlZCBieSBTYW5kaHlhIFNhdHlhbmFyYXlhbi4KICAgCjIwMDItMDctMDIgMjM6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICB1cGRhdGUgdGV4dCBmb3IgdmFyaW91cyAuY29uZiBmaWxlcwogICAKMjAwMi0wNy0wMiAxMzo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgZml4ZXMgbm90ZWQgb24gdGhlIG1haWxpbmcgbGlzdCBieSBQYXRyaWNlIEthZGlvbmlrIDxrYWRpb25pa0BlbnNlaXJiLmZyPgogICAKMjAwMi0wNy0wMiAwMjozOSAgZHRzMTIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgQWRkIHRoZSAnc25tcGQnIGFuZCAnc25tcHRyYXBkJyBiaW5hcnkgbmFtZXMgdG8gdGhlIGFwcHJvcHJpYXRlIHBhdGhzCiAgIHdoZW4gc2V0dGluZyB1cCB0aGUgdGVzdGluZyBmcmFtZXdvcmsuCiAgIAoyMDAyLTA3LTAxIDA3OjUzICBkdHMxMgoKICAgKiBzbm1wbGliLzogYXNuMS5jIChWNC0yLXBhdGNoZXMuOCksIGFzbjEuYzoKCiAgIEVuY29kZS9EZWNvZGUgT0lEcyBvZiB0aGUgZm9ybSAyLlggKFggPiA0MCkgY29ycmVjdGx5LgogICAKMjAwMi0wNy0wMSAwMjo0MCAgamJwbgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBmaXggaG9ycmlibGUgZm9ybWF0dGluZyBpbiBoZWxwIGZvciB0cmFuc3BvcnRzCiAgIAoyMDAyLTA3LTAxIDAyOjIzICBkdHMxMgoKICAgKiBzZWRzY3JpcHQuaW46CgogICBQaWNrIHVwIHRoZSBjaGFuZ2VkIGRlZmluaXRpb24gZm9yIHRoZSByb290IG9mIHRoZSBVQ0QgZXh0ZW5zaWJsZSBhZ2VudCB0YWJsZXMKICAgKHNvIHRoYXQgdGhlIEVYQU1QTEUuY29uZiBmaWxlIGdldHMgc2V0IHVwIHdpdGggdGhlIGNvcnJlY3QgbnVtZXJpYyBPSURzKQogICAKMjAwMi0wNi0yOCAwNjo0NiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSByZW1vdmUgdHJhbnNwb3J0IHNwZWNpZmllciBhbmQgcG9ydCBudW1iZXIgZnJvbSBzdHJpbmdzIHJldHVybmVkCiAgICAgICBmcm9tIHNubXBfdGNwX2ZtdGFkZHIoKSB3aGljaCBicmVhayB0Y3Bfd3JhcHBlcnMgKGFuZCBwZXJoYXBzCiAgICAgICBvdGhlciB0aGluZ3MpLgogICAKMjAwMi0wNi0yOCAwNDo0MSAgZHRzMTIKCiAgICogcGVybC9hZ2VudC90ZXN0LnBsOgoKICAgVXBkYXRlIGRlZmF1bHQgc3RvcmUgcmV0cmlldmFsIGZ1bmN0aW9ucyB0byB1c2UgdGhlIGNvcnJlY3QgbmFtZS4KICAgCiAgIE5vdGUgdGhhdCB0aGlzIHRlc3Qgc2NyaXB0IGFwcGVhcnMgdG8gaW5jbHVkZSB0d28gaW5maW5pdGUgbG9vcHMuCiAgIEknbSBub3QgY2xlYXIgaG93IHRoaXMgaXMgZXhwZWN0ZWQgdG8gcnVuIHN1Y2Nlc3NmdWxseSA/CiAgIAoyMDAyLTA2LTI4IDA0OjM5ICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgUmVtb3ZlIHJlZmVyZW5jZSB0byBub24tZXhpc3RlbnQgZGVndWdnaW5nIGZ1bmN0aW9uLgogICAKMjAwMi0wNi0yOCAwNDozNyAgZHRzMTIKCiAgICogcGVybC9tYW5hZ2VyLzogTWFrZWZpbGUuUEwsIGRpc3BsYXl0YWJsZS5wbSwKICAgZ2V0VmFsdWVzLnBtLCBtYW5hZ2VyLnBtLCBzbm1wdG9zcWw6CgogICBCcmluZyBwZXJsICdtYW5hZ2VyJyBtb2R1bGUgdW5kZXIgdGhlIE5ldFNOTVAgYmFubmVyCiAgIChib3RoIGluIHRlcm1zIG9mIG1vZHVsZSBncm91cCBuYW1lLCBhbmQgcmVmZXJlbmNlcyB0byAndWNkLXNubXAnKS4KICAgUmVtb3ZlIHNvbWUgVUNELXNwZWNpZmljIHNldHRpbmdzLgogICAKICAgTm90ZSB0aGF0IHNubXB0b3NxbCBzdGlsbCByZWZlcnMgZXhwbGljaXRseSB0byBXZXMnIFVDRCBlbWFpbCBhZGRyZXNzLAogICBhbmQgbWFuYWdlci5wbSB0byBXZXMnIFVDRCBmaWxlc3RvcmUgcGF0aC4gIFRoZSByZWxldmFudCBsaW5lcyBoYXZlCiAgIGJlZW4gaGlnaGxpZ2h0ZWQsIHRvIGVuY291cmFnZSBhbnlvbmUgd2lzaGluZyB0byB1c2UgdGhpcyB0byBjaGFuZ2UgdGhlbS4KICAgCjIwMDItMDYtMjggMDQ6MTIgIGR0czEyCgogICAqIHBlcmwvOiBBbnlEYXRhX1NOTVAvTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgU05NUC9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIG1hbmFnZXIvTWFrZWZpbGUuUEw6CgogICBSZW1vdmUgY2hlY2tpbmcgZm9yICJpbnRlcm5hbCIgcHJlcmVxdWlzaXRlcywgc28gdGhhdCAicGVybCBNYWtlZmlsZS5QTCIKICAgYXQgdGhlIHRvcCBsZXZlbCB3aWxsIHdvcmsgLSBldmVuIG9uIGEgcHJpc3RpbmUgc3lzdGVtLgogICAKICAgUW46CiAgICAgSXMgaXQgbmVjZXNzYXJ5L2Rlc2lyYWJsZSB0byBzZXBhcmF0ZSB0aGUgTmV0U05NUCBtb2R1bGVzIHRvIHRoaXMgZXh0ZW50PwogICBXb3VsZCBpdCBub3QgYmUgc2ltcGxlciB0byBoYXZlIGFsbCBvZiB0aGUgbWFpbiAucG0vLnhzIGZpbGVzIGluIGEgc2luZ2xlCiAgIE5ldFNOTVAgZGlyZWN0b3J5LCBhbmQgY29tcGlsZS9pbnN0YWxsIHRoZW0gYWxsIGZyb20gdGhlcmU/CiAgIAoyMDAyLTA2LTI4IDAxOjQ1ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENoZWNrIGZvciAtLXdpdGgtZW50ZXJwcmlzZSAoZXQgYWwpIGJlaW5nIGludm9rZWQgd2l0aG91dCBhIHZhbHVlLCBhbmQgYm9tYiBvdXQuCiAgIAoyMDAyLTA2LTI3IDIxOjQzICByc3RvcnkKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBuZXcgUkVBRE1FIGRldGFpbmxpbmcgdGhlIHVzZSBvZiBTRklPIHRvIGNpcmN1bXZlbnQgdGhlIDI1NSBmZCBsaW1pdCBvbgogICBzb2xhcmlzLgogICAKMjAwMi0wNi0yNyAxMTowOSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgcmVtb3ZlIGNoYW5naW5nIGFycmF5OyBhZGQgbmV0c25tcF90YWJsZV9hcnJheV9yZW1vdmVfcm93KCkKICAgCjIwMDItMDYtMjcgMDQ6MTUgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgU29tZSB2ZXJzaW9ucyBvZiAnbWFrZWRlcGVuZCcgKGUuZy4gUmVkSGF0IDcuMSksIGNhbid0IGhhbmRsZSAiLW9zdWZmaXgiCiAgIGFzIGEgc2luZ2xlIG9wdGlvbi4gIEFsbCB2ZXJzaW9ucyBzZWVtIGhhcHB5IHdpdGggIi1vIHN1ZmZpeCIgc28gdXNlIHRoYXQuCiAgIAoyMDAyLTA2LTI3IDAzOjMxICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgVXNlIEVOVl9TRVBBUkFUT1JfQ0hBUiByYXRoZXIgdGhhbiBoYXJkd2lyaW5nICc6JyBpbiBuZXRzbm1wX3NldF9taWJfZGlyZWN0b3J5CiAgIChhcyBzdWdnZXN0ZWQgYnkgUm9iZXJ0KQogICAKMjAwMi0wNi0yNyAwMzoyMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgICAgLSByZW1vdmUgdHJhbnNwb3J0IHNwZWNpZmllciBhbmQgcG9ydCBudW1iZXIgZnJvbSBzdHJpbmdzIHJldHVybmVkCiAgICAgICBmcm9tIHNubXBfdWRwX2ZtdGFkZHIoKSB3aGljaCBicmVhayB0Y3Bfd3JhcHBlcnMgKGFuZCBwZXJoYXBzCiAgICAgICBvdGhlciB0aGluZ3MpLgogICAKMjAwMi0wNi0yNyAwMzowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzbm1wX21pYi5jIChWNC0yLXBhdGNoZXMuMiksIHNubXBfbWliLmMKOgoKICAgVmFsaWRhdGUgbmV3IHNubXBFbmFibGVBdXRoZW5UcmFwcyB2YWx1ZSBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBpdC4KICAgU3BvdHRlZCAmIGZpeGVkIGJ5IFNoYW50aGEgS3VtYXJhCiAgIAoyMDAyLTA2LTI1IDE0OjA5ICByc3RvcnkKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICBhZGQgQVBQVE9QUyAoLUNxKSBmb3Igc3VwcHJlc3Npbmcgb3V0cHV0IG9mIHNldCByZXN1bHRzIG9uIHN1Y2Nlc3MKICAgCjIwMDItMDYtMjUgMDk6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIEFwcGx5IHBhdGNoICM1NTk4NDggdG8gdXNlIHRoZSAvcHJvYyBwc2V1ZG8tZmlsZXN5c3RlbSB1bmRlciBMaW51eAogICAocmF0aGVyIHRoYW4gcGFyc2luZyB0aGUgb3V0cHV0IG9mIHBzKQogICAKMjAwMi0wNi0yNSAwODo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBDaGVjayBmb3IgJ2FpeDQnICh3aGljaCBpcyB0aGUgdG9rZW4gZGVmaW5lZCBpbiB0aGUgc3lzdGVtIGhlYWRlciBmaWxlKQogICByYXRoZXIgdGhhbiAnYWl4Jy4gICBTZWUgYnVnICM1NjU3NjkKICAgCjIwMDItMDYtMjUgMDg6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIFRyZWF0ICcwJyBhcyBhbiBpbnZhbGlkIGluZGV4IGZvciBhICJzaW1wbGUgdGFibGUiLgogICAKMjAwMi0wNi0yNSAwNzozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvc3lzdGVtOgoKICAgZG9jdW1lbnQgcmVhZC1vbmx5IG5hdHVyZSBvZiBzeXNDb250YWN0LjAgYW5kIHN5c0xvY2F0aW9uLjAKICAgY29uZmlndXJhdGlvbiB0b2tlbnMuCiAgIAoyMDAyLTA2LTI1IDA2OjQwICBqYnBuCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLjMuYm90LAogICBkZWZhdWx0X3N0b3JlLjMudG9wOgoKICAgICAtIGFkZCBuZXRzbm1wXyBwcmVmaXggdG8gZGVmYXVsdF9zdG9yZSBmdW5jdGlvbnMKICAgCiAgICAgLSBjbGVhbiB1cCBtYW5wYWdlIGEgYml0CiAgIAogICAgIC0gZml4IGJyZWFrYWdlIGluIGdlbmVyYXRpb24gb2YgZGVmYXVsdF9zdG9yZS4zLmggZHVlIHRvIGF1dG8taW5kZW50YXRpb24KICAgICAgIG9mIGRlZmF1bHRfc3RvcmUuaAogICAKMjAwMi0wNi0yNSAwMjo1NSAgamJwbgoKICAgKiBFWEFNUExFLmNvbmYuZGVmIChWNC0yLXBhdGNoZXMuMyksIEVYQU1QTEUuY29uZi5kZWY6CgogICAgIC0gbWVudGlvbiB0aGF0IHNldHRpbmcgc3lzTG9jYXRpb24gZXQgYWwuIGluIHNubXBkLmNvbmYgbWFrZXMgdGhlbQogICAgICAgcmVhZC1vbmx5CiAgIAogICAgIC0gYWxzbyBjaGFuZ2Ugc3ludGF4IG9mIGFsbCBleGFtcGxlIGNvbW1hbmQgbGluZSB0b29scyB0byB1c2UgbmV3ZXIKICAgICAgIC1jIENPTU1VTklUWSBzeW50YXggbm90IHBvc2l0aW9uYWwgcGFyYW1ldGVyCiAgIAoyMDAyLTA2LTI0IDA4OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIG1ha2UgYnVmZmVyIHNpemUgaW5jcmVhc2Ugbm90ZSBhIGRlYnVnIHN0YXRlbWVudCByYXRoZXIgdGhhbiBhIGdlbmVyaWMKICAgbG9nIHN0YXRlbWVudC4KICAgCjIwMDItMDYtMjMgMTg6NDAgIGRyaWVodWlzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgSGFuZGxlIENPVU5URVI2NCBpbiBfX3RyYW5zbGF0ZV9hc25fdHlwZS4KICAgCjIwMDItMDYtMjMgMTY6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHNjcmlwdCBhbmQgdGhlIGxhbmd1YWdlIGl0IGhvdXNlcy4KICAgICAobWFuIHBhZ2UgYXV0by1nZW5lcmF0ZWQgZnJvbSB0aGUgY29udGFpbmVkIHBvZCBkb2N1bWVudGF0aW9uKQogICAKMjAwMi0wNi0yMyAxNTowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1JFQURNRToKCiAgIHVwZGF0ZSB0byByZWZlcmVuY2UgdG9wIGxldmVsIE1ha2VmaWxlLlBMCiAgIAoyMDAyLTA2LTIzIDE0OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnhzIChWNC0yLXBhdGNoZXMuMSksIFNOTVAueHM6CgogICBmaXggcmVwb3J0ZWQgYnkgV2lsbGVtIERla2tlciBmb3IgV2luZG93cy4gIEJ1ZyAjNTQzMTk0IGZpeGVkLgogICAKMjAwMi0wNi0yMiAwODozNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIHVwZGF0ZSBmb3IgcmVjZW50IG1ldGhvZG9sb2dpZXMKICAgCjIwMDItMDYtMjEgMTY6MDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZmluYWwgKGhvcGVmdWxseSEpIGZpeCBmb3IgcGFyc2luZyBpcCBhZGRyZXNzZXMgZnJvbQogICAiRmNvLiBKYXZpZXIgUmlkcnVlam8iIDxhY2JyaXBlZkBzaS5laHUuZXM+CiAgIAoyMDAyLTA2LTE5IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbmV0c25tcF90b2RvLjM6CgogICB1cGRhdGUgZnJvbSBkb3h5Z2VuCiAgIAoyMDAyLTA2LTE5IDExOjUwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLmludF93YXRjaC5jb25mLCBtaWIyYy5zY2FsYXIuY29uZjoKCiAgIHNjYWxhciBtaWIyYyBjb25maWd1cmF0aW9uIGZpbGVzIGZvciBnZW5lcmF0aW5nIHNjYWxhciBjb2RlLgogICAKMjAwMi0wNi0xOSAxMTo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgY2xlYW4gdXAgbXVsdGktbGluZSBjb21tZW5kIHdoaWNoIHdhcyBtZXNzZWQgdXAgYnkgaW5kZW50LgogICAKMjAwMi0wNi0xOSAxMTo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICAtIGFkZCBzdXBwb3J0IGZvciBwcm9tcHRpbmcgb2YgdW5rbm93biBwYXJhbWV0ZXJzIHRvIGFsaWFzZXMuCiAgIC0gbWlzYyBvdGhlciBpbXByb3ZlbWVudHMgKGxpa2UgInJlaGFzaCIpCiAgIAoyMDAyLTA2LTE5IDExOjM4ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBmaXggZm9yIG5ldyBkZWZhdWx0IHN0b3JlIEFQSQogICAKMjAwMi0wNi0xOSAxMToyOSAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5tYWtlZmlsZXMsCiAgIE1ha2VmaWxlLnN1YnMucGwsIG1ha2UtcGVybC1tYWtlZmlsZXMsIEFTTi9NYWtlZmlsZS5QTAosIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvTWFrZWZpbGUuUEwsIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBBUkdHR0dHRwogICBJIGxvdmUgcGVybC4KICAgSSBoYXRlIHBlcmwncyBtYWtlIHN5c3RlbS4KICAgSSBoYXRlIHRoZSBmYWN0IHRoYXQgcGVybCBzZWdmYXVsdHMgaWYgR2V0T3B0aW9ucygpIGlzIGNhbGxlZCBtb3JlCiAgIHRoYW4gb25jZS4KICAgc2lnaC4KICAgVGhpcyBob3BlZnVsbHkgd2lsbCBmaXggdGhlIHBlcmwgbW9kdWxlIGJ1aWxkIHJvdXRpbmVzIHNvIGl0IGF0IGxlYXN0CiAgIHdvcmtzIChidXQgaXQncyBzdGlsbCB1Z2x5IGFuZCBjb3VsZCB1c2UgbW9yZSBjbGVhbmluZykuCiAgIAoyMDAyLTA2LTE5IDA3OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IGluZmludGUgbG9vcCBhbmQgYWRkIGRlYnVnIGluIHJlbW92ZV9kZWxlZ2F0ZWQKICAgCjIwMDItMDYtMTggMDc6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIE5VTEwgdGhlIHByaXYgcG9pbnRlciBvbiBzZXNzaW9uIGR1cGxpY2F0aW9uLiAgdGhhbmtzIHRvIHJleml0b3oKICAgCjIwMDItMDYtMTcgMDY6MjMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIENoYW5nZWQgS2F0c3VoaXNhJ3MgZW1haWwgYWRkcmVzcywgb24gcmVxdWVzdAogICAKMjAwMi0wNi0xNCAwNzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgUGF0Y2ggIzU2OTAyMTogZnJvbSBMYXVyaSBNeWxsYXJpCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgaW4gdGhlIHRhYmxlIGl0ZXJhdG9yIHN1cHBvcnQuCiAgIAoyMDAyLTA2LTE0IDA3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBcHBsaWVkIHBhdGNoICM1NjkwMjAgZnJvbSByZXppdG96IG9uIElSQyB0byBmaXggbm9uLWluaXRpYWxpemVkIHZhcmlhYmxlCiAgIAoyMDAyLTA2LTE0IDAzOjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmM6CgogICBBZGQgKG51bGwpIGNvbnRleHQsIHRvIGJyaW5nIGludG8gbGluZSB3aXRoIHRoZSB2NSByZWdpc3RyeSBBUElzLgogICBGaXhlcyBidWcgNTY4NTgwLgogICAKMjAwMi0wNi0xNCAwMjoyNyAgZHRzMTIKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlOgoKICAgVXNlIG1hdGNoaW5nICcgYW5kICIgcXVvdGVzIGZvciBBSVggY29uZmlndXJlIHRlc3QuCiAgIE1lbnRpb25lZCBpbiBwYXNzaW5nIGluIGJ1ZyA1NjU3NjkuCiAgIAoyMDAyLTA2LTEzIDE0OjMyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9jb25mLnQ6CgogICBmaXggZGVmYXVsdF9zdG9yZSByb3V0aW5lcwogICAKMjAwMi0wNi0xMiAwNjo0MyAgZHRzMTIKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBCcmluZyBXaW5kb3dzIE9JRCB1c2FnZSBpbnRvIGxpbmUgd2l0aCB0aGUgbWFpbiBjb25maWcgZmlsZSBzZXR0aW5ncy4KICAgCjIwMDItMDYtMTIgMDY6MzcgIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDb3JyZWN0IHRoZSBkZWZhdWx0IEVudGVycHJpc2UgT0lEIHVzZWQgaW4gdHJhcHMsIHRvIGF2b2lkIGEgcmVwZWF0ZWQgMAogICBzdWJpZGVudGlmaWVyLiAgKEZpeGVzIGJ1ZyAjNTY2OTE3KQogICAKMjAwMi0wNi0xMiAwNToxNCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRGVmaW5lICdsZW5ndGgnIGFzIGEgc2lnbmVkIHZhcmlhYmxlLCBzbyBpdCBjYW4gaGFuZGxlIGFuIGVycm9yIHZhbHVlIG9mIC0xLgogICBSZXBvcnRlZCBieSBKb2FraW0gQWx0aGluaS4KICAgCjIwMDItMDYtMTIgMDM6MTEgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIE1ha2Ugc3VyZSB0aGUgYWRkcmVzcyBvZiB0aGUgbmV4dCBsaW5rIGlzIHByb3Blcmx5IHNhdmVkLCBiZWZvcmUgZnJlZWluZyBtZW1vcnkuCiAgIFByb2JsZW0gZGlzY292ZXJlZCBieSBIdWdvIENhY290ZS4KICAgCjIwMDItMDYtMTIgMDI6MTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBhZ2VudC9hZ2VudF9pbmRleC5oLCBhZ2VudC9hZ2VudF90cmFwLmgKLCBhZ2VudC9hbGxfaGVscGVycy5oLCBhZ2VudC9hdXRvX25saXN0LmgsCiAgIGFnZW50L2J1bGtfdG9fbmV4dC5oLCBhZ2VudC9kZWJ1Z19oYW5kbGVyLmgsCiAgIGFnZW50L21pYl9tb2R1bGVzLmgsIGFnZW50L211bHRpcGxleGVyLmgsIGFnZW50L251bGwuaAosIGFnZW50L29sZF9hcGkuaCwgYWdlbnQvcmVhZF9vbmx5LmgsCiAgIGFnZW50L3NlcmlhbGl6ZS5oLCBhZ2VudC9zZXRfaGVscGVyLmgsCiAgIGxpYnJhcnkvY211X2NvbXBhdC5oLCBsaWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGxpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsIGxpYnJhcnkvc25tcElQWERvbWFpbi5oLAogICBsaWJyYXJ5L3NubXBUQ1BEb21haW4uaCwgbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBsaWJyYXJ5L3NubXBVRFBEb21haW4uaCwgbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBsaWJyYXJ5L3NubXBVbml4RG9tYWluLmgsIGxpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGxpYnJhcnkvc25tcF9zZWNtb2QuaCwgbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICBsaWJyYXJ5L3VjZF9jb21wYXQuaDoKCiAgIFN1cHBseSBtaXNzaW5nICNpZm5kZWYvI2RlZmluZS8jZW5kaWYgYW5kIGV4dGVybiAiQyIge30gd3JhcHBlcnMKICAgCjIwMDItMDYtMTEgMTc6NTYgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgcmVtb3ZlIHNwdXJpb3VzIHByaW50ZiB0byBzdGRlcnIKICAgCjIwMDItMDYtMTEgMTQ6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBhZGQgZXh0ZXJuICJDIjsgYWRkIHZvaWRfYXJyYXkgc3RydWN0CiAgIAoyMDAyLTA2LTExIDE0OjIwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcmVtb3ZlIHRzZWFyY2g7IHVzZSBuZXcgY29udGFpbmVyIGluc3RlYWQKICAgCjIwMDItMDYtMTEgMTQ6MTkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICB1c2UgY29udGFpbmVyIGZvciBzZWNvbmRhcnkgaW5kZXgKICAgCjIwMDItMDYtMTEgMTQ6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgYWRkIGNvbnRhaW5lciB0byBoZWFkZXJzOyBhZGQgY29udGFpbmVyLmMKICAgCjIwMDItMDYtMTEgMTQ6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgaW5pdCBmdW5jdGlvbnMgZm9yIGJhc2ljL3NvcnRlZCBjb250YWluZXIKICAgCjIwMDItMDYtMTEgMTQ6MTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBtb3JlIG1ldGhvZHMgZm9yIGJhc2ljIGNvbnRhaW5lcjsgYWRkIHNvcnRlZCAod2lsbCBwcm9iYWJseSByZW5hbWUpIGNvbmF0aW5lcgogICAKMjAwMi0wNi0xMSAxMjoyMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaDoKCiAgIHByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZSBpbmNsdWRlczsgYWRkIGV4dGVybiAiQyIgZm9yIF9fY3BsdXNwbHVzCiAgIAoyMDAyLTA2LTExIDExOjExICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC86IElOU1RBTEwsIE1ha2VmaWxlLlBMLCBSRUFETUUKLCBuZXRzaCwgc25tcHNoOgoKICAgcmVuYW1lZCBzbm1wc2ggdG8gbmV0c2gsIGFzIEkgbGlrZSB0aGUgbmFtZSBiZXR0ZXIgYW5kIGl0IGFwcGVhbHMgdG8gYQogICB3aWRlciBudW1iZXIgb2YgcGVvcGxlLgogICAKMjAwMi0wNi0xMCAwOTo1MyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHdoZW4gZGVsZXRpbmcgYW4gYXNwIHBvaW50ZXIsIG1ha2Ugc3VyZSBpdCBpc24ndCBpbiB0aGUgZGVsZWdhdGVkIGxpc3QKICAgCjIwMDItMDYtMTAgMDg6NDYgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IHBhcnNlX29uZV9vaWRfaW5kZXggdG8gYWxsb3cgdG9vIHNob3J0IElQIGFkZHJlc3Mgd2hlbiBjb21wbGV0ZSBpcwogICBzcGVjaWZpZWQ7IGFkZCBuZXRzbm1wX29pZDJjaGFycyAmIG5ldHNubXBfb2lkMnN0cgogICAKMjAwMi0wNi0xMCAwNzo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwgZGVmYXVsdF9zdG9yZS54cwosIHRlc3QucGw6CgogICB1cGRhdGUgdG8gbGF0ZXN0IGRlZmF1bHRfc3RvcmUgZGVmaW5lcwogICAKMjAwMi0wNi0xMCAwNzozOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIHBlcmwvLmN2c2lnbm9yZSwgcGVybC9NYWtlZmlsZS5QTDoKCiAgIFRvcCBsZXZlbCBwZXJsIE1ha2VmaWxlLlBMIHRvIGluc3RhbGwgdGhlIHdob2xlIGJ1bmNoIHVuZGVybmVhdGguCiAgIFRoaXMgc2hvdWxkIG5vdyBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGxvd2VyIGxldmVsIG1ha2VmaWxlcyBmb3IKICAgc2ltcGxpY2l0eS4KICAgCjIwMDItMDYtMTAgMDc6MjcgIGR0czEyCgogICAqIHBlcmwvU05NUC90L21pYi50OgoKICAgQWNrbm93bGVkZ2Uga25vd24gZmFpbGluZyB0ZXN0cy4KICAgVGhpcyBtZXNzYWdlIGNhbiBiZSByZW1vdmVkIG9uY2UgdGhlIHByb2JsZW0gaGFzIGJlZW4gaXNvbGF0ZWQgYW5kIGZpeGVkLgogICAKMjAwMi0wNi0xMCAwNzoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHN1cHBvcnQgZm9yIGlwYWRkcmVzcyBidWlsZGluZy9wYXJzaW5nIG9mIE9JRCBpbmRleGVzLgogICAKMjAwMi0wNi0xMCAwMjowNyAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuOCksIEZBUToKCiAgIE1lbnRpb24gdGhlIG90aGVyIHBlcmwgbW9kdWxlcywgaW50cm9kdWNlZCB3aXRoIHY1IChwYXJ0aWN1bGFybHkgJ2RlZmF1bHRfc3RvcmUnKQogICAKMjAwMi0wNi0xMCAwMToyOCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNyksIEZBUToKCiAgIE5ldyBlbnRyeSBkZXNjcmliaW5nIHBvc3NpYmxlIHByb2JsZW1zIHdpdGggdHJhcCBoYW5kbGVycy4KICAgCjIwMDItMDYtMDggMjE6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICBkZWZhdWx0X3N0b3JlIGZpeGVzCiAgIAoyMDAyLTA2LTA4IDIwOjU0ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBicmVhayBwZXJsIG1ha2VmaWxlIGNyZWF0aW9uIGludG8gc2VwZXJhdGUgc3RlcDsgb25seSBjbGVhbiBwZXJsIGRpcmVjdG9yeQogICBpZiB0aGVyZSBpcyBhIG1ha2VmaWxlCiAgIAoyMDAyLTA2LTA4IDIwOjE1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgcGVybHRlc3QgdGFyZ2V0IHRvIG1ha2UgdGVzdCBpbiBhbGwgcGVybCBkaXJlY3RvcmllcwogICAKMjAwMi0wNi0wOCAwOTo0NyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIGZpeCB0byBkZWFsIHdpdGggdXBkYXRlZCBTUUw6OlN0YXRlbWVudCBtb2R1bGUuCiAgIAoyMDAyLTA2LTA4IDA3OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgdXBkYXRlIHRvIFNRTC1TdGF0ZW1lbnQgcmVxdWlyZW1lbnQgb2YgMS4wMDQKICAgCjIwMDItMDYtMDggMDY6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcmVtb3ZlIG1pYiBpbml0IGNvZGUgZnJvbSBDIHNubXBfdHJhbnNsYXRlX29iaiBjYWxsCiAgIAoyMDAyLTA2LTA4IDA2OjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGluaXRfc25tcCBpbnNpZGUgdHJhbnNsYXRlT2JqCiAgIAoyMDAyLTA2LTA4IDA2OjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBjaGFuZ2UgdmVyc2lvbiB0byAwLjEKICAgCjIwMDItMDYtMDggMDY6NDMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL2NvbmZpZ3MvdW5peDoKCiAgIEEgZmV3IGNsZWFudXBzIHRvIGlmY29uZmlnIGFuZCBuZXRzdGF0IGNvbW1hbmRzCiAgIAoyMDAyLTA2LTA4IDA2OjM1ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9zbm1wc2g6CgogICAtIGJlZ2lubmluZyBzdXBwb3J0IGZvciBpbXBvcnQvZXhwb3J0IG9mIGRhdGEgKGN1cnJlbnRseSB0by9mcm9tIENTVikuCiAgIC0gc3VwcG9ydCBmb3IgImRpZmYiIHdoaWNoIGNvbXBhcmVzIG9sZCAocG9zc2libHkgaW1wb3J0ZWQgZGF0YSkgdG8gY3VycmVudC4KICAgCjIwMDItMDYtMDggMDY6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL01ha2VmaWxlLlBMOgoKICAgY2hhbmdlIHJlcXVpcmVkIFNOTVAgbW9kdWxlIHZlcnNpb24gZnJvbSA0IHRvIDUKICAgCjIwMDItMDYtMDggMDY6MzQgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIEFkZCBhIHR1dG9yaWFsIHBsYWNlIGhvbGRlciBjb21tZW50IE9JRC4KICAgCjIwMDItMDYtMDggMDY6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgZml4IHRrbWliIGZvciBuZXdlciBwZXJsIG1vZHVsZXMuCiAgIAoyMDAyLTA2LTA4IDA2OjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIHR1cm4gb2ZmIGV4dHJhIGJvbGQvdW5kZXJsaW5lIGZvcm1hdHRpbmcgYnkgZGVmYXVsdC4KICAgCjIwMDItMDYtMDcgMTU6MDQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBnZW5lcmljIGNvbnRhaW5lciBzdHJ1Y3R1cmUgZm9yIHN0b3JpbmcgZGF0YQogICAKMjAwMi0wNi0wNyAxMzowMSAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi54czoKCiAgIGluY2x1ZGUgbmV0LXNubXAtY29uZmlnLmgKICAgCjIwMDItMDYtMDcgMTA6MzcgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgY29uZmlndXJlIHRvIGtlZXAgaW4gbGluZSB3aXRoIGNvbmZpZ3VyZS5pbiAod2h5PyBzaG91bGRuJ3QKICAgY29uZmlndXJlIG5vdCBiZSBpbiBDVlMgYW5kIGJlIGF1dG9nZW5lcmF0ZWQ/IE9uZSBvZiB0aGVzZSBkYXlzIEknbSBnb2luZwogICB0byBoYXZlIHRvIGxlYXJuIGF1dG9jb25mLi4uLikKICAgCjIwMDItMDYtMDcgMTA6MzUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXM6CgogICBhbHdheXMgY2hlY2sgcmV0dXJuIHN0YXR1cyBvZiBtYWtlIHdoZW4gaW5zaWRlIGEgbG9vcCwgYW5kIGV4aXQgb24gZXJyb3JzCiAgIAoyMDAyLTA2LTA3IDA4OjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYyAoVjQtMi1wYXRjaGVzLjMpLAogICBpbnRlcmZhY2VzLmM6CgogICBPbmx5IG51bGwtdGVybWluYXRlIHRoZSBpbnRlcmZhY2UgbmFtZSB3aGlsZSBpdCdzIGFjdHVhbGx5IGJlaW5nIGNvcGllZC4KICAgUmVzdG9yZSB0aGUgZGF0YSBsaW5lIGFmdGVyd2FyZHMsIHNvIHRoZSBkZWJ1Z2dpbmcgb3V0cHV0IGlzIG1lYW5pbmdmdWwuCiAgIAoyMDAyLTA2LTA3IDAxOjE2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBGaXggZm9yIGluZGV4aW5nIGVycm9yLCB0aGF0IGNhdXNlcyBhIGNyYXNoIGlmIG1vcmUgdGhhbiAxNiB2YXJiaW5kcwogICBhcmUgYWRkZWQgdG8gdGhlIGNhY2hlIGluIG9uZSBnby4gIFNwb3R0ZWQgYnkgU2hhbnRoIEt1bWFyYQogICAKMjAwMi0wNi0wNiAwMToxMiAgZHRzMTIKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlIChWNC0yLXBhdGNoZXMuWzcsNV0pLCBhY2xvY2FsLm00LAogICBjb25maWd1cmU6CgogICBEb24ndCBkaWZmZXJlbmNpYXRlIGJldHdlZW4gZWxmLSBhbmQgYS5vdXQtYmFzZWQgTmV0QlNEIHN5c3RlbXMuCiAgIChQcm9ibGVtIGhpZ2hsaWdodGVkIGJ5IEZlbGljaWEgTmVmZikKICAgCjIwMDItMDYtMDUgMTg6NTAgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgcHV0IGRlZmluZXMgZm9yIHNvY2tsZW5fdCBhbmQgaW5fYWRkcl90IGluIG5ldC1zbm1wL3R5cGVzLmggaW5zdGVhZCBvZiBoYXZpbmcKICAgY29uZmlndXJlIGdlbmVyYXRlIHRoZW07IGNvbmZpZ3VyZSBpbnN0ZWFkIGdlbmVyYXRlcyBIQVZFX1NPQ0tMRU5fVCBhbmQKICAgSEFWRV9JTl9BRERSX1QgZm9yIHN5c3RlbXMgd2hpY2ggZG9uJ3QgbmVlZCB0aGUgZGVmaW5lczsgdGhpcyBpcyBwcmltYXJpbHkKICAgZm9yIHRoZSBiZW5lZml0IG9mIHRoZSBXaW4zMiBwbGF0Zm9ybSwgd2hpY2ggZG9lc24ndCBoYXZlIGNvbmZpZ3VyZS4KICAgCjIwMDItMDYtMDUgMDk6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBkb24ndCBhZHZhbmNlIHJlcXVlc3QgcG9pbnRlciBpbnNpZGUgZm9yIGxvb3AsIHNpbmNlIGZvciBsb29wIGRvZXMgaXQgZm9yCiAgIHVzOyBvdGhlcndpc2UgZm9yIGxvb3AgbWF5IGVuZCB1cCBkZXJlZmVyZW5jaW5nIE5VTEwgcG9pbnRlci4KICAgCjIwMDItMDYtMDUgMDY6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL2NvbmZpZ3MvdW5peDoKCiAgIGV4YW1wbGUgY29uZmlndXJhdGlvbiBmaWxlIHRvIGR1cGxpY2F0ZSB2YXJpb3VzIHVuaXggdXRpbGl0aWVzOgogICAgLSBjdXJyZW50bHk6IG5ldHN0YXQsIHBzLCBkZiwgaWZjb25maWcKICAgCjIwMDItMDYtMDUgMDY6NDAgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL2NvbmZpZ3Mvc2NsaToKCiAgIGV4YW1wbGUgY29uZmlndXJhdGlvbiBmaWxlIHRvIGR1cGxpY2F0ZSBmdW5jdGlvbmFsaXR5IGluIEp1ZXJnZW4ncwogICBzY2xpIGNvbW1hbmQuCiAgIAoyMDAyLTA2LTA1IDA2OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9zbm1wc2g6CgogICBuZXcgY29tbWFuZHM6CiAgICAgc291cmNlIGZpbGUgLS0gc291cmNlcyBhbiByYyBmaWxlCiAgICAgd2F0Y2ggZXhwcmVzc2lvbiAtLSByZXBlYXRlZGx5IHJ1bnMgYSBjb21tYW5kIGFuZCBjb2xvcml6ZXMKICAgICAgIGRpZmZlcmVuY2VzIGluIGRhdGEKICAgICBldmFsIGV4cHJlc3Npb24gLS0gZXZhbHVhdGVzIGFuIGV4cHJlc3Npb24gZGlyZWN0bHkgaW4gcGVybAogICAgICAgLSBiZWdpbm5pbmdzIG9mIG92ZXJsb2FkcyBpbiBwZXJsIHNvIHRoYXQgY2FsbGluZyBzeXNDb250YWN0KCkKICAgICAgICAgd2lsbCByZXR1cm4gdGhlIHN5c0NvbnRhY3QgdmFsdWUuICB0YWJsZXMgbm90IHJldHVybmVkIHlldC4KICAgZml4ZXM6CiAgICAgdHVybnMgb2Ygb3JuYW1lbnRhbCBwcm9tcHQgc3VwcG9ydCAoaWNrKSBieSBkZWZhdWx0CiAgIAoyMDAyLTA2LTA1IDA0OjQzICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wY21kLjEgKFY0LTItcGF0Y2hlcy44KSwgc25tcGNtZC4xLmRlZjoKCiAgIEJyaWVmIG1lbnRpb24gb2YgdGhlIG5lZWQgdG8gcXVvdGUgT0lEcyBjb250YWluaW5nIHN0cmluZyBpbmRleGVzLAogICB0byBwcm90ZWN0IHRoZSBkb3VibGUgcXVvdGVzIGZyb20gdGhlIHNoZWxsLgogICAKMjAwMi0wNi0wNCAxMDozOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHRlc3QgZm9yIGEgbnVsbCB0cmVlY2FjaGUgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQ7IG5vdGVkIG9uIHRoZSBjb2RlcnMKICAgbGlzdCBieSBqb2FraW0uYWx0aGluaUByZWRkby5uZXQKICAgCjIwMDItMDYtMDQgMTA6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB0ZXN0IGZvciBhc3AtPnBkdSA9PSBOVUxMIGJlZm9yZSBkZXJlZmVyZW5jaW5nIGl0OyBub3RlZCBvbiB0aGUgY29kZXJzCiAgIGxpc3QgYnkgam9ha2ltLmFsdGhpbmlAcmVkZG8ubmV0LgogICAKMjAwMi0wNi0wNCAwNTo1NCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgc3VwcG9ydCBmb3IgcHJpbnRmLCBzaW5nbGUgcXVlcnkvc2V0cyBvZiBzY2FsYXJzLCBtdWx0aS1saW5lIGFsaWFzZXMuCiAgIAoyMDAyLTA1LTMwIDE1OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGRlZmF1bHRfc3RvcmUgZml4ZXMKICAgCjIwMDItMDUtMzAgMTU6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIG1ha2UgbmV3KCkgb3BlcmF0b3IgYSBiaXQgc21hcnRlcgogICAKMjAwMi0wNS0yOSAxOTo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYWxhcm0uYyAoVjQtMi1wYXRjaGVzLjIpLCBzbm1wX2FsYXJtLmM6CgogICBzZXQgdGhlIHN0b3JhZ2UgcG9pbnRlciB0byBOVUxMLCBhcyBwb2ludGVkIG91dCBieSBNYXJrIEhveS4KICAgCjIwMDItMDUtMjkgMDk6MjIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gQVBJaWZ5IE1JQkRJUlMgc3VwcG9ydAogICAKMjAwMi0wNS0yOSAwNzo0MyAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNiksIEZBUToKCiAgIEV4cGFuZCBvbiB3aGVuIE9wZW5TU0wgaXMgbmVjZXNzYXJ5LCBhbmQgaG93IHRvIGNvbXBpbGUgdXNpbmcgaXQuCiAgIAoyMDAyLTA1LTI5IDA2OjUyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFNldCBSRVVTRUFERFIgc28gdGhhdCBzcGVjaWZ5aW5nIHRoZSBzYW1lIHBvcnQgdHdpY2UgZG9lc24ndCBraWxsIHRoZSBhZ2VudC4KICAgKFN1Z2dlc3RlZCBieSBSb2JlcnQgSGFzdGluZ3MpCiAgIAoyMDAyLTA1LTI5IDAyOjQxICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy41KSwgRkFROgoKICAgUmVmZXJlbmNlIGJvdGggdmVyc2lvbnMgb2YgdGhlIHR1dG9yaWFsIChzaW5jZSB0aGlzIGRvY3VtZW50IGlzIHVzZWQKICAgZm9yIGJ1aWxkaW5nIHRoZSBvbi1saW5lIHZlcnNpb24gb2YgdGhlIEZBUSkKICAgCjIwMDItMDUtMjkgMDI6MTYgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjQpLCBGQVE6CgogICBDbGFyaWZ5IHRoYXQgdHJhcCBmaWx0ZXJpbmcgaXMgbm90IHlldCBvcGVyYXRpb25hbC4KICAgCjIwMDItMDUtMjggMTQ6NTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgcmVtb3ZlIF5NIGNoYXJzCiAgIAoyMDAyLTA1LTI4IDE0OjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgZml4IGxvZ2ljIGluIGNhbl9kZWxldGU7IGNvbnNvbGlkYXRlIHVzZSBvZiBuZXRzbm1wX3NldF9tb2RlX3JlcXVlc3QgYnkgc2V0dGluZwogICByYyBmb3IgdXNlIGF0IGVuZCBvZiBsb29wOyBkb24ndCB1c2UgcmVtb3ZlZCBtYWNyb3MgZm9yIHJvd3N0YXR1cy9zdG9yYWdldHlwZSwKICAgdXNpbmcgbmV3IG5ldHNubXBfY2hlY2tfdmIqIHJvdXRpbmVzIGluc3RlYWQ7IGFkZCBhc3NlcnRzIGZvciBlcnJvciBjYXNlcyB0aGF0CiAgIHNob3VsZCBiZSBjYXVnaHQgYnkgZWFybGllciByb3V0aW5lcwogICAKMjAwMi0wNS0yOCAxNDo0NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIGFkZCBjYWxsYmFja3MgZm9yIHJvdyAoZGUpYWN0aXZhdGlvbgogICAKMjAwMi0wNS0yOCAwNjoyMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgUHJvdGVjdCAiI2luY2x1ZGUgPHNlYXJjaC5oPiIgd2l0aCB0aGUgSEFWRV9TRUFSQ0hfSCB0b2tlbi4gIChTdWdnZXN0ZWQgYnkgSGFycmllKQogICAKMjAwMi0wNS0yOCAwNjoyMCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oOgoKICAgRml4IHRoZSBkZWNsYXJhdGlvbiBvZiBzbm1wX2VuYWJsZV9zeXNsb2dfaWRlbnQuIChTcG90dGVkIGJ5IEhhcnJpZSkKICAgCjIwMDItMDUtMjcgMDE6NTMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaAosIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBEb24ndCBoYXJkd2lyZSBzeXNsb2cgZmFjaWxpdHkgdG8gTE9HX0RBRU1PTi4KICAgRml4IHByb3ZpZGVkIGJ5IEpvYWtpbSBGYWxsc2pvLgogICAKMjAwMi0wNS0yNyAwMTozMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYXBwcy9zbm1wdHJhcGQuYwogICAoVjQtMi1wYXRjaGVzLlsyLDhdKSwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFR3ZWFrICd1c21Vc2VyJyBoZWxwIHN0cmluZyB0byBhY2N1cmF0ZWx5IHJlZmxlY3Qgd2hpY2ggYml0cyBhcmUgb3B0aW9uYWwuCiAgIFJlcG9ydGVkIGJ5IEFsaSBDaGFuYXVpLgogICAKMjAwMi0wNS0yNyAwMToyMiAgZHRzMTIKCiAgICogbWFuLzogc25tcGQuY29uZi41LmRlZiAoVjQtMi1wYXRjaGVzLjQpLCBzbm1wZC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgdGhlIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgImZpbGUiIGRpcmVjdGl2ZXMuCiAgIAoyMDAyLTA1LTI3IDAxOjE3ICBkdHMxMgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBhbiBleHRyYW5lb3VzIHRyYWlsaW5nIGJhY2tzbGFzaCwgdGhhdCBjb25mdXNlcyBzb21lICdtYWtlJ3MKICAgCjIwMDItMDUtMjQgMDk6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvbmV0c25tcF9yZXF1ZXN0X2luZm8ucG06CgogICBQcm9wZXIgY3JlYXRpb24gb2YgcmV0dXJuZWQgTmV0U05NUDo6T0lEIG9iamVjdC4KICAgCjIwMDItMDUtMjQgMDk6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBpbmNyZWFzZSByZWZlcmVuY2UgY291bnRzIG9uIHJldHVybmVkIG1pYiByZWdpc3RyYXRpb24gb2JqZWN0cyBzbwogICB0aGV5J3JlIG5vdCBhdXRvLWNsZWFuZWQgYnkgcGVybCAodGhlIGFnZW50IG5vdyBoYXMgYSBjb3B5IG9mIHRoZSBwb2ludGVyKQogICAKMjAwMi0wNS0yNCAwOTo1MyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBuZXcgZGVmYXVsdF9zdG9yZSBuZXRzbm1wXyBwcmVmaXhlcy4KICAgCjIwMDItMDUtMjQgMDk6NTMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgc3VwcG9ydCBmb3Igc2NhbGFycyAobWliMmMuc2NhbGFyLmNvbmYgZmlsZSBjb21pbmcgc2hvcnRseSkKICAgCjIwMDItMDUtMjQgMDk6NTIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQSBuZXcgcnVsZSBjYWxsZWQgImNvbW1lbnRjaGVjayIgdG8gZ3JlcCBhbGwgc291cmNlcyBmb3IgLy8gY29tbWVudHMuCiAgIAoyMDAyLTA1LTI0IDA4OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgRGVjbGFyZSAncmVnaXN0ZXJfbWliX2RldGFjaF9ub2RlJyBiZWZvcmUgaXQncyB1c2VkIGZvciB0aGUgZmlyc3QgdGltZS4KICAgKFNwb3R0ZWQgYnkgWGlhbmcgWmhhbmcpCiAgIAoyMDAyLTA1LTI0IDA3OjQ0ICBkdHMxMgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlIGV4dHJhbmVvdXMgdHJhaWxpbmcgYmFja3NsYXNoLgogICAoVGhhdCAqbWlnaHQqIGJlIGNvbmZ1c2luZyBTdW4ncyBtYWtlLCBidXQgaXMgd3JvbmcgYW55d2F5KQogICAKMjAwMi0wNS0yMyAwMTozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXQuYywgdm1zdGF0X2JzZGk0LmMsCiAgIHZtc3RhdF9keW5peC5jLCB2bXN0YXRfZnJlZWJzZDIuYywgdm1zdGF0X2hwdXguYywKICAgdm1zdGF0X25ldGJzZDEuYywgdm1zdGF0X3NvbGFyaXMyLmM6CgogICBCcmluZyB0aGUgdmFyaW91cyAndmFyX2V4dGVuc2libGVfdm1zdGF0JyBkZWZpbml0aW9ucyBpbnRvIGxpbmUKICAgd2l0aCB0aGUgZGVjbGFyYXRpb24gaW4gdGhlIGhlYWRlciBmaWxlIC0gaS5lLiBub24tc3RhdGljLgogICAKMjAwMi0wNS0yMSAxNToyNSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIC1JJChzcmNkaXIpL2luY2x1ZGUgdG8gQ1BQIHBhdGggZm9yIHBlb3BsZSBidWlsZGluZyBvdXRzaWRlIG9mIHNyYyB0cmVlCiAgIAoyMDAyLTA1LTIxIDA4OjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgYXBwbHkgcGF0Y2ggWyA1NTgxMjkgXSBNYWtlIHRoZSB0dW5uZWwgbWliIGNvbXBpbGUgaW4gNS4wLjEsIHN1Ym1pdHRlZAogICBieSBMb3JlbnpvIENvbGl0dGkgKGxjb2xpdHRpKSwgd2hpY2ggYWRkcyBtaXNzaW5nIG5ldC1zbm1wLWNvbmZpZy5oCiAgIAoyMDAyLTA1LTIxIDA1OjMyICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZml4IGNvcmUgZHVtcCBpbiAtdSBvcHRpb24gcHJvY2Vzc2luZywgbm90ZWQgYnkgQW5kcmVhcyBNYXVzCiAgIAoyMDAyLTA1LTIxIDA1OjIwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jIChWNC0yLXBhdGNoZXMuOSksIG1lbW9yeS5jCjoKCiAgIExhdGNoIG1lbW9yeSByZXBvcnRpbmcgYXQgMl4zMS0xLCByYXRoZXIgdGhhbiAyXjMyLTEgc2luY2UgdGhlc2UKICAgb2JqZWN0cyBhcmUgZGVmaW5lZCBhcyAoc2lnbmVkKSBJbnRlZ2VyMzIuCiAgIE9ubHkgbGF0Y2ggaWYgdGhlIHZhbHVlIGlzICpncmVhdGVyKiB0aGFuIHRoaXMgdGhyZXNob2xkLCBub3QgbGVzcyEKICAgCjIwMDItMDUtMjEgMDE6MjAgIGpicG4KCiAgICogaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvdWNkX2NvbXBhdC5jCjoKCiAgICAgLSBhZGQgY29tcGF0aWJpbGl0eSBkZWZpbml0aW9ucyBhbmQgZnVuY3Rpb25zIGZvciBuZXdseS1yZW5hbWVkCiAgICAgICBkZWZhdWx0IHN0b3JlIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgYW5kIGNvbnN0YW50cyAoZGVmaW5lZCBpZmYKICAgICAgIC0tZW5hYmxlLXVjZC1jb21wYXRpYmlsaXR5IGlzIGdpdmVuIHRvIGF0IGNvbmZpZ3VyYXRpb24gdGltZSkKICAgCjIwMDItMDUtMjEgMDA6NTEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICAgIC0gbW92ZSBkZWZpbml0aW9uIG9mIG5ldHNubXBfZHNfcmVhZF9jb25maWcgdHlwZSBmcm9tIGRlZmF1bHRfc3RvcmUuaAogICAgICAgaW50byBkZWZhdWx0X3N0b3JlLmMgKHNpbmNlIGl0IGlzIG5vdCwgYW5kIHNob3VsZCBub3QsIGJlIHVzZWQKICAgICAgIGVsc2V3aGVyZSkuCiAgIAoyMDAyLTA1LTIwIDAzOjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICByZWdpc3RlcnMgdG9rZW5zIGZvciBpcHY2IHJvL3J3IGNvbW11bml0eSwgYW5kIG1ha2Ugc3VyZSB0byBwYXJzZSB0aGVtCiAgIGFzIGlwdjYsIG5vdCB2NC4KICAgCjIwMDItMDUtMTkgMTE6MzggIGRyaWVodWlzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQnVnZml4IGZvciBGcmVlQlNEIHN1cHBvcnQgb2YgdGhlIGRpc2tJTyBtaWIuIFRoZSBvcmlnaW5hbCBjb2RlIG5lZ2xlY3RlZAogICB0aGUgZGV2aWNlIG51bWJlciwgd2hpY2ggbWFkZSBkaXN0aW5ndWlzaGluZyBiZXR3ZWVuLCBzYXksIGFkMCBhbmQgYWQxCiAgIGltcG9zc2libGUuCiAgIAoyMDAyLTA1LTE3IDA5OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0Lmg6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIHNsaWdodGx5IHJlZHVjZSBtZW1vcnkgY29zdHMgb2YgcmVnaXN0YXJ0aW9ucwogICAKMjAwMi0wNS0xNiAxNzowNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggZGVmYXVsdCBzdG9yZSB0YWcgbmFtZXMuCiAgIGZpeCBpbml0X3NubXAoKSBkZWZpbml0aW9uIHRvIG1hdGNoIG5vcm1hbCBwZXJsIG5vbi1hbnNpIG1vZGUuCiAgIAoyMDAyLTA1LTE2IDE2OjM5ICBkcmllaHVpcwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBNYWtlIHN1cmUgLS1jZmxhZ3Mgc3BpdHMgb3V0IHRoZSByZXF1aXJlZCBpbmNsdWRlIHBhdGggd2hlbiBpbnN0YWxsaW5nCiAgIGluIGEgbm9uLWRlZmF1bHQgbG9jYXRpb24sIGFzIGRvY3VtZW50ZWQgaW4gdGhlIHVzYWdlIGluZm8gaW4gdGhlIHNjcmlwdC4KICAgCjIwMDItMDUtMTYgMTU6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL3N5c3RlbToKCiAgIGFkZCBhIGxpbmUgdG8gdGhlIHN5c1NlcnZpY2VzIHByb21wdCBzYXlpbmcgaWYgeW91IGRvbid0IGtub3csIHNheSBuby4KICAgCjIwMDItMDUtMTYgMTI6NTUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sCiAgIGRlZmF1bHRfc3RvcmUueHM6CgogICB1cGRhdGUgdG8gbmV3IGRlZmluZSBsaXN0CiAgIAoyMDAyLTA1LTE2IDEyOjU1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvdGVzdC5wbDoKCiAgIHRlc3Qgc2NyaXB0CiAgIAoyMDAyLTA1LTE2IDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZ2VuOgoKICAgYXV0b2dlbmVyYXRpb24gc2NyaXB0CiAgIAoyMDAyLTA1LTE2IDEwOjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvOiBkZWZhdWx0X3N0b3JlLnBtLCBkZWZhdWx0X3N0b3JlLnhzCiwgdGVzdC5wbDoKCiAgIHVwZGF0ZXMgdG8gbmV3IC5oIHRva2VucwogICAKMjAwMi0wNS0xNiAxMDo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2dlbjoKCiAgIC5oIC0+IHBlcmxtb2R1bGUgcmVnZW5lcmF0aW9uIHNjcmlwdAogICAKMjAwMi0wNS0xNiAwNzowOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgQ29uc29saWRhdGUgdGhlIHZhcmlvdXMgT0lEIG91dHB1dCBjb25maWd1cmF0aW9uIG1lY2hhbmlzbXMgaW50byBvbmUuCiAgIFRoaXMgZG9lcyBub3QgYWZmZWN0IHRoZSBjb21tYW5kLWxpbmUgb3B0aW9ucyAoeWV0ISkgLSBqdXN0IHRoZSBpbnRlcm5hbHMuCiAgIAoyMDAyLTA1LTE1IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgZml4IGRlZmF1bHRfc3RvcmUKICAgCjIwMDItMDUtMTUgMTc6MjAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBhdXRvY29uZgogICAKMjAwMi0wNS0xNSAxNzoyMCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNyZWF0ZSBhIGRlZmluZSBsb2NhdGlvbiBmb3IgSEFWRV9HRVRERVZTCiAgIAoyMDAyLTA1LTE1IDE3OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgZGVwZW5kIHVwZGF0ZSwgd2hpY2ggSSBtZWFudCB0byBjaGVjayBpbiBiZWZvcmUgdGhlIDUuMC4xIHJlbGVhc2UKICAgCjIwMDItMDUtMTUgMDU6NTMgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jLCBhZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudF9yZWdpc3RyeS5jLCBhdXRvX25saXN0LmMsIGtlcm5lbC5jLAogICBzbm1wX2FnZW50LmMsIHNubXBfcGVybC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYwo6CgogICAgIC0gdXNlIG5ldyBuZXRzbm1wX2RzX2JsYWggZnVuY3Rpb25zIGFuZCBjb25zdGFudHMKICAgCjIwMDItMDUtMTUgMDU6MzkgIGpicG4KCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB1c20uYywKICAgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICAgIC0gdXNlIG5ldyBuZXRzbm1wX2RzX2JsYWggZnVuY3Rpb25zIGFuZCBjb25zdGFudHMKICAgCjIwMDItMDUtMTUgMDU6MzcgIGpicG4KCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuYywgbWliLmMsIHBhcnNlLmMsCiAgIHJlYWRfY29uZmlnLmMsIHNubXBVRFBEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYwosIHNubXBfYWxhcm0uYywgc25tcF9hcGkuYywgc25tcF9sb2dnaW5nLmMsCiAgIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3NlY21vZC5jLCBzbm1wdXNtLmMsCiAgIHNubXB2My5jLCB1Y2RfY29tcGF0LmMsIHZhY20uYzoKCiAgICAgLSByZW5hbWUgZnVuY3Rpb25zIGFuZCBjb25zdGFudHMgZnJvbSBkZWZhdWx0X3N0b3JlIGZyb20gZHNfYmxhaAogICAgICAgdG8gbmV0c25tcF9kc19ibGFoCiAgIAoyMDAyLTA1LTE1IDAyOjAyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMgKFY0LTItcGF0Y2hlcy4wKSwgc211eC5jOgoKICAgICAtIGluaXRpYWxpc2Ugc211eF9saXN0ZW5fc2QgdG8gYXZvaWQgcHJvYmxlbXMgbm90ZWQgaW4gYnVnICM1NDU0NDgKICAgICAgIChhIGJpdCB1bnJlYXNvbmFibGUgaW4gbXkgdmlldyBidXQgaXQgY2FuJ3QgZG8gYW55IGhhcm0pLgogICAKMjAwMi0wNS0xNCAxMjo0MCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHByZWNpc2lvbiBleHRyYWN0aW9uIG9mIHR1bW9yIGluc3RlYWQgb2YgYW1wdXRhdGlvbiwgb3IsIGlmZGVmIHNlYXJjaC5oCiAgIGZ1bmN0aW9ucyB0aGF0IGFyZW4ndCBlc3NlbnRpYWwgdG8gdGFibGVfYXJyYXkgb3BlcmF0aW9uIGFuZCB3aWxsIHByb2JhYmx5CiAgIHZhbmlzaCBpbiB0aGUgbmVhciBmdXR1cmUgYW55d2F5LgogICAKMjAwMi0wNS0xMyAyMDoxNiAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmM6CgogICBmaXggdHlwZSBpbiBzaXplb2YKICAgCjIwMDItMDUtMTMgMTM6MDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMKLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2hlY2sgZm9yIHNlYXJjaC5oIGJlZm9yZSBjb21waWxpbmcgdGhlIHRhYmxlX2FycmF5IGhlbHBlcgogICAKMjAwMi0wNS0xMyAwODowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICByZW1vdmUgQysrIGNvbW1lbnRzCiAgIAoyMDAyLTA1LTEzIDAwOjM5ICBkcmllaHVpcwoKICAgKiBDaGFuZ2VMb2c6CgogICBOb3RlIGNoYW5nZXMgdG8gY29uZmlndXJlLmluLgogICAKMjAwMi0wNS0xMiAxMDozMCAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlLmluOgoKICAgTWFrZSBzdXJlIHRoZSBjaGVja3MgZm9yIGt2bSByZWxhdGVkIHN0dWZmIGhhcHBlbnMgd2hlbiAtbGt2bSBpcyBpbiBzY29wZS4KICAgQWRkIGRldGVjdGlvbiBvZiB0aGUgLWxkZXZzdGF0IHJlcXVpcmVtZW50IHdoZW4gYnVpbGRpbmcgd2l0aCB1Y2Qtc25tcC9kaXNraW8uCiAgIAoKCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wIC0+IFY1LjAuMQoKMjAwMjAtMDUtMTIgMTc6MzAgIGRyaWVodWlzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGRldGVjdCAtbGRldnN0YXQgd2hlbiBuZWVkZWQ7IGZpeCAtbGt2bSBkZXRlY3Rpb24KCjIwMDItMDUtMTAgMTc6MDkgIGhhcmRha2VyCgogICAqIEZBUSwgTkVXUywgUkVBRE1FLCBSRUFETUUuYWdlbnR4OgoKICAgbWVudGlvbiB0dXRvcmlhbC01IGluc3RlYWQgb2YgdHV0b3JpYWwKICAgCjIwMDItMDUtMTAgMTc6MDQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvOiBNYWtlZmlsZS5QTCwgYWdlbnQucG0sCiAgIG5ldHNubXBfcmVxdWVzdF9pbmZvLnBtOgoKICAgcmVxdWVzdCBpbmZvIHBlcmwgY29kZSBtb3ZlZCB0byBzZXBhcmF0ZSBmaWxlLgogICAKMjAwMi0wNS0xMCAxNzowMSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIE9JRCBidWlsZGluZyBvdmVybG9hZHMuCiAgIAoyMDAyLTA1LTEwIDE2OjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBBZGQgcHJvcGVyIGxlbmd0aCBzZWdtZW50IHRvIHRoZSBidWlsZCB2aWV3IE9JRC4KICAgCjIwMDItMDUtMTAgMTQ6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBuZXcgZG9jIHBhdGNoIGZyb20gQXhlbCBLaXR0ZW5iZXJnCiAgIAoyMDAyLTA1LTEwIDE0OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jIChWNC0yLXBhdGNoZXMuMCksIHZhY21fdmFycy5jCjoKCiAgIGZpeCB2YWNtIHByb2JsZW0gb24gc2V0cyB3aXRoIE9JRHMgY29udGFpbmluZyBsYXJnZSBudW1iZXJzIGFzIG5vdGVkCiAgIGJ5IFZpbmF5IEdhb25rYXIgb24gdGhlIC1jb2RlcnMgbWFpbGluZyBsaXN0LgogICAKMjAwMi0wNS0xMCAxMzo0NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggY2FsbGluZyBvbiBtdWx0aXBsZSB0YWJsZXMKICAgCjIwMDItMDUtMTAgMDM6MjMgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBNZXJnZSAiU1RSSU5HOiBIZXg6IiB0eXBlIHRva2VucyBpbnRvIGEgc2luZ2xlIHRva2VuICJIZXgtU1RSSU5HOiIKICAgCjIwMDItMDUtMTAgMDM6MTIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIFJlcG9ydCBub24tZXhpc3RlbnQgc3ViaW5zdGFuY2VzIGFzICdub1N1Y2hJbnN0YW5jZScgcmF0aGVyIHRoYW4gJ25vU3VjaE9iamVjdCcuCiAgICJzbm1wZ2V0IC4uLi4gLjEuMy42LjEuNi4zLjEyLjEuNS4wLjk5IiBub3cgcmVzcG9uZHMgY29ycmVjdGx5LgogICAodGhvdWdoICJzbm1wZ2V0IC4uLi4gLjEuMy42LjEuNi4zLjEyLjEuNS4xIiBzdGlsbCByZXR1cm5zICdub1N1Y2hPYmplY3QnKQogICAKICAgQWxzbyBndWVzcyB0aGF0IGZhaWxlZCBTRVQgcmVxdWVzdHMgYXJlICdub0NyZWF0aW9uJyBlcnJvcnMgKHdoaWNoIGlzCiAgIHByb2JhYmx5IHRoZSBtb3N0IGxpa2VseSBvcHRpb24pLgogICAKMjAwMi0wNS0wOSAxNTo1NCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBleGl0IHByb3Blcmx5IHdoZW4gYSBzdWJkaXIgZmFpbHMgdG8gbWFrZSBwcm9wZXJseQogICAKMjAwMi0wNS0wOSAxNTozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGNyZWF0ZSBhIHRva2VuIGZvciB0aGUgLU92IGVxdWl2ZWxhbnQKICAgCjIwMDItMDUtMDkgMDk6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X3NvbGFyaXMyLmMgKFY0LTItcGF0Y2hlcy41KSwKICAgbWVtb3J5X3NvbGFyaXMyLmM6CgogICBwYXRjaCBmcm9tIFRha3VtaSBLYWRvZGUgdG8gZml4IG1lbW9yeSB1c2FnZSBvbiBzb2xhcmlzCiAgIAoyMDAyLTA1LTA5IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIHVwZGF0ZXMgZnJvbSBtYWxsb2NlZCB2bXN0YXQgZml4ZXMgZnJvbSBwYXRjaGVzIGJyYW5jaAogICAKMjAwMi0wNS0wOCAxNjozNCAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgbmV3IC0tY29tcGlsZS1zdWJhZ2VudCBmZWF0dXJlczoKICAgICAtLWNmbGFncwogICAgIC0tbm9ybQogICAgIC0tbGRmbGFncwogICAgIGluY2x1ZGVzIGhlYWRlciBmaWxlcwogICAgIG1pc2Mgb3RoZXIgYnVnIGZpeGVzLgogICAKMjAwMi0wNS0wOCAxMzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBtYWtlIHRoZSBzdWJhZ2VudCBwcm9wZXJseSBjYWxsIHRoZSByZXNlcnZlMiBzdGF0ZSBhZ2Fpbi4KICAgCjIwMDItMDUtMDggMTA6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgcnVuIGluZGVudAogICAKMjAwMi0wNS0wOCAwOTowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICB1bSwgdXNlIDMwIHNlY29uZHMgbGlrZSBhZHZlcnRpc2VkLgogICAKMjAwMi0wNS0wOCAwODo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5oLAogICBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBkZWZpbmUgYSBiZXR0ZXIgbm90aWZpY2F0aW9uIGV4YW1wbGUgKG5vIHJlcXVlc3RzLiAganVzdCBhbGFybSAtPiBzZW5kKQogICAKMjAwMi0wNS0wNyAyMjo0NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICB1cGRhdGUgdG8gY3VycmVudCBpbmRlbnQgY29tbWFuZAogICAKMjAwMi0wNS0wNyAyMjo0NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIG1vdmUgdGV4dCBpbiBjb21tZW50IGxlZnQgc2xpZ2h0ICh3YXMgdG9vIGxvbmcpLgogICAKMjAwMi0wNS0wNyAyMjo0MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBlbnVtIGZpeGVzLgogICAKMjAwMi0wNS0wNyAyMjo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgbWliMmMuY29sdW1uX2RlZmluZXMuY29uZiwKICAgbWliMmMuY29sdW1uX2VudW1zLmNvbmYsIG1pYjJjLmNvbmY6CgogICBOZXcgbWliMmMgZmlsZXMgZm9yIGdlbmVyYXRpbmcgaGVhZGVycyBmdWxsIG9mIGNvbHVtbiBudW1iZXIgZGVmaW5lcwogICBhbmQgZW51bSBkZWZpbmVzLgogICAKMjAwMi0wNS0wNyAyMjo0MCAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgLSAtLWNvbXBpbGUtc3ViYWdlbnQgYWdlbnQgbGlicmFyeSByZW9yZGVyaW5nIHNvIGl0IGFjdHVhbGx5IHdvcmtzLgogICAtIC0tY29tcGlsZS1zdWJhZ2VudCBub3cgc3VwcG9ydHMgLm8gZmlsZXMgKHByZWNvbXBpbGVkIGNvZGUpLgogICAKMjAwMi0wNS0wNyAyMjozMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlOgoKICAgaG1tLiAgbWlzc2VkIHNvbWUgY2hlY2tpbiBmaWxlcy4KICAgCjIwMDItMDUtMDcgMTE6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90LzogY29uZnRlc3QuY29uZiwgc3RhcnRhZ2VudC5wbCwgY29uZi50CjoKCiAgIHRlc3QgZm9yIGNvbmZpZ3VyYXRpb24gZmlsZS9kZWZhdWx0X3N0b3JlIHN1cHBvcnQKICAgCjIwMDItMDUtMDcgMTE6MTQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBtYWtlIGluaXRfc25tcCgpIHRha2UgYSBjaGFyICogYXJndW1lbnQgbGlrZSB0aGUgcmVhbCBBUEkKICAgCjIwMDItMDUtMDcgMTE6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIHR5cG9zLgogICAKMjAwMi0wNS0wNyAwOTo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBmaXggdGhlIC1nIGZsYWcuCiAgIAoyMDAyLTA1LTA3IDA5OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBjYWxsIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IgbGlrZSBhIGdvb2QgYm95LgogICAKMjAwMi0wNS0wNiAyMDo0MyAgcnN0b3J5CgogICAqIG1pYnMvTWFrZWZpbGUubWliOgoKICAgZml4IG1pc3NpbmcgJCBub3RlZCBieSBKb2huIE1pbGxzIG9uIHRoZSBjb2RlcnMgbGlzdAogICAKMjAwMi0wNS0wNiAxNjoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLCBzbm1wbGliL3NubXBfYXBpLmMKICAgKFY0LTItcGF0Y2hlcy5bNCwyLDMsM10pLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgdXNlIHNpemVfdCB3aGVuIHNvY2tsZW5fdCBpcyBub3QgYXZhaWxhYmxlIChjb3JyZWN0bHkgZG9uZSB0aGlzIHRpbWUpCiAgIAoyMDAyLTA1LTA2IDE1OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFRDUERvbWFpbi5jLCBzbm1wVENQSVB2NkRvbWFpbi5jLAogICBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKOgoKICAgdXNlIHNpemVfdCB3aGVuIHNvY2tsZW5fdCBpcyBub3QgYXZhaWxhYmxlCiAgIAoyMDAyLTA1LTA2IDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4KICAgKFY0LTItcGF0Y2hlcy5bMyw3LDEsMl0pLCBhY2NvbmZpZy5oLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHVzZSBzaXplX3Qgd2hlbiBzb2NrbGVuX3QgaXMgbm90IGF2YWlsYWJsZQogICAKMjAwMi0wNS0wNiAxNToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfaHB1eC5jLCBtZW1vcnlfaHB1eC5oCiwgdm1zdGF0X2hwdXguYywgdm1zdGF0X2hwdXguaDoKCiAgIHJ1biBpbmRlbnQKICAgCjIwMDItMDUtMDYgMTU6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2hwdXguYywgbWVtb3J5X2hwdXguaAosIHZtc3RhdF9ocHV4LmMsIHZtc3RhdF9ocHV4Lmg6CgogICBQYXRjaGVzICM1NTE5MTQrIGZyb20gR2FyeSBFZHdhcmRzIHRvIHN1cHBvcnQgaHB1eDExIGZvciBtZW1vcnkgYW5kIHZtc3RhdCBtb2R1bGVzCiAgIAoyMDAyLTA1LTA2IDE1OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgYWRkIG5ldyBocHV4IG1vZHVsZXMKICAgCjIwMDItMDUtMDYgMTQ6MzQgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG5ldyBjb250cmlidXRvcnMuCiAgIAoyMDAyLTA1LTA2IDE0OjMyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBtYW4vc25tcGNtZC4xLmRlZgosIHNubXBsaWIvbWliLmM6CgogICBQYXRjaCAjNTUxNDg5OiBGcm9tIEplZmZyZXkgV2F0c29uIHRvIGFkZCBhIC1RIG9wdGlvbiBmb3IgcXVpY2sgYnV0IHcvIGFuICc9JwogICAKMjAwMi0wNS0wNiAxNDoyOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgY2hhbmdlIC1EIGRvY3VtZW50YXRpb24gdG8gcmVmbGVjdCBjdXJyZW50IGNvZGUuCiAgIAoyMDAyLTA1LTA2IDE0OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBtaXNjIHNtYWxsIGJ1Z3MgYW5kIGVycm9yIG1lc3NhZ2Ugd29yZGluZyBmaXhlcy4KICAgCjIwMDItMDUtMDYgMDk6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMgKFY0LTItcGF0Y2hlcy45KSwgc211eC5jOgoKICAgYnVnICM1NDcwMTA6IGZpeCBzbXV4IGF1dGggYnVnIGFzIHJlcG9ydGVkIGFuZCBmaXhlZCBieSBTdGVmYW4gUmFkbWFuCiAgIAoyMDAyLTA1LTAxIDIzOjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdHdlYWtzIGZvciB1cGRhdGUgdG8gdGFibGVfYXJyYXkKICAgCjIwMDItMDUtMDEgMjM6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGFkZCBvYmplY3RfbW9uaXRvciBzdHVmZgogICAKMjAwMi0wNS0wMSAyMjo0NiAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBhZGQgY2hlY2tfdmFyYmluZCBzdHVmZgogICAKMjAwMi0wNS0wMSAyMjo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgY29udmVuaWVuY2UgZnVuY3Rpb25zIGZvciB2YWxpZGF0aW9uIHZhYnJpbmQgaW5mbwogICAKMjAwMi0wNS0wMSAyMjo0MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgZG8gSSByZWFsbHkgaGF2ZSB0byBkbyB0aGlzPyBzaWdoLiBPaywgcmVuYW1lIGRlYnVnIHRva2VuOyByZXZhbXAgbG9naWMgdG8KICAgbW9kaWZ5IHJvd3MgaW4gcGxhY2UsIGtlZXBpbmcgdW5kbyBpbmZvICh2cyBhbHdheXMgY2hhbmdpbmcgYSBjb3B5IG9mIGEgcm93CiAgIGFuZCBzd2FwcGluZyByb3dzIHdoZW4gc2V0IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkpIHRvIGFsbG93IGV4dGVybmFsIGNvZGUKICAgdG8ga2VlcCBwb2ludGVycyB0aGF0IGRvbid0IGRpc2FwcGVhciBvbiB0aGVtOyBhZGQgYSBmZXcgY2FsbGJhY2tzLCBpbmNsdWRpbmcKICAgcm93X2NvbXBhcmUsIHNvIHRhYmxlX2FycmF5IGNhbiBtYWludGFpbiB0aGUgc2Vjb25kYXJ5IGluZGV4IHRyZWU7IGRvbid0IGNhbGwKICAgY2FuX2FjdGl2YXRlL2Nhbl9kZWxldGUgdW5sZXNzIHdlIGFyZSBhY3R1YWxseSB0cnlpbmcgdG8gYWN0aXZhdGUvZGVsZXRlIHJvdzsKICAgYWRkIHNrZWxldG9uIChpZmRlZidkIG91dCkgY29kZSBmb3IgY29vcGVyYXRpdmUgbm90aWZpY2F0aW9ucyBvZiByb3cgZXZlbnRzOwogICB1cGRhdGUgY2hhbmdpbmcgYXJyYXkgaW4gY29tbWl0ICYgdW5kbyBjYXNlcywgbm90IGp1c3QgY29tbWl0OyBjaGFuZ2UgdHlwZGVmcwogICBmb3IgYSBmZXcgY2FsbGJhY2sgcG9pbnRlcnM7IHVtbW1tLi4uIEkgKnRoaW5rKiB0aGF0J3MgaXQuLi4uOi0pCiAgIAoyMDAyLTA1LTAxIDE3OjMwICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IE9JRC5wbSwgT0lELnhzLCB0ZXN0LnBsOgoKICAgQWRkIGluZGV4IGJ1aWxkaW5nIHRvIHRoZSArIG9wZXJhdG9yLgogICAKMjAwMi0wNS0wMSAwOTo1MiAgaGFyZGFrZXIKCiAgICogcGVybC86IE9JRC9PSUQucG0sIE9JRC9PSUQueHMsIGFnZW50L01ha2VmaWxlLlBMCiwgYWdlbnQvYWdlbnQucG0sIGFnZW50L2FnZW50LnhzLCBhZ2VudC90ZXN0LnBsCiwgYWdlbnQvdHlwZW1hcDoKCiAgIE1ha2UgZ2V0T0lEIGZvciByZXF1ZXN0cyByZXR1cm5lZCBhIE5ldFNOTVA6Ok9JRCBibGVzc2VkIHJlZmVyZW5jZS4KICAgSSdtIG5vdCBoYXBweSBhYm91dCBob3cgdGhpcyBpcyBkb25lLCBidXQgYWxsIGF0dGVtcHRzIHRvIGRvIGl0CiAgIGNvcnJlY3RseSBvbmx5IGxlZnQgbWUgaW4gY29uZnVzaW9uLgogICAKMjAwMi0wNS0wMSAwOTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCjoKCiAgIENoYW5nZSB0aGUgZG9tYWluIE9JRHMgdG8gcG9pbnQgdG8gdGhlIG5ldC1zbm1wIGRvbWFpbnMgY3JlYXRlZCBieSBEYXZlLgogICBUaGlzIGZpeGVzIGJ1ZyAjNTQ0MjQ1IGFzIHdlbGwuCiAgIAoyMDAyLTA1LTAxIDA5OjMwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEFkZCB0aGUgT0lEIHBlcmwgbW9kdWxlIHRvIHRoZSBsaXN0IG9mIG1vZHVsZXMuCiAgIAoyMDAyLTA1LTAxIDA3OjQ1ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELVNOTVAtTUlCLnR4dCAoVjQtMi1wYXRjaGVzLjApLCBVQ0QtU05NUC1NSUIudHh0OgoKICAgcmVtb3ZlIG9sZCAoYW5kIGNvbmZsaWN0aW5nIHdpdGggdHJhcHMpIHRyYW5zcG9ydCBkb21haW4gT0lEcwogICAKMjAwMi0wNS0wMSAwNjoxOSAgZHRzMTIKCiAgICogbWFuLzogc25tcGJ1bGtnZXQuMS5kZWYsIHNubXBidWxrd2Fsay4xLmRlZiwKICAgc25tcGNtZC4xLmRlZiwgc25tcGRlbHRhLjEsIHNubXBnZXQuMS5kZWYsCiAgIHNubXBzZXQuMS5kZWYsIHNubXBzdGF0dXMuMS5kZWYsIHNubXB0ZXN0LjEuZGVmLAogICBzbm1wd2Fsay4xLmRlZjoKCiAgIEFkZCB0eXBlIHRhZ3MgIlNUUklORzogIiBhbmQgIklOVEVHRVI6ICIgdG8gZXhhbXBsZSBvdXRwdXQuCiAgIEFkZCBleHBsaWNpdCBzZXR0aW5nIG9mIHByb3RvY29sIHZlcnNpb24gdG8gZXhhbXBsZSBjb21tYW5kcy4KICAgCjIwMDItMDUtMDEgMDM6MzQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi86IGFndXRpbC5jLCBhZ3V0aWwuaCwKICAgYWd1dGlsX2FwaS5oLCBhbGFybS5jLCBhbGFybS5oLCBldmVudC5jLAogICBldmVudC5oLCBoaXN0b3J5LmMsIGhpc3RvcnkuaCwgcm93X2FwaS5oLAogICByb3dzLmMsIHJvd3MuaCwgc3RhdGlzdGljcy5jLCBzdGF0aXN0aWNzLmg6CgogICAgIC0gcmVtb3ZlIENWUyBMb2c6IGVudHJpZXMgd2hpY2ggYXJlIGNhdXNpbmcgcHJvYmxlbXMgc2luY2UgdGhleSBhcmUKICAgICAgIGVtYmVkZGVkIGluIGEgY29tbWVudCwgYnV0IHNvbWUgb2YgdGhlIGxvZyBlbnRyaWVzIGNvbnRhaW4gY29tbWVudAogICAgICAgZGVsaW1pdGVycy4KICAgCjIwMDItMDQtMzAgMjI6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcmVtb3ZlIG5ldHNubXBfcHJvY2Vzc2luZ19zZXQsIGl0IGxpdmVzIGluIHNubXBfYWdlbnQuYwogICAKMjAwMi0wNC0zMCAyMjoxMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsIHNubXBsaWIvc25tcC10Yy5jCjoKCiAgIHJlbW92ZSB1bnVzZWQgcGFyYW1ldGVyOyBhbGxvdyBOT05FIGFzIG9sZCB2YWx1ZSBmb3Igc3RvcmFnZSB0eXBlIHRyYW5zdGlvbnMKICAgCjIwMDItMDQtMzAgMjI6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICByZW1vdmUgb3Zlcmx5IGNvbXBsZXggbWFjcm8gc3R1ZmYgZm9yIHJvd3N0YXR1cy9zdG9yYWdldHlwZQogICAKMjAwMi0wNC0zMCAwOToyOCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiBNYWtlZmlsZS5QTCwgT0lELnBtLCBPSUQueHMsIFJFQURNRQosIHRlc3QucGw6CgogICAtIGFsbG93IGNvbnZlcnNpb25zIHRvIGFuIGFycmF5IChuZWVkcyB0byBiZSB0aWVkIHN0aWxsKS4KICAgLSBkb2N1bWVudGF0aW9uLgogICAKMjAwMi0wNC0zMCAwODoxNSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4zKSwgc25tcGQuYzoKCiAgICAgLSBmaXggYnVnICM1NDU3NzUsIHJlcG9ydGVkIGJ5IERhdmUgRGVuc29uLCB3aGVyZWJ5IHRoZSBQSUQgb2YgYW4KICAgICAgIGFscmVhZHktcnVubmluZyBzbm1wZCB3b3VsZCBiZSBvdmVyd3JpdHRlbiBieSBzdGFydGluZyBhIG5ldyBzbm1wZAogICAgICAgKHdoaWNoIHdvdWxkIHRoZW4gZXhpdCwgbGVhdmluZyB0aGUgb3JpZ2luYWwgc25tcGQgcnVubmluZyBhbmQgdGhlCiAgICAgICB3cm9uZyBQSUQgaW4gdGhlIGZpbGUpLiAgU29sdXRpb24gaXMgbm90IHRvIHdyaXRlIHRoZSBQSUQgdW50aWwgd2UKICAgICAgIGhhdmUgc3VjY2Vzc2Z1bGx5IG9wZW5lZCBhbGwgb3VyIHNvY2tldHMuCiAgIAoyMDAyLTA0LTMwIDA3OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IC5jdnNpZ25vcmUsIENoYW5nZXMsIE1BTklGRVNULAogICBNYWtlZmlsZS5QTCwgT0lELnBtLCBPSUQueHMsIFJFQURNRSwKICAgdGVzdC5wbCwgdHlwZW1hcDoKCiAgIE9JRCBwZXJsIG1vZHVsZSBzbyB5b3UgY2FuIGRvIHNpbXBsZSBPSUQgbWFuaXB1bGF0aW9ucyB3aXRoaW4gcGVybCBlYXNpbHk6CiAgICAgLSBFeGFtcGxlOiAgbmV3IE5ldFNOTVA6Ok9JRCgnaW50ZXJmYWNlcycpID4gbmV3IE5ldFNOTVA6Ok9JRCgnc3lzdGVtJykKICAgCjIwMDItMDQtMjkgMTY6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICByZWdleHAgZml4IGZvciB3aGl0ZSBzcGFjZSBjaGVja3MgaW4gaW5kZW50IGZvcm1hdHRlZCBjb2RlCiAgIAoyMDAyLTA0LTI5IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHJlb3JkZXIgcGVybCBtb2R1bGUgbmFtZXMgdG8gcmVmbGVjdCAobmV3KSBkZXBlbmRlbmNpZXMuCiAgIAoyMDAyLTA0LTI5IDA5OjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9taWIudDoKCiAgIGZpeCBhIGZldyB3YXJuaW5ncyBvbiBmYWlsZWQgdGVzdHMgKGp1c3Qgc2NyZWVuIGNsZWFudXBzKQogICAKMjAwMi0wNC0yOSAwOTo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFNOTVAucG06CgogICBNYWtlIHRoZSBwZXJsIG1vZHVsZSByZXNwZWN0IHNubXAuY29uZiBzZXR0aW5ncyAoZmluYWxseSkuCiAgICAgLSBOb3cgcmVxdWlyZXMgYSBkZXBlbmRlbmN5IG9uIHRoZSBOZXRTTk1QOjpkZWZhdWx0X3N0b3JlIG1vZHVsZSB0aG91Z2guCiAgIAoyMDAyLTA0LTI3IDA4OjE5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZG9uJ3QgcHJvY2VzcyBzZXQgcmVxdWVzdCB0aWxsIGRlbGVnYXRlZCByZXF1ZXN0cyBhcmUgY29tcGxldGUsIGFuZCBxdWV1ZQogICBhbnkgb3RoZXIgcmVjZWl2ZWQgcGFja2V0cyB1bnRpbCBhIHNldCBoYXMgY29tcGxldGVkIHByb2Nlc3NpbmcuCiAgIAoyMDAyLTA0LTI3IDA4OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY2xlYW4gdXAgY29tbWVudHMgbXVuZ2VkIGJ5IGluZGVudAogICAKMjAwMi0wNC0yNyAwODowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oOgoKICAgYWRkIG1pc3NpbmcgcHJvdG90eXBlIHRvIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA0LTI3IDA4OjA3ICByc3RvcnkKCiAgICogYWdlbnQvOiBvYmplY3RfbW9uaXRvci5jLCBoZWxwZXJzL3RhYmxlLmMsCiAgIGhlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGlmZGVmIGd5bW5hc3RpY3MgdG8gbWFrZSBzdXJlIGFzc2VydHMgYXJlIG9ubHkgY29tcGlsZWQgaW4gb25seSBpZiBleHBsaWNpdHkKICAgcmVxdWVzdGVkCiAgIAoyMDAyLTA0LTI2IDIxOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBmaXggdW5iYWxhbmNlZCBlbmRpZiBvbiBsaW51eC4gaG9wZSBJIGRpZG4ndCBicmVhayBhbnl0aGluZyBlbHNlLgogICAKMjAwMi0wNC0yNiAxOToxNCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBmaXggdW51c2VkIHZhciB3YXJuaW5nIGZvciAhd2luZG93cwogICAKMjAwMi0wNC0yNiAxNDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oOgoKICAgZml4IE9JRF9MRU5HVEggZGVmaW5pdGlvbnMKICAgCjIwMDItMDQtMjYgMTA6NTMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBwZXJsL0FTTi9NYWtlZmlsZS5QTCwKICAgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgZml4IC0td2l0aC1wZXJsLW1vZHVsZXMgaW4gbWFrZWZpbGVzLiAgTWFrZSBldmVyeXRoaW5nIHVzZQogICBuZXQtc25tcC1jb25maWcsIC4uLgogICAKMjAwMi0wNC0yNiAxMDoyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFJFQURNRSwgU05NUC5wbToKCiAgIC0gQ2xlYW51cC4KICAgLSBNYWtlIGJ1aWxkYWJsZSBmcm9tIHdpdGhpbiB0aGUgc291cmNlLgogICAtIENoYW5nZSBkb2N1bWVudGF0aW9uIHJlZmVyZW5jZXMgZm9yIHVjZC1zbm1wCiAgIC0gQ2hhbmdlIGNvbnRhY3QgbG9jYXRpb24gdG8gbmV0LXNubXAtdXNlcnMgKHBlciBKb2UncyBhZ3JlZW1lbnQpCiAgIAoyMDAyLTA0LTI2IDEwOjE5ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvOiBNQU5JRkVTVCwgTWFrZWZpbGUuUEwsIFJFQURNRSwgCglkZWZhdWx0X3N0b3JlLnBtLCB0ZXN0LnBsOgoKICAgLSBjbGVhbnVwLgogICAtIFVzZSBuZXQtc25tcC1jb25maWcgdG8gZmluZCBsaWJyYXJ5LCBldGMuCiAgIC0gTWFrZSBidWlsZGFibGUgZnJvbSB3aXRoaW4gdGhlIHNvdXJjZS4KICAgLSBhIGZldyBtb3JlIHRlc3RzIGFkZGVkCiAgIC0gdXNlIGNvcnJlY3QgbGlicmFyaWVzCiAgIC0gYWRkIGRvY3VtZW50YXRpb24KICAgCjIwMDItMDQtMjYgMDQ6MjIgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRXh0cmFjdGluZyB0aGUgdmVyc2lvbiBmcm9tICdzbm1wbGliL3NubXBfdmVyc2lvbi5jJyBuZWVkcyB0byB0YWtlIGFjY291bnQKICAgb2YgYmxhbmsgc3BhY2UuICBSZXBvcnRlZCBieSBTdGVmYW4gUmFkbWFuIChCdWcgIzU0NzM3OSkKICAgCjIwMDItMDQtMjYgMDQ6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5LmMgKFY0LTItcGF0Y2hlcy44KSwgbWVtb3J5LmMKOgoKICAgSGFuZGxlIG1lbW9yeSB2YWx1ZXMgPiAzMmJpdCAobGF0Y2hpbmcgYXQgMl4zMi0xKQogICBQYXRjaCAjNTQ4NjYzIGZyb20gUm9iIE15ZXJzCiAgIAoyMDAyLTA0LTI2IDAzOjU1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgUmVtb3ZlIHJlZHVuZGFudCAnSW52YWxpZCBvcHRpb24nIG1lc3NhZ2UsIHNpbmNlIHRoaXMgaXMgdHlwaWNhbGx5CiAgIHJlcG9ydGVkIGJ5IGdldG9wdCgpLiAgKFN1Z2dlc3RlZCBieSBBbmRyZXcgUnVja2VyIEpvbmVzIC0gcGF0Y2ggIzU0ODc0OCApCiAgIAoyMDAyLTA0LTI2IDAzOjUxICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgQWRkICd2JyB0byB0aGUgbGlzdCBvZiB2YWxpZCBvcHRpb25zIChwYXRjaCAjNTQ4NzQ4KQogICBUaGFua3MgdG8gQW5kcmV3IFJ1Y2tlciBKb25lcy4KICAgCjIwMDItMDQtMjYgMDM6MzYgIGR0czEyCgogICAqIFJFQURNRS5ocHV4MTEsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaDoKCiAgIEFwcGx5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcidzIGltcHJvdmVkIEhQLVVYIDExIHBhdGNoCiAgICgjNTMwNzI0KSB0byB0aGUgbWFpbiB2NSBsaW5lLCBhcyB3ZWxsIGFzIHRoZSB2NC0yIGJyYW5jaC4KICAgVGhlIGNvZGUgbm93IGNvbXBpbGVzIGNsZWFubHkgdW5kZXIgSFAtVVggMTEgdXNpbmcgZ2NjLgogICAKMjAwMi0wNC0yNSAwNzoxOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIFBhdGNoIGZyb20gQXhlbCBLaXR0ZW5iZXJnIHRvIGZpeCBwb3NzaWJsZSB2YXJpYWJsZSBuYW1lIGNsYXNoCiAgIAoyMDAyLTA0LTI0IDIyOjM5ICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYzoKCiAgIGhhbmRsZSBjYWxsYmFja3Mgc2VuZGluZyBuZXcgbm90aWZpY2F0aW9ucyAod2hpbGUgcHJvY2Vzc2luZyBub3RpZmljYXRpb25zKQogICAKMjAwMi0wNC0yNCAyMTozNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2JqZWN0X21vbml0b3IuaDoKCiAgIGhlYWRlciBmb3IgbmV3IGZ1Y250aW9ucyBmb3IgbW9uaXRvcmluZyBvYmplY3RzCiAgIAoyMDAyLTA0LTI0IDIxOjM0ICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYzoKCiAgIG5ldyBmdW5jdGlvbnMgZm9yIG1vbml0b3Jpbmcgb2JqZWN0IHZhbHVlcwogICAKMjAwMi0wNC0yNCAxNTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICAvcHJvYy9zdGF0IGNhbiBiZSBsYXJnZXIgdGhhbiAxMDI0CiAgIAoyMDAyLTA0LTI0IDA2OjE5ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgbWlzc2luZyAnbWQ1LmgnIGhlYWRlciBmaWxlLgogICAKMjAwMi0wNC0yMyAwOTo0MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZS5jLCB0YWJsZV9hcnJheS5jOgoKICAgcmVtb3ZlIGxhc3Qgb2YgdGhlICN3YXJuaW5ncywgYWRkIHh4eC1ya3MgaWYgbmVjZXNzYXJ5CiAgIAoyMDAyLTA0LTIzIDA3OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICByZW1vdmUgd2FybmluZ3MKICAgCjIwMDItMDQtMjIgMTk6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL1JFQURNRToKCiAgIHVwZGF0ZSBVUkwgdG8gdXNlIGZyZWVubXAuY29tIG1pcnJvciAodW5sZXNzIHNvbWVvbmUga25vd3MgYSBiZXR0ZXIgcGxhY2U/KQogICAKMjAwMi0wNC0yMiAxNDoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBhcHBseSBkb2N1bWVudGF0aW4gcGF0Y2ggZnJvbSBBeGVsIEtpdHRlbmJlcmdlciA8QXhlbC5LaXR0ZW5iZXJnZXJAbWF4eGlvLmNvbT4KICAgCjIwMDItMDQtMjIgMTM6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICByZW1vdmUgZXh0cmEgQGVuZEAgKHN1cmUgd291bGQgYmUgbmljZSBpZiBtaWIyYyB3b3VsZCBjaGVjayBmb3IgdW5iYWxhbmNlZAogICBAZW5kQHMpCiAgIAoyMDAyLTA0LTIyIDA5OjQ4ICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIHVwZGF0ZSBmdW5jdGlvbiBuYW1lcyB0byBtYXRjaCBoZWFkZXIgKG5vIG1peGVkIGNhc2UpCiAgIAoyMDAyLTA0LTIyIDA4OjExICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgZml4IGJ1ZyAjNTQ3MTEwOiBwcm9wZXJseSBzcGVsbCBkZWZpbmUKICAgCjIwMDItMDQtMjEgMTY6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIGFkZCBzdGF0aWMgdG8gYSByZXR1cm5lZCB2YXJpYWJsZQogICAKMjAwMi0wNC0yMSAxNjo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggLS13aXRoLXBlcmwtbW9kdWxlcwogICAKMjAwMi0wNC0yMSAxMTozNyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICA1LjAucHJlMyAtPiA1LjA7IChJJ20gc3VyZSB0aGVyZSBhcmUgb3RoZXIgcGxhY2VzIHRoaXMgbmVlZHMgdG8gY2hhbmdlLAogICBidXQgSSB3YW50ZWQgdG8gZ2V0IHRoZSBmaXJzdCBwb3N0IDUuMCBjaGVja2luLi4uOi0pCiAgIAoyMDAyLTA0LTIwIDAwOjM3ICBoYXJkYWtlcgoKICAgKiBGQVEsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wICkKCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4yIC0+IFY1LjAKCjIwMDItMDQtMjAgMDA6MjcgIGhhcmRha2VyCgogICAqIGV2ZXJ5dGhpbmc6CgogICBzZXQgYWxsIENWUy9SQ1MgcmV2aXNpb24gY29udHJvbCBudW1iZXJzIHRvIDUuMAoJCjIwMDItMDQtMjAgMDA6MDcgIGhhcmRha2VyCgogICAqIGV2ZXJ5dGhpbmc6CgkKICAgV2hpdGUgc3BhY2UsIG9oIGdsb3Jpb3VzIHdoaXRlIHNwYWNlLgogICBIb3cgZ3JlYXQgb3VyIHRob3VnaD8KICAgVGhlIGNvZGUgaXMgZmluZS4KICAgV2UgYWdyZWUgb24gZnVuY3Rpb25hbGl0eSBlYXNpbHkuCiAgIFdoYXQgcmVhbGx5IHRyb3VibGVzIHVzPwogICBTb21ldGhpbmcgd2UgY2FuJ3Qgc2VlLgogICBTb21ldGhpbmcgYmV0d2VlbiB0aGUgY29kZS4KICAgV2UgYm93IGRvd24gdG8geW91ciBtYWduaWZpY2VuY2UsCiAgIEZvciB5b3UgYXJlIGV2ZXJ5d2hlcmUsCiAgIEJldHdlZW4gZXZlcnl0aGluZy4KICAgUHJldHR5IG5vdGhpbmduZXNzIHlvdSBhcmUuCgkKMjAwMi0wNC0yMCAwMDowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgdHVybiBvbiB1Y2QgY29tcGF0IGJ5IGRlZmF1bHQuCiAgIAoyMDAyLTA0LTIwIDAwOjAwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbGFzdCB1cGRhdGVzCiAgIAoyMDAyLTA0LTE5IDIzOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5oOgoKICAgcmVtb3ZlIHRlc3RkZWxheWVkCiAgIAoyMDAyLTA0LTE5IDIzOjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvOiAuY3ZzaWdub3JlICwgLmN2c2lnbm9yZToKCiAgIGN2cyBpZ25vcmUgZmlsZQogICAKMjAwMi0wNC0xOSAyMzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBkb24ndCBkaWUgaWYgcGVybCBkb2Vzbid0IGluaXQuCiAgIAoyMDAyLTA0LTE5IDIzOjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUgLCBSRUFETUUgLCBTTk1QLnBtOgoKICAgY2hhbmdlIHdhcm5pbmcuCiAgIAoyMDAyLTA0LTE5IDIyOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBkb3VibGUgY2hlY2sgdGhhdCBtdWx0aXBsZSBpbnNlcnRzIGludG8gdGhlIGRlbGVnYXRlZCBjaGFpbiBkb24ndAogICBoYXBwZW4gKHJlYWQ6IHRoZXkgc2hvdWxkbid0IGFueXdheSwgYnV0Li4uLi4pLgogICAKMjAwMi0wNC0xOSAyMjoyOSAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICB0eXBlZGVmIHVwZGF0ZQogICAKMjAwMi0wNC0xOSAyMjoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIEZpeCB0aGUgY2FsbGJhY2sgYnVpbGQgaG9vayB0byB0dXJuIG9mZiB0aGUgZXhwZWN0IHJlc3BvbnNlIGZsYWcgd2hlbgogICBub3QgYXBwcm9wcmlhdGUuCiAgIAoyMDAyLTA0LTE5IDE5OjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oOgoKICAgc3BlbGxpbmcgbWlzdGVhazsgcmVtb3ZlIGNhcGl0YWwgbGV0dGVycyBpbiBmdW5jdGlvbiBuYW1lcwogICAKMjAwMi0wNC0xOSAxOTowOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHVwZGF0ZSBmb3IgZnVuY3Rpb24gbmFtZSBjaGFuZ2VkIGluIG9pZF9hcnJheS5oCiAgIAoyMDAyLTA0LTE5IDE4OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIG1ha2UgdGhlIHBlcmxJbml0RmlsZSBhbmQgZGlzYWJsZVBlcmwgdG9rZW5zIHJlZ2lzdGVyIGFzIHByZW1pYiBzdWNoCiAgIHRoYXQgd2hlbiBwYXNzZWQgYXMgYSAtLUZMQUcgaXQnbGwgYWN0dWFsbHkgZG8gdGhlIHJpZ2h0IHRoaW5nIGFuZAogICBkaXNhYmxlIHRoZSBsYXRlciAicGVybCIgdG9rZW4gaGFuZGxlcnMuCiAgIAoyMDAyLTA0LTE5IDE3OjI5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIG1hbi9NYWtlZmlsZS5pbiAsIG1hbi9uZXRzbm1wX2FnZW50LjMKICAgLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMyAsIG1hbi9uZXRzbm1wX2RlYnVnLjMgLAogICBtYW4vbmV0c25tcF9leGFtcGxlX3NjYWxhcl9pbnQuMyAsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMwogICAsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMgLAogICBtYW4vbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMgLCBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zCiAgICwgbWFuL25ldHNubXBfb2xkX2FwaS4zICwgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMgLAogICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMyAsIG1hbi9uZXRzbm1wX3RhYmxlLjMgLAogICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zICwgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zICwKICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zICwgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMwogICAsIG1hbi9uZXRzbm1wX3RvZG8uMzoKCiAgIGRvY3VtZW50YXRpb24uICBDYW4ndCBnZXQgZW5vdWdoLgogICAgIC0gbWFrZSBkb2NzIG5vdyBpbnN0YWxscyBtYW4gcGFnZXMgaW50byB0aGUgbWFuIGRpciwgd2hpY2ggYXJlIHRoZW4gaW5zdGFsbGVkLgogICAKMjAwMi0wNC0xOSAxNzoxNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTFhZ2VudHhzZXQgLCBUMTIxcHJveHlzZXQ6CgogICBDb3JyZWN0IGZvciBuZXcgU1RSSU5HIHByZWZpeC4KICAgCjIwMDItMDQtMTkgMTc6MDMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZCBLYXRzdWhpc2EgQUJFCiAgIAoyMDAyLTA0LTE5IDE3OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL0FTTi54cyAsIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54czoKCiAgIGZpeCBoZWFkZXIgZmlsZXMgZm9yIG5ldyBwYXRocy4KICAgCjIwMDItMDQtMTkgMTc6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCAsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQXBwbHkgcGF0Y2ggIzUzMjU1NTogaXB2NiBjb20yc2VjIHN1cHBvcnQsIHRoYW5rcyB0byBLYXRzdWhpc2EgQUJFLgogICAKMjAwMi0wNC0xOSAxNjoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvc25tcF9hZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCAsIHNubXBsaWIvdG9vbHMuYzoKCiAgIGZpeCBzeXNVcFRpbWUgKGFuZCByZWxhdGVkIGZ1bmN0aW9ucykgdG8gaGFuZGxlIG11Y2ggbGFyZ2VyIHVwVGltZQogICB2YWx1ZXMgKGllLCBmaXggc2lnbmVkIGludGVnZXIgd3JhcHBpbmcpLgogICAKMjAwMi0wNC0xOSAxMTozNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBlbWJlZGRlZCBwZXJsIHN1cHBvcnQuCiAgIAoyMDAyLTA0LTE5IDExOjM0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLCBhZ2VudC9NYWtlZmlsZS5pbgogICAsIGFnZW50L3NubXBfcGVybC5jICwgYWdlbnQvc25tcF9wZXJsLnBsICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oICwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTDoKCiAgIEFkZCBzb21lIG5ldyBzbm1wZC5jb25mIHRva2VucyBmb3IgY29udHJvbGxpbmcgcGVybCBiZXR0ZXIuCiAgIEZpeCBlbWJlZGRlZCBwZXJsIHN1cHBvcnQgc28gaXQgYWN0dWFsbHkgd29ya3MuCiAgIAoyMDAyLTA0LTE5IDExOjMyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvOiAuY3ZzaWdub3JlICwgTWFrZWZpbGUuUEwgLAogICBkZWZhdWx0X3N0b3JlLnBtICwgZGVmYXVsdF9zdG9yZS54czoKCiAgIEFkZGVkIG1pc3NpbmcgYWdlbnQgZGVmYXVsdF9zdG9yZSBzdHVmZi4gICh0aGV5IGV4aXN0ZWQgb24gbXkgbWFjaGluZSwKICAgSSBkb24ndCBrbm93IHdoeSBldmVyeW9uZSBlbHNlIHdhcyBoYXZpbmcgcHJvYmxlbXMpCiAgIAoyMDAyLTA0LTE5IDEwOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdGhpbmdzIHRoYXQgc2hvdWxkIG5ldmVyIGV2ZXIgaGFwcGVuCiAgIAoyMDAyLTA0LTE5IDAzOjEwICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIDxTaWdoPiBBIGxpdHRsZSBsZWFybmluZyBpcyBhIGRhbmdlcm91cyB0aGluZy4KICAgQXBwbHkgdGhlIHJlc3Qgb2YgdGhlIHBhdGNoIGZyb20gQXhlbCAtIHNvcnJ5LgogICAKMjAwMi0wNC0xOSAwMTo0OSAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW4gLCBkb3h5Z2VuLmNvbmY6CgogICBIYW5kbGUgZ2VuZXJhdGluZyBkb2N1bWVuYXRpb24gd2hlbiBzcmNkaXIgIT0gY29uZmlnZGlyCiAgIChQYXRjaCBzdXBwbGllZCBieSBBeGVsIEtpdHRlbmJlcmdlcikKICAgCjIwMDItMDQtMTggMTc6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcElQWERvbWFpbi5jOgoKICAgZml4IHNubXBJUFhEb21haW4gKGFnYWluKQogICAKMjAwMi0wNC0xOCAxNzozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBQYXRjaCBmcm9tIFZpc2hhbCBWZXJtYTogb25seSBvcGVuIHN1YmFnZW50IGNvbm5lY3Rpb25zIG9uY2UgYXQgc3RhcnR1cAogICAKMjAwMi0wNC0xOCAxNzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFBhdGNoIGZyb20gVmlzaGFsIFZlcm1hOiBmb3IgZG93biBzdWJhZ2VudCBjYXNlcywgbWFyayByZWdpc3RyYXRpb25zIGFzIGRldGFjaGVkCiAgIAoyMDAyLTA0LTE4IDE3OjE3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBkZWZpbmUgYSBtYXhpbXVtIHBhY2tldCBzaXplIHdlIGNhbiBhY2NlcHQgdG8gcHJvdGVjdCBjZXJ0YWluIGVycm9yCiAgIGNvbmRpdGlvbnMgKC0xIGFmdGVyIGNvbnZlcnNpb24gaXMgbm93IHRvbyBsYXJnZSkuCiAgIAoyMDAyLTA0LTE4IDE2OjI4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgY2hhbmdlIHRoZSBlbnRlcnByaXNlIE9JRHMgaW4gdGhlIHByb3BlciBwbGFjZSAobmV0LXNubXAtY29uZmlnLmguaW4KICAgaXMgZ2VuZXJhdGVkIGZyb20gdGhpcyBmaWxlKS4KICAgCjIwMDItMDQtMTggMTM6NTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIC0gQWRkIHR3byBuZXcgb3B0aW9ucyB0byBuZXQtc25tcC1jb25maWcgYXMgcmVxdWVzdGVkIG9uIHRoZSBJUkMgY2hhbm5lbC4KICAgICAtLWNvbmZpZ3VyZS1vcHRpb25zCiAgICAgLS1zbm1wZC1tb2R1bGUtbGlzdAogICAKMjAwMi0wNC0xOCAxMTo0MyAgcnN0b3J5CgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIGFkZCBtaXNzaW5nIGNvbW1hCiAgIAoyMDAyLTA0LTE4IDA3OjM5ICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBDYWxjdWxhdGUgdGhlIGxlbmd0aCBvZiBzdXBwbGllZCBlbnRlcnByaXNlIE9JRHMgY29ycmVjdGx5CiAgIChhbmQgdXNlIGEgbW9yZSBtZWFuaW5nZnVsIG91dHB1dCBtZXNzYWdlKQogICAKICAgU2hhbWUgdGhlc2Ugc2V0dGluZ3MgYXJlbid0IGNhY2hlZCBmb3IgbGF0ZXIgcmUtdXNlLi4uLgogICAKMjAwMi0wNC0xOCAwNzoxOCAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIE5vdGlmeSBvbiBhZ2VudCByZWNvbmZpZ3VyYXRpb24uCiAgIAoyMDAyLTA0LTE4IDA3OjE2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVXNlIHRoZSBOZXQtU05NUCBub3RpZmljYXRpb25zIGJ5IGRlZmF1bHQsIHJhdGhlciB0aGFuIHRoZSB1Y2RhdmlzIG9uZXMuCiAgIAoyMDAyLTA0LTE4IDA3OjA4ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBGaXggdGhlIHRhYmxlLW9mLWNvbnRlbnRzIHNlcXVlbmNlIGZvciB0aGUgbnNNb2R1bGVUYWJsZSwgYWRkIG5vdGlmaWNhdGlvbgogICBkZWZpbml0aW9ucyBmb3IgdGhlIGFnZW50LCBhbmQgZGVmaW5lIGdyb3VwcyBmb3IgZXZlcnl0aGluZy4KICAgCjIwMDItMDQtMTggMDI6NTIgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBCcmluZyBpbnRlZ2VyIGFuZCBzdHJpbmcgb3V0cHV0IGZvcm1hdHMgaW50byBsaW5lIHdpdGggdGhlIG90aGVyIHR5cGVzCiAgIGJ5IHByaW50aW5nIGEgdHlwZSB0b2tlbiBiZWZvcmUgdGhlIHZhbHVlICh1bmxlc3Mgc3VwcmVzc2VkIGJ5ICdxdWljayBwcmludCcpCiAgIFRoYW5rcyB0byBFcmlrIGZvciB0aGUgcGF0Y2gKICAgCjIwMDItMDQtMTggMDE6NDYgIGR0czEyCgogICAqIEZBUToKCiAgIFJlcGxhY2UgdGhlIGRsbW9kICdXSEVSRScgd2l0aCBzb21ldGhpbmcgbW9yZSBtZWFuaW5nZnVsLi4uLgogICAKMjAwMi0wNC0xNyAxMjoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wSVBYRG9tYWluLmM6CgogICBkZWZpbmUgdGhlIGlweERvbWFpbiB2YXJpYWJsZXMKICAgCjIwMDItMDQtMTcgMTI6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIEVycm9yIGNvbmRpdGlvbiB0ZXN0cwogICAKMjAwMi0wNC0xNyAxMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L3NubXBfYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIE9oLCBqdXN0IGEgc21hbGwgcGF0Y2ggdG8gbWFrZSBpdCBwb3NzaWJsZSB0byBtYWtlIG1vZHVsZXMgcmVxdWVzdAogICB0aGF0IGFsbCBxdWVyaWVzIHRvIGEgc2V0IG9mIHJlZ2lzdHJhdGlvbnMgZ2V0IHBhc3NlZCBhbGwgYXQgb25jZQogICAod2hpY2ggYXBwYXJlbnRseSBpcyBpbXBvcnRhbnQgZm9yLCBvaCwgYWdlbnR4KQogICAKMjAwMi0wNC0xNyAxMDowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgbWlzYyBub24tY2hhbmdlIGNsZWFuIHVwcwogICAKMjAwMi0wNC0xNyAxMDowMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgcmVuYW1lIHN0cnVjdHVyZXMgYmVnaW5uaW5nIHdpdGggXyB0byBlbmRpbmcgd2l0aCBfcwogICAKMjAwMi0wNC0xNyAxMDowMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBhZGQgYSB2b2lkICogcG9pbnRlciBmb3IgdGhlIHNlc3Npb24gY3JlYXRvciB0byB1c2UgYXQgd2lsbCAoZGlmZmVyZW50CiAgIGZyb20gdGhlIGNhbGxiYWNrIG1hZ2ljKS4KICAgCjIwMDItMDQtMTcgMDk6MDAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgdGhlIE5ldC1TTk1QIHN5c09JRHMgYnkgZGVmYXVsdCwgcmF0aGVyIHRoYW4gdGhlIHVjZGF2aXMgb25lcy4KICAgCjIwMDItMDQtMTcgMDg6MjYgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBCbGFuayBjb250aW51YXRpb24gbGluZXMgY29uZnVzZSBIUCdzIHZlcnNpb24gb2YgbWFrZS4KICAgCjIwMDItMDQtMTcgMDg6MTYgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgQmxhbmsgY29udGludWF0aW9uIGxpbmVzIGNvbmZ1c2UgSFAncyB2ZXJzaW9uIG9mIG1ha2UKICAgCjIwMDItMDQtMTcgMDY6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYyAsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIG1vdmUgbnNNb2R1bGVUYWJsZSBpbnRvIERhdmUncyBzdHJ1Y3R1cmUuCiAgIAoyMDAyLTA0LTE3IDA2OjU0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgc25tcFRDUElQdjZEb21haW4uaCAsIHNubXBVRFBJUHY2RG9tYWluLmg6CgogICBmaXggZGVjbGFyYXRpb25zIG9mIERvbWFpbiBvYmplY3RzIChjb25zdCAtPiBleHRlcm4pCiAgIAoyMDAyLTA0LTE3IDA2OjMxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvOiBzbm1wLWRhdGEvc25tcGNvbmYtY29uZmlnICwKICAgc25tcGQtZGF0YS9zbm1wY29uZi1jb25maWcgLCBzbm1wdHJhcGQtZGF0YS9zbm1wY29uZi1jb25maWc6CgogICBzbm1wY29uZiBjb25maWd1cmF0aW9uIGRhdGEKICAgCjIwMDItMDQtMTcgMDM6MDEgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIEJyaW5nIHRoZSByZXBvcnRlZCBkZWZhdWx0IHNldHRpbmdzIGZvciBzeXNvaWQgJiBub3RpZmljYXRpb24gT0lEcwogICBiYWNrIGludG8gbGluZSB3aXRoIHdoYXQgd2UgYWN0dWFsbHkgdXNlIChpLmUuIHRoZSB1Y2RhdmlzIE9JRHMpLgogICAKICAgUW46ICBEbyB3ZSB3YW50IHRvIHN3aXRjaCB0byB1c2luZyB0aGUgbmV0LXNubXAgZXF1aXZhbGVudCBzeXNPSURzPwogICBRbjogIFdoYXQgYWJvdXQgZGVmaW5pbmcgbmV0LXNubXAgbm90aWZpY2F0aW9ucz8KICAgCjIwMDItMDQtMTcgMDI6NTUgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCAtLXdpdGgtZW50ZXJwcmlzZS1zeXNvaWQgYW5kIC0td2l0aC1lbnRlcnByaXNlLW5vdGlmaWNhdGlvbi1vaWQsCiAgIGFuZCB0cnkgdG8gY2xhcmlmeSB0aGF0IHRoZXNlIGFyZSBPSURzLCB3aGlsZSAtLXdpdGgtZW50ZXJwcmlzZS1vaWQKICAgaXMgYWN0dWFsbHkganVzdCB0aGUgZW50ZXJwcmlzZSAqbnVtYmVyKgogICAKICAgUW46ICBzaG91bGQgd2UgY2hhbmdlIHRoZSBuYW1lIG9mIHRoZSBjb25maWd1cmUgb3B0aW9uIHRvIHJlZmxlY3QgdGhpcz8KICAgCjIwMDItMDQtMTYgMTA6MDQgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbiAsIHNubXBsaWIvc25tcF92ZXJzaW9uLmMgLCBGQVEgLAogICBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAucHJlMyApCiAgIAoyMDAyLTA0LTE2IDEwOjAyICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBkZWxldGUgdG9wIGRpc2NsYWltZXJzCiAgIAoyMDAyLTA0LTE2IDEwOjAyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWlzYyB1cGRhdGVzCiAgIAoyMDAyLTA0LTE2IDEwOjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG1pc2MgYnVnIGZpeGVzCiAgIAoyMDAyLTA0LTE2IDA4OjE5ICBkdHMxMgoKICAgKiBGQVE6CgogICBBZGQgYW4gZW50cnkgY29uY2VybmluZyB0aGUgJ2xpYmNyeXB0bycgUlBNIGRlcGVuZGVuY3kuCiAgIAoyMDAyLTA0LTE2IDA4OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICBmaXggbWVtb3J5IGxlYWsKICAgCjIwMDItMDQtMTYgMDc6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSBhIG5vIGxvbmdlciBhcHByb3ByaWF0ZSB0b2RvIGNvbW1lbnQKICAgCjIwMDItMDQtMTYgMDc6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIEkgZ3Vlc3MgSSBmb3Jnb3QgdG8gcnVuIGF1dG9jb25mCiAgIAoyMDAyLTA0LTE1IDA4OjU4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IHNubXBjb25mICwgTWFrZWZpbGUuaW46CgogICBtb3ZlIHNubXBjb25mIGRhdGEgZGlyZWN0b3JpZXMgdG8gZGlmZmVyZW50IG5hbWVzIHRvIGF2b2lkIGNvbmZ1c2lvbgogICAKMjAwMi0wNC0xNSAwODozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyLzogc25tcC1kYXRhL2F1dGhvcHRzICwKICAgc25tcC1kYXRhL2RlYnVnZ2luZyAsIHNubXAtZGF0YS9taWJzICwgc25tcC1kYXRhL291dHB1dAogICAsIHNubXBkLWRhdGEvYWNsICwgc25tcGQtZGF0YS9iYXNpY19zZXR1cCAsCiAgIHNubXBkLWRhdGEvZXh0ZW5kaW5nICwgc25tcGQtZGF0YS9tb25pdG9yICwKICAgc25tcGQtZGF0YS9vcGVyYXRpb24gLCBzbm1wZC1kYXRhL3N5c3RlbSAsCiAgIHNubXBkLWRhdGEvdHJhcHNpbmtzICwgc25tcHRyYXBkLWRhdGEvZm9ybWF0dGluZyAsCiAgIHNubXB0cmFwZC1kYXRhL3RyYXBoYW5kbGU6CgogICBkYXRhIGZpbGUgbW92aW5nCiAgIAoyMDAyLTA0LTEyIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIE1hc3NpdmUgY2xlYW51cCBlZmZvcnQuICBJdCBzaG91bGQgbm93IHJlc3BlY3Qgb3JkZXJpbmcgaW4gdGhlCiAgIHNubXBjb25mIGNvbmZpZ3VyYXRpb24gZmlsZXMgYXMgd2VsbC4KICAgCjIwMDItMDQtMTIgMTM6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICBmaXggZm9yIG92ZXJ6ZWFsb3VzIHBlcmwgc2NyaXB0CiAgIAoyMDAyLTA0LTEyIDA5OjQ3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIGNvcHkgdWNkIHBlcnNpc2VudCBkaXJlY3RvcnkgdG8gbmV0LXNubXAgKHByb21wdHMsIGZsYWdzIGFuZCBvdGhlciBmdW4pCiAgIAoyMDAyLTA0LTEyIDA3OjU3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgdHJhcHRvZW1haWwKICAgCjIwMDItMDQtMTIgMDc6NTUgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIHJlbW92ZSB0cmFwbm90aWYKICAgCjIwMDItMDQtMTIgMDc6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4gLCByc25tcDoKCiAgIHJlbW92ZSByc25tcCwgd2hpY2ggaXMgdmVyeSB2ZXJ5IG9sZCBhbmQgb3V0IG9mIGRhdGUKICAgCjIwMDItMDQtMTIgMDc6NDcgIGhhcmRha2VyCgogICAqIG1hbi86IC5jdnNpZ25vcmUgLCBNYWtlZmlsZS5pbiAsIG1pYjJjLjEuZGVmOgoKICAgQSBtYW51YWwgcGFnZSBmb3IgbWliMmMgKGhlbHAsIEknbSB0dXJuaW5nIGludG8gRGF2ZSkKICAgCjIwMDItMDQtMTIgMDc6MjggIGhhcmRha2VyCgogICAqIGRvdGdkYmluaXQ6CgogICBhIGdkYiBpbml0aWFsaXphdGlvbiBmaWxlIHdpdGggaGVscGZ1bCBmdW5jdGlvbnMKICAgCjIwMDItMDQtMTIgMDI6NDIgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgQWRkICdzbm1wY29uZicgYW5kICdtaWIyYycgdG8gdGhlIGxpc3Qgb2Ygc2NyaXB0cyB0byBpbnN0YWxsLgogICAKICAgSSd2ZSBsZWZ0ICd0cmFwdG9lbWFpbCcgb2ZmIHRoaXMgbGlzdCwgc2luY2UgaXQgc2F5cyBpdCdzIG5vdCBpbnRlbmRlZAogICBhcyBhIGRpcmVjdGx5IHVzZXItaW52b2tlZCBjb21tYW5kLCBzbyBwcm9iYWJseSBvdWdodCBub3QgdG8gYmUgaW5zdGFsbGVkCiAgIGludG8gYSBiaW5hcnkgZGlyZWN0b3J5LgogICAKMjAwMi0wNC0xMiAwMjo0MSAgZHRzMTIKCiAgICogbG9jYWwvcnNubXA6CgogICBGaXggdGhlIHBhdGggb2Ygc25tcHdhbGsgdG8gYmUgc29tZXRoaW5nIG1vcmUgcGxhdXNpYmxlLgogICAoSSdtIG5vdCBjb252aW5jZWQgYWJvdXQgdGhlIHZhbGlkaXR5IG9mIHRoYXQgaW5pdGlhbCAncnRvcG1pYicgT0lEIG1pbmQhKQogICAKMjAwMi0wNC0xMiAwMjozNiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIEZpeCB0eXBvIGluIHJlZmVyZW5jZSB0byAnbWliMmMuaXRlcmF0ZS5jb25mJwogICAKMjAwMi0wNC0xMiAwMjozMyAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXMgLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgbWFpbiBsaWJyYXJ5IGFzICdsaWJzbm1wJyBpZiBjb25maWd1cmVkIHVzaW5nIFVDRCBjb21wYXRpYmlsaXR5LgogICBUaGlzIHNob3VsZCBoYW5kbGUgdGhlIHJlcXVpcmVtZW50cyBvZiBhcHBsaWNhdGlvbiBjb21wYXRpYmlsaXR5LgogICBBZ2VudCBsaWJyYXJ5IGNvbXBhdGliaWxpdHkgaXMgbGlrZWx5IHRvIHByb3ZlIGEgaGFyZGVyIHByb2JsZW0KICAgKHNpbmNlIHRoZXJlIGFyZSBub3cgdGhyZWUgbGlicmFyaWVzLCBub3QganVzdCB0d28uLi4pCiAgIAoyMDAyLTA0LTExIDIyOjI5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgc2V0IFNOTVBDT05GUEFUSCBpZmYgW3NpY10gbm90IHNldAogICAKMjAwMi0wNC0xMSAyMjoyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICByZXR1cm4gZnJvbSBpbml0TWliIGJlZm9yZSBkb2luZyBhbnl0aGluZy4KICAgCjIwMDItMDQtMTEgMjI6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIHR1cm4gb2ZmIGNvbXBsaWVyIHdhcm5pbmdzCiAgIAoyMDAyLTA0LTExIDIyOjI2ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9zbm1wc2g6CgogICBzdXBwb3J0ICJzaG93IGNvbHVtbnMgZnJvbSBUQUJMRSIKICAgCjIwMDItMDQtMTEgMjI6MjUgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIEFkZCBhIG5ldyBkZW1vIHNjYWxhcjogdGhlIHNsZWVwZXIuICAoZGFoIGRhaCBkYWggZHVtbW1tbSkKICAgCjIwMDItMDQtMTEgMjI6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYzoKCiAgIGluZGVudC4KICAgCjIwMDItMDQtMTEgMjI6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZXMuaCAsIGV4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYwogICAsIGV4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuaDoKCiAgIEFkZCBhIGRlbGF5ZWQgaW5zdGFuY2UgZXhhbXBsZSwgc2hvd2luZyBob3cgdG8gcmV0dXJuIG1pYiByZXF1ZXN0CiAgIHJlc3VsdHMgbGF0ZXIgcmF0aGVyIHRoYW4gaW1tZWRpYXRlbHkuCiAgIAoyMDAyLTA0LTExIDIyOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jOgoKICAgcmVtb3ZlIGxlZ2FjeSBleGFtcGxlLgogICAKMjAwMi0wNC0xMSAyMjoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgYWRkIGNvbW1lbnQgYWJvdXQgcG9zc2libHkgZml4aW5nIGluY2x1c2l2ZSByZXF1ZXN0cyBpbiB0aGUgZnV0dXJlLgogICAKMjAwMi0wNC0xMSAxNzowOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgY2hhbmdlIG1vZHVrZXMtPiBtb2R1bGVzCiAgIAoyMDAyLTA0LTExIDA3OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgdHVybiBvZmYgZGVidWdnaW5nIHdoZW4gY2FsbGluZyBsb2dnaW5nIGNhbGxiYWNrcwogICAKMjAwMi0wNC0xMCAxMjo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSAsIFNOTVAueHM6CgogICBmaXggcGVybCBtb2R1bGUgaW4gbWFueSBtYW55IHBsYWNlcy4gIG1vc3QgdGVzdHMgbm93IHBhc3MuCiAgIAoyMDAyLTA0LTEwIDEyOjUwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgZm9yY2Ugc2V0dGluZyB0byBhICJib2d1cyIgU05NUENPTkZQQVRILgogICAKMjAwMi0wNC0xMCAxMjo0OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwgc25tcGxpYi9taWIuYzoKCiAgIEV4cG9ydGluZyBmdW5jdGlvbnMgZ29vZC4gIEludGVybmFsaXppbmcgYmFkLgogICAKMjAwMi0wNC0xMCAwOToyOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBvcHBzLiAgc2lnaC4KICAgCjIwMDItMDQtMTAgMDk6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgb3Bwcy4gIHJlbW92ZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KICAgCjIwMDItMDQtMTAgMDk6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgLSBNYWtlIHRoZSBwZXJsIG1vZHVsZSBjYWxsIGluaXRfc25tcCgpCiAgICAgLSB0aGlzIGlzIGEgZmFpcmx5IG1ham9yIGNoYW5nZSwgaXMgaXQgbm93IHdpbGwgcmVhZCAuY29uZiBmaWxlcy4KICAgICAtIG1hbnkgcGVvcGxlIGhhdmUgYXNrZWQgZm9yIHRoaXMuCiAgIC0gbWlzYyBjbGVhbiB1cHMuCiAgIAoyMDAyLTA0LTEwIDA5OjE4ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIERvbid0IHJlY3Vyc2UgaW50byBzdWJkaXJlY3RvcmllcyBmb3IgdGhlIGNvbnNpdHVlbnQgc3VidGFyZ2V0cyBvZiAibWFrZSBpbnN0YWxsIgogICAKMjAwMi0wNC0xMCAwOTowOSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGFkZGVkIGEgZmV3IHRoaW5ncywgc2VwYXJhdGVkIHBlcmwgc3R1ZmYgaW50byBpdCdzIG93biBzZWN0aW9uLgogICAKMjAwMi0wNC0xMCAwODo0NiAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgQnJpbmcgdGhlIGhlbHAgbWVzc2FnZSBmb3IgdGhlIFVDRCBjb21wYXRhYmlsaXR5IG9wdGlvbiBpbnRvIGxpbmUgd2l0aAogICB3aGF0J3MgYWN0dWFsbHkgcmVjb2duaXNlZC4KICAgCjIwMDItMDQtMTAgMDc6NTIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGNoYW5nZSBsaWJ0b29sIHZlcnNpb25pbmcgdG8gdGhlaXIgcmVjb21tZW5kZWQgbWV0aG9kIG9mIGRvaW5nIHRoaW5ncwogICAod2hpY2ggSSBoYXRlLCBidXQgaXMgc3RpbGwgYmV0dGVyIHRoYW4gd2hhdCB3ZSB3ZXJlIGRvaW5nLCBJIGd1ZXNzKQogICAKMjAwMi0wNC0xMCAwNzoxMCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBCcmluZyB1c2Ugb2YgQlVJTFRTVUJESVIgd2l0aGluICdpbnN0YWxsbG9jYWxoZWFkZXJzJyBpbnRvIGxpbmUKICAgd2l0aCB0aGUgcHJlY2VkaW5nIGNvbW1lbnQsIGFuZCBhY3R1YWwgdXNhZ2UuCiAgIChpLmUuIElOU1RBTExCVUlMVFNVQkRJUiByYXRoZXIgdGhhbiBJTkNMVURFQlVJTFRTVUJESVIpCiAgIAoyMDAyLTA0LTEwIDA1OjU4ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgVHlwbyBpbiBzZWN1cml0eS1pbmNsdWRlIGhlYWRlciBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgdmFyaWFibGUKICAgCjIwMDItMDQtMTAgMDU6NTUgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgRW5zdXJlIHRoZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgZXhpc3RzIGJlZm9yZSBpbnN0YWxsaW5nIG1pYjJjIGNvbmYgZmlsZXMuCiAgIAoyMDAyLTA0LTEwIDAxOjU1ICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAwNHNubXB2MW5vc3VjaCAsIFQwMTlzbm1wdjJjbm9zdWNoOgoKICAgVHdvIG5ldyB0ZXN0cyB0byBjaGVjayBoYW5kbGluZyBvZiBHRVRpbmcgbm9uLWV4aXN0YW50IGluc3RhbmNlcwogICAKMjAwMi0wNC0xMCAwMTo1NCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQSBmaXggZm9yIFNOTVB2MSBlcnJvcnMgdGhhdCBkb2Vzbid0IGVuZCB1cCBicmVha2luZyBBZ2VudFggZXJyb3IgaGFuZGxpbmcuCiAgIAoyMDAyLTA0LTA5IDEwOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQYXRjaCBmcm9tIERhdmUgdG8gZml4IHYxIGVycm9yIHJlc3VsdHMuCiAgIAoyMDAyLTA0LTA4IDIxOjA4ICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIGZpeCBpbmNvcnJlY3QgbGVuZ3RoIHJldHVybiB2YWx1ZQogICAKMjAwMi0wNC0wOCAxODowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAsIHZhY21fdmFycy5oOgoKICAgZG9uJ3QgYWxsb3cgbm8tY29uZmlndXJhdGlvbiBhY2Nlc3MgYW55bW9yZS4KICAgCjIwMDItMDQtMDggMTc6NTkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oICwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jICwgc25tcGxpYi9zbm1wdXNtLmM6CgogICBtb3JlIHVuY29uc3QgY29ycmVjdG5lc3MKICAgCjIwMDItMDQtMDggMTc6MzEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgc2l6ZV90IGV4dGVybnMgZm9yIGV4cG9ydGVkIG9pZHMKICAgCjIwMDItMDQtMDggMTc6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSB0ZW1wb3JhcnkgZGVidWdnaW5nIHN0YXRlbWVudHMgdGhhdCBhY2NpZGVudGFsbHkgYmVjYW1lIHBlcm1hbmVudC4KICAgCjIwMDItMDQtMDggMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMgLCBzbm1wX3RyYW5zcG9ydC5jOgoKICAgZGVmaW5lIGxlbmd0aCBzaXplX3QncyBmb3Igb2lkIHZhcmlhYmxlcy4KICAgCjIwMDItMDQtMDggMTY6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgc3VwcG9ydCAibnVsbCIgdHlwZXMuCiAgIAoyMDAyLTA0LTA4IDE2OjUyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgaW5pdGlhbGl6ZSBub3RpZmljYXRpb24gbG9nIG1pYiBzdXBwb3J0IGJlZm9yZSAtSCB1c2FnZS4KICAgCjIwMDItMDQtMDggMTY6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmM6CgogICBmaXggYSBmZXcgdGhpbmdzIGFuZCBtYWtlIHN1YmhhbmRsZXJzIG5vdCBhYmxlIHRvIHRlbGwgdGhlcmUgd2VyZSBtb3JlIHJlcXVlc3RzLgogICAKMjAwMi0wNC0wOCAxNjo0MyAgaGFyZGFrZXIKCiAgICogSU5TVEFMTDoKCiAgIEEgY28td29ya2VyIHBvaW50ZWQgb3V0IHRoYXQgdGhlIElOU1RBTEwgc2NyaXB0IHN0aWxsIHNhaWQgdG8gZWRpdCBjb25maWcuaAogICAKMjAwMi0wNC0wOCAxNToxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmggLAogICBzbm1wbGliL3NubXBUQ1BEb21haW4uYyAsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYyAsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIHVuc3RhdGljLWl6ZSBhIGZldyBvaWRzIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiBleHRlcm5hbAogICAKMjAwMi0wNC0wOCAxNDoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wVENQRG9tYWluLmMgLAogICBzbm1wVENQSVB2NkRvbWFpbi5jICwgc25tcFVEUElQdjZEb21haW4uYyAsCiAgIHNubXBVbml4RG9tYWluLmMgLCBzbm1wX2FwaS5jICwgc25tcF90cmFuc3BvcnQuYwogICAsIHNubXB1c20uYzoKCiAgIENoYW5nZSBjb25zdCBvaWQgZGVjbGFyYXRpb25zIGludG8gc3RhdGljIG9uZXMgc2luY2Ugc2hhcmVkIGxpYnJhcmllcwogICBoYXZlIGEgcHJvYmxlbSB3aXRoIGluaXRpYWxpemluZyB0aGVtIG9uIGxpbnV4IHN5c3RlbXMgYXQgbGVhc3QuCiAgIAoyMDAyLTA0LTA4IDExOjQ1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1pbmltYWwgZG9jdW1lbnRhdGlvbiBmb3IgZGVidWdnaW5nIGFuZCB0aGUgaW5qZWN0SGFuZGxlciB0b2tlbgogICAKMjAwMi0wNC0wNSAxNDozMiAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcHRyYXBkLjguZGVmICwgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudGF0aW9uIGZvciB0aGUgTk9USUZJQ0FUSU9OLUxPRy1NSUIgc3VwcG9ydC4KICAgCjIwMDItMDQtMDUgMTQ6MDkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgY29udGV4dCBuYW1lIHN1cHBvcnQgaW4gcHJveHkgY29kZS4KICAgCjIwMDItMDQtMDUgMTM6NTEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgdGhlIGRpc21hbiBldmVudCBtaWIgc3VwcG9ydCBmb3Igc2VuZGluZyB0cmFwcyB2aWEgbW9uaXRvcmVkIE9JRHMuCiAgIAoyMDAyLTA0LTA1IDEwOjEyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIHB1dCB0cmFwIGNvbmZpZyBpbnRvIGl0cyBvd24gc2VjdGlvbi4KICAgZG9jdW1lbnQgdGhlICJvdmVycmlkZSIgdG9rZW4uCiAgIAoyMDAyLTA0LTA1IDA2OjM5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgY2hhbmdlIGRlZmF1bHQgY29udGV4dCB0byBhbiBlbXB0eSBzdHJpbmcKICAgCjIwMDItMDQtMDQgMTU6MTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAoVjQtMi1wYXRjaGVzLjUpLCBhZ2VudF9yZWdpc3RyeS5jOgoKICAgZGVhbCB3aXRoIGZkIHVucmVnaXN0cmF0aW9ucyBwcm9wZXJseS4KICAgCjIwMDItMDQtMDMgMDk6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMuaAogICAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuaCAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgTWFrZSBhbiBleGFtcGxlIGRhdGFzZXQgdGFibGUgdG8gaG9sZCBhbmQgc3RvcmUgZGF0YSBpbiAoYWRtaXR0ZWRseQogICB1c2VsZXNzIGRhdGEgZnJvbSBhIG5ldHdvcmsgbWFuYWdlbWVudCBwb2ludCBvZiB2aWV3LCBidXQgaXQncyBhbiBleGFtcGxlKS4KICAgCjIwMDItMDQtMDIgMjI6MTIgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGZpeCBpbnN0YWxsYXRpb24gZnJvbSBzdWJkaXIgYnVpbGQgY2FzZS4KICAgCjIwMDItMDQtMDIgMjE6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIHNubXB2My1zZWN1cml0eS1pbmNsdWRlcyBmcm9tIGZyb20gYnVpbGQgZGlyLgogICAKMjAwMi0wNC0wMiAyMTo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG1pYl9tb2R1bGVfY29uZmlnLmggYW5kIG1pYl9tb2R1bGVfaW5jbHVkZXMuaCBmcm9tIGJ1aWxkIGRpci4KICAgCjIwMDItMDQtMDIgMjE6NDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBuZXQtc25tcC1jb25maWcuaCBmcm9tIHRoZSBidWlsZCBkaXIuCiAgIAoyMDAyLTA0LTAyIDIxOjQzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGNyZWF0ZSBzb21lIGluc3RhbGwgZnJvbSBidWlsdCBoZWFkZXIgcnVsZXMuCiAgIAoyMDAyLTA0LTAyIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluICwgbWliMmMuY29uZjoKCiAgIHJlbW92ZSBkZWxldGVkIGFycmF5LWF1dG8gZnJvbSAuY29uZiBpbnN0YWxsL3JlZmVyZW5jZSBsaXN0cwogICAKMjAwMi0wNC0wMiAxNTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oICwgdWNkLXNubXAvcmVnaXN0cnkuYyAsCiAgIHVjZC1zbm1wL3JlZ2lzdHJ5Lmg6CgogICByZW1vdmUgdGhlIHJlZ2lzdHJ5IG1vZHVsZSwgYXMgaXQncyBvYnNvbGV0ZSBkdWUgdG8gY29udGV4dHMuICBVc2UgdGhlIG5zTW9kdWxlVGFibGUgaW5zdGVhZAogICAKMjAwMi0wNC0wMiAxNDo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jIChWNC0yLXBhdGNoZXMuNyksCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2Rhcndpbi5oOgoKICAgQXBwbHkgcGF0Y2ggIzUyNDQyNCBmb3IgZGFyd2luIGZpeGVzIGZvciB1Y2Qtc25tcC9kaXNrLmMKICAgCjIwMDItMDQtMDIgMTQ6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jIChWNC0yLXBhdGNoZXMuOCksCiAgIGtlcm5lbF9zdW5vczUuYzoKCiAgIGFwcGx5IHBhdGNoIDUyNzU3MyB0byBmaXggNjQgYml0IHR5cGVzIG9uIHNvbGFyaXMKICAgCjIwMDItMDQtMDIgMDc6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGNoZWNrIGNoYXIgZm9yIE5VTEwgYmVmb3JlIHNldHRpbmcgdG86CiAgIAoyMDAyLTA0LTAxIDIyOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjQtMi1wYXRjaGVzLjkpLCBjbXVfY29tcGF0LmMgLAogICBzbm1wX2FwaS5jOgoKICAgTGV0IGluaXRfc25tcCBwcm90ZWN0IGl0c2VsZi4KICAgCjIwMDItMDMtMjkgMTU6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB0d2Vha3MgJiB1cGRhdGVzCiAgIAoyMDAyLTAzLTI5IDEwOjQwICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGFkZCBjb21tZW50CiAgIAoyMDAyLTAzLTI5IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgYWRkIGEgYWxsb3dfY3JlYXRpb24gZGVmaW5pdGlvbi4KICAgCjIwMDItMDMtMjkgMDg6MjIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgbWFrZSBuZXQtc25tcC1jb25maWcgZXhlY3V0YWJsZSBhZnRlciBpdCdzIGJ1aWx0CiAgIAoyMDAyLTAzLTI5IDA4OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHNldFNlcmlhbE5vLmMgLCBzZXRTZXJpYWxOby5oOgoKICAgb3Bwcy4gIGZvcmdvdCB0byBjaGVjayB0aGUgc2V0U2VyaWFsIGNvZGUgaW4KICAgCjIwMDItMDMtMjggMjM6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jIChWNC0yLXBhdGNoZXMuNCksIHBhc3MuYzoKCiAgIGVuYWJsZSByb3cgY3JlYXRpb24gZm9yIHBhc3MgbW9kdWxlcy4gIFBhdGNoICM0ODIwMDUKICAgCjIwMDItMDMtMjggMjM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jIChWNC0yLXBhdGNoZXMuMiksCiAgIGludGVyZmFjZXMuYzoKCiAgIHBhdGNoICM1MTczNDA6IGZyZWVic2Q1IHN1cHBvcnQKICAgCjIwMDItMDMtMjggMjM6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMgKFY0LTItcGF0Y2hlcy40KSwgaHJfZmlsZXN5cy5jOgoKICAgYXBwbHkgZnJlZWJzZDUgcGF0Y2ggIzUxNzMzMwogICAKMjAwMi0wMy0yOCAyMzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N5c3RlbS5jICwgbWliSUkvaW50ZXJmYWNlcy5jCiAgICwgbWliSUkvaXBBZGRyLmM6CgogICBBcHBseSBuZXRic2QgZml4IHBhdGNoICM1Mjk3MzMKICAgCjIwMDItMDMtMjggMjM6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuOCksIHNubXBfYXBpLmMgLAogICBzbm1wX2FwaS5jOgoKICAgdXNlIGEgc3RhdGljIHZhcmlhYmxlIGZvciBpbml0IGNoZWNraW5nLiAgQnVnICM1MzYzODYuCiAgIAoyMDAyLTAzLTI4IDE1OjI1ICBkdHMxMgoKICAgKiBtYW4vOiBkZWZhdWx0X3N0b3JlLjMudG9wICwgcmVhZF9jb25maWcuMy5kZWYgLAogICBzbm1wX2FwaS4zLmRlZjoKCiAgIFR3ZWFrIHRvIHVzZSB0aGUgbmV3IGluY2x1ZGUgc3RydWN0dXJlLgogICAKMjAwMi0wMy0yOCAxNToyMyAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuOCksIEZBUToKCiAgIEFkZCBhIGZldyBuZXcgZW50cmllcyAobW9zdGx5IHJlbGF0aW5nIHRvIHRyYXBzKQogICAKMjAwMi0wMy0yOCAxNDo1NiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHJlbmFtZS9wcmVmaXggZnVuY3Rpb25zOyBhZGQgZG94eWdlbiBkb2N1bWVudGF0aW9uCiAgIAoyMDAyLTAzLTI4IDEzOjAwICByc3RvcnkKCiAgICogZG94eWdlbi5jb25mOgoKICAgYWRkIGRlZmluZSBmb3IgZXhjbHVkaW5nIHN0dWZmIChET1hZR0VOX1NIT1VMRF9TS0lQX1RISVMpCiAgIAoyMDAyLTAzLTI4IDEyOjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgYWRkIHNldFNlcmlhbE5vCiAgIAoyMDAyLTAzLTI4IDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIGZpeCBhIG5ldmVyLXNlZW4tYnV0LXZlcnktb2xkLWJ1ZyB1c2luZyB0aGUgd3JvbmcgZGVmYXVsdF9zdG9yZSB0b2tlbi4KICAgCjIwMDItMDMtMjggMTI6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG9ubHkgc2V0IHRoZSBkZWZhdWx0IG91dHB1dCBzdHlsZSBpZiBpdCdzIG5vdCBhbHJlYWR5IHNldCB0byBzb21ldGhpbmcuCiAgIAoyMDAyLTAzLTI4IDEyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgd3JhcHBpbmcuCiAgIAoyMDAyLTAzLTI4IDEyOjE3ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBjaGFuZ2UgdmVyc2lvbiBudW1iZXIKICAgCjIwMDItMDMtMjggMTI6MDggIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIGJhY2sgb3V0IGNoYW5nZSBmcm9tIHZlcnNpb24gMS42NSB1bnRpbCBiZXR0ZXIgc29sdXRpb24gY2FuIGJlIGZvdW5kOwogICBidWcgIzUzNTAyOQogICAKMjAwMi0wMy0yOCAxMjowMyAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICByZXR1cm4gc3BlY2lmaWMgcmVzdWx0IGNvZGUgZm9yIHJlZ2lzdHJhdGlvbiBmYWlsdXJlIGlmIGF2YWlsYWJsZS4KICAgCjIwMDItMDMtMjggMTE6NTcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIHBlcmwgdHlwbwogICAKMjAwMi0wMy0yNyAxNTo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZjoKCiAgIGRlbGV0ZSBvbGQsIHVudXNlZCBjb25mIGZpbGUKICAgCjIwMDItMDMtMjcgMDg6MjcgIGhhcmRha2VyCgogICAqIGFwcHMvOiBub3RpZmljYXRpb25fbG9nLmMgLCBub3RpZmljYXRpb25fbG9nLmggLAogICBzbm1wdHJhcGQuYzoKCiAgIGFkZCAiZG9udFJldGFpbkxvZ3MiIHRva2VuIHRvIHNubXB0cmFwZC5jb25mIHRvIG5vdCBlbmFibGUgdGhlCiAgIG5vdGlmaWNhdGlvbiBsb2cgbWliLgogICAKMjAwMi0wMy0yNyAwMTo1NCAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUgKFY0LTItcGF0Y2hlcy5bMSwxXSksIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIFVzZSB0aGUgY29ycmVjdCBuYW1lIG9mIHRoZSBXaW5kb3dzIElQIEhlbHBlciBBUEkgbGlicmFyeS4KICAgKENvbXB1dGVycyBjYW4gYmUgc29vb28gcGlja3khKQogICAKMjAwMi0wMy0yNiAyMzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYyAsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKICAgLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMgLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMKICAgLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIC0gUmVhbGx5IGZpeCB0aGUgInVuZG8gZmFpbGVkIiBwcm9ibGVtLiAgSUUsIG5vdCBqdXN0IGFueSBvbGQgZXJyb3IKICAgICB3aWxsIGNhdXNlIGFuIHVuZG8gZmFpbGVkIG1lc3NhZ2UgdG8gZ2V0IHNlbnQgYmFjay4gIE9ubHkgdmFyYmluZHMKICAgICB3aXRoIGFuIHVuZG8gZmFpbGVkIGVycm9yIGNvZGUgd2lsbCBjYXVzZSBhbiB1bmRvIGZhaWxlZCByZXN1bHQuCiAgICAgdW5kbyBmYWlsZWQgcmVzdWx0cyBkbyBzdGlsbCBzdXBlcnNlZGUgYWxsIG90aGVyIGVycm9yIGNvZGVzLAogICAgIGhvd2V2ZXIsIHdoaWNoIGlzIHdoYXQgdGhlIG9yaWdpbmFsIHByb2JsZW0gd2FzIGFsbCBhYm91dC4gIFdlIHN0aWxsCiAgICAgaGF2ZSB0byBkZXBlbmQgb24gdGhlIG1vZHVsZXMgcmV0dXJuaW5nIHRoZSByaWdodCBlcnJvciBjb2RlIChidXQKICAgICB0aGF0J3MgdGhlaXIgZmF1bHQgaWYgdGhleSBkb24ndCkuCiAgIC0gbWlzYyBjbGVhbnVwcyBhbmQgcmVuYW1lcwogICAKMjAwMi0wMy0yNiAyMzoyMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkIENyYWlnIFNldGVyYQogICAKMjAwMi0wMy0yNiAxNDowNyAgcnN0b3J5CgogICAqIFRPRE86CgogICBhZGQgY3JlYXRpbmcgc3JjIHJwbSBzcGVjIGZpbGUKICAgCjIwMDItMDMtMjYgMDg6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlza2lvLmMgKFY0LTItcGF0Y2hlcy4yKSwgZGlza2lvLmM6CgogICBlbmFibGUgZGlza2lvIG9uIGZyZWVic2Q1LiAgSW1wbGVtZW50cyBwYXRjaCA1MTczMjggaW4gYSBkaWZmZXJlbnQgd2F5LgogICAKMjAwMi0wMy0yNiAwNzo1OCAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBmb3Igb3RoZXItZGlyIGJ1aWxkcwogICAKMjAwMi0wMy0yNiAwNzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gaW5mbyBpbiBzcGxpdF9zdWJ0cmVlCiAgIAoyMDAyLTAzLTI2IDA3OjQzICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjQtMi1wYXRjaGVzLlswLDBdKSwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluOgoKICAgQWRkIC9ldGMvZmlsZXN5c3RlbXMgdG8gbGlzdCBvZiBtb3VudCB0YWJsZSBmaWxlcyAoZm9yIEFJWCkKICAgU2hvdWxkIGZpeCBidWdzIDIzMjU4OCBhbmQgKD8pNTE3MTEzCiAgIAoyMDAyLTAzLTI2IDA3OjM5ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjQtMi1wYXRjaGVzLls5LDldKSwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluOgoKICAgUmVtb3ZlIHRyYWlsaW5nICc6JyBmcm9tIGxpc3Qgb2YgTUlCIG1vZHVsZSBuYW1lcyBpbiBjb25maWd1cmUgb3V0cHV0LAogICB0byBhdm9pZCBjb25mdXNpb24gKHNlZSBCdWcgIzQ5MTEyOSkKICAgCjIwMDItMDMtMjYgMDY6NDEgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCAnLWxobHBhcGknIHRvIHRoZSBsaXN0IG9mIGFnZW50IGxpYnJhcmllcywgd2hlbiBydW5uaW5nIG9uIFdpbmRvd3MKICAgKHVzaW5nIEN5Z3dpbikuICBTaG91bGQgZml4IEJ1ZyAjNTM0NDA5LgogICAKMjAwMi0wMy0yNSAyMjozMyAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBwYXJzZS5jIChWNC0yLXBhdGNoZXMuMyksIHBhcnNlLmM6CgogICBmaXggYnVnIzUyMDQ3OCBzaG93TWliRXJyb3JzIHRva2VuIGlzIGludmVydGVkCiAgIAoyMDAyLTAzLTI1IDE1OjE4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmg6CgogICByZW1vdmUgXk0gY2hhcmFjdGVycwogICAKMjAwMi0wMy0yNSAxNDo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jICwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICB1c2UgZW1hY3MgdG8gZml4IHBlcmwgc2VhcmNoIGFuZCByZXBsYWNlIGVycm9ycywgb2YgY291cnNlCiAgIAoyMDAyLTAzLTI1IDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvc25tcF9hZ2VudC5jICwKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwKICAgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiAsIHNubXBsaWIvbWliLmMgLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICB1c2UgcGVybCB0byBzZWFyY2ggYW5kIHJlcGxhY2UgcGVybCBzZWFyY2ggYW5kIHJlcGxhY2UgZXJyb3JzLCBvZiBjb3Vyc2UKICAgCjIwMDItMDMtMjUgMTQ6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgYXBpIGNoYW5nZXMKICAgCjIwMDItMDMtMjUgMDg6NDMgIGR0czEyCgogICAqIHdpbjMyLzogd2luMzIub3B0ICwgbGlic25tcF9kbGwvbGlic25tcC5kZWYgLAogICBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AgLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAogICAsIHNubXBkL3NubXBkLmRzcCAsIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwICwKICAgc25tcGRmL3NubXBkZi5kc3AgLCBzbm1wZ2V0L3NubXBnZXQuZHNwICwKICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwICwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwCiAgICwgc25tcHNldC9zbm1wc2V0LmRzcCAsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AKICAgLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCAsIHNubXB0ZXN0L3NubXB0ZXN0LmRzcAogICAsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AgLAogICBzbm1wdHJhcC9zbm1wdHJhcC5kc3AgLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCAsCiAgIHNubXB1c20vc25tcHVzbS5kc3AgLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AgLAogICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBSZW1vdmUgcmVkdW5kYW50IGRlY2xhcmF0aW9ucyBvZiAnZ2V0b3B0LmMnIGFuZCAnc25tcF9wYXJzZV9hcmdzLmMnIGluCiAgIGVhY2ggaW5kaXZpZHVhbCBhcHBsaWNhdGlvbiBwcm9qZWN0LiAgVGhlc2Ugcm91dGluZXMgYXJlIGluY2x1ZGVkIHdpdGhpbgogICB0aGUgbGlicmFyaWVzLCBzbyB3ZSBtaWdodCBhcyB3ZWxsIHVzZSB0aG9zZS4KICAgCjIwMDItMDMtMjUgMDU6NTMgIGR0czEyCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9pbml0cy5oICwgd2luMzIub3B0ICwKICAgbGlic25tcF9kbGwvbGlic25tcC5kZWYgLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AgLAogICBzbm1wZC9zbm1wZC5kc3A6CgogICBHb3RjaGEhICBFdmVyeXRoaW5nIG5vdyBidWlsZHMgKG1vcmUtb3ItbGVzcykgY2xlYW5seSB1bmRlciBWaXN1YWwgQysrLgogICBZb3Ugc3RpbGwgaGF2ZSB0byB1c2UgdGhlICJCYXRjaCBCdWlsZCIgbWVjaGFuaXNtIChvciBlbHNlIGJlIGNhcmVmdWwgd2hpY2gKICAgb2YgbGlic25tcC9saWJzbm1wX2RsbCB5b3UgYnVpbGQgaW4gZWFjaCBvZiB0aGUgRGVidWcgJiBSZWxlYXNlIG1vZGVzKSwKICAgYW5kIHlvdSBuZWVkIHRvIGJ1aWxkIHR3aWNlIGluIG9yZGVyIHRvIGdldCBlbmNvZGVfa2V5Y2hhbmdlIGxpbmtpbmcuCiAgIEJ1dCB0aGluZ3MgKmRvKiBmaW5hbGx5IGJ1aWxkLgogICAKMjAwMi0wMy0yNCAwNToyMSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBPb3BzIC0gc25wcmludF8qIGNhbm5vdCByZWFsbG9jCiAgIAoyMDAyLTAzLTIzIDA5OjQwICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgcmVhbGx5IGZpeCBzbm1waW5mb3JtIGluc3RhbGxzIHRoaXMgdGltZS4KICAgCjIwMDItMDMtMjIgMjI6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgZmluYWwgY2xlYW51cHMgb2Ygbm90aWZpY2F0aW9uIGxvZyBzdXBwb3J0CiAgIAoyMDAyLTAzLTIyIDIyOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgZml4IGluc3RhbGxhdGlvbiBvZiBzbm1waW5mb3JtCiAgIAoyMDAyLTAzLTIyIDIyOjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgUmVuYW1lIHN0dWZmLiAgRml4IHN0dWZmLiAgWW91IGtub3csIG5vcm1hbCByb3V0aW5lLgogICAKMjAwMi0wMy0yMiAyMjozMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgZml4IHZlcnNpb24gZmlsZSBsb2NhdGlvbiBmb3Igbm9uLXNvdXJjZWRpciBidWlsZHMKICAgCjIwMDItMDMtMjIgMTQ6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgZm9yZ290IHRvIGNvbW1pdCBhIHByb3RvdHlwZS4KICAgCjIwMDItMDMtMjIgMTQ6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICByZWdpc3Rlcl9taWJfY29udGV4dDIgLT4gbmV0c25tcF9yZWdpc3Rlcl9taWIgKGFuZCBtYXJrZWQgYXMgaW50ZXJuYWwpCiAgIAoyMDAyLTAzLTIyIDE0OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAsIHN1YmFnZW50LmM6CgogICB1c2UgbmV3IGVycm9yIGxvZ2dpbmcgYXBpIHdoZW4gIXJvb3QKICAgCjIwMDItMDMtMjIgMTQ6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGVuYWJsZSBsb2dnaW5nIHNlc3Npb24gZXJyb3JzIHRvIHNvbWUgbG9nIGxldmVsIG90aGVyIHRoYW4gRVJSLgogICAKMjAwMi0wMy0yMiAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgLCBzdWJhZ2VudC5jOgoKICAgYmV0dGVyIGFnZW50eCBjb25uZWN0aW9uIHJlbGF0ZWQgZXJyb3IgbWVzc2FnZXMuCiAgIAoyMDAyLTAzLTIyIDA5OjM1ICBkdHMxMgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdyAsIHdpbjMyLm9wdCAsCiAgIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AgLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiAsCiAgIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCAsIHNubXBkL3NubXBkLmRzcDoKCiAgIFNsb3dseSBtYWtpbmcgcHJvZ3Jlc3Mgb24gNS4wIFdpbmRvd3MgYnVpbGQuCiAgIEV2ZXJ5dGhpbmcgbm93IGNvbXBpbGVzLCB0aG91Z2ggdGhlIFJlbGVhc2UgdmVyc2lvbiBkb2Vzbid0IGxpbmsuCiAgICAgKGNvbXBsYWlucyBhYm91dCBhc3NvcnRlZCB1bmtub3duIHJvdXRpbmVzIHRoYXQgYXJlIHRoZXJlLAogICAgICBzdGFyaW5nIGl0IGluIHRoZSBmYWNlLiAgR3JyciEhISEpCiAgIAoyMDAyLTAzLTIyIDA4OjI0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGRvIG5vdCAidHdlYWsiIHJhbmdlX3N1YmlkIHdoZW4gZGVhbGluZyB3aXRoIGNvbXByZXNzZWQgT0lEcy4KICAgICAgIFRoYW5rcyB0byBDcmFpZyBTZXRlcmEgZm9yIHBvaW50aW5nIG91dCB0aGlzIGRldmlhdGlvbiBmcm9tIFJGQwogICAgICAgMjc0MS4KICAgCjIwMDItMDMtMjIgMDc6NTAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCAsIHNubXBsaWIvb2lkX2FycmF5LmMKICAgLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYyAsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgVmFyaW91cyBtaW5vciBpbmNvbnNpc3RlbmNpZXMgKG1vc3RseSB0byBkbyB3aXRoIHN1YnRsZSB2YXJpYXRpb25zIGluIHR5cGVzKQogICAKMjAwMi0wMy0yMiAwNzozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBmaXggdHlwbwogICAKMjAwMi0wMy0yMiAwNzoyOSAgZHRzMTIKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2luY2x1ZGVzLmggLCBtaWJfbW9kdWxlX2luaXRzLmggLAogICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCAsCiAgIG5ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmg6CgogICBCcmluZyBXaW5kb3dzIHZlcnNpb25zIG9mICJhdXRvbWF0aWNhbGx5LWdlbmVyYXRlZCIgaGVhZGVyIGZpbGVzIHVwIHRvIGRhdGUuCiAgIAoyMDAyLTAzLTIyIDAyOjIzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgICAgLSBkb24ndCB1c2UgInJlZyIgYXMgYSBwYXJhbWV0ZXIgbmFtZSBpbiBrZXJuZWxfc3Vub3M1X2NhY2hlX2FnZSgpCiAgICAgICBhcyAvdXNyL2luY2x1ZGUvaW5ldC9jb21tb24uaCBzYXlzOgogICAgICAgI2RlZmluZSByZWcgcmVnaXN0ZXIKICAgICAgICghKSB3aGljaCB0aGUgY29tcGlsZXIgdGhlbiBiYXJmcyBvbi4gIFJlcG9ydGVkIGFzIGJ1ZyAjNTMzMzM2IGJ5CiAgICAgICBBbm9ueW1vdXMuCiAgIAoyMDAyLTAzLTIxIDA5OjI0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oICwgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiAgICwgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gc25tcF9jb25maWcqIC0+IG5ldHNubXBfY29uZmlnIChmb3IgbmV3IGZ1bmN0aW9ucyBvbmx5KQogICAtIGZpeCBidWcgd2hlcmUgc25tcF9jb25maWcoKSBzdHJpbmdzIHdlcmUgZ2V0dGluZyBwYXJzZWQgdHdpY2UuCiAgIAoyMDAyLTAzLTIxIDA5OjIzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgd3JhcCBhZ2VudHggc3R1ZmYgaW4gYSBzdGlsbCB1bnVzZWQgdmFyaWFibGUgKGF0IHRoaXMgcG9pbnQpLgogICAKMjAwMi0wMy0yMSAwOToyMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlLgogICAKMjAwMi0wMy0yMSAwOToyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBmaXggb2lkIHBhcnNpbmcuCiAgIAoyMDAyLTAzLTIxIDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IFJtb24vYWxhcm0uYyAsIFJtb24vc3RhdGlzdGljcy5jICwKICAgbWliSUkvYXQuYzoKCiAgIGNoYW5nZSAvLyBjb21lbnRzIHRvIC8qICovIGNvbW1lbnRzIChiYWQgYmFkIGJhZCkKICAgCjIwMDItMDMtMjEgMDY6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgY2hhbmdlIC8vIGNvbWVudHMgdG8gLyogKi8gY29tbWVudHMgKGJhZCBiYWQgYmFkKQogICAKMjAwMi0wMy0yMCAyMDoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIGEgbGlzdCBvZiByZWdpc3RlcmVkIHRleHQgZW51bXMgdG8gQVNOXyogdmFsdWVzLgogICAgIChJbiBwcm9iYWJseSB0aGUgd3JvbmcgcGxhY2UuKQogICAKMjAwMi0wMy0yMCAyMDoxMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLmggLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5oOgoKICAgY3JlYXRlIGEgbmV3ICJvdmVycmlkZSIgZGlyZWN0aXZlIHRvIGZvcmNlIGFuIE9JRCB0byBhIHBhcnRpY3VsYXIgdmFsdWUKICAgLSBub3QgZmluaXNoZWQuICBJdCdzIGRlc2lnbmVkIHRvIGRvIHJlYWQtd3JpdGUgYXMgd2VsbCwgYnV0IGRvZXNuJ3QuCiAgIAoyMDAyLTAzLTIwIDIwOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBjaGVjayBmb3IgaW5jbHVzaXZlCiAgIAoyMDAyLTAzLTIwIDExOjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIGluY2x1ZGUgbmV3IGRlbGV0ZS9yZW1vdmUgYnJlYWtkb3duIEFQSXMKICAgCjIwMDItMDMtMjAgMTE6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgQVBJIGNoYW5nZS4KICAgCjIwMDItMDMtMjAgMTE6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgc29tZSAidGhpcyB3aWxsIGNoYW5nZSIgZWFybHkgcm93IHN0YXR1cyBpbXBsZW1lbnRhdGlvbi4KICAgIC0gKHRoaXMgd2lsbCBtb3ZlIHRvIGEgc2VwYXJhdGUgaGFuZGxlcikKICAgCjIwMDItMDMtMjAgMTE6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgcG9pbnRlciBjaGVja2luZyBhZ2FpbnN0IGlsbGVnYWwgYWRkcyAoaWUsIHNob3VsZG4ndCBoYXBwZW4gYnV0IGNoZWNrIGFueXdheSkKICAgCjIwMDItMDMtMjAgMDg6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBPaywgSSBtYWtlIG1pc3Rha2VzLiAgSSBhZG1pdCBpdC4gIEl0IHJlYWxseSBzaG91bGQgaGF2ZSBiZWVuIGEgTlVMTC4KICAgCjIwMDItMDMtMjAgMDg6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBhZGQgbWlzc2luZyBjb21tYQogICAKMjAwMi0wMy0yMCAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaDoKCiAgIHNlcGFyYXRlIG91dCBkZWxldGUvcmVtb3ZlIHJvdyBmdW5jdGlvbmFsaXR5CiAgIAoyMDAyLTAzLTIwIDA3OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c3RlbV9taWIuYyAoVjQtMi1wYXRjaGVzLjYpLAogICBzeXN0ZW1fbWliLmM6CgogICByZW1vdmUgaWxsZWdhbCBTRVQgc3VwcG9ydCBmb3Igc3lzRGVzY3IuCiAgIAoyMDAyLTAzLTIwIDA2OjI3ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZSAsIGxvY2FsL21pYjJjOgoKICAgLSBhZGQgbWFueSBtYW55IC1UIGZsYWdzIGZvciBkZWZpbmluZyB0eXBlcy4KICAgCjIwMDItMDMtMTkgMjE6MTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBmb3JjZSBzZXR0aW5nIG9mICchcm9vdCcgZmxhZyBzbyB0aGF0IGl0IHdpbGwgcnVuIGZvciBub24tcHJpdmlsZWdlZAogICB1c2VycyBvciB3aGVuIGFuIGFnZW50eCBtYXN0ZXIgc2ltcGx5IGhhcyBuZXZlciBleGlzdGVkLgogICAKMjAwMi0wMy0xOSAxNjowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIC0gYWxsb3cgdGFibGVzIHRvIGJlIG1hcmtlZCB3aGV0aGVyIHRoZXkgc2hvdWxkIHN1cHBvcnQgY3JlYXRpb24gb3Igbm90LgogICAtIGJ1ZyBmaXhlcwogICAKMjAwMi0wMy0xOSAwNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2RhdGEuYyAsIHRhYmxlX2RhdGFzZXQuYzoKCiAgIGRvY3VtZW50YXRpb24gY2xlYW4gdXAKICAgCjIwMDItMDMtMTkgMDc6MjggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jICwgaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBkb2N1bWVudGF0aW9uIGNsZWFuIHVwCiAgIAoyMDAyLTAzLTE5IDA3OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIGhlbHBlcnMvYnVsa190b19uZXh0LmMgLAogICBoZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsIG1pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYzoKCiAgIGRvY3VtZW50YXRpb24gY2xlYW4gdXAKICAgCjIwMDItMDMtMTkgMDY6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9zbm1wX2FnZW50LmMgLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jICwgaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oICwKICAgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiAsIHBlcmwvYWdlbnQvYWdlbnQueHMgLAogICBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgLSByZW5hbWVkIGEgZmV3IGJhZGx5IG5hbWVkIGZ1bmN0aW9ucyAobmV0c25tcF8gYXBwZWFyZWQgdHdpY2UpLgogICAtIGltcGxlbWVudGVkIHRoZSBiZWdpbm5pbmcgb2YgY3JlYXRpb24gc3VwcG9ydCBmb3IgZGF0YXNldHMuCiAgIAoyMDAyLTAzLTE5IDA2OjM1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBBcHBhcmVudGx5IEkgcmFuIGF1dG9jb25mIGVhcmxpZXIgYW5kIG1pc3NlZCBjaGVja2luZyBpbiB0aGUgcmVzdWx0cy4KICAgCjIwMDItMDMtMTkgMDY6MzUgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgYWRkIC1uZmNhCiAgIAoyMDAyLTAzLTE3IDE2OjI1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICBTZXQgZGVmYXVsdCBwb3J0IHRvIDE2Mi4KICAgCjIwMDItMDMtMTcgMTU6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVENQRG9tYWluLmMgLCBzbm1wVURQRG9tYWluLmM6CgogICBpbXByb3ZlZCBmb3JtYXR0aW5nIHN0cmluZ3Mgc2hvd2luZyBib3RoIHRyYW5zcG9ydCB0eXBlIGFuZCBwb3J0IG51bWJlci4KICAgCjIwMDItMDMtMTMgMjM6MzAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgYWRkIG1pc3NpbmcgImluc3RhbGxzdWJkaXJzIiB0YXJnZXQgbWlzc2luZyAodGhhbmtzIHRvIEthdHN1aGlzYSBBQkUpCiAgIAoyMDAyLTAzLTEzIDIzOjI3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4gLCBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgLS1jcmVhdGUtc25tcHYzLXVzZXIgdG8gYXV0b21hdGUgYWRkaW5nIGEgdjMgdXNlciB0byBib3RoIHRoZSB1c20KICAgYW5kIHZhY20gdGFibGVzIChieSBhZGRpbmcgbGluZXMgdG8gYm90aCB0aGUgcGVyc2lzdGVudCBhbmQgbm9ybWFsCiAgIGNvbmYgZmlsZXMpLgogICAKMjAwMi0wMy0xMyAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgYnVnIGZpeCBmb3IgcHJlLXByb2Nlc3NlZCByZXF1ZXN0cy4KICAgCjIwMDItMDMtMTMgMTY6MzAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzICwgY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X2luZGV4LmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3JlYWRfY29uZmlnLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3JlZ2lzdHJ5LmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3RyYXAuaCAsIGluY2x1ZGUvdWNkLXNubXAvYXNuMS5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9hdXRvX25saXN0LmggLCBpbmNsdWRlL3VjZC1zbm1wL2NhbGxiYWNrLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvZHNfYWdlbnQuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvaGVhZGVyX2NvbXBsZXguaCAsIGluY2x1ZGUvdWNkLXNubXAvaW50NjQuaAogICAsIGluY2x1ZGUvdWNkLXNubXAva2V5dG9vbHMuaCAsIGluY2x1ZGUvdWNkLXNubXAvbWliLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL21pYl9tb2R1bGVfY29uZmlnLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL21pYmluY2wuaCAsIGluY2x1ZGUvdWNkLXNubXAvcGFyc2UuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCAsIGluY2x1ZGUvdWNkLXNubXAvc2NhcGkuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcC10Yy5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hbGFybS5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FwaS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2NsaWVudC5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2RlYnVnLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfaW1wbC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2xvZ2dpbmcuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9wYXJzZV9hcmdzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfdmFycy5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdXNtLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB2My5oICwgaW5jbHVkZS91Y2Qtc25tcC9zdHJ1Y3QuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmggLCBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3RyYW5zZm9ybV9vaWRzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWluY2x1ZGVzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3V0aWxfZnVuY3MuaCAsIGluY2x1ZGUvdWNkLXNubXAvdmFyX3N0cnVjdC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmg6CgogICAtIC0tZW5hYmxlLXVjZC1zbm1wLWNvbXBhdGliaWxpdHkgYWN0dWFsbHkgaW5zdGFsbHMgaGVhZGVycyAoYXMgb3Bwb3NlZAogICAgIHRvIGFsd2F5cywgd2hpY2ggaXMgd2hhdCBpdCB1c2VkIHRvIGRvKS4KICAgLSBhZGQgYWdlbnRfbWlicyB0byBjb25maWd1cmUgZGVmYXVsdCBtaWIgbW9kdWxlcyBhbmQgZG9jdW1lbnQuCiAgIC0gY2hhbmdlIGhlbHAgZG9jdW1lbnRhdGlvbiBhIGJpdCBmb3IgdGhlIG1pYiBtb2R1bGVzLgogICAtIGFkZCBhIGZvcmNlZCBkZXBlbmRlbmN5IGZvciBtaWJfbW9kdWxlcy5sbwogICAKMjAwMi0wMy0xMyAxNjoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQuaDoKCiAgIG9wcHMuICBkdXBsaWNhdGVzIGV4aXN0aW5nIGFnZW50X21pYnMuaAogICAKMjAwMi0wMy0xMyAxNTo1MCAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1ERU1PLU1JQi50eHQsIFVDRC1ESVNLSU8tTUlCLnR4dCwgVUNELURMTU9ELU1JQi50eHQsCiAgIFVDRC1JUEZJTFRFUi1NSUIudHh0LCBVQ0QtSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0CiAgIChWNC0yLXBhdGNoZXMuWzEsMSwxLDEsMSw5XSksIFVDRC1ERU1PLU1JQi50eHQgLAogICBVQ0QtRElTS0lPLU1JQi50eHQgLCBVQ0QtRExNT0QtTUlCLnR4dCAsCiAgIFVDRC1JUEZJTFRFUi1NSUIudHh0ICwgVUNELUlQRldBQ0MtTUlCLnR4dCAsCiAgIFVDRC1TTk1QLU1JQi50eHQ6CgogICBhZGRyZXNzIGNoYW5nZXMgZm9yIHVjZC1zbm1wIC0+IG5ldC1zbm1wIG5vdGUgc2F5aW5nIHRoZXNlIG1pYnMgYXJlIG5vCiAgIGxvbmdlciBzdXBwb3J0ZWQgYnkgVUNELgogICAKMjAwMi0wMy0xMyAxNTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuaCAsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIEFkZGVkIGEgbnNNb2R1bGVUYWJsZSB0YWJsZSB3aGljaCByZXBsYWNlcyB0aGUgb2xkZXIgbXJUYWJsZS4KICAgRnVuY3Rpb25hbGx5LCB0aGlzIGlzIGEgbGlzdCBvZiBhbGwgcmVnaXN0ZXJlZCBpdGVtcyB3aXRoaW4gdGhlIE1JQgogICB0cmVlIGp1c3QgbGlrZSB0aGUgbXJUYWJsZSB3YXMsIGJ1dCB3aXRoIHN1cHBvcnQgZm9yIGNvbnRleHRzIGFuZCBmb3IKICAgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbnMgd2l0aCBkaWZmZXJlbnQgcHJpb3JpdGllcy4KICAgCjIwMDItMDMtMTMgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiB0b29scy5jIChWNC0yLXBhdGNoZXMuNCksIHRvb2xzLmM6CgogICBtYWxsb2MgYXQgbGVhc3Qgb25lIGJ5dGUgaW4gaGV4X3RvX2JpbmFyeTIKICAgCjIwMDItMDMtMTMgMTU6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHJlbW92ZSB1bm5lZWRlZCBkZWJ1ZyBzdGF0ZW1lbnQKICAgCjIwMDItMDMtMTMgMTQ6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBVc2UgbG9jYWwgdmFyaWFibGUgbmFtZSBidWZmZXJzIGJ5IGRlZmF1bHQgd2hlbiBidWlsZGluZyBvaWQgc2VnbWVudHMuCiAgIAoyMDAyLTAzLTEzIDE0OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAvKiBzdG9wIHdhdGVyIGZyb20gZmxvd2luZyB0aHJvdWdoIGRhbSAqLwogICBmaW5nZXItPmluc2VydCgiaG9sZSIpCiAgIAoyMDAyLTAzLTEzIDA0OjAzICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy43KSwgRkFROgoKICAgQWRkIGEgZGVzY3JpcHRpb24gb2YgInVubGlua2VkIE9JRHMiLgogICAKMjAwMi0wMy0xMiAyMTozMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5jcmVhdGUtZGF0YXNldC5jb25mICwgbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgZml4IGhlYWRlcnMuCiAgIAoyMDAyLTAzLTEyIDIxOjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBkb24ndCBmb3JtYXQgY29tbWVudHMgb3B0aW9uCiAgIAoyMDAyLTAzLTEyIDIxOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGZpeCBmb3IgdGFibGVzIHdpdGggaG9sZXMuCiAgIAoyMDAyLTAzLTEyIDIxOjA5ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgbW92ZSBkZWZhdWx0IG1pYnMgdG8gdGhlaXIgb3duIHZhcmlhYmxlLgogICAKMjAwMi0wMy0xMiAyMTowNiAgaGFyZGFrZXIKCiAgICogcGVybC86IFNOTVAvTWFrZWZpbGUuUEwgLCBhZ2VudC9NYWtlZmlsZS5QTCAsCiAgIGFnZW50L2FnZW50LnhzICwgYWdlbnQvdHlwZW1hcDoKCiAgIC0gdXNlIG5ldC1zbm1wLWNvbmZpZyB0byBmaWd1cmUgdGhpbmdzIG91dC4KICAgLSB1cGRhdGUgaGVhZGVycyBhbmQgdHlwZWluZm8gZm9yIHJlY2VudCBjaGFuZ2VzLgogICAKMjAwMi0wMy0xMiAyMDozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBGQVEySFRNTCAsIFJFQURNRS5taWIyYyAsIG1pYjJjICwgdGttaWIKICAgLCBtaWIyYy5hcnJheS1hdXRvLmNvbmYgLCBtaWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB1Y2Qtc25tcCAtPiBuZXQtc25tcCBjaGFuZ2VzLgogICAKMjAwMi0wMy0xMiAyMDozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgcmVtb3ZlIG9ic29sZXRlIG1pYjJjLmNvbmYgZmlsZQogICAKMjAwMi0wMy0xMiAxODoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBkb24ndCBmb3JnZXQgdG8gc2V0IHJvdy0+bmV4dC0+cHJldiB0byBzb21ldGhpbmcgd2hlbiByZW1vdmluZyByb3cuCiAgIAoyMDAyLTAzLTEyIDE3OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggYWdlbnR4IGluY2x1c2l2ZSBzZWFyY2hlcyB0byBpZ25vcmUgZ2V0IGVycm9ycy4KICAgCjIwMDItMDMtMTIgMTc6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBzb21lIG1pbmltYWwgZHVtcCBkZWJ1Z2dpbmcuCiAgIAoyMDAyLTAzLTEyIDA4OjM0ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy42KSwgRkFROgoKICAgVXBkYXRpbmcgb2YgdGhlIEZBUSByZWFkeSBmb3IgdGhlIG5leHQgcmVsZWFzZS4KICAgKE1vc3RseSByZXBocmFzaW5nIG9mIGV4aXN0aW5nIGVudHJpZXMsIGJ1dCBhIGZldyBuZXcgcXVlc3Rpb25zKQogICAKMjAwMi0wMy0xMSAxODowMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgY2FzdCAtMSB0byB1X2NoYXIgc28gdGVzdCBkb2Vzbid0IGFsd2F5cyBmYWlsIChmaXggY29tcGlsZXIgd2FybmluZykKICAgCjIwMDItMDMtMTEgMTc6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIHRyZWF0IChpbGxlZ2FsKSBlcnJvcnMgZnJvbSBzdWJhZ2VudHMgc3BlY2lhbGx5IGZvciBnZXRuZXh0IGNhc2VzLgogICAKMjAwMi0wMy0xMSAxMzo0MSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIG91ciBzbm1wIGxpYnJhcmllcyB0byBvdXRwdXQKICAgCjIwMDItMDMtMTEgMTA6MzQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvOiB0YWJsZV9kYXRhLmggLCB0YWJsZV9kYXRhc2V0Lmg6CgogICBkZWxldGUvcmVtb3ZlIHN1cHBvcnQgaGVhZGVyIGNoYW5nZXMuCiAgIAoyMDAyLTAzLTExIDA5OjEzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGFsbG93IGNvbXBpbGF0aW9uIC0td2l0aC1vdXQtdHJhbnNwb3J0cz1UQ1AKICAgCjIwMDItMDMtMTEgMDg6MjEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgICAgLSBmaXhlcyBmb3IgLS1kaXNhYmxlLWRlYnVnZ2luZwogICAKMjAwMi0wMy0xMSAwNzo0MSAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNSksIEZBUToKCiAgIEJyaW5nIHRoZSA0eC0gYW5kIG1haW4tYnJhbmNoIEZBUXMgaW50byBhZ3JlZW1lbnQuCiAgIAoyMDAyLTAzLTExIDA2OjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSB1c2UgY29ycmVjdCBzZXNzaW9uIElEIHdoZW4gdGFsa2luZyB0byBzdWJhZ2VudHMuICBUaGFua3MgdG8gQ3JhaWcKICAgICAgIFNldGVyYSBmb3IgdGhpcyBmaXguCiAgIAoyMDAyLTAzLTExIDA1OjIwICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgICAgLSBmaXggYmFkIHR5cGUgYXNzaWdubWVudCBpbiBidWlsZF90cmFuc2xhdGlvbl90YWJsZSgpLCBub3RpY2VkIGJ5CiAgICAgICBQZXRlciBTdGV2ZW5zLgogICAKMjAwMi0wMy0xMSAwMDoxMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGNoZWNrIGZvciBOVUxMIGZyZWVzLCBldmVuIHRob3VnaCBpdCdzIHN1cHBvc2VkIHRvIGJlIG9rIGFjY29yZGluZyB0byBhbnNpLgogICAKMjAwMi0wMy0xMSAwMDoxMiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBiZWdpbm5pbmcgc3VwcG9ydCBmb3IgbWF4aW11bSBsb2dnZWQgY2hlY2tpbmcuCiAgIAoyMDAyLTAzLTExIDAwOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIC0gcmVtb3ZlL2RlbGV0ZSByb3cgc3VwcG9ydC4KICAgLSBudWxsIGNoZWNrCiAgIC0gZG9jIGNvbW1lbnRzLgogICAKMjAwMi0wMy0xMSAwMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICByZW1vdmUvZGVsZXRlIHJvdyBzdXBwb3J0LgogICAKMjAwMi0wMy0xMSAwMDowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgY2FsbCBuZXh0IGhhbmRsZXJzIChvcHBzKS4KICAgCjIwMDItMDMtMTAgMTQ6MTEgIG5iYQoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIEZpeCBvbmUgc3ByaW50X3ZhcmlhYmxlID0+IHNucHJpbnRfdmFyaWFibGUKICAgCjIwMDItMDMtMTAgMTQ6MDYgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLCBzbm1wbGliL21pYi5jOgoKICAgQWRkIHNucHJpbnRfKiBmdW5jdGlvbnMgdGhhdCB3ZXJlIHNwcmludF8qIGluIHVjZC1zbm1wIDQKICAgCjIwMDItMDMtMTAgMTQ6MDUgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmggLCBzbm1wbGliL3NubXBJUFhEb21haW4uYwogICAsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIEZpeCBjb21waWxhdGlvbiB3aGVuIElQWC10cmFuc3BvcnQgZW5hYmxlZAogICAKMjAwMi0wMy0xMCAxNDowMyAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBGaXggY29tcGlsYXRpb24gb3V0c2lkZSBzb3VyY2UgZGlyZWN0b3J5CiAgIAoyMDAyLTAzLTA4IDIyOjI2ICBoYXJkYWtlcgoKICAgKiBGQVEgLCBzZWRzY3JpcHQuaW4gLCBwZXJsL1NOTVAvU05NUC5wbSAsCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLnByZTIgKQogICAKMjAwMi0wMy0wOCAxODoyMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgbWlzYyBjaGFuZ2VzLgogICAKMjAwMi0wMy0wOCAxODoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBuZXcgYXBpIGNoYW5nZXMKICAgCjIwMDItMDMtMDggMTc6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jOgoKICAgUGF0Y2ggZnJvbSBMYXdyZW5jZSBHcmVlbmZpZWxkIHRvIGRlYWwgd2l0aCBTZW5kbWFpbCA4LjEyIHF1ZXVlZ3JvdXBzLgogICAKMjAwMi0wMy0wOCAxNjo1OSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIHBhdGNoIGZyb20gY3NldGUgdG8gZml4IHdpbjMyIGJ1aWxkcwogICAKMjAwMi0wMy0wOCAxNjo1NSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgYWRkIENhbGxiYWNrIHRyYW5zcG9ydCB0byBjeWd3aW4KICAgCjIwMDItMDMtMDggMTY6NDkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIHJtb24gc3VwcG9ydC4KICAgCjIwMDItMDMtMDggMTY6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gcmVtb3ZlIG9sZCBhbiB1bnVzZWQgcG9pbnRlcgogICAKMjAwMi0wMy0wOCAxNjoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9zbm1wX2FnZW50LmMgLAogICBhZ2VudC9zbm1wX3ZhcnMuYyAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguaCAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgLCBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jICwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgKICAgLCBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oICwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKICAgLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCAsIGFwcHMvc25tcGJ1bGtnZXQuYyAsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMgLCBhcHBzL3NubXBkZWx0YS5jICwgYXBwcy9zbm1wZGYuYwogICAsIGFwcHMvc25tcGdldC5jICwgYXBwcy9zbm1wZ2V0bmV4dC5jICwKICAgYXBwcy9zbm1wc2V0LmMgLCBhcHBzL3NubXBzdGF0dXMuYyAsIGFwcHMvc25tcHRhYmxlLmMKICAgLCBhcHBzL3NubXB0ZXN0LmMgLCBhcHBzL3NubXB0cmFwLmMgLAogICBhcHBzL3NubXB0cmFwZC5jICwgYXBwcy9zbm1wdHJhcGRfbG9nLmMgLAogICBhcHBzL3NubXB0cmFwZF9sb2cuaCAsIGFwcHMvc25tcHVzbS5jICwgYXBwcy9zbm1wdmFjbS5jCiAgICwgYXBwcy9zbm1wd2Fsay5jICwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMgLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMgLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYyAsIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oICwKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9pbmRleC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmggLAogICBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYgLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYgLAogICBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmYgLCBwZXJsL1NOTVAvU05NUC54cyAsCiAgIHNubXBsaWIvY211X2NvbXBhdC5jICwgc25tcGxpYi9taWIuYyAsCiAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMgLCBzbm1wbGliL3NubXBfYXBpLmMgLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMgLCBzbm1wbGliL3NubXBfZGVidWcuYyAsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLCBzbm1wbGliL3NubXBfc2VjbW9kLmMgLAogICBzbm1wbGliL3NubXBrc20uYyAsIHNubXBsaWIvc25tcHVzbS5jICwgc25tcGxpYi9zbm1wdjMuYwogICAsIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgc3RydWN0IHNubXBfc2Vzc2lvbiB0eXBlZGVmZWQgdG8gbmV0c25tcF9zZXNzaW9uLiAgJiBwZHUuICYgLi4uCiAgIAoyMDAyLTAzLTA4IDE0OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGdldF9zeW1ib2wgLT4gZ2V0X3RyZWUKICAgCjIwMDItMDMtMDggMDc6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvOiBTTk1QL1NOTVAueHMgLCBhZ2VudC9hZ2VudC5wbSAsIGFnZW50L2FnZW50LnhzCiAgICwgYWdlbnQvdGVzdC5wbDoKCiAgIG1pc3NlZCB1cGRhdGVzCiAgIAoyMDAyLTAzLTA4IDA3OjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGF0YV9saXN0LmMgLCBkZWZhdWx0X3N0b3JlLmMgLCBtaWIuYwogICAsIG9pZF9hcnJheS5jICwgb2lkX3N0YXNoLmMgLCByZWFkX2NvbmZpZy5jCiAgICwgc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBDYWxsYmFja0RvbWFpbi5jICwKICAgc25tcElQWERvbWFpbi5jICwgc25tcFRDUERvbWFpbi5jICwgc25tcFRDUElQdjZEb21haW4uYwogICAsIHNubXBVRFBEb21haW4uYyAsIHNubXBVRFBJUHY2RG9tYWluLmMgLAogICBzbm1wVW5peERvbWFpbi5jICwgc25tcF9hcGkuYyAsIHNubXBfZGVidWcuYyAsCiAgIHNubXBfdHJhbnNwb3J0LmMgLCBzbm1wdjMuYzoKCiAgIG1pc3NpbmcgdXBkYXRlZCBjb2RlCiAgIAoyMDAyLTAzLTA4IDAyOjA3ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmggLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gc29tZSBzbm1wIC0+IG5ldHNubXAgZml4ZXMKICAgCjIwMDItMDMtMDcgMTM6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYyAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvc25tcGQuYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYwogICAsIGFwcHMvc25tcHRyYXBkLmMgLCBhcHBzL3NubXB0cmFwZF9sb2cuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oICwKICAgbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mICwgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mCiAgICwgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiAsCiAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1hc3NpdmUgbmV0c25tcF8gcHJlZml4aW5nIG9mIHN0dWZmIChwYXNzIDQpCiAgIAoyMDAyLTAzLTA3IDEzOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jICwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYwogICAsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jICwKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jICwKICAgYWdlbnQvaGVscGVycy9udWxsLmMgLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMgLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jICwKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCAsCiAgIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZiAsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgogICAsIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtYXNzaXZlIG5ldHNubXBfIHByZWZpeGluZyBvZiBzdHVmZiAocGFzcyAzKQogICAKMjAwMi0wMy0wNyAxMzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsCiAgIGFnZW50L3NubXBfYWdlbnQuYyAsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jICwKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLCBhcHBzL3NubXB0cmFwZC5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCAsCiAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIG1hc3NpdmUgbmV0c25tcF8gcHJlZml4aW5nIG9mIHN0dWZmIChwYXNzIDIpCiAgIAoyMDAyLTAzLTA3IDA4OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L3NubXBfYWdlbnQuYyAsCiAgIGFnZW50L3NubXBfdmFycy5jICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMgLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYwogICAsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsCiAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYyAsIGFnZW50L2hlbHBlcnMvbnVsbC5jICwKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jICwKICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuaCAsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oCiAgICwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaCAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oICwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKICAgLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCAsIGFwcHMvc25tcHN0YXR1cy5jICwKICAgYXBwcy9zbm1wdGVzdC5jICwgYXBwcy9zbm1wdHJhcGQuYyAsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jICwgYXBwcy9zbm1wdHJhcGRfbG9nLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2V0X2hlbHBlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmggLAogICBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmYgLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKICAgLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mICwKICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWFzc2l2ZSBuZXRzbm1wXyBwcmVmaXhpbmcgb2Ygc3R1ZmYgKHBhc3MgMSkKICAgCjIwMDItMDMtMDcgMDY6MjEgIGpicG4KCiAgICogbWFuL3NubXBfc2Vzc19hcGkuMy5kZWY6CgogICAgIC0gc3R5bGUgdXBkYXRlCiAgIAoyMDAyLTAzLTA3IDA1OjQ3ICBqYnBuCgogICAqIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmOgoKICAgICAtIG1pbm9yIHVwZGF0ZXMKICAgCjIwMDItMDMtMDcgMDU6MzkgIGpicG4KCiAgICogbWFuL3NubXBfYWxhcm0uMy5kZWY6CgogICAgIC0gc3R5bGUgdXBkYXRlCiAgIAoyMDAyLTAzLTA3IDA1OjAwICBqYnBuCgogICAqIG1hbi9yZWFkX2NvbmZpZy4zLmRlZjoKCiAgICAgLSBtYWtlIHByb3RvdHlwZXMgbWF0Y2ggaGVhZGVyCiAgIAogICAgIC0gbWFrZSBzdHlsZSBjb25zaXN0ZW50IHdpdGggbWliX2FwaQogICAKMjAwMi0wMy0wNyAwMzowNyAgamJwbgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgICAgLSBmaXggdXAgc25wcmludF8gZGVjbGFyYXRpb25zLCBmaXggc21hbGwgdHlwby4gIFBhdGNoIGJ5IEd1eQogICBIYXJyaXMuCiAgIAoyMDAyLTAzLTA3IDAyOjQ0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaDoKCiAgICAgLSByZW1vdmUgZHVwbGljYXRlIGRlY2xhcmF0aW9uIG9mIHNwcmludF9yZWFsbG9jX2J5X3R5cGUsIGFzIG5vdGVkCiAgICAgICBieSBHdXkgSGFycmlzLgogICAKMjAwMi0wMy0wNiAxNzoxNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8uY3ZzaWdub3JlICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Ly5jdnNpZ25vcmUgLCBwZXJsL1NOTVAvdC8uY3ZzaWdub3JlOgoKICAgbmV3IGlnbm9yZSBmaWxlcwogICAKMjAwMi0wMy0wNiAxNzoxMyAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBkb2NzCiAgIAoyMDAyLTAzLTA2IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy5oOgoKICAgZXhhbXBsZXMgbW9kdWxlIHdyYXBwZXIgdG8gaW5jbHVkZSBhbGwgKG5ldykgZXhhbXBsZXMuCiAgIAoyMDAyLTAzLTA2IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmM6CgogICBkb2N1bWVudCBiZXR0ZXIuCiAgIAoyMDAyLTAzLTA2IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBzZWFyY2ggZXhhbXBsZXMgZm9yIGRvY3MuCiAgIAoyMDAyLTAzLTA2IDE2OjI5ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBleGFtcGxlIE1JQiB0ZW1wbGF0ZSAoYW5kIG9uZSBub2RlKQogICAKMjAwMi0wMy0wNiAxNjoyOCAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1NSUIudHh0OgoKICAgaW5zdGFudGlhdGUgZXhhbXBsZXMKICAgCjIwMDItMDMtMDYgMTY6MjcgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIHNvbWUgTlMgbWlicwogICAKMjAwMi0wMy0wNiAxNjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiBzY2FsYXJfaW50LmMgLCBzY2FsYXJfaW50Lmg6CgogICBFeGFtcGxlIGltcGxlbWVudGF0aW9uIG9mIGEgU05NUCBlbmFibGVkIGludCByZWdpc3RlcmVkIGF0IGEgc2NhbGFyLgogICAKMjAwMi0wMy0wNiAxNjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oOgoKICAgbWFueSBjaGFuZ2VzIGZvciBpbnN0YW5jZXMuICBTcGVjaWZpY2ljYWxseToKICAgICAtIGFsbG93IGZvciBzdWJoYW5kbGVycy4KICAgICAtIHByb3ZpZGUgYW4gaW50IHdyYXBwZXIuCiAgICAgLSByZXVzZSBtb3JlIGNvZGUuCiAgICAgLSBudW1lcm91cyBidWcgZml4ZXMuCiAgIAoyMDAyLTAzLTA2IDE0OjA1ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgcmVtb3ZlIGEgYmxhbmsgbGluZS4KICAgCjIwMDItMDMtMDYgMTQ6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgbWFzdGVyX2FkbWluLmM6CgogICBGaXggbWFzdGVyIGFnZW50IGdldGJ1bGsgc3VwcG9ydC4gIHRoaXMgaGFzIHRvIGJlIGluZGVwZW5kZW50bHkgb2YgdGhlCiAgIG5vcm1hbCBidWxrLT5uZXh0IGZpeGVzIGR1ZSB0byBkZWxlZ2F0aW9uLiAgTG9uZyBzdG9yeS4KICAgCjIwMDItMDMtMDYgMTQ6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmM6CgogICBtb3ZlIGJ1bGtfdG9fbmV4dCBmaXhpbmcgZnVuY3Rpb25hbGl0eSBpbnRvIGEgc2VwYXJhdGUgZnVuY3Rpb24gZm9yIHJldXNlLgogICAKMjAwMi0wMy0wNiAxMDoyNiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLCBzbm1wbGliL21pYi5jOgoKICAgICAtIHNwcmlua2xlIG1hZ2ljIGNvbnN0IGR1c3QKICAgCjIwMDItMDMtMDYgMTA6MTggIGpicG4KCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICAgIC0gZG9jdW1lbnQgY2hhbmdlZCBBUEksIGluY29ycG9yYXRpbmcgcGF0Y2hlcyBieSBHdXkgSGFycmlzLgogICAKMjAwMi0wMy0wNiAwOTozNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTJhZ2VudHhzZXRmYWlsICwgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIGZpeCB0ZXN0cy4KICAgCjIwMDItMDMtMDYgMDk6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICByZS1lbmFibGUgc2V0dGluZyBvcHRpbmQgdG8gMSB0aWxsIERhdmUgdGVsbHMgbWUgd2hlcmUgdGhpcyBicmVha3MuCiAgIAoyMDAyLTAzLTA2IDA5OjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1MXNubXB2MmN0cmFwICwgVDA1MnNubXB2MmNpbmZvcm0gLAogICBUMDU4YWdlbnRhdXRodHJhcDoKCiAgIGZpeGVzIGZvciBuZXcgY29tbWFuZCBsaW5lIHVzYWdlLgogICAKMjAwMi0wMy0wNiAwOTowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgbW9yZSBpbXByb3ZlZCBlcnJvciBtZXNzYWdlcyAobW9zdGx5KQogICAKMjAwMi0wMy0wNiAwODo1NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgYXV0b2NvbmYKICAgCjIwMDItMDMtMDYgMDg6NDEgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYyAoVjQtMi1wYXRjaGVzLjMpLCBzbm1wdjMuYzoKCiAgIEZpeCBhIGNvbmZ1c2lvbiBiZXR3ZWVuIGRlZkF1dGhUeXBlIGFuZCBkZWZQcml2VHlwZS4KICAgCjIwMDItMDMtMDYgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgcHJvdG9jb2wuYzoKCiAgIHByb3BlciBmaXggZm9yIG5vdCByZXF1aXJpbmcgcmVzcG9uc2VzIHRvIENMRUFOVVAgbWVzc2FnZXMuCiAgIAoyMDAyLTAzLTA2IDA2OjA3ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB6ZXJvIHRoZSBuYW1lIG9mIGVsZW1lbnRzIG9mIHRoZSBidWxrIGNhY2hlCiAgIAoyMDAyLTAzLTA2IDA2OjA2ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gY2FsbG9jKCkgbm90IG1hbGxvYygpIGluIGEgZmV3IHBsYWNlcyB0byBpbml0aWFsaXNlIHNvbWUgYnVmZmVycwogICAgICAgdG8gemVyb2VzLgogICAKMjAwMi0wMy0wNiAwNTo1MiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy42KSwgc25tcF9hcGkuYzoKCiAgIEFjdHVhbGx5IHVzZSB0aGUgY29tbW9uICdkZWZQYXNzcGhyYXNlJyB2YWx1ZSBpZiAnZGVme0F1dGgsUHJpdn1QYXNzcGhyYXNlJyBpc24ndCBzZXQuCiAgIFFuOiBTaG91bGQgdGhlIEF1dGhQYXNzcGhyYXNlIGFsc28gYmUgdXNlZCBmb3IgcHJpdmFjeSBpZiBubyBvdGhlciB2YWx1ZSBpcyBhdmFpbGFibGU/CiAgIAoyMDAyLTAzLTA2IDA1OjQ1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBkb24ndCBzZW5kIHJlcXVlc3RzIGZvciBPSURzIHByZWNlZWRpbmcgdGhlIHN0YXJ0IG9mIGEgcmVnaW9uCiAgICAgICAodGhpcyBjYW4gbGVhZCB0byBsb29wcyBpZiBlLmcuIGEgc3ViYWdlbnQgaGFzIHJlZ2lzdGVyZWQgdHdvCiAgICAgICBhZGphY2VudCByb3dzKS4KICAgCjIwMDItMDMtMDYgMDU6MDcgIGpicG4KCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgICAgLSBpZ25vcmUgZXJyb3JzIGRvaW5nIHJtIC1yZiAvdG1wL3NubXAtdGVzdCogd2hlbiBtYWtpbmcgdGVzdGNsZWFuCiAgIAoyMDAyLTAzLTA2IDAyOjI2ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gdXNlIG1vcmUgZWZmaWNpZW50IGdldF90cmVlKCkgaW4gc3ByaW50X3JlYWxsb2NfdmFsdWUoKQogICAKMjAwMi0wMy0wNSAxODoyOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMTVzbm1wdjJjZ2V0bmV4dCAsIFQwMDFzbm1wdjFnZXQgLAogICBUMDAyc25tcHYxZ2V0bmV4dCAsIFQwMDNzbm1wdjFnZXRmYWlsICwgVDAxNHNubXB2MmNnZXQKICAgLCBUMDE2c25tcHYyY2dldGZhaWwgLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsICwKICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCAsIFQxMDBhZ2VudGh1cDoKCiAgIGZpeGVzIGZvciBuZXcgZm9yY2VkIC1jIGZsYWdzCiAgIAoyMDAyLTAzLTA1IDE4OjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIHJlbW92ZSBubyBsb25nZXIgYXBwcm9wcmlhdGUgY29tbWVudC4KICAgCjIwMDItMDMtMDUgMTg6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgZml4IGR1cGxpY2F0ZSBmcmVlIGJ5IGNsb25pbmcgdGhlIHBkdSBiZWZvcmUgc2VuZGluZyBpdCBvdXQgYWdhaW4KICAgKHRob3VnaHQgSSBoYWQgZG9uZSB0aGlzIG9uY2UgaW4gdGhlIHBhc3QgYWxyZWFkeSwgYnV0IEkgZ290IDEvMiBmdW5jdGlvbnMpLgogICAKMjAwMi0wMy0wNSAxODoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBUZW1wb3JhcnkgZml4IHRvIGZpeCBmb3IgYWdlbnR4IFNFVCByZXF1ZXN0cy4gIFRoaXMgcmV2ZXJzZXMgYQogICBwcmV2aW91cyBKb2huIGNoYW5nZSB3aGVyZSByZXNwb25zZXMgdG8gY2xlYW51cHMgYXJlIG5vdyBleHBlY3RlZAogICBhZ2Fpbi4gIFRoaXMgdG9vayBtZSBhIGdvb2QgMiBkYXlzIHRvIHRyYWNrIGRvd24sIHNpZ2guLi4KICAgCjIwMDItMDMtMDUgMTg6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIC0gYWRkIChhc2NpaSkgYWdlbnR4IHN0YXRlIGRpYWdyYW0KICAgCjIwMDItMDMtMDUgMTg6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gbXVsdGlwbGUgZnJlZSBidWcgZml4ZXMuCiAgIC0gaW1wcm92ZWQgZGVidWdnaW5nIHN0YXRlbWVudHMuCiAgIAoyMDAyLTAzLTA1IDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfcmVxdWVzdC5jICwgbWFzdGVyX3JlcXVlc3QuaDoKCiAgIHJlbW92ZWQgdW51c2VkIGZpbGVzCiAgIAoyMDAyLTAzLTA1IDEwOjMxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIG9vcHMsIGZpeCBiYWQgY3V0IGFuZCBwYXN0ZQogICAKMjAwMi0wMy0wNSAxMDoyNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSByZWludHJvZHVjZSBzY29wZSBwcm9jZXNzaW5nIChzZWUgUkZDIDI3NDEsIHAuIDY2LCBzZWN0aW9uIDcuMi4zLjIKICAgICAgIHBhcmFncmFwaCAyKTogIklmIHRoZSBzdWJhZ2VudCBjYW4ndCBsb2NhdGUgYW4gYXBwcm9wcmlhdGUKICAgICAgIHZhcmlhYmxlLCBfX3YubmFtZV9pc19zZXRfdG9fdGhlX3N0YXJ0aW5nX09JRF9fIFt0aGUgaW1wb3J0YW50CiAgICAgICBiaXRdIGFuZCB0aGUgVmFyQmluZCBpcyBzZXQgdG8gYGVuZE9mTWliVmlldyciCiAgIAoyMDAyLTAzLTA1IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgaW1wb3NlIG1heCBsZW5ndGggcmVzdHJpY3Rpb24gc3VwcGxpZWQgYnkgbWliIGZvciBjb25maWd1cmF0aW9uIG9wdGlvbnMuCiAgIAoyMDAyLTAzLTA1IDA4OjQ4ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYyAsIHNubXBfYWdlbnQuYyAsCiAgIGhlbHBlcnMvZGVidWdfaGFuZGxlci5jICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIHVzZSBuZXcgREVCVUdNU0dWQVIgbWFjcm8gaW4gYSBmZXcgcGxhY2VzCiAgIAoyMDAyLTAzLTA1IDA4OjQ1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgICAgLSBhZGQgREVCVUdNU0dWQVIgbWFjcm8gdG8gcHJpbnQgb3V0IGEgdmFyaWFibGUKICAgCjIwMDItMDMtMDUgMDg6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0gLCBTTk1QLnhzOgoKICAgcHJpbnRfdmFsdWUgZnVuY3Rpb24gdXBkYXRlcy4KICAgCjIwMDItMDMtMDUgMDg6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogdWNkRGVtb1B1YmxpYy5jIChWNC0yLXBhdGNoZXMuMiksCiAgIHVjZERlbW9QdWJsaWMuYzoKCiAgIEFkZCBtaXNzaW5nICJzdGFuZGFyZCIgaGVhZGVycywgYW5kIHR3ZWFrIGEgdHlwZSBzbGlnaHRseS4KICAgKEJhc2VkIG9uIHJlcXVlc3RzIGZyb20gR3JlZ29yeSBUb3RoKS4KICAgCjIwMDItMDMtMDUgMDg6MDQgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGdycnIsIGJvdGNoZWQgbGFzdCBmaXgKICAgCjIwMDItMDMtMDUgMDg6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIFNldCB0aGUgZGVmYXVsdCBjYWxsYmFjayBzZXNzaW9uIHZlcnNpb24gbnVtYmVyIHRvIHRoZSBnZW5lcmljIC0xCiAgIHZlcnNpb24gYWxsb3dpbmcgdGhlIHBkdSB0byBwYXNzZWQgd2l0aG91dCB2ZXJzaW9uIGNoZWNraW5nLgogICAKMjAwMi0wMy0wNSAwNzo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgbW92ZSBOVUxMIGNoZWNrIHRvICpiZWZvcmUqIHlvdSBhY3R1YWxseSB1c2UgdGhlIHBvaW50ZXIuCiAgIAoyMDAyLTAzLTA1IDA3OjU5ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBtYXJrIElOQ0xVU0lWRSByZXF1ZXN0cyBhcyBzdWNoCiAgIAoyMDAyLTAzLTA1IDA3OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIC0gdXNlIGEgZm9yIGxvb3AgaW5zdGVhZCBvZiBhIHdoaWxlIGxvb3AsIGp1c3QgYSBwcmVjYXV0aW9uIGZvciBmdXR1cmUgcHJvYmxlbXMuCiAgIAoyMDAyLTAzLTA1IDA3OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2NoZWNrX3BhcnNlKSBhbGxvdyBpbnRlcm5hbCBzZXQgdHJhbnNhY3Rpb25zIHRvIGJlIHBhc3NlZCB0bwogICAgIHRoZSBhZ2VudCwgc2luY2UgYWdlbnR4IHNlbmRzIHRoZW0uCiAgIAoyMDAyLTAzLTA1IDA3OjIxICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZG9uJ3QgYWRkIHRoZSAibW9kdWxlIElEIiB0byBPSURzIGlmIGl0IGlzIG51bWVyaWMgYmVjYXVzZSB3ZQogICAgICAgY291bGRuJ3QgbG9vayBpdCB1cCBwcm9wZXJseSAodG8gYXZvaWQgaG9ycmlibGUgbG9va2luZyBvdXRwdXQKICAgICAgIGxpa2UgdGhpczogIk9JRDogIy0xOjppc28uMi4zLjQuNS4iKQogICAKMjAwMi0wMy0wNSAwNzowNSAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gcmVtb3ZlIHJlZmVyZW5jZSB0byAyYyBpbiBlcnJvciBtZXNzYWdlIGZyb20gdmVyc2lvbiBwcm9tcHQKICAgCjIwMDItMDMtMDUgMDc6MDEgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgdGVzdHMKICAgCjIwMDItMDMtMDUgMDY6NTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gcmUtZW1waGFzaXMgYSBzdWdnZXN0aW9uIHRvIHN3aXRjaCB0byBhIHNlY3VyZSB2ZXJzaW9uIG9mIHRoZSBwcm90b2NvbC4KICAgLSBkZWxldGUgbm90aW9uIHRoYXQgdjMgd2l0aG91dCBhdXRoL3ByaXYgcHJvdmlkZXMgYmV0dGVyIHNlY3VyaXR5IChpdCBkb2Vzbid0KS4KICAgLSBEb24ndCBhY2NlcHQgdjJjIGFzIGFuIGFjY2VwdGVkIHZhbHVlLCBhcyBpdCdzIHVzZWQgYXMgYW4gaW50LgogICAgIC0gYnV0IGRvIGNoYW5nZSBoZWxwIG1lc3NhZ2VzLCBldGMsIHRvIHJlZmxlY3QgdGhhdCAyID0gdjJjLgogICAKMjAwMi0wMy0wNSAwNjo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIENhc3QgYSBjYWxsb2MgYXBwcm9wcmlhdGVseSAocmVxdWVzdGVkIGJ5IEdyZWdvcnkgVG90aCkKICAgCjIwMDItMDMtMDUgMDY6MjAgIGpicG4KCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSBmaXggdHlwbyBpbiBPQkpTIGRlZmluaXRpb24KICAgCjIwMDItMDMtMDUgMDY6MTggIGpicG4KCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAgIC0gY2xlYW4gdGFyZ2V0IGRlcGVuZHMgb24gJChPQkpTKSBhbmQgJChMT0JKUyksIHNvIGRlZmluZSB0aGVtCiAgIAoyMDAyLTAzLTA1IDAzOjUyICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBmaXggZGVmYXVsdCB2ZXJzaW9uIHRlc3RzIChzcGxpdHRpbmcgdGhlbSBvdmVyIHNldmVyYWwgbGluZXMKICAgICAgIGNvbmZ1c2VzIHNoIG9uIFNvbGFyaXMsIGF0IGxlYXN0KS4KICAgCiAgICAgLSBkaXNhbWJpZ3VhdGUgc29tZSBpbnN0YW5jZXMgb2YgInZlcnNpb24iIGluIGRlZmF1bHQgdmVyc2lvbgogICAgICAgcHJvbXB0IHRleHQuCiAgIAoyMDAyLTAzLTA1IDAyOjM0ICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBDb3JyZWN0bHkgZGV0ZWN0IHdoZW4gbm8gaW5pdGlhbCBkZWZhdWx0IHZlcnNpb24gaGFzIGJlZW4gc2V0LgogICBBY2NlcHQgJzJjJyBhcyB3ZWxsIGFzICcyJyBmb3IgYSBkZWZhdWx0IHZlcnNpb24gY2hvaWNlLgogICBGaXggdGhlIHRpdGxlIGZvciB0aGlzIHByb21wdCwgYW5kIHJld29yZCB0aGUgZGVzY3JpcHRpb24gdG8KICAgbWFrZSBpdCBhICpzbGlnaHRseSogbGVzcyBsZWFkaW5nIHF1ZXN0aW9uLCBtJ2x1ZC4KICAgCiAgIFFuOiBTaG91bGQgd2Ugc3VwcG9ydCBhICJubyBkZWZhdWx0IHZlcnNpb24iIG9wdGlvbiA/CiAgICAgKGhlbmNlIGFsbG93IHRoZSBhZG1pbiB0byBmb3JjZSB0aGUgZGVjaXNpb24gZG93biB0byB0aGUgdXNlcikKICAgCjIwMDItMDMtMDQgMTg6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIHVjZC1zbm1wIC0+IG5ldC1zbm1wIGNoYW5nZQogICAKMjAwMi0wMy0wNCAxODoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgKFRvIEpvaG4pOiBkbyBub3QgZnJlZSB0aGUgbXl2b2lkIHBvaW50ZXIgaW4gYSBoYW5kbGVyLiAgWW91IGNhbiBub3QKICAgYXNzdW1lIHRoYXQgaXQncyBhIGZyZWVhYmxlIHJlc291cmNlLiAgRm9yIGluc3RhbmNlLCB0aGUgYWdlbnR4IG1hc3RlcgogICBhZ2VudCB3YXMgdXNpbmcgaXQgdG8gc3RvcmUgdGhlIG1hc3RlciBzZXNzaW9uIHBvaW50ZXIgaW4gaXQgKHdoaWNoCiAgIHdvdWxkIGV4aXN0IGluIG11bHRpcGxlIHJlZ2lzdGVyZWQgbm9kZXMpLgogICAKMjAwMi0wMy0wNCAxNzoyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjNfYXBpLmggLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgdXNlIGEgY29uZmlndXJlIGdlbmVyYXRlZCB3cmFwcGVyIGhlYWRlciBmb3IgdjMgc2VjdXJpdHkgbW9kdWxlcy4KICAgCjIwMDItMDMtMDQgMTE6NTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIGFkZCBkbWFsbG9jLmggdG8gdGhlIHByb3BlciBwbGFjZS4KICAgCjIwMDItMDMtMDQgMTE6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIHN0cmluZyBjbGVhbiB1cHMuCiAgIAoyMDAyLTAzLTA0IDExOjUyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICwgYWNsb2NhbC5tNCAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXBsaWIvc25tcHYzLmM6CgogICBJbXBsZW1lbnQgYSBkZWZhdWx0IHZlcnNpb24gcHJvbXB0IGZvciBjb25maWd1cmUuCiAgICAtIChXZXMgZHVja3MgYXMgdGhpcyBpcyBjdXJyZW50bHkgc2V0IHRvICczJyB3aGljaCBoZSBtYXkgaGF2ZSB0bwogICAgICAgY2hhbmdlIGFzIGl0IGhhc24ndCBleGFjdGx5IGJlZW4gYWdyZWVkIHVwb24gYXMgdGhlIHByb3BlciBkZWZhdWx0IHlldCkuCiAgICAtIC0td2l0aC1kZWZhdWx0LXNubXAtdmVyc2lvbiBhbHNvIGNyZWF0ZWQuCiAgICAtIGNoYW5nZWQgaGFuZGxpbmcgb2YgZGVmYXVsdCBzdG9yZSAvIHNubXAuY29uZiB1c2FnZSBidXQgaW1wYWN0CiAgICAgIHNob3VsZCBiZSBsb3csIGhvcGVmdWxseS4KICAgCjIwMDItMDMtMDQgMTE6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGEgZmV3IGVycm9yIHN0cmluZ3Mgc2xpZ2h0bHkgaW1wcm92ZWQuICBXZSByZWFsbHkgbmVlZCB0byBjaGFuZ2UgdGhlCiAgIHdheSB0aGVzZSBhcmUgaGFuZGxlZCB0byBnZXQgYmV0dGVyIGltcHJvdmVtZW50LgogICAKMjAwMi0wMy0wNCAwNzo0OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIHNlcGFyYXRlIG91dCB0aGUgY2xlYW5pbmcgb2YgL3RtcCBmcm9tIHRoZSBtYWluIGNsZWFuaW5nIHRvIHByb3ZpZGUgaXQKICAgYXMgYSBzcGVjaWFsIHRhcmdldC4KICAgCjIwMDItMDMtMDQgMDc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLVdhbGwgZml4ZXMuCiAgIAoyMDAyLTAzLTA0IDA1OjMyICBqYnBuCgogICAqIG1hbi86IHNubXBidWxrZ2V0LjEuZGVmICwgc25tcGJ1bGt3YWxrLjEuZGVmICwKICAgc25tcGdldC4xLmRlZiAsIHNubXBnZXRuZXh0LjEuZGVmICwgc25tcHN0YXR1cy4xLmRlZgogICAsIHNubXB0ZXN0LjEuZGVmICwgc25tcHRyYXAuMS5kZWY6CgogICAgIC0gcmVtb3ZlIGZ1cnRoZXIgaW5zdGFuY2VzIG9mIHBvc2l0aW9uYWwgY29tbXVuaXR5IHN0cmluZyBwYXJhbWV0ZXIsCiAgICAgICBhZnRlciBQYXRyaWNrIFdlbGNoZQogICAKMjAwMi0wMy0wNCAwNToyNSAgamJwbgoKICAgKiBtYW4vOiBzbm1wZC5jb25mLjUuZGVmICwgc25tcHdhbGsuMS5kZWY6CgogICAgIC0gcGF0Y2hlcyBmcm9tIFBhdHJpY2sgV2VsY2hlCiAgIAoyMDAyLTAzLTA0IDAxOjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jIChWNC0yLXBhdGNoZXMuNiksIG1lbW9yeS5jOgoKICAgQ29ycmVjdCBkZWJ1ZyBvdXRwdXQgbWVzc2FnZSAodGhhbmtzIHRvIEplcm9lbiBSdWlncm9rKQogICAKMjAwMi0wMy0wMSAyMjo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBtYWtpbmcgdGhlIChzYW1lKSBkZWJ1Z2dpbmcgc3RhdGVtZW50IG1vcmUgdXNlZnVsLgogICAKMjAwMi0wMy0wMSAyMjo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBhZGQgbWlzc2luZyBuZXdsaW5lIHRvIGEgZGVidWdnaW5nIHN0YXRlbWVudC4KICAgCjIwMDItMDMtMDEgMTI6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBrZXl0b29scy5jICwgbWliLmMgLCBzbm1wX2FwaS5jICwKICAgc25tcF9jbGllbnQuYyAsIHNubXBfcGFyc2VfYXJncy5jICwgc25tcHYzLmM6CgogICBGaXJzdCBwYXNzIGF0IGEgZmV3IGJldHRlciBlcnJvciBtZXNzYWdlcy4KICAgCjIwMDItMDMtMDEgMTI6MDEgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBkb24ndCBpbnN0YWxsIGhlYWRlcnMgaGVyZS4KICAgCjIwMDItMDMtMDEgMDU6NDEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwgc25tcGxpYi9taWIuYzoKCiAgICAgLSBhZGQgc25wcmludF92YWx1ZSwgc25wcmludF92YXJpYWJsZSwgc25wcmludF9vYmppZAogICAKMjAwMi0wMi0yOCAwNjo1NCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF92YXJzLmMgLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jICwKICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCAsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQWRkIGJhY2sgdGhlICdzbm1wQ2FsbGJhY2snIGRvbWFpbiB1bmRlciBXaW5kb3dzLgogICAKMjAwMi0wMi0yNyAxMDowNCAgamJwbgoKICAgKiBhcHBzLzogc25tcGJ1bGtnZXQuYyAsIHNubXBidWxrd2Fsay5jICwgc25tcGdldC5jCiAgICwgc25tcGdldG5leHQuYyAsIHNubXBzZXQuYyAsIHNubXBzdGF0dXMuYwogICAsIHNubXB0YWJsZS5jICwgc25tcHRlc3QuYyAsIHNubXB0cmFuc2xhdGUuYwogICAsIHNubXB0cmFwLmMgLCBzbm1wdXNtLmMgLCBzbm1wd2Fsay5jOgoKICAgICAtIHRhcnQgdXAgdXNhZ2UgbWVzc2FnZXMsIG1ha2UgdGhlbSBtb3JlIGNvbnNpc3RlbnQgYW5kIGJyaW5nIGluIGxpbmUKICAgICAgIHdpdGggbWFudWFsIHBhZ2VzCiAgIAoyMDAyLTAyLTI3IDEwOjAzICBqYnBuCgogICAqIG1hbi86IHNubXBzZXQuMS5kZWYgLCBzbm1wdGFibGUuMS5kZWYgLCBzbm1wdHJhcC4xLmRlZgogICAsIHNubXB1c20uMS5kZWY6CgogICAgIC0gbWlub3IgZm9ybWF0dGluZyBjaGFuZ2VzCiAgIAoyMDAyLTAyLTI3IDEwOjAzICBqYnBuCgogICAqIHNubXBsaWIvOiBtaWIuYyAsIHBhcnNlLmMgLCBzbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSBkcm9wIGNvbW11bml0eSBwb3NpdGlvbmFsIHBhcmFtZXRlcgogICAKICAgICAtIHRhcnQgdXAgdXNhZ2UgbWVzc2FnZXMgdG8gYmUgbW9yZSBjb25zaXN0ZW50IGFuZCBpbiBsaW5lIHdpdGggbWFudWFsCiAgICAgICBwYWdlcwogICAKMjAwMi0wMi0yNyAwOTo0NyAgZHRzMTIKCiAgICogc25tcGxpYi86IHZhY20uYyAoVjQtMi1wYXRjaGVzLjQpLCB2YWNtLmM6CgogICBIYW5kbGUgdmlld3MgdGhhdCBzcGVjaWZ5IGEgZnVsbCBpbnN0YW5jZSBPSUQuCiAgIChTaW5jZSB0aGUgaW50ZXJuYWxseSBzdG9yZWQgT0lEIHByZXBlbmRzIHRoZSBsZW5ndGggYXMgd2VsbCwKICAgIHRoZSBhcHBhcmVudCBsZW5ndGggaXMgb25lIGdyZWF0ZXIgdGhhbiBpdCByZWFsbHkgaXMpCiAgIAoyMDAyLTAyLTI3IDA2OjUwICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gW0FERFJFU1NFU10gLT4gW0xJU1RFTklORyBBRERSRVNTRVNdIGluIHVzYWdlIG1lc3NhZ2UsIHRvIG1hdGNoCiAgICAgICBtYW51YWwgcGFnZS4KICAgCjIwMDItMDItMjcgMDY6MDkgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZHJvcCBvcHRpb25hbCBwb3NpdGlvbmFsIGNvbW11bml0eSBwYXJhbWV0ZXIgZnJvbSB0cmFwc2VzcwogICAgICAgZGVzY3JpcHRpb24uCiAgIAoyMDAyLTAyLTI3IDA1OjUxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsIHNubXBsaWIvbWliLmM6CgogICAgIC0gZHJvcCBzcHJpbnRfYmxhaCBmdW5jdGlvbnMKICAgCiAgICAgLSBubyBzbnByaW50X2JsYWggeWV0CiAgIAoyMDAyLTAyLTI3IDA1OjQzICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfYmxhaCBmdW5jdGlvbnMKICAgCjIwMDItMDItMjcgMDU6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF9ibGFoIGZ1bmN0aW9ucwogICAKICAgICAtIGRyb3AgYXJjaGFpYyBERUJVR1AgZnVuY3Rpb25zCiAgIAoyMDAyLTAyLTI3IDA1OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3RvcmFnZS5jICwgaHJfc3dydW4uYzoKCiAgIFVzZSB0aGUgbW9yZSBpbmZvcm1hdGl2ZSAnb3V0cHV0X2FwaS5oJyBoZWFkZXIgZmlsZSBuYW1lCiAgICAgKEkgbXVzdCBoYXZlIG1pc3NlZCB0aGVzZSBlYXJsaWVyKQogICAKMjAwMi0wMi0yNyAwNTozNSAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgICAgLSBkcm9wIGNvbW11bml0eSBwb3NpdGlvbmFsIHBhcmFtZXRlcgogICAKICAgICAtIHllcywgZm9yIG9uY2UgdGhlIGRvY3VtZW50YXRpb24gaGFzIGJlZW4gdXBkYXRlZCAqYmVmb3JlKiB0aGUKICAgY29kZSEKICAgCjIwMDItMDItMjcgMDU6MTIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgICAtIGRvbid0IHVzZSBvYnNvbGV0ZSBERUJVR1AgZnVuY3Rpb24KICAgCjIwMDItMDItMjcgMDU6MTEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc25tcF9hcGkuaCAsIHNubXBfZGVidWcuaCAsCiAgIHN5c3RlbS5oOgoKICAgICAtIGRyb3AgYXJjaGFpYyBERUJVR1AgZnVuY3Rpb25zCiAgIAoyMDAyLTAyLTI3IDA1OjEwICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oOgoKICAgICAtIGRvbid0IHVzZSBvYnNvbGV0ZSBERUJVR1BMIGZ1bmN0aW9uCiAgIAoyMDAyLTAyLTI3IDA0OjMyICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmMgLCBhcHBzL3NubXBkZWx0YS5jICwKICAgYXBwcy9zbm1wdGFibGUuYyAsIGFwcHMvc25tcHVzbS5jICwgYXBwcy9zbm1wd2Fsay5jCiAgICwgYWdlbnQvYWdlbnRfaW5kZXguYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X2JsYWggZnVuY3Rpb25zCiAgIAoyMDAyLTAyLTI3IDAyOjI2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X3ZhcmlhYmxlCiAgIAoyMDAyLTAyLTI3IDAyOjA4ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X3ZhcmlhYmxlLCBubywgSSBNRUFOIGl0IHRoaXMgdGltZQogICAKMjAwMi0wMi0yNyAwMjowNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF92YXJpYWJsZQogICAKMjAwMi0wMi0yNiAxMjo0NiAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNsZWFyIG5ldyBtZW1vcnkgYWZ0ZXIgcmVhbGxvYygpIHNpbmNlIHJlYWxsb2MgZG9lc24ndCBkbyBpdC4KICAgCjIwMDItMDItMjYgMTI6MzAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYWRkIFVOU0lHTkVEMzIKICAgCjIwMDItMDItMjYgMDg6NTUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMgLCBrZXJuZWxfc3Vub3M1LmggLAogICBtaWJJSS9hdC5jICwgbWliSUkvaWNtcC5jICwgbWliSUkvaW50ZXJmYWNlcy5jICwKICAgbWliSUkvaXAuYyAsIG1pYklJL3RjcC5jICwgbWliSUkvdWRwLmMgLAogICBtaWJJSS92YXJfcm91dGUuYzoKCiAgICAgLSBjaGFuZ2UgY2FjaGUgaW1wbGVtZW50YXRpb24gYWZ0ZXIgc29tZSBpbnRlcmVzdGluZyBwcm9maWxpbmcgKHNlZQogICAgICAgbGVuZ3RoeSBuZXcgY29tbWVudCBpbiBrZXJuZWxfc3Vub3M1LmMpCiAgIAoyMDAyLTAyLTI2IDA4OjEzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsIHNubXBsaWIvc25tcC10Yy5jICwKICAgc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBSZW1vdmUgYXNzb3J0ZWQgZXh0cmFuZW91cyBeTSdzCiAgIAoyMDAyLTAyLTI2IDA3OjE0ICBkdHMxMgoKICAgKiBSRUFETUUud2luMzI6CgogICBBIHF1aWNrIGd1aWRlIHRvIGluc3RhbGxpbmcgdGhlIENvcmUgUGxhdGZvcm0gU0RLLCBuZWVkZWQgZm9yIHRoZSBXaW5kb3dzIGFnZW50LgogICAKMjAwMi0wMi0yNiAwNzowMyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvc25tcF92YXJzLmMgLAogICBhZ2VudC9zbm1wZC5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICwgYXBwcy9zbm1wdHJhcGRfbG9nLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmggLCBzbm1wbGliL21pYi5jICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXBsaWIvc25tcHYzLmMgLAogICBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIEFzc29ydGVkIG1pbm9yIHR3ZWFrcyB0byBlbnN1cmUgdGhhdCB0aGUgcHJvamVjdCBidWlsZHMgdW5kZXIgVmlzdWFsIEMrKy4KICAgTW9zdGx5IGJlY2F1c2UgVkMrKyBpcyBmdXNzeSBhYm91dCBzb3J0LW9mLWNvbXBhdGlibGUgZGF0YSB0eXBlcwogICAgIChlLmcuIHNpZ25lZCB2cyB1bnNpZ25lZCBpbnRlZ2VycykuCiAgIAoyMDAyLTAyLTI2IDA3OjAwICBkdHMxMgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfaW5pdHMuaCAsIHdpbjMyLmRzdyAsIHdpbjMyLm9wdAogICAsIGxpYmFnZW50L2xpYmFnZW50LmRzcCAsIGxpYnNubXAvbGlic25tcC5kc3AgLAogICBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwICwgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwICwKICAgc25tcGQvc25tcGQuZHNwICwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICBSZW5hbWUgJ2xpYnVjZG1pYnMnIHRvIHJlZmxlY3QgdGhlIGNoYW5nZSBvZiBwcm9qZWN0IG5hbWUsCiAgIGFuZCBhc3NvcnRlZCB0d2Vha3Mgc28gdGhhdCB0aGUgZnVsbCBwcm9qZWN0IGJ1aWxkcyB1bmRlciBWaXN1YWwgQysrLgogICAgIChOLkI6IFRoZSBhZ2VudCByZXF1aXJlcyAiTWljcm9zb2Z0IFBsYXRmb3JtIENvcmUgU0RLIiBpbiBvcmRlcgogICAgICAgdG8gYnVpbGQgdGhlICduZXRzbm1wbWlicycgcHJvamVjdCkKICAgCjIwMDItMDItMjYgMDY6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICByZW1vdmUgZHVwbGljYXRlIHZhcmlhYmxlIGluIGEgd2FybmluZwogICAKMjAwMi0wMi0yNiAwNjo0MCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgICAgLSBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oCiAgIAoyMDAyLTAyLTI1IDIxOjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbW9yZSBpbnN0YWxsIGNoYW5nZXMKICAgCjIwMDItMDItMjUgMjE6MDggIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtZW50aW9uIGluc3RhbGxpbmcgREJEOjpGaWxlLgogICAKMjAwMi0wMi0yNSAyMDozOCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG9uZSB0b28gbWFueSAnMCdzIGluIGEgdXJsLgogICAKMjAwMi0wMi0yNSAyMDozMyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIHJld29yZC4KICAgCjIwMDItMDItMjUgMjA6MzAgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICBtb3ZlIHdhcm5pbmcgb3V0c2lkZSBzZWNvbmRhcnkgd2FybmluZyBhdWdtZW50YXRpb24gbG9vcC4KICAgCjIwMDItMDItMjUgMjA6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICB1cGRhdGUgU1FMOjpTdGF0ZW1lbnQgbW9kdWxlLgogICAKMjAwMi0wMi0yNSAxNjoyNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGFkZCBmaW5kX3RhYmxlX2FycmF5X2hhbmRsZXIoKTsgcmVtb3ZlIGRlYnVnZ2luZyBjb2RlL2NvbW1lbnRzOwogICBtYWtlIHN1cmUgd2UgaGF2ZSB0aGUgcmlnaHQgaGFuZGxlciBiZWZvcmUgdXNpbmcgdGhlIHZvaWQgcG9pbnRlcjsKICAgcmVtb3ZlIF5NIGNoYXJhY3RlcnMKICAgCjIwMDItMDItMjUgMTE6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGF0YV9saXN0LmMgLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0Lmg6CgogICAyIG5ldyBmdW5jdGlvbnMuCiAgIAoyMDAyLTAyLTI1IDExOjE4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHNldCBzZWN1cml0eSBtb2RlbAogICAKMjAwMi0wMi0yNSAwODoxNSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jICwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLCB3aW4zMi93aW4zMi5kc3c6CgogICBDb250aW51aW5nIGltcHJvdmVtZW50cyB0byBjb21waWxhdGlvbiBvZiB0aGUgbGF0ZXN0IGNvZGUgdW5kZXIgVmlzdWFsIEMrKy4KICAgVGhlICdsaWJoZWxwZXJzJyBwcm9qZWN0IG5vdyBjb21waWxlcywgYW5kIHRoaXMgYWxzbyBhZGRyZXNzZXMgYSBudW1iZXIKICAgb2Ygd2FybmluZ3MgYW5kIGVycm9ycyBpbiB0aGUgbGliYWdlbnQgYW5kIGxpYnVjZG1pYnMgcHJvamVjdHMuCiAgICAgQnV0IHRoZXNlIHR3byBzdGlsbCBmYWlsIG9uICdPSURfTEVOR1RIJyBhbmQgJ2lwaGxwYXBpLmgnCiAgIAoyMDAyLTAyLTI1IDA3OjAwICBkdHMxMgoKICAgKiB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgUHJvdmlkZSBhIHBsYXVzaWJsZSBtb2R1bGUgY29uZmlndXJhdGlvbiBsaXN0IGZvciB0aGUgV2luZG93cyBhZ2VudC4KICAgCjIwMDItMDItMjUgMDY6MDQgIGpicG4KCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgICAtIHJlc29sdmUgY29uZmxpY3RpbmcgU1lOVEFYZXMgZm9yIG5zVHJhbnNhY3Rpb25Nb2RlCiAgIAogICAgIC0gYWRkIHJhbmdlIGZvciBpbmRleCBuc1RyYW5zYWN0aW9uSUQKICAgCjIwMDItMDItMjUgMDM6MjMgIGR0czEyCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLmRzcCAsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIEVuc3VyZSB0aGUgbWFpbiBsaWJyYXJ5IGNvbXBpbGVzIGFuZCB3b3JrcyB1bmRlciBXaW5kb3dzLgogICAKMjAwMi0wMi0yNSAwMzoxOSAgZHRzMTIKCiAgICogYXBwcy86IG5vdGlmaWNhdGlvbl9sb2cuaCAsIHNubXB0cmFwZC5jOgoKICAgRW5zdXJlIHNubXB0cmFwZCBjb21waWxlcyB1bmRlciBXaW5kb3dzLgogICAKMjAwMi0wMi0yNSAwMzowOSAgZHRzMTIKCiAgICogc25tcGxpYi86IG9pZF9hcnJheS5jICwgb2lkX3N0YXNoLmMgLCBzbm1wLXRjLmMgLAogICB1Y2RfY29tcGF0LmM6CgogICBNaW5vciB0d2Vha3MgdG8ga2VlcCBWaXN1YWwgQysrIGhhcHB5LgogICAKMjAwMi0wMi0yNSAwMjo1NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmg6CgogICBXcmFwIHdpdGggImV4dGVybiBDIgogICAKMjAwMi0wMi0yNSAwMjo1NiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaDoKCiAgIFBhbmRlciB0byBDUFAncyBpbmNyZWRpYmx5IGZ1c3N5IG5hdHVyZSwgYW5kIHByb3ZpZGUgdGhlIGNvcnJlY3QgaGVhZGVyIGZpbGUgbmFtZS4KICAgCjIwMDItMDItMjUgMDE6MjEgIGR0czEyCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wZC5jOgoKICAgU3BlY2lmeSB0aGUgY29ycmVjdCBkZWJ1ZyB0b2tlbiBmb3IgZGlzcGxheWluZyB0aGUgbGlzdCBvZiBtb2R1bGVzCiAgIChzcG90dGVkIGJ5IEJyaWFuIFNoYXZlcikKICAgCjIwMDItMDItMjIgMTA6NTYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgc3VwcG9ydCBAZm9yZWFjaCAkdmFyMSAkdmFyMiBlbnVtc0AKICAgCjIwMDItMDItMjIgMTA6NTYgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIHJlbW92ZSB0cmFpbGluZyA7J3MgZnJvbSBzcWwgc3RhdGVtZW50cy4KICAgCjIwMDItMDItMjIgMTA6NTUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oICwgc25tcGxpYi90b29scy5jOgoKICAgZGVmaW5lIG5ldHNubXBfc3RyZHVwX2FuZF9udWxsCiAgIAoyMDAyLTAyLTIyIDEwOjUzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBpbmNsdWRlIHV0aWxpdGllcy4KICAgCjIwMDItMDItMjIgMTA6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIC0gZG9uJ3QgbG9vcCBhZ2FpbiBmb3Igc2Vjb25kYXJ5IFNFVCBtb2RlcyBhbmQgY2FjaGUgaW5mb3JtYXRpb24gaW5zdGVhZC4KICAgLSB2YXJpb3VzIGZpeGVzLgogICAKMjAwMi0wMi0yMiAxMDo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBpbnN0YWxsIGRpcmVjdG9yaWVzIGZvciBoZWFkZXJzCiAgIAoyMDAyLTAyLTIyIDEwOjQ5ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgLS1jb21waWxlLXN1YmFnZW50IGZvciBhdXRvbWF0dGVkIHN1YmFnZW50IGNvbXBpbGF0aW9uIGZyb20KICAgbWlibW9kdWxlIC5jIGZpbGVzIDstKQogICAKMjAwMi0wMi0yMiAwOToyNyAgZHRzMTIKCiAgICogc25tcGxpYi86IE1TRzAwMDAxLmJpbiwgd2luc2VydmljZS5tYyAoVjQtMi1wYXRjaGVzLlsxLDFdKSwKICAgTVNHMDAwMDEuYmluICwgd2luc2VydmljZS5tYzoKCiAgIEFkZCBtaXNzaW5nIGZpbGVzIGZvciBXaW5kb3dzIHNlcnZpY2Ugb3BlcmF0aW9uLgogICAKMjAwMi0wMi0yMiAwODo1NSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEp1c3QgY2xvc2UgdGhlIG1haW4gc2Vzc2lvbiB3aGVuIHNodXR0aW5nIGRvd24gdW5kZXIgV2luZG93cywKICAgbm90IGV2ZXJ5dGhpbmcgKHNvIHRoYXQgaXQgY2FuIHN0aWxsIGdlbmVyYXRlIHRoZSBzaHV0ZG93biB0cmFwKS4KICAgCjIwMDItMDItMjIgMDg6NDAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCAsIHNubXBsaWIvYXNuMS5jICwKICAgc25tcGxpYi9taWIuYyAsIHNubXBsaWIvcGFyc2UuYyAsIHNubXBsaWIvc25tcF9hcGkuYwogICAsIHNubXBsaWIvc25tcF9lbnVtLmMgLCBzbm1wbGliL3NubXB2My5jOgoKICAgVHdlYWtzIHJlcXVpcmVkIHRvIGdldCB0aGUgbGlicmFyeSBjb21waWxpbmcgdW5kZXIgV2luZG93cyBWQysrCiAgIAoyMDAyLTAyLTIyIDA4OjM3ICBkdHMxMgoKICAgKiB3aW4zMi86IHNubXBzbV9pbml0LmggLAogICBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwICwKICAgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggLCBsaWJhZ2VudC9saWJhZ2VudC5kc3AgLAogICBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwICwgbGlic25tcC9saWJzbm1wLmRzcCAsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCAsIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AKICAgLCBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AgLAogICBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCAsIHNubXBkL3NubXBkLmRzcCAsCiAgIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwICwgc25tcGRmL3NubXBkZi5kc3AgLAogICBzbm1wZ2V0L3NubXBnZXQuZHNwICwgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwICwKICAgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwICwgc25tcHNldC9zbm1wc2V0LmRzcCAsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AgLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCAsCiAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCAsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AKICAgLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AgLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcAogICAsIHNubXB1c20vc25tcHVzbS5kc3AgLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AgLAogICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBQcm92aWRlIFdpbmRvd3Mtc3BlY2lmaWMgdmVyc2lvbnMgb2YgYXV0b21hdGljYWxseS1nZW5lcmF0ZWQgaGVhZGVyIGZpbGVzLAogICBhbmQgYWRkIHRoZSBuZXcgaW5jbHVkZSBzdHJ1Y3R1cmUgdG8gdGhlIHByb2plY3QgZmlsZXMuCiAgIAoyMDAyLTAyLTIyIDA3OjI0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaDoKCiAgIERlZmluZSBzdGFuZGFyZCBPSUQgbGVuZ3RocyBoZXJlICh3aGVyZSB0aGV5J3JlIGF2YWlsYWJsZSB0byBhbnkKICAgZmlsZSB3YW50aW5nIHRvIGFjY2VzcyB0aGUgT0lEIHN0cnVjdHVyZXMpCiAgIAoyMDAyLTAyLTIyIDAzOjI0ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9wYXJzZV9hcmdzLmMgLCBzbm1wdjMuYzoKCiAgIFN1cHBvcnQgIi4uLi4gLTN1IHtzZWNOYW1lfSAuLi4uIiBzeW50YXgKICAgKGluIHRoZSBub3JtYWwgZ2V0b3B0IHN0eWxlIC0gaS5lLiBubyBuZWVkIGZvciBzdXJyb3VuZGluZyBxdW90ZXMpCiAgIAogICBJdCBzaG91bGQgbm93IGJlIHBvc3NpYmxlIHRvIHN3aXRjaCB0byB0aGlzIGFzIHRoZSByZWNvbW1lbmRlZCBmb3JtCiAgIGZvciBTTk1QdjMgb3B0aW9ucyAtIGlmIHRoYXQncyB3aGF0IHdlIHdhbnQgdG8gZG8uCiAgICAgUW46ICBEbyB3ZSB3YW50IHRvPwogICAKMjAwMi0wMi0yMSAwODozOSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIFN1cHBvcnQgIi0zdSB7c2VjTmFtZX0iIHN5bnRheCAoKndpdGgqIHRoZSBxdW90ZXMsIHVuZm9ydHVuYXRlbHkpLgogICBOb3cgY29tZXMgdGhlIGZ1biBiaXQuLi4uLgogICAKMjAwMi0wMi0yMSAwNzo1NCAgZHRzMTIKCiAgICogd2luMzIvc25tcGQvc25tcGQuZHNwOgoKICAgRml4IGJvZ3VzIHN0cnVjdHVyZSBjb21tZW50cyBpbiB0aGUgc25tcGQgcHJvamVjdCBmaWxlLgogICAKMjAwMi0wMi0yMSAwNzozMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC86IG5vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAgIC0gZHJvcCBpbmxpbmUgKG1vcmUgdHJvdWJsZSB0aGFuIGl0IGlzIHdvcnRoKQogICAKMjAwMi0wMi0yMSAwNTowMCAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfcGFyc2VfYXJncy5jICwgc25tcHYzLmM6CgogICBGaXJzdCBwYXNzIGF0IGFuIFNOTVB2MyAiY29tYmluZWQtb3B0aW9uIiBjb21tYW5kLWxpbmUgZmxhZyAoLTN4KS4KICAgKEluICphZGRpdGlvbiogdG8gdGhlIGN1cnJlbnQgY29tbWFuZC1saW5lIGZsYWdzLCBJIGhhc3RlbiB0byBhZGQhKQogICAKICAgU3VwcG9ydHMgICIuLi4gLTN1e3NlY05hbWV9IC4uLiIgYW5kICIuLi4gLTN1PXtzZWNOYW1lfSAuLi4iIHN5bnRheCwKICAgYnV0IG5vdCB0aGUgc2VwYXJhdGUgIi4uLiAtM3Uge3NlY05hbWV9IC4uLiIgc3R5bGUuCiAgIAogICBJIGhhdmVuJ3QgdG91Y2hlZCB0aGUgZG9jdW1lbnRhdGlvbiBvciB1c2FnZSBtZXNzYWdlIHRvIG1lbnRpb24gdGhpcy4KICAgCjIwMDItMDItMjAgMTg6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIHVzZSBmb3IgaW5zdGVhZCBvZiBjb250aW51ZSBmb3IgbG9vcHMuCiAgIAoyMDAyLTAyLTIwIDEzOjQyICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzICwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsCiAgIGFnZW50L3NubXBkLmMgLCBhcHBzL3NubXB0cmFwZC5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgLSBBZGQgYSAtLXF1aXQgb3B0aW9uIChhbmQgYSBjb25maWd1cmF0aW9uIHRva2VuKSBzbyB0aGF0IHlvdSBjYW4gbm93CiAgICAgY3JlYXRlIG5ldyB1c2VycyBieSBzaW1wbHkgY2FsbGluZyBzbm1wZCBhczoKICAgICAgIHNubXBkIC0tY3JlYXRlVXNlcj0ibXl1c2VyIE1ENSBteXBhc3N3b3JkIiAtLXF1aXQKICAgLSBDaGFuZ2UgUkVBRE1FLnNubXB2MyBkb2N1bWVudGF0aW9uIHRvIG1ha2UgdXNlIG9mIHRoaXMgZmVhdHVyZS4KICAgCjIwMDItMDItMjAgMDY6MTYgIGpicG4KCiAgICogYXBwcy9NYWtlZmlsZS5pbiAsIGFwcHMvc25tcHRyYXBkLmMgLCBjb25maWd1cmUKICAgLCBjb25maWd1cmUuaW4gLCBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gYWRkIGxpYndyYXAgc3VwcG9ydCB0byBzbm1wdHJhcGQgKHVudGVzdGVkKQogICAKICAgICAtIG1pbm9yIGNoYW5nZXMgdG8gc25tcGQgbGlid3JhcCBzdXBwb3J0CiAgIAogICAgIC0gY29uZmlndXJlIGZpeGVzIGZvciBsaWJ3cmFwCiAgIAoyMDAyLTAyLTIwIDAzOjA3ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHVzZSBjYWxsb2MgaW5zdGVhZCBvZiBtYWxsb2MgdG8gbWFrZSBzdXJlIGJ1ZmZlciBpcyBpbml0aWFsbHkKICAgICAgIHplcm8tdGVybWluYXRlZCAoaW4gY2FzZSBvZiAwIHZhcmJpbmRzKS4gIEJ1ZyAjNTE4NzAwLCBub3RlZCBieQogICAgICAgQW5kcmVhcyBIYXJ0bWFubi4KICAgCjIwMDItMDItMjAgMDM6MDYgIGpicG4KCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgICAgLSBpbml0aWFsaXNlIHNvbWUgYnVmZmVycywgdG8gYXZvaWQgZ2FyYmFnZSBwcmludGluZyBwcm9ibGVtcywgYXMKICAgICAgIG5vdGVkIGJ5IEFub255bW91cyBpbiBidWcgIzUyMDIyMC4KICAgCjIwMDItMDItMjAgMDM6MDMgIGR0czEyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBDbGVhbiB1cCB0aGUgb2JqZWN0IGZpbGVzIGFzIHdlbGwKICAgCjIwMDItMDItMjAgMDE6NDEgIGR0czEyCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgSWdub3JlIHRoZSBuZXcgY3JvcCBvZiBnZW5lcmF0ZWQgbWFuIHBhZ2VzLgogICAKMjAwMi0wMi0yMCAwMTozNyAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgU3VwcGx5IG1pc3NpbmcgZG91YmxlLXF1b3RlICAob29wcykKICAgCjIwMDItMDItMTkgMDQ6MDEgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgSW5pdGlhbGlzZSB0aGUgbGlicmFyeSBpbnRlcm5hbHMgKmJlZm9yZSogcGFyc2luZyB0aGUgY29tbWFuZCBsaW5lLAogICBzbyB0aGF0IGRlZmF1bHRzIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGNvbW1hbmQgbGluZSBvcHRpb25zLgogICAgIFFuOiAgU2hvdWxkICdfaW5pdF9zbm1wJyBiZSBpbnZva2VkIGJ5ICdzbm1wX3BhcnNlX2FyZ3MnIGl0c2VsZj8KICAgCjIwMDItMDItMTkgMDM6NTkgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBNYWtlIHN1cmUgdGhhdCBtdWx0aXBsZSBvdXRwdXQgZm9ybWF0IGZsYWdzIHdvcmsgaW4gYSBjb25zaXN0ZW50IG1hbm5lci4KICAgKGkuZS4gdGhlIGxhc3Qgb25lIGlzIHVzZWQsIHJhdGhlciB0aGFuIHJlbHlpbmcgb24gaW50ZXJuYWwgb3JkZXJpbmcpLgogICAKMjAwMi0wMi0xOCAyMTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0ZXN0ZGVsYXllZC5jICwgdGVzdGhhbmRsZXIuYzoKCiAgIGluY2x1ZGUgc3RkbGliLmgKICAgCjIwMDItMDItMTggMjE6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgZml4IGluY2x1ZGVzCiAgIAoyMDAyLTAyLTE4IDIxOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICAtIG1ha2UgY2FwYWJpbGl0eSB0byBjcmVhdGUgZGF0YSBjb250ZXh0cyBmcm9tIGEgbG9vcCBjb250ZXh0IChsZXNzCiAgICAgbWFsbG9jcyB3aGVuIG1hbGxvY3MgYXJlbid0IG90aGVyd2lzZSBhdm9pZGFibGUpLgogICAtIGRvbid0IGRvdWJsZSBmcmVlIHRoZSBkYXRhIGNvbnRleHQgcG9pbnRlci4KICAgCjIwMDItMDItMTggMjE6NTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIGluY2x1ZGUgYWxsIGFnZW50IGhlbHBlcnMuCiAgIAoyMDAyLTAyLTE4IDIxOjQ5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmg6CgogICBwcm90ZWN0IGluY2x1ZGUgZnJvbSBkb3VibGUgaW5jbHVkZQogICAKMjAwMi0wMi0xOCAwODozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgZml4IGluY2x1ZGUgcGF0aHMKICAgCjIwMDItMDItMTggMDI6MzUgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluICwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIFR3ZWFrIHRoZSBsaXN0IG9mIGhlYWRlciBmaWxlcyB0byBiZSBpbnN0YWxsZWQgKHRoYW5rcyB0byBDaHJpc3RvcGggTWFtbWl0enNjaCkKICAgCjIwMDItMDItMTggMDI6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zdG9yYWdlLmMgKFY0LTItcGF0Y2hlcy43KSwgaHJfc3RvcmFnZS5jOgoKICAgUmVtb3ZlIGEgY291cGxlIG9mIHVuaGVscGZ1bCBPU0YgZGVmaW5pdGlvbnMgKHRoYW5rcyB0byBKZXJvZW4gUnVpZ3JvaykKICAgCjIwMDItMDItMTggMDA6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMgKFY0LTItcGF0Y2hlcy4zKSwgYXNuMS5jOgoKICAgZG9uJ3QgYnVpbGQgb2lkJ3Mgd2l0aCA+MTI4IGxlbmd0aCBzdWJpZHMuICAoc2VlIGJ1ZyAjNTE4ODU1KQogICAKMjAwMi0wMi0xNiAyMzoxOCAgaGFyZGFrZXIKCiAgICogbWlicy86IE5FVC1TTk1QLU1JQi50eHQgLCBORVQtU05NUC1NT05JVE9SLU1JQi50eHQgLAogICBORVQtU05NUC1TWVNURU0tTUlCLnR4dCAsIE5FVC1TTk1QLVRDLnR4dDoKCiAgIHdoaXRlIHNwYWNlIGNsZWFuIHVwLiAgKEFHRU5ULU1JQiBub3QgY2hlY2tlZCBpbiBkdWUgdG8gb3RoZXIKICAgaW5jb21wbGV0ZSBjaGFuZ2VzKS4KICAgCjIwMDItMDItMTYgMDA6MTcgIGhhcmRha2VyCgogICAqIE5FV1MgLCBhZ2VudC9zbm1wZC5jICwgYXBwcy9zbm1wdHJhcGQuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCAsIHNubXBsaWIvcmVhZF9jb25maWcuYwogICAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIGZpbmlzaCBpbXBsZW1lbnRpbmcgc25tcF9jb25maWcoIm15IGNvbmZpZyBsaW5lIikKICAgICAtIHdhcyBkb25lIGJlZm9yZSwgYnV0IHByZXZpb3VzbHkgaGFkIHRvIGJlIGNhbGxlZCBvbmx5IGFmdGVyCiAgICAgICBjb25maWd1cmF0aW9uIGZpbGVzIGhhZCBiZWVuIHJlYWQuICBOb3cgY2FuIGJlIGNhbGxlZCBhdCBhbnkgdGltZS4KICAgLSBtYWtlIGFsbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXZhaWxhYmxlIGFzIC0tbG9uZ29wdHMgY29tbWFuZCBsaW5lIG9wdGlvbnMuCiAgICAgLSAtLXNvbWV0aGluZz12YWx1ZSAtPiAic29tZXRoaW5nIHZhbHVlIgogICAgIC0gLS1zb21ldGhpbmcgICAgICAgLT4gInNvbWV0aGluZyAxIiAod29ya3MgZm9yIHNldHRpbmcgYm9vbGVhbnMgdG8gdHJ1ZSkKICAgCjIwMDItMDItMTYgMDA6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBtaWJfbW9kdWxlX2NvbmZpZy5oCiAgIAoyMDAyLTAyLTE2IDAwOjAxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBmaXggcnBtIGZvciA0LjAuMyBhbmQgYWJvdmUgKG9yIHdoZW5ldmVyIGl0IHdhcyB0aGF0IHdlIG5vdyBuZWVkIGxpYnJwbWRiKQogICAKMjAwMi0wMi0xNiAwMDowMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBNYWtlZmlsZS5ydWxlczoKCiAgIGZpeCBuZXQtc25tcC1jb25maWcgaW5zdGFsbC9jbGVhbi9ldGMuCiAgIAoyMDAyLTAyLTE1IDIyOjM0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIE1ha2VmaWxlLnJ1bGVzOgoKICAgaW5zdGFsbCBhbGwgc3lzdGVtIGFuZCBtYWNoaW5lIGZpbGVzLCBzaW5jZSB0aGV5IGluY2x1ZGUgZWFjaCBvdGhlcgogICAKMjAwMi0wMi0xNSAwOToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQgLCBtaWJzL05FVC1TTk1QLU1JQi50eHQgLAogICBtaWJzL05FVC1TTk1QLU1PTklUT1ItTUlCLnR4dCAsIG1pYnMvTkVULVNOTVAtU1lTVEVNLU1JQi50eHQKICAgLCBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIFNrZWxldG9uIGZyYW1ld29yayBmb3IgdGhlIE5ldC1TTk1QIGVudGVycHJpc2UgdHJlZS4KICAgKGluY29ycG9yYXRpbmcgdGhlIGluaXRpYWwgJ25zVHJhbnNhY3Rpb25UYWJsZScsIGJ1dCBub3RoaW5nIGVsc2UgYXMgeWV0KQogICAKMjAwMi0wMi0xNSAwOToxMCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYyAsIGFwcHMvc25tcHRyYW5zbGF0ZS5jICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIFJlbW92ZSBzdXBwb3J0IGZvciBkZXByZWNhdGVkIGNvbW1hbmQtbGluZSBvcHRpb25zLgogICAKMjAwMi0wMi0xNSAwNzoyOCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCAsIHNubXBsaWIvd2luc2VydmljZS5jCiAgICwgYWdlbnQvc25tcGQuYyAsIHNubXBsaWIvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL3dpbnNlcnZpY2UucmMgLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3A6CgogICBTdXBwb3J0IGZvciBydW5uaW5nIGFzIGEgV2luZG93cyBzZXJ2aWNlLgogICAoU3VwcGxpZWQgYnkgUmFqdSBLcmlzaG5hcHBhICYgTGF0aHUgUHJhYmh1KQogICAKMjAwMi0wMi0xNSAwNzoyNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgU3Rva2UgV2VzJyBzZW5zZSBvZiBwYXJhbm9pYSBieSBjb25jZWRpbmcgd2l0aG91dCBjb21tZW50LgogICAgICAgKFdoYXQgbWlnaHQgU2hpZWxkIGJlIHBsb3R0aW5nIG5vdy4uLi4uLikKICAgCjIwMDItMDItMTUgMDc6MTkgIGpicG4KCiAgICogbWFuL3NubXB1c20uMS5kZWY6CgogICAgIC0gZml4IHRpbnkgZm9ybWF0dGluZyBlcnJvcgogICAKMjAwMi0wMi0xNSAwNzoxNyAgZHRzMTIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgTk9USUZJQ0FUSU9OLUxPRy1NSUIgKHNpbmNlIGl0J3Mgb25lIG9mIHRoZSBkZWZhdWx0IGxvYWQgbGlzdCEpCiAgIAoyMDAyLTAyLTE1IDA2OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuaDoKCiAgIGZpbGUgd2luc2VydmljZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDItMDItMTUgMDY6NDcgIGR0czEyCgogICAqIHNubXBsaWIvd2luc2VydmljZS5yYzoKCiAgIGZpbGUgd2luc2VydmljZS5yYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAyLTAyLTE1IDA2OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIGZpbGUgd2luc2VydmljZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDItMDItMTUgMDY6MDggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIEluY2x1ZGUgdGhlIDxzeXMvdGltZS5oPiBjYXNjYWRlLCB0byBwaWNrIHVwIHRoZSBkZWZpbml0aW9uIG9mICd0aW1ldmFsJwogICAKMjAwMi0wMi0xNSAwNDoyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIG1pbm9yIGNoYW5nZSB0byBicmluZyB1c2FnZSBtZXNzYWdlIGluIGxpbmUgd2l0aCBtYW5wYWdlCiAgIAoyMDAyLTAyLTE1IDAzOjI5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgQ2F0Y2ggdXNlIG9mIHRoZSB0cmFuc3BvcnQgYW5kIHBvcnQgb3B0aW9ucywgYW5kIGlzc3VlIGFuIGFwcHJvcHJpYXRlCiAgIGVycm9yIG1lc3NhZ2UsIGRlc2NyaWJpbmcgdXNlIG9mIHRoZSA8aG9zdG5hbWU+IHBhcmFtZXRlciBpbnN0ZWFkLgogICAKMjAwMi0wMi0xNSAwMzoxMSAgZHRzMTIKCiAgICogc25tcGxpYi86IG1pYi5jICwgc25tcF9hcGkuYzoKCiAgIFNldCB0aGUgZGVmYXVsdCBvdXRwdXQgZm9ybWF0ICpiZWZvcmUqIHByb2Nlc3NpbmcgY29tbWFuZCBsaW5lIG9wdGlvbnMsCiAgIHJhdGhlciB0aGFuIGFmdGVyLiAgVGhhdCdzIHByb2JhYmx5IGEgYml0IG1vcmUgZmxleGlibGU6LSkKICAgCjIwMDItMDItMTUgMDI6MzcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBjb25maWdfYXBpLmggLCBkZWZpbml0aW9ucy5oICwKICAgbWliX2FwaS5oICwgb3V0cHV0X2FwaS5oICwgcGR1X2FwaS5oICwgc2Vzc2lvbl9hcGkuaAogICAsIHNubXB2M19hcGkuaCAsIHR5cGVzLmggLCB1dGlsaXRpZXMuaCAsCiAgIHZhcmJpbmRfYXBpLmg6CgogICBSZW1vdmUgJ25ldC1zbm1wLWNvbmZpZy5oJyBmcm9tIHRoZSBtYWluIEFQSSBoZWFkZXIgZmlsZXMuCiAgIFRoaXMgd2lsbCBoYXZlIHRvIGJlICNpbmNsdWRlZCBzZXBhcmF0ZWx5IChlaXRoZXIgZXhwbGljaXRseQogICBvciB2aWEgdGhlIGFsbC1pbi1vbmUgJ25ldC1zbm1wLWluY2x1ZGVzLmgnIGhlYWRlcikKICAgCjIwMDItMDItMTUgMDI6MzEgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBSRUFETUUgdG8gZGVzY3JpYmUgdGhlIHN0YXR1cyBvZiA8bmV0LXNubXAvbGlicmFyeT4gYW5kIDxuZXQtc25tcD4gaGVhZGVyIGZpbGVzLgogICAKMjAwMi0wMi0xNSAwMjoxMyAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluICwgbWlicy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIHtzeXN0ZW0sbWFjaGluZX0vKi5oIGhlYWRlciBmaWxlcyBhcyB3ZWxsLgogICAKICAgRG9pbmcgdGhpcyB2aWEgdGhlICdtYW4nICYgJ21pYnMnIE1ha2VmaWxlcyBpcyBhIGdyb3NzIGhhY2ssCiAgIGFuZCByZWFsbHkgbmVlZHMgdG8gYmUgaGFuZGxlZCBtb3JlIGNsZWFubHkuICBCdXQgaXQncyB0aGUKICAgYmVzdCBJIGNhbiBjb21lIHVwIHdpdGggYXQgdGhlIG1vbWVudC4gIFNvcnJ5IC0gRGF2ZS4KICAgCjIwMDItMDItMTUgMDE6NTkgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW4gLCBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIFVDRC1jb21wYXRhYmlsaXR5IGhlYWRlcnMgYXMgd2VsbC4KICAgCjIwMDItMDItMTUgMDE6NTcgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgT25seSBpbnN0YWxsIHN1YmRpcmVjdG9yeSBzdHVmZiAqb25jZSouICAoRG9uJ3QgYmUgc28gZW50aHVzaWFzdGljLCBEYXZlISkKICAgCjIwMDItMDItMTUgMDE6MzEgIGR0czEyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICBSZW1vdmUgcmVkdW5kZW50ICctQ04nIGFuZCAnLUNPJyBvcHRpb25zIGZyb20gdGhlIGV4YW1wbGUgc25tcHVzbSBjb21tYW5kLgogICAgIChhcyBtZW50aW9uZWQgYnkgV2VzIG9uIHRoZSB1c2VycyBtYWlsaW5nIGxpc3QgMjAwMi0wMi0xMykKICAgICBRbjogRG9lcyB0aGlzIG5lZWQgdG8gYmUgZG9uZSBvbiB0aGUgVjQtMi1wYXRjaGVzIGJyYW5jaCBhcyB3ZWxsPwogICAKMjAwMi0wMi0xNSAwMToxNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCAsIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZlcnNpb24uaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICBSZXN0b3JlICd2ZXJzaW9uLmgnIGFzIGJlaW5nIGEgInRvcC1sZXZlbCIgaGVhZGVyIGZpbGUuCiAgIAoyMDAyLTAyLTE1IDAxOjEzICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgZnVsbCBzZXQgb2YgbGlicmFyeSBoZWFkZXIgZmlsZXMsCiAgIHJldGFpbmluZyB0aGUgdG9wLWxldmVsIHZzIGxpYnJhcnkgc3ViZGlyZWN0b3J5IHNwbGl0LgogICAKMjAwMi0wMi0xNSAwMToxMCAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgTG9vayBmb3IgdHJhbnNwb3J0LXJlbGF0ZWQgaGVhZGVyIGZpbGVzIGluIHRoZSBjb3JyZWN0IGxvY2F0aW9uLgogICAKMjAwMi0wMi0xNSAwMTowOSAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBFbnN1cmUgcGFydGlhbCBpbnN0YWxsIHRhcmdldHMgcmVjdXJzZSBwcm9wZXJseS4KICAgCjIwMDItMDItMTQgMDg6MTggIGR0czEyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIExvb2sgZm9yIG1pYl9tb2R1bGVfY29uZmlnLmggaW4gdGhlIGNvcnJlY3QgbG9jYXRpb24KICAgCjIwMDItMDItMTQgMDg6MDYgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGZpeCBtYW44IGluc3RhbGwgZGVmaW5pdGlvbnMKICAgCjIwMDItMDItMTQgMDc6NDggIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzICwgbmV0LXNubXAtY29uZmlnLmluOgoKICAgU3Vic3RpdHV0ZSB2YWx1ZXMgaW50byAnbmV0LXNubXAtY29uZmlnJyBwcm9wZXJseSwgYW5kIGRvbid0ICdtYWtlIGNsZWFuJyBpdCBhd2F5LgogICAKMjAwMi0wMi0xNCAwNzoyMiAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgVGlkeSB1cCBhZnRlciBtb3ZpbmcgdGhlIGxpYnJhcnkgaGVhZGVyIGZpbGVzCiAgIAoyMDAyLTAyLTE0IDA3OjE0ICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBUaWR5IHVwIGFmdGVyIG1vdmluZyB0aGUgbGlicmFyeSBoZWFkZXIgZmlsZXMgKGluY2x1ZGluZyBNYWtlZmlsZSBkZXBlbmRlbmNpZXMpCiAgIAoyMDAyLTAyLTE0IDA3OjEwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCAsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jICwgc25tcGxpYi9zbm1wX2RlYnVnLmMgLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsCiAgIHNubXBsaWIvc3lzdGVtLmMgLCBzbm1wbGliL3Rvb2xzLmMgLAogICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQgLCBhcHBzL01ha2VmaWxlLmRlcGVuZCAsCiAgIGFwcHMvc25tcGJ1bGtnZXQuYyAsIGFwcHMvc25tcGdldC5jICwgYXBwcy9zbm1wc3RhdHVzLmMKICAgLCBhcHBzL3NubXB0cmFuc2xhdGUuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kICwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMKICAgLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oICwgYWdlbnQvYWdlbnRfdHJhcC5jCiAgICwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQgLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQgLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmggLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oOgoKICAgVGlkeSB1cCBhZnRlciBtb3ZpbmcgdGhlIGxpYnJhcnkgaGVhZGVyIGZpbGVzIChpbmNsdWRpbmcgTWFrZWZpbGUgZGVwZW5kZW5jaWVzKQogICAKMjAwMi0wMi0xNCAwNzowOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBhbiBleHRyYW5lb3VzIHNwYWNlIGZyb20gQ1BQRkxBR1MKICAgCjIwMDItMDItMTQgMDY6MjMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBjb25maWdfYXBpLmggLCBkZWZpbml0aW9ucy5oICwKICAgbWliX2FwaS5oICwgbmV0LXNubXAtaW5jbHVkZXMuaCAsIG91dHB1dF9hcGkuaCAsCiAgIHBkdV9hcGkuaCAsIHNlc3Npb25fYXBpLmggLCBzbm1wdjNfYXBpLmggLCB0eXBlcy5oCiAgICwgdXRpbGl0aWVzLmggLCB2YXJiaW5kX2FwaS5oOgoKICAgU2VwYXJhdGUgb3V0IHRvcC1sZXZlbCAicHVibGljIEFQSSIgbGlicmFyeSBoZWFkZXIgZmlsZXMgZnJvbSB0aGUgImludGVybmFsIgogICBsaWJyYXJ5IGhlYWRlciBmaWxlcy4gIFRoZXNlIGFyZSBzdGlsbCBhdmFpbGFibGUgZm9yIHVzZSBieSBhcHBsaWNhdGlvbgogICBkZXZlbG9wZXJzLCBidXQgdGhpcyBzcGxpdCBtYWtlcyBpdCBjbGVhcmVyIHdoYXQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlCiAgIGFuZCB3aGF0IGNhbiBiZSByZWxpZWQgdXBvbiB0byBiZSBzdGFibGUuCiAgIAoyMDAyLTAyLTE0IDA2OjE5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FzbjEuaCAsIGluY2x1ZGUvbmV0LXNubXAvY2FsbGJhY2suaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvY211X2NvbXBhdC5oICwgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2xpc3QuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvZGVmYXVsdF9zdG9yZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9nZXRvcHQuaCAsIGluY2x1ZGUvbmV0LXNubXAvaW50NjQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAva2V5dG9vbHMuaCAsIGluY2x1ZGUvbmV0LXNubXAvbGNkX3RpbWUuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvbGlic25tcC5oICwgaW5jbHVkZS9uZXQtc25tcC9tZDUuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvbWliLmggLCBpbmNsdWRlL25ldC1zbm1wL210X3N1cHBvcnQuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvb2lkX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL29pZF9zdGFzaC5oICwgaW5jbHVkZS9uZXQtc25tcC9wYXJzZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9yZWFkX2NvbmZpZy5oICwgaW5jbHVkZS9uZXQtc25tcC9zY2FwaS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLXRjLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXAuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcENhbGxiYWNrRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBJUFhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFRDUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVURQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVRFBJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVbml4RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfYWxhcm0uaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9jbGllbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9kZWJ1Zy5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2VudW0uaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfbG9ja2luZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2xvZ2dpbmcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9wYXJzZV9hcmdzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfc2VjbW9kLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfdHJhbnNwb3J0LmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBrc20uaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbS5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjMuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLmggLCBpbmNsdWRlL25ldC1zbm1wL3Rvb2xzLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3RyYW5zZm9ybV9vaWRzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3VjZF9jb21wYXQuaCAsIGluY2x1ZGUvbmV0LXNubXAvdmFjbS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmggLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvUkVBRE1FCiAgICwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZ2V0b3B0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9rZXl0b29scy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21kNS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2NraW5nLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmVyc2lvbi5oICwgaW5jbHVkZS91Y2Qtc25tcC9hc24xLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL2NhbGxiYWNrLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaCAsIGluY2x1ZGUvdWNkLXNubXAvaW50NjQuaAogICAsIGluY2x1ZGUvdWNkLXNubXAva2V5dG9vbHMuaCAsIGluY2x1ZGUvdWNkLXNubXAvbWliLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL21pYmluY2wuaCAsIGluY2x1ZGUvdWNkLXNubXAvcGFyc2UuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc2NhcGkuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcC10Yy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWxhcm0uaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hcGkuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9jbGllbnQuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9kZWJ1Zy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfcGFyc2VfYXJncy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3ZhcnMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcHVzbS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdjMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3RyYW5zZm9ybV9vaWRzLmggLCBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaAogICAsIHNubXBsaWIvYXNuMS5jICwgc25tcGxpYi9jYWxsYmFjay5jICwKICAgc25tcGxpYi9kYXRhX2xpc3QuYyAsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwKICAgc25tcGxpYi9pbnQ2NC5jICwgc25tcGxpYi9rZXl0b29scy5jICwKICAgc25tcGxpYi9sY2RfdGltZS5jICwgc25tcGxpYi9tZDUuYyAsIHNubXBsaWIvbWliLmMKICAgLCBzbm1wbGliL210X3N1cHBvcnQuYyAsIHNubXBsaWIvb2lkX2FycmF5LmMgLAogICBzbm1wbGliL29pZF9zdGFzaC5jICwgc25tcGxpYi9wYXJzZS5jICwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jICwgc25tcGxpYi9zY2FwaS5jICwKICAgc25tcGxpYi9zbm1wLXRjLmMgLCBzbm1wbGliL3NubXAuYyAsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBJUFhEb21haW4uYyAsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jICwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMgLAogICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMgLCBzbm1wbGliL3NubXBfYWxhcm0uYyAsCiAgIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvc25tcF9hdXRoLmMgLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMgLCBzbm1wbGliL3NubXBfZGVidWcuYyAsCiAgIHNubXBsaWIvc25tcF9lbnVtLmMgLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXBsaWIvc25tcF9zZWNtb2QuYyAsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYyAsIHNubXBsaWIvc25tcF92ZXJzaW9uLmMgLAogICBzbm1wbGliL3NubXBrc20uYyAsIHNubXBsaWIvc25tcHVzbS5jICwgc25tcGxpYi9zbm1wdjMuYwogICAsIHNubXBsaWIvc3lzdGVtLmMgLCBzbm1wbGliL3Rvb2xzLmMgLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIFNlcGFyYXRlIG91dCB0b3AtbGV2ZWwgInB1YmxpYyBBUEkiIGxpYnJhcnkgaGVhZGVyIGZpbGVzIGZyb20gdGhlICJpbnRlcm5hbCIKICAgbGlicmFyeSBoZWFkZXIgZmlsZXMuICBUaGVzZSBhcmUgc3RpbGwgYXZhaWxhYmxlIGZvciB1c2UgYnkgYXBwbGljYXRpb24KICAgZGV2ZWxvcGVycywgYnV0IHRoaXMgc3BsaXQgbWFrZXMgaXQgY2xlYXJlciB3aGF0IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZQogICBhbmQgd2hhdCBjYW4gYmUgcmVsaWVkIHVwb24gdG8gYmUgc3RhYmxlLgogICAKMjAwMi0wMi0xNCAwNDo0MSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiAsCiAgIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2ltcGwuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzX2FwaS5oICwgc25tcGxpYi9hc24xLmMgLAogICBzbm1wbGliL2NhbGxiYWNrLmMgLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYyAsCiAgIHNubXBsaWIvaW50NjQuYyAsIHNubXBsaWIva2V5dG9vbHMuYyAsCiAgIHNubXBsaWIvbGNkX3RpbWUuYyAsIHNubXBsaWIvbWQ1LmMgLCBzbm1wbGliL21pYi5jCiAgICwgc25tcGxpYi9vaWRfc3Rhc2guYyAsIHNubXBsaWIvcGFyc2UuYyAsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYyAsIHNubXBsaWIvc2NhcGkuYyAsCiAgIHNubXBsaWIvc25tcC10Yy5jICwgc25tcGxpYi9zbm1wLmMgLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMgLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwogICAsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYyAsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jICwKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jICwgc25tcGxpYi9zbm1wX2FsYXJtLmMgLAogICBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3NubXBfYXV0aC5jICwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jICwgc25tcGxpYi9zbm1wX2RlYnVnLmMgLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsCiAgIHNubXBsaWIvc25tcF9zZWNtb2QuYyAsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYyAsCiAgIHNubXBsaWIvc25tcGtzbS5jICwgc25tcGxpYi9zbm1wdXNtLmMgLCBzbm1wbGliL3NubXB2My5jCiAgICwgc25tcGxpYi9zeXN0ZW0uYyAsIHNubXBsaWIvdG9vbHMuYyAsCiAgIHNubXBsaWIvdmFjbS5jOgoKICAgRmlyc3QgbW92ZXMgdG93YXJkcyB1c2luZyB0aGUgInB1YmxpYyIgQVBJIGhlYWRlciBmaWxlcyBpbiB0aGUgbGlicmFyeQogICBjb2RlIGFzIHdlbGwgKGNvbmNlbnRyYXRpbmcgb24gb3V0cHV0L2NvbmZpZy91dGlsaXR5IGhlYWRlciBmaWxlcykuCiAgIAoyMDAyLTAyLTE0IDAzOjE3ICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBDbG9zZSBhIGRhbmdsaW5nICJpZiIgYmxvY2suICAgKG9vcHMhKQogICAKMjAwMi0wMi0xNCAwMTo0NyAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMgKFY0LTItcGF0Y2hlcy40KSwgaWYuYzoKCiAgIENoZWNrIGZvciBydW5uaW5nIG9mZiB0aGUgZW5kIG9mIEkvRiB0YWJsZSAocGF0Y2ggZnJvbSBSZWRIYXQpCiAgIAoyMDAyLTAyLTE0IDAxOjQzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgTGF0ZXN0IFJlZEhhdCBycG0tcmVsYXRlZCBwYXRjaAogICAKMjAwMi0wMi0xNCAwMTozOSAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgQWRvcHQgUmVkSGF0J3MgY29uZmlndXJlIHRlc3RpbmcgZm9yIFJQTSBsaWJyYXJpZXMKICAgCjIwMDItMDItMTMgMDg6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgTWFrZSBKb2huIHRydXN0IGhpcyBjb2RlCiAgIAoyMDAyLTAyLTEzIDA4OjM0ICBqYnBuCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgICAtIHRyYW5zcG9ydCBmaXhlcyAodW50ZXN0ZWQsIHN0aWxsICNpZiAwKQogICAKMjAwMi0wMi0xMyAwODowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBtYXJrIHNvbWUgSm9obi10by1kby1zZWN0aW9ucwogICAKMjAwMi0wMi0xMyAwNzo1NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kZWZhdWx0X3N0b3JlLmggLCBtYW4vc25tcGNtZC4xLmRlZiAsCiAgIHNubXBsaWIvbWliLmM6CgogICBTd2l0Y2ggdG8gdXNpbmcgLU9TIHN0eWxlIG91dHB1dCBieSBkZWZhdWx0LCBhbmQgZHJvcCB0aGUgcmVxdWlyZW1lbnQKICAgZm9yIGZ1bGwgT0lEcyB0byBzdGFydCB3aXRoICcuJywgcGx1cyBjb21tYW5kLWxpbmUgb3B0aW9ucyB0byByZXN0b3JlCiAgIHRoZSBvcmlnaW5hbCBVQ0Qtc3R5bGUgYmVoYXZpb3VyLgogICAKMjAwMi0wMi0xMyAwNzozNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEFwcGx5IEpvaG4ncyBmaXggZm9yIGJ1Z3MgIzQ4OTMzNiBhbmQgIzUwODE0NiAoZHVwbGljYXRlIGNvbHVtbnMgYW5kCiAgIGNvbHVtbnMgaW4gd3Jvbmcgb3JkZXIpIHRvIHRoZSBtYWluIGJyYW5jaCBhcyB3ZWxsLgogICAKMjAwMi0wMi0xMiAxNjo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgY29uc3QgY2hhbmdlcy4KICAgCjIwMDItMDItMTIgMTY6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvOiAuY3ZzaWdub3JlICwgQVNOLy5jdnNpZ25vcmUgLCBhZ2VudC8uY3ZzaWdub3JlCiAgICwgZGVmYXVsdF9zdG9yZS8uY3ZzaWdub3JlOgoKICAgYWRkIC5jdnNpZ25vcmUgZmlsZS4KICAgCjIwMDItMDItMTIgMTY6MzggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIGFkZCBhZ2VudC9hZ2VudF9oYW5kbGVyLmgKICAgCjIwMDItMDItMTIgMTY6MzggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc25tcF9jbGllbnQuaDoKCiAgIGNvbnN0IGFkZGl0aW9ucy4KICAgCjIwMDItMDItMTIgMTY6MzcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIEFkZCBzdHJpbmcuaAogICAKMjAwMi0wMi0xMiAxNjozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgYWRkIGhlYWRlci4KICAgCjIwMDItMDItMTIgMTY6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZpeGVzIHRvIHJlZW5hYmxlIGRpc21hbiBldmVudCBzdHVmZiBmb3IgNS4wIGNvZGUuICBOb3QgZG9uZSB0aGUKICAgInJpZ2h0IiB3YXksIGJ1dCBpdCB3b3Jrcy4KICAgCjIwMDItMDItMTIgMTY6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgLSAtV2FsbCBmaXhlcwogICAKMjAwMi0wMi0xMiAxNjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgLSBhZGQgc3RkbGliLmgKICAgLSByZW1vdmUgdW51c2VkIHZhcmlhYmxlLgogICAKMjAwMi0wMi0xMiAxNjozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIG5vIGxvbmdlciB1c2VkICJkdW1wX3ZhciIgcm91dGluZS4KICAgCjIwMDItMDItMTIgMTY6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgY29uc3Qgc3BlY2lmaWMgY2hhbmdlcy4KICAgCjIwMDItMDItMTIgMTY6MzQgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGRlZCBuZXcgcGVybCBzcGVjaWZpYyBmZWF0dXJlcy4KICAgCjIwMDItMDItMTIgMTY6MzQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLlBITk9ZIG1vZHMKICAgCjIwMDItMDItMTIgMDc6MjIgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCAsIGFwcHMvTWFrZWZpbGUuZGVwZW5kICwKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMgLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQgLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xvZ2dpbmdfYXBpLmggLCBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaDoKCiAgIFJlbmFtZSB0aGUgbG9nZ2luZyAmIHJlbGF0ZWQgb3V0cHV0IEFQSSBoZWFkZXIgZmlsZSwgdG8gYmV0dGVyCiAgIHJlZmxlY3QgdGhlIHNjb3BlIG9mIHRoaXMgQVBJLiAgKEFzIHN1Z2dlc3RlZCBieSBXZXMgJiBKb2huKQogICAKMjAwMi0wMi0xMiAwNzoyMSAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gYW1lbmQgZml4IHRvIGJ1ZyAjNTE2Mzg5ICh1Y2Qtc25tcCA0LjIuMyBsaWJ3cmFwIHN1cHBvcnQgYnJva2VuKSB0bwogICAgICAgYWN0dWFsbHkgYWRkIC1sbnNsIHRvIGxpbmsgcGFyYW1ldGVycyEKICAgCjIwMDItMDItMTIgMDU6MzkgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIGZpeCBidWcgIzUxNjM4OSAodWNkLXNubXAgNC4yLjMgbGlid3JhcCBzdXBwb3J0IGJyb2tlbikgLS0gVVNFX0xJQldSQVAKICAgICAgIHdhcyBub3QgYmVpbmcgI2RlZmluZWQgaW4gdGhlIGNhc2Ugd2hlcmUgLWxuc2wgaXMgbmVlZGVkIGluIGFkZGl0aW9uCiAgICAgICB0byAtbHdyYXAuCiAgIAoyMDAyLTAyLTExIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGxpYiBkZXBlbmRlbmN5IGZpeCBmb3Igc25tcGQgdGFyZ2V0CiAgIAoyMDAyLTAyLTExIDA4OjI5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2NtdV9jb21wYXQuaCAsIGluY2x1ZGUvbmV0LXNubXAvbWliLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvcGFyc2UuaCAsIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcC5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2ltcGwuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvdWNkX2NvbXBhdC5oICwgc25tcGxpYi9jbXVfY29tcGF0LmMgLAogICBzbm1wbGliL01ha2VmaWxlLmluICwgc25tcGxpYi9taWIuYyAsIHNubXBsaWIvcGFyc2UuYwogICAsIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgRXh0cmFjdCBDTVVfQ09NUEFUQUJJTElUWSBjb2RlLCBhbmQgZXhwbGljaXRseSBkZXByZWNhdGVkIFVDRCBjb2RlIGludG8gc2VwYXJhdGUgZmlsZXMuCiAgIAoyMDAyLTAyLTExIDA4OjIzICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9wYXJzZV9hcmdzLmMgKFY0LTItcGF0Y2hlcy4yKSwgc25tcF9wYXJzZV9hcmdzLmM6CgogICBVc2UgdGhlICdkc19zZXRfeHh4JyBsaWJyYXJ5IHJvdXRpbmVzLCByYXRoZXIgdGhhbiB0aGUgb2xkICdzbm1wX3NldF94eHgnIGNhbGxzCiAgIAoyMDAyLTAyLTExIDA0OjQ1ICBqYnBuCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiAsIHNubXBfY29uZmlnLjUuZGVmICwKICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBtaW5vciBzcGVsbGluZyB0d2Vha3MKICAgCjIwMDItMDItMTEgMDQ6MjcgIGpicG4KCiAgICogbWFuLzogTWFrZWZpbGUuaW4gLCBkZWZhdWx0X3N0b3JlLjMudG9wICwgbWliX2FwaS4zCiAgICwgbWliX2FwaS4zLmRlZiAsIHNubXBfYWdlbnRfYXBpLjMgLAogICBzbm1wX2FnZW50X2FwaS4zLmRlZiAsIHNubXBfYWxhcm0uMyAsIHNubXBfYWxhcm0uMy5kZWYKICAgLCBzbm1wX2FwaS4zICwgc25tcF9hcGkuMy5kZWYgLCBzbm1wX3Nlc3NfYXBpLjMKICAgLCBzbm1wX3Nlc3NfYXBpLjMuZGVmICwgc25tcF90cmFwX2FwaS4zICwKICAgc25tcF90cmFwX2FwaS4zLmRlZiAsIHZhcmlhYmxlcy41ICwgdmFyaWFibGVzLjUuZGVmOgoKICAgICAtIGdlbmVyYXRlIHRoZSByZXN0IG9mIHRoZSBtYW51YWwgcGFnZXMgKHRvIGdldCB2ZXJzaW9uIGluIGZvb3RlcikKICAgCjIwMDItMDItMDggMTU6NTYgIGhhcmRha2VyCgogICAqIHdpbjMyLzogY29uZmlnLmggLCBtaWJfbW9kdWxlX2NvbmZpZy5oICwKICAgbWliX21vZHVsZV9pbml0cy5oICwgbGlic25tcC9saWJzbm1wLmRzcCAsCiAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmICwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwICwKICAgbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcCAsIHNubXBkL3NubXBkLmRzcDoKCiAgIHdpbjMyIHNwZWNpZmljIHBvcnRpb25zIG9mIHBhdGNoIDUwMzI1NgogICAKMjAwMi0wMi0wOCAxNTo1MyAgaGFyZGFrZXIKCiAgICogd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcDoKCiAgIHBhdGNoIzUwMzI1NjogaGVscGVycyBsaWJyYXJ5IGRlZmluaXRpb24gZm9yIHdpbjMyCiAgIAoyMDAyLTAyLTA4IDA5OjA4ICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIG1pbm9yIGZvcm1hdCB0d2Vha2FnZQogICAKMjAwMi0wMi0wOCAwODoyMiAgZHRzMTIKCiAgICogbWFuLzogbWliX2FwaS4zICwgc25tcF9hZ2VudF9hcGkuMyAsIHNubXBfYWxhcm0uMwogICAsIHNubXBfYXBpLjMgLCBzbm1wX3Nlc3NfYXBpLjMgLCBzbm1wX3RyYXBfYXBpLjM6CgogICBSZWZlcmVuY2UgdGhlIG5ldyBoZWFkZXItZmlsZXMgaW4gc2VjdGlvbiAzIG1hbiBwYWdlIHN5bm9wc2VzLgogICAKMjAwMi0wMi0wOCAwNzo1MCAgamJwbgoKICAgKiBtYW4vOiBtaWJfYXBpLjMgLCByZWFkX2NvbmZpZy4zLmRlZiAsIHNubXBfYWdlbnRfYXBpLjMKICAgLCBzbm1wX2NvbmZpZy41LmRlZiAsIHNubXBfdHJhcF9hcGkuMyAsCiAgIHNubXBjbWQuMS5kZWYgLCBzbm1wY29uZi4xLmRlZiAsIHNubXBkLmNvbmYuNS5kZWYgLAogICB2YXJpYWJsZXMuNToKCiAgICAgLSBtb3JlIG1pbm9yIHR3ZWFrcyAodWNkLXNubXAgLT4gTmV0LVNOTVAgZXRjLikKICAgCjIwMDItMDItMDggMDc6NDggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBsb2NhbCBtb2R1bGVzIGZyb20gZGVwZW5kZW5jeSBsaXN0CiAgIAoyMDAyLTAyLTA4IDA3OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIGFnZW50X2luZGV4LmMgLAogICBhZ2VudF9yZWFkX2NvbmZpZy5jICwgYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50X3RyYXAuYwogICAsIGF1dG9fbmxpc3QuYyAsIGtlcm5lbC5jICwgbWliX21vZHVsZXMuYyAsCiAgIHNubXBfYWdlbnQuYyAsIHNubXBfdmFycy5jICwgc25tcGQuYyAsCiAgIGhlbHBlcnMvYnVsa190b19uZXh0LmMgLCBoZWxwZXJzL2RlYnVnX2hhbmRsZXIuYyAsCiAgIGhlbHBlcnMvaW5zdGFuY2UuYyAsIGhlbHBlcnMvbXVsdGlwbGV4ZXIuYyAsCiAgIGhlbHBlcnMvbnVsbC5jICwgaGVscGVycy9vbGRfYXBpLmMgLCBoZWxwZXJzL3JlYWRfb25seS5jCiAgICwgaGVscGVycy9zZXJpYWxpemUuYyAsIGhlbHBlcnMvdGFibGUuYyAsCiAgIGhlbHBlcnMvdGFibGVfYXJyYXkuYyAsIGhlbHBlcnMvdGFibGVfZGF0YS5jICwKICAgaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLCBoZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLAogICBtaWJncm91cC9oZWFkZXJfY29tcGxleC5jICwgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jICwKICAgbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYyAsIG1pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmMgLCBtaWJncm91cC9SbW9uL2FndXRpbC5jICwKICAgbWliZ3JvdXAvUm1vbi9hbGFybS5jICwgbWliZ3JvdXAvUm1vbi9ldmVudC5jICwKICAgbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMgLCBtaWJncm91cC9SbW9uL3Jvd3MuYyAsCiAgIG1pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jICwKICAgbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBtaWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jICwgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jCiAgICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwogICAsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jICwKICAgbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jICwKICAgbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jICwKICAgbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMgLCBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwogICAsIG1pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMgLCBtaWJncm91cC9ob3N0L2hyX3N3cnVuLmMKICAgLCBtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jICwgbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIG1pYmdyb3VwL21pYklJL2ljbXAuYyAsIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwogICAsIG1pYmdyb3VwL21pYklJL2lwLmMgLCBtaWJncm91cC9taWJJSS9pcEFkZHIuYyAsCiAgIG1pYmdyb3VwL21pYklJL2lwdjYuYyAsIG1pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jICwKICAgbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMgLCBtaWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jCiAgICwgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYyAsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyAsIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwogICAsIG1pYmdyb3VwL21pYklJL3RjcC5jICwgbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIG1pYmdyb3VwL21pYklJL3VkcC5jICwgbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwogICAsIG1pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLCBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYwogICAsIG1pYmdyb3VwL21pc2MvZGxtb2QuYyAsIG1pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICwgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIG1pYmdyb3VwL3NtdXgvc211eC5jICwgbWliZ3JvdXAvc211eC9zbm1wX2JncC5jICwKICAgbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYyAsIG1pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMgLAogICBtaWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jICwgbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jCiAgICwgbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMgLAogICBtaWJncm91cC9zbm1wdjMvdXNtVXNlci5jICwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyAsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsIG1pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYwogICAsIG1pYmdyb3VwL3R1bm5lbC90dW5uZWwuYyAsIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jICwgbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMgLCBtaWJncm91cC91Y2Qtc25tcC9maWxlLmMKICAgLCBtaWJncm91cC91Y2Qtc25tcC9ocHV4LmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYyAsIG1pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYyAsIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jCiAgICwgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9wYXNzLmMgLCBtaWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYyAsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMKICAgLCBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYyAsIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jCiAgICwgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMgLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgVXNlIHRoZSBuZXcgJ25ldC1zbm1wLWluY2x1ZGVzJyBzaW5nbGUtaW5jbHVkZSBoZWFkZXIgZmlsZXMsCiAgIGluIHBsYWNlIG9mIHRoZSAodW5pbnN0YWxsZWQpICdtaWJpbmNsLmgnLgogICAgIFdoZWVlZWUuLi4uLi4KICAgCjIwMDItMDItMDggMDc6MTcgIGpicG4KCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmICwgc25tcF9hZ2VudF9hcGkuMyAsCiAgIHNubXBfYWxhcm0uMyAsIHNubXBfYXBpLjMgLCBzbm1wX2NvbmZpZy41LmRlZiAsCiAgIHNubXBfc2Vzc19hcGkuMyAsIHNubXBkLjEuZGVmICwgc25tcGQuY29uZi41LmRlZiAsCiAgIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgICAtIHNvbWUgZWRpdGluZyB0byBtYWtlIHN0eWxlIGNvbnNpc3RlbnQsIGFkZCBzb21lIG1pc3Npbmcgb3B0aW9ucywKICAgICAgIGNoYW5nZSB1Y2Qtc25tcCB0byBOZXQtU05NUCBhbmQgdGhpbmdzIGxpa2UgdGhhdC4KICAgCjIwMDItMDItMDggMDc6MTQgIGpicG4KCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgICAtIGdlbmVyYXRlIG1hbiBwYWdlcyBhdCBjb21waWxlIHRpbWUKICAgCjIwMDItMDItMDggMDc6MTQgIGpicG4KCiAgICogbWFuLzogc25tcGJ1bGtnZXQuMSAsIHNubXBidWxrd2Fsay4xICwKICAgc25tcGJ1bGtnZXQuMS5kZWYgLCBzbm1wYnVsa3dhbGsuMS5kZWYgLCBzbm1wY21kLjEKICAgLCBzbm1wY21kLjEuZGVmICwgc25tcGNvbmYuMSAsIHNubXBjb25mLjEuZGVmCiAgICwgc25tcGdldC4xICwgc25tcGdldC4xLmRlZiAsIHNubXBnZXRuZXh0LjEgLAogICBzbm1wZ2V0bmV4dC4xLmRlZiAsIHNubXBzZXQuMSAsIHNubXBzZXQuMS5kZWYgLAogICBzbm1wc3RhdHVzLjEgLCBzbm1wc3RhdHVzLjEuZGVmICwgc25tcHRhYmxlLjEgLAogICBzbm1wdGFibGUuMS5kZWYgLCBzbm1wdGVzdC4xICwgc25tcHRlc3QuMS5kZWYgLAogICBzbm1wdHJhbnNsYXRlLjEgLCBzbm1wdHJhbnNsYXRlLjEuZGVmICwgc25tcHRyYXAuMQogICAsIHNubXB0cmFwLjEuZGVmICwgc25tcHVzbS4xICwgc25tcHVzbS4xLmRlZiAsCiAgIHNubXB3YWxrLjEgLCBzbm1wd2Fsay4xLmRlZiAsIHNubXB0cmFwZC44ICwKICAgc25tcHRyYXBkLjguZGVmOgoKICAgICAtIHJlbmFtZSBtYW4gcGFnZXMgd2hpY2ggYXJlIG5vdyBnZW5lcmF0ZWQgYXQgY29tcGlsZSB0aW1lIGluIG9yZGVyCiAgICAgICB0byBwaWNrIHVwIHRoZSB2ZXJzaW9uICh3aGljaCBnZXRzIHB1dCBpbiB0aGUgZm9vdGVyKS4KICAgCiAgICAgLSBhbHNvIHNvbWUgZWRpdGluZyB0byBtYWtlIHN0eWxlIGNvbnNpc3RlbnQsIGFkZCBzb21lIG1pc3Npbmcgb3B0aW9ucywKICAgICAgIGNoYW5nZSB1Y2Qtc25tcCB0byBOZXQtU05NUCBhbmQgdGhpbmdzIGxpa2UgdGhhdC4KICAgCjIwMDItMDItMDggMDY6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSkouaCAsIG1pYkpKL2ljbXAuYyAsIG1pYkpKL2ljbXAuaAogICAsIG1pYkpKL2lmX2ZpZWxkcy5oICwgbWliSkovaW50ZXJmYWNlcy5jICwKICAgbWliSkovaW50ZXJmYWNlcy5oICwgbWliSkovaXAuYyAsIG1pYkpKL2lwLmggLAogICBtaWJKSi9pcEFkZHIuYyAsIG1pYkpKL2lwQWRkci5oICwgbWliSkovaXBNZWRpYS5jICwKICAgbWliSkovaXBNZWRpYS5oICwgbWliSkovaXBSb3V0ZS5jICwgbWliSkovaXBSb3V0ZS5oCiAgICwgbWliSkovaXB2Ni5jICwgbWliSkovaXB2Ni5oICwgbWliSkova2VybmVsX2hwdXguYwogICAsIG1pYkpKL2tlcm5lbF9ocHV4LmggLCBtaWJKSi9rZXJuZWxfbGludXguYyAsCiAgIG1pYkpKL2tlcm5lbF9saW51eC5oICwgbWliSkovc25tcF9taWIuYyAsCiAgIG1pYkpKL3NubXBfbWliLmggLCBtaWJKSi9zeXNPUlRhYmxlLmMgLAogICBtaWJKSi9zeXNPUlRhYmxlLmggLCBtaWJKSi9zeXN0ZW1fbWliLmMgLAogICBtaWJKSi9zeXN0ZW1fbWliLmggLCBtaWJKSi90Y3AuYyAsIG1pYkpKL3RjcC5oICwKICAgbWliSkovdGNwVGFibGUuYyAsIG1pYkpKL3RjcFRhYmxlLmggLCBtaWJKSi91ZHAuYyAsCiAgIG1pYkpKL3VkcC5oICwgbWliSkovdWRwVGFibGUuYyAsIG1pYkpKL3VkcFRhYmxlLmggLAogICBtaWJKSi92YWNtX3ZhcnMuYyAsIG1pYkpKL3ZhY21fdmFycy5oOgoKICAgUmVtb3ZlIHRoZSBhdHRlbXB0ZWQgJ21pYklJJyByZS13cml0ZS4KICAgSWYgd2Ugd2FudCB0byB0aWR5IHVwIG1pYklJLCBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIHVzZSB0aGUgbmV3IGFnZW50IEFQSXMuCiAgIAoyMDAyLTAyLTA4IDA2OjQ1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogbmV0LXNubXAtaW5jbHVkZXMuaCAsCiAgIGFnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBCcmluZyBzaW5nbGUtaW5jbHVkZSBoZWFkZXIgZmlsZXMgY2xvc2VyIGluIGxpbmUgd2l0aCB0aGUgZXhpc3RpbmcgIm1pYmluY2wuaCIgZmlsZQogICAKMjAwMi0wMi0wOCAwNjowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXNPUlRhYmxlLmggKFY0LTItcGF0Y2hlcy4xKSwKICAgc3lzT1JUYWJsZS5oOgoKICAgRW5zdXJlIHRoZSBudWxsIHZlcnNpb25zIG9mIHRoZSB0d28gUkVHSVNURVIgbWFjcm9zIHN3YWxsb3cgdGhlaXIgcGFyYW1ldGVycy4KICAgCjIwMDItMDItMDggMDQ6MzYgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEltcGxlbWVudCB0aGUgbWlzc2luZyBvdXRnb2luZyBlcnJvciBzdGF0aXN0aWNzIGNvdW50ZXJzCiAgIChwYXRjaCAjNTEwMTk0IGZyb20gTGF0aGEgUHJhYmh1KQogICAKMjAwMi0wMi0wOCAwMjo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N0b3JhZ2UuYywgdWNkLXNubXAvbWVtb3J5LmMKICAgKFY0LTItcGF0Y2hlcy5bNiwzXSksIGhvc3QvaHJfc3RvcmFnZS5jICwgdWNkLXNubXAvbWVtb3J5LmM6CgogICBBZGRlZCBzdXBwb3J0IGZvciBtZW1vcnkgYW5kIHN3YXAgZW50cmllcyBpbiBoclN0b3JhZ2VUYWJsZSBmb3IgU29sYXJpcwogICAoZnJvbSBwYXRjaCAjNTA1NDk4IC0gdGhhbmtzIHRvIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcikKICAgCjIwMDItMDItMDggMDI6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBDb25zb2xpZGF0ZSBpZGVudGljYWwgTUlCIG9iamVjdCBlbnRyaWVzIChXSU4zMi9ub24tV0lOMzIpCiAgIAoyMDAyLTAyLTA4IDAwOjUwICBqYnBuCgogICAqIG1hbi9SRUFETUU6CgogICAgIC0gcmVtb3ZlIGNocm9uaWNhbGx5IGRhdGVkIHVuaGVscGZ1bCBSRUFETUUKICAgCjIwMDItMDItMDcgMTM6MzMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgTWFrZWZpbGUucnVsZXMgLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW4gLCBtYWtlZmlsZWluZGVwZW5kLnBsICwKICAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kICwgYWdlbnQvTWFrZWZpbGUuaW4gLAogICBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9taWJfbW9kdWxlcy5jICwKICAgYWdlbnQvc25tcF9hZ2VudC5jICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kICwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbgogICAsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCAsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluICwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKICAgLCBhcHBzL01ha2VmaWxlLmluICwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQKICAgLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluICwgbG9jYWwvTWFrZWZpbGUuaW4KICAgLCBtYW4vTWFrZWZpbGUuaW4gLCBtaWJzL01ha2VmaWxlLmluICwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQgLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtYWtlIG1ha2UncyBNYWtlZmlsZSdzIHRvIG1ha2UgYmV0dGVyIG1ha2luZwogICAKMjAwMi0wMi0wNyAxMzozMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgY2hlY2sgbG9jYWwgcGF0aGVzCiAgIAoyMDAyLTAyLTA3IDEyOjU0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBFbnN1cmUgYWdlbnQgcmV0dXJucyB0aGUgY29ycmVjdCBlcnJvciBjb2RlcyBmb3IgVU5ETyBhbmQgQ09NTUlUIGZhaWx1cmVzLgogICAKMjAwMi0wMi0wNyAxMToxOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwgLCBTTk1QLnhzICwgdC9zdGFydGFnZW50LnBsOgoKICAgYXR0ZW1wdCBhdCBwb3J0aW5nIEpvZSdzIFNOTVAgbW9kdWxlIHRvIG5ldC1zbm1wLgogICBJdCBjb21waWxlcywgYnV0IG9ubHkgc29tZSBvZiB0aGUgdGVzdHMgc3VjY2VlZC4KICAgCjIwMDItMDItMDcgMTA6MDkgIGpicG4KCiAgICogbWFuLzogZGVmYXVsdF9zdG9yZS4zLnRvcCAsIG1pYl9hcGkuMyAsCiAgIHJlYWRfY29uZmlnLjMuZGVmICwgc25tcC5jb25mLjUuZGVmICwgc25tcF9hZ2VudF9hcGkuMwogICAsIHNubXBfYWxhcm0uMyAsIHNubXBfYXBpLjMgLCBzbm1wX2NvbmZpZy41LmRlZgogICAsIHNubXBfc2Vzc19hcGkuMyAsIHNubXBfdHJhcF9hcGkuMyAsIHNubXBidWxrZ2V0LjEKICAgLCBzbm1wYnVsa3dhbGsuMSAsIHNubXBjb25mLjEgLCBzbm1wZC5jb25mLjUuZGVmCiAgICwgc25tcGRlbHRhLjEgLCBzbm1wZGYuMSAsIHNubXBnZXQuMSAsCiAgIHNubXBnZXRuZXh0LjEgLCBzbm1wbmV0c3RhdC4xICwgc25tcHNldC4xICwKICAgc25tcHN0YXR1cy4xICwgc25tcHRhYmxlLjEgLCBzbm1wdGVzdC4xICwKICAgc25tcHRyYW5zbGF0ZS4xICwgc25tcHRyYXAuMSAsIHNubXB0cmFwZC5jb25mLjUuZGVmCiAgICwgc25tcHVzbS4xICwgc25tcHdhbGsuMSAsIHZhcmlhYmxlcy41OgoKICAgICAtIGFkZCBOZXQtU05NUCBpbiBoZWFkZXIgb2YgYWxsIG1hbiBwYWdlcwogICAKMjAwMi0wMi0wNyAwOTo1MiAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIHVwZGF0ZSBzdHlsZSB0byBtYXRjaCBzbm1wZCBhbmQgc25tcHRyYXBkIG1hbiBwYWdlcwogICAKMjAwMi0wMi0wNyAwODoxNSAgamJwbgoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICAgIC0gZml4IHNwZWVsaW5nIG1pc3Rha2UKICAgCjIwMDItMDItMDcgMDg6MDAgIGpicG4KCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgICAtIGJyaW5nIHVwIHRvIGRhdGUgd2l0aCBzbm1wdHJhcGQKICAgCjIwMDItMDItMDcgMDc6MjggIGR0czEyCgogICAqIFJFQURNRS5ocHV4MTEgLCBhY2NvbmZpZy5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jCiAgICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmggLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMgLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oICwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgU3VwcG9ydCBmb3IgSFAtVVggMTEsIGNvdXJ0ZXN5IG9mIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlci4KICAgCjIwMDItMDItMDcgMDY6MzAgIGpicG4KCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgICAtIGFscGhhYmV0aXNlIG9wdGlvbnMKICAgCiAgICAgLSBicmluZyBtYW4gcGFnZSBpbiBsaW5lIHdpdGggbmV3IHBvc2l0aW9uYWwgYXJndW1lbnRzIGxpc3RlbmluZwogICAgICAgYWRkcmVzcyBzcGVjaWZpY2F0aW9uIGFuZCBhZGQgc2VjdGlvbiBkZXNjcmliaW5nIHRoYXQKICAgCiAgICAgLSBwdXQgTmV0LVNOTVAgaW4gaGVhZGVyCiAgIAoyMDAyLTAyLTA2IDEwOjA2ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc2NhcGkuaDoKCiAgICAgLSBmaXggYnVnIG5vdGVkIGJ5IE5pZWxzCiAgIAoyMDAyLTAyLTA2IDA5OjI1ICBqYnBuCgogICAqIGFwcHMvOiBlbmNvZGVfa2V5Y2hhbmdlLmMgLCBzbm1wdXNtLmM6CgogICAgIC0gbWlub3IgdHdlYWtzIGR1ZSB0byBjaGFuZ2UgaW4gZGVmaW5pdGlvbiBvZiBVU00gT0lEcy4KICAgCjIwMDItMDItMDYgMDk6MTcgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2My5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC90cmFuc2Zvcm1fb2lkcy5oICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXBsaWIvc25tcHVzbS5jICwKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgICAgLSBtb3ZlIFVTTSBPSUQgZGVmaW5pdGlvbnMgaW50byBzbm1wdXNtLmMsIG1ha2UgdGhlbSBjb25zdAogICAKICAgICAtIGNvbnNlcXVlbnQgaW5jcmVhc2UgaW4gY29uc3QtbmVzcyBpbiBzb21lIGZ1bmN0aW9uIHByb3RvdHlwZXMKICAgCjIwMDItMDItMDYgMDk6MTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIHJlbW92ZSBpbnRlcm5hbCBub3RlIGFib3V0IHYzIGFwaSwgd2hpY2ggc2hvdWxkIGJlIHB1YmxpYwogICAKMjAwMi0wMi0wNiAwOToxMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtX2luaXQuaDoKCiAgIHJlbW92ZWQgdW5uZWVkZWQgZmlsZQogICAKMjAwMi0wMi0wNiAwOTowNiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2tleXRvb2xzLmggLCBpbmNsdWRlL25ldC1zbm1wL3NjYXBpLmgKICAgLCBzbm1wbGliL2tleXRvb2xzLmMgLCBzbm1wbGliL3NjYXBpLmM6CgogICAgIC0gYWRkIGNvbnN0LW5lc3MgZm9yIHRyYW5zZm9ybSB0eXBlIGFyZ3MKICAgCjIwMDItMDItMDYgMDk6MDEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9taWIuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9kZWJ1Zy5oCiAgICwgc25tcGxpYi9taWIuYyAsIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgICAtIGFkZCBzb21lIGNvbnN0LW5lc3MgZm9yIE9JRCBhcmdzIChtYWlubHkgc28gdGhhdCBkZWJ1Z21zZ19vaWQgdGFrZXMKICAgICAgIGNvbnN0KS4KICAgCjIwMDItMDItMDYgMDg6NDQgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oCiAgICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHluaXguaCAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBTdXBwb3J0IGZvciBEeW5peC9QVFggNC40LCBjb3VydGVzeSBvZiBQYXRyaWNrIEhlc3MuCiAgIAoyMDAyLTAyLTA2IDA3OjQxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaCAsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtYWtlIGZpcnN0IGFyZ3VtZW50IG9mIHNubXBfZHVwX29iamlkKCkgY29uc3QuCiAgIAogICAgIC0gYmV0dGVyIGhhbmRsZSBOVUxMIHZhbHVlcyBpbiBzbm1wX2R1cF9vYmppZCgpLgogICAKMjAwMi0wMi0wNiAwNzowOSAgZHRzMTIKCiAgICogRkFRICwgbWFuL3NubXBfdHJhcF9hcGkuMzoKCiAgIENsYXJpZnkgdGhlIGFwcGxpY2FiaWxpdHkgb2YgJ3NubXBfdHJhcF9hcGkoMyknIHJvdXRpbmVzIHRvIEFnZW50WCBzdWJhZ2VudHMuCiAgIAoyMDAyLTAyLTA2IDA1OjU4ICBkdHMxMgoKICAgKiBhcHBzLzogZW5jb2RlX2tleWNoYW5nZS5jICwgbm90aWZpY2F0aW9uX2xvZy5jICwKICAgc25tcGJ1bGtnZXQuYyAsIHNubXBidWxrd2Fsay5jICwgc25tcGRlbHRhLmMgLAogICBzbm1wZGYuYyAsIHNubXBnZXQuYyAsIHNubXBnZXRuZXh0LmMgLCBzbm1wc2V0LmMKICAgLCBzbm1wc3RhdHVzLmMgLCBzbm1wdGFibGUuYyAsIHNubXB0ZXN0LmMgLAogICBzbm1wdHJhbnNsYXRlLmMgLCBzbm1wdHJhcC5jICwgc25tcHRyYXBkLmMgLAogICBzbm1wdHJhcGRfaGFuZGxlcnMuYyAsIHNubXB0cmFwZF9sb2cuYyAsIHNubXB1c20uYwogICAsIHNubXB2YWNtLmMgLCBzbm1wd2Fsay5jICwgc25tcG5ldHN0YXQvaWYuYwogICAsIHNubXBuZXRzdGF0L2luZXQuYyAsIHNubXBuZXRzdGF0L2luZXQ2LmMgLAogICBzbm1wbmV0c3RhdC9tYWluLmMgLCBzbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgQXBwbGljYXRpb25zIGFtZW5kZWQgdG8gdXNlIHRoZSBuZXctc3R5bGUgbGlicmFyeSBoZWFkZXIgc3RydWN0dXJlLgogICAoSW4gbW9zdCBjYXNlcywgc2ltcGx5IGluY2x1ZGluZyB0aGUgc2luZ2xlICJmdWxsIEFQSSIgaGVhZGVyIGZpbGUpCiAgIAoyMDAyLTAyLTA2IDA1OjU1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogYXNuMS5oICwgY29uZmlnX2FwaS5oICwKICAgZGVmaW5pdGlvbnMuaCAsIGxvZ2dpbmdfYXBpLmggLCBtaWJfYXBpLmggLAogICBuZXQtc25tcC1pbmNsdWRlcy5oICwgcGR1X2FwaS5oICwgc2Vzc2lvbl9hcGkuaCAsCiAgIHNubXB2M19hcGkuaCAsIHR5cGVzLmggLCB1dGlsaXRpZXMuaCAsIHZhcmJpbmRfYXBpLmg6CgogICBGcmFtZXdvcmsgZm9yIG5ldyBsaWJyYXJ5IGhlYWRlciBmaWxlIG9yZ2FuaXNhdGlvbiwgd2l0aCBlaWdodCBtYWluIGdyb3VwcwogICBvZiBBUEkgcm91dGluZXMuICBDdXJyZW50bHkgdGhlc2Ugc3RpbGwgcmVmZXIgdG8gdGhlIFVDRC1zdHlsZSBzdHlsZSBoZWFkZXIKICAgZmlsZXMgZm9yIHRoZSBhY3R1YWwgZnVuY3Rpb24gZGVjbGFyYXRpb25zLgogICAKMjAwMi0wMi0wNiAwNTozMSAgamJwbgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAgIC0gcmVwbGFjZSB1c2Ugb2YgJDwgd2l0aCBleHBsaWNpdCBmaWxlbmFtZSwgc2luY2Ugbm9uLUdOVSBtYWtlcyBzZWVtCiAgICAgICB0byBiYXJmIG9uIGl0CiAgIAoyMDAyLTAyLTA2IDAzOjMxICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEZpeCBpbmNvcnJlY3QgZGlyZWN0b3J5IHNwZWNpZmljYXRpb24gaW4gJ21ha2UgY2xlYW4nCiAgIAoyMDAyLTAyLTA2IDAzOjE4ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oICwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFByb3RlY3QgdGhlIHByb2plY3QgY29uZmlnIGZpbGUgYWdhaW5zdCBtdWx0aXBsZSBpbmNsdXNpb24uCiAgIAoyMDAyLTAyLTA2IDAzOjA3ICBqYnBuCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgICAgLSByZW1vdmUgI2luY2x1ZGUgIi4uL3NubXBsaWIvc3lzdGVtLmgiIHdoaWNoIG5vIGxvbmdlciBleGlzdHMgYW5kCiAgICAgICBpcyBhcHBhcmVudGx5IHVubmVjZXNzYXJ5IGFueXdheS4KICAgCjIwMDItMDItMDYgMDI6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgICAtIHJlbW92ZSAjaW5jbHVkZSAiLi4vLi4vc25tcGxpYi9zeXN0ZW0uaCIgd2hpY2ggbm8gbG9uZ2VyIGV4aXN0cwogICAgICAgYW5kIGlzIGFwcGFyZW50bHkgdW5uZWNlc3NhcnkgYW55d2F5LgogICAKMjAwMi0wMi0wNSAxMTo0NCAgaGFyZGFrZXIKCiAgICogQ09QWUlORyAoVjQtMi1wYXRjaGVzLjcpLCBDT1BZSU5HOgoKICAgY29weXJpZ2h0IHllYXIgdXBkYXRlIGZvciBOQUkgYW5kIENhbWJyaWRnZQogICAKMjAwMi0wMi0wNSAwOTo1NCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHBlcmwgZml4ZXMKICAgCjIwMDItMDItMDUgMDk6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYyAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaAogICAsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gbW92ZSB0aGUgb2lkdHJlZV9jb21wYXJlIGZ1bmN0aW9uIHRvCiAgIHRoZSBtYWluIGxpYnJhcnkuCiAgIAoyMDAyLTAyLTA1IDA5OjUyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLCBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHBlcmwgYnVpbGQgZml4ZXMuCiAgIAoyMDAyLTAyLTA1IDA3OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIG9wcHMuICBSZW1vdmVkIGZvcmNlZCBwZXJsIGVtYmVkZGluZwogICAKMjAwMi0wMi0wNCAxNjoyMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHRoaXMgZmlsZSBzaG91bGRuJ3QgYmUgY2hlY2tlZCBpbgogICAKMjAwMi0wMi0wNCAxNjoyMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBhY2NvbmZpZy5oICwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluICwgYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9zbm1wX3BlcmwuYwogICAsIGFnZW50L3NubXBfcGVybC5wbCAsIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBTdXBwb3J0IGZvciBlbWJlZGRpbmcgcGVybCBzdWJyb3V0aW5lcyBpbnRvIHRoZSBhZ2VudCB0byBiZSBjYWxsZWQKICAgICBhcyBoYW5kbGVycy4KICAgLSBOZXcgY29uZmlndXJlIG9wdGlvbnM6CiAgICAgLS13aXRoLXBlcmwtbW9kdWxlcyBhdHRlbXB0cyB0byBidWlsZCBjb250YWluZWQgbW9kdWxlcyAocG9vcmx5IGN1cnJlbnRseSkuCiAgICAgLS1lbmFibGUtZW1iZWRkZWQtcGVybCBhY3R1YWxseSBzcGVjaWZpZXMgdG8gZG8gcGVybCBlbWJlZGRpbmcKICAgICB3aXRoaW4gdGhlIGFnZW50LgogICAKMjAwMi0wMi0wNCAxNjoxNiAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9BU04ucG0gLCBBU04vQVNOLnhzICwgQVNOL0NoYW5nZXMgLAogICBBU04vTUFOSUZFU1QgLCBBU04vTWFrZWZpbGUuUEwgLCBBU04vdGVzdC5wbCAsCiAgIGFnZW50L0NoYW5nZXMgLCBhZ2VudC9NQU5JRkVTVCAsIGFnZW50L01ha2VmaWxlLlBMICwKICAgYWdlbnQvYWdlbnQucG0gLCBhZ2VudC9hZ2VudC54cyAsIGFnZW50L3Rlc3QucGwgLAogICBhZ2VudC90eXBlbWFwICwgZGVmYXVsdF9zdG9yZS9DaGFuZ2VzICwKICAgZGVmYXVsdF9zdG9yZS9NQU5JRkVTVCAsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwgLAogICBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0gLAogICBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMgLCBkZWZhdWx0X3N0b3JlL3Rlc3QucGwgLAogICBkZWZhdWx0X3N0b3JlL3R5cGVtYXA6CgogICBCZWdpbm5pbmdzIG9mIG5ldyBwZXJsIG1vZHVsZXMgbmVlZGVkIHRvIGltcGxlbWVudCBhbiBTTk1QIGFnZW50IChvcgogICBhZ2VudHggc3ViYWdlbnQpIGluc2lkZSBwZXJsLgogICAgIC0gbm90IGNvbXBsZXRlIHlldC4KICAgICAtIG1heSBjaGFuZ2UuCiAgICAgLSBidXQgd29ya3MuCiAgIAoyMDAyLTAyLTA0IDA0OjM5ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gY29ycmVjdCBwcm9jZXNzaW5nIGZvciB0aW1ldGlja3Mgd2hlbiBEU19MSUJfTlVNRVJJQ19USU1FVElDS1MgaXMKICAgICAgIHNldCAoY29ycmVjdHMgYnVnICM1MTE3OTMsIHJlcG9ydGVkIGJ5IEFub255bW91cykuCiAgIAoyMDAyLTAyLTAxIDAxOjUwICBkdHMxMgoKICAgKiBGQVE6CgogICBDbGFyaWZ5IHRoZSBwcm9jZWR1cmUgZm9yIGNvbXBpbGluZyB3aXRoICdjYycgcmF0aGVyIHRoYW4gJ2djYycKICAgCjIwMDItMDEtMzEgMTQ6NTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIHMvc25tcGxpYlwvLy87CiAgIAoyMDAyLTAxLTMxIDA2OjU1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBmaXggbWFrZSBjbGVhbiBhcyByZXBvcnRlZCBieSBCcmFkbGV5IEJvemFydGguCiAgIAoyMDAyLTAxLTMwIDA4OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgQnJpbmcgTUlCIHZhcmlhYmxlIHZlcnNpb25UYWcgaW50byBsaW5lIHdpdGggdGhlIG5ldyA8bmV0LXNubXAvdmVyc2lvbi5oPiB1c2FnZQogICAKMjAwMi0wMS0yOSAxNzo1MyAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcgLCBhcHBzL3NubXB0cmFuc2xhdGUuYyAsCiAgIGFwcHMvc25tcHRyYXBkLmMgLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oICwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmggLAogICBzbm1wbGliL01ha2VmaWxlLmluICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICBNb3ZlZCB2ZXJzaW9uaW5nIGluZm9ybWF0aW9uIGZyb20gdmVyc2lvbi5oIHRvOgogICAgIC0gc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKICAgICAgIC0gZGVmaW5lIG5ldHNubXBfZ2V0X3ZlcnNpb24oKTsKICAgICAgIC0gY3JlYXRlIGEgY29uc3QgY2hhciAqTmV0U25tcFZlcnNpb25JbmZvCiAgICAgLSBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaDoKICAgICAgIC0gZXh0ZXJuIHRoZSBhYm92ZSBjaGFyICoKICAgICAgIC0gcHJvdG90eXBlIHRoZSBmdW5jdGlvbgogICAgIC0gaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmg6CiAgICAgICAtIGNyZWF0ZSBhIHN0YXRpYyB2YXJpYWJsZSAodGhlIG9sZCB3YXkpIGFuZCBzZXQgaXQgdG8gTmV0U25tcFZlcnNpb25JbmZvCiAgIAoyMDAyLTAxLTI5IDE2OjA5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogZXZhbF90b29scy5zaCAsIHRlc3RzL1QwNDlzbm1wdjNpbmZvcm0gLAogICB0ZXN0cy9UMDUwc25tcHYzdHJhcCAsIHRlc3RzL1QwNTFzbm1wdjJjdHJhcCAsCiAgIHRlc3RzL1QwNTJzbm1wdjJjaW5mb3JtICwgdGVzdHMvVDA1M2FnZW50djF0cmFwICwKICAgdGVzdHMvVDA1NGFnZW50djJjdHJhcCAsIHRlc3RzL1QwNTVhZ2VudHYxbWludHJhcCAsCiAgIHRlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAgLCB0ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCAsCiAgIHRlc3RzL1QxMTNhZ2VudHh0cmFwOgoKICAgdHJhcCB0ZXN0IGZpeGVzIHNvIHRoZSBtYWpvcml0eSBvZiB0aGUgdGVzdHMgbm93IHdvcmsuCiAgIAoyMDAyLTAxLTI5IDE2OjA4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGRvbid0IGdlbmVyYXRlIHVjZC1zbm1wLWNvbmZpZy5oIGFueSBsb25nZXIuCiAgIAoyMDAyLTAxLTI5IDE1OjIzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICwgY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gLAogICBpbmNsdWRlL25ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4LmggLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2QuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGkzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpNC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2dlbmVyaWMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2xpbnV4LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taXBzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjYuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjguaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N1bm9zLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdnI1LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zeXN2LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS91bHRyaXg0Lmg6CgogICBtb3ZlZCBzLyouaCBmaWxlcyB0byBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS8qLmgKICAgbW92ZWQgbS9nZW5lcmljLmggZmlsZXMgdG8gaW5jbHVkZS9uZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaAogICAKMjAwMi0wMS0yOSAwOToyNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCAtYyBhcmd1bWVudCBwYXJzaW5nLgogICAKMjAwMi0wMS0yOSAwOToxMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcmVmZXJlbmNlIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggaW5zdGVhZCBvZiBqdXN0IGNvbmZpZy5oCiAgIAoyMDAyLTAxLTI5IDA5OjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIGF0dGVtcHQgdG8gZml4IHRoZSB1bmtub3duIGVuZ2luZWlkL3Vua25vd24gdXNlciBwcm9ibGVtcyBvbmNlIGFuZCBmb3IgYWxsLgogICAKMjAwMi0wMS0yOCAyMToxMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgd2hvb3BzLiAgTWlzc2VkIHNvbWUgLmggZmlsZSBjaGVja3MgaW4gY29uZmlndXJlLiAgVGhhbmtzIFJvYmVydC4KICAgCjIwMDItMDEtMjggMjE6MDMgIGhhcmRha2VyCgogICAqIGxvY2FsL2NvbnZlcnRjb2RlOgoKICAgbWlub3IgZml4LgogICAKMjAwMi0wMS0yOCAyMTowMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvY29udmVydGNvZGU6CgogICBhZGRlZCBjb2RlIGNvbnZlcnQgc2NyaXB0IGZvciB1Y2Qtc25tcCAtPiBuZXQtc25tcCBoZWFkZXIgY29udmVyc2lvbgogICAKMjAwMi0wMS0yOCAyMDo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMgLAogICBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYyAsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jICwKICAgYXBwcy9zbm1wYnVsa2dldC5jICwgYXBwcy9zbm1wYnVsa3dhbGsuYyAsCiAgIGFwcHMvc25tcGRlbHRhLmMgLCBhcHBzL3NubXBkZi5jICwgYXBwcy9zbm1wZ2V0LmMKICAgLCBhcHBzL3NubXBnZXRuZXh0LmMgLCBhcHBzL3NubXBzZXQuYyAsCiAgIGFwcHMvc25tcHN0YXR1cy5jICwgYXBwcy9zbm1wdGFibGUuYyAsIGFwcHMvc25tcHRlc3QuYwogICAsIGFwcHMvc25tcHRyYW5zbGF0ZS5jICwgYXBwcy9zbm1wdHJhcC5jICwKICAgYXBwcy9zbm1wdHJhcGQuYyAsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMgLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYyAsIGFwcHMvc25tcHVzbS5jICwgYXBwcy9zbm1wdmFjbS5jCiAgICwgYXBwcy9zbm1wd2Fsay5jICwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgogICAsIGFwcHMvc25tcG5ldHN0YXQvaWYuYyAsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiAgICwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jICwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMKICAgLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMgLCBpbmNsdWRlL25ldC1zbm1wL2FzbjEuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvY2FsbGJhY2suaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9saXN0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2RlZmF1bHRfc3RvcmUuaCAsIGluY2x1ZGUvbmV0LXNubXAvZ2V0b3B0LmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL2ludDY0LmggLCBpbmNsdWRlL25ldC1zbm1wL2tleXRvb2xzLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL2xjZF90aW1lLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnNubXAuaCAsIGluY2x1ZGUvbmV0LXNubXAvbWQ1LmggLAogICBpbmNsdWRlL25ldC1zbm1wL21pYi5oICwgaW5jbHVkZS9uZXQtc25tcC9tdF9zdXBwb3J0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9vaWRfYXJyYXkuaCAsIGluY2x1ZGUvbmV0LXNubXAvb2lkX3N0YXNoLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3BhcnNlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3JlYWRfY29uZmlnLmggLCBpbmNsdWRlL25ldC1zbm1wL3NjYXBpLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXAtdGMuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcC5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wQ2FsbGJhY2tEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcElQWERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBUQ1BJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVRFBEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVEUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVuaXhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hbGFybS5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2NsaWVudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2RlYnVnLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfZW51bS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2ltcGwuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2NraW5nLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfbG9nZ2luZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9zZWNtb2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF90cmFuc3BvcnQuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcGtzbS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXB1c21faW5pdC5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjMuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLmggLCBpbmNsdWRlL25ldC1zbm1wL3Rvb2xzLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3RyYW5zZm9ybV9vaWRzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3ZhY20uaCAsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oCiAgICwgbWFuL01ha2VmaWxlLmluICwgc25tcGxpYi9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvYXNuMS5jICwgc25tcGxpYi9hc24xLmggLCBzbm1wbGliL2NhbGxiYWNrLmMKICAgLCBzbm1wbGliL2NhbGxiYWNrLmggLCBzbm1wbGliL2RhdGFfbGlzdC5jICwKICAgc25tcGxpYi9kYXRhX2xpc3QuaCAsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmggLCBzbm1wbGliL2dldG9wdC5oICwKICAgc25tcGxpYi9pbnQ2NC5jICwgc25tcGxpYi9pbnQ2NC5oICwgc25tcGxpYi9rZXl0b29scy5jCiAgICwgc25tcGxpYi9rZXl0b29scy5oICwgc25tcGxpYi9sY2RfdGltZS5jICwKICAgc25tcGxpYi9sY2RfdGltZS5oICwgc25tcGxpYi9saWJzbm1wLmggLCBzbm1wbGliL21kNS5jCiAgICwgc25tcGxpYi9tZDUuaCAsIHNubXBsaWIvbWliLmMgLCBzbm1wbGliL21pYi5oCiAgICwgc25tcGxpYi9tdF9zdXBwb3J0LmMgLCBzbm1wbGliL210X3N1cHBvcnQuaCAsCiAgIHNubXBsaWIvb2lkX2FycmF5LmMgLCBzbm1wbGliL29pZF9hcnJheS5oICwKICAgc25tcGxpYi9vaWRfc3Rhc2guYyAsIHNubXBsaWIvb2lkX3N0YXNoLmggLAogICBzbm1wbGliL3BhcnNlLmMgLCBzbm1wbGliL3BhcnNlLmggLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMgLCBzbm1wbGliL3JlYWRfY29uZmlnLmggLAogICBzbm1wbGliL3NjYXBpLmMgLCBzbm1wbGliL3NjYXBpLmggLCBzbm1wbGliL3NubXAtdGMuYwogICAsIHNubXBsaWIvc25tcC10Yy5oICwgc25tcGxpYi9zbm1wLmMgLAogICBzbm1wbGliL3NubXAuaCAsIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYyAsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uaCAsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5oICwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBJUFhEb21haW4uaCAsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVENQRG9tYWluLmggLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmggLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwogICAsIHNubXBsaWIvc25tcFVEUERvbWFpbi5oICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5oICwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5oICwgc25tcGxpYi9zbm1wX2FsYXJtLmMKICAgLCBzbm1wbGliL3NubXBfYWxhcm0uaCAsIHNubXBsaWIvc25tcF9hcGkuYyAsCiAgIHNubXBsaWIvc25tcF9hcGkuaCAsIHNubXBsaWIvc25tcF9hdXRoLmMgLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMgLCBzbm1wbGliL3NubXBfY2xpZW50LmggLAogICBzbm1wbGliL3NubXBfZGVidWcuYyAsIHNubXBsaWIvc25tcF9kZWJ1Zy5oICwKICAgc25tcGxpYi9zbm1wX2VudW0uYyAsIHNubXBsaWIvc25tcF9lbnVtLmggLAogICBzbm1wbGliL3NubXBfaW1wbC5oICwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyAsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmggLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuaCAsIHNubXBsaWIvc25tcF9zZWNtb2QuYyAsCiAgIHNubXBsaWIvc25tcF9zZWNtb2QuaCAsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYyAsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuaCAsIHNubXBsaWIvc25tcGtzbS5jICwKICAgc25tcGxpYi9zbm1wa3NtLmggLCBzbm1wbGliL3NubXB1c20uYyAsCiAgIHNubXBsaWIvc25tcHVzbS5oICwgc25tcGxpYi9zbm1wdjMuYyAsIHNubXBsaWIvc25tcHYzLmgKICAgLCBzbm1wbGliL3N5c3RlbS5jICwgc25tcGxpYi9zeXN0ZW0uaCAsCiAgIHNubXBsaWIvdG9vbHMuYyAsIHNubXBsaWIvdG9vbHMuaCAsCiAgIHNubXBsaWIvdHJhbnNmb3JtX29pZHMuaCAsIHNubXBsaWIvdmFjbS5jICwKICAgc25tcGxpYi92YWNtLmggLCB0ZXN0aW5nL1JVTlRFU1RTICwKICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoICwgaW5jbHVkZS91Y2Qtc25tcC9hc24xLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2NhbGxiYWNrLmggLCBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvaW50NjQuaCAsIGluY2x1ZGUvdWNkLXNubXAva2V5dG9vbHMuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvbWliLmggLCBpbmNsdWRlL3VjZC1zbm1wL21pYmluY2wuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvcGFyc2UuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCAsIGluY2x1ZGUvdWNkLXNubXAvc2NhcGkuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcC10Yy5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWxhcm0uaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hcGkuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9jbGllbnQuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9kZWJ1Zy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfcGFyc2VfYXJncy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3ZhcnMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcHVzbS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdjMuaCAsIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3RyYW5zZm9ybV9vaWRzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3V0aWxfZnVuY3MuaDoKCiAgIE1ham9yIGZpbGUgbW92aW5nIGFuZCBlZGl0aW5nIG9mIGluY2x1ZGUgZGlyZWN0aXZlcy4KICAgICAtIGVzc2VudGlhbGx5IGFkZHMgdXAgdG86CiAgICAgICAtIG12IHNubXBsaWIvKi5oIGluY2x1ZGUvbmV0LXNubXAvCiAgICAgICAtIGxvY2FsL2NvbnZlcnRjb2RlIGBmaW5kIC4gLW5hbWUgXCouYyBcKi5oYAogICAKMjAwMi0wMS0yOCAyMDo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMgLCBhZ2VudF9pbmRleC5jICwKICAgYWdlbnRfcmVhZF9jb25maWcuYyAsIGFnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudF90cmFwLmMKICAgLCBhdXRvX25saXN0LmMgLCBrZXJuZWwuYyAsIG1pYl9tb2R1bGVzLmMgLAogICBzbm1wX2FnZW50LmMgLCBzbm1wX3ZhcnMuYyAsIHNubXBkLmMgLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jICwgaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMgLAogICBoZWxwZXJzL2luc3RhbmNlLmMgLCBoZWxwZXJzL211bHRpcGxleGVyLmMgLAogICBoZWxwZXJzL251bGwuYyAsIGhlbHBlcnMvb2xkX2FwaS5jICwgaGVscGVycy9yZWFkX29ubHkuYwogICAsIGhlbHBlcnMvc2VyaWFsaXplLmMgLCBoZWxwZXJzL3RhYmxlLmMgLAogICBoZWxwZXJzL3RhYmxlX2FycmF5LmMgLCBoZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGhlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsIG1pYmdyb3VwL2hvc3RfcmVzLmggLAogICBtaWJncm91cC9rZXJuZWxfc3Vub3M1LmMgLCBtaWJncm91cC9taWJpbmNsLmggLAogICBtaWJncm91cC90ZXN0ZGVsYXllZC5jICwgbWliZ3JvdXAvdGVzdGhhbmRsZXIuYyAsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuYyAsIG1pYmdyb3VwL1Jtb24vYWxhcm0uYyAsCiAgIG1pYmdyb3VwL1Jtb24vZXZlbnQuYyAsIG1pYmdyb3VwL1Jtb24vaGlzdG9yeS5jICwKICAgbWliZ3JvdXAvUm1vbi9yb3dzLmMgLCBtaWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jICwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwogICAsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jICwKICAgbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jICwgbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMKICAgLCBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYyAsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jICwgbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYwogICAsIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMKICAgLCBtaWJncm91cC9taWJJSS9hdC5jICwgbWliZ3JvdXAvbWliSUkvaWNtcC5jICwKICAgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwgbWliZ3JvdXAvbWliSUkvaXAuYyAsCiAgIG1pYmdyb3VwL21pYklJL2lwQWRkci5jICwgbWliZ3JvdXAvbWliSUkvaXB2Ni5jICwKICAgbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMgLCBtaWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jCiAgICwgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYyAsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyAsIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwogICAsIG1pYmdyb3VwL21pYklJL3RjcC5jICwgbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIG1pYmdyb3VwL21pYklJL3VkcC5jICwgbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwogICAsIG1pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLCBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuaAogICAsIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwgbWliZ3JvdXAvbWliSkovaWNtcC5jCiAgICwgbWliZ3JvdXAvbWliSkovaW50ZXJmYWNlcy5jICwgbWliZ3JvdXAvbWliSkovaXAuYwogICAsIG1pYmdyb3VwL21pYkpKL2lwQWRkci5jICwgbWliZ3JvdXAvbWliSkovaXBNZWRpYS5jCiAgICwgbWliZ3JvdXAvbWliSkovaXB2Ni5jICwgbWliZ3JvdXAvbWliSkova2VybmVsX2xpbnV4LmMKICAgLCBtaWJncm91cC9taWJKSi9zbm1wX21pYi5jICwgbWliZ3JvdXAvbWliSkovc3lzT1JUYWJsZS5jCiAgICwgbWliZ3JvdXAvbWliSkovc3lzdGVtX21pYi5jICwgbWliZ3JvdXAvbWliSkovdGNwLmMKICAgLCBtaWJncm91cC9taWJKSi90Y3BUYWJsZS5jICwgbWliZ3JvdXAvbWliSkovdWRwLmMgLAogICBtaWJncm91cC9taWJKSi91ZHBUYWJsZS5jICwgbWliZ3JvdXAvbWliSkovdmFjbV92YXJzLmMgLAogICBtaWJncm91cC9taXNjL2RsbW9kLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgbWliZ3JvdXAvc211eC9zbXV4LmMgLCBtaWJncm91cC9zbXV4L3NubXBfYmdwLmMgLAogICBtaWJncm91cC9zbXV4L3NubXBfb3NwZi5jICwgbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYyAsCiAgIG1pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMgLCBtaWJncm91cC9zbm1wdjMvdXNtVXNlci5jCiAgICwgbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaDoKCiAgIE1ham9yIGZpbGUgbW92aW5nIGFuZCBlZGl0aW5nIG9mIGluY2x1ZGUgZGlyZWN0aXZlcy4KICAgICAtIGVzc2VudGlhbGx5IGFkZHMgdXAgdG86CiAgICAgICAtIG12IHNubXBsaWIvKi5oIGluY2x1ZGUvbmV0LXNubXAvCiAgICAgICAtIGxvY2FsL2NvbnZlcnRjb2RlIGBmaW5kIC4gLW5hbWUgXCouYyBcKi5oYAogICAKMjAwMi0wMS0yOCAxOTo0MiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1jb25maWcuaDoKCiAgIHJlbW92ZSBVQ0RfQ09NUEFUIGZsYWcgYW5kIERFRklORSBJVCBpbnN0ZWFkCiAgIAoyMDAyLTAxLTI4IDE5OjQxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWNvbmZpZy5oOgoKICAgcmVtb3ZlIFVDRF9DT01QQVQgZmxhZyBhbmQgZGVmaW5lIGl0IGluc3RlYWQKICAgCjIwMDItMDEtMjUgMTE6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIHBhcnNlX29uZV9vaWRfaW5kZXg6CiAgICAgLSB1c2UgYW4gdW5zaWduZWQgaW50IGZvciBsZW5ndGgncyBwdWxsZWQgZnJvbSB0aGUgb2lkLgogICAgIC0gTWFrZSBzdXJlIHRoZXkncmUgYWx3YXlzIDwgMTI4CiAgIAoyMDAyLTAxLTI1IDA5OjEyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICAgIC0gY2xvc2VyIGFkaGVyZW5jZSB0byBzdGF0ZSBtYWNoaW5lcyBkZXNjcmliZWQgaW4gUkZDIDI1NzQKICAgCjIwMDItMDEtMjUgMDk6MTAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gY2F1c2UgdXNtRGVjcnlwdGlvbkVycm9yIHJlcG9ydHMgdG8gYmUgc2VudCBpbiBhIGNvdXBsZSBvZiBleHRyYQogICAgICAgY2FzZXM6IGJhZCBzYWx0IChsZW5ndGggIT0gOCkgYW5kIGxlbmd0aCBvZiBlbmNyeXB0ZWQgZGF0YSBub3QgYQogICAgICAgbXVsdGlwbGUgb2YgOCBvY3RldHMgKHBlciBSRkMgMjU3NCkuCiAgIAoyMDAyLTAxLTI1IDA5OjA0ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBmb3IgdW5rbm93biBtZXNzYWdlIHR5cGVzLCBpbmNyZW1lbnQgc25tcEluQVNOUGFyc2VFcnJzIGFuZCBmYWlsCiAgICAgICBhdCB0aGUgcG9zdC1wYXJzZSBzdGFnZS4KICAgCiAgICAgLSBmb3Igbm90aWZpY2F0aW9uIHR5cGVzLCBpbmNyZW1lbnQgc25tcFVua25vd25QRFVIYW5kbGVycyBhbmQgYmFpbAogICAgICAgb3V0IGVhcmx5LgogICAKMjAwMi0wMS0yNSAwOTowMSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gZm9yIHVuaGFuZGxlZCBtZXNzYWdlcyAoZS5nLiBSRVNQT05TRSBtZXNzYWdlcyBzZW50IHRvIGFnZW50cyksCiAgICAgICBpbmNyZW1lbnQgdGhlIHNubXBVbmtub3duUERVSGFuZGxlcnMgY291bnRlci4KICAgCiAgICAgLSB0cnkgdG8gZnJlZSBzZWN1cml0eVN0YXRlUmVmcyB3aGVuIHBvc3QtcGFyc2UgZmFpbHMuCiAgIAoyMDAyLTAxLTI1IDA2OjI2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMgKFY0LTItcGF0Y2hlcy42KSwgdmFjbV92YXJzLmM6CgogICAgIC0gZml4IG1pbm9yIHByb2JsZW0gd2l0aCBzdG9yYWdlVHlwZSAoYWx3YXlzIG9rYXkgdG8gc2V0IHRvIGN1cnJlbnQKICAgICAgIHZhbHVlKS4KICAgCiAgICAgLSBkb24ndCByZXNldCBzb21lIHZhcmlhYmxlcyB0byBvbGQgdmFsdWUgdW5sZXNzIHdlIGFjdHVhbGx5IHNldAogICAgICAgdGhlbSBpbiB0aGUgZmlyc3QgcGxhY2UhCiAgIAoyMDAyLTAxLTI1IDA1OjAwICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgICAgLSBkb24ndCBwcmludCBvdXQgZGVidWdnaW5nIGluZm8gaW4gYSBmdXJ0aGVyIGNhc2Ugd2hlcmUgaXQgaGFzIGJlZW4KICAgICAgIGZyZWUoKWQuCiAgIAogICAgIC0gc2V0IHRoZSBleGNlcHRpb24gbm9TdWNoSW5zdGFuY2UgcmF0aGVyIHRoYW4gZXJyb3Igbm9TdWNoTmFtZSB3aGVuCiAgICAgICB3ZSBoYXZlIHRoZSBpbmNvcnJlY3QgbnVtYmVyIG9mIGluZGljZXMuCiAgIAoyMDAyLTAxLTI1IDA0OjU0ICBkdHMxMgoKICAgKiBzbm1wbGliL1JFQURNRS5uZXdsaWI6CgogICBmaWxlIFJFQURNRS5uZXdsaWIgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUxJQlJBUlktQVBJLgogICAKMjAwMi0wMS0yNSAwNDo0OSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAgIC0gbW92ZSBkZWJ1Z2dpbmcgb3V0cHV0IHRvIGJlZm9yZSB3aGVyZSAocG90ZW50aWFsbHkpIHRoZSBkYXRhIGl0IGlzCiAgICAgICB0cnlpbmcgdG8gcHJpbnQgZ2V0cyBmcmVlKClkLgogICAKMjAwMi0wMS0yNSAwNDo0MCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0ga2VlcCBhc3AtPnZiY291bnQgY29ycmVjdCBpbiBjcmVhdGVfc3VidHJlZV9jYWNoZSgpIGlmIHdlIGR1bXAKICAgICAgIHZhcmJpbmRzIGluIHRoZSBHRVRORVhUIGNhc2UgYmVjYXVzZSBudW12YXJiaW5kcyA+IG5vbi1yZXBlYXRlcnMuCiAgICAgICBGYWlsaW5nIHRvIGRvIHRoaXMgd2lsbCBjYXVzZSBwcm9ibGVtcyBsYXRlciB3aGVuIHlvdSBpdGVyYXRlIG92ZXIKICAgICAgIDAgLi4gYXNwLT52YmNvdW50IC0gMSBpbiByZWFzc2lnbl9yZXF1ZXN0cygpLgogICAKMjAwMi0wMS0yNCAxNToxMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIHVwZGF0ZSBtYWNyb3MgdG8gcHV0IHBhcmVucyBhcm91bmQgcGFyYW1ldGVycyB3aGVuIHVzZWQsIGluIGNhc2UgYSBwYXJhbWV0ZXIgaXMgYW4gZXhwcmVzc2lvbiwgd2hpY2ggbWlnaHQgbXVjayBhYm91dCB3aXRoIG9wZXJhdG9yIHByZWNlZGVuY2UgcnVsZXMgYW5kIGNhdXNlIHVuZXhwZWN0ZWQgYW5kIHVuZGVzaXJhYmxlIGJlaGF2aW9yLgogICAKMjAwMi0wMS0yNCAxMTowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHRyeSB0byBmaW5kICYgaGFuZGxlIGV4dGVybmFsIGluZGV4ZXM7IHVzZSBuZXcgc3R5bGUgbmV0LXNubXAgaW5jbHVkZXM7IGFkZAogICByb3dfY29weTsgdXNlIGNvbnRleHQgdHlwZXMgJiBjYXN0cyBpbiBwYXJhbWV0ZXJzIGluc3RlYWQgb2YgZ2VuZXJpYyB0eXBlcwogICByZWNhc3QgaW5zaWRlIG1ldGhvZAogICAKMjAwMi0wMS0yNCAwNjowMyAgamJwbgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYyAoVjQtMi1wYXRjaGVzLjMpLCByZWFkX2NvbmZpZy5jOgoKICAgICAtIGF2b2lkIGZvcm1hdCBzdHJpbmcgbmFzdGllcyBpbiByZWFkX2NvbmZpZ19zdG9yZSgpIHdoZW4gd3JpdGluZyB0bwogICAgICAgZmlsZXMgKGV4cG9zZWQgZS5nLiBieSB0aGUgcGVyc2lzdGVudCBzeXNOYW1lLjAgc3R1ZmYgLS0gdHJ5CiAgICAgICBzbm1wc2V0IGhvc3Qgc3lzTmFtZS4wIHMgIiUwOHgiIC0tIG9vcHMpCiAgIAoyMDAyLTAxLTI0IDA0OjM0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIGRvbid0IGF1dG9tYXRpY2FsbHkgYWNjZXB0IGEgbXNnVXNlck5hbWUgb2YgIiIgd2hlbiBwcm9jZXNzaW5nCiAgICAgICBpbmNvbWluZyBtZXNzYWdlcy4KICAgCjIwMDItMDEtMjQgMDQ6MzAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGJpZ2dlciBidWZmZXIgZm9yIG1zZ0F1dGhvcml0YXRpdmVFbmdpbmVJRCBmaWVsZCBzaW5jZSBpdCBpcyBub3QKICAgICAgIGxpbWl0ZWQgdG8gMzIgYnl0ZXMgbGlrZSBTbm1wRW5naW5lVEMuICBSZWFsbHkgdGhpcyBuZWVkcyB0byBiZQogICAgICAgYWxsb2NhdGVkIGJ5IHRoZSBzZWN1cml0eSBtb2R1bGUgYnV0IGZvciBub3cgd2UnbGwganVzdCBtYWtlIGl0CiAgICAgICB0d2ljZSBhcyBiaWcuCiAgIAoyMDAyLTAxLTI0IDAzOjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLCBzbm1wbGliL3NubXAtdGMuYzoKCiAgIEFJWCBzdXBwb3J0IGZvciB0aGUgSG9zdCBSZXNvdXJjZXMgbW9kdWxlLgogICAgICAoVGhhbmtzIHRvIEFuZHkgSG9vZCkKICAgCjIwMDItMDEtMjMgMDg6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gc2V0IHZpZXdUeXBlIHRvIHRoZSBERUZWQUwgaW5jbHVkZWQoMSkgZm9yIG5ldyByb3dzCiAgIAoyMDAyLTAxLTIzIDA3OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBzZWNNb2RlbCBvZiAwIGlzIGEgcGFyc2UgZXJyb3IgaW4gSGVhZGVyRGF0YQogICAKMjAwMi0wMS0yMyAwNzoyMyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gYmUgY2FyZWZ1bCB0byBmcmVlIHNlY3VyaXR5U3RhdGVSZWYgaW4gYSBjb3VwbGUgb2YgZXJyb3IgY2FzZXMgaW4KICAgICAgIHNubXB2M19wYXJzZSAtLSBmaXhlcyBtZW1vcnkgbGVha3Mgd2hlbiBtYWxmb3JtZWQgUERVcyBhcmUKICAgICAgIHJlY2VpdmVkLgogICAKMjAwMi0wMS0yMiAxOTo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9hcGkuaDoKCiAgIGNoZyBhcGkgZm9yIHNubXBfb2lkX25jb21wYXJlLCBkb24ndCBpbXBsZW1lbnQgaXQgdmkgc25tcF9vaWRfY29tcGFyZQogICAKMjAwMi0wMS0yMiAxOTo0NiAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBvaWRfYXJyYXkuYyAsIG9pZF9hcnJheS5oOgoKICAgYWRkIEdldF9vaWRfZGF0YV9jb3VudCgpOyBhZGQgc3Vic2V0IHN1cHBvcnQKICAgCjIwMDItMDEtMjIgMTk6NDQgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogbWliLmMgLCBtaWIuaDoKCiAgIGFkZCBuZXRzbm1wX3N0cjJvaWQoKQogICAKMjAwMi0wMS0yMiAxOTo0MSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIGFkZCBzdWJzZXQgZnVuY3Rpb24KICAgCjIwMDItMDEtMjIgMTk6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBhZGQgc3Vic2V0IGZ1bmN0aW9uOyBhZGQgcHJlbGltaW5hcnkgbG9ja2luZyBjb2RlOyBhZGQgdGFfY2hlY2tfcm93X3N0YXR1cwogICAKMjAwMi0wMS0yMiAwNjozMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jIChWNC0yLXBhdGNoZXMuNCksIHZhY21fdmFycy5jOgoKICAgICAtIGZpeCBidWcganVzdCBpbnRyb2R1Y2VkIHdoZXJlIHNldHRpbmcgYW4gZXhpc3Rpbmcgcm93J3Mgc3RhdHVzIHRvCiAgICAgICBjcmVhdGVBbmRHbyg0KSBvciBjcmVhdGVBbmRXYWl0KDUpIHdvdWxkIGRlbGV0ZSB0aGUgcm93LgogICAKMjAwMi0wMS0yMiAwNDo1OCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBjYXVzZSBhIHBhcnNlIGVycm9yIGlmIHdlIHJlY2VpdmUgVXNtU2VjdXJpdHlQYXJhbWV0ZXJzIHdpdGggYQogICAgICAgbXNnVXNlck5hbWUgdGhhdCBpcyBpbGxlZ2FsbHkgbG9uZy4KICAgCjIwMDItMDEtMjIgMDM6MTAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgICAtIG9vcHMsIGxlZnQgb2xkIGNvZGUgaW4gI2lmIDAgYnJhbmNoIEFHQUlOLiAgSSBhbSBnZXR0aW5nIGludG8gYmFkCiAgICAgICBoYWJpdHMhCiAgIAoyMDAyLTAxLTIyIDAzOjA4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWtzIGluIHJvdyBjcmVhdGlvbi9kZXN0cnVjdGlvbgogICAKICAgICAtIG1vcmUgYWdncmVzc2l2ZSB2YWxpZGl0eSBjaGVja2luZyBvZiBzbm1wTm90aWZ5VGFnLCBzbm1wTm90aWZ5VHlwZQogICAgICAgYW5kIHNubXBOb3RpZnlTdG9yYWdlVHlwZS4KICAgCiAgICAgLSBwYXNzZXMgNi41LjEuMCAtLSA2LjUuOC4zCiAgIAoyMDAyLTAxLTIyIDAxOjQ3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jICwgc25tcFRhcmdldFBhcmFtc0VudHJ5Lmg6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lcyBmb3Igc25tcFRhcmdldFBhcmFtc1RhYmxlCiAgIAoyMDAyLTAxLTIxIDIzOjQ4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAgIC0gdGlkeSB0aGluZ3MgdXAgYSBiaXQgKGhhZCBsZWZ0IHNvbWUgb2xkIGNvZGUgc2l0dGluZyBpZiAjaWYgMAogICAgICAgYnJhbmNoKS4KICAgCiAgICAgLSByZW1lbWJlciB0byBjbG9zZSAodGFyZ2V0LT5zZXNzKSB3aGVuIHdlIG1vdmUgYSB0YXJnZXQgdG8KICAgICAgIG5vdEluU2VydmljZSgyKS4KICAgCjIwMDItMDEtMjEgMTE6MDQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmVzIGZvciBzbm1wVGFyZ2V0QWRkclRhYmxlCiAgIAoyMDAyLTAxLTIxIDA2OjQ3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIHNubXBUYXJnZXRBZGRyRW50cnkuaDoKCiAgICAgLSBpbXBsZW1lbnQgc25tcFRhcmdldFNwaW5Mb2NrIG9iamVjdAogICAKMjAwMi0wMS0xOCAwOToxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmUgZm9yIHZhY21WaWV3VHJlZUZhbWlseVRhYmxlLiAgUGFzc2VzIGFsbCB0aGUKICAgICAgIHJlbGV2YW50IFNpbHZlcmNyZWVrIFZBQ00gdGV0c3QgKDUuNC4wLjEgLS0gNS40LjkuNyBpbmNsdXNpdmUpLgogICAKMjAwMi0wMS0xOCAwODo0OSAgamJwbgoKICAgKiBzbm1wbGliLzogdmFjbS5jICwgdmFjbS5oOgoKICAgICAtIGFkZCBhIHN3aXRjaCB0byB2YWNtX2dldFZpZXdFbnRyeSgpIHRvIGFsbG93IHRoZSBtYXNrIGVudHJpZXMKICAgICAgIHRvIGJlIGlnbm9yZSAod2hpY2ggaXMgd2hhdCB5b3Ugd2FudCB3aGVuIHlvdSBhcmUganVzdCB1c2luZyB0aGlzCiAgICAgICBmdW5jdGlvbiB0byBsb29rIHVwIGFuIGVudHJ5IGluIHRoZSB0YWJsZSBpbiBvcmRlciB0byB3cml0ZSBzb21lIG5ldwogICAgICAgdmFsdWUgdG8gb25lIG9mIHRoZSBjb2x1bW5hciBvYmplY3RzKS4KICAgCjIwMDItMDEtMTggMDY6MDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lIGZvciB2YWNtQWNjZXNzVGFibGUuICBQYXNzZXMgYWxsIHRoZSByZWxldmFudAogICAgICAgU2lsdmVyY3JlZWsgVkFDTSB0ZXRzdCAoNS4zLjAgLS0gNS4zLjkuNyBpbmNsdXNpdmUpLgogICAKMjAwMi0wMS0xOCAwNDoxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmUgZm9yIHZhY21TZWN1cml0eVRvR3JvdXBUYWJsZSAoaS5lLiBkb24ndAogICAgICAganVzdCBkbyBldmVyeXRoaW5nIGluIHRoZSBDT01NSVQgcGhhc2UpLiAgUGFzc2VzIGFsbCB0aGUgcmVsZXZhbnQKICAgICAgIFNpbHZlcmNyZWVrIFZBQ00gdGV0c3QgKDUuMi4wIC0tIDUuMi45LjcgaW5jbHVzaXZlKS4KICAgCjIwMDItMDEtMTggMDQ6MDggIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGRvbid0IG92ZXJ3cml0ZSBhbiBleGlzdGluZyBlcnJvciBzdGF0dXMgYWZ0ZXIgQ09NTUlUIG9yIFVORE8KICAgICAgIHBoYXNlcyB3aXRoIGNvbW1pdEZhaWxlZCBvciB1bmRvRmFpbGVkIChidXQgZG8gdHJhbnNsYXRlIGVycm9yCiAgICAgICByZXR1cm5zIGZyb20gdGhvc2UgcGhhc2VzIGludG8gdGhvc2UgZXJyb3JzIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhbgogICAgICAgZXhpc3RpbmcgZXJyb3Igc3RhdHVzKS4KICAgCjIwMDItMDEtMTcgMDY6NTcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGhhbmRsZSBpbGxlZ2FsIHZhbHVlcyBvZiBtc2dJRCBjb3JyZWN0bHkgKGJ5IGRyb3BwaW5nIHRoZSBwYWNrZXQKICAgICAgIGFuZCBpbmNyZW1lbnRpbmcgc25tcEluQVNOUGFyc2VFcnJzKQogICAKMjAwMi0wMS0xNyAwNjozOCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gaGFuZGxlIGlsbGVnYWwgdmFsdWVzIG9mIG1zZ01heFNpemUgY29ycmVjdGx5IChieSBkcm9wcGluZyB0aGUKICAgICAgIHBhY2tldCBhbmQgaW5jcmVtZW50aW5nIHNubXBJbkFTTlBhcnNlRXJycykKICAgCjIwMDItMDEtMTUgMDg6MTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICB0b3AgbGV2ZWwgaW5jbHVkZSB3aGljaCBpbmNsdWRlcyB1c2VmdWwgc25tcGxpYiBoZWFkZXJzCiAgIAoyMDAyLTAxLTE1IDA4OjE1ICByc3RvcnkKCiAgICogaW5jbHVkZS91Y2Qtc25tcC86IGFnZW50X2luZGV4LmggLCBhZ2VudF9yZWFkX2NvbmZpZy5oCiAgICwgYWdlbnRfcmVnaXN0cnkuaCAsIGFnZW50X3RyYXAuaCAsIGFzbjEuaCAsCiAgIGF1dG9fbmxpc3QuaCAsIGNhbGxiYWNrLmggLCBkZWZhdWx0X3N0b3JlLmggLAogICBkc19hZ2VudC5oICwgaGVhZGVyX2NvbXBsZXguaCAsIGludDY0LmggLCBrZXl0b29scy5oCiAgICwgbWliLmggLCBtaWJfbW9kdWxlX2NvbmZpZy5oICwgbWliaW5jbC5oICwKICAgcGFyc2UuaCAsIHJlYWRfY29uZmlnLmggLCBzY2FwaS5oICwgc25tcC10Yy5oICwKICAgc25tcC5oICwgc25tcF9hZ2VudC5oICwgc25tcF9hbGFybS5oICwgc25tcF9hcGkuaAogICAsIHNubXBfY2xpZW50LmggLCBzbm1wX2RlYnVnLmggLCBzbm1wX2ltcGwuaCAsCiAgIHNubXBfbG9nZ2luZy5oICwgc25tcF9wYXJzZV9hcmdzLmggLCBzbm1wX3ZhcnMuaCAsCiAgIHNubXB1c20uaCAsIHNubXB2My5oICwgc3RydWN0LmggLCBzeXN0ZW0uaCAsCiAgIHRvb2xzLmggLCB0cmFuc2Zvcm1fb2lkcy5oICwgdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaAogICAsIHVjZC1zbm1wLWNvbmZpZy5oICwgdWNkLXNubXAtaW5jbHVkZXMuaCAsCiAgIHV0aWxfZnVuY3MuaCAsIHZhcl9zdHJ1Y3QuaCAsIHZlcnNpb24uaDoKCiAgIGNyZWF0ZSA0LnggaGVhZGVycyB0aGF0IGFyZSB3cmFwcGVycyBwb2ludGluZyB0byBuZXcgaGVhZGVycwogICAKMjAwMi0wMS0xNCAxNTowOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIGFkZCBVc2VyUm93QWN0aW9uIGFuZCB2b2lkIHBvaW50ZXIKICAgCjIwMDItMDEtMTQgMTM6NDEgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMgLCBNYWtlZmlsZS5pbjoKCiAgIC0+IG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKICAgCjIwMDItMDEtMTQgMTM6NDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIHJlbW92ZWQKICAgCjIwMDItMDEtMTQgMTM6MjkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBjb3B5IHVjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmggYW5kIHVwZGF0ZSB0byBuZXQtc25tcCB1c2UgbmV3IGFnZW50IGRpcgogICAKMjAwMi0wMS0xNCAwODowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaCAsCiAgIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsIGFnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGFnZW50L2FnZW50X2luZGV4LmMgLCBhZ2VudC9hZ2VudF9pbmRleC5oICwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmggLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L2FnZW50X3RyYXAuaCAsCiAgIGFnZW50L2F1dG9fbmxpc3QuYyAsIGFnZW50L2F1dG9fbmxpc3QuaCAsCiAgIGFnZW50L2RzX2FnZW50LmggLCBhZ2VudC9rZXJuZWwuYyAsIGFnZW50L21pYl9tb2R1bGVzLmMKICAgLCBhZ2VudC9taWJfbW9kdWxlcy5oICwgYWdlbnQvc25tcF9hZ2VudC5jICwKICAgYWdlbnQvc25tcF9hZ2VudC5oICwgYWdlbnQvc25tcF92YXJzLmMgLAogICBhZ2VudC9zbm1wX3ZhcnMuaCAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oICwgYWdlbnQvdmFyX3N0cnVjdC5oICwKICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiAsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKICAgLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvbnVsbC5jICwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jICwgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgKICAgLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmggLAogICBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAsIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwogICAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovaWNtcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovaW50ZXJmYWNlcy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSkovaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYkpKL2lwQWRkci5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovaXBNZWRpYS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovaXBSb3V0ZS5jICwgYWdlbnQvbWliZ3JvdXAvbWliSkovaXB2Ni5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSkovc3lzT1JUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovc3lzdGVtX21pYi5jICwgYWdlbnQvbWliZ3JvdXAvbWliSkovdGNwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJKSi90Y3BUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovdWRwLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi91ZHBUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSkovdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYyAsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYwogICAsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jICwKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmggLCBhcHBzL3NubXB0cmFwZC5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9pbmRleC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgbW92ZWQgdGhlIC9hZ2VudCBpbnN0YWxsZWQgaGVhZGVycyB0byAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50CiAgIAoyMDAyLTAxLTEzIDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGFkZCBhIGNvdXBsZSBtb3JlIGluc3RhbGwgaGVhZGVycy4KICAgCjIwMDItMDEtMTEgMTQ6MTggIGhhcmRha2VyCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiAsIG5vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIE1vdmUgYWxsIGFnZW50L2hlbHBlcnMvKi5oIGZpbGVzIHRvIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvIGFuZCBjaGFuZ2UKICAgcmVmZXJlbmNlcy4KICAgCjIwMDItMDEtMTEgMTQ6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvYWdlbnRfaGFuZGxlci5jICwKICAgYWdlbnQvYWdlbnRfaW5kZXguYyAsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvbWliX21vZHVsZXMuYyAsCiAgIGFnZW50L3NubXBfdmFycy5jICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaCAsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKICAgLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5oICwKICAgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMgLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuaAogICAsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuaAogICAsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuaCAsIGFnZW50L2hlbHBlcnMvbnVsbC5jICwKICAgYWdlbnQvaGVscGVycy9udWxsLmggLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5oICwgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYyAsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmggLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jICwKICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuaCAsIGFnZW50L2hlbHBlcnMvc2V0X2hlbHBlci5oICwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZS5oICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5oCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuaAogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmggLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmggLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiAsIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMKICAgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2V0X2hlbHBlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIE1vdmUgYWxsIGFnZW50L2hlbHBlcnMvKi5oIGZpbGVzIHRvIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvIGFuZCBjaGFuZ2UKICAgcmVmZXJlbmNlcy4KICAgCjIwMDItMDEtMTEgMDg6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiAsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluICwgYXBwcy9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIEFkZCAtSSQodG9wX3NyY2RpcikvaW5jbHVkZSB0byBpbmNsdWRlIHBhdGguCiAgIC0gUmVuYW1lIDMgYWdlbnQgbGlicmFyaWVzIGZyb20gbGlidWNkKiAtPiBsaWJuZXRzbm1wKgogICAKMjAwMi0wMS0xMSAwNzo1OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBkb24ndCB1c2Ugd2hpbGUoeC0tID49IDApIGxvb3BzIGZvciBuZXcgdW5zaWduZWQgaW5kZXggY29tcG9uZW50cwogICAKMjAwMi0wMS0xMSAwNToyNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBiZSBjYXJlZnVsIGFib3V0IHNpZ25lZGVzcyBvZiBpbmRleCBjb21wb25lbnRzIGluIHRhYmxlcwogICAKMjAwMi0wMS0xMCAxMzoxMiAgbmJhCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIENyZWF0ZSB0aGUgaW5jbHVkZSBkaXJlY3Rvcnkgd2hlbiBidWlsZGluZyBvdXRzaWRlIHNvdXJjZSBkaXJlY3RvcnkKICAgCjIwMDItMDEtMTAgMDg6MjAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgICAtIHVzZSBhbiB1bnNpZ25lZCBsb25nIGxvb3AgdmFyaWFibGUgaW4gdmFyX3N5c09SVGFibGUoKSB0byBhdm9pZAogICAgICAgaW5jb3JyZWN0IGxleGktb3JkZXJpbmcgd2hlbiBkb2luZyByZXF1ZXN0cyBsaWtlIEdFVE5FWFQKICAgICAgIHN5c09SRGVzY3IuNDI5NDk2NzI5NS4KICAgCiAgICAgLSBtaW5vciBkZWJ1Z2dpbmcgb3V0cHV0IGNoYW5nZXMKICAgCjIwMDItMDEtMTAgMDc6MzIgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGZpeCBtaW5vciBtZW1vcnkgbGVhayBpbiByZWFzc2lnbl9yZXF1ZXN0cygpCiAgIAoyMDAyLTAxLTEwIDA3OjIxICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBzZXQgdHlwZSBmb3IgdW5oYW5kbGVkIEdFVCByZXF1ZXN0cyBpbiBoYW5kbGVfcGR1KCkgdG8gYmUKICAgICAgIG5vU3VjaEluc3RhbmNlIHJhdGhlciB0aGFuIG5vU3VjaE9iamVjdCAobm9TdWNoT2JqZWN0IGV4Y2VwdGlvbnMKICAgICAgIGFyZSBkZXRlY3RlZCBhbmQgZXhwbGljaXRseSBzZXQgZWFybGllcikuCiAgIAoyMDAyLTAxLTEwIDA1OjUyICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgICAtIGNvcnJlY3QgdHlwbyB0aGF0IG1lYW50IGVycm9yIHJldHVybnMgZnJvbSBvbGQtYXBpIHdyaXRlIG1ldGhvZHMKICAgICAgIHdlcmUgaWdub3JlZC4KICAgCjIwMDItMDEtMTAgMDU6MDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIGNoYW5nZSB2YWx1ZSBvZiBTVEFUX1RBUkdFVF9TVEFUU19FTkQgc28gdGhhdCBtaWJJSS9zbm1wX21pYi5jIGNhbgogICAgICAgcmV0dXJuIHZhbHVlcyBvZiBtYW5kYXRvcnkgb2JqZWN0cyBzbm1wU2lsZW50RHJvcHMgYW5kCiAgICAgICBzbm1wUHJveHlEcm9wcy4KICAgCjIwMDItMDEtMDkgMDg6NTAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1ha2UgdW5rbm93bi9pbGxlZ2FsIHZhcmJpbmQgdHlwZXMgaW4gdjEvdjJjIFBEVXMgY2F1c2UKICAgICAgIHNubXBJbkFTTlBhcnNlRXJycyB0byBiZSBpbmNyZW1lbnRlZC4KICAgCjIwMDItMDEtMDkgMDc6NTUgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrCiAgIAoyMDAyLTAxLTA5IDA3OjMyICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGtnZXQuYzoKCiAgICAgLSBicmluZyBhcHAtc3BlY2lmaWMgb3B0aW9ucyBpbiBsaW5lIHdpdGggc25tcGJ1bGt3YWxrICgtQyByYXRoZXIKICAgICAgIHRoYW4gLUIpCiAgIAoyMDAyLTAxLTA5IDA3OjMxICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmM6CgogICAgIC0gZm9ybWF0dGluZyBjaGFuZ2UgdG8gdXNhZ2UgbWVzc2FnZQogICAKMjAwMi0wMS0wOSAwNjozNSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAgIC0gZml4IG1pbm9yIG1lbW9yeSBsZWFrCiAgIAoyMDAyLTAxLTA4IDA4OjU1ICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmM6CgogICAgIC0gYWRkIG9wdGlvbnMgZnJvbSBzbm1wd2FsawogICAKICAgICAtIGFsbG93IG5vbi1yZXBlYXRlcnMgYW5kIG1heC1yZXBlYXRlcnMgdG8gYmUgc2V0CiAgIAogICAgIC0gY2hhbmdlIGRlZmF1bHQgdmFsdWUgb2YgbWF4LXJlcGVhdGVycyB0byBhIGxvd2VyIHZhbHVlIHRvIGF2b2lkCiAgICAgICB0aW1lb3V0cyB3aXRoIHNsb3dlciBhZ2VudHMKICAgCjIwMDItMDEtMDggMDg6MTcgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGRvbid0IHRyeSB0byBtYWxsb2MoKSBhIHplcm8tbGVuZ3RoIGJ1ZmZlciwgaW4gY2FzZSBzb21lIG1hbGxvYygpcwogICAgICAgY29tcGxhaW4uCiAgIAoyMDAyLTAxLTA4IDA4OjE1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBob3BlZnVsbHkgZmluYWwgR0VUQlVMSyBmaXggLS0gcGFzc2VzIGFsbCBTaWx2ZXJDcmVlaydzIEdFVEJVTEsKICAgICAgIHRlc3RzIChpbmNsLiBuZWdhdGl2ZSBub24tcmVwZWF0ZXJzIGFuZCBtYXgtcmVwZWF0ZXJzKQogICAKMjAwMi0wMS0wOCAwNjo1OSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaCAsCiAgIGhlbHBlcnMvYnVsa190b19uZXh0LmM6CgogICAgIC0gR0VUQlVMSyBmaXggdG8gaWdub3JlIHZhcmJpbmRzIGZvciB3aGljaCB6ZXJvIHJlcGV0aXRpb25zIGFyZQogICAgICAgY2FsbGVkIGZvcgogICAKICAgICAtIGRyb3AgYXNwLT5zdGFydCBhbmQgYXNwLT5lbmQgd2hpY2ggYXJlIGhhcmRseSB1c2VkIGFuZCB3aGljaCBnZXQKICAgICAgIGluIHRoZSB3YXkgb2YgdGhpcyB0eXBlIG9mIHByb2Nlc3NpbmcKICAgCiAgICAgLSBpZ25vcmUgbmVnYXRpdmUgcmVwZXRpdGlvbnMgaW4gYnVsa190b19uZXh0IGhhbmRsZXIKICAgCjIwMDItMDEtMDcgMDg6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci8uY3ZzaWdub3JlOgoKICAgaWdub3JlIGZpbGUKICAgCjIwMDItMDEtMDcgMDg6MzggIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci9JTlNUQUxMOgoKICAgUE5HR3JhcGggLT4gR0Q6OkdyYXBoCiAgIAoyMDAyLTAxLTA0IDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGZpeCBkZXBlbmRlbmNpZXMKICAgCjIwMDItMDEtMDQgMTM6MjQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggLCBpbmNsdWRlL25ldC1zbm1wL2FjY29uZmlnLmg6CgogICBtb3ZlIGFjY29uZmlnLmggYmFjayB0byB0aGUgdG9wIGRpciB3aGVyZSBpdHMgYXBwYXJlbnRseSBzdXBwb3NlZCB0byBsaXZlLgogICAKMjAwMi0wMS0wNCAxMzoxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgbW9yZSB1Y2Qtc25tcCAtPiBuZXQtc25tcCB0cmFuc2xhdGlvbnMuICB3YXJuaW5nOiBpbmNsdWRlcyB0aGUgZGVmYXVsdCBwZXJzaXN0ZW50IHN0b3JlLgogICAKMjAwMi0wMS0wNCAxMzowNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS86IG5ldC1zbm1wLy5jdnNpZ25vcmUgLCB1Y2Qtc25tcC8uY3ZzaWdub3JlOgoKICAgaWdub3JlIGZpbGVzCiAgIAoyMDAyLTAxLTA0IDEzOjAyICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgaWdub3JlIGJ1aWx0IG5ldC1zbm1wLWNvbmZpZwogICAKMjAwMi0wMS0wNCAxMzowMCAgaGFyZGFrZXIKCiAgICogYXBwcy86IE1ha2VmaWxlLmluICwgZW5jb2RlX2tleWNoYW5nZS5jICwKICAgbm90aWZpY2F0aW9uX2xvZy5jICwgc25tcGJ1bGtnZXQuYyAsIHNubXBidWxrd2Fsay5jCiAgICwgc25tcGRlbHRhLmMgLCBzbm1wZGYuYyAsIHNubXBnZXQuYyAsCiAgIHNubXBnZXRuZXh0LmMgLCBzbm1wc2V0LmMgLCBzbm1wc3RhdHVzLmMgLAogICBzbm1wdGFibGUuYyAsIHNubXB0ZXN0LmMgLCBzbm1wdHJhbnNsYXRlLmMgLAogICBzbm1wdHJhcC5jICwgc25tcHRyYXBkLmMgLCBzbm1wdHJhcGRfaGFuZGxlcnMuYwogICAsIHNubXB0cmFwZF9sb2cuYyAsIHNubXB1c20uYyAsIHNubXB2YWNtLmMKICAgLCBzbm1wd2Fsay5jOgoKICAgYmVnaW5uaW5ncyBvZiB1Y2Qtc25tcCAtPiBuZXQtc25tcCBzdHJ1Y3R1cmFsIGNoYW5nZXMuCiAgICAgLSBjb25maWcuaCAtPiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAgICAgICAtIHRoaXMsIG9mIGNvdXJzZSwgY2hhbmdlcyBqdXN0IGFib3V0IGV2ZXJ5IGZpbGUgaW4gdGhlIHJlcG9zaXRvcnkuCiAgIAoyMDAyLTAxLTA0IDEyOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJKSi9pY21wLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSkovaXBBZGRyLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9pcE1lZGlhLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9pcFJvdXRlLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi9pcHY2LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJKSi9rZXJuZWxfbGludXguYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL3NubXBfbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9zeXNPUlRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9zeXN0ZW1fbWliLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi90Y3AuYwogICAsIGFnZW50L21pYmdyb3VwL21pYkpKL3RjcFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi91ZHAuYyAsIGFnZW50L21pYmdyb3VwL21pYkpKL3VkcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJKSi92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYyAsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYwogICAsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jICwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiAsIGFwcHMvc25tcG5ldHN0YXQvaWYuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jICwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMgLAogICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYzoKCiAgIGJlZ2lubmluZ3Mgb2YgdWNkLXNubXAgLT4gbmV0LXNubXAgc3RydWN0dXJhbCBjaGFuZ2VzLgogICAgIC0gY29uZmlnLmggLT4gaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogICAgICAgLSB0aGlzLCBvZiBjb3Vyc2UsIGNoYW5nZXMganVzdCBhYm91dCBldmVyeSBmaWxlIGluIHRoZSByZXBvc2l0b3J5LgogICAKMjAwMi0wMS0wNCAxMjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jICwgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgLCBpbmNsdWRlL25ldC1zbm1wL2FjY29uZmlnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluICwKICAgaW5jbHVkZS91Y2Qtc25tcC9SRUFETUUgLCBzbm1wbGliL01ha2VmaWxlLmluICwKICAgc25tcGxpYi9hc24xLmMgLCBzbm1wbGliL2NhbGxiYWNrLmMgLAogICBzbm1wbGliL2RhdGFfbGlzdC5jICwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMgLAogICBzbm1wbGliL2ludDY0LmMgLCBzbm1wbGliL2tleXRvb2xzLmMgLAogICBzbm1wbGliL2xjZF90aW1lLmMgLCBzbm1wbGliL21kNS5jICwgc25tcGxpYi9taWIuYwogICAsIHNubXBsaWIvbXRfc3VwcG9ydC5jICwgc25tcGxpYi9vaWRfYXJyYXkuYyAsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMgLCBzbm1wbGliL3BhcnNlLmMgLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMgLCBzbm1wbGliL3NjYXBpLmMgLAogICBzbm1wbGliL3NubXAtdGMuYyAsIHNubXBsaWIvc25tcC5jICwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwogICAsIHNubXBsaWIvc25tcElQWERvbWFpbi5jICwgc25tcGxpYi9zbm1wVENQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMgLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwogICAsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYyAsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYwogICAsIHNubXBsaWIvc25tcF9hbGFybS5jICwgc25tcGxpYi9zbm1wX2FwaS5jICwKICAgc25tcGxpYi9zbm1wX2F1dGguYyAsIHNubXBsaWIvc25tcF9jbGllbnQuYyAsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwgc25tcGxpYi9zbm1wX2VudW0uYyAsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwKICAgc25tcGxpYi9zbm1wX3NlY21vZC5jICwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jICwKICAgc25tcGxpYi9zbm1wa3NtLmMgLCBzbm1wbGliL3NubXB1c20uYyAsIHNubXBsaWIvc25tcHYzLmMKICAgLCBzbm1wbGliL3NucHJpbnRmLmMgLCBzbm1wbGliL3N0cnRvbC5jICwKICAgc25tcGxpYi9zdHJ0b3VsLmMgLCBzbm1wbGliL3N5c3RlbS5jICwgc25tcGxpYi90b29scy5jCiAgICwgc25tcGxpYi92YWNtLmMgLCB0ZXN0aW5nL1QuYyAsCiAgIHRlc3RpbmcvZXRpbWV0ZXN0LmMgLCB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYyAsCiAgIHRlc3RpbmcvbWlzY3Rlc3QuYyAsIHRlc3Rpbmcvc2NhcGl0ZXN0LmM6CgogICBiZWdpbm5pbmdzIG9mIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHN0cnVjdHVyYWwgY2hhbmdlcy4KICAgICAtIGNvbmZpZy5oIC0+IGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKICAgICAgIC0gdGhpcywgb2YgY291cnNlLCBjaGFuZ2VzIGp1c3QgYWJvdXQgZXZlcnkgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeS4KICAgCjIwMDItMDEtMDQgMTI6NDkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgTWFrZWZpbGUudG9wICwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluICwgc2Vkc2NyaXB0LmluICwgYWdlbnQvTWFrZWZpbGUuaW4KICAgLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLCBhZ2VudC9hZ2VudF9pbmRleC5jICwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9hdXRvX25saXN0LmMgLAogICBhZ2VudC9rZXJuZWwuYyAsIGFnZW50L21pYl9tb2R1bGVzLmMgLAogICBhZ2VudC9zbm1wX2FnZW50LmMgLCBhZ2VudC9zbm1wX3ZhcnMuYyAsCiAgIGFnZW50L3NubXBkLmMgLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluICwKICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYyAsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jCiAgICwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jCiAgICwgYWdlbnQvaGVscGVycy9udWxsLmMgLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMgLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluICwgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYwogICAsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYyAsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYwogICAsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jICwgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMKICAgLCBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBiZWdpbm5pbmdzIG9mIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHN0cnVjdHVyYWwgY2hhbmdlcy4KICAgICAtIGNvbmZpZy5oIC0+IGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKICAgICAgIC0gdGhpcywgb2YgY291cnNlLCBjaGFuZ2VzIGp1c3QgYWJvdXQgZXZlcnkgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeS4KICAgCjIwMDItMDEtMDQgMTI6NDcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggLCBjb25maWcuaC5pbjoKCiAgIHJlbW92ZWQgdW5lZWRlZCBvbGRlciBmaWxlcwogICAKMjAwMi0wMS0wMyAxNDoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBwYXRjaCAjNDkyMDcyIHRvIG1haW4gYnJhbmNoCiAgIAoyMDAyLTAxLTAzIDE0OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBjaGVjayByZXN1bHRzIG9mIHNldG1udGVudCBiZWZvcmUgdXNpbmcgdGhlbS4KICAgCjIwMDItMDEtMDMgMTM6NTcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIGNoZWNrIGFnYWluc3QgZ3Jvd2luZyBzZXJ2ZXIgcmV0dXJucyBhcyBwb2ludGVkIG91dCBieSBidWcgIzQ5ODk1NgogICAKMjAwMi0wMS0wMyAxMTo0MCAgaGFyZGFrZXIKCiAgICogcGVybC9tYW5hZ2VyL2Rpc3BsYXl0YWJsZS5wbToKCiAgIFBOR0dyYXBoIC0+IEdER3JhcGgKICAgCjIwMDItMDEtMDMgMTE6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBjaGFuZ2UgZXhwb3J0IG5hbWUgdG8gIm5ldC1zbm1wIiBmcm9tICJ1Y2Qtc25tcCIKICAgCjIwMDItMDEtMDMgMTE6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLAogICBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mICwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWFrZSB1c2Ugb2YgdGhlIG5ldyBtdWx0aS1hZGQgZnVuY3Rpb25zLgogICAKMjAwMi0wMS0wMyAxMTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2RhdGFzZXQuYyAsIHRhYmxlX2RhdGFzZXQuaDoKCiAgIGFkZCBtdWx0aXBsZSBkZWZhdWx0IHJvdyBjb2x1bW4gZGVmaW5pdGlvbnMgdXNpbmcgb25lIGZ1bmN0aW9uIGNhbGwgKHZhcmFyZ3MpLgogICAKMjAwMi0wMS0wMyAxMTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlLmMgLCB0YWJsZS5oOgoKICAgYWRkIG11bHRpcGxlIGluZGV4ZXMgdXNpbmcgb25lIGZ1bmN0aW9uIGNhbGwgKHZhcmFyZ3MpLgogICAKMjAwMi0wMS0wMyAxMTozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmg6CgogICByZW1vdmUgbm8gbG9uZ2VyIGRlZmluZWQgdjQgYXBpIGZ1bmN0aW9ucyAoZ2V0U3RhdFB0ciBubyBsZXNzKS4KICAgCjIwMDItMDEtMDMgMTE6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuaDoKCiAgIHJlbW92ZSBubyBsb25nZXIgZGVmaW5lZCB2NCBhcGkgZnVuY3Rpb25zLgogICAKMjAwMi0wMS0wMyAxMDozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluICwgb2lkX3N0YXNoLmMgLCBvaWRfc3Rhc2guaDoKCiAgIGRhdGEgc3Rhc2hpbmcgYmFzZWQgb24gYW4gb2lkIGNhY2hpbmcgdHJlZS4KICAgCjIwMDEtMTItMjYgMTU6MzYgIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci86IElOU1RBTEwgLCBNYWtlZmlsZS5QTCAsIG1hbmFnZXIucG06CgogICB1cGRhdGUgdG8gbWFrZSBpdCBhIGJpdCBlYXNpZXIgdG8gaW5zdGFsbCAoaW5jbHVkaW5nIGEgTWFrZWZpbGUgZm9yCiAgIGF1dG9tYXRlZCBpbnN0YWxsYXRpb24pLgogICAKMjAwMS0xMi0yNiAxMzoyMCAgaGFyZGFrZXIKCiAgICogcGVybC9tYW5hZ2VyLzogSU5TVEFMTCAsIGRpc3BsYXl0YWJsZS5wbSAsIGdldFZhbHVlcy5wbQogICAsIGdyZWVuLmdpZiAsIG1hbmFnZXIucG0gLCByZWQuZ2lmICwgc2V0dXBhdXRoCiAgICwgc2V0dXBkYiAsIHNldHVwdXNlciAsIHNubXB0b3NxbDoKCiAgIG1vdmluZyBtYW5hZ2VyIHRvIHBlcmwvbWFuYWdlcgogICAKMjAwMS0xMi0yNCAxNjoxMCAgaGFyZGFrZXIKCiAgICogRkFRICwgc2Vkc2NyaXB0LmluICwgdmVyc2lvbi5oICwKICAgcGVybC9TTk1QL1NOTVAucG06CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAucHJlMSApCiAgIAoyMDAxLTEyLTI0IDE2OjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluICwgbWliMmMgLCBtaWIyYy5jb25mOgoKICAgVXBkYXRlIHRvIG1ha2UgcGVvcGxlIHVuZGVyc3RhbmQgdGhhdCBpdCdzIG5vdCBmaW5pc2hlZCBhbmQgeW91IG11c3QKICAgcmVmZXJlbmNlIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIGZpbGUgYXQgdGhpcyBwb2ludC4KICAgCjIwMDEtMTItMjQgMTU6NTEgIGhhcmRha2VyCgogICAqIEZBUSAsIHNlZHNjcmlwdC5pbiAsIHZlcnNpb24uaCAsCiAgIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLm5vdC5ldmVuLmNsb3NlICkKICAgCjIwMDEtMTItMjQgMTU6NTAgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG1vcmUgY29tbWVudHMuCiAgIAoyMDAxLTEyLTI0IDE1OjQxICBoYXJkYWtlcgoKICAgKiBGQVEgLCBSRUFETUU6CgogICBtb3JlIHVwZGF0ZXMKICAgCjIwMDEtMTItMjQgMTU6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgZG94eWdlbiBjb21tZW50cwogICAKMjAwMS0xMi0yNCAxNToyMCAgaGFyZGFrZXIKCiAgICogTkVXUyAsIFJFQURNRToKCiAgIDUuMCBjb21tZW50IHVwZGF0ZXMuCiAgIAoyMDAxLTEyLTI0IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBkb3h5Z2VuIGNvbW1lbnRzIG9uIGEgZmV3IGZ1bmN0aW9ucy4KICAgCjIwMDEtMTItMjQgMTU6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIG1lbW9yeSBsZWFrcy4KICAgCjIwMDEtMTItMjQgMTA6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGRlcGVuZGVuY2llcyBmb3Igbm9uLWV4aXN0ZW50IG1vZHVsZXMKICAgCjIwMDEtMTItMjMgMTU6NDcgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZzoKCiAgIG9wcHMuICBEb24ndCBjaGVjayBpbiBnZW5lcmF0ZWQgZmlsZXMuCiAgIAoyMDAxLTEyLTIzIDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiAsIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBmaXggcnBtIHVzYWdlIChJIGhvcGUpLgogICAKMjAwMS0xMi0yMyAxNDo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvLmN2c2lnbm9yZToKCiAgIGFkZGVkIC5jdnNpZ25vcmUgZmlsZQogICAKMjAwMS0xMi0yMyAxNDo0OSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG5ldC1zbm1wLWNvbmZpZy4KICAgCjIwMDEtMTItMjMgMTQ6NDcgIGhhcmRha2VyCgogICAqIE5FV1MgLCBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBuZXQtc25tcC1jb25maWcgLCBuZXQtc25tcC1jb25maWcuaW4gLCBhZ2VudC9NYWtlZmlsZS5pbgogICAsIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIGNyZWF0ZWQgYSBuZXQtc25tcC1jb25maWcgc2NyaXB0IHRvIHJlcG9ydCBjb21waWxlZCBsaWJzLgogICAtIHNlcGFyYXRlZCBsaWJzIG5lZWRlZCBieSBhZ2VudCBmcm9tIHRob3NlIG5lZWRlZCBieSB0aGUgcmVzdCBvZiB0aGUKICAgICBhcHBsaWNhdGlvbnMuCiAgIAoyMDAxLTEyLTIxIDE2OjUzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbWVudGlvbiBob3cgdG8gaW5zdGFsbCBEQkkKICAgCjIwMDEtMTItMjEgMTY6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL01ha2VmaWxlLlBMOgoKICAgcmVtb3ZlIHZlcnNpb24gcmVxdWlyZW1lbnQgZm9yIEFueURhdGEKICAgCjIwMDEtMTItMjEgMTY6MzcgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtYWtlIGluc3RhbGwgYXMgcm9vdC4KICAgCjIwMDEtMTItMjEgMTY6MzIgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QLzogSU5TVEFMTCAsIElOU1RBTEwgLCBJTlNUQUxMICwKICAgSU5TVEFMTDoKCiAgIGJldHRlciBkZXNjcgogICAKMjAwMS0xMi0yMSAxNjowOSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvUkVBRE1FOgoKICAgbWlub3Igd29yZGluZyBjaGFuZ2UuCiAgIAoyMDAxLTEyLTIxIDE2OjA3ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbWVudGlvbiBpdCdzIHZlcnkgYWxwaGEgY29kZS4KICAgCjIwMDEtMTItMjEgMTY6MDYgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBuZXcgaW5zdHJ1Y3Rpb25zCiAgIAoyMDAxLTEyLTIxIDEwOjE4ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWVudGlvbiBkb3h5Z2VuLgogICAKMjAwMS0xMi0yMSAxMDoxNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oOgoKICAgY29tcGlsZSBpbiBhZ2VudCBzcGVjaWZpYyBzdXBwb3J0IG1pYnMuCiAgIAoyMDAxLTEyLTIxIDA5OjQ5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgKHN0aWxsIGluY29tcGxldGUpIDJuZCB1cGRhdGUgZm9yIDUuMAogICAKMjAwMS0xMi0yMSAwOTo0NCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIChpbmNvbXBsZXRlKSB1cGRhdGUgZm9yIDUuMAogICAKMjAwMS0xMi0xOSAxNzoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggcmVhbGxvYyBmbG9hdCBhbmQgZG91YmxlIGJ1aWxkcy4KICAgCjIwMDEtMTItMTkgMTY6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1pc2MgZml4ZXMuCiAgIAoyMDAxLTEyLTE5IDE2OjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGRlZmluZSBhIEMgZGF0YXR5cGUgYXMgJHZhci5kZWNsIChwZXIgUm9iZXJ0J3Mgc3VnZ2VzdGlvbi4gIFJvYmVydDogd2UKICAgcHJvYmFibHkgd2FudCBwb2ludGVycyBmb3IgdGhpbmdzIGxpa2Ugc3RyaW5ncywgbm8/ICBtYXliZSBvbmUgdHlwZQogICB0aGF0IGlzIGFsd2F5cyBhIHBvaW50ZXIgYW5kIGFub3RoZXIgdGhhdCBpcyBzb21ldGltZXMgZGVwZW5kaW5nIG9uCiAgIHRoZSB0eXBlPykKICAgCjIwMDEtMTItMTkgMTY6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmM6CgogICBjaGFuZ2UgZGVmYXVsdCBidWxrIG51bWJlciB0byAxMDAgZnJvbSB0aGUgcmlkaWN1bG91cyAxMDAwLgogICAKMjAwMS0xMi0xOSAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiAsCiAgIGFwcHMvTWFrZWZpbGUuaW4gLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDEtMTItMTkgMDg6MTAgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgaGVscGVycy9idWxrX3RvX25leHQuYzoKCiAgIGdldGJ1bGsgdXBkYXRlcyB0byBtYWtlIGl0IHRoZSBtb2R1bGVzIHJlc3BvbnNpYmlsaXR5IHRvIHVwZGF0ZSB0aGUKICAgdmFyYmluZCBjaGFpbiBhbiB0aGUgcmVwZWF0IGNvdW50ZXIuCiAgIAoyMDAxLTEyLTE5IDA3OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaAogICAsIGhlbHBlcnMvTWFrZWZpbGUuaW4gLCBoZWxwZXJzL2FsbF9oZWxwZXJzLmMgLAogICBoZWxwZXJzL2FsbF9oZWxwZXJzLmggLCBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jICwKICAgaGVscGVycy9idWxrX3RvX25leHQuaDoKCiAgIEdFVEJVTEsgc3VwcG9ydCBmb3IgdGhlIG5ldyBBUEkuCiAgICAgLSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgc2xpZ2h0IG1vZGlmaWNhdGlvbnMuCiAgICAgLSBkZWZhdWx0cyB0byBHRVRORVhUIGZvciBhbnkgaGFuZGxlciB0aGF0IGRvZXNuJ3Qgc2V0IEhBTkRMRVJfQ0FOX0dFVEJVTEsuCiAgICAgLSBkb2Vzbid0IGRlYWwgcHJvcGVybHkgeWV0IHdpdGggZW5kLW9mLW1pYiBjb25kaXRpb24gcmVtb3ZhbC4KICAgCjIwMDEtMTItMTkgMDY6MDUgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBkcm9wIC1wIG9wdGlvbi4gIEFkZHJlc3NlcyB0byBsaXN0ZW4gb24gbm93IGNvbWUgYXMgb3B0aW9uYWwKICAgICAgIGFyZ3VtZW50cyBhdCB0aGUgZW5kIG9mIHRoZSBjb21tYW5kIGxpbmUuCiAgIAogICAgIC0gZHJvcCAobG9uZy1kZXByZWNhdGVkKSAtcSBvcHRpb24uCiAgIAogICAgIC0gcmUtb3JkZXJlZCBvcHRpb25zIGluIHVzYWdlIG1lc3NhZ2UgdG8gYmUgYWxwaGFiZXRpY2FsLCBhbmQKICAgICAgIGNoYW5nZWQgZGVzY3JpcHRpb24gb2Ygc29tZSBvcHRpb25zIHRvIGJlIG1vcmUgc2ltaWxhciB0byBzbm1wZAogICAgICAgb3B0aW9ucyAod2hlcmUgYXBwcm9wcmlhdGUpLgogICAKMjAwMS0xMi0xOSAwNDozOCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGRyb3AgLXAgYW5kIC1UIG9wdGlvbnMuICBBZGRyZXNzZXMgdG8gbGlzdGVuIG9uIG5vdyBjb21lIGFzCiAgICAgICBvcHRpb25hbCBhcmd1bWVudHMgYXQgdGhlIGVuZCBvZiB0aGUgY29tbWFuZCBsaW5lLgogICAKICAgICAtIHJlLW9yZGVyZWQgb3B0aW9ucyBpbiB1c2FnZSBtZXNzYWdlIHRvIGJlIGFscGhhYmV0aWNhbCwgcGx1cwogICAgICAgbWlub3IgZm9ybWF0dGluZyB0d2Vha3MuCiAgIAogICAgIC0gcmUtd3JpdHRlbiBvcHRpb25zIHByb2Nlc3NpbmcgbG9vcCB0byB1c2Ugb3B0YXJnKCkuCiAgIAoyMDAxLTEyLTE4IDA4OjQ0ICBqYnBuCgogICAqIG1pYnMvOiBVQ0QtU05NUC1NSUIudHh0IChWNC0yLXBhdGNoZXMuNSksIFVDRC1TTk1QLU1JQi50eHQ6CgogICAgIC0gYWRkIE9CSkVDVCBJREVOVElGSUVSIGZvciB3aW4zMiBhZ2VudAogICAKMjAwMS0xMi0xOCAwODoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICB3YXJuaW5nIC0+IGRlYnVnLgogICAKMjAwMS0xMi0xNyAxMDoxNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gaGFuZGxlIGdldE5leHQgcXVlcmllcyB3aGVyZSB0aGUgaW5pdGlhbCB2YXJiaW5kLT50eXBlIGlzCiAgICAgICBBU05fUFJJVl9JTkNMX1JBTkdFICh0aGVzZSBjdXJyZW50bHkgYXJpc2Ugb25seSBpbiBBZ2VudFgKICAgICAgIHN1YmFnZW50cyBidXQgdGhlIGhhbmRsaW5nIGlzIG5vdCBzcGVjaWZpYyB0byBBZ2VudFgpLgogICAKICAgICAgIEJhc2ljYWxseSB0aGlzIGlzIGRvbmUgYnkgcGVyZm9ybWluZyBhIEdFVCBmaXJzdCBvbiBhbGwgdGhlCiAgICAgICB2YXJpYWJsZXMgaW4gYSByZXF1ZXN0LiAgRm9yIHZhcmlhYmxlcyB0aGF0IGhhZCBhbiBpbml0aWFsIHR5cGUgb2YKICAgICAgIEFTTl9QUklWX0lOQ0xfUkFOR0UgYW5kIHdlcmUgc2F0aXNmaWVkIGJ5IHRoaXMgaW5pdGlhbCBHRVQsIHdlIHVzZQogICAgICAgdGhpcyB2YWx1ZSBhcyB0aGUgcmVzdWx0LiAgRm9yIHZhcmlhYmxlcyB0aGF0IGRpZCBub3QgaGF2ZSBhbgogICAgICAgaW5pdGlhbCB0eXBlIG9mIEFTTl9QUklWX0lOQ0xfUkFOR0UsIG9yIHZhcmlhYmxlIHRoYXQgaGFkIGFuZAogICAgICAgaW5pdGlhbCB0eXBlIG9mIEFTTl9QUklWX0lOQ0xfUkFOR0UgYnV0IHdlcmUgbm90IHNhdGlzZmllZCBieSB0aGlzCiAgICAgICBHRVQgcmVxdWVzdCwgd2UgcHJvY2VlZCB0byBwZXJmb3JtIGEgR0VULU5FWFQgdHlwZSByZXF1ZXN0IGFzCiAgICAgICBub3JtYWwuCiAgIAoyMDAxLTEyLTE3IDEwOjA0ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgICAtIGFkZCBmdW5jdGlvbiByZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgd2hpY2ggZW11bGF0ZXMgb2xkCiAgICAgICBmdW5jdGlvbmFsaXR5LgogICAKICAgICAtIHVzZSBzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2ZyZWUoKSBpbiByZWdpc3Rlcl9vbGRfYXBpKCkuCiAgIAoyMDAxLTEyLTE3IDA5OjM5ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZml4IGJvZ3VzIGluZGVudAogICAKMjAwMS0xMi0xNyAwOTozOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gcmlnaHQgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgcmVnaXN0ZXJfbWliX2NvbnRleHQyKCkgaW4KICAgICAgIHJlZ2lzdGVyX2FnZW50eF9saXN0KCkuCiAgIAogICAgIC0gdXNlIHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZSgpIGluIGRpdHRvLgogICAKMjAwMS0xMi0xMyAxOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgcmVtb3ZlIGhhbmRsZXIgaW5qZWN0aW9uIG9yZGVyIChzZXJpYWxpemUgbmVlZHMgdG8gYmUgY2FsbGVkIGZpcnN0KQogICAKMjAwMS0xMi0xMyAxOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIHVubmVlZGVkIGNoZWNrIGZvciBhbHJlYWR5IGFuc3dlcmVkIEFTTl9OVUxMcyBpbiBmaXJzdCBwYXNzLgogICAKMjAwMS0xMi0xMiAwOTozMSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvOiAuY3ZzaWdub3JlICwgSU5TVEFMTCAsIE1BTklGRVNUCiAgICwgUkVBRE1FICwgc25tcHNoOgoKICAgLSBkb2MgdXBkYXRlLgogICAtIHNubXBzaCBub3cgc3VwcG9ydHMgYWxpYXNlcyBzbyB5b3UgY2FuIGRlZmluZSBjb21tYW5kIHNldHMuCiAgIC0gc25tcHNoIG5vdyByZWFkcyBhIH4vLnNubXBzaHJjIGZpbGUgZm9yIHN0b3JpbmcgdGhlc2UgZGVmaW5lZCBhbGlhc2VzLgogICAKMjAwMS0xMi0xMiAwNjo0MiAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIG5ldyBmdW5jdGlvbiBqb2luX3N1YnRyZWUoKSB3aGljaCByZXBhaXJzICJwdW5jdHVyZWQiIHN1YnRyZWVzCiAgICAgICAodGhlc2UgYXJpc2UgaW4gcGFydGljdWxhciB3aGVuIEFnZW50WCByb3cgcmVnaXN0cmF0aW9ucyBhcmUKICAgICAgIHdpdGhkcmF3bikuCiAgIAogICAgIC0gY29weSByZWdpbmZvIHdoZW4gZG9pbmcgYSByYW5nZSByZWdpc3RyYXRpb24gKGFzIHdlIHVzZWQgdG8gZG8KICAgICAgIHdpdGggdGhlIHZhcmlhYmxlIHN0cnVjdHVyZSksIHNpbmNlIGVhY2ggbm9kZSBtdXN0IHN0YW5kIGFsb25lLgogICAKICAgICAtIGFkZCBwYXJhbWV0ZXIgdG8gcmVnaXN0ZXJfbWliX2NvbnRleHQyIHRvIGFsbG93IFJFR0lTVEVSX09JRAogICAgICAgY2FsbGJhY2tzIHRvIGJlIHdpdGhoZWxkIChmb3IgaW5zdGFuY2UsIHlvdSBuZWVkIHRoaXMgdG8gYXZvaWQKICAgICAgIGV4Y2VzcyBBZ2VudFggdHJhZmZpYyBmb3Igcm93IHJlZ2lzdHJhdGlvbnMpLgogICAKICAgICAtIHJlbW92ZSByZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgLS0gdGhpcyBoYXMgbW92ZWQgdG8gb2xkX2FwaS5jCiAgIAogICAgIC0gY2FsbCBqb2luX3N1YnRyZWUoKSBpbiB1bnJlZ2lzdGVyX21pYnNfYnlfc2Vzc2lvbigpLgogICAKMjAwMS0xMi0xMiAwNjozMyAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIGFnZW50X2hhbmRsZXIuaDoKCiAgICAgLSBhZGQgZnVuY3Rpb25zIHNubXBfaGFuZGxlcl9mcmVlKCksIHNubXBfaGFuZGxlcl9kdXAoKSwKICAgICAgIHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZHVwKCkgYW5kCiAgICAgICBzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2ZyZWUoKS4KICAgCjIwMDEtMTItMTEgMTg6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgRml4IGJ1ZyB3aGVyZSBwZHUtPmNvbnRleHROYW1lIGlzIE5VTEwuCiAgIAoyMDAxLTEyLTExIDA3OjM0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIEJJVFM6IGlwYWRkciAtPiBvY3RldF9zdHIKICAgCjIwMDEtMTItMTEgMDQ6MTEgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50LmggLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gc2VuZCBJTkNMVVNJVkUgc2VhcmNoIHJhbmdlcyBpZiBhcHByb3ByaWF0ZQogICAKMjAwMS0xMi0xMCAyMDo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIG5vYWNjZXNzIGZsYWcgZm9yIG5vdC1hY2Nlc3NpYmxlIG5vZGVzCiAgIAoyMDAxLTEyLTEwIDE0OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC86IENoYW5nZXMgLCBEQkRfQW55RGF0YS5wYXRjaCAsCiAgIEZvcm1hdC5wbSAsIElOU1RBTEwgLCBNQU5JRkVTVCAsIE1ha2VmaWxlLlBMICwKICAgU3RvcmFnZS5wbSAsIHNubXBzaDoKCiAgIEZpcnN0IHZlcnNpb24KICAgCjIwMDEtMTItMTAgMDM6MjAgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgICAgLSBkb24ndCBzdHJkdXAgYXJnIHRvIGRzX3NldF9zdHJpbmcKICAgCjIwMDEtMTItMTAgMDM6MTkgIGpicG4KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGRpdHRvIGluIHNldF9wZXJzaXN0ZW50X2RpcmVjdG9yeSgpCiAgIAoyMDAxLTEyLTEwIDAzOjE4ICBqYnBuCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgICAgLSBkb24ndCBzdHJkdXAoKSBpbiBzZXRfY29uZmlndXJhdGlvbl9kaXJlY3RvcnkoKSBiZWNhdXNlCiAgICAgICBkc19zZXRfc3RyaW5nKCkgYWxyZWFkeSBkb2VzIHRoYXQgZm9yIHlvdS4KICAgCjIwMDEtMTItMDcgMDk6NDMgIGhhcmRha2VyCgogICAqIGFnZW50LzogaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwgaGVscGVycy90YWJsZV9pdGVyYXRvci5oCiAgICwgbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBtaWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYzoKCiAgIC0gSW1wbGVtZW50IG5ldyBtYW50cmE6ICJhbHdheXMgcGFzcyBtb3JlIGluZm9ybWF0aW9uLCByYXRoZXIgdGhhbiBsZXNzIi4KICAgLSBmaXggdGFibGUgaXRlcmF0ZXIgR0VUTkVYVHMgZm9yIG1pc3NpbmcgZGF0YSBwb2ludHMuCiAgIC0gYWRkIGEgbmV3IGhvb2sgdG8gZnJlZSBsb29wIGNvbnRleHRzIGF0IHRoZSBlbmQgb2YgdGhlIGVudGlyZSBpdGVyYXRpb24uCiAgIAoyMDAxLTEyLTA2IDA2OjU4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jIChKQlBOLUNCTC00LjEpLCBjbGllbnQuYzoKCiAgICAgLSBpZiByZXF1ZXN0IElEcyBkb24ndCBtYXRjaCwgdGhlbiBjYWxsIGhhbmRsZV9hZ2VudHhfcGFja2V0KCkgLS0KICAgICAgIGNvcGVzIGJldHRlciB3aXRoIHVuZXhwZWN0ZWQgcGFja2V0cywgaW4gcGFydGljdWxhciBmaXhlcwogICAgICAgaW50ZXJtaXR0ZW50IGR1cGxpY2F0ZSB0cmFwIGlzc3VlIChkdWUgdG8gcmVzZW50CiAgIGFnZW50eC1Ob3RpZnktUERVKS4KICAgCjIwMDEtMTItMDUgMTM6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQWhlbS4gIE9wcHMuICBNaXNzaW5nIGluY2x1ZGVzLgogICAgIC0gbm90ZSB0byBzZWxmOiBjb21waWxlIGZpcnN0LCAqdGhlbiogY2hlY2sgaW4gY2hhbmdlcy4KICAgCjIwMDEtMTItMDUgMTM6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgYWRkIGluIHRoZSBtaXNzaW5nIGZ1bmN0aW9ucyBmcm9tIHRoZSBORVctQUdFTlQtQVBJIGJyYW5jaC4KICAgICAoYW5kIHRvIGFuc3dlciBSb2JlcnQncyBwZW5kaW5nIHF1ZXN0aW9uIG9mIHdoYXQgaGFwcGVuZWQsIGl0IHdhcwogICAgICBsaWtlbHkgb25lIG9mIHRoZSBmaWxlcyB0aGF0IGZhaWxlZCB0byBjb21taXQgb24gbXkgc2lkZSB0aGF0IHlvdQogICAgICB0cmllZCB0byBmaXggYW5kIHNvbWV3aGVyZSBiZXR3ZWVuIHRoZSB0d28gb2YgdXMgdGhlIGNoYW5nZXMgd2VyZSBsb3N0KS4KICAgCjIwMDEtMTItMDUgMTA6MDMgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSBtaW5vciB0d2Vha3MKICAgCjIwMDEtMTItMDUgMDk6MTQgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSBhZGQgVENQL0lQdjYgZG9tYWluIHRvIEFHRU5UIFNQRUMgc2VjdGlvbgogICAKICAgICAtIGluY29ycG9yYXRlIHN1Z2dlc3Rpb25zIGZyb20gcnN0b3J5CiAgIAoyMDAxLTEyLTA1IDA4OjQ3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgICAgLSB1c2UgU09DS19TVFJFQU0gbm90IFNPQ0tfREdSQU0gKGR1aCEpLiAgWW91IHdvdWxkbid0IGJlbGlldmUgaG93CiAgICAgICBjb25mdXNpbmcgdGhpcyB3YXMgLS0gZS5nLiBob3cgb24gKmVhcnRoKiBjYW4gdGhhdCBjb25uZWN0KCkgYmUKICAgICAgIHN1Y2NlZWRpbmchCiAgIAoyMDAxLTEyLTA1IDA4OjM2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIG1ha2Ugc3VyZSB0byBjbG9zZSBzb2NrZXQgaWYgeW91IGNhbid0IG1hbGxvYyB0aGUgZW5jb2RlZCBmYXItZW5kCiAgICAgICBhZGRyZXNzIGluIHNubXBfdGNwX3RyYW5zcG9ydCgpCiAgIAoyMDAxLTEyLTA1IDA4OjI3ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AgLAogICBzbm1wdHJhcC9zbm1wdHJhcC5kc3AgLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCAsCiAgIHNubXB1c20vc25tcHVzbS5kc3AgLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3A6CgogICBtZXJnZSBmcm9tIDQuMiBwYXRjaGVzIHRvIG1haW4gbGluZQogICAKMjAwMS0xMi0wNSAwODoyMyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nICwgRkFRICwgTkVXUyAsIFJFQURNRSAsCiAgIFJFQURNRS53aW4zMiAsIGFjY29uZmlnLmggLCBjb25maWcuaC5pbiAsCiAgIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsIHNlZHNjcmlwdC5pbiAsCiAgIGFnZW50L2FnZW50X2NhbGxiYWNrcy5oICwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsCiAgIGFnZW50L3NubXBkLmMgLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMgLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMKICAgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMgLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMgLCBsb2NhbC9taWIyYyAsIGxvY2FsL3RrbWliCiAgICwgbWFuL3NubXBkLmNvbmYuNS5kZWYgLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQgLAogICBwZXJsL1NOTVAvU05NUC5wbSAsIHNubXBsaWIvYXNuMS5jICwKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmggLCBzbm1wbGliL21pYi5jICwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jICwgc25tcGxpYi9yZWFkX2NvbmZpZy5oICwKICAgc25tcGxpYi9zbm1wLmggLCBzbm1wbGliL3NubXBfYXBpLmMgLAogICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AgLCB3aW4zMi9jb25maWcuaCAsCiAgIHdpbjMyL21pYl9tb2R1bGVfY29uZmlnLmggLCB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmggLAogICB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmggLCB3aW4zMi93aW4zMi5kc3cgLAogICB3aW4zMi93aW4zMi5vcHQgLCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwCiAgICwgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwICwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcAogICAsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmICwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwICwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcCAsCiAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCAsCiAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwICwgd2luMzIvc25tcGQvc25tcGQuZHNwCiAgICwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AgLCB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcAogICAsIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AgLAogICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AgLAogICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AgLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwCiAgICwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCAsCiAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwICwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwOgoKICAgbWVyZ2UgZnJvbSA0LjIgcGF0Y2hlcyB0byBtYWluIGxpbmUKICAgCjIwMDEtMTItMDUgMDc6NTEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgICAtIGZpeCBidWcgaW4gYWRkcmVzcyBwYXJzZXIKICAgCjIwMDEtMTItMDUgMDc6NDggIGpicG4KCiAgICogc25tcGxpYi86IHNubXBUQ1BJUHY2RG9tYWluLmMgLCBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgICAtIG1pbm9yIGNoYW5nZXMgdG8sIGFoZW0sIG1ha2UgaXQgY29tcGlsZQogICAKMjAwMS0xMi0wNSAwNzo0MiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSBjb25kaXRpb25hbGlzZSAjaW5jbHVkZSA8ZmNudGwuaD4KICAgCjIwMDEtMTItMDUgMDc6MzggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgICAtIGZpeCB0eXBvCiAgIAoyMDAxLTEyLTA1IDA3OjI5ICBqYnBuCgogICAqIGFjY29uZmlnLmggLCBjb25maWd1cmUuaW46CgogICAgIC0gbWVudGlvbiB0aGUgVENQL0lQdjYgdHJhbnNwb3J0IGluIGNvbmZpZywgYW5kIGFkZCBhICNkZWZpbmUgZm9yIGl0CiAgICAgICBpZiBhcHByb3ByaWF0ZQogICAKMjAwMS0xMi0wNSAwNzoyOCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICAgIC0gY2FsbCBzbm1wX3RjcDZfY3RvcigpIGlmIGFwcHJvcHJpYXRlCiAgIAoyMDAxLTEyLTA1IDA3OjI3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVENQSVB2NkRvbWFpbi5jICwgc25tcFRDUElQdjZEb21haW4uaDoKCiAgICAgLSBUQ1AvSVB2NiB0cmFuc3BvcnQgZG9tYWluLiAgVW50ZXN0ZWQuCiAgIAoyMDAxLTEyLTA1IDA3OjE5ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgICAgLSBtYWtlIGVuY29kZWQgYWRkcmVzc2VzIGF0IHRyYW5zcG9ydCBvcGVuIHRpbWUKICAgCjIwMDEtMTItMDUgMDc6MTcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYyAsIHNubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gbW92ZSAjZGVmaW5pdGlvbiBvZiBTTk1QX1NUUkVBTV9RVUVVRV9MRU4gZnJvbSBzbm1wVENQRG9tYWluLmMKICAgICAgIHRvIHNubXBfdHJhbnNwb3J0LmgKICAgCjIwMDEtMTItMDUgMDc6MTAgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF92YXJzLmM6CgogICByZW1vdmUgc29tZSB1bm5lZWRlZCBmdW5jdGlvbnMgbGlrZSwgb2gsIEkgZG9uJ3Qga25vdywgZ2V0U3RhdFB0cigpLgogICAKMjAwMS0xMi0wNSAwNTo0MyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gcmVtb3ZlIGxlZ2FjeSBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMTItMDUgMDU6MDYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgICAtIGNoYW5nZWQgdGV4dHVhbCBhZGRyZXNzIHBhcnNpbmcKICAgCjIwMDEtMTItMDQgMjI6NTIgIG5iYQoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBGaXggYmluZCBwYXJhbWV0ZXJzLCBzbyB0aGF0IHRoZSBhZ2VudCB3b3JrcwogICAKMjAwMS0xMi0wNCAxMzozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5oICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIC0gbW92ZSBmb3Jnb3R0ZW4gZnVuY3Rpb24gdHlwZWRlZnMgdG8gaXRlcmF0b3Igc3BlY2lmaWMgaGVhZGVyIGZpbGUuCiAgIC0gYWRkIGEgdm9pZCAqIHBvaW50ZXIgZm9yIHRoZSBjYWxsYmFja3MgdG8gbWFrZSBmdW5jdGlvbnMgbW9yZSByZXVzYWJsZS4KICAgCjIwMDEtMTItMDQgMTM6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuaCAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtb3ZlIGl0ZXJhdG9yIHNwZWNpZmljIHRhYmxlIGluZm9ybWF0aW9uIGludG8gaXRzIG93biBzdHJ1Y3R1cmUuCiAgIAoyMDAxLTEyLTA0IDEyOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmg6CgogICBGaXggcHJvdG90eXBlIGFzIHBvaW50ZWQgb3V0IGJ5IEplcm9tZSBQZWR1Y2Fzc2UKICAgCjIwMDEtMTItMDQgMTA6MTAgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSBtZW50aW9uIHRoYXQgbm90IGFsbCB0cmFuc3BvcnQgZG9tYWlucyBhcmUgYWx3YXlzIGF2YWlsYWJsZS4KICAgCjIwMDEtMTItMDQgMDk6NTUgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSByZW1vdmUgLXAgYW5kIC1UIG9wdGlvbnMgZnJvbSBkb2N1bWVudGF0aW9uLgogICAKICAgICAtIGFkZCBsZW5ndGh5IG5ldyBzZWN0aW9uIGRlc2NyaWJpbmcgbmV3IHRyYW5zcG9ydCBhZGRyZXNzCiAgICAgICBzcGVjaWZpY2F0aW9uIGZvcm1hdCwgd2l0aCBleGFtcGxlcyBhbmQgZXZlcnl0aGluZyEKICAgCjIwMDEtMTItMDQgMDc6MTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSBkcm9wIC1wIGFuZCAtVCBvcHRpb25zIGZvciBhcHBzLgogICAKMjAwMS0xMi0wNCAwMzoxMCAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcFVEUElQdjZEb21haW4uYyAsIHNubXBVRFBJUHY2RG9tYWluLmg6CgogICAgIC0gYWRkIGNyZWF0ZV9vc3RyaW5nIG1ldGhvZCwgZXhwb3J0IHVjZFNubXBVRFBJUHY2RG9tYWluW10KICAgCjIwMDEtMTItMDQgMDI6MTkgIGpicG4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgICAtIG1lbnRpb24gSVB2NiB0cmFuc3BvcnQgZG9tYWluIE9JRHMgaW4gcmVsZXZhbnQgY29tbWVudC4KICAgCjIwMDEtMTItMDMgMTU6MDcgIG5iYQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFF1ZWxsIGEgY29uc3QgY2FzdCB3YXJuaW5nLgogICAKMjAwMS0xMi0wMyAxNTowNyAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBkZWJ1ZyBvdXRwdXQgZnJvbSByZXRyaWVzLgogICAKMjAwMS0xMi0wMyAxNTowNiAgbmJhCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jICwgc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIEhBVkVfU1lTX1RZUEVTX0ggaXMgbm90IGNvbmRpdGlvbmFsLgogICAKMjAwMS0xMi0wMyAxNTowNCAgbmJhCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBGaXggdG8gYWxsb3cgY29tcGlsYXRpb25zIG91dHNpZGUgc291cmNlIGRpcmVjdG9yeS4KICAgCjIwMDEtMTItMDMgMTU6MDMgIG5iYQoKICAgKiBhY2NvbmZpZy5oICwgY29uZmlnLmguaW4gLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW4gLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMgLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBGaXhlcyB0byBtYWtlIFVEUElQdjYgdHJhbnNwb3J0IHdvcmsgZm9yIFNvbGFyaXMsIExpbnV4IGFuZCBGcmVlQlNELgogICBJdCBjb21waWxlcywgYW5kIHRoZSBhcHBzIHNlbmQgdjYgcGFja2V0cy4gQWdlbnQgbm90IHlldCB0ZXN0ZWQuCiAgIAoyMDAxLTEyLTAzIDA5OjQ4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLml0ZXJhdGUuY29uZiAsIG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBjb3B5IHJvYmVydHMgc3BpZmZ5IGhlYWRlciB0ZXh0CiAgIAoyMDAxLTEyLTAzIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGRhdGVudGltZSBjb2x1bW4uCiAgIAoyMDAxLTEyLTAzIDA4OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggcHJvYmxlbSB3aXRoIGRvdWJsZSBkZWxlZ2F0ZWQgcmVxdWVzdHMgYWZ0ZXIgZ2V0bmV4dCBsb29wLgogICAKMjAwMS0xMi0wMyAwODowMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgbWlicy9OT1RJRklDQVRJT04tTE9HLU1JQi50eHQ6CgogICBub3RpZmljYXRpb24gbG9nIG1pYiBhZGRlZCB0byBkZWZhdWx0IGxpc3QuCiAgIAoyMDAxLTEyLTAzIDA1OjMzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIHJlbW92ZSBzcHVyaW91cyBkZWJ1Z2dpbmcgb3V0cHV0ICgiYmxhaCIpCiAgIAoyMDAxLTExLTMwIDIzOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaDoKCiAgIENoYW5nZSBob3cgcmVxdWVzdCBwcm9jZXNzaW5nIGdldHMgZG9uZSBzdWNoIHRoYXQgcmVxdWVzdCBvYmplY3RzIGFyZQogICBhbGwgY2FsbG9jZWQgYXQgb25jZSBhbmQgZ2V0IHJldXNlZCBpbnN0ZWFkIG9mIHJlYWxsb2NhdGVkLiAgQmlnIHNwZWVkCiAgIGltcHJvdmVtZW50cy4KICAgCjIwMDEtMTEtMzAgMTU6MjIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgZG94eWdlbi5jb25mOgoKICAgIm1ha2UgZG9jIiB0byBydW4gZG94eWdlbi4KICAgCjIwMDEtMTEtMzAgMTA6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiBkZWJ1Z19oYW5kbGVyLmMgLCBtdWx0aXBsZXhlci5oOgoKICAgZG94eWdlbiBmaXhlcwogICAKMjAwMS0xMS0zMCAwOToyNiAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICAgIC0gdXNlIERFQlVHTVNHT0lEUkFOR0UgaW4gcmVnaXN0ZXJfaGFuZGxlcigpIGlmIGFwcHJvcHJpYXRlLgogICAKMjAwMS0xMS0zMCAwOToyNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIHJlZ2lzdGVyX2FnZW50eF9saXN0KCkgd2hlbiBzdWJhZ2VudCB0cmllcyB0bwogICAgICAgcmVnaXN0ZXIgYSBNSUIgcmVnaW9uIHRoYXQgZmFpbHMgZWl0aGVyIGJlY2F1c2UgaXQgaXMgYSBkdXBsaWNhdGUKICAgICAgIG9yIGJlY2F1c2Ugb2Ygc29tZSBvdGhlciByZWFzb24uCiAgIAoyMDAxLTExLTMwIDA4OjQ0ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhayBvZiBvbGRfaW5mbyAodGhhdCBuZXZlciBzZWVtcyB0byBnZXQgdXNlZCBmb3IKICAgICAgIGFueXRoaW5nIGFueXdheT8pCiAgIAogICAgIC0gZml4IG1lbW9yeSBsZWFrIHRoYXQgYXJpc2VzIGR1cmluZyByb3cgcmVnaXN0cmF0aW9uIChpbiBBZ2VudFgKICAgICAgIHN1YmFnZW50cykgYmVjYXVzZSBzdWNjZXNzaXZlIHZhcnMgY2F1c2UgYXBwYXJlbnQgZHVwbGljYXRlCiAgICAgICByZWdpc3RyYXRpb25zICh0aGlzIGlzIGEgZGVmaWNpZW5jeSkgLS0gYnV0IGl0IHdvdWxkIGFwcGVhciB0aGlzCiAgICAgICBjb3VsZCBhcmlzZSBpbiBvdGhlciBzaXR1YXRpb25zIHRvbyAoZ2VudWluZSBkdXBsaWNhdGUKICAgICAgIHJlZ2lzdHJhdGlvbnMpLgogICAKMjAwMS0xMS0zMCAwNjozMyAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAgIC0gZml4IGJyb2tlbiBwYXJzaW5nIGluIHNubXBkX3BhcnNlX2NvbmZpZ190cmFwc2VzcygpIC0tIGxvb3Agd2FzCiAgICAgICBjb3B5aW5nIHRoZSBzYW1lIChmaXJzdCkgdG9rZW4gTUFYX0FSR1MgdGltZXMuCiAgIAogICAgIC0gZWxpbWluYXRlIG1lbW9yeSBsZWFrIGluIGRpdHRvLgogICAKICAgICAtIGZpeCB0eXBvICgiUGF1c2libGUgY2F1c2UiIC0+ICJQb3NzaWJsZSBjYXVzZSkgaW4gZGl0dG8uCiAgIAoyMDAxLTExLTMwIDA2OjI5ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBwcmludCBmZCBpbiBzZXNzX3Byb2Nlc3NfcGFja2V0KCkgLS0gdXNlZnVsIGZvciBkZWJ1Z2dpbmcKICAgCjIwMDEtMTEtMzAgMDY6MjggIGpicG4KCiAgICogc25tcGxpYi86IHNubXBDYWxsYmFja0RvbWFpbi5jICwgc25tcENhbGxiYWNrRG9tYWluLmg6CgogICAgIC0gcmVtb3ZlIGEgY291cGxlIG9mIHVubmVjZXNzYXJ5ICNpbmNsdWRlcyBmcm9tIHNubXBDYWxsYmFja0RvbWFpbi5oCiAgIAogICAgIC0gc2V0ICpvcGFxdWUgdG8gTlVMTCBhZnRlciB3ZSBmcmVlIGl0IC0tIGl0IG1pZ2h0IG1hdHRlci4KICAgCjIwMDEtMTEtMzAgMDM6NDcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gY2xvbmUgUERVIGluIGhhbmRsZV9hZ2VudHhfc3ViYWdlbnQoKSBiZWZvcmUgc2VuZGluZyBpdCBvbiBjYWxsYmFjawogICAgICAgc2Vzc2lvbiB0byBhdm9pZCBkb3VibGUgZnJlZSgpIGFuZCBmcmVlKClkIG1lbW9yeSByZWFkcy4KICAgCiAgICAgLSBtb3JlIGNvbmNpc2UgKGFoZW0pIGRlY2xhcmF0aW9uIG9mIG15Y2FsbGJhY2sgaW4gaGFuZGxlX2FnZW50eF9wYWNrZXQoKS4KICAgCjIwMDEtMTEtMjkgMDU6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIHB1dCBzZXNzaW9uIGFuZCBzdWJzZXNzaW9uIGluIHN1YmFnZW50IGRlc2NyaXB0aW9uIChoZWxwZnVsIGZvcgogICAgICAgZGVidWdnaW5nKQogICAKMjAwMS0xMS0yOSAwNTo0OSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgICAtIGZpeCBJTlNUQUxMSEVBREVSUwogICAKMjAwMS0xMS0yOSAwNTo0OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBhZGQgc29tZSBkZWJ1Z2dpbmcgdG8gaW5pdF9zdWJhZ2VudCgpICh3aGljaCBzaG93ZWQgdGhhdCBpdCB3YXNuJ3QKICAgICAgIGJlaW5nIGNhbGxlZCwgc28uLi4pLgogICAKICAgICAtIGZpeCBjYXN0IGluIGhhbmRsZV9zdWJhZ2VudF9zZXRfcmVzcG9uc2UoKQogICAKMjAwMS0xMS0yOSAwNTo0NiAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBtYWtlIHN1cmUgaW5pdF9zdWJhZ2VudCgpIGdldHMgY2FsbGVkCiAgIAoyMDAxLTExLTI4IDA5OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgY2hlY2sgZm9yIHNlc3Npb24gcmVnaXN0cmF0aW9ucyBpbiBhbGwgY29udGV4dHMuCiAgIAoyMDAxLTExLTI4IDA2OjM5ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYyAsIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICBBZGQgc3lzL3R5cGVzLmggZm9yIGJ1ZyAjNDg2Mjc3LgogICAKMjAwMS0xMS0yOCAwNDowMyAgamJwbgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgICAgLSAjaW5jbHVkZSA8bmV0ZGIuaD4KICAgCjIwMDEtMTEtMjggMDQ6MDMgIGpicG4KCiAgICogY29uZmlndXJlLmluICwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSBpbnN0YWxsIHNubXBfdHJhbnNwb3J0LmggYW5kIHNubXAqRG9tYWluLmggKGZvciB0aGUgY29uZmlndXJlZAogICAgICAgdHJhbnNwb3J0IGRvbWFpbnMpCiAgIAoyMDAxLTExLTI4IDAzOjI5ICBqYnBuCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgICAgLSByZXZlcnNlIG15c3RlcnkgcmVtb3ZhbCBvZiAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPiBhbmQgI2luY2x1ZGUKICAgPHN5cy90aW1lLmg+CiAgIAoyMDAxLTExLTI3IDE3OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaDoKCiAgIG1vcmUgaW50ZWxsaWdlbnRseSBhbGxvY2F0ZSB0cmVlIHNwYWNlIGJhc2VkIG9uIG51bWJlciBvZiB2YXJiaW5kcyBpbiByZXF1ZXN0LgogICAKMjAwMS0xMS0yNyAxNDoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50Lmg6CgogICBtYWxsb2Mgb25lIGxhcmdlIHRyZWVfY2FjaGUgYXJyYXkgcmF0aGVyIHRoYW4gYW4gYXJyYXkgb2YgdHJlZV9jYWNoZSBwb2ludGVycy4KICAgCjIwMDEtMTEtMjcgMTI6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaDoKCiAgIGluY2x1ZGUgZmlsZSBuYW1lIGNoYW5nZS4KICAgCjIwMDEtMTEtMjcgMTE6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNvbW1lbnQgY2hhbmdlcy4KICAgCjIwMDEtMTEtMjcgMDc6NTIgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBmaXhlZCBNYWtlZmlsZSBmb3Igc25tcHRyYXBkLgogICAKMjAwMS0xMS0yNyAwNzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IE1ha2VmaWxlLmluICwgYWxsX2hlbHBlcnMuYyAsCiAgIGFsbF9oZWxwZXJzLmggLCBkZWJ1Z19oYW5kbGVyLmMgLCBkZWJ1Z19oYW5kbGVyLmg6CgogICBkZWJ1ZyBoYW5kbGVyIGNyZWF0ZWQgZm9yIGluc2VydGluZyBkZWJ1Z2dpbmcgb3V0cHV0IGludG8gdGhlIGNhbGxpbmcgY2hhaW4uCiAgIAoyMDAxLTExLTI3IDA3OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBlbnVtIGRlZmluaXRpb25zIGZvciBtb2RlcyBhbmQgY2FuX21vZGVzLgogICAKMjAwMS0xMS0yNiAxNToyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgc2V0IFBEVSB2YXJpYWJsZSB0byBOVUxMIHRvIGF2b2lkIGZyZWVpbmcgaXQgdHdpY2UuCiAgIAoyMDAxLTExLTI2IDExOjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgcGx1ZyBhbm90aGVyIG1lbW9yeSBsZWFrLgogICAKMjAwMS0xMS0yNiAwOTowNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMjBzbm1wdjNnZXQgLCBUMDIxc25tcHYzZ2V0bmV4dCAsCiAgIFQwMjJzbm1wdjNnZXRNRDUgLCBUMDIzc25tcHYzZ2V0TUQ1REVTICwKICAgVDAyNHNubXB2M2dldFNIQTEgLCBUMDI1c25tcHYzZ2V0U0hBREVTICwKICAgVDAyOHNubXB2M2dldGZhaWwgLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uICwKICAgVDA1M2FnZW50djF0cmFwICwgVDA1NGFnZW50djJjdHJhcCAsIFQwNTVhZ2VudHYxbWludHJhcAogICAsIFQwNTZhZ2VudHYyY21pbnRyYXAgLCBUMTEwYWdlbnR4Z2V0ICwKICAgVDExMWFnZW50eHNldCAsIFQxMTJhZ2VudHhzZXRmYWlsICwgVDExM2FnZW50eHRyYXAgLAogICBUMTIwcHJveHlnZXQgLCBUMTIxcHJveHlzZXQgLCBUMTIycHJveHlzZXRmYWlsOgoKICAgZG9uJ3QgdXNlIGNvbnRleHRzIGluIHRlc3RzLgogICAKMjAwMS0xMS0yNiAwODo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGZpeCBtZW1vcnkgbGVhay4KICAgCjIwMDEtMTEtMjYgMDg6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdGVzdGRlbGF5ZWQuYyAsIGFnZW50eC9tYXN0ZXIuYyAsCiAgIHVjZC1zbm1wL3Byb3h5LmM6CgogICB1c2UgZnJlZV9kZWxlZ2F0ZWRfY2FjaGUoKSB0byBwbHVnIG1lbW9yeSBsZWFrcy4KICAgCjIwMDEtMTEtMjYgMDg6NDggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jICwgYWdlbnRfaGFuZGxlci5oOgoKICAgZnJlZV9kZWxlZ2F0ZWRfY2FjaGUoKSByb3V0aW5lCiAgIAoyMDAxLTExLTI2IDA4OjE5ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gYWRkIHRoZSBhYmlsaXR5IHRvIGxpc3RlbiBmb3IgdHJhcHMgb24gbXVsdGlwbGUgdHJhbnNwb3J0cyB2aWEgdGhlCiAgICAgICAtcCBvcHRpb24gKGNvbnNpc3RlbnQgd2l0aCBzbm1wZCkuCiAgIAoyMDAxLTExLTI2IDA1OjQ0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgICAgLSB1c2Ugc25tcF90ZG9tYWluX3RyYW5zcG9ydF9vaWQoKSB0byBkbyBzZXNzaW9uIGNyZWF0aW9uIGZyb20KICAgICAgIDx0RG9tYWluLW9pZCwgdEFkZHJlc3Mtb2N0ZXQtc3RyaW5nPiBwYWlyLCB0byBhbGxvdyBjcmVhdGlvbiBvZgogICAgICAgbm9uLUlQdjQgc2Vzc2lvbnMgaW4gc25tcFRhcmdldEFkZHJUYWJsZS4KICAgCjIwMDEtMTEtMjYgMDQ6NDUgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wSVBYRG9tYWluLmMgLAogICBzbm1wVENQRG9tYWluLmMgLCBzbm1wVURQRG9tYWluLmMgLCBzbm1wVW5peERvbWFpbi5jCiAgICwgc25tcF90cmFuc3BvcnQuYyAsIHNubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gYWRkIHN1cHBvcnQgZm9yIGNyZWF0aW5nIGEgdHJhbnNwb3J0IGZyb20gYQogICAgICAgPHREb21haW4tb2lkLCB0QWRkcmVzcy1vY3RldC1zdHJpbmc+IHBhaXIuCiAgIAoyMDAxLTExLTI2IDAzOjA2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgICAgLSB1c2Ugc25tcF90ZG9tYWluX3N1cHBvcnQoKSB0byBkZXRlcm1pbmUgd2hldGhlciBhIHRyYW5zcG9ydCBkb21haW4KICAgICAgIGlzIHN1cHBvcnRlZC4KICAgCjIwMDEtMTEtMjMgMTA6MjQgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBhZGQgbXVsdGlwbGUgdHJhbnNwb3J0IGRvbWFpbiBzdXBwb3J0IGZvciB0cmFwZCAtLSB0aGlzIHdhcyByZWFsbHkKICAgICAgIFJFQUxMWSBlYXN5IQogICAKMjAwMS0xMS0yMyAwOToyNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMgLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gcmVtb3ZlIGxlZ2FjeSBmdW5jdGlvbiBzbm1wX3RyYW5zcG9ydF9zdXBwb3J0KCkgKHJlcGxhY2VkIHdpdGgKICAgICAgIHNubXBfdGRvbWFpbl9zdXBwb3J0KCkpLgogICAKMjAwMS0xMS0yMyAwODo1NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmM6CgogICAgIC0gdXNlIG5ldHdvcmsgb3JkZXIgZm9yIEFBTDVQVkMgdHJhbnNwb3J0IGFkZHJlc3MgZW5jb2RpbmcKICAgCjIwMDEtMTEtMjMgMDg6NDcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wSVBYRG9tYWluLmMgLAogICBzbm1wVW5peERvbWFpbi5jOgoKICAgICAtIHNldCBsb2NhbF9sZW5ndGgsIHJlbW90ZV9sZW5ndGggYXMgYXBwcm9wcmlhdGUKICAgCjIwMDEtMTEtMjMgMDg6MzkgIGpicG4KCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSBmaXggdHlwbwogICAKMjAwMS0xMS0yMyAwODozNCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgICAgLSBtYWtlIHRyYXBzIHdvcmsgd2l0aCBuZXctc3R5bGUgYWRkcmVzc2VzLCB1c2UgZG9tYWluLWJhc2VkIGFkZHJlc3MKICAgICAgIGVuY29kaW5ncyBpbiBzbm1wVGFyZ2V0QWRkclRhYmxlLiAgTm90ZSB5b3UgY2FuIG5vdyBzZW5kIHRyYXBzL2luZm9ybXMKICAgICAgIG92ZXIgYW55IHN1cHBvcnRlZCB0cmFuc3BvcnQgdHlwZSBieSB1c2luZyB0aGUgdHJhcHNlc3MgZGlyZWN0aXZlIGFuZAogICAgICAgYSB0cmFuc3BvcnQ6YWRkcmVzcyB0eXBlIHNwZWNpZmljYXRpb24uCiAgIAoyMDAxLTExLTIzIDA4OjMxICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcElQWERvbWFpbi5jICwKICAgc25tcFRDUERvbWFpbi5jICwgc25tcFVEUERvbWFpbi5jICwgc25tcFVuaXhEb21haW4uYzoKCiAgICAgLSBjcmVhdGUgYXBwcm9wcmlhdGVseS1lbmNvZGVkIGxvY2FsIG9yIHJlbW90ZSBlbmRwb2ludCBhZGRyZXNzZXMgYXQKICAgICAgIHRyYW5zcG9ydCBvcGVuIHRpbWUuCiAgIAoyMDAxLTExLTIzIDA2OjUwICBqYnBuCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAgIC0gdXBkYXRlIGRlcGVuZGVuY2llcyBmb3IgdHJhbnNwb3J0cwogICAKMjAwMS0xMS0yMiAwOTowOCAgamJwbgoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2ggLCBldmFsX3Rvb2xzLnNoICwKICAgdGVzdHMvVDAwMXNubXB2MWdldCAsIHRlc3RzL1QwMDJzbm1wdjFnZXRuZXh0ICwKICAgdGVzdHMvVDAwM3NubXB2MWdldGZhaWwgLCB0ZXN0cy9UMDE0c25tcHYyY2dldCAsCiAgIHRlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCAsIHRlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCAsCiAgIHRlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwgLCB0ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsCiAgICwgdGVzdHMvVDAyMHNubXB2M2dldCAsIHRlc3RzL1QwMjFzbm1wdjNnZXRuZXh0ICwKICAgdGVzdHMvVDAyMnNubXB2M2dldE1ENSAsIHRlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMgLAogICB0ZXN0cy9UMDI0c25tcHYzZ2V0U0hBMSAsIHRlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMgLAogICB0ZXN0cy9UMDI4c25tcHYzZ2V0ZmFpbCAsIHRlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24gLAogICB0ZXN0cy9UMDQ5c25tcHYzaW5mb3JtICwgdGVzdHMvVDA1MHNubXB2M3RyYXAgLAogICB0ZXN0cy9UMDUxc25tcHYyY3RyYXAgLCB0ZXN0cy9UMDUyc25tcHYyY2luZm9ybSAsCiAgIHRlc3RzL1QwNTNhZ2VudHYxdHJhcCAsIHRlc3RzL1QwNTRhZ2VudHYyY3RyYXAgLAogICB0ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAgLCB0ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwICwKICAgdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAgLCB0ZXN0cy9UMTAwYWdlbnRodXAgLAogICB0ZXN0cy9UMTEwYWdlbnR4Z2V0ICwgdGVzdHMvVDExMWFnZW50eHNldCAsCiAgIHRlc3RzL1QxMTJhZ2VudHhzZXRmYWlsICwgdGVzdHMvVDExM2FnZW50eHRyYXAgLAogICB0ZXN0cy9UMTIwcHJveHlnZXQgLCB0ZXN0cy9UMTIxcHJveHlzZXQgLAogICB0ZXN0cy9UMTIycHJveHlzZXRmYWlsOgoKICAgICAtIHVzZSB1ZHA6PGhvc3RuYW1lPjo8cG9ydD4gaW5zdGVhZCBvZiAtcCB0byBtYWtlIHRlc3RzIHdvcmsgYWdhaW4KICAgCjIwMDEtMTEtMjIgMDA6MjAgIGhhcmRha2VyCgogICAqIGFwcHMvOiBub3RpZmljYXRpb25fbG9nLmMgLCBub3RpZmljYXRpb25fbG9nLmg6CgogICBtb3JrIHdvcmUgb24gdGhlIG5vdGlmaWNhdGlvbiBsb2cgbWliLiAgSXQgbm93IHN1cHBvcnRzIHZhcmlhYmxlCiAgIHN0b3JhZ2UsIGJ1dCBzZWdmYXVsdHMgb24gYWNjZXNzIGR1ZSB0byBwZHUgY2xvbmluZyBwcm9ibGVtcyBJJ20gbm90CiAgIGdvaW5nIHRvIHdvcmsgb3V0IHJpZ2h0IG5vdy4KICAgCjIwMDEtMTEtMjEgMjM6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBmaXggc25tcHRyYXBkIGxpbmtpbmcuCiAgIAoyMDAxLTExLTIxIDIyOjU4ICByc3RvcnkKCiAgICogc25tcGxpYi9hc24xLmg6CgogICByZW1vdmUgZHVwbGljYXRlIE9JRF9MRU5HVEg7IHVzZSBhY3R1YWwgb2lkIHR5cGUgaW4gY2FsY3VsYXRpb24KICAgCjIwMDEtMTEtMjEgMjI6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBhZGQgTlVMTCBwb2ludGVyIGZvciByYnVpbGQgaW4gc2Vzc2lvbiBjcmVhdGlvbi4KICAgCjIwMDEtMTEtMjEgMjI6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIG5ldGluZXQvaW4uaCBuZWVkZWQuCiAgIAoyMDAxLTExLTIxIDIyOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIHZhcmlhYmxlIGNsZWFuIHVwcy4KICAgCjIwMDEtMTEtMjEgMjI6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMgLCBsb2NhbC9taWIyYyAsCiAgIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZiAsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgogICAsIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYgLCBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mICwKICAgbWFuL01ha2VmaWxlLmluICwgbWlicy9NYWtlZmlsZS5pbiAsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dCAsIHBlcmwvU05NUC9TTk1QLnhzICwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiAsIHNubXBsaWIvbWliLmMgLCBzbm1wbGliL21pYi5oCiAgICwgc25tcGxpYi9yZWFkX2NvbmZpZy5jICwgc25tcGxpYi9yZWFkX2NvbmZpZy5oICwKICAgc25tcGxpYi9zbm1wLXRjLmggLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmggLAogICBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3NubXBfYXBpLmggLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMgLCBzbm1wbGliL3NubXBfY2xpZW50LmggLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMgLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmggLAogICBzbm1wbGliL3Rvb2xzLmMgLCBzbm1wbGliL3Rvb2xzLmggLCBzbm1wbGliL3ZhY20uYzoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMjowOCAgcnN0b3J5CgogICAqIHNubXBsaWIvOiB2YWNtLmggLCBhc24xLmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjE6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogc25tcENhbGxiYWNrRG9tYWluLmMgLCBzbm1wQ2FsbGJhY2tEb21haW4uaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMTo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcC5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIxOjMzICByc3RvcnkKCiAgICogc25tcGxpYi86IG9pZF9hcnJheS5jICwgb2lkX2FycmF5Lmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjE6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogZGF0YV9saXN0LmMgLCBkYXRhX2xpc3QuaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAxODo1NiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBjb25maWcuaC5pbiAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIHZlcnNpb24uaCAsIGFnZW50L01ha2VmaWxlLmluICwKICAgYWdlbnQvYWdlbnRfaGFuZGxlci5jICwgYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgYWdlbnQvYWdlbnRfaW5kZXguYyAsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGFnZW50L21pYl9tb2R1bGVzLmMgLCBhZ2VudC9zbm1wX2FnZW50LmMgLAogICBhZ2VudC9zbm1wX2FnZW50LmggLCBhZ2VudC9zbm1wX3ZhcnMuYyAsIGFnZW50L3NubXBkLmMKICAgLCBhZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oICwgYWdlbnQvdmFyX3N0cnVjdC5oCiAgICwgYWdlbnQvaGVscGVycy8uY3ZzaWdub3JlICwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbgogICAsIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYyAsCiAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaCAsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuaCAsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYyAsCiAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuaCAsIGFnZW50L2hlbHBlcnMvbnVsbC5jICwKICAgYWdlbnQvaGVscGVycy9udWxsLmggLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5oICwgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYyAsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmggLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jICwKICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuaCAsIGFnZW50L2hlbHBlcnMvc2V0X2hlbHBlci5oICwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZS5oICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5oCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuaAogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmggLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmggLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiAsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgKICAgLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmggLCBhZ2VudC9taWJncm91cC90YXJnZXQuaAogICAsIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMgLAogICBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5oICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmggLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMgLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgKICAgLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4Ly5jdnNpZ25vcmUgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi8uY3ZzaWdub3JlICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvLmN2c2lnbm9yZSAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmgKICAgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uaCAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS8uY3ZzaWdub3JlICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYyAsIGFwcHMvTWFrZWZpbGUuaW4gLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYyAsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oICwKICAgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAwNjo0MyAgamJwbgoKICAgKiBjb25maWcuaC5pbjoKCiAgICAgLSBJUHY2IGNvbmZpZyBkZWZzCiAgIAoyMDAxLTExLTIxIDA2OjM2ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYyAsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSByZW1vdmUgbm93LWV4dHJhbmVvdXMgI2luY2x1ZGUgInNubXBCbGFoRG9tYWluLmgiIGxpbmVzCiAgIAoyMDAxLTExLTIxIDAzOjM5ICBqYnBuCgogICAqIGFwcHMvLmN2c2lnbm9yZToKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDEtMTEtMjAgMDk6MzggIGpicG4KCiAgICogc25tcGxpYi86IHNubXBJUFhEb21haW4uYyAsIHNubXBJUFhEb21haW4uaDoKCiAgICAgLSBkdWguICBGb3Jnb3QgYSBjb3VwbGUgb2YgdGhpbmdzIHRvIGRvIHdpdGggZG9tYWluLWJhc2VkIHRyYW5zcG9ydAogICAgICAgYWRkcmVzcyBwYXJzaW5nLgogICAKMjAwMS0xMS0yMCAwOToyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gdXNlIG5ldyBkb21haW4tYmFzZWQgdHJhbnNwb3J0IGFkZHJlc3MgcGFyc2luZyBmb3IgYWdlbnQgTlNBUHMKICAgCjIwMDEtMTEtMjAgMDk6MjcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgc25tcElQWERvbWFpbi5jICwgc25tcFRDUERvbWFpbi5jICwgc25tcFRDUERvbWFpbi5oCiAgICwgc25tcFVEUERvbWFpbi5jICwgc25tcFVEUERvbWFpbi5oICwKICAgc25tcFVuaXhEb21haW4uYyAsIHNubXBVbml4RG9tYWluLmggLCBzbm1wX2FwaS5jICwKICAgc25tcF90cmFuc3BvcnQuYyAsIHNubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gZG9tYWluLWJhc2VkIHRyYW5zcG9ydCBhZGRyZXNzIHBhcnNpbmcKICAgCjIwMDEtMTEtMjAgMDk6MTYgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBVRFBJUHY2RG9tYWluLmMgLCBzbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgICAtIFVEUC9JUHY2IHRyYW5zcG9ydCBkb21haW4uICBOb3RlOiBpbmNvbXBsZXRlIQogICAKMjAwMS0xMS0yMCAwODoyOSAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMgLCBhZ2VudF9pbmRleC5oOgoKICAgICAtIHVucmVnaXN0ZXJfe3N0cmluZyxpbnQsb2lkfV9pbmRleCgpIHV0aWxpdHkgZnVuY3Rpb25zIGNvbnRyaWJ1dGVkCiAgICAgICBieSBEYW1pYW4gR2lsbXVycmF5LgogICAKMjAwMS0xMS0yMCAwMjoyNiAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuaCAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wX2FwaS5oOgoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgZGVmaW5pdGlvbiBvZiBTTk1QX01BWF9TRUNfTkFNRV9TSVpFLCBub3RlZCBieQogICAgICAgS2FybCBNLiBIZWdibG9vbS4KICAgCjIwMDEtMTEtMTkgMTY6NTkgIGRyaWVodWlzCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgRml4IHR5cG8gaW4gY29tbWVudCBba2FybGhlZ0BtaWNyb3NoYXJwLmNvbV0KICAgCjIwMDEtMTEtMTYgMDg6MzQgIGpicG4KCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgICAtIGFkZCBzdXBwb3J0IGZvciBVbnNpZ25lZDMyL0dhdWdlMzIgdHlwZXMKICAgCjIwMDEtMTEtMTUgMTA6MDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogcHJvdG9jb2wuYyAoVjQtMi1wYXRjaGVzLjUpLCBwcm90b2NvbC5jOgoKICAgICAtIHN0cmljdGVyIHRlc3QgZm9yIG51bGwgT0lEcwogICAKMjAwMS0xMS0xNSAwODo0NCAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkb2N1bWVudCByZWFkLW9ubHkgbmF0dXJlIG9mIHNubXBFbmFibGVBdXRoZW5UcmFwcy4wIGlmIHZhbHVlIGlzCiAgICAgICBjb25maWd1cmVkIHZpYSB0aGUgYXV0aHRyYXBlbmFibGUgdG9rZW4KICAgCjIwMDEtMTEtMTUgMDg6NDQgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jICwgYWdlbnRfdHJhcC5jICwKICAgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYzoKCiAgICAgLSBtYWtlIHZhbHVlIG9mIHNubXBFbmFibGVBdXRoZW5UcmFwcy4wIHBlcnNpc3RlbnQuICBTZXR0aW5nIHZpYQogICAgICAgYSByZWFkLW9ubHkgY29uZmlndXJhdGlvbiBmaWxlIGFsc28gbWFrZXMgb2JqZWN0IG5vdFdyaXRhYmxlIChhcwogICAgICAgc3lzQ29udGFjdC4wIGV0IGFsLikuCiAgIAoyMDAxLTExLTE1IDA2OjU3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGxldCBWQUNNIGNoZWNrcyBzdWNjZWVkIGZvciBub24tSVB2NCB0cmFuc3BvcnRzCiAgIAoyMDAxLTExLTE1IDA1OjE5ICBqYnBuCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTExYWdlbnR4c2V0ICwgVDEyMXByb3h5c2V0OgoKICAgICAtIHVzZSBwc3lzY29udGFjdCBub3Qgc3lzY29udGFjdCB0byBzZXQgaW5pdGlhbCB2YWx1ZSBvZiBzeXNDb250YWN0LjAKICAgICAgIG9iamVjdCBzaW5jZSB0aGUgbGF0dGVyIGFsc28gbWFrZXMgdGhlIG9iamVjdCByZWFkLW9ubHkuCiAgIAoyMDAxLTExLTE1IDA1OjA3ICBqYnBuCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjYpLCBzbm1wZC5jOgoKICAgICAtIG1pbm9yIGZpeCB0byBmb3JtYXR0aW5nIG9mIHVzYWdlIG1lc3NhZ2UKICAgCjIwMDEtMTEtMTUgMDQ6MDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgICAgLSBhZGQgbWlzc2luZyAjaW5jbHVkZSAic25tcGQuaCIgKGZvciAjZGVmaW5pdGlvbiBvZiBNQVNURVJfQUdFTlQpCiAgICAgLSBkb24ndCBzdHJkdXAoKSBhZ2VudHhzb2NrZXQgdmFsdWUgLS0gZHNfc2V0X3N0cmluZyBkb2VzIGl0IGZvciB5b3UKICAgICAtIGNoYW5nZSBkZWJ1Z2dpbmcgdG8gZml0IGluIGJldHRlciB3aXRoIHJlc3Qgb2YgbW9kdWxlCiAgIAoyMDAxLTExLTE0IDE2OjA1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjQtMi1wYXRjaGVzLls3LDddKSwgY29uZmlnLmguaW4KICAgLCBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggaW5pdCBmdW5jdGlvbiBjaGVja2luZyBpbiBtb2R1bGVzCiAgIAoyMDAxLTExLTE0IDE2OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBhZ2VudHhfY29uZmlnLmMgLCBhZ2VudHhfY29uZmlnLmgKICAgLCBtYXN0ZXIuYyAsIG1hc3Rlci5oICwgc3ViYWdlbnQuaDoKCiAgIHNsaWdodGx5IG1vZGlmaWVkIHBhdGNoIGZyb20gSGFycmllIHRvIG1vdmUgYWdlbnR4IGNvbmZpZ3VyYXRpb24gaW50bwogICBhIHNlcGFyYXRlIGZpbGUuCiAgIAoyMDAxLTExLTEzIDEzOjU3ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIGZpbGUgbm90aWZpY2F0aW9uX2xvZy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDEzOjU3ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGZpbGUgbm90aWZpY2F0aW9uX2xvZy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYzoKCiAgIGZpbGUgbnNUcmFuc2FjdGlvblRhYmxlLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMTM6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oOgoKICAgZmlsZSBuc1RyYW5zYWN0aW9uVGFibGUuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMyAxMzo1NSAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgZmlsZSBORVQtU05NUC1BR0VOVC1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDA1OjI5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgICAtIHBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoIHRvIHF1aWV0ZW4gc29tZSBub2lzeSBsb2dnaW5nCiAgIAoyMDAxLTExLTEzIDA0OjEzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSB1c2UgdW5yZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgd2hlbiBhcHByb3ByaWF0ZSBpbgogICAgICAgdW5yZWdpc3Rlcl9hZ2VudHhfbGlzdCgpLgogICAKMjAwMS0xMS0xMyAwMzoyMyAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIHJlc2V0IHZyLT5uYW1lbGVuIHdoZW4gd2UndmUgZmluaXNoZWQgd2l0aCBpdAogICAKMjAwMS0xMS0xMiAyMzoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jOgoKICAgZmlsZSBhbGxfaGVscGVycy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEyIDIzOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmg6CgogICBmaWxlIGFsbF9oZWxwZXJzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMDggMDg6MDkgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBiZXR0ZXIgaW1wbGVtZW50YXRpb24gb2YgdW5yZWdpc3Rlcl9taWJfdGFibGVfcm93KCksIHdoaWNoIHVzZXMKICAgICAgIHJhbmdlcyBwcm9wZXJseSBpbiB0aGUgY2FsbGJhY2sgKGhlbmNlIG11Y2ggbW9yZSBlZmZpY2llbnQgZm9yCiAgICAgICBBZ2VudFgpLgogICAKMjAwMS0xMS0wNyAwOTo1NiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSByZW1vdmUgbm93LXJlZHVuZGFudCBhZ2VudHhfYnVpbGQgZnVuY3Rpb25zCiAgIAoyMDAxLTExLTA3IDA2OjMxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jICwgbWFzdGVyX2FkbWluLmMgLAogICBwcm90b2NvbC5jOgoKICAgICAtIHVzZSBERUJVR01TR09JRFJBTkdFKCkgaW4gYSBjb3VwbGUgb2YgcGxhY2VzIGZvciBtb3JlIGNvbXByZWhlbnNpdmUKICAgICAgIGRlYnVnZ2luZyBvdXRwdXQuCiAgIAogICAgIC0gcGFyc2UgdW5yZWdpc3RlciByYW5nZXMgcHJvcGVybHksIGFuZCB1c2UgdGhlIHJhbmdlIHByb3Blcmx5IGZvcgogICAgICAgcGFzc2luZyB0byB1bnJlZ2lzdGVyX21pYl9jb250ZXh0KCkuCiAgIAoyMDAxLTExLTA3IDAzOjMzICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2RlYnVnLmMgLCBzbm1wX2RlYnVnLmg6CgogICAgIC0gYWRkIERFQlVHU01TR09JRFJBTkdFKCkgbWFjcm8gZm9yIGRlYnVnZ2luZyBPSUQgcmFuZ2VzCiAgIAoyMDAxLTExLTA2IDA2OjA0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIHJlc2V0IHRoZSBpbmNsdXNpdmUgZmxhZyBpbiBhIGNvdXBsZSBvZiBjYXNlcywgdG8gcHJldmVudCBzcHVyaW91cwogICAgICAgSU5DTFVTSVZFIGdldE5leHQgYmVoYXZpb3VyCiAgIAoyMDAxLTExLTA1IDA4OjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGNvcnJlY3QgYnVnIGluIHJhbmdlX3N1YmlkIHR3ZWFrIGNvZGUKICAgCjIwMDEtMTEtMDUgMDU6MDAgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBjYWxjdWxhdGUgdXBwZXIgYm91bmQgZm9yIHRhYmxlIHJvdyByZWdpc3RyYXRpb25zIHNsaWdodGx5IGRpZmZlcmVudGx5CiAgIAoyMDAxLTExLTAxIDA5OjM1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgcHJvdG9jb2wuYyAsCiAgIHByb3RvY29sLmggLCBzdWJhZ2VudC5jOgoKICAgICAtIGltcGxlbWVudCByZWxvY2F0aW5nIGJ1ZmZlciB2ZXJzaW9uIG9mIGFnZW50eF9idWlsZCgpIHJvdXRpbmVzLAogICAgICAgYW5kIHVzZSB0aGVtLgogICAKMjAwMS0xMS0wMSAwOTozMyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfYXBpLmg6CgogICAgIC0gc3VwcG9ydCBmb3IgcmVsb2NhdGFibGUgYnVmZmVyIGJ1aWxkIGNhbGxiYWNrcyB2aWEgb3Blbl9leCBjYWxscwogICAKMjAwMS0xMC0zMCAwNzoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAgIC0gZml4IGJ1ZyB3aGVyZWJ5IGludGVyZmFjZSBjb3VudGVyIGlzIG5vdCByZXNldCwgbm90ZWQgYnkgKGFtb25nc3QKICAgICAgIG90aGVycykgVmljdG9yIEtpcmhlbnNodGVpbiBpbiBwYXRjaCAjNDc0MDY0LgogICAKMjAwMS0xMC0zMCAwMzoyNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbWFrZSB0aGUgaW5pdGlhbCBidWZmZXIgc2l6ZSAyMDQ4IGluIHNubXBfcmVzZW5kX3JlcXVlc3QgKGFzIGluCiAgICAgICBfc2Vzc19hc3luY19zZW5kKSB0byBtYWtlIHN1Y2Nlc3MvZmFpbCBiZWhhdmlvdXIgZm9yIEFnZW50WCBtb3JlCiAgICAgICBwcmVkaWN0YWJsZSAoc2luY2UgQWdlbnRYIFNUSUxMIGRvZXNuJ3QgdXNlIHJlbG9jYXRpbmcgYnVmZmVycywKICAgICAgIGJvbyBoaXNzKS4KICAgCjIwMDEtMTAtMjkgMjM6MTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmY6CgogICBmaWxlIG1pYjJjLmFycmF5LWF1dG8uY29uZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOSAyMzoxNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGZpbGUgbWliMmMuYXJyYXktdXNlci5jb25mIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI4IDE0OjUzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgZmlsZSB0YWJsZV9hcnJheS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI4IDE0OjUzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5oOgoKICAgZmlsZSB0YWJsZV9hcnJheS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI4IDE0OjUwICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuaDoKCiAgIGZpbGUgb2lkX2FycmF5Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjggMTQ6NTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgZmlsZSBvaWRfYXJyYXkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yNiAxOTo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gZml4IGZ1bmN0aW9uIG5hbWUgaW4gZXJyb3IgbWVzc2FnZQogICAKMjAwMS0xMC0yNiAwNjowNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYyAsIGludGVyZmFjZXMuaDoKCiAgICAgIC0gYWRkIHN1cHBvcnQgZm9yIHJ4IGFuZCB0eCBkcm9wIGNvdW50cyAoaWZJbkRpc2NhcmRzIGFuZAogICAgICAgIGlmT3V0RGlzY2FyZHMpIGZvciBMaW51eCAoMi4yKykKICAgCjIwMDEtMTAtMjYgMDU6NTcgIGpicG4KCiAgICogYWNsb2NhbC5tNDoKCiAgICAgLSBhZGQgaWZfaXFkcm9wcyBtZW1iZXIgdG8gc3RydWN0IGlmbmV0CiAgIAoyMDAxLTEwLTI2IDA0OjAzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgICAgLSBhZGQgdHJhbnNsYXRpb24gZm9yIGF0bSgzNykgdHlwZSBpbnRlcmZhY2VzIGZvciBMaW51eAogICAKMjAwMS0xMC0yNiAwMzo0MyAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkb2N1bWVudCB0aGUgZmFjdCB0aGF0IHNldHRpbmcgc3lzTG9jYXRpb24uMCAoZXQgYWwuKSB2aWEgYQogICAgICAgc3lzbG9jYXRpb24gKG9yIGVxdWl2YWxlbnQpIHRva2VuIG1ha2VzIHRoZSBvYmplY3QgcmVhZC1vbmx5LAogICAgICAgcmV0dXJuaW5nIGEgbm90V3JpdGFibGUgZXJyb3IgcmVzcG9uc2UgaWYgYW4gYXR0ZW1wdCBpcyBtYWRlIHRvCiAgICAgICBTRVQgaXQuCiAgIAoyMDAxLTEwLTI0IDEwOjA3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzdGVtX21pYi5jIChWNC0yLXBhdGNoZXMuNCksCiAgIHN5c3RlbV9taWIuYzoKCiAgICAgLSBmaXggdHlwbyBub3RlZCBieSBUaW0gRGlldHoKICAgCjIwMDEtMTAtMjQgMDg6NDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXN0ZW1fbWliLmMgLCBzeXN0ZW1fbWliLmg6CgogICAgIC0gaW1wbGVtZW50IHBlcnNpc3RlbmNlIGZvciBzeXNMb2NhdGlvbi4wLCBzeXNDb250YWN0LjAgYW5kIHN5c05hbWUuMAogICAKICAgICAtIHByZXNlbmNlIG9mIGEgc3lzbG9jYXRpb24gdG9rZW4gaW4gc25tcGQuY29uZiBtYWtlcyBzeXNMb2NhdGlvbi4wCiAgICAgICBub24td3JpdGFibGUgKHJldHVybnMgbm90V3JpdGFibGUgb24gU0VUIGF0dGVtcHRzKQogICAKMjAwMS0xMC0yNCAwNTowOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dpbnN0LmMgKFY0LTItcGF0Y2hlcy4yKSwgaHJfc3dpbnN0LmM6CgogICAgIC0gZml4IHNtYWxsIG1lbW9yeSBsZWFrIGp1c3QgaW50cm9kdWNlZAogICAKMjAwMS0xMC0yNCAwMzo0MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgICAtIHVzZSBwa2dpbmZvIGludGVyZmFjZSB0byBkZXRlcm1pbmUgdHlwZSBvZiBzb2Z0d2FyZSBwYWNrYWdlIG1vcmUKICAgICAgIHNwZWNpZmljYWxseSBpZiBwb3NzaWJsZS4gIFNsaWdodCB2YXJpYXRpb24gb24gcGF0Y2ggIzQ3MzY2OSwgc3VibWl0dGVkCiAgICAgICBieSBTdGVmYW4gUmFkbWFuLgogICAKMjAwMS0xMC0yNCAwMzozOCAgamJwbgoKICAgKiBhY2NvbmZpZy5oICwgY29uZmlndXJlLmluOgoKICAgICAtIGF1dG9jb25mIHN1cHBvcnQgZm9yIGRldGVjdGluZyBwa2dpbmZvIGludGVyZmFjZSBpbiBsaWJhZG0uICBUaGFua3MKICAgICAgIHRvIFN0ZWZhbiBSYWRtYW4gKHBhdGNoICM0NzM2NjkpLgogICAKMjAwMS0xMC0yMSAwNzoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgZmlsZSBtaWIyYy5pdGVyYXRlLmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMTkgMDk6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBmaWxlIG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMTcgMDc6NTIgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjIpLCBGQVE6CgogICBNZW50aW9uIHRoZSBNUlRHIHR1dG9yaWFsIHdlYiBwYWdlcwogICAgIChhcyBzdWdnZXN0ZWQgYnkgQ2hyaXN0aWFuIFJvYm90dG9tIFJlaXMpCiAgIAoyMDAxLTEwLTE1IDA2OjQ5ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wSVBYRG9tYWluLmMgLCBzbm1wVURQRG9tYWluLmM6CgogICAgIC0gemVybyBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmVzLiAgSG9wZWZ1bGx5IGZpeGVzIHByb2JsZW1zIG9uIE5ldEJTRAogICAgICAgbm90ZWQgYnkgSm9ha2ltIEFsdGhpbmkgKHJlbGF0ZWQgdG8gc2FfbGVuIG1lbWJlciBwcm9iYWJseT8/KS4KICAgCjIwMDEtMTAtMTEgMTY6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL21pYi5jICwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgT3Bwc2VzLgogICAKMjAwMS0xMC0xMSAxNDoxNSAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluICwgbWFuL3NubXBfYXBpX2VycnN0cmluZy4zICwKICAgbWFuL3NubXBfY29uZmlnLjUuZGVmICwgbWFuL3NubXBfZXJyb3IuMyAsCiAgIG1hbi9zbm1wX3BlcnJvci4zICwgbWFuL3NubXBfc2Vzc19wZXJyb3IuMyAsCiAgIG1hbi9zbm1wY21kLjEgLCBtYW4vc25tcGQuMS5kZWYgLCBtYW4vc25tcGQuY29uZi41LmRlZgogICAsIG1hbi9zbm1wc2V0LjEgLCBtYW4vc25tcHRyYW5zbGF0ZS4xICwKICAgbWFuL3NubXB0cmFwZC44ICwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmICwKICAgbWFuL3NubXB3YWxrLjEgLCBtaWJzL0RJU01BTi1TQ1JJUFQtTUlCLnR4dCAsCiAgIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0ICwgbWlicy9NYWtlZmlsZS5taWIgLAogICBtaWJzL1JFQURNRS5taWJzICwgbWlicy9TTVVYLU1JQi50eHQgLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQgLCBtaWJzL21pYmZldGNoICwgbWlicy9yZmNsaXN0CiAgICwgbWlicy9zbWlzdHJpcCAsIHBlcmwvU05NUC9TTk1QLnhzICwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiAsIHNubXBsaWIvYXNuMS5jICwKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMgLCBzbm1wbGliL2ludDY0LmMgLAogICBzbm1wbGliL21pYi5jICwgc25tcGxpYi9taWIuaCAsIHNubXBsaWIvbXRfc3VwcG9ydC5jCiAgICwgc25tcGxpYi9tdF9zdXBwb3J0LmggLCBzbm1wbGliL3BhcnNlLmMgLAogICBzbm1wbGliL3NjYXBpLmMgLCBzbm1wbGliL3NjYXBpLmggLCBzbm1wbGliL3NubXBfYXBpLmMKICAgLCBzbm1wbGliL3NubXBfYXV0aC5jICwgc25tcGxpYi9zbm1wX2NsaWVudC5jICwKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMgLCBzbm1wbGliL3NubXB1c20uYyAsCiAgIHNubXBsaWIvc25tcHYzLmMgLCBzbm1wbGliL3N5c3RlbS5jICwgc25tcGxpYi90b29scy5jCiAgICwgc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oICwgdGVzdGluZy9NYWtlZmlsZS5pbgogICAsIHdpbjMyL2NvbmZpZy5oICwgd2luMzIvY29uZmlnLmguYm9ybGFuZDoKCiAgIG1hc3NpdmUgbWVyZ2UgZnJvbSB0aGUgcGF0Y2hlcyBicmFuY2ggdG8gdGhlIG1haW4gbGluZS4KICAgCjIwMDEtMTAtMTEgMTQ6MDEgIGhhcmRha2VyCgogICAqIENPUFlJTkcgLCBDaGFuZ2VMb2cgLCBGQVEgLCBNYWtlZmlsZS5pbiAsCiAgIE5FV1MgLCBSRUFETUUgLCBhY2NvbmZpZy5oICwgYWNsb2NhbC5tNCAsCiAgIGNvbmZpZy5ndWVzcyAsIGNvbmZpZy5oLmluICwgY29uZmlnLnN1YiAsCiAgIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsIGx0Y29uZmlnICwgbHRtYWluLnNoCiAgICwgbWFrZWZpbGVpbmRlcGVuZC5wbCAsIHNlZHNjcmlwdC5pbiAsIHZlcnNpb24uaAogICAsIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvYWdlbnRfaW5kZXguYyAsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oICwKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L2FnZW50X3RyYXAuYyAsCiAgIGFnZW50L3NubXBfYWdlbnQuaCAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvc25tcF92YXJzLmggLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4gLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmggLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oCiAgICwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmggLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaCAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYyAsIGFwcHMvTWFrZWZpbGUuaW4KICAgLCBhcHBzL3NubXBkZWx0YS5jICwgYXBwcy9zbm1wZGYuYyAsCiAgIGFwcHMvc25tcGdldC5jICwgYXBwcy9zbm1wZ2V0bmV4dC5jICwgYXBwcy9zbm1wc2V0LmMKICAgLCBhcHBzL3NubXBzdGF0dXMuYyAsIGFwcHMvc25tcHRhYmxlLmMgLAogICBhcHBzL3NubXB0ZXN0LmMgLCBhcHBzL3NubXB0cmFuc2xhdGUuYyAsCiAgIGFwcHMvc25tcHRyYXAuYyAsIGFwcHMvc25tcHRyYXBkLmMgLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYyAsIGFwcHMvc25tcHVzbS5jICwgYXBwcy9zbm1wdmFjbS5jCiAgICwgYXBwcy9zbm1wd2Fsay5jICwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgogICAsIGxvY2FsL21pYjJjLmNvbmYgLCBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mICwKICAgbG9jYWwvcGFzc19wZXJzaXN0dGVzdCAsIGxvY2FsL3RrbWliOgoKICAgbWFzc2l2ZSBtZXJnZSBmcm9tIHRoZSBwYXRjaGVzIGJyYW5jaCB0byB0aGUgbWFpbiBsaW5lLgogICAKMjAwMS0xMC0wOSAwNzoxNCAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICBTb21ldGltZXMgd2UgZmVlbCBsaWtlIGEgLW51dAogICAKMjAwMS0xMC0wOSAwNjoxNSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIHByb3Blcmx5IGFjY291bnQgZm9yIHRoZSBsZW5ndGggb2YgdGhlIHN1ZmZpeCBpbiB0aGUgdmFyaWFibGUKICAgICAgIHRhYmxlIGluIHJlZ2lzdGVyX21pYl90YWJsZV9yb3coKQogICAKMjAwMS0xMC0wOCAwODo1MyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAgIC0gZGVjbGFyZSB2ZXJzaW9uX3N5c29pZF9sZW4gYXMgZXh0ZXJuIElOVCBub3QgZXh0ZXJuIG9pZCwgc28gYXMgdG8KICAgICAgIG1hdGNoIGl0cyBhY3R1YWwgZGVmaW5pdGlvbiBpbiBzeXRlbV9taWIuYy4gIFRoaXMgY2F1c2VkIGFsbCBraW5kcyBvZgogICAgICAgZnVuICYgZ2FtZXMgb24gTGludXggb24gYSBBbHBoYS4KICAgCjIwMDEtMTAtMDQgMDg6MzEgIGpicG4KCiAgICogc25tcGxpYi86IGNhbGxiYWNrLmMgLCBjYWxsYmFjay5oOgoKICAgICAtIGFkZCBmdW5jdGlvbiBzbm1wX2NhbGxiYWNrX2xpc3QoKSB0byByZXR1cm4gbGlzdCBvZiBjYWxsYmFja3MgZm9yIGEKICAgICAgIGdpdmVuIDxtYWpvciwgbWlub3I+IHBhaXIuCiAgIAoyMDAxLTEwLTA0IDA3OjE0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0OgoKICAgZmlsZSBwYXNzX3BlcnNpc3R0ZXN0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMTAtMDMgMDU6NDIgIGpicG4KCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgICAtIGNoYW5nZSBleHByZXNzaW9uIGF0IGwuIDQxNSBmcm9tOgogICAKICAgICAgICAgICAqa2NzdHJpbmcrKyA9ICprY3N0cmluZyBeICpuZXdrZXkrKzsKICAgCiAgICAgICB3aGljaCBoYXMgdW5kZWZpbmVkIGJlaGF2aW91ciB0bzoKICAgCiAgICAgICAgICAgKmtjc3RyaW5nKysgXj0gKm5ld2tleSsrOwogICAKICAgICAgIHdoaWNoIGlzIG9rYXkgKHNpbmNlICprY3N0cmluZyBpcyBvbmx5IGV2YWx1YXRlZCBvbmNlKS4gIFNpbWlsYXJseQogICAgICAgYXQgbC4gNTMwLiAgVGhlIHByZXZpb3VzIGNvbnN0cnVjdHMgY2F1c2Ugd2FybmluZ3Mgd2l0aCBHQ0MzIGFuZAogICAgICAgc29tZSBvdGhlciBjb21waWxlcnMuICBUaGFua3MgdG8gTmllbCBNYXJrd2ljayB3aG8gbm90ZWQgdGhpcyBpbgogICAgICAgYnVnICM0NjU5NjkuCiAgIAoyMDAxLTEwLTAzIDAzOjExICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gZG8gU05NUERfQ0FMTEJBQ0tfVU5SRUdJU1RFUl9PSUQgY2FsbGJhY2tzIGluCiAgICAgICB1bnJlZ2lzdGVyX21pYnNfYnlfc2Vzc2lvbigpIC0tIGNhbGxlZCB3aGVuIEFnZW50WCBzdWJhZ2VudHMKICAgICAgIGRpc2FwcGVhci4KICAgCjIwMDEtMTAtMDIgMDY6MDEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gZG9uJ3Qgc2VuZCBBU05fUFJJVl9JTkNMX1JBTkdFIGFuZCBBU05fUFJJVl9FWENMX1JBTkdFIG9uLXRoZS13aXJlCiAgIAoyMDAxLTA5LTI2IDA4OjAzICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gYWxsb3cgc3BsaXRfc3VidHJlZSgpIHRvIGRvIGEgc3BsaXQgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbHVtbiwKICAgICAgIGtlZXBpbmcgdGhlIHJlbGV2YW50IHZhcmlhYmxlIGluIGJvdGggdGhlIG9sZCB0cmVlIGFuZCB0aGUgbmV3CiAgICAgICB0cmVlIChhcmlzZXMgaW4gQWdlbnRYIHJvdyByZWdpc3RyYXRpb25zKS4KICAgCiAgICAgLSBwYXRjaCBmcm9tIERhbWlhbiBHaWxtdXJyYXkgZm9yIHJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSB3aGljaAogICAgICAgYWxsb3dzIGl0IHRvIGNvcGUgd2l0aCBub24temVybyBsZW5ndGggdmFyaWFibGVzIGFuZCBhbHNvCiAgICAgICBub24tY29udGlndW91cyBPSURzIGZvciBhZGphY2VudCBjb2x1bW5zLgogICAKICAgICAtIHJld3JpdHRlbiBkdW1wX3JlZ2lzdHJ5KCkgdGhhdCB1c2VzIHJlYWxsb2NhdGluZyBwcmludCBmdW5jdGlvbnMKICAgICAgIGFuZCBhbHNvIHByaW50cyBvdXQgdmFyaWFibGUgbGlzdHMuCiAgIAoyMDAxLTA5LTI2IDA3OjQ1ICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIGFsbG93IGZvciB0aGUgcG9zc2liaWxpdHkgb2Ygc3VidHJlZSBuYW1lIGJlaW5nIGxvbmdlciB0aGFuCiAgICAgICByZXF1ZXN0ZWQgbmFtZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBzdWZmaXggZm9yIHZhcmlhYmxlIG1hdGNoaW5nLgogICAKICAgICAtIGJlIHN0cmljdCBhYm91dCBzdWJ0cmVlIGNodW5rcyBiZWluZyBpbmNsdXNpdmUgb2YgdGhlIHN0YXJ0IE9JRAogICAgICAgYW5kIGV4Y2x1c2l2ZSBvZiB0aGUgZW5kIE9JRCAoc2hvd3MgdXAgYmlnIHRpbWUgaW4gQWdlbnRYKS4KICAgCjIwMDEtMDktMjYgMDc6MjIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gZG9uJ3QgZG8gZ2V0TmV4dCByZXF1ZXN0cyBvbiBleGNsdXNpdmUgc2VhcmNoUmFuZ2VzIHRoYXQgYmVnaW4gaW4KICAgICAgIGEgdHJlZSBtYXJrZWQgYXMgYSBmdWxseS1xdWFsaWZpZWQgaW5zdGFuY2UgKHRoZXkgYXJlIGRvb21lZCB0bwogICAgICAgZmFpbCkuICBTa2lwIHRvIHRoZSBuZXh0IHBhcnQgb2YgdGhlIHRyZWUgc3RyYWlnaHQgYXdheS4KICAgCjIwMDEtMDktMjYgMDc6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIGJyaW5nIGRlYnVnZ2luZyB0b2tlbnMgaW50byBsaW5lIHdpdGggcmVzdCBvZiBBZ2VudFggY29kZQogICAKMjAwMS0wOS0yNSAwODoxNSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSByZWluc3RhdGUgYSBtaXNzaW5nIHNwYWNlIGNoYXJhY3RlcgogICAKMjAwMS0wOS0yNSAwMzo1OCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSByZW1vdmUgc3B1cmlvdXMgY2FzdAogICAKMjAwMS0wOS0yNSAwMzo0NSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIGZpeCBwb3NzaWJsZSBpbmZlbGljaXR5IHdoZW4gcHJpbnRpbmcgYW5kIHN5c2xvZ2dpbmcgKG5vdCBzdXJlIHRoaXMgaXMKICAgICAgIGFjdHVhbGx5IHBvc3NpYmxlIGJ1dCkKICAgCjIwMDEtMDktMjUgMDM6MDkgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBpbnRlZ3JhdGUgc29tZSBjaGFuZ2VzIGZyb20gdGhlIFY0LTItcGF0Y2hlcyBicmFuY2g6IEhhcnJpZSdzCiAgICAgICBwcm90b3R5cGVzIGFuZCBXZXMncyBmaXggZm9yIGJ1ZyAgIzQ2MzIyNi4KICAgCjIwMDEtMDktMjUgMDM6MDEgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gZml4IHNpZ25lZG5lc3Mgb2YgdGltZSBzdHVmZgogICAKMjAwMS0wOS0yNSAwMjo0NyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9sb2dnaW5nLmMgLCBzbm1wX2xvZ2dpbmcuaDoKCiAgICAgLSBtYWtlIGFyZ3VtZW50IG9mIHNubXBfZW5hYmxlX3N5c2xvZ19pZGVudCBjb25zdAogICAKICAgICAtIGRvbid0IHN0cmR1cCBERUZBVUxUX0xPR19JRCBpZiBhIE5VTEwgYXJnIGlzIGdpdmVuCiAgIAoyMDAxLTA5LTI0IDA5OjM5ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gbWFrZSB1c2Ugb2YgcmV3cml0dGVuIG91dHB1dCBmdW5jdGlvbnMgaW4gc25tcHRyYXBkX2xvZy5jIHdoaWNoCiAgICAgICBhdm9pZCBmaXhlZCBsZW5ndGggYnVmZmVycy4KICAgCiAgICAgLSBmaXggYnVnIG5vdGVkIGluIHN1cHBvcnQgcmVxdWVzdCAjNDU2NjQ2IChjdXN0b20gdHJhcCBmb3JtYXQgd2FzCiAgICAgICBiZWluZyBpZ25vcmVkIGZvciB2MiB0cmFwcyBhbmQgaW5mb3JtcykuICBUaGFua3MgdG8KICAgICAgIEcuUHJpbmNpcGF0b0Btb3Rvcm9sYS5jb20gZm9yIHNwb3R0aW5nIHRoaXMgb25lLgogICAKICAgICAtIGNvcnJlY3QgdXNhZ2UgZm9yIC1QIG9wdGlvbiB0byByZWZsZWN0IHRoYXQgaXQgY2F1c2VzIG91dHB1dCBvbgogICAgICAgc3RkZXJyIG5vdCBzdGRvdXQuCiAgIAoyMDAxLTA5LTI0IDA5OjM2ICBqYnBuCgogICAqIGFwcHMvOiBzbm1wdHJhcGRfbG9nLmMgLCBzbm1wdHJhcGRfbG9nLmg6CgogICAgIC0gcmV3cml0ZSBvZiBvdXRwdXQgZnVuY3Rpb25zIHRvIGF2b2lkIHVzZSBvZiBmaXhlZC1sZW5ndGggYnVmZmVycwogICAKMjAwMS0wOS0yMCAxMzowNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FICwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmggLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBuZXcgbG9nbWF0Y2ggbWliIGZyb20gU3RlcGhhbiBXZW56ZWwuCiAgIAoyMDAxLTA5LTE1IDA4OjQwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIG92ZXJyaWRlIGV4Y2x1c2l2ZSBzZWFyY2hSYW5nZSBnZXROZXh0IG9wZXJhdGlvbnMgd2hlbiByZXRyeWluZwogICAgICAgb3BlcmF0aW9ucwogICAKMjAwMS0wOS0xNSAwODozOSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaDoKCiAgICAgLSBpbXByb3ZlZCBzdXBwb3J0IGZvciBBZ2VudFgtc3R5bGUgaW5jbHVzaXZlIHNlYXJjaFJhbmdlIGdldE5leHQKICAgCjIwMDEtMDktMTQgMTQ6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcGF0Y2ggIzQ0MzExNSBmcm9tIFlpbWluIEdlOiBkaXNraW8gc3VwcG9ydCBmb3IgZnJlZWJzZDQKICAgCjIwMDEtMDktMTQgMTQ6MzQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMgLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaDoKCiAgIFBhdGNoICM0NDAzMjAgZnJvbSBNYXJrIEZlcmxhdHRlOgogICAKICAgMSkgQWRkcyBhIG5ldyBmdW5jdGlvbiB0byB0aGUgc25tcF9sb2dnaW5nIEFQSQogICAgICAoc25tcF9lbmFibGVfc3lzbG9nX2lkZW50KGNoYXIgKmlkZW50KSkKICAgCiAgIDIpIFBvcnRzIHNubXB0cmFwZCB0byB1c2UgdGhlIGV4aXN0aW5nIHNubXBfbG9nZ2luZyBBUEkgaW5zdGVhZCBvZgogICAgICB1c2luZyBzeXNsb2cgZGlyZWN0bHkuCiAgIAogICAzKSBQb3J0cyBzbm1wX2xvZ2dpbmcuW2NoXSB0byB1c2UgdGhlIFdpbjMyIEV2ZW50IExvZyB3aGVuIGNvbXBpbGVkIG9uCiAgICAgIFdpbjMyLiBJIGRpZG4ndCB1cGRhdGUgdGhlIFZpc3VhbCBDIHByb2plY3QgZmlsZXMsIGJlY2F1c2UgSSBvbmx5CiAgICAgIGhhdmUgYWNjZXNzIHRvIGEgbmV3ZXIgdmVyc2lvbiBvZiBWQywgYW5kIEkgZGlkbid0IGtub3cgaWYgeW91CiAgICAgIHdhbnRlZCB0aGVtIHVwZGF0ZWQuIFRoZSBhZHZhcGkzMiBsaWJyYXJ5IG5lZWRzIHRvIGJlIGFkZGVkIHRvIHRoZQogICAgICBwcm9qZWN0IGluIG9yZGVyIGZvciB0aGlzIHRvIHdvcmsgb24gV2luMzIgKHRoYXQncyB3aGVyZSB0aGUgZXZlbnQKICAgICAgbG9nIEFQSSBpcykuCiAgIAoyMDAxLTA5LTE0IDE0OjIyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiAsIGNvbmZpZ3VyZToKCiAgIEksIHVoLCBjb3VnaCwgdWggZm9yZ290IHRvIHJ1biBhdXRvY29uZi9hdXRvaGVhZGVyLiAgRGF2ZTogZG9uJ3Qga2lsbCBtZS4KICAgCjIwMDEtMDktMTQgMTQ6MTkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0gLCBTTk1QLnhzOgoKICAgUGF0Y2ggIzQyODg4NDogQWRkIC1QUiBsaWtlIG9wdGlvbiB0byBwZXJsIG1vZHVsZSAoZnJvbSBKb2UgQ2xhcmtlKS4KICAgCjIwMDEtMDktMTQgMTQ6MDggIGhhcmRha2VyCgogICAqIFJFQURNRSAsIGFjY29uZmlnLmggLCBjb25maWd1cmUuaW4gLAogICBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMgLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmgKICAgLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMgLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmgKICAgLCBzbm1wbGliL3NubXBfYXBpLmggLCBzbm1wbGliL3NubXB2My5jICwKICAgc25tcGxpYi9hc24xLmg6CgogICBBcHBsaWVkIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiBwYXRjaCAjNDI3MzQzIGZyb20gSGFycmllOgogICAgIG1ha2UgZW50ZXJwcmlzZSBJRCByZWxvY2F0YWJsZSB3aGVyZSBsZWdhbCB0byBkbyBzbwogICAKMjAwMS0wOS0xNCAxMjowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiAsIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgQWx0ZXJuYXRpdmUgc29sdXRpb24gdG8gcGF0Y2ggIzMxMjY5NDoKICAgICBtb3ZlIGRhdGVfbl90aW1lIHV0aWxpdGllcyB0byBzbm1wbGliL3NubXAtdGMuYy4KICAgCjIwMDEtMDktMTQgMTI6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl91dGlscy5jICwgaHJfdXRpbHMuaDoKCiAgIHJlbW92ZWQuICBGdW5jdGlvbmFsaXR5IG1vdmVkIHRvIHNubXBsaWIvc25tcC10Yy5bY2hdCiAgIAoyMDAxLTA5LTE0IDEyOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LmggLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYwogICAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uaCAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYyAsIHNubXBsaWIvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL3NubXAtdGMuYyAsIHNubXBsaWIvc25tcC10Yy5oOgoKICAgQWx0ZXJuYXRpdmUgc29sdXRpb24gdG8gcGF0Y2ggIzMxMjY5NDoKICAgICBtb3ZlIGRhdGVfbl90aW1lIHV0aWxpdGllcyB0byBzbm1wbGliL3NubXAtdGMuYy4KICAgCjIwMDEtMDktMTQgMDk6NDggIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQ6CgogICBmaWxlIGNvbmZpZy5oLmJvcmxhbmQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOS0xNCAwNjoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAsIG1hc3Rlcl9yZXF1ZXN0LmMgLAogICBtYXN0ZXJfcmVxdWVzdC5oOgoKICAgICAtIHVzZSBpbmNsdXNpdmUgc2VhcmNoIHJhbmdlIG9ubHkgd2hlbiBhcHByb3ByaWF0ZSBmb3IgZ2V0TmV4dAogICAgICAgcXVlcmllcwogICAKMjAwMS0wOS0xMiAwNjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGZpbGUgc25tcENhbGxiYWNrRG9tYWluLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDktMTIgMDY6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmg6CgogICBmaWxlIHNubXBDYWxsYmFja0RvbWFpbi5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA5LTA2IDA3OjQwICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF92YXJzLmM6CgogICAgIC0gaWYgaW5jbHVkZSBiaXQgaXMgc2V0IGluIGFuIEFnZW50WCBTZWFyY2hSYW5nZSAoaGVuY2UgdHlwZSBvZiB2YXJiaW5kCiAgICAgICBpcyBBU05fUFJJVl9JTkNMX1JBTkdFKSwgdHJ5IGFuIGV4YWN0IHF1ZXJ5IGZpcnN0IGJlY2F1c2UgYW4gb2JqZWN0CiAgICAgICB3aG9zZSBuYW1lIGlzIGxleGktZXF1YWwgaXMgYSB2YWxpZCByZXNwb25zZTsgaWYgZXhhY3QgcXVlcnkgZmFpbHMKICAgICAgIHRoZW4gZmFsbCBiYWNrIHRvIGFuIGluZXhhY3QgcXVlcnkuCiAgIAoyMDAxLTA5LTA2IDA3OjM4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgbWFzdGVyX3JlcXVlc3QuYyAsCiAgIHByb3RvY29sLmMgLCBzdWJhZ2VudC5jOgoKICAgICAtIG9vcHMsIHVzZWQgSU5DTC9FWENMIHdyb25nIHdheSByb3VuZCBpbiBhIGNvdXBsZSBvZiBwbGFjZXMKICAgCiAgICAgLSBiZXR0ZXIgdGVzdCBmb3Igc2NvcGluZyByZXF1aXJlbWVudHMgaW4gc3ViYWdlbnQKICAgCjIwMDEtMDktMDQgMDc6MTQgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBhZGQgbWlzc2luZyBicmVhazsgYWZ0ZXIgcHJvY2Vzc2luZyAtUCBvcHRpb24sIG5vdGVkIGJ5IEJvdG9uZAogICAgICAgVGFybmF5IChzZWUgcGF0Y2ggIzQ1ODMyNykKICAgCjIwMDEtMDgtMjggMDM6MDQgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTItcGF0Y2hlcy43KSwgc25tcF9hZ2VudC5jOgoKICAgICAtIGFkZCBtaXNzaW5nICNpbmNsdWRlIDx0Y3BkLmg+IGlmIHVzaW5nIGxpYndyYXAsIG5vdGVkIGJ5IE5hdGhhbgogICAgICAgTmV1bGluZ2VyIChwYXRjaCAjNDUzODMxKS4KICAgCjIwMDEtMDgtMjggMDI6MzggIGpicG4KCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMSksIHNubXBkLmM6CgogICAgIC0gYXZvaWQgdXNlIG9mIHByZS1wcm9jZXNzb3IgZGlyZWN0aXZlcyBpbnNpZGUgcHJpbnRmKCkgY2FsbCwgd2hpY2gKICAgICAgIGlzIGEgbWFjcm8gaW4gZ2xpYmMsIG1ha2luZyB0aGlzIGFuIHVuZGVmaW5lZCBiZWhhdmlvdXIKICAgICAgIGNvbnN0cnVjdCAod2hpY2ggR0NDIDMuMCByZWZ1c2VzIHRvIGNvbXBpbGUpLiAgU2VlIGJ1ZyAjNDU1ODA0IGZvcgogICAgICAgZnVydGhlciBkZXRhaWxzLgogICAKMjAwMS0wOC0yNCAxMDowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvZGF0YV9saXN0Lmg6CgogICBmaWxlIGRhdGFfbGlzdC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTI0IDEwOjAwICByc3RvcnkKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIGZpbGUgZGF0YV9saXN0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMjIgMDg6NDUgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYyAsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKICAgLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBhZGQgY2hlY2tpbmcgdGhhdCByZXN1bHRzIHRvIGJlIHJldHVybmVkIHRvIG1hc3RlciBhZ2VudCBhcmUgaW4KICAgICAgIHJlcXVlc3RlZCBzY29wZSAoaWYgYW55KSAoZ2V0QnVsayBub3QgeWV0IGRvbmUpCiAgIAoyMDAxLTA4LTE1IDA5OjMxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgICAtIHVzZSBzcHJpbnRfcmVhbGxvY19vYmppZCBpbiBkZWJ1Z21zZ19vaWQgdG8gcHJpbnQgbG9uZyBPSURzLgogICAKMjAwMS0wOC0xNSAwODozNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBpbmNyZW1lbnQgdGhlIHZhbHVlIG9mIHNubXBJbkJhZENvbW11bml0eVVzZXMgd2hlbiBhdHRlbXB0aW5nIGFuCiAgICAgICBvcGVyYXRpb24gbm90IHBlcm1pdHRlZCBieSB0aGUgZ2l2ZW4gY29tbXVuaXR5LCBwZXIgUkZDIDE5MDcuCiAgIAoyMDAxLTA4LTE1IDA4OjM0ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB3aGVuIHRyYW5zbGF0aW5nIHRoZSB2MisgZXJyb3Itc3RhdHVzIHZhbHVlIGF1dGhvcml6YXRpb25FcnJvcgogICAgICAgaW50byBub1N1Y2hOYW1lIGZvciBhIHYxIHNlc3Npb24sIGluY3JlbWVudCB0aGUgdmFsdWUgb2YKICAgICAgIHNubXBJbkJhZENvbW11bml0eVVzZXMsIHBlciBSRkMgMjU3Ni4KICAgCjIwMDEtMDgtMTQgMDM6MjIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgICAtIGluIHNubXBfc2V0X3Zhcl9vYmppZCgpLCB0cnkgdG8gZGV0ZWN0IGEgcHJldmlvdXNseS1tYWxsb2MoKWVkCiAgICAgICBidWZmZXIgZm9yIHRoZSB2YXJpYWJsZSBuYW1lLCBhbmQgZnJlZSgpIGl0LCB0byBhdm9pZCBtZW1vcnkKICAgbGVha3MuCiAgIAoyMDAxLTA4LTEzIDAzOjQ3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIHVzZSBXaW4zMiBjYWxscyB0byBjaGFuZ2UgYmxvY2tpbmcgc3RhdGUgb2Ygc29ja2V0cyBpZgogICAgICAgYXBwcm9wcmlhdGUuICBUaGFua3MgdG8gSm9lcmcgTWF0dGVzIGZvciBoZWxwIGRlYnVnZ2luZyB0aGlzLgogICAKMjAwMS0wOC0xMyAwMzozNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcGVyZm9ybSBhbiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgYW5kIGNsb3NlIHRoZSBjb25uZWN0aW9uIGlmCiAgICAgICB3ZSBnZXQgYW4gZXJyb3Igb24gYSBzdHJlYW0gcmVjZWl2ZSwgYXMgd2VsbCBhcyBpZiBpdCBpcyBjbG9zZWQgaW4KICAgICAgIGFuIG9yZGVybHkgZmFzaGlvbi4gIFRoaXMgbWFrZXMgbGlmZSBlYXNpZXIgb24gV2luMzIgaW5wYXJ0aWN1bGFyLgogICAgICAgVGhhbmtzIHRvIEpvZXJnIE1hdHRlcyBmb3IgaGVscCB3aXRoIGRlYnVnZ2luZyB0aGlzLgogICAKMjAwMS0wOC0wOSAwMzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBmaWxlIHRhYmxlX2RhdGFzZXQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wOSAwMzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0Lmg6CgogICBmaWxlIHRhYmxlX2RhdGFzZXQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wOCAwMTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmg6CgogICBmaWxlIHRhYmxlX2RhdGEuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wOCAwMTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBmaWxlIHRhYmxlX2RhdGEuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIG1hbi9zbm1wX3BlcnJvci4zOgoKICAgZmlsZSBzbm1wX3BlcnJvci4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjM6CgogICBmaWxlIHNubXBfYXBpX2VycnN0cmluZy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9zZXNzX3BlcnJvci4zOgoKICAgZmlsZSBzbm1wX3Nlc3NfcGVycm9yLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIG1hbi9zbm1wX2Vycm9yLjM6CgogICBmaWxlIHNubXBfZXJyb3IuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTA4LTA2IDA0OjI5ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZml4IGZvciBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IGluIGxvZ2ZpbGUgYXJndW1lbnQgaGFuZGxpbmcsCiAgICAgICBub3RlZCBieSBBbm9ueW1vdXMgKGJ1ZyAjNDQ4MjQzKS4gIEFsc28gdXNlIGEgbGFyZ2UgZW5vdWdoIGJ1ZmZlcgogICAgICAgdG8gaGFuZGxlIGZpbGVuYW1lcyBvZiBsZW5ndGggUEFUSF9NQVggKGlmIHBvc3NpYmxlKS4KICAgCjIwMDEtMDctMzAgMTA6MDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLCBzbm1wbGliL3NubXBfYXBpLmMKICAgLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gbW92ZSBzbm1wX3NvY2tldF9sZW5ndGggZnVuY3Rpb24gdG8gYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKICAgICAgIGZyb20gc25tcF9hcGkuYyAtLSB0aGlzIGlzIHRoZSBvbmx5IHJlbWFpbmluZyBwbGFjZSB0aGF0IHVzZXMgdGhpcwogICAgICAgZnVuY3Rpb24sIHdoaWNoIGNlcnRhaW5seSBkb2Vzbid0IGJlbG9uZyBpbiBzbm1wX2FwaS5jIGFmdGVyIHRoZQogICAgICAgdHJhbnNwb3J0IGFic3RyYWN0aW9uIG1hbGFya2V5LgogICAKMjAwMS0wNy0zMCAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgZmlsZSBhZ2VudF9oYW5kbGVyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMzAgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIGZpbGUgYWdlbnRfaGFuZGxlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTMwIDA3OjA2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgICAtIHRyeSB0byByZXR1cm4gaW52YWxpZCgyKSBmb3IgdGhlIGlwUm91dGVUeXBlIGNvbHVtbiBpZiB0aGUgcm91dGUKICAgICAgIGlzIG5vdCB1cC4gIFNlZSBidWcgIzQyNjcxMCwgcmVwb3J0ZWQgYnkgcGp3ZWJlci4KICAgCjIwMDEtMDctMjcgMDc6MzIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgICAgLSBzZXQgZGVmYXVsdEF1dGhUeXBlIHRvIHVzbUhNQUNTSEExQXV0aFByb3RvY29sIGlmIFNIQSBzcGVjaWZpZWQKICAgICAgICh3YXMgc2V0IHRvIHVzbUhNQUNNRDVBdXRoUHJvdG9jb2wgaW4gdGhpcyBjYXNlKS4gIFNwb3R0ZWQgYnkKICAgICAgIFdpbGxpYW0gS2VubmVtZXIgKGJ1ZyAjNDQ0ODYwKQogICAKMjAwMS0wNy0yNyAwNjo1OSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBjaGFuZ2UgdG8gaGFuZGxlX2FnZW50eF9yZXNwb25zZSBPTkxZIHRvIHNlbmQgTkVXTFkgZGVsZWdhdGVkCiAgICAgICByZXF1ZXN0cyBhZnRlciBwcm9jZXNzaW5nIGEgc3VjY2Vzc2Z1bCByZXNwb25zZS4gIFRoaXMgaXMgYWNoaWV2ZWQKICAgICAgIGJ5IHNhdmluZyB0aGUgdmFsdWUgb2YgYXNwLT5vdXRzdGFuZGluZ19yZXF1ZXN0cyBhbmQgdGVtcG9yYXJpbHkKICAgICAgIHNldHRpbmcgaXQgdG8gTlVMTC4gIEFmdGVyIHByb2Nlc3NpbmcgYWxsIHZhcmJpbmRzIGluIHRoZQogICAgICAgcmVzcG9uc2UsIHRoZXJlZm9yZSwgYXNwLT5vdXRzdGFuZGluZ19yZXF1ZXN0cyBjb250YWlucyBvbmx5IG5ld2x5CiAgICAgICBkZWxlZ2F0ZWQgcmVxdWVzdHMsIGlmIGFueS4gIEFmdGVyIHNlbmRpbmcgdGhlc2UsIHRoZSBuZXcgcmVxdWVzdHMKICAgICAgIGFyZSBtZXJnZWQgd2l0aCB0aGUgc2F2ZWQgcXVldWUuCiAgIAogICAgICAgVGhpcyBmaXhlcyBhIGJ1ZyB0aGF0IGFyaXNlcyBpZiB5b3UgcmVxdWVzdCB2YXJpYWJsZXMgZnJvbSB0d28gb3IKICAgICAgIG1vcmUgc2VwYXJhdGUgc3ViYWdlbnRzIHNpbXVsdGFuZW91c2x5LiAgV2hhdCB1c2VkIHRvIGhhcHBlbiBpcwogICAgICAgdGhhdCwgdXBvbiByZWNlaXZpbmcgdGhlIGZpcnN0IHJlc3BvbnNlLCB0aGUgbWFzdGVyIGFnZW50IHdvdWxkCiAgICAgICBub3RpY2UgdGhhdCBpdCBoYWQgYW4gb3V0c3RhbmRpbmcgcmVxdWVzdCwgYW5kIHJldHJhbnNtaXQgaXQuCiAgICAgICBUaGVuIHRoZSBzZWNvbmQgcmVzcG9uc2UgYXJyaXZlcywgYW5kIHRoZSBtYXN0ZXIgYWdlbnQgc2VuZHMgdGhlCiAgICAgICByZXBseSB0byB0aGUgKFNOTVApIHJlcXVlc3RlciBhbmQgZnJlZXMgdGhlIHJlcXVlc3RzIChpbmNsdWRpbmcKICAgICAgIGNhbGxiYWNrIGRhdGEpLiAgRmluYWxseSwgYW5vdGhlciBBZ2VudFggcmVzcG9uc2UgKHRvIHRoZQogICAgICAgZXJyb25lb3VzbHkgdHJhbnNtaXR0ZWQgcmVxdWVzdCkgYXJyaXZlcyBhbmQgdGhlIGNhbGxiYWNrIGlzCiAgICAgICBjYWxsZWQgcmVmZXJlbmNpbmcgZGVhbGxvY2F0ZWQgbWVtb3J5LCB3aGljaCBjYXVzZXMgYSBzZWdmYXVsdC4KICAgCjIwMDEtMDctMjYgMDc6MjggIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChORVctTElCUkFSWS1BUEkuNCksIHNubXBfYXBpLmM6CgogICBBZGRpbmcgYSAnZG91YmxlJy12YWx1ZWQgdmFyYmluZCBpc24ndCBpbmhlcmVudGx5IGFuIGludGVybmFsIGVycm9yIQogICAKMjAwMS0wNy0yNSAwNTo0NyAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGRpc2FibGUgc3RkZXJyIGxvZ2dpbmcgKGlmIHJlcXVlc3RlZCkgYmVmb3JlIGNhbGxpbmcgaW5pdF9taWJfbW9kdWxlcygpLgogICAgICAgVGhpcyBzaG91bGQgZml4IHRoZSBwcm9ibGVtIG5vdGVkIGJ5IE5pZ2VsIE1ldGhlcmluZ2hhbSBpbiBidWcgIzQxODg1NwogICAgICAgd2hlcmVieSB0aGUgQWdlbnRYIG1hc3RlciBtb2R1bGUgcHJpbnRzIGEgbWVzc2FnZSB0byBzdGRlcnIgd2hpY2ggY2F1c2VzCiAgICAgICBhIFNJR1BJUEUgd2hlbiB0aGUgYWdlbnQgaXMgc3RhcnRlZCBhcyBhIGRhZW1vbi4KICAgCjIwMDEtMDctMjUgMDI6MTggIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gaW5pdGlhbGlzZSBidWZmZXJzIHRvIHplcm8gaW4gaGFuZGxlX3dyYXBfZm10LCB0byBhdm9pZCBnYXJiYWdlIGluCiAgICAgICBkaXNwbGF5IG9mIHNlY3VyaXR5IHBhcmFtZXRlcnMsIGFzIG5vdGVkIGJ5IFdpbGxpYW0gRnJhdWVuaG9mZXIKICAgICAgIChidWcgIzQzNzIzMSkuCiAgIAogICAgIC0gYWRkIGNsb3NpbmcgcGFyZW50aGVzaXMgYWZ0ZXIgKHZpYSA8YWRkcmVzcz4gaW4gZm9ybWF0X3BsYWluX3RyYXAKICAgCjIwMDEtMDctMjMgMDc6NTMgIGpicG4KCiAgICogc25tcGxpYi90b29scy5jOgoKICAgICAtIHJlbW92ZSBleGNlc3NpdmUgZGVidWdnaW5nIGZyb20gc25tcF8ocmUpYWxsb2MgZnVuY3Rpb25zCiAgIAoyMDAxLTA3LTIzIDA0OjM3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgICAgLSBtaW5vciBmaXggdG8gZGVidWdnaW5nIG91dHB1dCB0byBwcmludCBsb3NpbmcgcGF0aCBjb3JyZWN0bHkgd2hlbgogICAgICAgYSByZW1vdGUgY29ubmVjdCBmYWlscy4KICAgCjIwMDEtMDctMTcgMDk6NTYgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgdXBkYXRlIGZvciBuYW1pbmcgY29udmVudGlvbnMgYW5kIGZvciBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMuCiAgIAoyMDAxLTA3LTE3IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIGluaXRpYWwgY29kaW5nIHN0eWxlIGd1aWRlbGluZSBkb2N1bWVudC4KICAgCjIwMDEtMDctMTcgMDk6MDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gcmVtZW1iZXIgdG8gcmVtb3ZlX3RyYXBfc2Vzc2lvbihvdXItc2Vzc2lvbi13aXRoLW1hc3Rlci1hZ2VudCkKICAgICAgIGlmIHRoZSBtYXN0ZXIgYWdlbnQgc2Vzc2lvbiBnb2VzIGF3YXksIGJlY2F1c2Ugb3RoZXJ3aXNlIHlvdQogICAgICAgbWF5IHN1YnNlcXVlbnRseSB0cnkgdG8gdXNlIGl0LCB3aGljaCB3aWxsIHByb2JhYmx5IGR1bXAgY29yZSwKICAgICAgIGFuZCBpcyBjZXJ0YWlubHkgYW4gZXJyb3IuCiAgIAogICAgIC0gYWxzbyBjaGFuZ2Ugd2hlbiB0cmFwIHNlc3Npb24gaXMgcmVnaXN0ZXJlZCB0byBiZWluZyBpbW1lZGlhdGVseQogICAgICAgdGhlIHNlc3Npb24gaXMgb3BlbmVkIHNvIHRyYXBzIGNhbiBiZSBzZW50LCBlLmcuIGZyb20gdGhlCiAgICAgICBJTkRFWF9TVEFSVCBjYWxsYmFjayAoZm9yIGV4YW1wbGUgbGlua1VwIHRyYXBzIGluIHN1YmFnZW50cyB0aGF0CiAgICAgICByZWdpc3RlciBhIHJvdyBvZiBpZlRhYmxlKS4KICAgCjIwMDEtMDctMTcgMDg6NDggIGpicG4KCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgICAtIGNoYW5nZSB0byByZW1vdmVfdHJhcF9zZXNzaW9uKCksIHNvIGFzIG5vdCB0byBjbG9zZSBhbiBTTk1QCiAgICAgICBzZXNzaW9uIHNpbXBseSBiZWNhdXNlIHdlIGFyZSByZW1vdmluZyBpdCBmcm9tIHRoZSB0cmFwX3NpbmsKICAgICAgIGxpc3QuICBUaGUgcmF0aW9uYWxlIGlzIHRoYXQgdGhlIHNlc3Npb24gbWF5IHN0aWxsIGJlIGluIHVzZSBmb3IKICAgICAgIG90aGVyIHB1cnBvc2VzLCBvciAobW9yZSB0byB0aGUgcG9pbnQpIHlvdSBtYXkgYmUgY2FsbGluZyB0aGlzCiAgICAgICBmdW5jdGlvbiBmcm9tIHRoZSBzZXNzaW9uJ3MgY2FsbGJhY2sgKGZyb20gd2hlcmUgY2xvc2luZyB0aGUKICAgICAgIHNlc3Npb24gaXNuJ3QgYSBnb29kIGlkZWEpLgogICAKMjAwMS0wNy0xMyAwNjowMiAgZHRzMTIKCiAgICogc25tcGxpYi9uZXRzbm1wLmg6CgogICBmaWxlIG5ldHNubXAuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctTElCUkFSWS1BUEkuCiAgIAoyMDAxLTA3LTEyIDEyOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBmaWxlIHRhYmxlX2l0ZXJhdG9yLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTIgMTI6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaDoKCiAgIGZpbGUgdGFibGVfaXRlcmF0b3IuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMiAwMjoyMSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKICAgLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBmaXggZm9yIGJ1ZyAjNDM5MDk0LCByZXBvcnRlZCBieSBFdmVydC1KYW4gdmFuIFR1aWpsLCB3aGVyZWJ5CiAgICAgICB0aGUgQWdlbnRYIG1hc3RlciBhZ2VudCBleHBlY3RzIGEgcmVzcG9uc2UgdG8gYW4gYWdlbnR4LUNsZWFudXBTZXQtUERVCiAgICAgICBtZXNzYWdlIChpbmNvcnJlY3RseSkuICBUaGlzIG9ubHkgc2hvd3MgdXAgd2hlbiB0ZXN0aW5nIGFnYWluc3Qgb3RoZXIKICAgICAgIHN1YmFnZW50cyAoZS5nLiBqYXgpIGJlY2F1c2UgdGhlIG5ldC1zbm1wIHN1YmFnZW50IHNlbmRzIGEgcmVzcG9uc2UKICAgICAgIHRvIHRoZSBhZ2VudHgtQ2xlYW51cFNldC1QRFUgKGluY29ycmVjdGx5KS4KICAgCjIwMDEtMDctMTAgMTY6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jOgoKICAgZmlsZSB2YWNtX2NvbnRleHQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMCAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0Lmg6CgogICBmaWxlIHZhY21fY29udGV4dC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEwIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmM6CgogICBmaWxlIHRhcmdldF9jb3VudGVycy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEwIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmg6CgogICBmaWxlIHRhcmdldF9jb3VudGVycy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTA1IDA2OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jICwgaW50ZXJmYWNlcy5oOgoKICAgICAtIG1ha2UgSW50ZXJmYWNlX1NjYW5fR2V0X0NvdW50IG5vbi1zdGF0aWMgYXMgaXQncyB2ZXJ5IHVzZWZ1bAogICAKMjAwMS0wNy0wNSAwMzo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBmcmVlIHRoZSBjYWNoZWQgc2VjdXJpdHkgcGFyYW1ldGVycyB3aGVuIHdlIGhhdmUgYSBwYXJzZSBlcnJvcgogICAgICAgb24gaW5wdXQsIG90aGVyd2lzZSB3ZSBsZWFrIG1lbW9yeSAodHJpZ2dlcmVkIGJ5IFNDIDMuMC4xMy57MiwzfSkuCiAgIAoyMDAxLTA3LTA0IDA5OjUxICB1aWQ0NDgxMAoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gY2F0Y2ggc29tZSBtYWxmb3JtZWQgU05NUHYzIHBhY2tldHMKICAgCjIwMDEtMDctMDQgMDc6NDIgIHVpZDQ0ODEwCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBmaXggYmFkIG1pc3Rha2UgaW4gc25tcHYzX3Njb3BlZFBEVV9oZWFkZXJfcmVhbGxvY19yYnVpbGQgd2hpY2gKICAgICAgIHdhcyBlbmNvZGluZyB0aGUgd3JvbmcgbGVuZ3RoIGludG8gdGhlIFNjb3BlZFBEVSBTRVFVRU5DRSBoZWFkZXIKICAgICAgICh3YXNuJ3QgaW5jbHVkaW5nIGxlbmd0aCBvZiBhY3R1YWwgZGF0YSwgaS5lLiBQRFUhKS4gIFRvdGFsbHkgbXkKICAgICAgIGZhdWx0IC0tIGludHJvZHVjZWQgd2hlbiBjaGFuZ2luZyBvdmVyIHRvIHJlYWxsb2NhdGluZyBidWZmZXIKICAgICAgIHR5cGUgZnVuY3Rpb25zLiAgQW1hemluZyB0aGlzIGhhc24ndCBjYXVzZWQgYWxsIHNvcnRzIG9mIHRyb3VibGUKICAgICAgIGZvciBwZW9wbGUhCiAgIAoyMDAxLTA3LTAyIDE4OjA0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBmaWxlIHNubXAtdGMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0wMiAwOTozMyAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gc2xpZ2h0IGNoYW5nZSB0byBnZW5lcmF0aW9uIG9mIGVycm9yLWluZGV4OgogICAKICAgICAgIC0gZXhwbGljaXRseSB0ZXN0IGZvciBlcnJvci1zdGF0dXMgPT0gbm9FcnJvciwgYW5kIHNldCBlcnJvci1pbmRleAogICAgICAgICB0byB6ZXJvIGluIHRoaXMgY2FzZTsKICAgCiAgICAgICAtIG90aGVyd2lzZSB1c2UgdGhlIGNhY2hlZCB2YWx1ZTsKICAgCiAgICAgICAtIGRvbid0IHplcm8gdGhlIGNhY2hlZCB2YWx1ZSBpbiBoYW5kbGVfdmFyX2xpc3QgaWYgaGFuZGxlX29uZV92YXIKICAgICAgICAgcmV0dXJucyBub0Vycm9yCiAgIAogICAgIC0gdGhpcyBjb3BlcyBwcm9wZXJseSB3aXRoIFNFVCByZXF1ZXN0cywgd2hlcmUgYSBmYWlsaW5nIFNFVCB3aWxsIGhhdmUKICAgICAgIGEgRlJFRSBwaGFzZSB3aGljaCB3aWxsIHR5cGljYWxseSByZXR1cm4gbm9FcnJvci4gIFByZXZpb3VzbHkgdGhpcwogICAgICAgd291bGQgZXJyb25lb3VzbHkgY2F1c2UgdGhlIGVycm9yLWluZGV4IHRvIGJlIHNldCB0byB6ZXJvLgogICAKMjAwMS0wNy0wMiAwODoxNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAgIC0gZml4IGJhZCBiZWhhdmlvdXIgaW4gaGVhZGVyX3NpbXBsZV90YWJsZSB3aGVuIHRoZSBpbmRleCBpcwogICAgICAgZXF1YWwgdG8gVUxPTkdfTUFYCiAgIAoyMDAxLTA2LTI4IDEwOjAxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICAgIC0gY2hhbmdlIHNlbnNlIG9mIHNubXBfb2lkX2NvbXBhcmUoKSByZXN1bHQgY2hlY2sgaW4gdmFyX3VzbVVzZXIKICAgICAgIHRvIGRvIGxleGktb3JkZXJpbmcgY29ycmVjdGx5CiAgIAoyMDAxLTA2LTI4IDA3OjIwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBjb3VudCBtb3JlIHYxL3YyYyBwYXJzZSBlcnJvcnMgKFNDIDEuMS4xMi4xMCkKICAgCjIwMDEtMDYtMjggMDU6NTYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGNoZWNrIHRoYXQgdmVyc2lvbiBmaWVsZCBvZiBQRFUgaXMgb2YgaW50ZWdlciB0eXBlIHJhdGhlciB0aGFuIGp1c3QKICAgICAgIGFzc3VtaW5nIGl0IGlzIChTQyAxLjEuMTIuMi4xKQogICAKMjAwMS0wNi0yOCAwNDo0MCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBpbmNyZW1lbnQgc25tcEluQmFkQ29tbXVuaXR5TmFtZXMgd2hlbiB3ZSBzZWUgdW5rbm93biBjb21tdW5pdHkKICAgICAgIG5hbWVzLCBwZXIgUkZDMTkwNwogICAKMjAwMS0wNi0yNyAwODowOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBtYWtlIHVzZSBvZiBuZXcgZnVuY3Rpb24gcmVnaXN0ZXJfbWliX2RldGFjaCgpIHRvIG1hcmsgYWxsIG91cgogICAgICAgbm9kZXMgYXMgZGV0YWNoZWQgd2hlbiB3ZSBnZXQgYSB0cmFuc3BvcnQgZGlzY29ubmVjdCBpbmRpY2F0aW9uLgogICAKMjAwMS0wNi0yNyAwODowNyAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudF9yZWdpc3RyeS5oICwKICAgdmFyX3N0cnVjdC5oOgoKICAgICAtIGFkZCBhZGRpdGlvbmFsIGZsYWcgdG8gc3VidHJlZSBzdHJ1Y3R1cmUgdGhhdCBzdWJhZ2VudHMgY2FuIHVzZQogICAgICAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYW4gYXR0ZW1wdCBoYXMgYmVlbiBtYWRlIHRvIHJlZ2lzdGVyIGFuZCBPSUQKICAgICAgIHdpdGggYSBtYXN0ZXIgYWdlbnQgZHVyaW5nIGEgc2Vzc2lvbidzIGxpZmV0aW1lLiAgVGhpcyBhbGxvd3MKICAgICAgIG1hbnVhbCByZS1yZWdpc3RyYXRpb24gYW5kIGF1dG9tYXRpYyByZS1yZWdpc3RyYXRpb24gdG8gYmUgbWl4ZWQKICAgICAgIHdpdGhpbiBhIHN1YmFnZW50IChwZXJoYXBzIGJlY2F1c2UgeW91IGFyZSBkb2luZyBpbmRleCBzdHVmZikuCiAgIAogICAgIC0gYWRkIGZ1bmN0aW9uIHJlZ2lzdGVyX21pYl9kZXRhY2goKSB3aGljaCB1bnNldHMgdGhpcyBmbGFnIGZvcgogICAgICAgYWxsIGtub3duIG5vZGVzIChzdWJhZ2VudCB3b3VsZCB0eXBpY2FsbHkgY2FsbCB0aGlzIG9uIGRpc2Nvbm5lY3QKICAgICAgIGluZGljYXRpb24pLgogICAKICAgICAtIGFkZCBmdW5jdGlvbiB1bnJlZ2lzdGVyX21pYl90YWJsZV9yb3coKQogICAKICAgICAtIGNvcnJlY3QgYmFkIHJlY3Vyc2l2ZSBiZWhhdmlvdXIgaW4gcmVnaXN0ZXJfbWliX3JlYXR0YWNoKCkgd2hpY2gKICAgICAgIHVzZWQgdG8gdHJ5IHRvIHJlLXJlZ2lzdGVyIE4gbm9kZXMgTiEgdGltZXMuICBPbmNlIHdpbGwgbm9ybWFsbHkKICAgICAgIGJlIGVub3VnaC4KICAgCiAgICAgLSBjaGFuZ2UgdG8gZHVtcF9yZWdpc3RyeSgpIGZvcm1hdCB0byBpbmNsdWRlIGhleCBkaXNwbGF5IG9mCiAgICAgICBmbGFncyBmaWVsZC4KICAgCjIwMDEtMDYtMjYgMDk6MjYgIGR0czEyCgogICAqIEZBUToKCiAgIEZpeCBlcnJvciBpbiBTTk1QdjIgdHJhcCBleGFtcGxlcyAgKElkZW50aWZpZWQgYnkgRGl3YWthciBTaGV0dHkpLgogICAKMjAwMS0wNi0yNiAwMjozNSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGNvcnJlY3RlZCBzZW5zZSBvZiBkdW1wX3JlYWxsb2Nfb2lkX3RvX3N0cmluZygpIHJldHVybiB2YWx1ZQogICAgICAgY2hlY2tzLCBhcyBzcG90dGVkIGJ5IFJvYmVydCBTdG9yeS4KICAgCjIwMDEtMDYtMjUgMDY6MzAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gc21hbGwgdHdlYWsgaW4gaGFuZGxlX2FnZW50eF9yZXNwb25zZSgpIHdoZW4gcmV0cnlpbmcgdW5mdWxmaWxsZWQKICAgICAgIHJlcXVlc3RzOiBjb250aW51ZSBmcm9tIHRoZSAic3RhcnQiIE9JRCBvZiB0aGUgbmV4dCBub2RlIG9mIHRoZQogICAgICAgdHJlZSwgbm90IGZyb20gdGhlICJuYW1lIiBPSUQsIHdoaWNoIGNhdXNlcyBsb29waW5nLgogICAKMjAwMS0wNi0yMSAwOTo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBoYW5kbGUgImhvbGVzIiBpbiByb3dzIG9mIHRhYmxlcyB0aGF0IGFyZSBoYW5kbGVkIGJ5IHN1YmFnZW50cwogICAKICAgICAgIFNpbmNlIHRoZSBmdWxseS1xdWFsaWZpZWQgaW5zdGFuY2UgaXMgcmVnaXN0ZXJlZCwgd2UgaW50ZXJwcmV0CiAgICAgICBhIHJldHVybiBvZiBub1N1Y2hJbnN0YW5jZSB3aGVuIGRvaW5nIGFuIGluZXhhY3QgcXVlcnkgYXMgbWVhbmluZwogICAgICAgd2Ugc2hvdWxkIHJldHJ5IHRoZSBxdWVyeS4KICAgCjIwMDEtMDYtMjEgMDI6NTAgIGpicG4KCiAgICogc25tcGxpYi9taWIuaDoKCiAgICAgLSBmb3Jnb3QgdG8gY29tbWl0IGF0IHRoZSBzYW1lIHRpbWUgYXMgbGFzdCBtaWIuYyBjb21taXQ7IHVwZGF0ZWQKICAgICAgIHByb3RvdHlwZSBmb3Igc3ByaW50X3JlYWxsb2NfaGludGVkX2ludGVnZXIKICAgCjIwMDEtMDYtMjAgMDY6NDQgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jICwgYWdlbnRfaW5kZXguaDoKCiAgICAgLSBhZGQgZnVuY3Rpb24gY291bnRfaW5kZXhlcyB3aGljaCByZXR1cm5zIHRoZSBudW1iZXIgb2YgaW5kZXhlcwogICAgICAgYWxsb2NhdGVkIGZvciBhIGdpdmVuIE9JRC4gIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3IgaW1wbGVtZW50aW5nCiAgICAgICAicm93IGNvdW50IiBvYmplY3RzLCBlLmcuIGlmTnVtYmVyLgogICAKMjAwMS0wNi0yMCAwNTozNyAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2NhbGxiYWNrcy5oICwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gYWRkIFNOTVBEX0NBTExCQUNLX0lOREVYX1NUQVJUIGFuZCBTTk1QRF9DQUxMQkFDS19JTkRFWF9TVE9QCiAgICAgICBjYWxsYmFja3Mgd2hpY2ggbWF5IGJlIHVzZWQgdG8gbWFuYWdlIGluZGV4IGFsbG9jYXRpb25zLgogICAKICAgICAgIE1hc3RlciBhZ2VudCBzaG91bGQgcHJvYmFibHkgY2FsbCB0aGVzZSBjYWxsYmFja3MgdG9vLCBhbHRob3VnaAogICAgICAgaXQncyBhIGJpdCBvZiBhIGRlZ2VuZXJhdGUgY2FzZS4KICAgCjIwMDEtMDYtMTkgMDk6NDQgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgICAgLSB1c2UgYW4gZXhwbGljaXQgZmllbGVkICJhbGxvY2F0ZWQiIGluIHNubXBfaW5kZXggc3RydWN0dXJlIHRvCiAgICAgICBpbmRpY2F0ZSB3aGV0aGVyIG9yIG5vdCBhIHZhbHVlIGlzIGN1cnJlbnRseSBhbGxvY2F0ZWQsIHJhdGhlcgogICAgICAgdGhhbiBvdmVybG9hZGluZyBhIE5VTEwgc2Vzc2lvbiB0byBtZWFuIHRoYXQgaXQgaXMgbm90LgogICAKICAgICAgIFRoaXMgYWxsb3dzIHN0YXJ0dXAgY29kZSBpbiBhIG1hc3RlciBhZ2VudCB0byBwcmUtcmVnaXN0ZXIgaW5kaWNlcwogICAgICAgd2hlbiB0aGVyZSBhcmUgbm8gc2Vzc2lvbnMgb3Blbi4KICAgCjIwMDEtMDYtMTkgMDg6MzQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX2FkbWluLmMgLCBtYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtICBrZWVwIHRoZSB2YWx1ZSBvZiBORVRXT1JLX0JZVEVfT1JERVIgZnJvbSBoLmZsYWdzIGluIHRoZQogICAgICAgIGFnZW50eC1PcGVuLVBEVSBhbmQgdXNlIGl0IGZvciBzdWJzZXF1ZW50IG1hc3Rlci1pbml0aWF0ZWQKICAgICAgICBBZ2VudFggcHJvdG9jb2wgb3BlcmF0aW9ucywgcGVyIFJGQyAyNzQxIChzZWN0aW9uIDcuMS4xLAogICAgICAgIHBhcmFncmFwaCA0KS4KICAgCiAgICAgICAgRm9yIG5vdywgd2UgYXJlIHN0b3JpbmcgdGhpcyBpbiB0aGUgZmxhZ3MgZmllbGQgb2YgYQogICAgICAgIHN1YnNlc3Npb24uICBUaGlzIGlzIGxpa2VseSB0byBzdG9wIHdvcmtpbmcgaWYgdGhlIGZsYWdzCiAgICAgICAgZGVmaW5pdGlvbnMgY2hhbmdlIChpLmUuIGl0J3Mgbm90IGEgZ3JlYXQgc29sdXRpb24pCiAgIAogICAgIC0gIFRoYW5rcyB0byBQZXRlciBLb3JzdGVuIChzZXZlcml0eW9uZSBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQpCiAgICAgICAgZm9yIGlkZW50aWZ5aW5nIHRoaXMgYnVnLCBhbmQgZm9yIGhlbHAgZGVidWdnaW5nIHRoaXMgZml4LgogICAKMjAwMS0wNi0xOSAwMjozNSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIHJlaW5zdGF0ZSBzcGFjZSBiZXR3ZWVuIG51bWJlcnMgYW5kIHVuaXRzLgogICAKICAgICAtIHJlc3BlY3QgRElTUExBWS1ISU5UcyBmb3IgVW5zaWduZWQzMiwgR2F1Z2UsIEdhdWdlMzIgdHlwZXMuCiAgIAoyMDAxLTA2LTEzIDAzOjI5ICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIG1pbm9yIGNoYW5nZSB0byBkZWJ1Z2dpbmcgdG8gcmVkdWNlICJub2lzZSBsZXZlbCIgZnJvbSBQdXJpZnkKICAgCjIwMDEtMDYtMTIgMTA6MzUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGhhbmRsZSBub24tcmVwZWF0ZXJzIGFuZCBtYXgtcmVwZXRpdGlvbnMgZmllbGQgdmFsdWVzIG9mIDwgMCAoYnkKICAgICAgIHNldHRpbmcgdGhlbSB0byAwLCBwZXIgUkZDIDE5MDUpCiAgIAoyMDAxLTA2LTEyIDEwOjA1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBmaXggYnVnIHRoYXQgY2F1c2VkIGEgbnVsbCBwb2ludGVyIHRvIGJlIGZvbGxvd2VkIHdoZW4gcHJvY2Vzc2luZyBhCiAgICAgICBHRVRCVUxLIHJlcXVlc3Qgd2l0aCBub24tcmVwZWF0ZXJzID4gMCwgbWF4LXJlcGV0aXRpb25zID09IDAgYW5kIG5vCiAgICAgICB2YXJiaW5kcyBpbiB0aGUgcmVxdWVzdC4KICAgCjIwMDEtMDYtMTIgMDc6MjQgIGR0czEyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jIChWNC0yLXBhdGNoZXMuMSksIHJlYWRfY29uZmlnLmM6CgogICBGaXggJ3VucmVnaXN0ZXJfY29uZmlnX2hhbmRsZXInIHRvIGhhbmRsZSB0YWdzIG90aGVyCiAgIHRoYW4gdGhlIGZpcnN0IGluIHRoZSBsaXN0LiAgKFRoYW5rcyB0byBQYXVsIFNlcmljZSkuCiAgIAoyMDAxLTA2LTA2IDA3OjM5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBmcmVlKCkgcmV0dXJuIHZhbHVlIGZyb20gcmVnaXN0ZXJfaW5kZXgoKSBjYWxscwogICAKMjAwMS0wNi0wNiAwNzozNyAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgICAtIG1vcmUgdW5pZm9ybSByZXR1cm4gdmFsdWUgZnJvbSByZWdpc3Rlcl9pbmRleCgpOiBtYWtlIGl0IGFsd2F5cyBhCiAgICAgICB2YXJiaW5kIHdoaWNoIHRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGZyZWUoKWluZywgb3IgZWxzZSBOVUxMLgogICAKMjAwMS0wNi0wNSAwMzoxMCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgICAtIGZpeCBmb3IgaW5kZXggYWxsb2NhdGlvbiwgc3VjaCB0aGF0IHJlcXVlc3RzIGZvciBzcGVjaWZpYyBpbmRpY2VzIHdoaWNoCiAgICAgICBoYXZlIHByZXZpb3VzbHkgYmVlbiBhbGxvY2F0ZWQsIGJ1dCBhcmUgbm90IGN1cnJlbnRseSBpbiB1c2UsIHN1Y2NlZWQuCiAgIAogICAgIC0gbW9yZSBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKMjAwMS0wNi0wMSAwODozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuaDoKCiAgIGZpbGUgdGVzdGRlbGF5ZWQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuaDoKCiAgIGZpbGUgdGVzdGhhbmRsZXIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYzoKCiAgIGZpbGUgdGVzdGRlbGF5ZWQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYzoKCiAgIGZpbGUgdGVzdGhhbmRsZXIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZmlsZSB0YWJsZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmg6CgogICBmaWxlIG11bHRpcGxleGVyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgZmlsZSBvbGRfYXBpLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbnVsbC5oOgoKICAgZmlsZSBudWxsLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIGZpbGUgaW5zdGFuY2UuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXRfaGVscGVyLmg6CgogICBmaWxlIHNldF9oZWxwZXIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5oOgoKICAgZmlsZSB0YWJsZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jOgoKICAgZmlsZSByZWFkX29ubHkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYzoKCiAgIGZpbGUgc2VyaWFsaXplLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5oOgoKICAgZmlsZSBvbGRfYXBpLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuaDoKCiAgIGZpbGUgaW5zdGFuY2UuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9yZWFkX29ubHkuaDoKCiAgIGZpbGUgcmVhZF9vbmx5Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvLmN2c2lnbm9yZToKCiAgIGZpbGUgLmN2c2lnbm9yZSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jOgoKICAgZmlsZSBtdWx0aXBsZXhlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgZmlsZSBNYWtlZmlsZS5pbiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXJpYWxpemUuaDoKCiAgIGZpbGUgc2VyaWFsaXplLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbnVsbC5jOgoKICAgZmlsZSBudWxsLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDc6MzkgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgbWlzYyBmaXhlcyBmb3Igb2lkIGZvcm1hdHRpbmcgcHJvYmxlbXMuCiAgIAoyMDAxLTA2LTAxIDA3OjM3ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGQgTWFydGluIE9sZGZpZWxkLgogICAKMjAwMS0wNi0wMSAwMjo1MCAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaCAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIGZpeCBmb3IgYWJzb2x1dGVseSBtaW5kLWJlbmRpbmcgbWVtb3J5IGxlYWsgd2hlbiBBZ2VudFggc2Vzc2lvbnMKICAgICAgIHRpbWVvdXQuICBhZ2VudF9zZXNzaW9uX2xpc3QgaG9sZHMgYSBxdWV1ZSBvZiBzZXNzaW9ucyB3aXRoIG91dHN0YW5kaW5nCiAgICAgICByZXF1ZXN0cy4gIFdoZW4gYSBzZXNzaW9uIHRpbWVzIG91dCwgdGhpcyBtdXN0IGJlIHNjYXZlbmdlZCB0byBtYWtlCiAgICAgICBzdXJlIHRoZSBzZXNzaW9ucyB0aGF0IGhhdmUgdGltZWQgb3V0LCBhbmQgdGhlaXIgYXNzb2NpYXRlZCByZXF1ZXN0cwogICAgICAgYXJlIGZyZWUoKWQuCiAgIAoyMDAxLTA1LTMwIDAzOjI4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIHJldHJ5IGluaXRpYWwgb3BlbiBvZiBBZ2VudFggbWFzdGVyIHNvY2tldCBpZiBBZ2VudFggcGluZ3MgYXJlCiAgICAgICBlbmFibGVkIChzaG91bGQgcmVhbGx5IGJlIGEgc2VwYXJhdGUgZGVmYXVsdF9zdG9yZSBvcHRpb24gYnV0CiAgICAgICBuZXZlciBtaW5kKQogICAKMjAwMS0wNS0zMCAwMzoyNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBtb3JlIGFnZ3Jlc3NpdmUgaGFuZGxpbmcgb2YgdGltZW91dCBjb25kaXRpb25zIChhbHNvIGZpeCBtZW1vcnkKICAgICAgIGxlYWspCiAgIAoyMDAxLTA1LTMwIDAzOjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBtb3JlIGluZm9ybWF0aXZlIGRlYnVnZ2luZwogICAKMjAwMS0wNS0zMCAwMjozNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgICAgLSByZW1vdmUgbm9pc3kgZGVidWdnaW5nCiAgIAoyMDAxLTA1LTMwIDAyOjM3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtb3JlIGNvbXBhY3QgZGVidWdnaW5nIGluIF9zZXNzX3NlbGVjdF9pbmZvCiAgIAoyMDAxLTA1LTMwIDAyOjM0ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gY29weSBmbGFncyBpbiByZWF0dGFjaF9zdWJ0cmVlIChuZWVkZWQgZm9yIEFnZW50WCByb3cgcmVnaXN0cmF0aW9uKQogICAKMjAwMS0wNS0yOCAwODo1NCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYyAsIGNsaWVudC5oICwKICAgbWFzdGVyX2FkbWluLmMgLCBtYXN0ZXJfcmVxdWVzdC5jICwgc3ViYWdlbnQuYzoKCiAgICAgLSBzdHVmZiBmcm9tIHBhdGNoICM0MTYwMjYgKHN1Ym1pdHRlZCBieSBhbm9ueW1vdXMpIGZvciBBZ2VudFggcm93CiAgICAgICByZWdpc3RyYXRpb24KICAgCjIwMDEtMDUtMjggMDg6NDkgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gdHdlYWsgdG8gZ2V0U3RhdFB0ciB0byBoYW5kbGUgZ2V0TmV4dCBvcGVyYXRpb25zIGluIGNvbWJpbmF0aW9uIHdpdGgKICAgICAgIEZVTExZX1FVQUxJRklFRF9JTlNUQU5DRSBub2RlcyAod2hpY2ggYXJpc2UgaW4gQWdlbnRYIHJvdyByZWdpc3RyYXRpb24pLgogICAKMjAwMS0wNS0yOCAwODo0NiAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudF9yZWdpc3RyeS5oICwKICAgdmFyX3N0cnVjdC5oOgoKICAgICAtIHN0dWZmIGZyb20gcGF0Y2ggIzQxNjAyNiAoc3VibWl0dGVkIGJ5IGFub255bW91cykgZm9yIEFnZW50WCByb3cKICAgICAgIHJlZ2lzdHJhdGlvbgogICAKMjAwMS0wNS0yOCAwODo0MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gc21hbGwgdHdlYWsgdG8gZGVidWdnaW5nIG91dHB1dAogICAKMjAwMS0wNS0yOCAwODozOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBkbyBwYXJzaW5nL2J1aWxkaW5nIG9mIEFTTl9QUklWX0VYQ0xfUkFOR0UgYW5kCiAgICAgICBBU05fUFJJVl9JTkNMX1JBTkdFIHR5cGVzICpwcm9wZXJseSouCiAgIAoyMDAxLTA1LTI4IDA0OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBmaXggcG9zc2libGUgbWVtb3J5IGxlYWsgaW4gX3Nlc3NfYXN5bmNfc2VuZCBlcnJvciBjYXNlcwogICAKMjAwMS0wNS0yOCAwNDoyNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBhZGQgcGFyc2luZy9idWlsZGluZyBvZiBBU05fUFJJVl9FWENMX1JBTkdFIGFuZAogICAgICAgQVNOX1BSSVZfSU5DTF9SQU5HRSB0eXBlcy4KICAgCjIwMDEtMDUtMjMgMDk6MjAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHJlc3BlY3QgbXNnTWF4U2l6ZSBpbiByZWNlaXZlZCB2MyBQRFVzIChpbiB0aGUgd2VhayBzZW5zZSB0aGF0IGlmCiAgICAgICB0aGUgc2VyaWFsaXplZCByZXNwb25zZSBQRFUgaXMgbW9yZSB0aGFuIGl0LCB3ZSBkb24ndCBzZW5kIGl0KQogICAKICAgICAtIHJlbW92ZWQgZnVuY3Rpb25zIGFzY2lpX3RvX2JpbmFyeSwgaGV4X3RvX2JpbmFyeS4gIFVzaW5nIHRoZXNlCiAgICAgICBmdW5jdGlvbnMgaXMgcmVhbGx5IGJhZCwgc2luY2UgdGhleSB3aWxsIGhhcHBpbHkgb3ZlcmZsb3cgYnVmZmVycy4KICAgICAgIFRoZSBzdXBlcmlvciBhbHRlcm5hdGl2ZXMsIGRlZmluZWQgaW4gdG9vbHMuaCwgYXJlCiAgICAgICBzbm1wX3tkZWNpbWFsLCBoZXh9X3RvX2JpbmFyeS4KICAgCjIwMDEtMDUtMjMgMDk6MDAgIGpicG4KCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICAgIC0gcmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBzdHJ1Y3Qgc29ja2FkZHJfaW4gcmVzcElwCiAgIAoyMDAxLTA1LTIzIDA4OjU4ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBlYXJseSBiYWlsIG91dCBvZiBoYW5kbGVfc25tcF9wYWNrZXQoKSBpZiB0aGUgY2FsbGJhY2sgb3BlcmF0aW9uCiAgICAgICB0eXBlIGlzIG5vdCBTTk1QX0NBTExCQUNLX09QX1JFQ0VJVkVEX01FU1NBR0UuICBJbiBwcmFjdGljZSwgdGhlCiAgICAgICBvbmx5IHdheSB0aGlzIGFyaXNlcyBjdXJyZW50bHkgaXMgd2hlbiBhIHN0cmVhbSB0cmFuc3BvcnQgYmFzZWQKICAgICAgIGNvbm5lY3Rpb24gZ29lcyBhd2F5IGFuZCBhIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCBvY2N1cnMuCiAgIAoyMDAxLTA1LTIzIDA4OjQ0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSBuZXcgZmllbGRzIHJjdk1zZ01heFNpemUgYW5kIHNuZE1zZ01heFNpemUgaW4gc25tcF9zZXNzaW9uCiAgICAgICBzdHJ1Y3R1cmUgdG8gc3VwcG9ydCB2MyBtc2dNYXhTaXplCiAgIAogICAgIC0gcmVtb3ZlZCBmdW5jdGlvbnMgYXNjaWlfdG9fYmluYXJ5LCBoZXhfdG9fYmluYXJ5IGZyb20gcHVibGljCiAgICAgICBpbnRlcmZhY2UuICBVc2luZyB0aGVzZSBmdW5jdGlvbnMgaXMgcmVhbGx5IGJhZCwgc2luY2UgdGhleQogICAgICAgd2lsbCBoYXBwaWx5IG92ZXJmbG93IGJ1ZmZlcnMuICBUaGUgc3VwZXJpb3IgYWx0ZXJuYXRpdmVzLAogICAgICAgZGVmaW5lZCBpbiB0b29scy5oLCBhcmUgc25tcF97ZGVjaW1hbCwgaGV4fV90b19iaW5hcnkuCiAgIAoyMDAxLTA1LTIzIDA4OjM3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcElQWERvbWFpbi5jICwKICAgc25tcFRDUERvbWFpbi5jICwgc25tcFVEUERvbWFpbi5jICwgc25tcFVuaXhEb21haW4uYwogICAsIHNubXBfdHJhbnNwb3J0LmMgLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIGFkZCBtc2dNYXhTaXplIGZpZWxkIHRvIHNubXBfdHJhbnNwb3J0IHN0cnVjdHVyZSB0byBzdXBwb3J0CiAgICAgICBtc2dNYXhTaXplIG5lZ290aWF0aW9uIGZvciB2MwogICAKMjAwMS0wNS0yMyAwNzoxNCAgamJwbgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAgIC0gdXNlIHNwcmludF9yZWFsbG9jX2hleHN0cmluZyBpbnN0ZWFkIG9mIHNwcmludF9oZXhzdHJpbmcgZm9yCiAgICAgICBTTk1QX1RFU1RJTkdfQ09ERSBkZWJ1Z2dpbmcgb3V0cHV0IG9mIElWLCBrZXkgYW5kIHBsYWludGV4dAogICAKMjAwMS0wNS0yMyAwNToyNSAgamJwbgoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAgIC0gZnJlZSgpIGJ1ZmZlcnMgaW4gYSBjb3VwbGUgb2YgZXJyb3IgY2FzZXM7IG5vIGJpZyBkZWFsCiAgIAoyMDAxLTA1LTIzIDA0OjM5ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAgIC0gdXNlIG5ldyBzbm1wX2hleF90b19iaW5hcnkgZnVuY3Rpb24gZm9yIGVuZ2luZSBJRCBwYXJzaW5nIGluIC1lCiAgICAgICBvcHRpb24sIHJhdGhlciB0aGFuIGFyY2hhaWMgaGV4X3RvX2JpbmFyeQogICAKMjAwMS0wNS0yMyAwNDoyMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIGZyZWUoKSBidWZmZXJzIGluIGEgY291cGxlIG9mIGVycm9yIGNhc2VzOyBubyBiaWcgZGVhbAogICAKMjAwMS0wNS0yMyAwNDoxNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIHVzZSBuZXcgc25tcF9oZXhfdG9fYmluYXJ5IGZ1bmN0aW9uIGZvciBlbmdpbmUgSUQgcGFyc2luZyBpbiAtZQogICAgICAgYW5kIC1FIG9wdGlvbnMsIHJhdGhlciB0aGFuIGFyY2hhaWMgaGV4X3RvX2JpbmFyeQogICAKMjAwMS0wNS0yMyAwMzo1NiAgamJwbgoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAgIC0gdXNlIG5ldyBzbm1wX3tkZWNpbWFsLCBoZXh9X3RvX2JpbmFyeSBmdW5jdGlvbnMgZm9yIGlucHV0IHN0cmluZwogICAgICAgdG8gT0NURVQgU1RSSU5HIGNvbnZlcnNpb24sIHJhdGhlciB0aGFuIGFyY2hhaWMgYXNjaWlfdG9fYmluYXJ5CiAgICAgICBhbmQgaGV4X3RvX2JpbmFyeQogICAKICAgICAtIG9taXQgdHJhaWxpbmcgbmV3bGluZSBmcm9tIHN0cmluZyAoaGVscGZ1bCBmb3Igb2JqZWN0cyB0aGF0IGRvbid0CiAgICAgICBhbGxvdyBub24tcHJpbnRpbmcgY2hhcmFjdGVycywgZS5nLiBzeXNMb2NhdGlvbi4wKQogICAKMjAwMS0wNS0yMCAwODoxMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcmV3cml0dGVuIF9zZXNzX3JlYWQoKSBmdW5jdGlvbjoKICAgCiAgICAgICAtIGJldHRlciBoYW5kbGluZyBvZiBsb25nIHBhY2tldHMKICAgICAgIC0gemVyby1jb3B5IHJlY2VwdGlvbiBvZiBwYWNrZXRzIG9uIHN0cmVhbSB0cmFuc3BvcnRzCiAgICAgICAtIGxvd2VyIG1lbW9yeSBvdmVyaGVhZHMgZm9yIHBhY2tldCBmcmFnbWVudCBoYW5kbGluZyBmb3Igc3RyZWFtCiAgICAgICAgIHRyYW5zcG9ydHMKICAgCiAgICAgLSBhbGxvdyBwYXJzaW5nIG9mIGxhcmdlIG9iamVjdHMgKD44MTkyIG9jdGV0cykKICAgCjIwMDEtMDUtMjAgMDU6NDggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSBkb24ndCBzdHJkdXAoKSBjb250ZXh0TmFtZSwgc2VjdXJpdHlOYW1lIC0tIGNhdXNlcyBtaW5vciBtZW1vcnkKICAgICAgIGxlYWsuCiAgIAoyMDAxLTA1LTIwIDA1OjA0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIHRlc3QgcmV0dXJuIG9mIGZjbnRsKEZfR0VURkwpLCBzbyBhcyBub3QgdG8gc2V0IGZsYWdzIHRvIGdhcmJhZ2UKICAgCiAgICAgLSBjb3JyZWN0aW9uIHRvIGNvbW1lbnQgLS0gc2V0IHNvY2tldCB0byAqYmxvY2tpbmcqIQogICAKICAgICAtIGNoZWNrIG9wYXF1ZSBiZWZvcmUgd3JpdGluZyB0byBpdCBpbiByZWN2CiAgIAoyMDAxLTA1LTIwIDA1OjAyICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgICAgLSBwcm9wZXIgaGFuZGxpbmcgb2YgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIGluIHNubXBfc3luY2hfaW5wdXQ6CiAgICAgICBzZXQgYW4gZXJyb3IgY29uZGl0aW9uLCB3aXRoIGVycm5vIFNOTVBFUlJfQUJPUlQgKCJTZXNzaW9uIGFib3J0CiAgICAgICBmYWlsdXJlIiksIHdoaWNoIHNlZW1zIGxpa2UgYSBnb29kIGVub3VnaCBtYXRjaC4KICAgCjIwMDEtMDUtMTggMDk6NTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gbWFrZSBuZXdseS1hY2NlcHQoKWVkIHNvY2tldHMgYmxvY2tpbmc7IG90aGVyd2lzZSBwcm9ibGVtcyBhcmlzZQogICAgICAgbGF0ZXIgd2hlbiBzZW5kKClpbmcgbGFyZ2UgUERVcyAoc2luY2Ugb25seSBhIHNpbmdsZSBzb2NrZXQgYnVmZmVyJ3MKICAgICAgIHdvcnRoIG9mIGRhdGEgYXQgbW9zdCBjYW4gYmUgc2VudCB3aXRob3V0IGJsb2NraW5nKS4KICAgCjIwMDEtMDUtMTggMDc6MTcgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHVzZSBzcHJpbnRfcmVhbGxvY19vYmppZCBhbmQgc3ByaW50X3JlYWxsb2NfdmFyaWFibGUgaW5zdGVhZCBvZgogICAgICAgc3ByaW50X29iamlkIGFuZCBzcHJpbnRfdmFyaWFibGUgcmVzcGVjdGl2ZWx5LCB0byBhbGxvdyBsYXJnZSBQRFVzCiAgICAgICB0byBiZSBwcmludGVkIHdoZW4gZGVidWdnaW5nCiAgIAoyMDAxLTA1LTE4IDA3OjE2ICBqYnBuCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgICAgLSBpbXByb3ZlZCBkZWJ1Z2dpbmcgb3V0cHV0IGZyb20gc25tcF9yZWFsbG9jKCkKICAgCjIwMDEtMDUtMTggMDc6MTUgIGpicG4KCiAgICogc25tcGxpYi86IG1pYi5jICwgbWliLmg6CgogICAgIC0gcmVtb3ZlIGRlYnVnZ2luZyBmcm9tIG91dHB1dCByb3V0aW5lcwogICAKICAgICAtIG5ldyBmdW5jdGlvbiBzcHJpbnRfcmVhbGxvY19vYmppZAogICAKICAgICAtIG1ha2Ugc3ByaW50X3JlYWxsb2Nfb2JqaWQgYW5kIHNwcmludF9yZWFsbG9jX3ZhcmlhYmxlIGV4dGVybmFsbHkKICAgICAgIHZpc2libGUKICAgCjIwMDEtMDUtMTggMDY6MjggIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gaW1wcm92ZWQgZGVidWdnaW5nIG91dHB1dCBmcm9tIGFzbl9yZWFsbG9jKCkKICAgCjIwMDEtMDUtMTUgMDQ6MTAgIGpicG4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgICAtIGFkZCBPSURzIGZvciBVRFAvSVB2NiBhbmQgVENQL0lQdjYKICAgCjIwMDEtMDUtMTQgMDI6MjAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAgIC0gYWRkZWQgXG4gdG8gdGV4dCBvZiBzbm1wX2xvZygpIG1lc3NhZ2VzIChidWcgIzQyMjk3OCkKICAgCjIwMDEtMDUtMTEgMDc6MzAgIGpicG4KCiAgICogc25tcGxpYi86IG1pYi5jICwgbWliLmg6CgogICAgIC0gYWRkZWQgc3ByaW50X3JlYWxsb2NfPHR5cGU+IGZhbWlseSBvZiBmdW5jdGlvbnMgd2hpY2ggdGFrZSBleHRyYQogICAgICAgcGFyYW1ldGVycyBhbmQgdXNlIHJlbG9jYXRpbmcgYnVmZmVycyB0byByZW1vdmUgbGltaXRhdGlvbnMgZHVlIHRvCiAgICAgICBmaXhlZC1zaXplIGJ1ZmZlcnMgKGUuZy4gc2VlIGJ1ZyAjNDA5MTgxKS4KICAgCiAgICAgLSBhbHNvIGZpeGVzIHBvdGVudGlhbCBwcm9ibGVtIG5vdGVkIGFzIGJ1ZyAjNDE0ODAzCiAgIAogICAgIC0gZnByaW50X3ZhcmlhYmxlLCBmcHJpbnRfb2JqaWQgYW5kIGZwcmludF92YWx1ZSB1c2UgbmV3IGZ1bmN0aW9ucwogICAgICAgc3VjaCB0aGF0IHNubXBnZXQgZXRjLiBhcmUgaW1wcm92ZWQgaW1tZWRpYXRlbHkKICAgCiAgICAgLSBvbGQgZnVuY3Rpb25zIHJlbWFpbiAqRk9SIE5PVyogLS0gYnV0IHJlYWxseSB0aGV5IHNob3VsZCBiZQogICAgICAgY29uc2lkZXJlZCB0byBiZSBkZXByZWNhdGVkIChuZXcgZnVuY3Rpb25zIHByb3ZpZGUgYSBzdXBlcnNldCBvZgogICAgICAgdGhlaXIgZnVuY3Rpb25hbGl0eSkuCiAgIAoyMDAxLTA1LTExIDA3OjE0ICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuaDoKCiAgICAgLSBhZGRlZCBhZGRpdGlvbmFsIGZ1bmN0aW9uIHBvaW50ZXIgdG8gc3RydWN0IHRyZWUgdG8gcG9pbnQgYXQKICAgICAgIHJlbG9jYXRpbmcgYnVmZmVyIGNvbXBhdGlibGUgb3V0cHV0IGZ1bmN0aW9uCiAgIAoyMDAxLTA1LTExIDA2OjU3ICBqYnBuCgogICAqIHNubXBsaWIvOiB0b29scy5jICwgdG9vbHMuaDoKCiAgICAgLSBhZGRlZCB1dGlsaXR5IGZ1bmN0aW9uIHNubXBfc3RyY2F0LCB3aGljaCBhcHBlbmRzIGEgc3RyaW5nIHRvIGEKICAgICAgIHJlbG9jYXRhYmxlIGJ1ZmZlcgogICAKMjAwMS0wNS0xMCAxMToyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggYnVnICM0MjMxMDkgaW5jb3JyZWN0IGluZGV4IHBhcnNpbmcKICAgCjIwMDEtMDUtMDkgMTY6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBmaXggc25tcF9jbGllbnQuYzo1Njk6IHdhcm5pbmc6IGNvbnRyb2wgcmVhY2hlcyBlbmQgb2Ygbm9uLXZvaWQgZnVuY3Rpb24KICAgCjIwMDEtMDUtMDkgMTI6MzYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBSbW9uLmggLCBSbW9uL1JFQURNRSAsIFJtb24vYWd1dGlsLmMKICAgLCBSbW9uL2FndXRpbC5oICwgUm1vbi9hZ3V0aWxfYXBpLmggLCBSbW9uL2FsYXJtLmMKICAgLCBSbW9uL2FsYXJtLmggLCBSbW9uL2V2ZW50LmMgLCBSbW9uL2V2ZW50LmggLAogICBSbW9uL2hpc3RvcnkuYyAsIFJtb24vaGlzdG9yeS5oICwgUm1vbi9yb3dfYXBpLmggLAogICBSbW9uL3Jvd3MuYyAsIFJtb24vcm93cy5oICwgUm1vbi9zdGF0aXN0aWNzLmMgLAogICBSbW9uL3N0YXRpc3RpY3MuaCAsIFJtb24vdGVzdF9hbGFybS5zaCAsCiAgIFJtb24vdGVzdF9oaXN0LnNoOgoKICAgSW5jbHVkZSBBbGV4IFJvemluJ3MgUm1vbi4KICAgCjIwMDEtMDUtMDcgMTA6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2NsaWVudC5jICwgc25tcF9jbGllbnQuaDoKCiAgIEFkZGVkIGEgY291cGxlIG9mIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3IgbWFuaXB1bGF0aW5nIHZhcmJpbmRsaXN0czoKICAgICBpbnQgc25tcF9zZXRfdmFyX3R5cGVkX3ZhbHVlKHN0cnVjdCB2YXJpYWJsZV9saXN0ICpuZXd2YXIsIHVfY2hhciB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9jaGFyICp2YWxfc3RyLCBzaXplX3QgdmFsX2xlbik7CiAgICAgdm9pZCBzbm1wX3JlcGxhY2VfdmFyX3R5cGVzKHN0cnVjdCB2YXJpYWJsZV9saXN0ICp2YmwsIGludCBvbGRfdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5ld190eXBlKTsKICAgICB2b2lkIHNubXBfcmVzZXRfdmFyX3R5cGVzKHN0cnVjdCB2YXJpYWJsZV9saXN0ICp2YmwsIGludCBuZXdfdHlwZSk7CiAgIAoyMDAxLTA1LTA3IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmg6CgogICBkZWZpbmUgU05NUF9NQUxMT0NfVFlQRURFRigpCiAgIAoyMDAxLTA1LTA1IDA3OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgZml4IHN0b3JlXyBuYW1lOyBkb24ndCBjYXN0IHRvIGFzbnkgdHlwZSBpZiBwYXJtIGV4cGVjdGluZyB1X2NoYXIqOyBmaXggX3ZhcmlhYmxlX29pZAogICBuYW1pbmc7IGNhc3QgcGFybSAyIG9mIG1lbWR1cCB0byB1X2NoYXIqCiAgIAoyMDAxLTA1LTAzIDE0OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeGVkIHJhdXRoIG9mZnNldCBpbmNyZW1lbnRpbmc6IHdhcyBpbmNyZW1lbnRpbmcgdGhlIHBvaW50ZXIsIG5vdCB0aGUgdmFsdWUuCiAgICAgLS0gbW9yZSBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgcHJvYmxlbSBmb3VuZC4KICAgCjIwMDEtMDUtMDMgMTQ6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4ZWQgcmF1dGggb2Zmc2V0IGluY3JlbWVudGluZzogd2FzIGluY3JlbWVudGluZyB0aGUgcG9pbnRlciwgbm90IHRoZSB2YWx1ZS4KICAgCjIwMDEtMDUtMDMgMTA6MDggIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQgLCBjb25maWcuZ3Vlc3MgLCBjb25maWcuc3ViICwKICAgY29uZmlndXJlICwgbHRtYWluLnNoOgoKICAgdXBkYXRlZCB0byBsaWJ0b29sIDEuNAogICAKMjAwMS0wNS0wMSAxMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICB1c2UgcmVhbGxvYyByb3V0aW5lcy4KICAgCjIwMDEtMDUtMDEgMTM6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGZpeCB2YXJpYWJsZSBkZWNsYXJhdGlvbi4KICAgCjIwMDEtMDUtMDEgMTM6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBEb24ndCBwcmludCBoZXggZm9yIHN0cmluZyBsZW5ndGhzIGxlc3MgdGhhbiA0LiAgU2hvdWxkIGhhdmUgZGllZCBhZ2VzIGFnby4KICAgCjIwMDEtMDUtMDEgMTM6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oOgoKICAgRml4IHByb3RvdHlwZSBzbyBpdHMgbm90IHN0YXRpYyAoaXQgc2hvdWxkbid0IGJlKS4KICAgCjIwMDEtMDUtMDEgMTM6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBtYWtlIFJPTkxZIHZhcmlhYmxlcyB3cml0YWJsZSAod2hpY2ggbWF5IG9yIG1heSBub3Qgd29yay4gIEknbSBiZXR0aW5nIG5vdC4pCiAgIAoyMDAxLTA1LTAxIDEzOjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlcy4KICAgCjIwMDEtMDUtMDEgMTM6MjggIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluICwgY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgY2hlY2sgZm9yIGFuIHJwbSBzdWJkaXJlY3RvcnkuCiAgIAoyMDAxLTA0LTIzIDIwOjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGJpZyBjbGVhbnVwIGFuZCBvdGhlciBmaXhlcyBJJ3ZlIGFscmVhZHkgZm9yZ290dGVuIGluIHRoZSBsYXN0IGZldyBtaW51dGVzLgogICAKMjAwMS0wNC0yMyAyMDozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBEb24ndCB3YWxrIG9mZiBlbmQgb2YgbWliIHRyZWUgKHNpZ2gpLgogICAKMjAwMS0wNC0yMyAyMDoxOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBmaXggdGhlIG1pYiBpbmZvIGRpc3BsYXkgb3B0aW9ucy4KICAgc2F2ZSB0aGVtIGFwcHJvcHJpYXRlbHkuCiAgIAoyMDAxLTA0LTIzIDE4OjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIG1vcmUgc2F2YWJsZSBvcHRpb24gaXRlbXMuCiAgIHVzZSBEYXRhOjpEdW1wZXIgdG8gc2F2ZSBtb3N0IHN0dWZmLgogICAKMjAwMS0wNC0yMyAxNzoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBEb24ndCBzYXZlIHNlc3Npb24gb3B0aW9ucyB0d2ljZS4KICAgTWFrZSBjb2xvciBvZiB3cml0YWJsZSBvYmplY3RzIGEgdmFyaWFibGUuCiAgIAoyMDAxLTA0LTIzIDE3OjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IHRrbWliIChWNC0yLXBhdGNoZXMuMiksIHRrbWliOgoKICAgZml4IHdhbGsgcHJvYmxlbSBvbmNlIGFuZCBmb3IgYWxsLgogICAKMjAwMS0wNC0yMyAxNjozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICByZWR1Y2Ugc2NyZWVuIHJlYWxlc3RhdGUgYWxsIG92ZXIgdGhlIHBsYWNlCiAgIAoyMDAxLTA0LTIzIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIHRlc3QgYWdhaW5zdCB2ZXJzaW9uIDUKICAgCjIwMDEtMDQtMTggMDg6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmggLCBtaWJzL0xNLVNFTlNPUlMtTUlCLnR4dAogICAsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIEFkZGVkIExNLVNFTlNPUlMtTUlCIHN1cHBvcnQgKGRpc2tpbyBleHRlbnNpb24pIGZyb20gTWFydGluIE9sZGZpZWxkCiAgIAoyMDAxLTA0LTE4IDA1OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBoYWNraW5nIG9uIHNubXBfYWRkX3ZhciB0byBoYW5kbGUgbG9uZyB2YWx1ZXMKICAgCiAgICAgICAtIHVzZSBzbm1wX3toZXgsZGVjaW1hbH1fdG9fYmluYXJ5IGluc3RlYWQgb2YgaGV4X3RvX2JpbmFyeQogICAgICAgICBhbmQgYXNjaWlfdG9fYmluYXJ5OyB0aGVzZSBzaG91bGQgYmUgcmVtb3ZlZAogICAKICAgICAgIC0gZG9uJ3QgdXNlIHN0cnRvayBpbiBwcm9jZXNzaW5nIGJpdHN0cmluZ3MKICAgCjIwMDEtMDQtMTggMDQ6NTggIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gdXNlIHRoZSBnZW5lcmljIHNubXBfcmVhbGxvYyBmdW5jdGlvbiBpbiBhc25fcmVhbGxvYwogICAKMjAwMS0wNC0xOCAwMjo0MCAgamJwbgoKICAgKiBzbm1wbGliLzogdG9vbHMuYyAsIHRvb2xzLmg6CgogICAgIC0gbmV3LCByZWFsbG9jYXRpbmcgdXRpbGl0eSBmdW5jdGlvbnMgc25tcF9oZXhfdG9fYmluYXJ5IGFuZAogICAgICAgc25tcF9kZWNpbWFsX3RvX2JpbmFyeSB0byBjb252ZXJ0IGhleCBhbmQgZGVjaW1hbCBzdHJpbmdzIHRvIG9jdGV0CiAgICAgICBzdHJpbmdzIHJlc3BlY3RpdmVseS4KICAgCiAgICAgLSBuZXcgdXRpbGl0eSBmdW5jdGlvbiBzbm1wX3JlYWxsb2MgdG8gcGVyZm9ybSBidWZmZXIgKHJlLSlhbGxvY2F0aW9uCiAgIAoyMDAxLTA0LTEyIDA1OjEyICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMi1wYXRjaGVzLjYpLCBzbm1wX2FnZW50LmM6CgogICBCZXR0ZXIgZml4IGZvciBidWcgIzQxNDg1NSBmcm9tIGFyYWplc2gKICAgSGFuZGxlcyBub24tcmVwZWF0ZXJzPTAgYXMgd2VsbCwgYW5kIGF2b2lkcyBtZW1vcnkgbGVha3MuCiAgIAoyMDAxLTA0LTExIDEwOjA2ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgICAtIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBhc25fcmVhbGxvY19yYnVpbGRfPHR5cGU+IGZ1bmN0aW9ucywgd2hpY2gKICAgICAgIG5vdyB0YWtlIGFuIGFkZGl0aW9uYWwgYXJndW1lbnQgdGhhdCBtYXkgYmUgdXNlZCB0byBpbmRpY2F0ZSB0aGF0CiAgICAgICByZWFsbG9jYXRpb24gc2hvdWxkIG5vdCBiZSBkb25lLgogICAKICAgICAtIG9sZCBfcmJ1aWxkIEFQSSBpcyBnb25lLgogICAKICAgICAtIGV4dGVuZGVkIChhbmQgY29ycmVjdGVkISkgY29tbWVudGFyeSBvbiBjb3JyZWN0IHVzYWdlIG9mIG5ldyBBUEkuCiAgIAoyMDAxLTA0LTExIDEwOjA1ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wLmMgLCBzbm1wLmg6CgogICAgIC0gdXNlIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBfcmVhbGxvY19yYnVpbGQgZnVuY3Rpb25zLgogICAKICAgICAtIG9sZCBfcmJ1aWxkX3Zhcl9vcCBBUEkgaXMgZ29uZS4KICAgCjIwMDEtMDQtMTEgMTA6MDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gdXNlIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBhc25fcmVhbGxvY19yYnVpbGRfPHR5cGU+IGZ1bmN0aW9ucy4KICAgCjIwMDEtMDQtMTEgMTA6MDMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHVzZSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgX3JlYWxsb2NfcmJ1aWxkIGZ1bmN0aW9ucy4KICAgCiAgICAgLSBvbGQgX3JidWlsZCBBUEkgaXMgZ29uZS4KICAgCjIwMDEtMDQtMTEgMTA6MDIgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gc2Vjb25kIGluY2FybmF0aW9uIG9mIGFzbl9yZWFsbG9jX3JidWlsZF88dHlwZT4gZnVuY3Rpb25zLCB3aGljaAogICAgICAgbm93IHRha2UgYW4gYWRkaXRpb25hbCBhcmd1bWVudCB0aGF0IG1heSBiZSB1c2VkIHRvIGluZGljYXRlIHRoYXQKICAgICAgIHJlYWxsb2NhdGlvbiBzaG91bGQgbm90IGJlIGRvbmUuCiAgIAogICAgIC0gb2xkIF9yYnVpbGQgQVBJIGlzIGdvbmUuCiAgIAogICAgIC0gYXNuX3JlYWxsb2MoKSBmdW5jdGlvbiBjaGVja3Mgd2hldGhlciBpdCBoYXMgYmVlbiBwYXNzZWQgYSBOVUxMCiAgICAgICBwb2ludGVyIGFuZCB1c2VzIG1hbGxvYygpIGluIHRoYXQgY2FzZSAodGhhbmtzIHRvIE1pY2hhZWwgU2xpZmNhawogICAgICAgZm9yIHBvaW50aW5nIG91dCB0aGUgZGFuZ2VyIGhlcmUpLgogICAKMjAwMS0wNC0xMSAwNjoxMyAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSGFuZGxlIEdldEJ1bGsgcmVxdWVzdHMgd2l0aCBtYXgtcmVwZXRpdGlvbnM9MCBwcm9wZXJseSAoYnVnICM0MTQ4NTUpCiAgIAoyMDAxLTA0LTEwIDA0OjQ3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgICAtIHNldCBTT19TTkRCVUYgYW5kIFNPX1JDVkJVRiB0byAxMjhLYiBmb3IgbmV3bHktb3BlbmVkIFVEUCBzb2NrZXRzLAogICAgICAgdG8gZW5hYmxlIGxhcmdlIFBEVXMgdG8gYmUgc2VudCBhbmQgcmVjZWl2ZWQuICBTb21lCiAgICAgICBpbXBsZW1lbnRhdGlvbnMgZGVmYXVsdCB2ZXJ5IGxvdyAoU29sYXJpcyAyLjcgOEtiLCBMaW51eCAyLjQKICAgICAgIDY0S2IpLgogICAKMjAwMS0wNC0wOSAxMDowNSAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBtb2RpZmllZCB1c21fcmdlbmVyYXRlX291dF9tc2coKSB0byBtYWtlIHVzZSBvZiByZWFsbG9jYXRpbmcKICAgICAgIHJldmVyc2UgZW5jb2RlIGZ1bmN0aW9ucy4KICAgCjIwMDEtMDQtMDkgMTA6MDMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmg6CgogICAgIC0gYWRkaXRpb25hbCBwYXJhbWV0ZXIgdG8gdXNtX3JnZW5lcmF0ZV9vdXRfbXNnKCkgdG8gZW5hYmxlIHVzZSBvZgogICAgICAgcmVhbGxvY2F0aW5nIHJldmVyc2UgZW5jb2RlIGZ1bmN0aW9ucy4KICAgCjIwMDEtMDQtMDkgMDk6NTcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3NlY21vZC5oOgoKICAgICAtIGFsbG93IGFkZGl0aW9uYWwgcGFyYW1ldGVyIGZvciBvdXRnb2luZyBwYXJhbXMgdG8gZW5hYmxlIHVzZSBvZgogICAgICAgcmVhbGxvY2F0aW5nIHJldmVyc2UgZW5jb2RlIGZ1bmN0aW9ucy4KICAgCjIwMDEtMDQtMDkgMDk6NTUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIHByb3RvdHlwZXMgZm9yIHJlYWxsb2NhdGluZyByZXZlcnNlIGVuY29kZSBmdW5jdGlvbnMKICAgCjIwMDEtMDQtMDkgMDk6NTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1vZGlmaWVkIHRvIHVzZSByZWFsbG9jYXRpbmcgcmV2ZXJzZSBBU04uMSBlbmNvZGVyIGZ1bmN0aW9ucyBpZgogICAgICAgdXNpbmcgcmV2ZXJzZSBlbmNvZGluZyBhdCBhbGwuCiAgIAoyMDAxLTA0LTA5IDA5OjQ5ICBqYnBuCgogICAqIHNubXBsaWIvc25tcC5jOgoKICAgICAtIGFkZCBuZXcgZnVuY3Rpb24gc25tcF9yZWFsbG9jX3JidWlsZF92YXJfb3AoKSB3aGljaCB1c2VzCiAgICAgICByZWFsbG9jYXRpbmcgcmV2ZXJzZSBBU04uMSBlbmNvZGVyIGZ1bmN0aW9ucyB0byBlbmNvZGUgdmFyYmluZHMuCiAgIAoyMDAxLTA0LTA5IDA5OjQ3ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgICAtIHByb3RvdHlwZSBmb3IgbmV3IHN1aXRlIG9mIGZ1bmN0aW9ucyBhc25fcmVhbGxvY19yZWJ1aWxkXzx0eXBlPiwKICAgICAgIHdoaWNoIHBlcmZvcm0gcmV2ZXJzZSBlbmNvZGluZyBpbnRvIGEgYnVmZmVyIGFuZCBncm93IGl0IGlmIHRoZXJlCiAgICAgICBpcyBub3QgZW5vdWdoIHNwYWNlIGZvciB0aGUgZW5jb2RpbmcuCiAgIAogICAgIC0gY29tbWVudGFyeSBvbiBjb3JyZWN0IHVzYWdlIG9mIGFib3ZlLgogICAKMjAwMS0wNC0wOSAwOTo0MyAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSBuZXcgc3VpdGUgb2YgZnVuY3Rpb25zIGFzbl9yZWFsbG9jX3JlYnVpbGRfPHR5cGU+LCB3aGljaCBwZXJmb3JtCiAgICAgICByZXZlcnNlIGVuY29kaW5nIGludG8gYSBidWZmZXIgYW5kIGdyb3cgaXQgaWYgdGhlcmUgaXMgbm90IGVub3VnaAogICAgICAgc3BhY2UgZm9yIHRoZSBlbmNvZGluZy4KICAgCjIwMDEtMDQtMDYgMTI6MTIgIGhhcmRha2VyCgogICAqIEFHRU5ULnR4dCAsIENPUFlJTkcgLCBDaGFuZ2VMb2cgLAogICBFWEFNUExFLmNvbmYuZGVmICwgRkFRICwgTkVXUyAsIFBPUlRJTkcgLAogICBSRUFETUUgLCBSRUFETUUuYWdlbnR4ICwgUkVBRE1FLnNubXB2MyAsIGNvbmZpZ3VyZQogICAsIGNvbmZpZ3VyZS5pbiAsIHNlZHNjcmlwdC5pbiAsIHZlcnNpb24uaAogICAsIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L2RzX2FnZW50LmggLAogICBhZ2VudC9zbm1wX2FnZW50LmMgLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCAsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwogICAsIGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4ICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMgLCBhcHBzL3NubXBkZWx0YS5jCiAgICwgYXBwcy9zbm1wdGVzdC5jICwgYXBwcy9zbm1wdHJhcGQuYyAsCiAgIGxvY2FsL01ha2VmaWxlLmluICwgbG9jYWwvbWliMmMgLCBsb2NhbC9zbm1wY29uZgogICAsIGxvY2FsL3RrbWliICwgbG9jYWwvd2VzcmVzdGFydCAsIG1hbi9zbm1wY21kLjEKICAgLCBtYW4vc25tcGQuY29uZi41LmRlZiAsIG1hbi9zbm1wZGVsdGEuMSAsCiAgIG1pYnMvcmZjbGlzdCAsIG1pYnMvcmZjbWlicy5kaWZmICwgc25tcGxpYi9taWIuYyAsCiAgIHNubXBsaWIvcGFyc2UuYyAsIHNubXBsaWIvc25tcF9hcGkuYyAsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwgc25tcGxpYi9zbm1wdXNtLmMgLAogICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2ggLCB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldDoKCiAgIG1lcmdlMyAtPiBtZXJnZTQuICBJIGRvbid0ICp0aGluayogSSBicm9rZSBhbnl0aGluZy4KICAgICAtIFRoZSBtYWluIGxpbmUgc2hvdWxkIG5vdyBjb250YWluIGFsbCB0aGUgNC4yLjEgcGF0Y2hlcy4KICAgICAtIEkgbWF5IGRvdWJsZSBjaGVjayB0aGlzIGF0IGEgbGF0ZXIgZGF0ZS4KICAgCjIwMDEtMDQtMDUgMDY6MzcgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENoYW5nZSAnTGluZScgdmFyaWFibGUgbmFtZSwgdG8gYXNzaXN0IHdpdGggTWFjIHBvcnQuCiAgIAoyMDAxLTA0LTA1IDA2OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYyAsIHBhc3NfcGVyc2lzdC5jOgoKICAgSGFuZGxlIHNldHRpbmcgbnVsbCBzdHJpbmcgdmFsdWVzIHZpYSB0aGUgJ3Bhc3MnIG1lY2hhbmlzbS4gKFN1cHBvcnQjNDA2NzI4KQogICBBbHNvIGhhbmRsZSBlbWJlZGRlZCB3aGl0ZXNwYWNlIGluIHN1Y2ggdmFsdWVzLgogICBBbHNvIGFwcGxpZWQgdG8gJ3Bhc3NfcGVyc2lzdCcuCiAgIAoyMDAxLTA0LTA1IDA2OjA3ICBkdHMxMgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudF90cmFwLmMgLCBrZXJuZWwuYwogICAsIG1pYl9tb2R1bGVzLmMgLCBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50LmgKICAgLCBzbm1wX3ZhcnMuYyAsIG1pYmdyb3VwL3V0aWxfZnVuY3MuYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiAgICwgbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMgLCBtaWJncm91cC9ob3N0L2hyX25ldHdvcmsuYwogICAsIG1pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYyAsIG1pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiAgICwgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyAsIG1pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYwogICAsIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsIG1pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2hwdXguYyAsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIEtlZXAgb25lIG9mIHRoZSBwaWNraWVyIGNvbXBpbGVycyAoSFAncyBhQ0MpIGhhcHB5LgogICAKMjAwMS0wNC0wNSAwNjowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgRW5zdXJlIHRoYXQgY2hlY2tpbmcgZm9yICdzdGF0dmZzJyBpcyBkb25lIGNvbnNpc3RlbnRseQogICAKMjAwMS0wNC0wNSAwNjowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgZW5zdXJlIHRoYXQgJ2V4ZWNfY29tbWFuZCcgaXMgdXNlZCBjb25zaXN0ZW50bHkgd2l0aCB0aGUgYXZhaWxhYmlsaXR5IG9mIGV4ZWN2CiAgIChBIGNsZWFuZXIgYXBwcm9hY2ggdGhhbiB0aGUgcHJldmlvdXMgcGF0Y2gpCiAgIAoyMDAxLTA0LTA1IDA2OjAxICBkdHMxMgoKICAgKiBhZ2VudC86IGF1dG9fbmxpc3QuYyAsIGF1dG9fbmxpc3QuaDoKCiAgIGZpeCBmb3IgYXV0b19ubGlzdCBib2d1cyBkZWZpbml0aW9ucyBmb3IgbWFjaGluZXMgd2l0aG91dCBubGlzdC4KICAgCjIwMDEtMDQtMDUgMDQ6NTEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgIC0gc2F2ZSBhIHN0cmNweSgpIGFuZCBhbGxvdyBsb25nIG9jdGV0IHN0cmluZyB2YWx1ZXMgd2l0aG91dCBjcmFzaGluZwogICAgICAodGhvdWdoIHRoZXJlIGFyZSBzdGlsbCBwcm9ibGVtcyBkdWUgdG8gdGhlIGxpYmVyYWwgdXNlIG9mIGZpeGVkCiAgICAgIHNpemUgYnVmZmVycyB3aXRoIG5vIGJvdW5kcyBjaGVja2luZyBhbGwgb3ZlciB0aGUgcGxhY2UuICBTaWdoKS4KICAgCjIwMDEtMDQtMDQgMDY6NDYgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAtIGNhbGwgZXh0ZXJuYWwgc2lnbmFsIGhhbmRsZXJzIGJlZm9yZSBjYWxsaW5nIHNubXBfc2VsZWN0X2luZm8oKSwKICAgICAgcmF0aGVyIHRoYW4gYWZ0ZXIgY2FsbGluZyBzbm1wX3NlbGVjdF9pbmZvKCkgYnV0IGJlZm9yZSBzZWxlY3QoKS4KICAgICAgVGhpcyBmaXhlcyBhIHBvdGVudGlhbCBwcm9ibGVtIHRoYXQgY291bGQgYXJpc2UgaWYgYSBzaWduYWwgaGFuZGxlcgogICAgICBjbG9zZWQgYSBzZXNzaW9uLCB3aGljaCB3b3VsZCBjYXVzZSBzZWxlY3QoKSB0byByZXR1cm4gLTEgd2l0aAogICAgICBFQkFERiwgYW5kIHRodXMgdGVybWluYXRlIHRoZSBhZ2VudC4KICAgCjIwMDEtMDQtMDMgMDk6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIEVuc3VyZSB0aGF0IHRoZSAnZXh0bXAnIGNvbW1hbmQgdmFyaWFibGUgaXMgYWNjZXNzaWJsZSBvbiBzeXN0ZW1zIHdpdGhvdXQgRVhFQ1YuCiAgIAoyMDAxLTA0LTAzIDA5OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDMgMDk6MjIgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYyAsIHNubXB0cmFwZF9sb2cuYzoKCiAgIEtlZXAgb25lIG9mIHRoZSBwaWNraWVyIGNvbXBpbGVycyAoSFAncyBhQ0MpIGhhcHB5LgogICAKMjAwMS0wNC0wMyAwOToxNSAgZHRzMTIKCiAgICogc25tcGxpYi86IG1pYi5jICwgcmVhZF9jb25maWcuYyAsIHNubXBUQ1BEb21haW4uaAogICAsIHNubXBVRFBEb21haW4uYyAsIHNubXBVbml4RG9tYWluLmMgLAogICBzbm1wVW5peERvbWFpbi5oICwgc25tcF9hcGkuYyAsIHNubXBfbG9nZ2luZy5jICwKICAgc25tcF90cmFuc3BvcnQuYyAsIHNubXBfdHJhbnNwb3J0LmggLCBzeXN0ZW0uYzoKCiAgIEtlZXAgb25lIG9mIHRoZSBwaWNraWVyIGNvbXBpbGVycyAoSFAncyBhQ0MpIGhhcHB5LgogICAKMjAwMS0wNC0wMyAwNjozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmM6CgogICBQbHVnIGZpbGUtZGVzY3JpcHRvciBsZWFrIHdoZW4gdXNpbmcgY2FjaGVkIGRhdGEuICAoQnVnIzQxMjAwMCkKICAgCjIwMDEtMDQtMDIgMTA6MTEgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgIC0gY2hlY2sgZm9yIGxpbWl0cy5oIHByb3Blcmx5CiAgIAoyMDAxLTA0LTAyIDEwOjEwICBqYnBuCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zOgoKICAgIC0gbWlub3IgdHlwZWZhY2UgY2hhbmdlcwogICAKMjAwMS0wMy0zMSAwNjoyNyAgamJwbgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMzoKCiAgICAtIHVwZGF0ZSBkb2N1bWVudGF0aW9uIG9mIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzIHRvIHJlZmxlY3QKICAgICAgY3VycmVudCBiZWhhdmlvdXIKICAgCiAgICAgICAgKiogTk9URTogY3VycmVudGx5IHJldHVybnMgY29udHJvbCB0byB1c2VyIHdoZW4gYW4gYWxhcm1zIHJ1bnMgKioKICAgICAgICAqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKgogICAgICAgICoqICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgbWF5IGNoYW5nZSAgICAgICAgICAgICAgICAgICAgICoqCiAgIAoyMDAxLTAzLTMxIDA2OjI1ICBqYnBuCgogICAqIG1hbi9zbm1wX2FsYXJtLjM6CgogICAgLSBkb2N1bWVudCB0aGUgc25tcF9hbGFybV9yZWdpc3Rlcl9ociBmdW5jdGlvbgogICAKICAgIC0gZXhwYW5kIHRoZSBOT1RFUyBzZWN0aW9uIGRpc2N1c3NpbmcgdXNlIG9mIFNJR0FMUk0gKG9yIG5vdCkKICAgCjIwMDEtMDMtMzEgMDY6MTcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgLSBNYWtlIHVzZSBvZiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgdHJhbnNwb3J0IGRpc2Nvbm5lY3QKICAgICAgaW5kaWNhdGlvbiB0byBzaHV0IGRvd24gQWdlbnRYIHNlc3Npb25zIGNsZWFubHkgYW5kIGNhbmNlbCBhbGwKICAgICAgY2FsbGJhY2tzIHdoaWNoIG1ha2UgcmVmZXJuY2UgdG8gdGhlIEFnZW50WCBzZXNzaW9uLgogICAKMjAwMS0wMy0zMSAwNjoxNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgLSBGaXggbXVsdGlwbGUgZnJlZSgpIG9mIHBhcnRzIG9mIHRoZSBzdWJzZXNzaW9uIGJ5IHplcm9pbmcgb3V0CiAgICAgIGZpZWxkcyB0aGF0IHdlIGRvbid0IHVzZS4KICAgCiAgICAtIE1ha2UgdXNlIG9mIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB0cmFuc3BvcnQgZGlzY29ubmVjdAogICAgICBpbmRpY2F0aW9uIHRvIHNodXQgZG93biBBZ2VudFggc2Vzc2lvbnMgY2xlYW5seS4KICAgCjIwMDEtMDMtMzEgMDY6MTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgLSBNYWtlIHVzZSBvZiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgdHJhbnNwb3J0IGRpc2Nvbm5lY3QKICAgICAgaW5kaWNhdGlvbiB0byBzaHV0IGRvd24gQWdlbnRYIHNlc3Npb25zIGNsZWFubHkuCiAgIAoyMDAxLTAzLTMxIDA2OjExICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAtIEZpeCBtZW1vcnkgbGVhayBpbiBoYW5kbGVfb25lX3ZhciB3aGVyZSBsb25nIHZhcmJpbmRzIHdlcmVuJ3QKICAgICAgY29ycmVjdGx5IGZyZWUoKWQuCiAgIAogICAgLSBDaGFuZ2UgYmVoYXZpb3VyIG9mIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzIHNvIHRoYXQgYWxhcm1zIHJ1bgogICAgICBjb3JyZWN0bHkuCiAgIAogICAgICAgICoqIE5PVEU6IGN1cnJlbnRseSByZXR1cm5zIGNvbnRyb2wgdG8gdXNlciB3aGVuIGFuIGFsYXJtcyBydW5zICoqCiAgICAgICAgKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKioKICAgICAgICAqKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIG1heSBjaGFuZ2UgICAgICAgICAgICAgICAgICAgICAqKgogICAKMjAwMS0wMy0zMSAwNjowNSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgLSBDaGFuZ2VkIHBhY2tldCBoYW5kbGluZyBvbiBzdHJlYW0tbGlrZSB0cmFuc3BvcnRzIHNvIHRoYXQgYWxsCiAgICAgIGNvbXBsZXRlIHJlY2VpdmVkIHBhY2tldHMgYXJlIHByb2Nlc3NlZDoKICAgCiAgICAgIF9zZXNzX3JlYWQgaXMgcmVmYWN0b3JlZCBpbnRvIHR3byBmdW5jdGlvbnM6IF9zZXNzX3JlYWQgcmVtYWlucwogICAgICByZXNwb25zaWJsZSBmb3IgcmVhZGluZyBkYXRhIGZyb20gdGhlIHRyYW5zcG9ydCBsYXllciwgYnV0IHRoZW4KICAgICAgY2FsbHMgKHBlcmhhcHMgbW9yZSB0aGFuIG9uY2UpIF9zZXNzX3Byb2Nlc3NfcGFja2V0IHRvIGRpc3BhdGNoCiAgICAgIGVhY2ggcGFja2V0IHJlYWQuCiAgIAogICAgLSBUaGUgcHJlc2VuY2Ugb2YgYSBzZXNzaW9uIHdpdGggYSBidWZmZXJlZCBwYXJ0aWFsIHBhY2tldCBubyBsb25nZXIKICAgICAgY2F1c2VzIHNubXBfc2VsZWN0X2luZm8gdG8gcmV0dXJuIHdpdGggYSB0aW1lb3V0IG9mIHplcm8uCiAgIAogICAgLSBGcmVlIHRoZSBzdWJzZXNzaW9ucyBvZiBhIHNlc3Npb24gd2hlbiBkb2luZyBhbiBzbm1wX3Nlc3NfY2xvc2U7CiAgICAgIHRoaXMgZml4ZXMgYW4gQWdlbnRYIG1lbW9yeSBsZWFrIHdoZW4gc3ViYWdlbnRzIGNvbWUgYW5kIGdvLgogICAKICAgIC0gUGVyZm9ybSBjYWxsYmFja3Mgd2l0aCBhbiBvcGVyYXRpb24gYXJndW1lbnQgb2YKICAgICAgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHdoZW4geW91IGdldCBhIHRyYW5zcG9ydCBkaXNjb25uZWN0CiAgICAgIGluZGljYXRpb24uCiAgIAoyMDAxLTAzLTMxIDA1OjU2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIE1hZGUgdHJhbnNwb3J0IGRvbWFpbiBjb25zdAogICAKMjAwMS0wMy0zMSAwNTo1NSAgamJwbgoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBGaXggbWVtb3J5IGxlYWsgdGhhdCBjYW4gb2NjdXIgd2hlbiBkZXJlZ2lzdGVyaW5nIGNhbGxiYWNrcwogICAKMjAwMS0wMy0zMCAwODowNSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmFnZW50eDoKCiAgIGZpbGUgUkVBRE1FLmFnZW50eCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTI5IDIxOjQzICBoYXJkYWtlcgoKICAgKiBJU1NVRVMgKFY0LTItcGF0Y2hlcy4xKSwgSVNTVUVTOgoKICAgcm0gSVNTVUVTCiAgIAoyMDAxLTAzLTI5IDA4OjIxICBzbGlmCgogICAqIHdpbjMyL2xpYnNubXBfZGxsLzogbGlic25tcC5kZWYgKFY0LTItcGF0Y2hlcy4zKSwgbGlic25tcC5kZWY6CgogICBBZGQgdmFjbV9pc19jb25maWd1cmVkLgogICAKMjAwMS0wMy0yOCAwNjoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYyAsIG1hc3Rlcl9yZXF1ZXN0LmM6CgogICAgLSB1c2UgU05NUF9DQUxMQkFDS19PUF88bmFtZT4gY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTAzLTI4IDA2OjAwICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgLSB1c2UgU05NUF9DQUxMQkFDS19PUF88bmFtZT4gY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTAzLTI4IDA1OjM2ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcGQuYzoKCiAgICAtIHVzZSBTTk1QX0NBTExCQUNLX09QXzxuYW1lPiBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMDMtMjggMDU6MDYgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfY2xpZW50LmMgLCBzbm1wX2FwaS5jOgoKICAgIC0gdXNlIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0wMy0yOCAwNTowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgLSByZW5hbWUgY2FsbGJhY2sgb3BlcmF0aW9ucyB0byBTTk1QX0NBTExCQUNLX09QXzxuYW1lPgogICAgLSBhZGQgbmV3IG9wZXJhdGlvbnMgU05NUF9DQUxMQkFDS19PUF9DT05ORUNULCBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QKICAgIC0gYWRkIGxlZ2FjeSBkZWZpbml0aW9ucyBmb3IgUkVDRUlWRURfTUVTU0FHRSwgVElNRURfT1VULCBTRU5EX0ZBSUxFRAogICAKMjAwMS0wMy0yNyAxNTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlT2JqZWN0c1RhYmxlLmMgLAogICBtdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGNoYW5nZSBmcHJpbnRmIC0+IHNubXBfbG9nLgogICBEb24ndCBhbGxvdyBtb2RpZmljYXRpb25zIG9mIHJlYWQtb25seSByb3dzIGluIG10ZU9iamVjdHNUYWJsZS4KICAgCjIwMDEtMDMtMjcgMTA6NTUgIGhhcmRha2VyCgogICAqIGFnZW50LzogZHNfYWdlbnQuaCAsIG1pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYwogICAsIG1pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaCAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYzoKCiAgIFN1cHBvcnQgZm9yIG5ldyBmZWF0dXJlcyBpbiB0aGUgRElTTUFOLUVWRU5ULU1JQiBjb2RlOgogICAgIE5ldyBzbm1wZC5jb25mIHRva2VuczoKICAgICAgLSBtb25pdG9yIFstbyBvaWQuLi5dIFstdSB1c2VyXSBvaWQgWyg9fCE9fDw9fC4uLikgVkFMVUVdLgogICAgICAtIGRlZmF1bHRNb25pdG9ycyB5ZXMKICAgCjIwMDEtMDMtMjcgMTA6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBNb3ZlZCAqIGZyb20gYmVnaW5uaW5nIG9mIHJvdXRpbmUgdG8gdGhlIHNhbWUgbGluZSBhcyB0aGUgcmV0dXJuCiAgIHZhcmlhYmxlIGRlY2xhcmF0aW9uLiAgV2FzIGNhdXNpbmcgZXRhZ3MgZ3JpZWYgdGhlIG90aGVyIHdheS4KICAgCjIwMDEtMDMtMjcgMTA6NTIgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgcGF0Y2ggZnJvbSBLZW4gSG9ybnN0ZWluOiB1c2UgJXMgaW5zdGVhZCBvZiBAcyBmb3Igc2VhcmNoL3JlcGxhY2UgZGVsaW1pdGVycy4KICAgCjIwMDEtMDMtMjcgMTA6MjkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBVc2Ugc25tcF9sb2cgd2l0aCAlcyB0byBwcmV2ZW50ICUgZXhwYW5zaW9uIGluIG9jdGV0IHN0cmluZ3MgY29udGFpbmluZyBhICVzLgogICB0cmFwX2ZtdF9mcmVlIG5lZWRzICgpcy4KICAgCjIwMDEtMDMtMjcgMDg6MTMgIGR0czEyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICBIYW5kbGUgbm9uLXJlc3BvbnNpdmUgQWdlbnRYIHN1Yi1hZ2VudHMgbW9yZSByb2J1c3RseS4KICAgICAgKEJhc2VkIG9uIHN1Z2dlc3Rpb25zIGZyb20gSGFycmllIEhhemV3aW5rZWwgJiBQYXVsIFJhc211c3NlbikKICAgCjIwMDEtMDMtMjcgMDg6MDMgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEF2b2lkIGRvdWJsZS1mcmVlaW5nIG9mIGNhY2hlZCBhZGRyZXNzIHN0cmluZ3MuCiAgICAgIChKb2huJ3MgaW1wcm92ZW1lbnQgdG8gbXkgc3VnZ2VzdGVkIGZpeCkuCiAgIAoyMDAxLTAzLTI3IDAyOjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIFJlc2V0IGNvdW50IG9mIGF1dGhvcml6ZWQgcGVlcnMgb24gY2xvc2Vkb3duLiAgKFRoYW5rcyB0byBWbGFkIFR1bmlrKQogICAKMjAwMS0wMy0yNiAxODowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaAogICAoVjQtMi1wYXRjaGVzLlsxLDIsMV0pLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIHNubXBsaWIvdmFjbS5jICwgc25tcGxpYi92YWNtLmg6CgogICBGaXhlZCB2YWNtIHRvIGRyb3AgdjEvdjJjIHBhY2tldHMgcHJvcGVybHkgd2hlbiBubyBjb20yc2VjIGVudHJpZXMgYXJlIGZvdW5kLgogICAKMjAwMS0wMy0yNiAxMTowNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBpcGYtbW9kLnBsIChWNC0yLXBhdGNoZXMuMSksIGlwZi1tb2QucGw6CgogICBhZGQgdXNhZ2UgY29tbWVudCBhdCB0b3AKICAgCjIwMDEtMDMtMjIgMDc6NTUgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFVzZSBBU05fT0NURVRfU1RSIHJhdGhlciB0aGFuIHRoZSBoaXN0b3JpYyBBU05fQklUX1NUUiBmb3IgJ2InIG9iamVjdCB2YWx1ZXMKICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzLgogICAKMjAwMS0wMy0yMiAwNzo0NiAgZHRzMTIKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMgKFY0LTItcGF0Y2hlcy4zKSwgYWdlbnRfdHJhcC5jOgoKICAgRml4IGZvciBtaW5vciBtZW1vcnkgbGVhayB3aXRoIHRyYXAtcmVsYXRlZCB2YXJiaW5kIHZhbHVlcy4KICAgVGhhbmtzIHRvIEpvaG4gVmlsbGFsb3ZvcyAoYW5kIHRoZSBJbnRlbCBTTk1QIHRlYW0pCiAgIAoyMDAxLTAzLTIxIDE3OjMwICBkcmllaHVpcwoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQXZvaWQgY3Jhc2ggaW4gc25tcF9zaHV0ZG93biBvbiBwbGF0Zm9ybXMgdGhhdCBjaGVjayBwb2ludGVyIHZhbGlkaXR5CiAgIGluIGZyZWUoMyksIGUuZy4gRnJlZUJTRC4KICAgCjIwMDEtMDMtMjEgMDg6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYwogICAsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiAgICwgc25tcGxpYi9yZWFkX2NvbmZpZy5oICwgc25tcGxpYi9zbm1wdXNtLmMgLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgY29weV9ud29yZCBjcmVhdGVkIHRoYXQgY2hlY2tzIGJ1ZmZlciBsZW5ndGhzLgogICBNYWRlIGV2ZXJ5dGhpbmcgdXNlIGl0LgogICAKMjAwMS0wMy0yMSAwODozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICBLU00gcGF0Y2ggZnJvbSBLZW4gSG9ybnN0ZWluCiAgIAoyMDAxLTAzLTIwIDA5OjEzICBqYnBuCgogICAqIGFnZW50Ly5jdnNpZ25vcmU6CgogICBJZ25vcmUgUHVyaWZ5IGFuZCBORlMgc3R1ZmYKICAgCjIwMDEtMDMtMTYgMTA6MTQgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgYWRkZWQgTUlUX05FV19DUllQVE8gKGZvciBrc20pIGRlZmluaXRpb24gd2hpY2ggd2FzIG1pc3NpbmcKICAgCjIwMDEtMDMtMTYgMDI6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZml4IHJpZGljdWxvdXMgbWVtb3J5IGxlYWsgaW4gZGlzY29udGludWl0eSBwcm9jZXNzaW5nCiAgIAoyMDAxLTAzLTE1IDExOjA0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXA6CgogICB3aG9vcHMuICBNaXNzZWQgYSBtZXJnZSBjb25mbGljdCBsaW5lCiAgIAoyMDAxLTAzLTE1IDEwOjU5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUgLCBSRUFETUUud2luMzIgLCBhZ2VudC9taWJfbW9kdWxlcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsIGFwcHMvc25tcHRyYXBkLmMgLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYyAsIGFwcHMvc25tcG5ldHN0YXQvaWYuYyAsCiAgIG1hbi9zbm1wLmNvbmYuNS5kZWYgLCBtYW4vc25tcGNtZC4xICwgbWFuL3NubXB0cmFwZC44CiAgICwgbWlicy9JQU5BaWZUeXBlLU1JQi50eHQgLCBtaWJzL01UQS1NSUIudHh0ICwKICAgbWlicy9NYWtlZmlsZS5taWIgLCBtaWJzL1JFQURNRS5taWJzICwKICAgbWlicy9UVU5ORUwtTUlCLnR4dCAsIG1pYnMvaWFuYWxpc3QgLCBtaWJzL21pYmZldGNoCiAgICwgbWlicy9yZmNsaXN0ICwgbWlicy9yZmNtaWJzLmRpZmYgLCBtaWJzL3NtaXN0cmlwCiAgICwgcGVybC9TTk1QL1NOTVAueHMgLCBzbm1wbGliL2FzbjEuYyAsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwgc25tcGxpYi9taWIuYyAsCiAgIHNubXBsaWIvbWliLmggLCBzbm1wbGliL3BhcnNlLmMgLCBzbm1wbGliL3NubXBfYXBpLmMKICAgLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYwogICAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmggLCBzbm1wbGliL3NubXB2My5jICwKICAgc25tcGxpYi9zeXN0ZW0uaCAsIHRlc3RpbmcvZXZhbF90b29scy5zaCAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAgLCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cAogICAsIHdpbjMyL2NvbmZpZy5oICwgd2luMzIvbWliX21vZHVsZV9jb25maWcuaCAsCiAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCAsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCAsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmICwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZiAsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kc3A6CgogICBtZXJnZSBmcm9tIHBhdGNoZXMgYnJhbmNoOiBtZXJnZTItPjMuCiAgIAoyMDAxLTAzLTE1IDEwOjIyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaDoKCiAgIGV4dHJhIG1lbWJlcnMgZm9yIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAKMjAwMS0wMy0xNSAwNzo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcyB0byBydW4gc2lnbmFsIGhhbmRsZXJzIGVhcmxpZXIKICAgCjIwMDEtMDMtMTQgMTQ6MzcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5oIChWNC0yLXBhdGNoZXMuMiksIGFnZW50X3RyYXAuaDoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6IG1ha2Ugc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycyBhIHB1YmxpYyBmbi4KICAgCjIwMDEtMDMtMTQgMTI6MTYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgVXNlIGNvbmZpZy5oLCBkb24ndCB1c2UgdWNkLXNubXAgZGlyZWN0b3J5IHRvIGJ1aWxkIGluIHRoZSBtaWJncm91cCB0cmVlLgogICAKMjAwMS0wMy0xNCAxMTowNSAgc2xpZgoKICAgKiB0ZXN0aW5nLzogTWFrZWZpbGUuaW4gLCBSVU5URVNUUyAsIFRFU1RDT05GLnNoCiAgICwgZXZhbF9vbmVzY3JpcHQuc2ggLCBldmFsX3Rvb2xzLnNoOgoKICAgbWVyZ2UgdGhlIHRlc3Qgc2NyaXB0IGNoYW5nZXMgbWFkZSBpbiB0aGUgVjQtMi1wYXRjaGVzIGJyYW5jaC4KICAgCjIwMDEtMDMtMTQgMTA6NTcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgQ2hhbmdlIHRvIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZyB0byBzdG9wIGl0IHJldHVybmluZyBUUlVFIGFsbCB0aGUKICAgdGltZQogICAKMjAwMS0wMy0xNCAxMDo1MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICAgLSByb3VnaCBzdGFiIGF0IGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAgLSBiYWlsIG91dCBvZiBnZXROZXh0LXR5cGUgbG9vcHMgb24gYSBiYWRUeXBlIGNvbmRpdGlvbgogICAKMjAwMS0wMy0xNCAxMDozNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmtyYjU6CgogICBrZXJiZXJvcyBSRUFETUUgZmlsZSBmcm9tIEtlbiBIb3Juc3RlaW4KICAgCjIwMDEtMDMtMTQgMTA6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmM6CgogICBHZXQgcmV0dXJuZWQgKnZhcl9sZW4gcmlnaHQgZm9yIG10ZVRyaWdnZXJEZWx0YURpc2NvbnRpbnVpdHlJRAogICAKMjAwMS0wMy0xNCAxMDoxOSAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jICwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jCiAgICwgYXBwcy9zbm1wdmFjbS5jICwgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMgLAogICBzbm1wbGliL3BhcnNlLmMgLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBwYXRjaCBzdWJtaXR0ZWQgYnkgSGFycmllIEhhemV3aW5rZWwgdG8gcXVpZXQgc29tZSB3YXJuaW5ncy4KICAgCjIwMDEtMDMtMTQgMTA6MTkgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggLCBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3NubXBrc20uYyAsCiAgIHNubXBsaWIvc25tcGtzbS5oOgoKICAgS1NNIHBhdGNoIGZyb20gS2VuIEhvcm5zdGVpbi4KICAgCjIwMDEtMDMtMTQgMDU6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zd3J1bi5jIChWNC0yLXBhdGNoZXMuNSksIGhyX3N3cnVuLmM6CgogICBGaXggTGludXggZmlsZSBkZXNjcmlwdG9yIGxlYWsgKHJlcG9ydGVkIGJ5IE9saXZlciBG5G5nZXIpCiAgIAoyMDAxLTAzLTE0IDA1OjIyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi8uY3ZzaWdub3JlOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMS0wMy0xNCAwMjoyMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBtdGVUcmlnZ2VyVGFibGUuYyAsCiAgIG10ZVRyaWdnZXJUYWJsZS5oOgoKICAgIC0gc2F2ZSBvcmlnaW5hbCBQRFUncyB0cmFuc3BvcnQgZG9tYWluIC0tIG5lY2Vzc2FyeSBmb3IKICAgICAgY29tbXVuaXR5IHN0cmluZyBwcm9jZXNzaW5nCiAgIAogICAgICBDQVVUSU9OOiBpbmNvbXBhdGlibGUgY2hhbmdlIGluIGZvcm1hdCBvZiBtdGVUcmlnZ2VyVGFibGUKICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbiBlbnRyeQogICAKICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIG10ZV9ydW5fdHJpZ2dlciBieSByZWxlYXNpbmcgUERVcwogICAKICAgIC0gc2VuZCAiYmFkIHR5cGUiIG5vdGlmaWNhdGlvbnMgaW4gc29tZSBjYXNlcwogICAKICAgIC0gb3RoZXIgbWlub3IgbWVtb3J5IGxlYWtzCiAgIAogICAgLSAiZGVsdGEiIHNhbXBsZVR5cGUgaGFuZGxlZCBmb3IgYm9vbGVhbiB0cmlnZ2VycwogICAKICAgIC0gbW9yZSAiWFhYOiIgY29tbWVudHMhCiAgIAoyMDAxLTAzLTEzIDEzOjUyICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IHN1cHBvcnQgZm9yIEludGVnZXIzMgogICAKMjAwMS0wMy0xMSAwODo0MyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF90cmFuc3BvcnQuYyAsIHNubXBfdHJhbnNwb3J0Lmg6CgogICBBZGQgYSBmdW5jdGlvbiB0byB0ZXN0IHdoZXRoZXIgYW4gT0lEIGNvcnJlc3BvbmRzIHRvIGEgc3VwcG9ydGVkIHRyYW5zcG9ydAogICBkb21haW4uCiAgIAoyMDAxLTAzLTExIDA3OjU1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5oOgoKICAgQWRkICNpbmNsdWRlcyB0byBtYWtlIHN0cnVjdCBzb2NrYWRkcl9pbiBjb21wbGV0ZQogICAKMjAwMS0wMy0xMSAwNzo1NCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmg6CgogICBSZW1vdmUgc3B1cmlvdXMgI2luY2x1ZGUKICAgCjIwMDEtMDMtMDkgMDc6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgRml4IHJ3dXNlciAtcyBtb2RlbCB0byBhY3R1YWxseSB3b3JrLgogICAKMjAwMS0wMy0wOSAwNTo1MiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIFNldCBhIFBEVSdzIG9wYXF1ZSBkYXRhIG9uIGEgdGNwX3JlY3Y7IHRoaXMgaXNuJ3QgbmVjZXNzYXJ5IHRvIHNlbmQKICAgcmVwbGllcyAoYmVjYXVzZSB0aGUgdW5kZXJseWluZyBzb2NrZXQgaXMgc3Ryb25nbHkgY29ubmVjdGVkKSBidXQgaWYKICAgeW91IGRvbid0IGRvIHRoaXMgdGhlbiB5b3UgY2FuJ3QgZG8gImNvbTJzZWMiIHR5cGUgcHJvY2Vzc2luZyBmb3IgUERVcwogICByZWNlaXZlZCBvbiBUQ1Agc2Vzc2lvbnMuLi4gaW50ZXJlc3RpbmcuCiAgIAoyMDAxLTAzLTA5IDAzOjMzICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgRml4IGJhZCBhc3N1bXB0aW9uIHRoYXQgY29tbXVuaXR5IHN0cmluZyBpcyB6ZXJvLXRlcm1pbmF0ZWQKICAgCjIwMDEtMDMtMDggMTU6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIGNvcnJlY3QgdmVyc2lvbiBzdGF0ZW1lbnRzIHRvIGluZGljYXRlIG5ldC1zbm1wLgogICAtIHJlbW92ZSBteSBuYW1lIGFzIGF1dGhvciAoSSdtIGNlcnRhaW5seSBub3QgdGhlIG9ubHkgb25lKQogICAtIGFkZCB3ZWIgYWRkcmVzcy4KICAgCjIwMDEtMDMtMDggMTU6MzEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gQWRkZWQgS2VuIEhvcm5zdGVpbidzIG5hbWUgdG8gY29udHJpYnV0ZXJzIGxpc3QuCiAgIC0gUmVtb3ZlZCBtaW5lIGZyb20gYmVpbmcgbGlzdGVkIHNlcGFyYXRlbHkuCiAgIAoyMDAxLTAzLTA4IDE0OjUxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsIHNubXBsaWIvc25tcGtzbS5jICwKICAgc25tcGxpYi9zbm1wa3NtLmg6CgogICBBZGRlZCBhIGtlcmJlcm9zIGJhc2VkIHNlY3VyaXR5IG1vZHVsZSAoa3NtKS4KICAgICBIb3dldmVyLCBOZWVkcyBsaWJyYXJpZXMgKC1sa3JiNSAtbGNvbV9lcnIpIG5vdCBiZWluZyBjaGVja2VkIGZvciBjdXJyZW50bHkuCiAgIAoyMDAxLTAzLTA4IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBXaG9vcHMuICBTaG91bGRudCBoYXZlIGEgbmVnYXRpb24gc2lnbiBvbiB0aGUgbW9zdCByZWNlbnQgY2hlY2tpbi4KICAgCjIwMDEtMDMtMDggMTQ6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIElmIE5PX1BST0JFIGlzIHNldCwgZG9uJ3QgZG8gYW55IHBvc3QgcHJvYmluZyBhY3Rpdml0aWVzIGVpdGhlciBsaWtlCiAgIHRpbWUgdXBkYXRpbmcgYW5kIHVzZXIgY3JlYXRpb24uCiAgIAoyMDAxLTAzLTA4IDA4OjE0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIFJlbW92ZSBzdHJkdXAoKXMgb24gc29tZSBzZXNzaW9uIHBhcmFtZXRlcnMgd2hpY2ggY2F1c2UgbWVtb3J5IGxlYWtzCiAgIChzaW5jZSBzbm1wX29wZW4gZGVlcCBjb3BpZXMgdGhlIGlucHV0IHNlc3Npb24gYW55d2F5KQogICAKMjAwMS0wMy0wOCAwODoxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgTWFrZSBzdXJlIHNlc3MgZmllbGQgb2YgbmV3IGVudHJpZXMgaXMgaW5pdGlhbGlzZWQgdG8gTlVMTC4KICAgCjIwMDEtMDMtMDggMDc6NDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgTWFrZSBjb25maWcgdG9rZW4gcGFyc2VyIHVwZGF0ZSB0aW1lc3RhbXAgb24gZW50cnkgaXQgY3JlYXRlczsKICAgbW92ZSB1cGRhdGVfdGltZXN0YW1wIGZ1bmN0aW9uLgogICAKMjAwMS0wMy0wNyAwNzo0NSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogUkVBRE1FICwgU05NUC5wbSAsIFNOTVAueHM6CgogICBQYXRjaCBmcm9tIEthcmwgU2NoaWxrZSB0byByZW1vdmUgdW5uZWVkZWQgdGltZXN0YW1wIHN1cHBvcnQKICAgCjIwMDEtMDMtMDYgMjA6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9jbGllbnQuYyAsIHNubXBfc2VjbW9kLmMKICAgLCBzbm1wX3NlY21vZC5oICwgc25tcHVzbS5jOgoKICAgc2VjbW9kIHN0cnVjdCBzeW1ib2wgbmFtZSBjaGFuZ2VzIHRvIHNvbWV0aGluZyBtb3JlIGludGVsbGlnaWJsZS4KICAgCjIwMDEtMDMtMDYgMTY6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9jbGllbnQuYzoKCiAgIC0gc2V0IHRoZSBkZWZhdWx0IHBkdSBzZWN1cml0eSBtb2RlbCB0byBTTk1QX0RFRkFVTFRfU0VDTU9ERUwgKG5vdCAwKS4KICAgLSBkb24ndCBmb3JjZSB0aGUgc2VjdXJpdHkgbW9kZWwgb2YgdGhlIHNlc3Npb24gb24gdGhlIHBkdSBpZiBhbHJlYWR5IHNldC4KICAgCjIwMDEtMDMtMDYgMTY6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgaG9wZWZ1bGx5IGZpeCB0byBhbGxvdyBvdGhlciAocmVnaXN0ZXJlZCkgc2VjdXJpdHkgbW9kZWxzIHRvIGJlIHVzZWQuCiAgIAoyMDAxLTAzLTA2IDA5OjIzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGRlZCBKb2huIE5heWxvbiB0byB0aGUgUkVBRE1FIGZpbGUuCiAgIAoyMDAxLTAzLTA2IDA5OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfc2VjbW9kLmg6CgogICBDcmVhdGUgYSBuZXcgc2VjbW9kIGNhbGxiYWNrIHdoZW4gYSB0aW1lb3V0IG9uIGEgcGR1IG9jY3Vycy4KICAgCjIwMDEtMDMtMDYgMDk6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIHByb3Blcmx5IGluc3RhbGwgc2VjbW9kIGhlYWRlciBsaXN0LgogICAKMjAwMS0wMy0wNiAwODo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX3NlY21vZC5oOgoKICAgLSBidWcgZml4ZXMgZm9yIHNlY21vZCByZWxhdGVkIHN0dWZmIChpdCBjb21waWxlcyBub3cgKG9wcHMpKS4KICAgCjIwMDEtMDMtMDYgMDg6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9zZWNtb2QuaDoKCiAgIC0gdHdvIG5ldyBzZWNtb2QgY2FsbGJhY2tzIGZvciBmcmVlaW5nIGEgcGR1IGFuZCBhIHNlc3Npb24uCiAgIC0gbW92ZSB0cmFuc3BvcnQgY2xvc2luZyBpbiBzbm1wX3Nlc3NfY2xvc2UoKSB0byBhZnRlciBwZW5kaW5nCiAgICAgcmVxdWVzdHMgYXJlIGZyZWVkL2Nsb3NlZCBpbiBjYXNlIHNvbWV0aGluZyBuZWVkcyB0byBtYWtlIHVzZSBvZiB0aGUKICAgICB0cmFuc3BvcnQgYmVmb3JlIGl0IGNsb3Nlcy4KICAgCjIwMDEtMDMtMDYgMDc6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9zZWNtb2QuaDoKCiAgIFBhc3MgaW4gcGR1IHRvIHNlY21vZCBlbmNvZGUvZGVjb2RlIHJvdXRpbmVzLgogICAKMjAwMS0wMy0wNiAwMzozNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBNb2RpZmllZCBmdW5jdGlvbiBJbnRlcmZhY2VfSW5kZXhfQnlfTmFtZSAoU29sYXJpcyBzcGVjaWZpYykgdG8gY29wZSBtb3JlCiAgIGdyYWNlZnVsbHkgd2l0aCBsYXJnZSBudW1iZXJzIG9mIGludGVyZmFjZXMuICBBbHNvIHN0b3BzIFB1cmlmeSBvbiBTb2xhcmlzCiAgIGNvbXBsYWluaW5nIGFib3V0IHVuaW5pdGlhbGlzZWQgbWVtb3J5IHJlYWRzLgogICAKMjAwMS0wMy0wNSAxNjozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmV2ZXJzZSBjYWxsYmFjayBvcmRlcmluZyBvZiBub3JtYWwgY2FsbGJhY2svc2VjbW9kIGNhbGxiYWNrCiAgIHByb2Nlc3NpbmcgaW4gc2Vzc19jb3B5KCkuCiAgIAoyMDAxLTAzLTA1IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfc2VjbW9kLmM6CgogICByZW1vdmUgdW51c2VkIGZyZWUgZnVuY3Rpb24gY2FsbHMgZm9yIHNlY3VyaXR5IG1vZHVsZSB1bnJlZ2lzdHJhdGlvbnMuCiAgIAoyMDAxLTAzLTA1IDE2OjE3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfc2VjbW9kLmg6CgogICBtaW5vciBBUEkgY2hhbmdlcyB0byB0aGUgcGx1Z2dhYmxlIHNlY3VyaXR5IG1vZGVsIGhhbmRsaW5nLgogICAKMjAwMS0wMy0wNSAxNjoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcHJvcGVybHkgcmVzcGVjdCB0aGUgRE9OVF9QUk9CRV9GTEFHLgogICAKMjAwMS0wMy0wNSAxNTozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX2FwaS5oICwgc25tcF9zZWNtb2QuaDoKCiAgIGFkZCBhIHNlc3Npb24gcG9pbnRlciB0byB0aGUgdjMgYnVpbGQgcm91dGluZXMuCiAgIAoyMDAxLTAzLTA1IDE1OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfYXBpLmg6CgogICBBZGQgYSBrcmI1IHNwZWNpZmljIGVycm9yIGNvZGUuCiAgIAoyMDAxLTAzLTA1IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBtYWtlIGNvbmZpZ3VyZSBwcm9wZXJseSBoYW5kbGUgcGx1Z2dhYmxlIHNlY3VyaXR5IG1vZHVsZXMKICAgCjIwMDEtMDMtMDUgMTQ6NDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIG1ha2UgY29uZmlndXJlIG1rZGlyIHNubXBsaWIgYmVmb3JlIGNyZWF0aW5nIGEgZmlsZSBpbiBpdAogICAKMjAwMS0wMy0wNSAxNDo0NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgbWFrZSBjb25maWd1cmUgcmVzcGVjdCBub24tbG9jYWwgc3JjZGlycyBmb3IgdHJhbnNwb3J0L3NlY21vZHMKICAgCjIwMDEtMDMtMDUgMTA6NDAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggLCBjb25maWcuaC5pbiAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIGFnZW50L2FnZW50X2luZGV4LmMgLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsCiAgIGFnZW50L21pYl9tb2R1bGVzLmMgLCBhZ2VudC9zbm1wX3ZhcnMuYyAsCiAgIGFnZW50L3NubXBkLmMgLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMKICAgLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jICwgYXBwcy9zbm1wdHJhcGQuYwogICAsIHNubXBsaWIvLmN2c2lnbm9yZSAsIHNubXBsaWIvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL2NhbGxiYWNrLmggLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCAsCiAgIHNubXBsaWIvbGNkX3RpbWUuYyAsIHNubXBsaWIvc2NhcGkuYyAsCiAgIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvc25tcF9hcGkuaCAsCiAgIHNubXBsaWIvc25tcHVzbS5jICwgc25tcGxpYi9zbm1wdXNtLmggLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgc3VwcG9ydCBmb3IgcGx1Z2dhYmxlIHNlY3VyaXR5IG1vZGVscy4gIEN1cnJlbnRseSBvbmx5IHRoZSBVU00gaXMKICAgYXZhaWxhYmxlLCBidXQgYSBuZXcga2VyYmVyb3MgYmFzZWQgc2VjdXJpdHkgbW9kZWwgd2lsbCBiZSBhdmFpbGFibGUKICAgc2hvcnRseS4gIFRoZXNlIGNoYW5nZXMgc2ltcGx5IG1ha2UgaXQgcG9zc2libGUgdG8gdXNlIG1vcmUgdGhhbiBvbmUKICAgc2VjdXJpdHkgc2VydmljZS4KICAgCjIwMDEtMDMtMDUgMTA6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX3NlY21vZC5jICwgc25tcF9zZWNtb2QuaDoKCiAgIEFkZGVkIEpvaG4gTmF5bG9uIHRvIHRoZSBhdXRob3JzIGxpc3QuCiAgIAoyMDAxLTAzLTA1IDEwOjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZW51bS5oOgoKICAgQ29tbWVudCByZS1hcnJhbmdpbmcgdG8gYWN0dWFsbHkgYmUgbmVhciB0aGUgZnVuY3Rpb25zIHRoZXkncmUgZGVzY3JpYmluZy4KICAgCjIwMDEtMDMtMDUgMDY6MTAgIGpicG4KCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIE1vZGlmaWVkIGdldF9teWFkZHIoKSBmdW5jdGlvbiB0byBjb3BlIG1vcmUgZ3JhY2VmdWxseSB3aXRoIGxhcmdlIG51bWJlcnMKICAgb2YgaW50ZXJmYWNlcywgYW5kIHdpdGggdGhlIHBvc3NpYmlsaXR5IG9mIG5vbi1JUHY0IGFkZHJlc3NlcyBvbiBzb21lCiAgIGludGVyZmFjZXMuICBBbHNvIHN0b3BzIFB1cmlmeSBvbiBTb2xhcmlzIGNvbXBsYWluaW5nIGFib3V0IHVuaW5pdGlhbGlzZWQKICAgbWVtb3J5IHJlYWRzLiAgVXNlICJvZmZpY2lhbCIgZGVmaW5pdGlvbiBvZiBJTkFERFJfTE9PUEJBQ0suCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy9pYW5hbGlzdDoKCiAgIGZpbGUgaWFuYWxpc3Qgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIGZpbGUgcmZjbGlzdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy9SRUFETUUubWliczoKCiAgIGZpbGUgUkVBRE1FLm1pYnMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvcmZjbWlicy5kaWZmOgoKICAgZmlsZSByZmNtaWJzLmRpZmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0wMSAxOToyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYyAsIHNubXBfYXBpLmM6CgogICBGaXggc25tcF9vaWRfY29tcGFyZSBhbmQgcmV2ZXJzZSBlbmNvZGluZ3MgdG8gZGVhbCB3aXRoIG51bWJlcnMgPiAyXjMxLgogICAKMjAwMS0wMi0yOCAyMzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMgLCByZWFkX2NvbmZpZy5oICwKICAgc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIGltcGxlbWVudGVkIHNubXBfY29uZmlnKGNoYXIgKmxpbmUpIHRvIHBhcnNlIGEgLmNvbmYgY29uZmlndXJhdGlvbgogICAgIGxpbmUgYXQgYW55IHRpbWUgaW4gdGhlIGNvZGUgKGhhbmRsZXJzIG11c3QgYmUgcmVnaXN0ZXJlZCBiZWZvcmUgaGFuZCkuCiAgIC0gaW1wbGVtZW50ZWQgc25tcF9jb25maWdfcmVtZW1iZXIoY2hhciAqbGluZSkgdG8gbWVtb3JpemUgaXQgZm9yCiAgICAgbGF0ZXIgdXNlLgogICAtIHJlYWRfY29uZmlncywgZXQgYWwsIHdpbGwgYXV0b21hdGljYWxseSBjYWxsIHRoZW0gYWZ0ZXIgcmVhZGluZwogICAgIGV2ZXJ5dGhpbmcgZWxzZS4KICAgLSBBZGRlZCBhIC1ZIGZsYWcgdG8gc25tcF9wYXJzZV9hcmdzIHRvIHN0b3JlIHJlYWQgY29uZmlnIGRpcmVjdGl2ZXMKICAgICBmb3IgbGF0ZXIgdXNlLCB0aHVzIGFsbG93aW5nIHlvdSB0byBzcGVjaWZ5IC5jb25mIGRpcmVjdGl2ZXMgb24gdGhlCiAgICAgY29tbWFuZCBsaW5lLgogICAKMjAwMS0wMi0yNyAwNzoyOCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBBdm9pZCBpbmZpbml0ZSBsb29wIHdpdGggQWdlbnRYIHN1YmFnZW50cyBhbmQgVkFDTSBjaGVja2luZyBpbnRlcmFjdGlvbi4KICAgKEZpeCBwcm92aWRlZCBieSBGcmFuayBTdHJhdXNzKQogICAKMjAwMS0wMi0yMSAxNToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHVjZC1zbm1wLWluY2x1ZGVzLmggKFY0LTItcGF0Y2hlcy4xKSwKICAgdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzgwNSBmcm9tIGJjb2xsYXI6IGFkZCBzeXMvdGltZS5oIHRvIHVjZC1zbm1wLWluY2x1ZGVzLmgKICAgCjIwMDEtMDItMjEgMTU6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBpbnQ2NC5jIChWNC0yLXBhdGNoZXMuMiksIGludDY0LmM6CgogICBmaXggYnVnICMxMzM0MTYgKHU2NFN1YnRyYWN0aW9uIG1hdGgpIGFzIHN1Z2dlc3RlZCBieSB0aGUgc3VibWl0dG9yCiAgIAoyMDAxLTAyLTE2IDE1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHZhcl9zdHJ1Y3QuaCAoVjQtMi1wYXRjaGVzLjEpLCB2YXJfc3RydWN0Lmg6CgogICAtIGluY3JlYXNlIFVDRF9SRUdJU1RSWV9PSURfTUFYX0xFTiB0byAxMjggYXQgRnJhbmsncyByZXF1ZXN0CiAgIAoyMDAxLTAyLTE2IDA0OjE2ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIENoYW5nZSBiZWhhdmlvdXIgb24gY3lnd2luIHRvIGV4Y2x1ZGUgVW5peCBkb21haW4gdHJhbnNwb3J0cyBieSBkZWZhdWx0CiAgIG9uIGN5Z3dpbiwgYW5kIGFsc28gZml4IGEgbWlub3IgYnVnLCB0aGFua3MgdG8gc3VnZ2VzdGlvbnMgYnkgUGV0ZXIgRm9say4KICAgCjIwMDEtMDItMTQgMTg6MTQgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYyAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wdHJhcGQuYzoKCiAgIHJlbW92ZWQgdW51c2VkIHNubXBfYWxhcm0uaCBpbmNsdWRlCiAgIAoyMDAxLTAyLTEyIDE0OjExICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgYWRkZWQgS2FybCdzIHBhdGNoIGZvciB1c2VudW1lcmljCiAgIAoyMDAxLTAyLTEyIDEzOjU0ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IE1BTklGRVNUICwgU05NUC5wbSAsIFNOTVAueHMgLAogICBleGFtcGxlcy90cmFwLWV4YW1wbGUucGw6CgogICBhZGRlZCB0cmFwIHJlY2VwdGlvbiBBUEkgZnJvbSBQaGlsaXAgUHJpbmRldmlsbGUgPHBoaWxpcHBAY2lzY28uY29tPgogICAKMjAwMS0wMi0xMSAwODoyMyAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgVXNlIHNubXBfYWRkIG5vdCBzbm1wX3Nlc3NfYWRkICh0aGUgbGF0dGVyIGRvZXNuJ3QgYWRkIGEgc2Vzc2lvbiB0bwogICB0aGUgU2Vzc2lvbiBsaXN0LCBhbmQgaXQgdGhlcmVmb3JlIHdvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgc2VsZWN0KCkKICAgZmRzZXQsIGhlbmNlIHNubXB0cmFwZCB3aWxsIG5ldmVyIHJlY2VpdmUgdmVyeSBtdWNoKS4KICAgCjIwMDEtMDItMTEgMDg6MjAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBGaXggaW1wcm9wZXJseS10ZXJtaW5hdGVkIGxpc3QgaW4gY29tMnNlYyBoYW5kbGluZy4KICAgCjIwMDEtMDItMTEgMDc6NDUgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIENsZWFuIHVwIG1lcmdlICg+Pj4+Pj4sID09PT09PSBldGMuIGxlZnQgYmVoaW5kKS4KICAgCjIwMDEtMDItMTAgMDk6MjYgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgRml4IHR5cG8uCiAgIAoyMDAxLTAyLTEwIDA5OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgbWFzdGVyX2FkbWluLmMgLAogICBzdWJhZ2VudC5jOgoKICAgTWVtb3J5IGxlYWsgcGF0Y2hlcyAoc291cmNlZm9yZ2UgcGF0Y2ggIzEwMzYwNSkuCiAgIFJlbW92ZSBhIGZldyBzdHJkdXAoKXMsIGFuZCBjYWxsIGZyZWVfYWdlbnRfc25tcF9zZXNzaW9uKCkgcmF0aGVyIHRoYW4KICAgZnJlZSgpIGluIHN1YmFnZW50LmM6aGFuZGxlX2FnZW50eF9wYWNrZXQoKSBmb3IgQUdFTlRYX01TR19SRVNQT05TRQogICBhbmQgZGVmYXVsdCBjYXNlcywgdG8gZW5zdXJlIGZyZWUoKWluZyBvZiBjbG9uZWQgUERVIGFsbG9jYXRlZCBieQogICBpbml0X2FnZW50X3NubXBfc2Vzc2lvbi4KICAgCjIwMDEtMDItMTAgMDc6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIHNubXBJUFhEb21haW4uYyAsIHNubXBJUFhEb21haW4uaCAsIHNubXBUQ1BEb21haW4uYwogICAsIHNubXBUQ1BEb21haW4uaCAsIHNubXBVRFBEb21haW4uYyAsCiAgIHNubXBVRFBEb21haW4uaCAsIHNubXBVbml4RG9tYWluLmMgLCBzbm1wVW5peERvbWFpbi5oCiAgICwgc25tcF90cmFuc3BvcnQuYyAsIHNubXBfdHJhbnNwb3J0Lmg6CgogICBXaG9vcHMuICBGb3Jnb3QgdGhlIG5ldyBmaWxlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHBsdWdnYWJsZSB0cmFuc3BvcnQgc3R1ZmYuCiAgIAoyMDAxLTAyLTA5IDExOjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBldmVudC1taWIuaCAsIG10ZU9iamVjdHNUYWJsZS5jCiAgICwgbXRlT2JqZWN0c1RhYmxlLmggLCBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMgLAogICBtdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYyAsIG10ZVRyaWdnZXJUYWJsZS5jICwKICAgbXRlVHJpZ2dlclRhYmxlLmggLCBtdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYzoKCiAgIEltcGxlbWVudGVkIGFuZCBtYWRlIHVzZSBvZiBtdGVPYmplY3RzVGFibGUgdG8gc2VuZCBhZGRpdGlvbmFsIG9iamVjdHMgb3V0IHdpdGggdHJhcHMgZ2VuZXJhdGVkLiAgQWxzbywgZG9uJ3QgcmV0dXJuIGRhdGEgZm9yIG1pc2MgdGFibGVzIHdoZW4gdGhhdCB0cmlnZ2VyIGlzbid0IGRlZmluZWQgdG8gdXNlIHRoYXQgdGVzdCB0eXBlLgogICAKMjAwMS0wMi0wOSAxMToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMiksIHNubXBkLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTM6IGZpeCBtZW1vcnkgbGVhayBpbiBzbm1wZCBwb3J0IHNwZWNpZmljYXRpb24gLT4gZGVmYXVsdF9zdG9yZS4KICAgCjIwMDEtMDItMDkgMTE6MTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYyAoVjQtMi1wYXRjaGVzLjIpLCBtaWJfbW9kdWxlcy5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjEyOiBmaXggbWVtb3J5IGxlYWsgaW4gbWliX21vZHVsZSBpbml0IGNvZGUKICAgCjIwMDEtMDItMDkgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAoVjQtMi1wYXRjaGVzLjEpLCBhZ2VudF9yZWdpc3RyeS5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjExOiBmaXggbWVtb3J5IGxlYWsgZm9yIGR1cGxpY2F0ZSBvaWQgcmVnaXN0cmF0aW9ucy4KICAgCjIwMDEtMDItMDkgMTE6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2ZyZWVic2QyLmMsIHByb3h5LmMKICAgKFY0LTItcGF0Y2hlcy5bMSw0XSksIG1lbW9yeV9mcmVlYnNkMi5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNzAyOiBmaXggc3dhcCByZXBvcnRpbmcgb24gZnJlZWJzZCA0LjIKICAgCjIwMDEtMDItMDkgMTA6MTIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggLCBjb25maWcuaC5pbiAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L3NubXBfYWdlbnQuYwogICAsIGFnZW50L3NubXBfYWdlbnQuaCAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvc25tcGQuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgYXBwcy9zbm1wc3RhdHVzLmMgLCBhcHBzL3NubXB0ZXN0LmMgLCBhcHBzL3NubXB0cmFwLmMKICAgLCBhcHBzL3NubXB0cmFwZC5jICwgYXBwcy9zbm1wdHJhcGRfbG9nLmMgLAogICBhcHBzL3NubXB0cmFwZF9sb2cuaCAsIG1pYnMvVUNELVNOTVAtTUlCLnR4dCAsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4gLCBzbm1wbGliL3NubXBfYWxhcm0uYyAsCiAgIHNubXBsaWIvc25tcF9hbGFybS5oICwgc25tcGxpYi9zbm1wX2FwaS5jICwKICAgc25tcGxpYi9zbm1wX2FwaS5oICwgc25tcGxpYi9zbm1wX2NsaWVudC5jICwKICAgc25tcGxpYi92YWNtLmg6CgogICBBcHBsaWVkIHBhdGNoIDEwMzUxMDogZG9tYWluIHRyYW5zcG9ydCBpbmRlcGVuZGVuY2UuICBOb3RlOiBUcmFwcy9WQUNNIGJyb2tlbi4KICAgCjIwMDEtMDItMDkgMDg6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDAxc25tcHYxZ2V0ICwgVDAwMnNubXB2MWdldG5leHQgLAogICBUMDAzc25tcHYxZ2V0ZmFpbCAsIFQwMTRzbm1wdjJjZ2V0ICwgVDAxNXNubXB2MmNnZXRuZXh0CiAgICwgVDAxNnNubXB2MmNnZXRmYWlsICwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCAsCiAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwgLCBUMDIwc25tcHYzZ2V0ICwKICAgVDAyMXNubXB2M2dldG5leHQgLCBUMDIyc25tcHYzZ2V0TUQ1ICwKICAgVDAyM3NubXB2M2dldE1ENURFUyAsIFQwMjRzbm1wdjNnZXRTSEExICwKICAgVDAyNXNubXB2M2dldFNIQURFUyAsIFQwMjhzbm1wdjNnZXRmYWlsICwKICAgVDAzMHNubXB2M3VzZXJjcmVhdGlvbiAsIFQwNTNhZ2VudHYxdHJhcCAsCiAgIFQwNTRhZ2VudHYyY3RyYXAgLCBUMDU1YWdlbnR2MW1pbnRyYXAgLAogICBUMDU2YWdlbnR2MmNtaW50cmFwICwgVDA1OGFnZW50YXV0aHRyYXAgLCBUMTAwYWdlbnRodXAKICAgLCBUMTEwYWdlbnR4Z2V0ICwgVDExMWFnZW50eHNldCAsIFQxMTJhZ2VudHhzZXRmYWlsCiAgICwgVDExM2FnZW50eHRyYXAgLCBUMTIwcHJveHlnZXQgLCBUMTIxcHJveHlzZXQKICAgLCBUMTIycHJveHlzZXRmYWlsOgoKICAgdXBkYXRlZCBtb3N0IHRlc3RzIHRvIHVzZSBudW1lcmljIE9JRHMgc28gYXMgdG8gbm90IHJlbHkgb24gbWliIHBhcnNpbmcKICAgCjIwMDEtMDItMDkgMDc6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaDoKCiAgIHJlbW92ZSB1bnVzZWQgcHJvdG90eXBlOiBnZXRfYWdlbnR4X3RyYW5zSUQKICAgCjIwMDEtMDItMDggMTQ6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluICwgbG9jYWwvdHJhcHRvZW1haWwgLAogICBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICB0cmFwdG9lbWFpbCBwZXJsIHNjcmlwdCBjcmVhdGVkIGFzIGFuIGV4YW1wbGUgdHJhcGhhbmRsZSBzY3JpcHQKICAgCjIwMDEtMDItMDggMTQ6MDEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgYWNjb25maWcuaCAsIGNvbmZpZy5oLmluICwKICAgYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9hZ2VudF90cmFwLmMgLAogICBhZ2VudC9taWJfbW9kdWxlcy5jICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaCAsIGFwcHMvc25tcGRlbHRhLmMKICAgLCBhcHBzL3NubXBzZXQuYyAsIGFwcHMvc25tcHRyYXAuYyAsCiAgIGFwcHMvc25tcHZhY20uYyAsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4gLAogICBsb2NhbC9taWIyYyAsIG1hbi9zbm1wY21kLjEgLCBtaWJzL1JNT04tTUlCLnR4dCAsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dCAsIHBlcmwvU05NUC9TTk1QLnBtICwKICAgc25tcGxpYi9pbnQ2NC5jICwgc25tcGxpYi9wYXJzZS5jICwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTWVyZ2UgZnJvbSBWNC0yLXBhdGNoZXM6IG1lcmdlIDEtPjIKICAgCjIwMDEtMDEtMzAgMTc6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlzay5jIChWNC0yLXBhdGNoZXMuMSksIGRpc2suYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzQxNDogZml4IGRpc2sgaW5mbyBmb3IgYmxvY2sgc2l6ZXMgb3RoZXIgdGhhbiAxMDI0LgogICAKMjAwMS0wMS0zMCAxMzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgdXNlIHNubXBfZW51bSdzIHByb3Blcmx5IChzdHJkdXAoKSB0aGUgc3RyaW5ncyBmaXJzdCkKICAgCjIwMDEtMDEtMzAgMTM6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2VudW0uYyAsIHNubXBfZW51bS5oOgoKICAgcHJvcGVyIGNvbnN0bmVzcyBmb3Igc29tZSBvZiB0aGUgZnVuY3Rpb24gYXJndW1lbnRzLgogICAKMjAwMS0wMS0zMCAxMzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IGJ1ZyBJIGp1c3QgaW50cm9kdWNlZCAocmV0dXJuaW5nIHByb3BlciBzYXZldG8gcG9pbnRlcikKICAgCjIwMDEtMDEtMzAgMTM6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSBzbm1wc2V0cyBhcmUgc3VwcG9ydGVkCiAgICAgLSBBIG5ldyAic2V0IiBidXR0b24gaGFzIGJlZW4gYWRkZWQgdG8gcGVyZm9ybSBzZXRzIG9uIGFuIG9pZC4KICAgICAtIEFsbCB3cml0YWJsZSBvYmplY3RzIGluIGEgdGFibGUgYXJlIG5vdyBidXR0b25zIHRoYXQgYnJpbmcgdXAgdGhlCiAgICAgICBzZXQgd2luZG93IHdpdGggdGhlIGN1cnJlbnQgdmFsdWUgaW5zdGF0ZWQuCiAgICAgLSBBbGwgd3JpdGFibGUgb2JqZWN0cyBpbiB0aGUgb3V0cHV0IG9mIHNubXB7Z2V0LHdhbGssZ2V0bmV4dH0KICAgICAgIGJ1dHRvbnMgYXJlIGRpc3BsYXllZCBhcyBibHVlIGFuZCBhcmUgY2xpY2thYmxlIHRvIGNoYW5nZSB0aGVpcgogICAgICAgdmFsdWVzLgogICAtIHNldHRpbmdzIGNvbmZpZ3VyZWQgdmlhIHRoZSBvcHRpb25zIG1lbnUgY2FuIG5vdyBiZSBzYXZlZC4KICAgLSB1c2UgR2V0b3B0OjpTdGQgbm93LgogICAtIHN1cHBvcnRzIG1vc3Qgb2YgdGhlIGltcG9ydGFudCBzbm1wY21kKDEpIGZsYWdzIGZvciBzZXNzaW9uIHNldHVwLgogICAKMjAwMS0wMS0zMCAxMzoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQtbWliLmggLAogICBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMgLCBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmggLAogICBtdGVUcmlnZ2VyRGVsdGFUYWJsZS5jICwgbXRlVHJpZ2dlckRlbHRhVGFibGUuaCAsCiAgIG10ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jICwgbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmggLAogICBtdGVUcmlnZ2VyVGFibGUuYyAsIG10ZVRyaWdnZXJUYWJsZS5oICwKICAgbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMgLCBtdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaDoKCiAgIEluaXRpYWwgKG5vdC1jb21wbGV0ZSkgaW1wbGVtZW50YXRpb24gb2YgdGhlIERJU01BTi1FVkVOVC1NSUI6CiAgICAgLSBJbXBsZW1lbnRzIGFsbCAzIHRlc3RzIChib29sZWFuLCB0aHJlc2hvbGQgYW5kIGV4aXN0ZW5jZSkuCiAgICAgLSBub3Qgcmlnb3JvdXNseSB0ZXN0ZWQuCiAgICAgLSBDdXJyZW50bHkgb25seSBzdXBwb3J0cyBxdWVyeWluZyB0aGUgbG9jYWwgYWdlbnQKICAgICAgIChtdGVUcmlnZ2VyVGFyZ2V0VGFnIG11c3QgYmUgJycpLgogICAgIC0gQ3VycmVudGx5IG9ubHkgc3VwcG9ydHMgc2VuZGluZyB0cmFwcyBhbmQgdGhlIG10ZU9iamVjdHNUYWJsZSBpcwogICAgICAgbm90IGltcGxlbWVudGVkIChteSBuZXh0IHRvZG8gaXRlbSkKICAgICAtIE9ubHkgdGhlIGRlZmF1bHQgdHJhcHMgYXJlIHNlbnQuICBUaGUgbXRlRXZlbnQqIG9iamVjdHMgaGF2ZW4ndAogICAgICAgYmVlbiBpbXBsZW1lbnRlZCAobm8gc2VsZi1kZWZpbmVkIHRyYXBzL3NldHMpLgogICAgIC0gbm8gZWFzeSB0byB1c2UgY29uZmlndXJhdGlvbiB5ZXQgKHNvb24pLgogICAgIC0gY29uZmlndXJlIHdpdGggLS13aXRoLW1pYi1tb2R1bGVzPWRpc21hbi9ldmVudC1taWIKICAgCjIwMDEtMDEtMzAgMTM6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFVzZSBtZW1jcHkgaW5zdGVhZCBvZiBzcHJpbnRmIGZvciBzdHJpbmdzIHRoYXQgbWF5IG5vdCBiZSBudWxsIHRlcm1pbmF0ZWQuCiAgIAoyMDAxLTAxLTMwIDEyOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaDoKCiAgIEltcGxlbWVudGVkIGdldF9jdXJyZW50X2FnZW50X3Nlc3Npb24oKSBhbmQgc2V0X2N1cnJlbnRfYWdlbnRfc2Vzc2lvbigpOgogICAgIC0gVGhlc2UgYWxsb3cgYSBtaWIgbW9kdWxlIHRvIHJldHJpZXZlIHRoZSBjdXJyZW50CiAgICAgICBhZ2VudF9zbm1wX3Nlc3Npb24gcG9pbnRlciBmb3IgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24uCiAgICAgLSBUaGlzIHNob3VsZCBwcm9iYWJseSBkb25lIGRpZmZlcmVudGx5IGxhdGVyIHdoZW4gd2UgY2hhbmdlIHRoZSBtaWIKICAgICAgIG1vZHVsZSBhcGkuCiAgICAgLSBUaGlzIHdpbGwgY29tcGxldGVseSBmYWlsIHRvIHdvcmsgcHJvcGVybHkgaW4gYSBtdWx0aS10aHJlYWRlZAogICAgICAgYWdlbnQgKHdoaWNoIHdlIGN1cnJlbnRseSBkb24ndCBzdXBwb3J0IGFueXdheSkuCiAgIAoyMDAxLTAxLTI5IDExOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBkZWJ1Z2dpbmcgc3RhdGVtZW50IGF0IGluaXRpYWxpemF0aW9uIHRpbWUuCiAgIAoyMDAxLTAxLTI5IDExOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBwcm9wZXJseSBtYWxsb2MgYSAxIGJ5dGUsIE5VTEwgY2hhcmFjdGVyIHN0cmluZyBmb3IgIiIgcmVhZCBzdHJpbmdzLgogICAKMjAwMS0wMS0yOSAxMTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoZWFkZXJfY29tcGxleC5jICwgaGVhZGVyX2NvbXBsZXguaDoKCiAgIGRhdGEgc2VwZXJhdGlvbiBhbmQgbmV3IGZ1bmN0aW9uczoKICAgICBoZWFkZXJfY29tcGxleF9nZXRfZnJvbV9vaWQoKQogICAgIGhlYWRlcl9jb21wbGV4X2FkZF9kYXRhX2J5X29pZCgpCiAgIAoyMDAxLTAxLTEyIDA4OjIyICBoYXJkYWtlcgoKICAgKiBtaWJzL0RJU01BTi1FVkVOVC1NSUIudHh0OgoKICAgLSBESVNNQU4tRVZFTlQtTUlCIGFkZGVkIHRvIG1pYiByZXBvc2l0b3J5LiAoT3IsIGd1ZXNzIHdoYXQgSSBkaWQgZHVyaW5nIGEgNiBob3VyIHBsYW5lIGZsaWdodD8pCiAgIAoyMDAxLTAxLTEyIDA4OjE2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHN1cHBvcnQgYml0IHN0cmluZ3MKICAgCjIwMDEtMDEtMTIgMDg6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuNSksIHNubXBfYXBpLmM6CgogICAtIGJpdF9zdHJpbmcgZml4ZXMKICAgLSBtYWtlIHNubXBfYWRkX3ZhciBjYWxsIHNubXBfcGFyc2Vfb2lkKCkgaW5zdGVhZCBvZiByZWFkX29iamlkKCkuCiAgIAoyMDAxLTAxLTEyIDA3OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIG5ldyBkYXRhIHR5cGVzIHN1cHBvcnRlZCBmb3IgcmVhZF9jb25maWcgcm91dGluZXM6IHVuc2lnbmVkLCBiaXRfc3RyLgogICAKMjAwMS0wMS0xMiAwNzo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYyAoVjQtMi1wYXRjaGVzLjMpLCBhc24xLmM6CgogICBjb21tZW50IG91dCByZWFsbHkgb2RkIChhbmQgYnJva2VuKSBjaGVjayBmcm9tIGFzbl9iaXRzdHJpbmdfY2hlY2s/Pz8KICAgCjIwMDEtMDEtMTIgMDc6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgbW92ZSBjb25maWcgc3RyaW5nIGluaXRpYWxpemVyIGFib3ZlIHN1YmFnZW50IGNoZWNrIHNvIGl0cyBrbm93biBldmVuCiAgIGlmIG5vdCB1c2VkLgogICAKMjAwMS0wMS0xMiAwNzo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5zdG9yYWdlLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYKICAgKFY0LTItcGF0Y2hlcy5bMSwxXSksIG1pYjJjLnN0b3JhZ2UuY29uZiAsCiAgIG1pYjJjLnZhcnR5cGVzLmNvbmY6CgogICAtIG1pc2MgYnVnIGZpeGVzLgogICAtIG5ldyBkYXRhIHR5cGVzICh1aW50MzIsIHVuc2lnbmVkLCBiaXRzKS4KICAgCjIwMDEtMDEtMDkgMTc6MDggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50X3JlZ2lzdHJ5LmggLAogICBkc19hZ2VudC5oICwgdmFyX3N0cnVjdC5oICwgbWliZ3JvdXAvbWliaW5jbC5oICwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiAgICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLAogICBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oOgoKICAgU3ViQWdlbnQgcGluZyBzdXBwb3J0OgogICAgIC0gYWdlbnR4UGluZ0ludGVydmFsIHNwZWNpZmllcyBTRUNPTkRTIGJldHdlZW4gd2hlbiB0aGUgc3ViYWdlbnQKICAgICAgIHRyaWVzIHRvIHBpbmcgdGhlIG1hc3RlciBhZ2VudC4KICAgICAtIGlmIG5vIHJlc3BvbnNlIGlzIHJlY2VpdmVkLCBpdCB0cmllcyB0byByZWNvbm5lY3QuCiAgICAgLSBmYWlsaW5nIHRoYXQgaXQgdHJpZXMgZXZlcnkgU0VDT05EUyBhZ2FpbiB0aWxsIGl0IHN1Y2NlZWRzLgogICAgIC0gcmUtcmVnaXN0ZXJzIGl0cyBvaWQncyBiYXNlZCBvbiB0aGUgY3VycmVudCBzdWJ0cmVlIGxpc3QuCiAgICAgICAtIG1heSBuZWVkIHNvbWUgdGhvdWdodC4gIEFzc3VtZXMgKmFsbCogbmVlZCB0byBiZSByZS1yZWdpc3RlcmVkLgogICAgICAgLSBuZWVkcyB0byByZS1yZWdpc3RlciBzeXNvcnRhYmxlIGVudHJpZXMgdG9vLCBidXQgZG9lc24ndC4KICAgICAtIGN1cnJlbnRseSBzZWctZmF1bHRzIG9uIGFib3V0IHRoZSAyLTR0aCB0aW1lIG9yIHNvLiAgTm90IHN1cmUgd2h5LgogICAgIC0gU2hvdWxkIG1ha2UgRGF2ZSBzbWlsZSBvciBjcmluZ2Ugb3IgZ2lnZ2xlLCBub3Qgc3VyZSB3aGljaC4KICAgCjIwMDEtMDEtMDkgMTc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBjYWxsYmFjay5jICwgY2FsbGJhY2suaDoKCiAgIEFsbG93IGRlcmVnaXN0ZXJpbmcgb2YgY2FsbGJhY2tzCiAgIAoyMDAxLTAxLTA5IDA2OjIwICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wbmV0c3RhdC86IHNubXBuZXRzdGF0LmRzcCAoVjQtMi1wYXRjaGVzLjEpLAogICBzbm1wbmV0c3RhdC5kc3A6CgogICBhZGRlZCBnZXRvcHQuYyB0byBsaXN0CiAgIAoyMDAxLTAxLTA0IDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9lbnVtLmMgLCBzbm1wX2VudW0uaDoKCiAgIC0gZ2VuZXJpYyBzbm1wIGVudW0gbGlzdCBzdXBwb3J0LiAgTm90IHVzZWQgYW55d2hlcmUgKHlldCkuCiAgIAoyMDAxLTAxLTA0IDE2OjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLCBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaAogICAsIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L2FnZW50X3RyYXAuaCAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCAsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jICwgc25tcGxpYi9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvYXNuMS5jICwgc25tcGxpYi9jYWxsYmFjay5jICwKICAgc25tcGxpYi9jYWxsYmFjay5oICwgc25tcGxpYi9taWIuYyAsCiAgIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcAogICAsIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwICwKICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwICwKICAgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcDoKCiAgIC0gbWVyZ2VkIHBhdGNoZXMgZnJvbSBWNC0yLXBhdGNoZXMgYnJhbmNoIHRvIG1haW4gYnJhbmNoLgogICAKMjAwMS0wMS0wNCAxMDozNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiAsIG1hbi9zbm1wY21kLjEgLCBzbm1wbGliL21pYi5jOgoKICAgLSBhZGRlZCBuZXcgcHJpbnRIZXhUZXh0IHNubXAuY29uZiB0b2tlbi4KICAgLSBkb2N1bWVudGVkIC1PVCwgYW5kIHRoZSB0b2tlbi4KICAgCjIwMDEtMDEtMDQgMTA6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmggLCBtaWIuYzoKCiAgIFBhdGNoICMxMDMwOTEgYXBwbGllZDoKICAgICAtIEFkZGVkIC1PVCBvcHRpb24gdG8gdmlldyBoZXggc3RyaW5ncyB3aXRoIHRleHQgaW4gdGhlbS4KICAgCjIwMDAtMTItMjcgMTY6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcDoKCiAgIGZpbGUgVDA1NmFnZW50djJjbWludHJhcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAwLTEyLTI3IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcDoKCiAgIGZpbGUgVDA1NWFnZW50djFtaW50cmFwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDAtMTItMjIgMDc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgZml4IHZpZXcgcHJvY2Vzc2luZyB0byB3YXRjaCBmb3IgbGVuZ3RoIHByZWZpeC4gIFRoZSBsZW5ndGggcHJlZml4CiAgIHJlYWxseSByZWFsbHkgc2hvdWxkbid0IGJlIHN0b3JlZCBkaXJlY3RseSBpbiB0aGUgb2lkLiAgTmllbHM/CiAgIAoyMDAwLTEyLTE5IDA3OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgbWFrZSBpbml0X3NubXB2MygpIGRlYWwgd2l0aCBhIE5VTEwgYXJndW1lbnQgcHJvcGVybHkuCiAgIAoyMDAwLTEyLTE4IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IHJlbW92ZSBwYXNzdGVzdCBmcm9tIHRoZSAuY3ZzaWdub3JlIGZpbGUgKGJ1ZyAjMTI2OTQpCiAgIAoyMDAwLTEyLTE4IDEwOjQ1ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFJFQURNRSAsIFNOTVAucG06CgogICBtaW5vciBkb2MgZml4CiAgIAoyMDAwLTEyLTE0IDEzOjQ2ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gc3lzdGVtLmM6IGZpeCB1cHRpbWUgZm9yIDY0LWJpdCBTb2xhcmlzCiAgIAoyMDAwLTEyLTE0IDEzOjQ1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIC0gZGxtb2QuYzogZml4IHN0dXBpZCBzcGVsbGluZyBlcnJvcgogICAKMjAwMC0xMi0xMyAyMTo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICAtIGRsbW9kLmM6IGZpeCBjb25mdXNpb24gYmV0d2VlbiBpbnQsIHNpemVfdCwgbG9uZyBmb3IgNjQtYml0IGNvbXBpbGVzLgogICAKMjAwMC0xMi0xMyAwODo0MCAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgc25tcGNvbmYuMQogICAKMjAwMC0xMi0wOCAxNDo0OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwgc25tcGxpYi92YWNtLmM6CgogICAtIHZhY21fdmFycy5jLCB2YWNtLmM6IGluZGV4aW5nIG9mIHZhY21WaWV3VHJlZUZhbWlseUVudHJ5IHdhcyBob3NlZCwgYXNzdW1pbmcKICAgCXRoYXQgdGhlIFN1YnRyZWUgaW5kZXggaGFkIGFuIElNUExJRUQgYXR0cmlidXRlLgogICAKMjAwMC0xMi0wOCAxNDo0NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMgLCBocl9wYXJ0aXRpb24uYzoKCiAgIC0gaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYzogZml4IHNvbWUgemVybyBpbmRleCB2YWx1ZXMuCiAgIAoyMDAwLTEyLTA4IDE0OjQzICBuYmEKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIHNubXBfdmFycy5jOiBmaXggcmV0dXJucyBvZiB6ZXJvRG90WmVybyAoc3VjaCBhcyBpZlNwZWNpZmljKQogICAKMjAwMC0xMi0wOCAxNDozOCAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gYWdlbnRfdHJhcGQuYzogc2VjdXJpdHkgbW9kZWwgdmFsdWVzIGFyZSBub3QgdGhlIHNhbWUgaXMgc25tcCB2ZXJzaW9uIHZhbHVlcwogICAKMjAwMC0xMi0wNiAxNDo0NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gaW50ZXJmYWNlcy5jOiBMaW51eCBrZXJuZWwgMi4wLnggaGFzIG5vIEFSUEhSRF9ISVBQSQogICAKMjAwMC0xMi0wNSAwNzowMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IEZpeCByc25tcCdzIC91c3IvbG9jYWwgaGFyZGNvZGVkIHBhdGguCiAgIAoyMDAwLTEyLTA0IDE3OjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsOgoKICAgLSAoVDExMmFnZW50eHNldGZhaWwpOiBmaXgKICAgCjIwMDAtMTItMDQgMTY6MzMgIGhhcmRha2VyCgogICAqIFJFQURNRSAsIHNlZHNjcmlwdC5pbiAsIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4yLjMgLT4gVjQuMi40CgkKMjAwMi0wNC0wNCAxNToyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICBwYXRjaCBmcm9tIFBldHRlciBMYXJzZW4gdG8gYWRkIGEgZnVuY3Rpb24gZm9yIGV4dHJhY3RpbmcgdGhlIGZkIGFzc29jaWF0ZWQgd2l0aCBhIHNlc3Npb24KICAgCjIwMDItMDQtMDQgMTU6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBkZWFsIHdpdGggZmQgdW5yZWdpc3RyYXRpb25zIHByb3Blcmx5LgogICAKMjAwMi0wNC0wMyAwODozMiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi40LnByZTMgKQogICAKMjAwMi0wNC0wMiAxNTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYzoKCiAgIEFwcGx5IHBhdGNoICM1MTU1NzcgdG8gZml4IG9uZSBjYXNlIG9mIGEgcmVnaXN0cnkgcHJvYmxlbS4KICAgCjIwMDItMDQtMDIgMTQ6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgcy9kYXJ3aW4uaDoKCiAgIEFwcGx5IHBhdGNoICM1MjQ0MjQgZm9yIGRhcndpbiBmaXhlcyBmb3IgdWNkLXNubXAvZGlzay5jCiAgIAoyMDAyLTA0LTAyIDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBhcHBseSBwYXRjaCA1Mjc1NzMgdG8gZml4IDY0IGJpdCB0eXBlcyBvbiBzb2xhcmlzCiAgIAoyMDAyLTA0LTAxIDIyOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBMZXQgaW5pdF9zbm1wIHByb3RlY3QgaXRzZWxmLgogICAKMjAwMi0wMy0yOCAyMzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgZW5hYmxlIHJvdyBjcmVhdGlvbiBmb3IgcGFzcyBtb2R1bGVzLiAgUGF0Y2ggIzQ4MjAwNQogICAKMjAwMi0wMy0yOCAyMzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgcGF0Y2ggIzUxNzM0MDogZnJlZWJzZDUgc3VwcG9ydAogICAKMjAwMi0wMy0yOCAyMzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBhcHBseSBmcmVlYnNkNSBwYXRjaCAjNTE3MzMzCiAgIAoyMDAyLTAzLTI4IDIzOjEwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBidWcgIzUyNTg0NC4gIHBlcmwgU05NUCB3YXMgdXNpbmcgYSB0cmFwIGFkZHJlc3Mgb2YgMC4wLjAuMC4KICAgCjIwMDItMDMtMjggMjM6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHVzZSBhIHN0YXRpYyB2YXJpYWJsZSBmb3IgaW5pdCBjaGVja2luZy4gIEJ1ZyAjNTM2Mzg2LgogICAKMjAwMi0wMy0yOCAxNToyMyAgZHRzMTIKCiAgICogRkFROgoKICAgQWRkIGEgZmV3IG5ldyBlbnRyaWVzIChtb3N0bHkgcmVsYXRpbmcgdG8gdHJhcHMpCiAgIAoyMDAyLTAzLTI3IDAxOjU1ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIFVzZSB0aGUgY29ycmVjdCBuYW1lIG9mIHRoZSBXaW5kb3dzIElQIEhlbHBlciBBUEkgbGlicmFyeS4KICAgKENvbXB1dGVycyBjYW4gYmUgc29vb28gcGlja3khKQogICAKMjAwMi0wMy0yNiAwODoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBlbmFibGUgZGlza2lvIG9uIGZyZWVic2Q1LiAgSW1wbGVtZW50cyBwYXRjaCA1MTczMjggaW4gYSBkaWZmZXJlbnQgd2F5LgogICAKMjAwMi0wMy0yNiAwNzo0NCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgL2V0Yy9maWxlc3lzdGVtcyB0byBsaXN0IG9mIG1vdW50IHRhYmxlIGZpbGVzIChmb3IgQUlYKQogICBTaG91bGQgZml4IGJ1Z3MgMjMyNTg4IGFuZCAoPyk1MTcxMTMKICAgCjIwMDItMDMtMjYgMDc6MzkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUmVtb3ZlIHRyYWlsaW5nICc6JyBmcm9tIGxpc3Qgb2YgTUlCIG1vZHVsZSBuYW1lcyBpbiBjb25maWd1cmUgb3V0cHV0LAogICB0byBhdm9pZCBjb25mdXNpb24gKHNlZSBCdWcgIzQ5MTEyOSkKICAgCjIwMDItMDMtMjYgMDY6NTAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkICctbGhscGFwaScgdG8gdGhlIGFnZW50IGxpYnJhcmllcyB3aGVuIGNvbXBpbGluZyB1bmRlciBXaW5kb3dzCiAgICh1c2luZyBDeWd3aW4pLiAgRExMSUJTIGlzIG5vdCBhcyBzdWl0YWJsZSBhcyBBR0VOVF9MSUJTIGZvciB0aGlzCiAgIChzZWUgdGhlIGVxdWl2YWxlbnQgcGF0Y2ggb24gdGhlIG1haW4gYnJhbmNoKSwgYnV0IGl0IHNob3VsZCBkby4KICAgU2hvdWxkIGZpeCBCdWcgIzUzNDQwOS4KICAgCjIwMDItMDMtMjUgMjI6MzMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBmaXggYnVnIzUyMDQ3OCBzaG93TWliRXJyb3JzIHRva2VuIGlzIGludmVydGVkCiAgIAoyMDAyLTAzLTI1IDE4OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBmaXggYnVnIzUwMjEyMyBhZ2VudHggaW5maW5pdGUgbG9vcC4KICAgCjIwMDItMDMtMjQgMDU6MTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBSZXN0cmljdCBoclNXUnVuUGFyYW1zIHJldHVybnMgdmFsdWVzIHRvIDEyOCBvY3RldHMKICAgCjIwMDItMDMtMjQgMDU6MDQgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgT29wcyAtIHNucHJpbnRfKiBjYW5ub3QgcmVhbGxvYwogICAKMjAwMi0wMy0yMSAwNzoyMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBmaXggYnVnICM1MzI2OTYgZml4aW5nIHJwbSBmb3IgbmV3ZXIgcnBtIHZlcnNpb25zCiAgIAoyMDAyLTAzLTIwIDA3OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICByZW1vdmUgaWxsZWdhbCBTRVQgc3VwcG9ydCBmb3Igc3lzRGVzY3IuCiAgIAoyMDAyLTAzLTE5IDAyOjAxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oOgoKICAgICAtIHBhdGNoIGZyb20gSm9zaHVhIEdpbGVzIHRvIGluY3JlYXNlIHRoZSBtYXhpbXVtIHN0cmluZyBsZW5ndGgKICAgICAgICgjNTI3NjUwKS4KICAgCjIwMDItMDMtMTggMTQ6MzggIG5iYQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEFkZCBtaXNzaW5nIGV4cG9ydHMgZm9yIFZDKysgYnVpbGQKICAgCjIwMDItMDMtMTggMTM6MjMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBQcm9wZXIgdGVzdCBmb3Igc3VjY2Vzc2Z1bCBvcGVuIG9mIEVUQ19NTlRUQUIKICAgCjIwMDItMDMtMTggMTM6MDkgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgRml4IGludGVyY2hhbmdlZCBwYXJhbWV0ZXJzIGZvciBzdHJuY3B5CiAgIAoyMDAyLTAzLTE4IDA4OjUxICBkdHMxMgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgbGliYWdlbnQvbGliYWdlbnQuZHNwLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AsCiAgIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsCiAgIHNubXBkL3NubXBkLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHNubXBkZi9zbm1wZGYuZHNwLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBnZXQvc25tcGdldC5kc3AsCiAgIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgc25tcHNldC9zbm1wc2V0LmRzcCwKICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgc25tcHRyYXAvc25tcHRyYXAuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwKICAgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHZhY20vc25tcHZhY20uZHNwLCBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBBcHBseSBET1MtdHlwZSBsaW5lIGVuZGluZ3MgdG8gdGhlIERTVy9EU1AgZmlsZXMuCiAgIAoyMDAyLTAzLTE4IDA4OjQxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIFVzZSB0aGUgc2FtZSB2YXJpYWJsZSBuYW1lIGZvciBvdXRwdXQgYnVmZmVyIGFuZCBzaXplIGNhbGN1bGF0aW9uLgogICAKMjAwMi0wMy0xOCAwNTozOSAgamJwbgoKICAgKiBSRUFETUUuaHB1eDExLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBzL2hwdXguaDoKCiAgICAgLSBjb21taXQgSm9oYW5uZXMncyB1cGRhdGUgdG8gdGhlIEhQVVgtMTEgcGF0Y2gKICAgCjIwMDItMDMtMTggMDI6MzEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIGV4dGVuZCB0Y3Bfd3JhcHBlcnMgc3VwcG9ydCB0byBBZ2VudFguICBUaGlzIG1ha2VzIGl0IG1vcmUKICAgICAgIHJlYXNvbmFibGUgdG8gaW1wbGVtZW50IGEgZGlzdHJpYnV0ZWQgc3ViYWdlbnQgYXJjaGl0ZWN0dXJlCiAgICAgICB3aXRob3V0IG1hc3NpdmUgc2VjdXJpdHkgd29ycmllcy4KICAgCjIwMDItMDMtMTQgMDc6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBkb250X3Byb2JlIGJ1ZyBwb2ludGVkIG91dCBieSBTdGVmYW4gQWVzY2hiYWNoZXIuCiAgIAoyMDAyLTAzLTEzIDE4OjU4ICBzbGlmCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQ2xhcmlmeSB1bnNpZ25lZCBjaGFyIGFyZ3VtZW50IGZvciB0aGUgbm9pc3kgb3IgY29uZnVzZWQgY29tcGlsZXIuCiAgIAoyMDAyLTAzLTEzIDE4OjQ2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIHF1ZWxsIHNldmVyYWwgd2FybmluZ3MgYWJvdXQgc2lnbmVkIHZzIHVuc2lnbmVkIGNvbXBhcmlzb25zLgogICAKMjAwMi0wMy0xMyAxODo0NCAgc2xpZgoKICAgKiB3aW4zMi93aW4zMi5kc3c6CgogICByZW1vdmUgZGVwZW5kZW5jaWVzIHRvIHJlc3RvcmUgYnVpbGRpbmcgZWl0aGVyIERlYnVnIG9yIFJlbGVhc2UgdGFyZ2V0cy4KICAgCjIwMDItMDMtMTMgMTg6NDMgIHNsaWYKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICB0cmFjayBjaGFuZ2Ugc2V0ZW52IC0tPiBzbm1wX3NldGVudgogICAKMjAwMi0wMy0xMyAxNTo1MCAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1ERU1PLU1JQi50eHQsIFVDRC1ESVNLSU8tTUlCLnR4dCwgVUNELURMTU9ELU1JQi50eHQsCiAgIFVDRC1JUEZJTFRFUi1NSUIudHh0LCBVQ0QtSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0OgoKICAgYWRkcmVzcyBjaGFuZ2VzIGZvciB1Y2Qtc25tcCAtPiBuZXQtc25tcCBub3RlIHNheWluZyB0aGVzZSBtaWJzIGFyZSBubwogICBsb25nZXIgc3VwcG9ydGVkIGJ5IFVDRC4KICAgCjIwMDItMDMtMTMgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIG1hbGxvYyBhdCBsZWFzdCBvbmUgYnl0ZSBpbiBoZXhfdG9fYmluYXJ5MgogICAKMjAwMi0wMy0xMyAwNDowMyAgZHRzMTIKCiAgICogRkFROgoKICAgQWRkIGEgZGVzY3JpcHRpb24gb2YgInVubGlua2VkIE9JRHMiLgogICAKMjAwMi0wMy0xMiAyMDowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICBQYXRjaCBmcm9tIGRhbmllbCBTdWxseSB0byBpbXByb3ZlIHNvbGFyaXMgc3dhcCBpbmZvCiAgIAoyMDAyLTAzLTEyIDA4OjM0ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGluZyBvZiB0aGUgRkFRIHJlYWR5IGZvciB0aGUgbmV4dCByZWxlYXNlLgogICAoTW9zdGx5IHJlcGhyYXNpbmcgb2YgZXhpc3RpbmcgZW50cmllcywgYnV0IGEgZmV3IG5ldyBxdWVzdGlvbnMpCiAgIAoyMDAyLTAzLTExIDEwOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL3NtdXgvc211eC5jLCBtaWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudF9pbmRleC5jLCBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX2FnZW50LmMsCiAgIHNubXBkLmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgYmV0dGVyIHByaW50aW5nIGFwaXMKICAgCjIwMDItMDMtMTEgMTA6MDYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIGZpeCBhcGkgaW4gYSBjb21tZW50IChob3cgcGlja3kgYW0gST8pCiAgIAoyMDAyLTAzLTExIDA3OjQxICBkdHMxMgoKICAgKiBGQVE6CgogICBCcmluZyB0aGUgNHgtIGFuZCBtYWluLWJyYW5jaCBGQVFzIGludG8gYWdyZWVtZW50LgogICAKMjAwMi0wMy0xMSAwNToxNiAgamJwbgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAgIC0gZml4IGJhZCB0eXBlIGFzc2lnbm1lbnQgaW4gYnVpbGRfdHJhbnNsYXRpb25fdGFibGUoKSwgbm90aWNlZCBieQogICAgICAgUGV0ZXIgU3RldmVucy4KICAgCjIwMDItMDMtMTAgMTQ6MDcgIG5iYQoKICAgKiBzbm1wbGliL21pYi5oOgoKICAgT29wcyAtIGZvcmdvdCB0byByZW1vdmUgdGhlICNpZmRlZiBmb3IgdW5zYWZlIHNwcmludF8qIGZ1bmN0aW9ucyBkZWNsYXJhdGlvbnMKICAgCjIwMDItMDMtMTAgMTM6NTQgIG5iYQoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICBGaXggdXAgb3V0LW9mLW9yZGVyIGVycm9yIG1lc3NhZ2UKICAgCjIwMDItMDMtMTAgMTM6NDQgIG5iYQoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgRG9uJ3QgZGllIG9uIHYyIGV4Y2VwdGlvbnMKICAgCjIwMDItMDMtMTAgMTM6NDEgIG5iYQoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBzbm1wX2RlYnVnLmM6CgogICBSZW1vdmUgc29tZSBjYWxscyB0byBvbGQgc3ByaW50XyogZnVuY3Rpb25zCiAgIAoyMDAyLTAzLTEwIDEzOjM5ICBuYmEKCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaDoKCiAgIEFkZCBzbnByaW50XyogcmVwbGFjZW1lbnQgZnVuY3Rpb25zIGZvciBhbGwgc3ByaW50XyogZnVuY3Rpb25zCiAgIAoyMDAyLTAzLTEwIDEzOjM4ICBuYmEKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIERvY3VtZW50IHNucHJpbnRfe29iamlkLHZhcmlhYmxlLHZhbHVlfQogICAKMjAwMi0wMy0xMCAwODozNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaDoKCiAgIGluY2x1ZGUgdGhlIHNucHJpbnRmIGNvdW50ZXJwYXJ0cyBmcm9tIHRoZSA1LjAgY29kZS4KICAgCjIwMDItMDMtMDggMTg6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgcmVkZWZpbmUgYSB2YXJpYWJsZSBvbiBmcmVlYnNkIGZvciAyLjIuNQogICAKMjAwMi0wMy0wOCAxNzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgcmVtb3ZlIGEgYnJva2VuIGZpeCBJIGFjY2lkZW50aWNhbGx5IGNvbW1pdHRlZAogICAKMjAwMi0wMy0wOCAxNzo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgcGF0Y2ggZnJvbSBNaWhhaWwgQmFsaWtvdiB0byBzdXBwb3J0IHVwIGJ1dCBubyBpcCBpbnRlcmZhY2VzLgogICAKMjAwMi0wMy0wOCAxNzoyNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsIGFjbG9jYWwubTQ6CgogICBwYXRjaCBmcm9tIFBhdWwgUmFzbXVzc2VuIHRvIGZpeCAtLWVuYWJsZS1zaGFyZWQKICAgCjIwMDItMDMtMDggMTY6NTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgb2xkIHBhdGNoIGZyb20gQmVydCBEcmllaHVpcyB0byBmaXggYzY0cyBpbiBwZXJsCiAgIAoyMDAyLTAzLTA4IDE0OjUzICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJlbW92ZSAxMDAwIGxpbmVzIG9mIGR1cGxpY2F0ZSBjb2RlIGJ5IHVzaW5nIHRoZSBzcHJpbnRfcmVhbGxvY18qIGZ1bmN0aW9ucwogICBpbiB0aGUgaW1wbGVtZW50YWlvbiBvZiB0aGUgbm9uLXJlYWxsb2MgY291bnRlcnBhcnRzLgogICAKMjAwMi0wMy0wOCAxNDo1MSAgbmJhCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcHRhYmxlLmMsIHNubXB1c20uYywgc25tcHdhbGsuYzoKCiAgIFJlbW92ZSBsYXN0IHNwcmludF9ub25yZWFsbG9jIGNhbGxzCiAgIAoyMDAyLTAzLTA3IDAzOjIwICBqYnBuCgogICAqIG1hbi9taWJfYXBpLjM6CgogICAgIC0gcGF0Y2ggZnJvbSBHdXkgSGFycmlzIHRvIGRlc2NyaWJlIG5ldyBtaWJfYXBpCiAgIAoyMDAyLTAzLTA3IDAyOjU4ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmg6CgogICAgIC0gZGVjbGFyZSB0aGUgc3ByaW50X3JlYWxsb2NfYmxhaCBmdW5jdGlvbnMuICBUaGFua3MgdG8gR3V5IEhhcnJpcy4KICAgCjIwMDItMDMtMDYgMDg6NDEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBGaXggYSBjb25mdXNpb24gYmV0d2VlbiBkZWZBdXRoVHlwZSBhbmQgZGVmUHJpdlR5cGUuCiAgIAoyMDAyLTAzLTA2IDA1OjUyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBY3R1YWxseSB1c2UgdGhlIGNvbW1vbiAnZGVmUGFzc3BocmFzZScgdmFsdWUgaWYgJ2RlZntBdXRoLFByaXZ9UGFzc3BocmFzZScgaXNuJ3Qgc2V0LgogICBRbjogU2hvdWxkIHRoZSBBdXRoUGFzc3BocmFzZSBhbHNvIGJlIHVzZWQgZm9yIHByaXZhY3kgaWYgbm8gb3RoZXIgdmFsdWUgaXMgYXZhaWxhYmxlPwogICAKMjAwMi0wMy0wNiAwMzoxOSAgamJwbgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgICAtIGlnbm9yZSBlcnJvcnMgZG9pbmcgcm0gLXJmIC90bXAvc25tcC10ZXN0KiB3aGVuIG1ha2luZyBjbGVhbiAodGhpcwogICAgICAgaGFwcGVucyBhbGwgdGhlIHRpbWUgb24gdGhlIGNvbXBpbGUgZmFybSBiZWNhdXNlIGUuZy4gSSBjYW4ndAogICAgICAgZGVsZXRlIFdlcydzIHRlc3QgZGlyZWN0b3JpZXMgYW5kIGl0J3MgYSBudWlzYW5jZSBiZWNhdXNlIHRoZW4gdGhlCiAgICAgICByZXN0IG9mIHRoZSBkaXJlY3RvcmllcyBkb24ndCBnZXQgY2xlYW5lZCB1cCBwcm9wZXJseSkuCiAgIAoyMDAyLTAzLTA2IDAyOjI0ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZml4IGFub3RoZXIgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBwcm9ibGVtIGFzIHJlcG9ydGVkIGluIGJ1ZwogICAgICAgIzUyNjI2Mi4KICAgCjIwMDItMDMtMDUgMTA6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICBpbXBvc2UgbWF4IGxlbmd0aCByZXN0cmljdGlvbiBzdXBwbGllZCBieSBtaWIgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KICAgCjIwMDItMDMtMDUgMDk6NTIgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIG1pc3NlZCBhIG1vZGlmaWNhdGlvbiB0byB0aGUgcGF0Y2guCiAgIAoyMDAyLTAzLTA1IDA5OjUxICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBBIG1vZGlmaWVkIHBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyIGZvciBsb25nZXIgY29uZmlndXJlIHN0cmluZ3MuCiAgIAoyMDAyLTAzLTA1IDA4OjIzICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIFJldmVyc2UgbXkgZWFybGllciAoYm9ndXMpIGZpeC4KICAgVGhpbmdzIHdlcmUgZmluZSBhcyB0aGV5IHdlcmUgLSBJIG11c3QgYmUgY3JhY2tpbmcgdXAuLi4uLgogICAKMjAwMi0wMy0wNSAwODowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jOgoKICAgQWRkIG1pc3NpbmcgInN0YW5kYXJkIiBoZWFkZXJzLCBhbmQgdHdlYWsgYSB0eXBlIHNsaWdodGx5LgogICAoQmFzZWQgb24gcmVxdWVzdHMgZnJvbSBHcmVnb3J5IFRvdGgpLgogICAKMjAwMi0wMy0wNSAwNjo1NiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF92YXJzLmg6CgogICBCcmluZyBkZWNsYXJhdGlvbiBvZiAnaW5pdF9hZ2VudCcgaW50byBsaW5lIHdpdGggY29kZSBkZWZpbml0aW9uLgogICAKMjAwMi0wMy0wNSAwNjo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsIHVjZC1zbm1wL2RsbW9kLmM6CgogICBDYXN0IGEgY291cGxlIG9mIG1hbGxvY3MgYXBwcm9wcmlhdGVseSAocmVxdWVzdGVkIGJ5IEdyZWdvcnkgVG90aCkKICAgCjIwMDItMDMtMDQgMjE6MzggIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgcGVybC9TTk1QL1NOTVAucG06CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuNC5wcmUyICkKICAgCjIwMDItMDMtMDQgMDE6NTEgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQ2F0Y2ggYW5kIHJlcG9ydCBpbnZhbGlkIG5vZGUgc3BlY2lmaWNhdGlvbnMuCiAgIChUaGlzIG91Z2h0IHRvIGJlIGhhbmRsZWQgYnkgdGhhdCB0ZXN0IHRoYXQgZm9sbG93cyBpbW1lZGlhdGVseSwgYnV0CiAgICAiJFNOTVA6Ok1JQnskb2lkfSIgYXBwZWFycyB0byByZXR1cm4gdGhlIGNvcmUgbWliLTIgb2JqZWN0IHJlZ2FyZGxlc3MpCiAgIAoyMDAyLTAzLTA0IDAxOjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIENvcnJlY3QgZGVidWcgb3V0cHV0IG1lc3NhZ2UgKHRoYW5rcyB0byBKZXJvZW4gUnVpZ3JvaykKICAgCjIwMDItMDMtMDEgMjI6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IGJ1ZyAjNTI0NTI5CiAgIAoyMDAyLTAzLTAxIDA3OjE3ICBuYmEKCiAgICogbHRtYWluLnNoLCBhY2xvY2FsLm00LCBjb25maWd1cmU6CgogICBQdWxsIGluIHVwLXRvLWRhdGUgbGlidG9vbCwgd2hpY2ggc2hvdWxkIGhlbHAgRGFyd2luCiAgIAoyMDAyLTAzLTAxIDA3OjE1ICBuYmEKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViOgoKICAgUHVsbCBpbiB1cC10by1kYXRlIGNvbmZpZyBzY3JpcHRzCiAgIAoyMDAyLTAyLTI3IDA5OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIEhhbmRsZSB2aWV3cyB0aGF0IHNwZWNpZnkgYSBmdWxsIGluc3RhbmNlIE9JRC4KICAgKFNpbmNlIHRoZSBpbnRlcm5hbGx5IHN0b3JlZCBPSUQgcHJlcGVuZHMgdGhlIGxlbmd0aCBhcyB3ZWxsLAogICAgdGhlIGFwcGFyZW50IGxlbmd0aCBpcyBvbmUgZ3JlYXRlciB0aGFuIGl0IHJlYWxseSBpcykKICAgCjIwMDItMDItMjYgMTQ6MTggIG5iYQoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaDoKCiAgIFNhdmUgRmlsZS9saW5lIGZvciBtZXNzYWdlcyBhYm91dCB1bmxpbmtlZCBPSURzCiAgIAoyMDAyLTAyLTI1IDE1OjQ2ICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLm1pYiwgbWliZmV0Y2g6CgogICBNYWtlIHN1cmUgdGhhdCB3ZSBmZXRjaCBJQU5BaWZUeXBlLU1JQiBmcm9tIHRoZSBtYWludGFpbmVkIGxvY2F0aW9uLgogICAKMjAwMi0wMi0yNSAxNTo0NSAgbmJhCgogICAqIG1pYnMvRElTTUFOLVNDSEVEVUxFLU1JQi50eHQ6CgogICBVcGRhdGUgZm9yIFJGQyAzMjMxCiAgIAoyMDAyLTAyLTI1IDA4OjU5ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgTmV3IFJGQydzIGlzc3VlZCB3aXRoIG1pYnM6CiAgIDMyMDEgICBDSVJDVUlULUlGLU1JQgogICAzMjAyICAgRlJTTEQtTUlCCiAgIDMyMzEgICBESVNNQU4tU0NIRURVTEUtTUlCCiAgIAoyMDAyLTAyLTI1IDA4OjU3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBGcmVlQlNENCBoYXMgbmV3IGRpc2sgbmFtZXMKICAgCjIwMDItMDItMjUgMDg6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBQcm9wZXJseSBicmFja2V0IHJ1bl9scHN0YXQgcHJvdG90eXBlCiAgIAoyMDAyLTAyLTI1IDAyOjQ4ICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgICAgLSBvbmx5IGNvcHkgdGhlIGZpcnN0IERFU0NSSVBUSU9OIGNsYXVzZSBvZiBNT0RVTEUtQ09NUExJQU5DRQogICAgICAgc3RhdGVtZW50cyB0byBhdm9pZCBhIG1lbW9yeSBsZWFrIChzZWUgYnVnICM1MjIzNjMpLgogICAKMjAwMi0wMi0yNSAwMToyMSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFNwZWNpZnkgdGhlIGNvcnJlY3QgZGVidWcgdG9rZW4gZm9yIGRpc3BsYXlpbmcgdGhlIGxpc3Qgb2YgbW9kdWxlcwogICAoc3BvdHRlZCBieSBCcmlhbiBTaGF2ZXIpCiAgIAoyMDAyLTAyLTIyIDA5OjI3ICBkdHMxMgoKICAgKiBzbm1wbGliLzogTVNHMDAwMDEuYmluLCB3aW5zZXJ2aWNlLm1jICwKICAgTVNHMDAwMDEuYmluICgxLjEpLCB3aW5zZXJ2aWNlLm1jICgxLjEpOgoKICAgQWRkIG1pc3NpbmcgZmlsZXMgZm9yIFdpbmRvd3Mgc2VydmljZSBvcGVyYXRpb24uCiAgIAoyMDAyLTAyLTIyIDA4OjQyICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgSnVzdCBjbG9zZSB0aGUgbWFpbiBzZXNzaW9uIHdoZW4gc2h1dHRpbmcgZG93biB1bmRlciBXaW5kb3dzLAogICBub3QgZXZlcnl0aGluZyAoc28gdGhhdCBpdCBjYW4gc3RpbGwgZ2VuZXJhdGUgdGhlIHNodXRkb3duIHRyYXApLgogICAKMjAwMi0wMi0yMiAwMTo0OSAgamJwbgoKICAgKiBGQVEsIFJFQURNRS53aW4zMjoKCiAgICAgLSB1cGRhdGUgY29tbWVudHMgb24gV2luMzIgcG9ydCBpbiBGQVEKICAgCiAgICAgLSBkaXNjdXNzIHdoYXQgSVBITFBBUEkue0xJQixETEx9IGlzIGFuZCB3aGVyZSBpdCBjYW4gYmUgb2J0YWluZWQKICAgICAgIGZyb20gaW4gUkVBRE1FLndpbjMyCiAgIAoyMDAyLTAyLTIxIDA3OjAyICBkdHMxMgoKICAgKiB3aW4zMi9zbm1wZC9zbm1wZC5kc3A6CgogICBGaXggYm9ndXMgc3RydWN0dXJlIGNvbW1lbnRzIGluIHRoZSBzbm1wZCBwcm9qZWN0IGZpbGUuCiAgIAoyMDAyLTAyLTIxIDAzOjEzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgICAtIGVtaXQgZXJyb3Igb24gb3Zlci1sZW5ndGggcGFzc3dvcmQgaW5zdGVhZCBvZiB3cml0aW5nIG9mZiBlbmQgb2YKICAgICAgIGJ1ZmZlciAoYnVnICM1MjA2NDksIG5vdGVkIGJ5IEpvaG4gU2VsbGVucykuCiAgIAoyMDAyLTAyLTIwIDA5OjI3ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oOgoKICAgICAtIGNoYW5nZXMgdG8gYXZvaWQgbmFtZXNwYWNlIGNsYXNoIHByb2JsZW1zIHdpdGggc2V0ZW52KCkgd2hpY2ggYXJlCiAgICAgICBjYXVzZWQgYnkgbGlid3JhcCBzdXBwbHlpbmcgYSBmdW5jdGlvbiBvZiB0aGF0IG5hbWUgYXMgd2VsbCBhcyB1cy4KICAgCiAgICAgLSBhbGwgY2FsbHMgaW4gdGhlIGNvZGUgdG8gc2V0ZW52KCkgYXJlIHJlcGxhY2VkIHdpdGggYSBjYWxsIHRvCiAgICAgICBzbm1wX3NldGVudigpLgogICAKICAgICAtIHNubXBfc2V0ZW52KCkgY2FsbHMgc2V0ZW52KCkgaWYgc3VjaCBhIGZ1bmN0aW9uIGV4aXN0cywgb3RoZXJ3aXNlCiAgICAgICBpdCBzaW11bGF0ZXMgdGhlIGVmZmVjdCBieSBjYWxsaW5nIHB1dGVudigpLgogICAKMjAwMi0wMi0yMCAwNTo0MyAgamJwbgoKICAgKiBORVdTOgoKICAgICAtIG1lbnRpb24gdGNwX3dyYXBwZXJzIHN1cHBvcnQgZm9yIHNubXB0cmFwZAogICAKMjAwMi0wMi0yMCAwNTo0MSAgamJwbgoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIHNubXB0cmFwZC5jOgoKICAgICAtIGFkZCBsaWJ3cmFwIHN1cHBvcnQgZm9yIHNubXB0cmFwZAogICAKMjAwMi0wMi0yMCAwNToyMCAgamJwbgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBleGl0IHdpdGggYW4gZXJyb3IgaWYgLS13aXRoLWxpYndyYXAgaXMgZ2l2ZW4gYW5kIHdlIGNhbid0IGZpbmQgaXQKICAgCjIwMDItMDItMjAgMDM6MDAgIGpicG4KCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgICAgLSBpbml0aWFsaXNlIHNvbWUgYnVmZmVycywgdG8gYXZvaWQgZ2FyYmFnZSBwcmludGluZyBwcm9ibGVtcywgYXMKICAgICAgIG5vdGVkIGJ5IEFub255bW91cyBpbiBidWcgIzUyMDIyMC4KICAgCjIwMDItMDItMTkgMDY6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgUGF0Y2ggZnJvbSBKZXJvZW4gUnVpZ3JvayB0byBtZXJnZSBhIGZldyBpZmRlZnMKICAgCjIwMDItMDItMTkgMDE6NTEgIGpicG4KCiAgICogYWdlbnQvYXV0b19ubGlzdC5oOgoKICAgICAtIGFkZCBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mIHN0cnVjdCBubGlzdCB0byBhdm9pZCBjb21waWxlcgogICAgICAgY29tcGxhaW50cy4gIFRoYW5rcyB0byBBbmR5IEhvb2QuCiAgIAoyMDAyLTAyLTE4IDA4OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIHBhdGNoIGZyb20gSmVyb2VuIFJ1aWdyb2sgZm9yIG1pbm9yIGlmZGVmIGNsZWFuIHVwcwogICAKMjAwMi0wMi0xOCAwMjozNiAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSB1c2UgY2FsbG9jIGluc3RlYWQgb2YgbWFsbG9jIHRvIG1ha2Ugc3VyZSBidWZmZXIgaXMgaW5pdGlhbGx5CiAgICAgICB6ZXJvLXRlcm1pbmF0ZWQgKGluIGNhc2Ugb2YgMCB2YXJiaW5kcykuICBCdWcgIzUxODcwMCwgbm90ZWQgYnkKICAgICAgIEFuZHJlYXMgSGFydG1hbm4uCiAgIAoyMDAyLTAyLTE4IDAyOjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIFJlbW92ZSBhIGNvdXBsZSBvZiB1bmhlbHBmdWwgT1NGIGRlZmluaXRpb25zICh0aGFua3MgdG8gSmVyb2VuIFJ1aWdyb2spCiAgIAoyMDAyLTAyLTE4IDAyOjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwLzogbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgICAtIHJlbW92ZSB0cm91Ymxlc29tZSBpbmxpbmUgcXVhbGlmaWVycy4gIFRoYW5rcyB0byBBbmR5IEhvb2QgZm9yCiAgICAgICBub3RpbmcgdGhhdCB0aGVzZSBjYXVzZSBwcm9ibGVtcyBvbiBBSVguCiAgIAoyMDAyLTAyLTE4IDAyOjA1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICAgIC0gcmVtb3ZlIC8vLXN0eWxlIGNvbW1lbnRzLiAgVGhhbmtzIHRvIEFuZHkgSG9vZCBmb3IgcG9pbnRpbmcgdGhpcwogICBvdXQuCiAgIAoyMDAyLTAyLTE4IDAwOjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGRvbid0IGJ1aWxkIG9pZCdzIHdpdGggPjEyOCBsZW5ndGggc3ViaWRzLiAgKHNlZSBidWcgIzUxODg1NSkKICAgCjIwMDItMDItMTUgMjI6MDcgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgcGVybC9TTk1QL1NOTVAucG06CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuNC5wcmUxICkKICAgCjIwMDItMDItMTUgMTc6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICBmaXggYnVnIzUwODEyNiB3aGljaCBhY3R1YWxseSBsZWQgbWUgdG8gYW5vdGhlci4KICAgICAtIG9pZCBwYXJzaW5nIGFuZCBzZWFyY2hpbmcgaW4gZ2V0bmV4dHMgY291bGQgc29tZXRpbWVzIGxvb3AuCiAgIAoyMDAyLTAyLTE1IDE3OjAwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgc3VwcG9ydCAtLWRpc2FibGUtc2hhcmVkLXZlcnNpb24gY29uY2VwdCBmcm9tIFBhdWwgUmFzbXVzc2VuLgogICAKMjAwMi0wMi0xNSAxNjo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgZHluaXggYnJva2UgbGludXguICBCYWQgZHluaXguICBObyBib25lLiAgR28gdG8geW91ciByb29tLgogICAKMjAwMi0wMi0xNSAxNjoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgYWRkIGJhY2sgaW4gbmV0aW5ldC9pbi5oIGFuZCBzeXMvdGltZS5oIChpbiBwcm9wZXIgcHJvdGVjdGVkIGZvcm0pCiAgIHdoaWNoIHdhcyBkZWxldGVkIGZyb20gNC4yLjMgZm9yIHNvbWUgcmVhc29uIHdlIG5ldmVyIGZpZ3VyZWQgb3V0LgogICAKMjAwMi0wMi0xNSAxNjoyMSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBGQVEsIE5FV1MsIFJFQURNRToKCiAgIHVwZGF0ZXMgZm9yIHdoYXQgd2lsbCBiZSA0LjIuNAogICAKMjAwMi0wMi0xNSAxNTo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGNoZWNrIGVuZCBvZiBtaWJ2aWV3IGNvbmRpdGlvbnMKICAgCjIwMDItMDItMTUgMDg6MDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgUG9wdWxhdGUgYW4gZW1wdHkgY2FzZSBzdGF0ZW1lbnQgKHNwb3R0ZWQgYnkgSmVyb2VuIFJ1aWdyb2spCiAgIAoyMDAyLTAyLTE1IDA3OjExICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgcmVtb3ZlIHVubmVlZGVkIC1DTiBhbmQgLUNPIGV4YW1wbGUgb3B0aW9ucwogICAKMjAwMi0wMi0xNSAwNjo0NyAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi93aW5zZXJ2aWNlLmMsIHNubXBsaWIvd2luc2VydmljZS5oLAogICBzbm1wbGliL3dpbnNlcnZpY2UucmMsIHdpbjMyL3NubXBkL3NubXBkLmRzcDoKCiAgIFN1cHBvcnQgZm9yIHJ1bm5pbmcgYXMgYSBXaW5kb3dzIHNlcnZpY2UuCiAgIChTdXBwbGllZCBieSBSYWp1IEtyaXNobmFwcGEgJiBMYXRoYSBQcmFiaHUpCiAgIAoyMDAyLTAyLTE0IDExOjExICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBNYWtlIGJ1ZmZlciBwb2ludGVyIHN0YXRpYyBzbyBpdCBkb2Vzbid0IGxlYWsKICAgCjIwMDItMDItMTQgMTE6MTAgIG5iYQoKICAgKiBzbm1wbGliL3NjYXBpLmg6CgogICBGaXggYmFkIHBhcmFudGhlc2lzCiAgIAoyMDAyLTAyLTE0IDA3OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZml4IGVtYWlsIGFkZHJlc3MgYnVnICM1MTcxNzgKICAgCjIwMDItMDItMTQgMDE6NDcgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIENoZWNrIGZvciBydW5uaW5nIG9mZiB0aGUgZW5kIG9mIEkvRiB0YWJsZSAocGF0Y2ggZnJvbSBSZWRIYXQpCiAgIAoyMDAyLTAyLTE0IDAxOjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgSW5jbHVkZSBSZWRIYXQgcGF0Y2hlcyBmb3IgYmV0dGVyIFJQTSBzdXBwb3J0CiAgIAoyMDAyLTAyLTE0IDAxOjM4ICBkdHMxMgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZG9wdCBSZWRIYXQncyBjb25maWd1cmUgdGVzdGluZyBmb3IgcnBtIGxpYnJhcnkgcmVxdWlyZW1lbnRzCiAgIAoyMDAyLTAyLTEzIDE2OjQxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGVuYWJsZSBzaGFyZWQgYnkgZGVmYXVsdCBleGNlcHQgZm9yIGRldmVsb3BlcnMKICAgCjIwMDItMDItMTMgMTM6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICByZW1vdmUgaW5saW5lIGZ1bmN0aW9uIGZyb20gYmVpbmcgZGVjbGFyZWQgaW4gYW5vdGhlciBmdW5jdGlvbi4KICAgCjIwMDItMDItMTMgMTM6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIHJlbW92ZSBpbmxpbmUgZnVuY3Rpb24gZnJvbSBiZWluZyBkZWNsYXJlZCBpbiBhbm90aGVyIGZ1bmN0aW9uLgogICAKMjAwMi0wMi0xMyAwODoxOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggc2V0cyBvZiB1bnNpZ25lZDMyJ3MuCiAgIAoyMDAyLTAyLTEzIDA3OjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRFNfTElCX1BSSU5UX1NVRkZJWF9PTkxZIGlzIGFuIGludGVnZXIgb3B0aW9uLCBub3QgYSBib29sZWFuIGZsYWcuCiAgIChBdHRlbXB0aW5nIHRvIHNldCB0aGlzIHZpYSB0aGUgU1VGRklYIGVudmlyb25tZW50YWwgdmFyaWFibGUgd2lsbAogICB0dXJuIG9uIHBhY2tldCBkdW1waW5nIGluc3RlYWQhKQogICAKMjAwMi0wMi0xMyAwNDoxNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICAgIC0gZml4IGJ1ZyAjNTE2OTA0IChzbm1wZCBkaWVzIGlmIG5vIHByaW50Y2FwIHdpdGggY2dldGVudCksIG5vdGVkIGJ5CiAgICAgICBBbm9ueW1vdXMgLS0gY2hlY2sgcmV0dXJuIHZhbHVlIG9mIGNnZXRuZXh0KCkgcHJvcGVybHkgaW4KICAgICAgIEluaXRfSFJfUHJpbnQoKS4KICAgCjIwMDItMDItMTIgMDc6MTEgIGpicG4KCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAgIC0gYW1lbmQgZml4IHRvIGJ1ZyAjNTE2Mzg5ICh1Y2Qtc25tcCA0LjIuMyBsaWJ3cmFwIHN1cHBvcnQgYnJva2VuKSB0bwogICAgICAgYWN0dWFsbHkgYWRkIC1sbnNsIHRvIGxpbmsgcGFyYW1ldGVycyEKICAgCjIwMDItMDItMTIgMDU6MjkgIGpicG4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAgIC0gZml4IGJ1ZyAjNTE2Mzg5ICh1Y2Qtc25tcCA0LjIuMyBsaWJ3cmFwIHN1cHBvcnQgYnJva2VuKSAtLSBVU0VfTElCV1JBUAogICAgICAgd2FzIG5vdCBiZWluZyAjZGVmaW5lZCBpbiB0aGUgY2FzZSB3aGVyZSAtbG5zbCBpcyBuZWVkZWQgaW4gYWRkaXRpb24KICAgICAgIHRvIC1sd3JhcC4KICAgCjIwMDItMDItMTIgMDE6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgSW1wbGVtZW50IHRoZSBCYWRDb21tdW5pdHl7TmFtZXMsVXNlc30gY291bnRlcnMuCiAgIAoyMDAyLTAyLTExIDEwOjA3ICBqYnBuCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAgIC0gZml4IGJ1Z3MgIzQ4OTMzNiBhbmQgIzUwODE0NiAoZHVwbGljYXRlIGNvbHVtbnMgYW5kIGNvbHVtbnMgaW4KICAgICAgIHdyb25nIG9yZGVyKS4KICAgCjIwMDItMDItMTEgMDg6MjMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBVc2UgdGhlICdkc19zZXRfeHh4JyBsaWJyYXJ5IHJvdXRpbmVzLCByYXRoZXIgdGhhbiB0aGUgb2xkICdzbm1wX3NldF94eHgnIGNhbGxzCiAgIAoyMDAyLTAyLTExIDA1OjMwICBqYnBuCgogICAqIEZBUToKCiAgICAgLSBtZW50aW9uIEhQVVgtMTEgYW5kIER5bml4L1BUWCA0LjQgc3VwcG9ydCwgYW5kIHNvbWUgc3BlbGxpbmcgZml4ZXMKICAgCjIwMDItMDItMDggMDY6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaDoKCiAgIEVuc3VyZSB0aGUgbnVsbCB2ZXJzaW9ucyBvZiB0aGUgdHdvIFJFR0lTVEVSIG1hY3JvcyBzd2FsbG93IHRoZWlyIHBhcmFtZXRlcnMuCiAgIAoyMDAyLTAyLTA4IDA0OjQyICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJbXBsZW1lbnQgdGhlIG1pc3Npbmcgb3V0Z29pbmcgZXJyb3Igc3RhdGlzdGljcyBjb3VudGVycwogICAocGF0Y2ggIzUxMDE5NCBmcm9tIExhdGhhIFByYWJodSkKICAgCjIwMDItMDItMDggMDI6NTQgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFByb2Nlc3MgdGhlIGZ1bGwgbGlzdCBvYmplY3RzIGluIGVhY2ggcGFzcyBvZiBhIFNFVCwgZXZlbiBpZiBvbmUgZW50cnkgZmFpbHMKICAgbWlkd2F5IHRocm91Z2guICBUaGlzIGlzIGxlc3MgZWZmaWNpZW50IHRoYW4gZmFpbGluZyBpbW1lZGlhdGVseSwgYnV0IGJyaW5ncwogICB0aGUgYmVoYXZpb3VyIGluIGxpbmUgd2l0aCB0aGUgZG9jdW1lbnRhdGlvbiwgYW5kIGVuc3VyZXMgdGhhdCBhbGwgcmVzb3VyY2VzCiAgIHdpbGwgYmUgcmVsZWFzZWQuCiAgIAoyMDAyLTAyLTA4IDAyOjUwICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBSZXR1cm4gdGhlIGNvcnJlY3QgZXJyb3IgaW5kZXggZm9yIHByb2JsZW1zIGluIFNFVCBoYW5kbGluZy4KICAgKHBhdGNoICM0NjcxNTUsIGZyb20gTGF0aGEgUHJhYmh1KQogICAKMjAwMi0wMi0wOCAwMjo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N0b3JhZ2UuYywgdWNkLXNubXAvbWVtb3J5LmM6CgogICBBZGRlZCBzdXBwb3J0IGZvciBtZW1vcnkgYW5kIHN3YXAgZW50cmllcyBpbiBoclN0b3JhZ2VUYWJsZSBmb3IgU29sYXJpcwogICAoZnJvbSBwYXRjaCAjNTA1NDk4IC0gdGhhbmtzIHRvIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcikKICAgCjIwMDItMDItMDggMDI6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBSZWdpc3RlciBJUCBSb3V0aW5nIHRhYmxlIG9iamVjdHMgYXMgd3JpdGFibGUuCiAgIAoyMDAyLTAyLTA3IDA3OjM5ICBkdHMxMgoKICAgKiBSRUFETUUuaHB1eDExLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwgcy9ocHV4Lmg6CgogICBTdXBwb3J0IGZvciBIUC1VWCAxMSwgY291cnRlc3kgb2YgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyLgogICAKMjAwMi0wMi0wNSAxMTo0NSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIGNvcHlyaWdodCB5ZWFyIHVwZGF0ZSBmb3IgTkFJIGFuZCBDYW1icmlkZ2UKICAgCjIwMDItMDItMDQgMDM6MTcgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBjb3JyZWN0IHByb2Nlc3NpbmcgZm9yIHRpbWV0aWNrcyB3aGVuIERTX0xJQl9OVU1FUklDX1RJTUVUSUNLUyBpcwogICAgICAgc2V0IChjb3JyZWN0cyBidWcgIzUxMTc5MywgcmVwb3J0ZWQgYnkgQW5vbnltb3VzKS4KICAgCjIwMDItMDEtMjggMTI6NTAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIG1pcnJvciBzZWN0aW9uIHVwZGF0ZQogICAKMjAwMi0wMS0yOCAxMjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5oOgoKICAgd2FybmluZyBhZGRlZCBhYm91dCBzZW5kX3RyYXBfdmFycyBhbmQgZW50ZXJwcmlzZSBvaWQgdXNlZC4KICAgCjIwMDItMDEtMjUgMDY6MjcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gZml4IG1pbm9yIHByb2JsZW0gd2l0aCBzdG9yYWdlVHlwZSAoYWx3YXlzIG9rYXkgdG8gc2V0IHRvIGN1cnJlbnQKICAgICAgIHZhbHVlKS4KICAgCiAgICAgLSBkb24ndCByZXNldCBzb21lIHZhcmlhYmxlcyB0byBvbGQgdmFsdWUgdW5sZXNzIHdlIGFjdHVhbGx5IHNldAogICAgICAgdGhlbSBpbiB0aGUgZmlyc3QgcGxhY2UhCiAgIAoyMDAyLTAxLTI0IDA2OjA2ICBqYnBuCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgICAgLSBhdm9pZCBmb3JtYXQgc3RyaW5nIG5hc3RpZXMgaW4gcmVhZF9jb25maWdfc3RvcmUoKSB3aGVuIHdyaXRpbmcgdG8KICAgICAgIGZpbGVzIChleHBvc2VkIGUuZy4gYnkgdGhlIHBlcnNpc3RlbnQgc3lzTmFtZS4wIHN0dWZmIC0tIHRyeQogICAgICAgc25tcHNldCBob3N0IHN5c05hbWUuMCBzICIlMDh4IiAtLSBvb3BzKQogICAKMjAwMi0wMS0yNCAwMzoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmMsCiAgIHMvYWl4Lmg6CgogICBBSVggc3VwcG9ydCBmb3IgSG9zdCBSZXNvdXJjZXMgbW9kdWxlLgogICAgICAgKFRoYW5rcyB0byBBbmR5IEhvb2QpCiAgIAoyMDAyLTAxLTIzIDA4OjM5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIHNldCB2aWV3VHlwZSB0byB0aGUgREVGVkFMIGluY2x1ZGVkKDEpIGZvciBuZXcgcm93cwogICAKMjAwMi0wMS0yMiAwNjozNiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBmaXggYnVnIGp1c3QgaW50cm9kdWNlZCB3aGVyZSBzZXR0aW5nIGFuIGV4aXN0aW5nIHJvdydzIHN0YXR1cyB0bwogICAgICAgY3JlYXRlQW5kR28oNCkgb3IgY3JlYXRlQW5kV2FpdCg1KSB3b3VsZCBkZWxldGUgdGhlIHJvdy4KICAgCjIwMDItMDEtMjIgMDQ6MjIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvOiBub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oOgoKICAgICAtIGJhY2twb3J0IG9mIHJlY2VudCBpbXByb3ZlbWVudHMgdG8gc25tcFRhcmdldFBhcmFtc1RhYmxlLAogICAgICAgc25tcFRhcmdldEFkZHJUYWJsZSBhbmQgc25tcE5vdGlmeVRhYmxlLgogICAKMjAwMi0wMS0yMSAwNDoyMiAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBzZXQgbm9TdWNoT2JqZWN0IHRvIEZBTFNFIGlmIHdlIGhhdmUgYSB2YWxpZCB3cml0ZV9tZXRob2QgKHRoaXMKICAgICAgIGNhdXNlcyB0aGUgY29ycmVjdCBleGNlcHRpb24gbm9TdWNoSW5zdGFuY2UgdG8gYmUgZ2VuZXJhdGVkIGlmIHRoZQogICAgICAgcmVxdWVzdGVkIG9iamVjdCBkb2Vzbid0IGV4aXN0KS4KICAgCjIwMDItMDEtMjEgMDQ6MjAgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHNsaWdodCBjaGFuZ2UgdG8gZ2VuZXJhdGlvbiBvZiBlcnJvci1pbmRleDoKICAgCiAgICAgICAtIGV4cGxpY2l0bHkgdGVzdCBmb3IgZXJyb3Itc3RhdHVzID09IG5vRXJyb3IsIGFuZCBzZXQgZXJyb3ItaW5kZXgKICAgICAgICAgdG8gemVybyBpbiB0aGlzIGNhc2U7CiAgIAogICAgICAgLSBvdGhlcndpc2UgdXNlIHRoZSBjYWNoZWQgdmFsdWU7CiAgIAogICAgICAgLSBkb24ndCB6ZXJvIHRoZSBjYWNoZWQgdmFsdWUgaW4gaGFuZGxlX3Zhcl9saXN0IGlmIGhhbmRsZV9vbmVfdmFyCiAgICAgICAgIHJldHVybnMgbm9FcnJvcgogICAKICAgICAtIHRoaXMgY29wZXMgcHJvcGVybHkgd2l0aCBTRVQgcmVxdWVzdHMsIHdoZXJlIGEgZmFpbGluZyBTRVQgd2lsbCBoYXZlCiAgICAgICBhIEZSRUUgcGhhc2Ugd2hpY2ggd2lsbCB0eXBpY2FsbHkgcmV0dXJuIG5vRXJyb3IuICBQcmV2aW91c2x5IHRoaXMKICAgICAgIHdvdWxkIGVycm9uZW91c2x5IGNhdXNlIHRoZSBlcnJvci1pbmRleCB0byBiZSBzZXQgdG8gemVyby4KICAgCjIwMDItMDEtMjEgMDQ6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaDoKCiAgICAgLSBiYWNrcG9ydCBvZiByZWNlbnQgdmFjbVNlY3VyaXR5VG9Hcm91cFRhYmxlLCB2YWNtQWNjZXNzVGFibGUgYW5kCiAgICAgICB2YWNtVmlld1RyZWVGYW1pbHlUYWJsZSBjaGFuZ2VzIChjb3JyZWN0ZWQgc3RhdGUgbWFjaGluZXMpLgogICAgICAgQmVmb3JlOiBwYXNzZWQgMjAsICBmYWlsZWQgODAsIHVudGVzdGVkIDExCiAgICAgICBBZnRlcjogIHBhc3NlZCAxMDcsIGZhaWxlZCAxLCAgdW50ZXN0ZWQgMwogICAKICAgICAgIFRoZSBzdGlsbC1leHRhbnQgZmFpbHVyZXMgYXJlIGR1ZSB0byB0aGUgbm9uLWltcGxlbWVudGVkCiAgICAgICB2YWNtQ29udGV4dFRhYmxlLgogICAKMjAwMi0wMS0xNSAxMjo0NCAgbmJhCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgRml4IHN0dXBpZCBtaXNzaW5nIHNpemVvZihvaWQpIGZhY3RvciBpbiBtZW1jcHkKICAgCjIwMDItMDEtMTUgMTI6NDIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIERvbnQgdXNlIHN0YXRpYyBidWZmZXIgd2hlbiByZWFkaW5nIC9wcm9jL3N0YXQKICAgCjIwMDItMDEtMTUgMTI6NDEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBzL3NvbGFyaXMyLjYuaCwgcy9zb2xhcmlzMi43LmgsCiAgIHMvc29sYXJpczIuOC5oOgoKICAgRml4IGhyTWF4UHJvY2Vzc2VzIGZvciBTb2xhcmlzCiAgIAoyMDAyLTAxLTE1IDEyOjM5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgU29tZSBhZGRpdGlvbmFsIGRlYnVnIHN0YXRlbWVudHMKICAgCjIwMDItMDEtMDkgMDg6MjcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywga2VybmVsX3N1bm9zNS5oOgoKICAgQWRkIGZ1bmN0aW9uIHRvIGFjY2VzIHJhdyBrc3RhdCBkYXRhCiAgIAoyMDAyLTAxLTA5IDA4OjI2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBVc2UgdGhhdCBzeXNjb25mIHJldHVybnMgYSBsb25nLCB0byBzYXZlIGxhcmdlIHBoeXMgbWVtCiAgIAoyMDAyLTAxLTA5IDA4OjI0ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBVcGRhdGUgdG8gY3VycmVudCBJQU5BIHZlcnNpb24KICAgCjIwMDItMDEtMDkgMDg6MjMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBDYXJlIGZvciBMaW51eCBkcml2ZXJzIHRoYXQgbWFpbnRhaW4gb2N0ZXQgY291dGVycyBhcyBsb2cgbG9uZyB2YWx1ZXMKICAgCjIwMDItMDEtMDkgMDI6MjAgIGpicG4KCiAgICogRkFROgoKICAgICAtIGFkZCBPUyBYIHRvIGxpc3Qgb2Ygc3VwcG9ydGVkIE9TZXMsIHRvIGZpeCBidWcgIzUwMTE3OSAoISkKICAgCjIwMDItMDEtMDMgMTQ6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIGZpeCBidWcgIzQ5ODgwOSAoSSB0aGluaykgYnkgY2hlY2tpbmcgc2V0bW50ZW50IHJldHVybiB2YWx1ZS4KICAgCjIwMDItMDEtMDMgMTM6NTIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIGNoZWNrIGFnYWluc3QgZ3Jvd2luZyBzZXJ2ZXIgcmV0dXJucyBhcyBwb2ludGVkIG91dCBieSBidWcgIzQ5ODk1NgogICAKMjAwMS0xMi0xOCAwODo0OSAgamJwbgoKICAgKiBhY2NvbmZpZy5oLCB3aW4zMi9jb25maWcuaCwgd2luMzIvY29uZmlnLmguYm9ybGFuZDoKCiAgICAgLSBhZGQgT1NUWVBFIGRlZmluZSBmb3Igd2luMzIKICAgCjIwMDEtMTItMTggMDg6NDQgIGpicG4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgICAtIGFkZCBPQkpFQ1QgSURFTlRJRklFUiBmb3Igd2luMzIgYWdlbnQKICAgCjIwMDEtMTItMTggMDY6NTAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgICAtIHBhdGNoIGZyb20gTGF0aGEgUHJhYmh1IHRvIHByb2R1Y2UgbW9yZSBtZWFuaW5nZnVsIHN5c0Rlc2NyLjAKICAgICAgIHN0cmluZ3MgZm9yIE1pY3Jvc29mdCBwbGF0Zm9ybXMuCiAgIAoyMDAxLTEyLTA1IDA3OjQ4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHBhdGNoIGZyb20gSmFzb24gR2xvdWRvbiB0byBmaXggbGVha2luZyBzZXNzaW9uIHN0cnVjdHVyZXMgZnJvbSBzbm1wX3RpbWVvdXQoKS4KICAgCjIwMDEtMTItMDMgMTQ6NTIgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDb21wbGV0ZSB0aGUgQlNEIElQU1RBVFMgY29uZmlndXJlIHRlc3RzLCBhcyBwb2ludGVkIG91dCBieSBNYXJrIE1vcmFlcwogICAoYnVnIyA0ODc3MDgpCiAgIAoyMDAxLTExLTI5IDE2OjU0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICA0LjIuMyBjaGFuZ2VzCiAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4yLjIgLT4gVjQuMi4zCgkKMjAwMS0xMS0yOSAxNDoyMiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4zICkKICAgCjIwMDEtMTEtMjkgMTM6MjUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBTb2xhcmlzIDggcmVuYW1lZCB0aGUga3N0YXQgaWZzcGVlZCBhdHRyaWJ1dGUgdG8gaWZTcGVlZCBhbmQgc29tZXdoZXJlCiAgIGFsb25nIHRoZSBsaW5lIGNoYW5nZWQgaXRzIHZhbHVlIGZyb20gTWJwcyB0cCBicHMKICAgCjIwMDEtMTEtMjggMTQ6NDMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIGltcHJvdmVkIGlyaXggc3VwcG9ydC4KICAgCjIwMDEtMTEtMjggMTQ6MzEgIGhhcmRha2VyCgogICAqIHMvaXJpeC5oOgoKICAgbGFzdCBmaXhlcyBmb3IgaXJpeCBJIHRoaW5rCiAgIAoyMDAxLTExLTI4IDE0OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBjcmVhdGUgaXNsYW5kcyBpbiB0aGUgc3RyZWFtCiAgIAoyMDAxLTExLTI4IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBzL2lyaXguaDoKCiAgIGlyaXggZml4ZXMgZm9yIGJyb2tlbiBpcml4IGhlYWRlcnMKICAgCjIwMDEtMTEtMjcgMTc6MDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgdmVyc2lvbiBzdGFtcCAoNC4yLjMucHJlMSAob3BwcykpCiAgIAoyMDAxLTExLTI3IDE3OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgZml4IGZvciB2ZXJzaW9uIHN0YW1waW5nIHRoZSBwZXJsIG1vZHVsZS4KICAgCjIwMDEtMTEtMjcgMTc6MDMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDQuMi4zCiAgIAoyMDAxLTExLTI3IDExOjA5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi93aW4zMi5kc3c6CgogICB1c2UgYXQgb3duIHJpc2sgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gZml4IGRlcGVuZGFuY2llcwogICAKMjAwMS0xMS0yNyAwNjo1MyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgICAtIHRyeSBoYXJkZXIgdG8gZ2V0IGhyU3lzdGVtTWF4UHJvY2Vzc2VzLjAgcmlnaHQsIGRyYXdpbmcgb24gcGF0Y2gKICAgICAgICM0ODU3NjUsIHN1Ym1pdHRlZCBieSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIsIGZvciBMaW51eCwgYW5kCiAgICAgICBhbHNvIHVzaW5nIHN5c2N0bCgpIG1vcmUgd2lkZWx5LgogICAKMjAwMS0xMS0yNyAwNjo1MSAgamJwbgoKICAgKiBjb25maWd1cmUuaW4sIHMvbGludXguaDoKCiAgICAgLSBMb29rIGZvciA8bGludXgvdGFza3MuaD4sIGluIG9yZGVyIHRvIGdpdmUgYSBiZXR0ZXIgdmFsdWUgZm9yCiAgICAgICBoclN5c3RlbU1heFByb2Nlc3Nlcy4wLiAgRnJvbSBwYXRjaCAjNDg1NzY1LCBzdWJtaXR0ZWQgYnkKICAgICAgIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlci4KICAgCjIwMDEtMTEtMjcgMDM6NTYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBrZXJuZWxfbGludXguYywga2VybmVsX2xpbnV4LmgsIHRjcC5jOgoKICAgICAtIGdpdmUgY29ycmVjdCB2YWx1ZXMgZm9yIHRjcEluRXJycy4wIGFuZCB0Y3BPdXRSc3RzLjAgdW5kZXIgTGludXgKICAgICAgIGlmIHRoZSBrZXJuZWwgbWFrZXMgdGhlIGRhdGEgYXZhaWxhYmxlLiAgRnJvbSBwYXRjaCAjNDg1NzY1LAogICAgICAgc3VibWl0dGVkIGJ5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlci4KICAgCjIwMDEtMTEtMjYgMDk6NTEgIGpicG4KCiAgICogdGVzdGluZy90ZXN0cy9UMTEwYWdlbnR4Z2V0OgoKICAgICAtIGxvbmdlciB0aW1lb3V0IGZvciBpbml0aWFsIEdFVCAoZml4IHNwdXJpb3VzIHRlc3QgZmFpbHVyZXMpCiAgIAoyMDAxLTExLTIxIDEwOjQ5ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBoZWxwIHVwZGF0ZSB0byByZW1vdmUgdGhlIHN1cHBvcnQgZGF0YWJhc2UKICAgCjIwMDEtMTEtMjEgMDQ6NTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgICAtIGZpeCBjb21waWxhdGlvbiBmb3IgVWx0cml4IDQuNSAoYnVnICMgNDE1MTk3KSAtLSBtYWtlIHN1cmUKICAgICAgIHZmcy5mX2JzaXplIGV4aXN0cyBpbiB2YXJfZXh0ZW5zaWJsZV9kaXNrKCksIGFuZCBkZWZhdWx0IGl0IHRvCiAgICAgICAxMDI0LgogICAKMjAwMS0xMS0yMCAwMjoyNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBkZWZpbml0aW9uIG9mIFNOTVBfTUFYX1NFQ19OQU1FX1NJWkUsIG5vdGVkIGJ5CiAgICAgICBLYXJsIE0uIEhlZ2Jsb29tLgogICAKMjAwMS0xMS0xOSAwNTo0OCAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkb2N1bWVudGF0aW9uIG9mIGlnbm9yZWRpc2sgZGlyZWN0aXZlLgogICAKMjAwMS0xMS0xOSAwNTo0OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZGlzay5jLCBocl9kaXNrLmgsIGhyX3BhcnRpdGlvbi5jLAogICBocl9wYXJ0aXRpb24uaDoKCiAgICAgLSBwYXRjaCBmcm9tIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlciB0byBhZGQgZGlyZWN0aXZlICJpZ25vcmVkaXNrIiB0bwogICAgICAgc2tpcCBjZXJ0YWluIGRldmljZXMgKGFuZCBoZW5jZSBhdm9pZCB0aGUgYHNubXB3YWxrIHRpbWVzIG91dCcgdHlwZQogICAgICAgcHJvYmxlbXMgZnJlcXVlbnRseSByZXBvcnRlZCkuICBBbHNvIGV4dGVuZHMgc2VhcmNoIHJhbmdlcyB0byBjb3BlIHdpdGgKICAgICAgIGxhcmdlciBudW1iZXJzIG9mIGRpc2tzIGV0Yy4KICAgCjIwMDEtMTEtMTYgMDU6MzEgIGpicG4KCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgICAtIGFkZCBzdXBwb3J0IGZvciBVbnNpZ25lZDMyL0dhdWdlMzIgdHlwZXMKICAgCjIwMDEtMTEtMTYgMDM6MjEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAgIC0gbW9yZSBjb25zdC1uZXNzIGluIHFzb3J0X2NvbXBhcmUgPT4gZmV3ZXIgd2FybmluZ3MKICAgCjIwMDEtMTEtMTYgMDI6NTQgIGpicG4KCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgICAtIHBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gYWRkIHByb3RvdHlwZXMgZm9yIHRpbWVyU2V0KCkgYW5kCiAgICAgICB0aW1lclBhdXNlKCkuCiAgIAoyMDAxLTExLTE2IDAyOjUyICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byAjaW5jbHVkZSA8Z3JwLmg+IGlmIHdlIGhhdmUgaXQKICAgCjIwMDEtMTEtMTYgMDI6NDcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgICAtIHBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gcmV0dXJuIGEgdmFsdWUgZnJvbQogICAgICAgbm90aWZ5VGFibGVfdW5yZWdpc3Rlcl9ub3RpZmljYXRpb25zKCkgdG8gYXZvaWQgd2FybmluZ3MKICAgCjIwMDEtMTEtMTYgMDI6NDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBtYWtlIHNpZ25hdHVyZSBvZiBxc29ydF9jb21wYXJlCiAgICAgICBmdW5jdGlvbiBtYXRjaCB0aGF0IGV4cGVjdGVkIGJ5IHFzb3J0KDMpIC0tIGFkZHMgY29uc3QgdG8gYXJncy4KICAgCjIwMDEtMTEtMTYgMDI6NDAgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBwYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIG1ha2UgZGVmaW5pdGlvbiBvZiBwcmludF90cmVlX25vZGUKICAgICAgIHN0YXRpYyB0byBtYXRjaCBmb3J3YXJkIGRlY2xhcmF0aW9uLgogICAKMjAwMS0xMS0xNSAxMDowMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBzdHJpY3RlciB0ZXN0IGZvciBudWxsIE9JRHMKICAgCjIwMDEtMTEtMTUgMDk6MjQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgICAtIGZpeCBiYWQtbG9va2luZyBleHByZXNzaW9uIHdoaWNoIHdhcyBjYXVzaW5nIHByb2JsZW1zIGRlc2NyaWJlZCBpbgogICAgICAgZW1haWwgdGl0bGVkICJEZWZlY3QgcmVwb3J0IG9uIFVDRCBTTk1QIHRvb2xraXQgKGNyYXNoIGluCiAgICAgICBrZXJuZWxfc3Vub3M1LmMpIiBzZW50IHRvIG5ldC1zbm1wLXVzZXJzIG9uIDIwMDEtMDctMTcuCiAgIAoyMDAxLTExLTE1IDA4OjMzICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIGRvY3VtZW50IHJlYWQtb25seSBuYXR1cmUgb2Ygc25tcEVuYWJsZUF1dGhlblRyYXBzLjAgaWYgdmFsdWUgaXMKICAgICAgIGNvbmZpZ3VyZWQgdmlhIHRoZSBhdXRodHJhcGVuYWJsZSB0b2tlbgogICAKMjAwMS0xMS0xNSAwODoyOCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3RyYXAuYywKICAgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYzoKCiAgICAgLSBtYWtlIHZhbHVlIG9mIHNubXBFbmFibGVBdXRoZW5UcmFwcy4wIHBlcnNpc3RlbnQuICBTZXR0aW5nIHZpYQogICAgICAgYSByZWFkLW9ubHkgY29uZmlndXJhdGlvbiBmaWxlIGFsc28gbWFrZXMgb2JqZWN0IG5vdFdyaXRhYmxlIChhcwogICAgICAgc3lzQ29udGFjdC4wIGV0IGFsLikuCiAgIAoyMDAxLTExLTE1IDA1OjE2ICBqYnBuCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTExYWdlbnR4c2V0LCBUMTIxcHJveHlzZXQ6CgogICAgIC0gdXNlIHBzeXNjb250YWN0IG5vdCBzeXNjb250YWN0IHRvIHNldCBpbml0aWFsIHZhbHVlIG9mIHN5c0NvbnRhY3QuMAogICAgICAgb2JqZWN0IHNpbmNlIHRoZSBsYXR0ZXIgYWxzbyBtYWtlcyB0aGUgb2JqZWN0IHJlYWQtb25seS4KICAgCjIwMDEtMTEtMTUgMDU6MDcgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBtaW5vciBmaXggdG8gZm9ybWF0dGluZyBvZiB1c2FnZSBtZXNzYWdlCiAgIAoyMDAxLTExLTE0IDE3OjU0ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMy5wcmUxICkKICAgCjIwMDEtMTEtMTQgMTc6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC5oOgoKICAgbnVtZXJpYyBjb21tZW50cyBpbiBib3RoIGhleCBhbmQgZGVjaW1hbAogICAKMjAwMS0xMS0xNCAxNzo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBpbmNsdWRlIElOVEVHRVIzMiBpbiBJTlRFR0VSIGNhc2UgY2hlY2tpbmcuCiAgIAoyMDAxLTExLTE0IDE3OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgdmVyc2lvbiB0YWcgcGVybC9TTk1QL1NOTVAucG0gd2l0aCB0aGUgdWNkLXNubXAgdmVyc2lvbiBudW1iZXIuCiAgIAoyMDAxLTExLTE0IDE2OjMwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1lbnRpb24gc25tcGNvbmYuCiAgIAoyMDAxLTExLTE0IDE2OjA2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHBhdGNoIGZyb20gSGFycmllIHRvIGZpeCBpbml0IGZ1bmN0aW9uIGNoZWNraW5nIGluIG1vZHVsZXMKICAgCjIwMDEtMTEtMTQgMTE6NTggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIC0gbWFrZSBhIG5ldyBjYWxsYmFjayBmb3IgcHJlLXVwZGF0ZS1jb25maWcgY29uZGl0aW9ucy4KICAgLSBtYWtlIHRoZSBzbm1wTm90aWZ5VGFibGUgbWFrZSB1c2Ugb2YgaXQgdG8gcmVtb3ZlICJyZWFkT25seSIgZW50cmllcwogICAgIHdoaWNoIHNob3VsZCBoYXZlIGJlZW4gZ2VuZXJhdGVkIHZpYSBjb25maWd1cmF0aW9uIHBhcnNpbmcuCiAgICAgLSBub3RlIHRoYXQgdGhpcyBkb2Vzbid0IHJlbW92ZSB0aGUgZ2VuZXJhdGVkIHRhcmdldCBlbnRyaWVzLCB3aGljaAogICAgICAgaXMgbm90IGlkZWFsLCBidXQgYXQgbGVhc3QgZHVwbGljYXRlIHRyYXBzIGFyZW4ndCBzZW50LgogICAKMjAwMS0xMS0xMyAxMToxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgUGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2ggdG8gbG9vayBmb3IgZXJpIGludGVyZmFjZXMuCiAgIAoyMDAxLTExLTEzIDA1OjI0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgICAtIHBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoIHRvIHF1aWV0ZW4gc29tZSBub2lzeSBsb2dnaW5nCiAgIAoyMDAxLTExLTEyIDIzOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBtaWIuYzoKCiAgIE1TIEMrKyB3YXJuaW5nIGZpeGVzIGZyb20gSGFycmllIEhhemV3aW5rZWwKICAgCjIwMDEtMTEtMTEgMjE6NDggIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jLCB3aW4zMi9jb25maWcuaDoKCiAgIFJlc3RvcmUgdGhlIG9sZCB2YWx1ZSBvZCBUSU1FX1dJVEhfU1lTX1RJTUUKICAgCjIwMDEtMTEtMDkgMTI6MjEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIEFkZGVkIGEgZ2VybWFueSBiYXNlZCBtaXJyb3IKICAgCjIwMDEtMTEtMDkgMTE6MjEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIG1lbnRpb24gbmV3IG1pcnJvcgogICAKMjAwMS0xMS0wOSAxMToyMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluOgoKICAgYXBwbGllZCBlbmdsaXNoL3R5cG8vY2hhbmdlcyBub3RlZCBpbiBidWcgIzQ3MTE3OQogICAKMjAwMS0xMS0wOSAwOTowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4IGJ1ZyA0NzkzNjU6IHVzZSBzdHJuY3B5IGluIHNubXBfYWRkX3ZhcigpLgogICAKMjAwMS0xMS0wOSAwNzo1MyAgaGFyZGFrZXIKCiAgICogd2luMzIvY29uZmlnLmg6CgogICBmaXggYnVnICM0NzQ0ODg6IGFkZCBleHRlcm4gQyB3cmFwcGVycwogICAKMjAwMS0xMS0wOSAwNzo0NyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBmaXggT0lEcyB0byBpbmNsdWRlIGVudHJ5IG5vZGUKICAgCjIwMDEtMTEtMDggMDk6NDMgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIFVOSVQgc3BlY3MgZm9yIHRoZSBmaWxlVGFibGUgdG8gc2F5IGtCIGV4cGxpY2l0bHkKICAgCjIwMDEtMTEtMDggMDk6NDIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWVudGlvbiB0aGF0IHRoZSBmaWxlVGFibGUgaXMgaW4ga0IuCiAgIAoyMDAxLTExLTA2IDA4OjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCB0a21pYjoKCiAgIGFkZCBmaXhlcyB0byBjaGVjayBmb3IgdGhlIFNOTVAgYW5kIFRrIHBlcmwgbW9kdWxlcyBhbmQgcHJpbnQgYSBiZXR0ZXIKICAgZXJyb3IgbWVzc2FnZSBpZiB0aGV5J3JlIG5vdCBhdmFpbGFibGUgdGVsbGluZyB1c2VycyBob3cgdG8gZ2V0IHRoZW0uCiAgIAoyMDAxLTExLTA2IDA4OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeCBhc25fYnVpbGRfYml0c3RyaW5nIHRvIGNoZWNrIGZvciBOVUxMIHZhbHVlcyAocG9pbnRlZCBvdXQgYnkgVGF0YSBLYWx5YW4pLgogICAKMjAwMS0xMS0wNiAwNzo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBsZW5ndGggY2hlY2sgZml4ZWQgZm9yIHdyYXBwZWQgYWRkaXRpb24uICBCdWcgcG9pbnRlZCBvdXQgYnkgVGF0YSBLYWx5YW4KICAgCjIwMDEtMTAtMzAgMjE6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmg6CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBtYWtlIHBhdGhzIG1vcmUgY29uZmlndXJhYmxlIGZyb20gd2l0aGluIEMgY29kZS4KICAgCjIwMDEtMTAtMzAgMDc6MTQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgICAtIGZpeCBidWcgd2hlcmVieSBpbnRlcmZhY2UgY291bnRlciBpcyBub3QgcmVzZXQsIG5vdGVkIGJ5IChhbW9uZ3N0CiAgICAgICBvdGhlcnMpIFZpY3RvciBLaXJoZW5zaHRlaW4gaW4gcGF0Y2ggIzQ3NDA2NC4KICAgCjIwMDEtMTAtMjYgMDk6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gZml4IGFnZW50eC9jbGllbnQgLT4gYWdlbnR4L3N1YmFnZW50IGhlbHAgbWVzc2FnZQogICAKMjAwMS0xMC0yNiAwMzozNCAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkb2N1bWVudCB0aGUgZmFjdCB0aGF0IHNldHRpbmcgc3lzTG9jYXRpb24uMCAoZXQgYWwuKSB2aWEgYQogICAgICAgc3lzbG9jYXRpb24gKG9yIGVxdWl2YWxlbnQpIHRva2VuIG1ha2VzIHRoZSBvYmplY3QgcmVhZC1vbmx5LAogICAgICAgcmV0dXJuaW5nIGEgbm90V3JpdGFibGUgZXJyb3IgcmVzcG9uc2UgaWYgYW4gYXR0ZW1wdCBpcyBtYWRlIHRvCiAgICAgICBTRVQgaXQuCiAgIAoyMDAxLTEwLTI0IDEwOjA4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgICAgLSBmaXggdHlwbyBub3RlZCBieSBUaW0gRGlldHoKICAgCjIwMDEtMTAtMjQgMDk6NTQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXN0ZW1fbWliLmMsIHN5c3RlbV9taWIuaDoKCiAgICAgLSBpbXBsZW1lbnQgcGVyc2lzdGVuY2UgZm9yIHN5c0xvY2F0aW9uLjAsIHN5c0NvbnRhY3QuMCBhbmQgc3lzTmFtZS4wCiAgIAogICAgIC0gcHJlc2VuY2Ugb2YgYSBzeXNsb2NhdGlvbiB0b2tlbiBpbiBzbm1wZC5jb25mIG1ha2VzIHN5c0xvY2F0aW9uLjAKICAgICAgIG5vbi13cml0YWJsZSAocmV0dXJucyBub3RXcml0YWJsZSBvbiBTRVQgYXR0ZW1wdHMpCiAgIAoyMDAxLTEwLTI0IDA1OjA4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAgIC0gZml4IHNtYWxsIG1lbW9yeSBsZWFrIGp1c3QgaW50cm9kdWNlZAogICAKMjAwMS0xMC0yNCAwMzozMyAgamJwbgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW46CgogICAgIC0gYXV0b2NvbmYgc3VwcG9ydCBmb3IgZGV0ZWN0aW5nIHBrZ2luZm8gaW50ZXJmYWNlIGluIGxpYmFkbS4gIFRoYW5rcwogICAgICAgdG8gU3RlZmFuIFJhZG1hbiAocGF0Y2ggIzQ3MzY2OSkuCiAgIAoyMDAxLTEwLTI0IDAzOjMwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAgIC0gdXNlIHBrZ2luZm8gaW50ZXJmYWNlIHRvIGRldGVybWluZSB0eXBlIG9mIHNvZnR3YXJlIHBhY2thZ2UgbW9yZQogICAgICAgc3BlY2lmaWNhbGx5IGlmIHBvc3NpYmxlLiAgU2xpZ2h0IHZhcmlhdGlvbiBvbiBwYXRjaCAjNDczNjY5LCBzdWJtaXR0ZWQKICAgICAgIGJ5IFN0ZWZhbiBSYWRtYW4uCiAgIAoyMDAxLTEwLTE3IDA3OjUyICBkdHMxMgoKICAgKiBGQVE6CgogICBNZW50aW9uIHRoZSBNUlRHIHR1dG9yaWFsIHdlYiBwYWdlcwogICAgIChhcyBzdWdnZXN0ZWQgYnkgQ2hyaXN0aWFuIFJvYm90dG9tIFJlaXMpCiAgIAoyMDAxLTEwLTA4IDEwOjU2ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMiApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4yLjEgLT4gVjQuMi4yCgkKMjAwMS0xMC0wOCAxMDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeVRhYmxlLmM6CgogICBBcHBseSBwYXRjaGVzIHN1Z2dlc3RlZCBpbiBidWcgIzQ2OTA4MiB0byBmaXggaWxsZWdhbCByb3cgY3JlYXRpb25zCiAgIHdoZW4gcm93c3RhdHVzIGlzIHNldCB0byBkZXN0cm95LgogICAKMjAwMS0xMC0wNiAwNzo0OSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgbWlub3IgdHdlYWtzIHRvIHRoZSBkb3dubG9hZCBsaXN0LgogICAKMjAwMS0xMC0wNiAwNzo0MiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkIERhdmlkIExhd3JlbmNlJ3MgdGV4dCBhYm91dCBjb250cmlidXRpbmcgcGF0Y2hlcy4KICAgCjIwMDEtMTAtMDUgMTg6MDkgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4yLnByZTYgKQogICAKMjAwMS0xMC0wNSAxODowMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBzbm1wbGliL210X3N1cHBvcnQuYywgc25tcGxpYi9tdF9zdXBwb3J0Lmg6CgogICBDaGFuZ2UgX1JFRU5UUkFOVCBkZWZpbmUgdG8gTlNfUkVFTlRSQU5UIHRvIG5vdCBjb25mbGljdCB3aXRoIEJTRC9PUyA0LjMuCiAgIAoyMDAxLTEwLTA1IDE3OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgcy9pcml4Lmg6CgogICBpcml4IHNwZWNpZmljIGZpeGVzIG1lbnRpb25lZCBpbiBidWcgIzQwNTQ1NAogICAKMjAwMS0xMC0wNSAxNzoyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBmaXggIzQ0MDgwOCBwb3NzaWJseSBvdmVyd3JpdGluZyBhIG9pZCBidWZmZXIuCiAgIAoyMDAxLTEwLTA1IDE2OjU5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mOgoKICAgZml4IHVuc2lnbmVkMzIgcmV0dXJuIHZhcmlhYmxlIHVzYWdlCiAgIAoyMDAxLTEwLTA1IDE2OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgbW92ZSBhcnB0YWJfY3VycmVudCBhbmQgYXJwdGFiX3NpemUgZGVmaW5pdGlvbnMgdXAgb3V0IG9mIGlmZGVmIG1lc3MuCiAgIAoyMDAxLTEwLTA1IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuYzoKCiAgIGRvbid0IGNyZWF0ZSByb3dzdGF0dXMgZW50cmllcyB3aXRoICdkZXN0cm95JyBhcyBpbml0aWFsIHZhbHVlLgogICAKMjAwMS0xMC0wNSAxNjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeVRhYmxlLmM6CgogICBmaXhlZCBVTkRPIGNsYXVzZXMuCiAgIAoyMDAxLTEwLTA1IDA4OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBmb3IgcGlja3kgY29tcGlsZXJzLgogICAKMjAwMS0xMC0wNSAwODo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgYmV0dGVyIGVycm9yIGRlc2NyaXB0aW9uIGZvciB0cmFwc2VzcwogICAKMjAwMS0xMC0wNSAwODo0OSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgQWRkZWQgbWlycm9yIHNpdGVzLgogICAKMjAwMS0xMC0wNSAwNzoxMCAgaGFyZGFrZXIKCiAgICogbWlicy86IFNNVVgtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dDoKCiAgIE1JQiBwcm9ibGVtcyBwb2ludGVkIG91dCBieSBNYXJlayBNYWxvd2lkemlraQogICAKMjAwMS0xMC0wNCAxNzowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIERvbid0IHdyaXRlIGEgbnVsbCBwYXN0IHRoZSBlbmQgb2YgdGhlIGNvbW11bml0eSBzdHJpbmcgYnVmZmVyLgogICAKMjAwMS0xMC0wNCAwNzoxNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQuY29uZi9leHRlbmRpbmcsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUGF0Y2ggZnJvbSBULiBKLiBNYXRoZXI6IERvY3VtZW50YXRpb24gb2YgdGhlIHBhc3NfcGVyc2lzdCBzbm1wZC5jb25mIHRva2VuLgogICAKMjAwMS0xMC0wNCAwNzoxNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvcGFzc19wZXJzaXN0dGVzdDoKCiAgIFBhdGNoIGZyb20gVC4gSi4gTWF0aGVyOiBBbiBleGFtcGxlIChwZXJsKSBwYXNzX3BlcnNpc3Qgc2NyaXB0LgogICAKMjAwMS0xMC0wNCAwMjoyMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGRpc2FibGUgc3RkZXJyIGxvZ2dpbmcgKGlmIHJlcXVlc3RlZCkgYmVmb3JlIGNhbGxpbmcgaW5pdF9taWJfbW9kdWxlcygpLgogICAgICAgVGhpcyBzaG91bGQgZml4IHRoZSBwcm9ibGVtIG5vdGVkIGJ5IE5pZ2VsIE1ldGhlcmluZ2hhbSBpbiBidWcgIzQxODg1NwogICAgICAgd2hlcmVieSB0aGUgQWdlbnRYIG1hc3RlciBtb2R1bGUgcHJpbnRzIGEgbWVzc2FnZSB0byBzdGRlcnIgd2hpY2ggY2F1c2VzCiAgICAgICBhIFNJR1BJUEUgd2hlbiB0aGUgYWdlbnQgaXMgc3RhcnRlZCBhcyBhIGRhZW1vbi4KICAgCiAgICAgICBBbHNvIG5vdGVkIHdpdGggZXh0ZW5zaXZlIGFuYWx5c2lzIGJ5IFRlZCBSdWxlIGluIGJ1ZyAjNDY3NTUxLgogICAKMjAwMS0xMC0wMyAxMToyMiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjIucHJlNSApCiAgIAoyMDAxLTEwLTAzIDExOjE2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi90b29scy5jOgoKICAgcHJvcGVyIGNvbnN0IGNhc3RpbmcgaW4gZnJvbnQgb2YgTWFya2t1J3MgY2FzdGluZyBwYXRjaC4KICAgCjIwMDEtMTAtMDMgMTE6MTAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi90b29scy5jOgoKICAgUGF0Y2g6IHByb3BlciBjYXN0cyBmb3IgcGlja3kgY29tcGlsZXJzIGZyb20gTWFya2t1IExhdWtrYW5lbi4KICAgCjIwMDEtMTAtMDMgMDk6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRvbid0IHJidWlsZCBiZXlvbmQgdGhlIGVuZCBvZiBhIGJ1ZmZlciAobmVlZGVkIGJ1ZmZlciArIGxlbmd0aCAiLSAxIikuCiAgIAoyMDAxLTEwLTAzIDA1OjM4ICBqYnBuCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgICAgLSBjaGFuZ2UgZXhwcmVzc2lvbiBhdCBsLiA0MTUgZnJvbToKICAgCiAgICAgICAgICAgKmtjc3RyaW5nKysgPSAqa2NzdHJpbmcgXiAqbmV3a2V5Kys7CiAgIAogICAgICAgd2hpY2ggaGFzIHVuZGVmaW5lZCBiZWhhdmlvdXIgdG86CiAgIAogICAgICAgICAgICprY3N0cmluZysrIF49ICpuZXdrZXkrKzsKICAgCiAgICAgICB3aGljaCBpcyBva2F5IChzaW5jZSAqa2NzdHJpbmcgaXMgb25seSBldmFsdWF0ZWQgb25jZSkuICBTaW1pbGFybHkKICAgICAgIGF0IGwuIDUzMC4gIFRoZSBwcmV2aW91cyBjb25zdHJ1Y3RzIGNhdXNlIHdhcm5pbmdzIHdpdGggR0NDMyBhbmQKICAgICAgIHNvbWUgb3RoZXIgY29tcGlsZXJzLiAgVGhhbmtzIHRvIE5pZWwgTWFya3dpY2sgd2hvIG5vdGVkIHRoaXMgaW4KICAgICAgIGJ1ZyAjNDY1OTY5LgogICAKMjAwMS0xMC0wMiAxODowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgQ2hhbmdlIG9pZCBsZW5ndGhzIHRvIHNpemVfdCBmcm9tIGludCAoc2VnZmF1bHRzIG9uIGFuIGFscGhhL2xpbnV4KS4KICAgCjIwMDEtMTAtMDIgMTc6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgQWRkIHByb3RvdHlwZSBmb3IgZ2V0VG90YWxTd2FwKCkuCiAgIAoyMDAxLTEwLTAyIDE3OjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgcmV0dXJuIE5PVF9XUklUQUJMRSBpbnN0ZWFkIG9mIFJFQURPTkxZIGFzIHBvaW50ZWQgb3V0IGJ5CiAgIGFyYWplc2hAaW5kaWEuYWR2ZW50bmV0LmNvbS4KICAgCjIwMDEtMTAtMDIgMTc6MDMgIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgUGF0Y2ggZnJvbSBNYXJjIE1vZWxsZXIgdG8gZGVmaW5lIHNucHJpbnRmIGFzIF9zbnByaW50ZgogICAKMjAwMS0xMC0wMiAxNzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgUGF0Y2ggZnJvbSBNYXJjIE1vZWxsZXIgdG8gY2hlY2sgZm9yIEhBVkVfTFBTVEFUIGJlZm9yZSBjYWxsaW5nIGl0LgogICAKMjAwMS0xMC0wMiAxNzowMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkIFJvbi4KICAgCjIwMDEtMTAtMDIgMTc6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBnZXRfdXB0aW1lKCkgaW1wbGVtZW50YXRpb24gZm9yIHdpbmRvd3MgZnJvbSBSb24gTWV2aXNzZW4uCiAgIAoyMDAxLTEwLTAxIDE3OjM4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMi5wcmU0ICkKICAgCjIwMDEtMTAtMDEgMTc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgbWFrZWZpbGVpbmRlcGVuZAogICAKMjAwMS0xMC0wMSAxNzozNyAgaGFyZGFrZXIKCiAgICogbWFrZWZpbGVpbmRlcGVuZC5wbDoKCiAgIHRyYW5zbGF0ZSAubyAtPiAubG8gYnkgaGFuZC4KICAgCjIwMDEtMTAtMDEgMTc6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9kaXNrLmMsIGhyX3ByaW50LmM6CgogICBBcHBsaWVkIHBhdGNoICM0NjU1NDUgdG8gZml4IGRlbGF5cyBpbiBob3N0IHJlc291cmNlcyBtaWIgd2hlbiBsb29raW5nCiAgIGF0IGRldmljZXMgYW5kIHByaW50ZXJzLgogICAKMjAwMS0xMC0wMSAxNjo0NSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgTmV3IHN0dWZmIGluIDQuMi4yCiAgIAoyMDAxLTEwLTAxIDE2OjM5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB3YWxrLmMsIG1hbi9zbm1wd2Fsay4xOgoKICAgbWFrZSBzbm1wd2FsayBkZWZhdWx0IHRvIGRldGVjdGluZyBpbGxlZ2FsIE9JRCBpbmNyZWFzZXMuICAtQ2MgdHVybnMKICAgaXQgb2ZmIGluc3RlYWQgb2Ygb24uCiAgIAoyMDAxLTEwLTAxIDEwOjM2ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgZWRpdGluZyB0d2Vha3MgYnkgSm9obiB0byBjb3VudCB0aGluZ3MgcHJvcGVybHkuICBXZXMgbG9vc2VzIHRoZQogICBhYmlsaXR5IHRvIGNvdW50IGJleW9uZCB0aGUgbnVtYmVyIDIuCiAgIAoyMDAxLTEwLTAxIDEwOjI2ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgZGl0dG8uCiAgIAoyMDAxLTEwLTAxIDEwOjIyICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgVmFyaW91cyBjb3B5cmlnaHQgdXBkYXRlcy4KICAgCjIwMDEtMTAtMDEgMDI6NTIgIGpicG4KCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgICAtIGFkZCAjaW5jbHVkZSAic25tcF9sb2dnaW5nLmgiIHRvIGF2b2lkIGNvbXBpbGF0aW9uIHByb2JsZW1zIG9uCiAgICAgICBzb21lIHBsYXRmb3JtcyBpbnRyb2R1Y2VkIGJ5IG5ldyBlcnJvciBtZXNzYWdlcy4gU2VlOgogICAgICAgPFVSTDpodHRwOi8vc291cmNlZm9yZ2UubmV0L3RyYWNrZXIvaW5kZXgucGhwP2Z1bmM9ZGV0YWlsJmFpZD00NjU4MDcmZ3JvdXBfaWQ9MTI2OTQmYXRpZD0xMTI2OTQ+CiAgIAoyMDAxLTA5LTI5IDA2OjA2ICBuYmEKCiAgICogc25tcGxpYi9taWIuaDoKCiAgIEFkZCBhIG1pc3NpbmcgcHJvdG90eXBlIGZvciBzbm1wX3JlYWxsb2NfYnlfdHlwZQogICAKMjAwMS0wOS0yOSAwNjowNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oOgoKICAgRml4IGEgYmFkICNpZmRlZiBwYXJhbnRoZXNlcwogICAKMjAwMS0wOS0yNiAxMDoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBzbXV4IGlzICpub3QqIGEgcHJvcGVyIGRlbGVnYXRpb24gc3ViYWdlbnQuCiAgIAoyMDAxLTA5LTI1IDEyOjQ2ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMi5wcmUzICkKICAgCjIwMDEtMDktMjUgMTE6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzY2FwaS5jLCBzY2FwaS5oOgoKICAgQmV0dGVyIGVycm9yIG1lc3NhZ2VzIHdoZW4gZW5jcnlwdGlvbiBzdXBwb3J0IGlzbid0IGF2YWlsYWJsZS4KICAgCjIwMDEtMDktMjUgMDc6NTkgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gcmVpbnN0YXRlIGFub3RoZXIgc3BhY2UgdGhhdCB3b3VsZCBtYWtlIHRoZSB0ZXN0IHN1aXRlIGZhaWwKICAgCjIwMDEtMDktMjUgMDc6NTMgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gcmVpbnN0YXRlIGEgbWlzc2luZyBzcGFjZQogICAKMjAwMS0wOS0yNSAwNTo0MyAgamJwbgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9sb2cuYywgc25tcHRyYXBkX2xvZy5oOgoKICAgICAtIGluY29ycG9yYXRlIHJld3JpdHRlbiBvdXRwdXQgZnVuY3Rpb25zIGZyb20gbWFpbiBicmFuY2ggdG8gYXZvaWQKICAgICAgIGZpeGVkIGxlbmd0aCBidWZmZXJzCiAgIAoyMDAxLTA5LTI1IDA1OjQxICBqYnBuCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgICAgLSB1c2UgcmVsb2NhdGluZyBidWZmZXIgdmVyc2lvbiBvZiBzcHJpbnQgZnVuY3Rpb25zCiAgIAoyMDAxLTA5LTI1IDA1OjQwICBqYnBuCgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmgsIHBhcnNlLmg6CgogICAgIC0gYWRkIHJlbG9jYXRpbmcgYnVmZmVyIGNvZGUgZnJvbSBtYWluIGJyYW5jaAogICAKMjAwMS0wOS0yNSAwNTozOSAgamJwbgoKICAgKiBzbm1wbGliLzogdG9vbHMuYywgdG9vbHMuaDoKCiAgICAgLSBhZGQgc25tcF9yZWFsbG9jKCkgYW5kIHNubXBfc3RyY2F0IGZ1bmN0aW9ucyB3aGljaCB0aGUgcmVsb2NhdGluZwogICAgICAgYnVmZmVyIGNvZGUgdXNlcwogICAKMjAwMS0wOS0yMSAxNzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgUGF0Y2ggZnJvbSBHbGVubiBNYW5zZmllbGQgdG8gZml4IGludGVyZmFjZSBjb3VudGluZyBvbiBpbnRlcmZhY2VzCiAgIHdpdGhvdXQgaXAgYWRkcmVzc2VzLgogICAKMjAwMS0wOS0yMCAxMjo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgY2hlY2sgc2tpcF93aGl0ZSgpIHJldHVybiAoYXMgbWVudGlvbmVkIGluIHBhdGNoICM0NjIyMDEpLgogICAKMjAwMS0wOS0yMCAxMTozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeGVkIGEgcG9zc2libGUgYnVmZmVyIG92ZXJmbG93IGJ1ZyBpbiBzcHJpbnRfYXNjaWlzdHJpbmcgYXMgcG9pbnRlZAogICBvdXQgYnkgYnVnICM0NjMyMjYuCiAgIAoyMDAxLTA5LTIwIDA5OjQ2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIERvbid0IHdhcm4gYWJvdXQgbWlzc2luZyBvcGVuc3NsIHVubGVzcyBleHBsaWNpdGx5IGFza2VkIChhbmQgdGhlbiBlcnJvcikuCiAgIAoyMDAxLTA5LTIwIDA5OjEyICBqYnBuCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMsIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgICAgLSBtb3ZlIGhlYWRlcnMgYXJvdW5kIHRvIGZpeCBjb21waWxhdGlvbiBvbiBTb2xhcmlzIDIuNzsgc3lzL3N0cmVhbS5oCiAgICAgICBuZWVkcyB0byBiZSBpbmNsdWRlZCBiZWZvcmUgc3lzL3NvY2tldHZhci5oIGZvciB0aGlzIHBsYXRmb3JtLgogICAKMjAwMS0wOS0yMCAwOTowOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgICAgLSByZW1vdmUgI2luY2x1ZGUgInN5c3RlbS5oIiB3aGljaCB1c2VzIHRoZSB0eXBlIGluX2FkZHJfdCB0aGVyZWJ5CiAgICAgICBjYXVzaW5nIHByb2JsZW1zLCBhbmQgc2VlbXMgdG8gYmUgdW5uZWNlc3NhcnkgYW55d2F5LgogICAKMjAwMS0wOS0yMCAwNjo1OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgTWFrZSBzdXJlIEhhcnJpZSdzIG5hbWUgaXMgaW4gdGhlIHBhdGNoZXMgUkVBRE1FIGFzIHdlbGwgYXMgdGhlIG1haW5saW5lLgogICAKMjAwMS0wOS0yMCAwNjo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuYywgbWliLmMsIHBhcnNlLmMsIHNubXBfYXBpLmMsCiAgIHNubXBfY2xpZW50LmMsIHNubXBfZGVidWcuYywgc25tcHVzbS5jOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIHByb3BlciBwcm90b3R5cGVzIGZvciBzb21lIGZ1bmN0aW9ucy4KICAgCjIwMDEtMDktMTkgMTc6MTkgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4yLnByZTIgKQogICAKMjAwMS0wOS0xOSAxNzowMSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjIucHJlMSApCiAgIAoyMDAxLTA5LTE5IDE2OjU5ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMiApCiAgIAoyMDAxLTA5LTE4IDE3OjIyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBVbmRvIE5pZWxzJyBjaGFuZ2UgdG8gYWxsb3cgY29tbWFuZCBsaW5lIG9wdGlvbnMgdG8gb3ZlcnJpZGUgLmNvbmYKICAgZmlsZXMuICBSaWdodCBnb2FsLCB3cm9uZyBicmFuY2ggdG8gZG8gaXQgaW4gYXMgaXQgYnJva2UgU05NUHYzIGFtb25nCiAgIG90aGVyIHRoaW5ncy4gIFRoZSBpbml0aWFsaXphdGlvbiBwcm9jZXNzIGlzIHJhdGhlciBzZW5zaXRpdmUgdG8KICAgb3JkZXJpbmcuCiAgIAoyMDAxLTA5LTE4IDE1OjA4ICBuYmEKCiAgICogcy9kYXJ3aW4uaDoKCiAgIEZpeCBhbiBvdmVyc2lnaHQgaW4gdGhlIERhcndpbiBwYXRjaAogICAKMjAwMS0wOS0xOCAxNTowOCAgbmJhCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRml4IGFuIG92ZXJzaWdodCBpbiB0aGUgRGFyd2luIHBhdGNoZXMKICAgCjIwMDEtMDktMTcgMDk6MDAgIG5iYQoKICAgKiBzL2Rhcndpbi5oOgoKICAgVGhlIGRhcndpbiBzeXN0ZW0gZmlsZSwgd2hpY2ggSSBmb3Jnb3Qgd2hlbiBjb21taXR0aW5nIHRoZSByZXN0IG9mCiAgIHRoZSBkYXJ3aW4gcGF0Y2guCiAgIAoyMDAxLTA5LTE3IDA3OjA3ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIGF1dG9oZWFkZXIgcnVuCiAgIAoyMDAxLTA5LTE3IDA0OjEzICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEZpeCBuZXdsaW5lcyBpbnNpZGUgdXNhZ2Ugc3RyaW5nLgogICAKMjAwMS0wOS0xNiAxNDo1NiAgbmJhCgogICAqIGFnZW50Lzogc25tcGQuYywgbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBNb3ZlIHRoZSBzbXV4X2xpc3Rlbl9zZCB2YXJpYWJsZSB0byBzbXV4LmMuIFRoaXMgd2F5IGl0IHdpbGwgYmUgaW4gdGhlCiAgIGxpYnJhcnkgc28gdGhlIGxpbmtlciB3b250IGJlIHVwc2V0IHdoZW4geW91IGxpbmsgd2l0aCB0aGUgYWdlbnQgbGlicmFyeS4KICAgCjIwMDEtMDktMTYgMTQ6NTIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLCBzL29wZW5ic2QuaDoKCiAgIFBhdGNoZXMgZm9yIE9wZW5CU0QgMi45CiAgIAoyMDAxLTA5LTE2IDE0OjQ5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBkaXNraW8gc3VwcG9ydCBmb3IgRnJlZUJTRDQuIFRoYW5rcyB0byBZaW1pbiBHZQogICAKMjAwMS0wOS0xNiAxNDoxNiAgbmJhCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgUGF0Y2hlcyB0byBzdXBwb3J0IERhcndpbiAoTWFjIE9TL1gpCiAgIFRoYW5rcyB0byBUZXggQ2xheXRvbiA8dGV4QGRhcnR3YXJlLmNvbT4KICAgCjIwMDEtMDktMTYgMTQ6MDMgIG5iYQoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMsIGFnZW50X3JlZ2lzdHJ5LmMsIG1pYmdyb3VwL21pYmluY2wuaCwKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBtaWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIG1pYmdyb3VwL21pYklJL2ljbXAuYywgbWliZ3JvdXAvbWliSUkvaXAuYywKICAgbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgbWliZ3JvdXAvbWliSUkvdGNwLmMsIG1pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgIG1pYmdyb3VwL21pYklJL3VkcC5jLCBtaWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgSGVhZGVyIHJlYXJyYW5nZW1lbnRzIHRvIG1ha2UgQlNEJ3MgaGFwcHkgYWZ0ZXIgdGhlIFdJTjMyIHBhdGNoCiAgIAoyMDAxLTA5LTE1IDA2OjA4ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIGFkZCBtaXNzaW5nIGFyZ3VtZW50IHRvIHNucHJpbnRmIChlcnJwcmUgY29ycmVzcG9uZGluZyB0byAlcykgLS0KICAgICAgIGl0IHdhcyBtaXNzaW5nIGZyb20gdGhlIHBhdGNoICgjNDUyMDI3KQogICAKMjAwMS0wOS0xNCAxNzoyOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAtIGRlYnVnZ2luZyBjb21waWxhdGlvbiBmaXhlcwogICAKMjAwMS0wOS0xNCAxNzoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBtYW55IG5lZWRlZCBjaGFuZ2VzIGZyb20gbWFpbmxpbmUgbWVyZ2VkIGludG8gcGF0Y2hlcyBicmFuY2gKICAgCjIwMDEtMDktMTQgMTU6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgUGF0Y2ggIzQ1MjAyNyBmcm9tIE1hcmN1cyBNZWlzc25lcjoKICAgICBzZWN1cml0eSBmaXggdG8gbWFrZSBzdXJlIHRoYXQgbG9uZyBhc24gbGVuZ3RocyBjYW4ndCBiZSB1c2VkIGFuZAogICAgIGFyZW4ndCBpbXByb3Blcmx5IGNhc2VkIHRvIGEgc2lnbmVkIHZhbHVlLgogICAKMjAwMS0wOS0xNCAxNDoyMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBwYXRjaCAjNDMyOTgyIGZyb20gSG9sbGlzOiBmaXggLS13aXRoLWxpYndyYXAgd2l0aG91dCBhIHBhdGggb3B0aW9uCiAgIAoyMDAxLTA5LTE0IDEzOjU4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIG1pYklJL3VkcFRhYmxlLmM6CgogICBTb2xhcmlzIHN1cHBvcnQgZm9yIHVkcFRhYmxlLgogICBUaGFua3MgdG8gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyIDxqc2ZASW50ZXJGYWNlLUFHLmNvbT4KICAgCjIwMDEtMDktMTQgMDk6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIGZyb20gcGF0Y2ggIzQyMzQ2NjogYWRkIGFiaWxpdHkgdG8gdXNlIHRoaXMgZmlsZSB3aXRoaW4gdGhlIHNvdXJjZSB0cmVlCiAgIAoyMDAxLTA5LTE0IDA5OjQ4ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaC5ib3JsYW5kOgoKICAgQWRkZWQgY29uZmlnLmggZmlsZSBmb3IgYm9ybGFuZCBjb21waWxlcnMgKHdoaWNoIGRpZmZlcnMgc2xpZ2h0bHkpLgogICAgIEZyb20gcGF0Y2ggIzQyMzQ2NgogICAKMjAwMS0wOS0xNCAwOToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgaXBBZGRyLmMsIHRjcC5jLCB0Y3BUYWJsZS5jLCB1ZHAuYywgdWRwVGFibGUuYywgdmFyX3JvdXRlLmM6CgogICBNaWItMiBzdXBwb3J0IGZvciBXaW5kb3dzIHN5c3RlbXMuCiAgICpNYW55KiB0aGFua3MgdG8gTGF0aGEgUywgZm9yIGZpbGxpbmcgdGhpcyBsb25nLWF3YWl0ZWQgbmVlZC4KICAgCjIwMDEtMDktMTQgMDk6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWNtcC5jLCBpcC5jLCBpcEFkZHIuYywgdGNwLmMsIHRjcFRhYmxlLmMsCiAgIHVkcC5jLCB1ZHBUYWJsZS5jOgoKICAgTW92ZSBwYWNrYWdlLXByb3ZpZGVkIGhlYWRlciBpbmNsdWRlcyAoJ21pYmluY2wnIGFuZCAndXRpbF9mdW5jcycpCiAgIHRvIGFmdGVyIHRoZSBzeXN0ZW0gaW5jbHVkZXMuICBUaGlzIHNob3VsZG4ndCBhZmZlY3QgbW9zdCBzeXN0ZW1zLAogICBidXQgaXMgbmVjZXNzYXJ5IGZvciB0aGUgV2luZG93cyBwb3J0LgogICAKMjAwMS0wOS0xNCAwODoyOCAgZHRzMTIKCiAgICogY29uZmlndXJlOgoKICAgUHJvcG9nYXRlIHRlc3QgZm9yIDxuZXRpbmV0L2lwX2ljbXAuaD4gdGhyb3VnaCB0byB0aGUgYml0IHRoYXQgZG9lcyB0aGUgd29yay4KICAgCiAgICAgKE91ciBpbGx1c3RyaW91cyBsZWFkZXIgY2xlYXJseSBoYXMgbm8gY29uZmlkZW5jZSBpbiB0aGUgY29tcGV0YW5jZQogICAgICBvZiBoaXMgbWluaW9ucy4gIEknZCB0YWtlIHVtYnJhZ2UsIGlmIGhlIHdhc24ndCByaWdodCEpCiAgIAoyMDAxLTA5LTE0IDA4OjAxICBkdHMxMgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLmluOgoKICAgQWRkIHRlc3QgZm9yIDxuZXRpbmV0L2lwX2ljbXAuaD4KICAgCjIwMDEtMDktMTQgMDc6NTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgIGlwQWRkci5jLCByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdGNwVGFibGUuYywgdWRwLmMsIHVkcFRhYmxlLmMsCiAgIHZhcl9yb3V0ZS5jOgoKICAgV3JhcCB2YXJpb3VzICNpbmNsdWRlcyB3aXRoIGFwcHJvcHJpYXRlICNpZiBIQVZFX1hYWF9IIGRlY2xhcmF0aW9ucwogICAod2hlcmUgdGhpcyBoYXMgbm90IGFscmVhZHkgYmVlbiBkb25lKS4KICAgCjIwMDEtMDktMTEgMTQ6NDcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jLCBtZW1vcnkuaCwgbWVtb3J5X2ZyZWVic2QyLmMsCiAgIG1lbW9yeV9mcmVlYnNkMi5oLCBtZW1vcnlfbmV0YnNkMS5jLCBtZW1vcnlfbmV0YnNkMS5oLAogICBtZW1vcnlfc29sYXJpczIuYywgbWVtb3J5X3NvbGFyaXMyLmgsIHZtc3RhdC5jLCB2bXN0YXQuaCwKICAgdm1zdGF0X2JzZGk0LmMsIHZtc3RhdF9ic2RpNC5oLCB2bXN0YXRfZnJlZWJzZDIuYywKICAgdm1zdGF0X25ldGJzZDEuYywgdm1zdGF0X3NvbGFyaXMyLmM6CgogICBNYWtlIHN1cmUgdGhhdCB0aGUgT0lEIGRlZmluZXMgYXJlIG9ubHkgaW4gb25lIHBsYWNlLiBObyBmdW5jdGlvbmFsIGNoYW5nZS4KICAgCjIwMDEtMDktMTEgMTQ6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmM6CgogICBIZWFkZXIgcmVvcmRlcmluZyB0byBhbGxvdyBkbWFsbG9jIHRvIHdvcmsuCiAgIAoyMDAxLTA5LTExIDE0OjMxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYzoKCiAgIEZpeCBhIG1pc3BsYWNlcyA7IGluIGEgbG9vcC4KICAgVGhhbmtzIHRvIE1hbGEgUmFtYWtyaXNobmFuIDxtYWxhQHJvdXRlc2NpZW5jZS5jb20+CiAgIGFuZCBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIgPGpzZkBJbnRlckZhY2UtQUcuY29tPgogICAKMjAwMS0wOS0xMCAxMToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgY2hhbmdlIGludGVyZmFjZSBjb3VudGluZyB0byBoYXBwZW4gbW9yZSBmcmVxdWVudGx5IHRvIGRldGVjdCBuZXcgY2FyZHMuCiAgICAgLSBzZWUgYnVnICM0NTcyOTAKICAgCjIwMDEtMDktMTAgMTE6MTEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhcGQuOCwgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCAtUCB0byB1c2FnZSBpdCBwcmludHMgdG8gc3RkZXJyIChidWcgIzQ1OTM3MikKICAgCjIwMDEtMDktMTAgMTA6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIGZpeCB3aGl0ZXNwYWNlIHBhcnNpbmcgYnVnIHJlcG9ydGVkIGl0IGJ1ZyAjNDU3MjY3LgogICAKMjAwMS0wOS0xMCAxMDo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICBhcHBseSBmcmVlYnNkIHNwZWNpZmljIHBhdGNoIGZyb20gYnVnIzQ1NTkyNCB0byBmaXggdm1zdGF0J3Mgc3dhcCByZXBvcnQuCiAgIAoyMDAxLTA5LTEwIDEwOjExICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFVzZSBhIG1vcmUgcG9ydGFibGUgREJQUlQgbWFjcm8uCiAgIAoyMDAxLTA5LTEwIDA5OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuYzoKCiAgIFJlbW92ZSByZWR1bmRhbnQgUm93U3RhdHVzIHZhbHVlIGNoZWNrcyBtZW50aW9uZWQgaW4gYnVnIzQ0OTUwMgogICAKMjAwMS0wOS0wNCAwNzoyMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGFkZCBtaXNzaW5nIGJyZWFrOyBhZnRlciBwcm9jZXNzaW5nIC1QIG9wdGlvbiwgbm90ZWQgYnkgQm90b25kCiAgICAgICBUYXJuYXkgKHNlZSBwYXRjaCAjNDU4MzI3KQogICAKMjAwMS0wOC0zMSAxMzoxOSAgbmJhCgogICAqIG1pYnMvOiBESVNNQU4tU0NSSVBULU1JQi50eHQsIE1ha2VmaWxlLm1pYiwgUkVBRE1FLm1pYnMsIHJmY2xpc3QsCiAgIHNtaXN0cmlwOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgdmVyc2lvbiBvZiBESVNNQU4tU0NSSVBULU1JQiwgYW5kIGEgZmV3IGNvc2V0aWMgY2hhbmdlcwogICB0byBzbWlzdHJpcCBldCBhbC4KICAgCjIwMDEtMDgtMzEgMTM6MTggIG5iYQoKICAgKiBsdGNvbmZpZzoKCiAgIFVwZGF0ZSB0byBsaWJ0b29sIDEuNC4gVGhpcyBlbnN1cmVzIHRoYXQgbWFrZSBpbnN0YWxsIHdpbGwgd29yayBmb3IgTmV0QlNECiAgIAoyMDAxLTA4LTMxIDEzOjE3ICBuYmEKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlLCBsdG1haW4uc2g6CgogICBVcGRhdGUgdG8gbGlidG9vbCAxLjQuIFRoaXMgd2lsIGVuc3VyZSB0aGF0IG1ha2UgaW5zdGFsbCB3b3JrIG9uIE5ldEJTRAogICAKMjAwMS0wOC0yOCAxNTowNCAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICBGaXggYSBiYWQgZml4CiAgIAoyMDAxLTA4LTI4IDE1OjAzICBuYmEKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wX2FnZW50LmgsIHNubXBfdmFycy5oOgoKICAgQysrIGJyYWNrZXQgdGhlIGluc3RhbGxlZCBzZ2VudCBoZWFkZXJzCiAgIAoyMDAxLTA4LTI4IDA3OjM1ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEZpeCBhIG1hbGZvcm1lZCBtdWx0aS1saW5lIHN0cmluZwogICAKMjAwMS0wOC0yOCAwMzowNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gYWRkIG1pc3NpbmcgI2luY2x1ZGUgPHRjcGQuaD4gaWYgdXNpbmcgbGlid3JhcCwgbm90ZWQgYnkgTmF0aGFuCiAgICAgICBOZXVsaW5nZXIgKHBhdGNoICM0NTM4MzEpLgogICAKMjAwMS0wOC0yOCAwMjozOCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGF2b2lkIHVzZSBvZiBwcmUtcHJvY2Vzc29yIGRpcmVjdGl2ZXMgaW5zaWRlIHByaW50ZigpIGNhbGwsIHdoaWNoCiAgICAgICBpcyBhIG1hY3JvIGluIGdsaWJjLCBtYWtpbmcgdGhpcyBhbiB1bmRlZmluZWQgYmVoYXZpb3VyCiAgICAgICBjb25zdHJ1Y3QgKHdoaWNoIEdDQyAzLjAgcmVmdXNlcyB0byBjb21waWxlKS4gIFNlZSBidWcgIzQ1NTgwNCBmb3IKICAgICAgIGZ1cnRoZXIgZGV0YWlscy4KICAgCjIwMDEtMDgtMjcgMjI6MTUgIG5iYQoKICAgKiBtYW4vOiBzbm1wX2NvbmZpZy41LmRlZiwgc25tcGQuY29uZi41LmRlZiwgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBGaXggc29tZSBwbGFjZXMgd2hlcmUgYWN0dWFsIGxpbmVzIHN0YXJ0ZWQgd2l0aCBhIHBlcmlvZC4KICAgCjIwMDEtMDgtMTcgMTU6MTIgIG5iYQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBGaXggbWlzc3BlbGxlZCBtYW4gcGFnZSBuYW1lIChzbm1wZXJyb3IgPT4gc25tcF9wZXJyb3IpCiAgIAoyMDAxLTA4LTE3IDE1OjA5ICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLm1pYiwgbWliZmV0Y2g6CgogICBJQU5BIGhhcyBtb3ZlZCB0aGVpciBtaWJzIGludG8gYW4gaWFuYS5taWIgZGlyZWN0b3J5LgogICBGaXggUkZDIG51bWJlciBmb3IgUk1PTi1NSUIuCiAgIE1ha2UgIm1ha2UgYWxsbWFpYnMiIGV4dHJhY3QgbWlicyB0byBhbm90aGVyIGRpcmVjdG9yeS4KICAgCjIwMDEtMDgtMTcgMTU6MDMgIG5iYQoKICAgKiBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWI6CgogICBZZXQgYW5vdGhlciB1cGRhdGUgZnJvbSBmdHAuZ251Lm9yZwogICAKMjAwMS0wOC0xNyAxNDowOSAgbmJhCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuYzoKCiAgIEFkZCBzb21lIG5lZWRlZCBlcnJvciBjaGVja2luZyB0byB0aGUgdWlkL2dpZCBwYXJzaW5nIGNvZGUuCiAgIEFsbG93IHN5bWJvbGljIHVpZC9naWQgZnJvbSB0aGUgY29tbWFuZCBsaW5lLgogICAKMjAwMS0wOC0xNyAxNDowNyAgbmJhCgogICAqIEZBUToKCiAgIEFkZCBhIG1pc3NpbmcgYXJndW1lbnQgdG8gdGhlIHNubXB0cmFwIGV4YW1wbGVzLgogICAKMjAwMS0wOC0wNyAxNDo1NSAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBzbm1wbGliL21pYi5jOgoKICAgVGltZXRpY2tzIGFyZSB1bnNpZ2VkISBUaGFua3MgdG8gSm9zaCBXaWxtZXMgPGpvc2gtdWNkQGhpdGNoaGlrZXIub3JnPgogICAKMjAwMS0wOC0wNyAxNDo0MiAgbmJhCgogICAqIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENoYW5nZXMgdG8gYWxsb3cgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyB0byBvdmVycmlkZSBzbm1wLmNvbmYgc2V0dGluZ3MuCiAgIAoyMDAxLTA4LTA3IDE0OjAyICBuYmEKCiAgICogbWlicy86IElBTkFpZlR5cGUtTUlCLnR4dCwgcmZjbGlzdDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IHZlcnNpb24gb2YgSUFOQWlmVHlwZS1NSUIuCiAgIEFkZCByZmMgMzE0NCBJTlRFUkZBQ0VUT1BOLU1JQiB0byByZmNsaXN0LgogICAKMjAwMS0wOC0wNyAxNDowMCAgbmJhCgogICAqIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YjoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IHZlcnNpb24gZnJvbSBmdHAuZ251Lm9yZwogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgbWFuL01ha2VmaWxlLmluLCBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjMsIG1hbi9zbm1wX2Vycm9yLjMsCiAgIG1hbi9zbm1wX3BlcnJvci4zLCBtYW4vc25tcF9zZXNzX3BlcnJvci4zLCBtYW4vc25tcGNtZC4xLAogICBtYW4vc25tcHRyYXBkLjg6CgogICBBIGJ1bmNoIG9mIG1pbm9yIGZpeGVzIHRvIHVzYWdlIG1lc3NhZ2VzIGFuZCBtYW51YWwgcGFnZXMuCiAgIAoyMDAxLTA4LTA3IDEzOjU2ICBuYmEKCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgRml4IHBhcnNpbmcgb2Ygb2lkIHZhbHVlcyBmb3Igc2V0CiAgIAoyMDAxLTA4LTA3IDA3OjA5ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZml4IGZvciBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IGluIGxvZ2ZpbGUgYXJndW1lbnQgaGFuZGxpbmcsCiAgICAgICBub3RlZCBieSBBbm9ueW1vdXMgKGJ1ZyAjNDQ4MjQzKS4gIEFsc28gdXNlIGEgbGFyZ2UgZW5vdWdoIGJ1ZmZlcgogICAgICAgdG8gaGFuZGxlIGZpbGVuYW1lcyBvZiBsZW5ndGggUEFUSF9NQVggKGlmIHBvc3NpYmxlKS4KICAgCjIwMDEtMDctMjYgMDE6NDAgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gaW5pdGlhbGlzZSBidWZmZXJzIHRvIHplcm8gaW4gaGFuZGxlX3dyYXBfZm10LCB0byBhdm9pZCBnYXJiYWdlIGluCiAgICAgICBkaXNwbGF5IG9mIHNlY3VyaXR5IHBhcmFtZXRlcnMsIGFzIG5vdGVkIGJ5IFdpbGxpYW0gRnJhdWVuaG9mZXIKICAgICAgIChidWcgIzQzNzIzMSkuCiAgIAoyMDAxLTA3LTIzIDEwOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBjYXJlZnVsbHkgY29uc3RydWN0IHRtcCBmaWxlIG5hbWVzLgogICAKMjAwMS0wNy0yMyAxMDo1MyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wZC5jOgoKICAgdXNlIHNldGdyb3VwcyB3aGVuIGF2YWlsYWJsZS4KICAgCjIwMDEtMDctMTEgMDc6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5oOgoKICAgYWRkIE5FVFdPUkstU0VSVklDRVMtTUlCIHRvIG1pYiByZXF1aXJlIGxpc3QKICAgCjIwMDEtMDctMDkgMTE6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGZpeCB0cmFwc2VzcyBwYXJzaW5nIHNvIGFzIHRvOgogICAgIC0gc2V0IHRoZSBkZWZhdWx0IHBvcnQgdG8gMTYyCiAgICAgLSBkb24ndCBmcmVlIG1lbW9yeSBwYXNzZWQgdG8gc25tcF9wYXJzZV9hcmdzKCkgc2luY2UKICAgICAgIHNubXBfcGFyc2VfYXJncyBpcyBicm9rZW4gYW5kIG5lZWRzIHRvIGNvcHkgbWVtb3J5IHJhdGhlciB0aGFuCiAgICAgICBqdXN0IG1ha2UgdXNlIG9mIGl0LgogICAKMjAwMS0wNi0yNyAxNTo0OCAgbmJhCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgU2ltcGxlIGZpeCB0byB0cmFwc2VzcyBhcmd1bWVudCBsaXN0CiAgIAoyMDAxLTA2LTI1IDA4OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgc3VwcG9ydCAnbWlicyAiIicuCiAgIAoyMDAxLTA2LTIyIDEzOjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBBbGxvdyBpbnRlcmZhY2Ugc25tcGQuY29uZiB0b2tlbnMgdG8gY29tcGxldGVseSBvdmVycmlkZSBzeXN0ZW0KICAgdmFsdWVzLiAgW2J1ZyM0MjY5NzVdCiAgIAoyMDAxLTA2LTIyIDExOjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgZGVmaW5lIHVsb25nX3JldAogICAKMjAwMS0wNi0yMiAwMTo0NCAgZHRzMTIKCiAgICogRkFRLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEluY2x1ZGUgYSB3YXJuaW5nIG9mIHRoZSBleHBlcmltZW50YWwgbmF0dXJlIG9mIEFnZW50WCBpbiB0aGUgbWFuIHBhZ2UsCiAgIGFuZCB1cGRhdGUgdGhlIEZBUSB0byByZWZsZWN0IHRoZSBmdWxsZXIgaW50ZWdyYXRpb24gb2YgdGhpcyBzdXBwb3J0LgogICAKMjAwMS0wNi0yMSAxNToyMiAgbmJhCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBFbGltaW5hdGUgbG9uZyBsb25nIHZhcmlhYmxlcwogICAKMjAwMS0wNi0yMSAxNToyMiAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBXYXJuIGFib3V0IGRlcHJlY2F0ZWQgLWIgLXcgYW5kIC1pIG9wdGlvbnMuCiAgIAoyMDAxLTA2LTIxIDE1OjE1ICBuYmEKCiAgICogbWFuLzogc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsIHNubXBzZXQuMSwgc25tcHdhbGsuMToKCiAgIFVwZGF0ZSB0aW1lIHN0YW1wcwogICAKMjAwMS0wNi0yMSAxNTowOSAgbmJhCgogICAqIG1hbi9zbm1wdHJhbnNsYXRlLjE6CgogICBBZGQgLW0gYW5kIC1NIG9wdGlvbnMgdG8gaGVhZGVyLiBVcGRhdGUgU0VFIEFMU08gdG8gcmVmZXJlbmNlIHNubXBjbWQKICAgYW5kIFJGQyAyNTc4LTgwIGluIHBsYWNlIG9mIDExNTUKICAgCjIwMDEtMDYtMjEgMTU6MDEgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBGaXggcGFyc2luZyBvZiB4eCAuLi46Oj0geyB5eSB9CiAgIAoyMDAxLTA2LTIxIDEwOjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmM6CgogICB0eXBvcyAoSU9EIC0+IE9JRCkKICAgCjIwMDEtMDYtMjEgMTA6MTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSBtZW50aW9uICJtYXN0ZXIgYWdlbnR4IgogICAtIGZpeCBjb25maWcgZmlsZSByZS1yZWFkaW5nIG9pZC4KICAgCjIwMDEtMDYtMjEgMTA6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIG1ha2Ugc3lzY29udGFjdCBhbmQgc3lzbG9jYXRpb24gYWNjZXB0ICIiIHN0cmluZ3MuCiAgIAoyMDAxLTA2LTIxIDA5OjM0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgbWFuL3NubXB0cmFuc2xhdGUuMToKCiAgIC0gQXBwbGllZCBhcmcgZG9jdW1lbnRhdGlvbiBwYXRjaCBmcm9tIERhdmlkIEVpc25lcgogICAKMjAwMS0wNi0xNCAyMzoxOSAgbmJhCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgIERvY3VtZW50IC1uIG9wdGlvbgogICAKMjAwMS0wNi0xMiAxNToxNCAgbmJhCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgUHJvcGVybHkgZGV0ZWN0IGFuZCBkaWFnbm9zZSBiYWQgYm9vbGVhbiBhbmQgaW50ZWdlciBjb25maWd1cmF0aW9uIHZhbHVlcwogICAKMjAwMS0wNi0xMiAxNToxMiAgbmJhCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcGRmLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgc25tcHN0YXR1cy5jLCBzbm1wdHJhcC5jLCBzbm1wdXNtLmMsIHNubXB2YWNtLmMsIHNubXB3YWxrLmM6CgogICBQcm9wZXJseSBkaWFnbm9zZSBiYWQgLUMgb3B0aW9ucwogICAKMjAwMS0wNi0xMiAwNzoyNCAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRml4ICd1bnJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyJyB0byBoYW5kbGUgdGFncyBvdGhlcgogICB0aGFuIHRoZSBmaXJzdCBpbiB0aGUgbGlzdC4gIChUaGFua3MgdG8gUGF1bCBTZXJpY2UpLgogICAKMjAwMS0wNi0xMSAxNTo0NCAgbmJhCgogICAqIGFwcHMvc25tcHdhbGsuYywgbWFuL3NubXB3YWxrLjE6CgogICBBZGQgYW4gb3B0aW9ucyAoLUNjKSB0byBzbm1wd2FsayB0aGF0IHdpbGwgdmFsaWRhdGUgdGhhdCB0aGUgcmV0dXJuZWQgb2JqZWN0cwogICBhcmUgaW5kZWVkIGxleGljb2dyYXBoaWNhbGx5IGluY3JlYXNpbmcuCiAgIAoyMDAxLTA2LTExIDE1OjQzICBuYmEKCiAgICogYXBwcy9zbm1wc2V0LmMsIG1hbi9zbm1wc2V0LjEsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFsbG93IGEgc2ltcGxlciBzbm1wc2V0IG5vdGF0aW9uIHdoZW4gTUlCIGRhdGEgYXJlIGxvYWRlZDogVXNpbmcgJz0nIGZvcgogICB0eXBlIHR5cGUgd2lsbCBpbmZlciBpdCBmcm9tIHRoZSBNSUIuCiAgIAoyMDAxLTA2LTExIDE1OjM5ICBuYmEKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgRml4IHNvbWUgbG9uZyBzdGFuZGluZyBidWdzIHdoZW4gc2V2ZXJhbCBNSUIgZmlsZXMgZGVmaW5lIHRoZSBzYW1lIG9iamVjdHMKICAgd2l0aCBkaWZmZXJlbnQgbmFtZXMuIEhvcGVmdWxseSB0aGUgcmVzdWx0cyB3aWxsIGJlIGNvbnNpc3RlbnQgbm93LgogICAKMjAwMS0wNi0xMSAxMjoxMiAgbmJhCgogICAqIGFwcHMvc25tcGRlbHRhLmMsIHNubXBsaWIvaW50NjQuYzoKCiAgIEFub3RoZXIgdHJ5IGF0IENvdW50ZXI2NCBwcm9ibGVtcywgdGhhbmtzIHRvIEphc29uIEdsb3Vkb24gPHNubXBAZ2xvdWRvbi5jb20+CiAgIAoyMDAxLTA2LTExIDExOjUyICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBGaXggZm9yIGEgbWlzc2luZyAwLWJ5dGUgdG8gdGVybWluYXRlIGNvbW11bml0eSBzdHJpbmcuCiAgIFRoYW5rcyB0byAiS1VCT1RBLFRha2F5YSIgPHRha2F5YUBwby5udHRzLmNvLmpwPi4KICAgCjIwMDEtMDYtMDYgMjE6MzggIG5iYQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBVc2UgPHV0bXB4Lmg+IGlmIGF2YWlsYWJsZSAodG8gZml4IGNvdW50aW5nIHVzZXJzIGZvciBTb2xhcmlzKQogICAKMjAwMS0wNi0wNiAyMTozMyAgbmJhCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIE1lbnRpb24gLXMgYW5kIC1QIHBpZGZpbGUgYXJndW1lbnRzCiAgIAoyMDAxLTA2LTA2IDIxOjMyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBGaXggc2VuZGluZyBvZiB0cmFwcyB3aXRob3V0IHZhcmJpbmRzCiAgIAoyMDAxLTA2LTA2IDIxOjMxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgTW9yZSBtZWFuaW5nZnVsIGFyZ3VtZW50cyB0byBzZXRQZXJyb3JzdGF0dXMgKHRydWUgZmlsZSBuYW1lcykKICAgCjIwMDEtMDUtMTcgMTI6MzYgIG5iYQoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgRml4IGEgVHJ1bHkgU3R1cGlkIEJ1ZyB0aGFua3MgdG8gS2F0c3VoaXNhIEFCRSA8YWJla2F0c3VAY3lzb2xzLmNvbT4KICAgCjIwMDEtMDUtMDQgMDk6NDUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBSZW1vdmUgZHVwbGljYXRlIGwgZnJvbSAlbGxkIHByaW50ZiBzeW50YXgKICAgCjIwMDEtMDUtMDQgMDc6MDAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zYWxsIG1pYl9tb2R1bGVfY29uZmlnLmgKICAgCjIwMDEtMDUtMDMgMTA6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBhZGQgc25tcC10Yy5oIHRvIGluc3RhbGwgbGlzdAogICAKMjAwMS0wNS0wMiAwNzowOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEFkZCAtVCBmbGFnIHRvIHVzYWdlIG91dHB1dC4KICAgCjIwMDEtMDUtMDEgMTI6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBGaXggdXNlIG9mIGEgLTEgYXNzaWduZWQgdG8gYSB1X2xvbmcgYXMgYSBmYWlsdXJlIGNoZWNraW5nIGNhc2UuCiAgIAoyMDAxLTA0LTIzIDE3OjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGZpeCB3YWxrIHByb2JsZW0gb25jZSBhbmQgZm9yIGFsbC4KICAgCjIwMDEtMDQtMTcgMTI6MjkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBHZXQgZGF0YSBmb3IgaHJTV1J1blBlcmZUYWJsZSBmb3IgY3lnd2luIHVuZGVyIE5UIChvciBiZXR0ZXIpCiAgIAoyMDAxLTA0LTE3IDExOjMzICBuYmEKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFVwZGF0ZSB0byBhIHJlY2VudCB2ZXJzaW9uIG9mIGNvbmZpZy5ndWVzcy9jb25maWcuc3ViLiBVcGRhdGUgY29uZmlndXJlCiAgIHRvIGhhbmRsZSB0aGUgbmV3IE5ldEJTRCB2YXJpYW50IHRoYXQgaW5jbHVkZSB0aGUgb2JqZWN0IGZvcm1hdC4KICAgCjIwMDEtMDQtMTIgMDU6MTIgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEJldHRlciBmaXggZm9yIGJ1ZyAjNDE0ODU1IGZyb20gYXJhamVzaAogICBIYW5kbGVzIG5vbi1yZXBlYXRlcnM9MCBhcyB3ZWxsLCBhbmQgYXZvaWRzIG1lbW9yeSBsZWFrcy4KICAgCjIwMDEtMDQtMTEgMDY6MDEgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEhhbmRsZSBHZXRCdWxrIHJlcXVlc3RzIHdpdGggbWF4LXJlcGV0aXRpb25zPTAgcHJvcGVybHkgKGJ1ZyAjNDE0ODU1KQogICAKMjAwMS0wNC0xMCAwOTozMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIGZpeGVkIHNlZ2ZhdWx0IHdoZW4gcm93IGhhcyBob2xlcy4KICAgCjIwMDEtMDQtMDYgMTY6MjAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIEFkZGVkIGRvY3VtZW50b3Rpb24gZm9yIC1PdAogICAKMjAwMS0wNC0wNiAwNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgdHJhcHMvaW5mb3JtcyByZXZlcnNlZAogICAKMjAwMS0wNC0wNSAwOTozNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlIGZyb20gc25tcF9vaWRfbWluX2NvbXBhcmUuCiAgIAoyMDAxLTA0LTA1IDA5OjEzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIEZpeCBzbm1wX29pZF9jb21wYXJlIGFuZCByZXZlcnNlIGVuY29kaW5ncyB0byBkZWFsIHdpdGggbnVtYmVycyA+IDJeMzEuCiAgIAoyMDAxLTA0LTA1IDA4OjIxICBzbGlmCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIHVzZSBtYWxsb2MgdG8gZGVjcmVhc2Ugc3RhY2sgc2l6ZSBpbiBzbm1wZF9wYXJzZV9jb25maWdfdHJhcHNlc3MuCiAgIAoyMDAxLTA0LTA1IDA2OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIEV4dGVuZCByZWNlbnQgJ3Bhc3MnIGNoYW5nZXMgdG8gJ3Bhc3NfcGVyc2lzdCcuICAoVGhhbmtzLCBNaWtlISkKICAgCjIwMDEtMDQtMDUgMDI6MjcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIEhhbmRsZSBzZXR0aW5nIG51bGwgc3RyaW5nIHZhbHVlcyB2aWEgdGhlICdwYXNzJyBtZWNoYW5pc20uIChTdXBwb3J0IzQwNjcyOCkKICAgQWxzbyBoYW5kbGUgZW1iZWRkZWQgd2hpdGVzcGFjZSBpbiBzdWNoIHZhbHVlcy4KICAgCjIwMDEtMDQtMDQgMTQ6NTYgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4xICkKICAgCjIwMDEtMDQtMDQgMTQ6NTUgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgQ2hhbmdlIHdvcmRpbmcgdG8gc2F5IDQuMiBsaW5lIGlzIHRoZSBsYXN0IHRvIHVzZSB0aGUgdWNkLXNubXAgbmFtZS4KICAgCjIwMDEtMDQtMDQgMTQ6NTEgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIENoYW5nZUxvZwogICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMiAtPiBWNC4yLjEKCjIwMDEtMDQtMDQgMTQ6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIGZpeCBtaXNzaW5nIHZhcmlhYmxlIG9uIHNvbGFyaXMgMi42CiAgIAoyMDAxLTA0LTA0IDE0OjAyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICB1c2Uga2lsbCAtVEVSTSBpbnN0ZWFkIG9mIGtpbGwgLVNJR1RFUk0gZm9yIHBvcnRhYmlsaXR5IChicmVha3Mgb24gc29sYXJpcykuCiAgIAoyMDAxLTA0LTA0IDEyOjM5ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIENsZWFudXAgZGVidWcgbWVzc2FnZXMsIGJ1aWxkLgogICAKMjAwMS0wNC0wNCAwOToxOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmM6CgogICBGaXggbmV0d29yayBieXRlIG9yZGVyIGZvciBJcEFkZHJlc3MgZGlzcGxheWVkLgogICAKMjAwMS0wNC0wNCAwODo1MCAgc2xpZgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgcXVpZXQgZXhpdCBvbiBTSUdURVJNL1NJR0lOVCwgc2FtZSBhcyBzbm1wZC4KICAgCjIwMDEtMDQtMDQgMDg6NDkgIGhhcmRha2VyCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jLCBhdXRvX25saXN0Lmg6CgogICBmaXggZm9yIGF1dG9fbmxpc3QgYm9ndXMgZGVmaW5pdGlvbnMgZm9yIG1hY2hpbmVzIHdpdGhvdXQgbmxpc3QuCiAgIAoyMDAxLTA0LTA0IDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgdXBkYXRlIHRvIHdoZW4gYWdlbnQgcmVtb3ZlcyAiY3JlYXRlVXNlciIgZGlyZWN0aXZlcy4KICAgCjIwMDEtMDQtMDQgMDg6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBBcHBsaWVkIHBhdGNoICM0MTIwODA6IGFkZCBmcmVlYnNkNSB0byBtb2R1bGUgaW5jbHVkZSBsaXN0LgogICAKMjAwMS0wNC0wNCAwODoxMiAgZHRzMTIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIERvY3VtZW50IGhvdyB0byBlbmFibGUgdGhlIEFnZW50WCBmYWNpbGl0eSBpbiB0aGUgbWFzdGVyIGFnZW50LgogICAKMjAwMS0wNC0wNCAwNzo1OSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBmaXggYnVnICM0MTE5MTc6IGNoYW5nZSB3YWxrIGVuZCBjb25kaXRpb24gYXMgc3VnZ2VzdGVkIGJ5IHN1Ym1pdHRlci4KICAgCjIwMDEtMDQtMDQgMDc6NDMgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENoYW5nZSAnTGluZScgdmFyaWFibGUgbmFtZSwgdG8gYXNzaXN0IHdpdGggTWFjIHBvcnQuCiAgIAoyMDAxLTA0LTA0IDA3OjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgRml4IHR5cG8gaW4gY2FzdCAobWlzc2luZyAnc3RydWN0JykKICAgCjIwMDEtMDQtMDQgMDc6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFVzZSBhIGxhcmdlciBtYWxsb2NlZCBidWZmZXIgd2hlbiBkZWNvZGluZyBhIGxhcmdlIGluY29taW5nIGVuY3J5cHRlZCBtZXNzYWdlLgogICAKMjAwMS0wNC0wNCAwNzozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBMaW1pdCBzaXplIG9mIGhleCBtZXNzYWdlcyB0byAxLzV0aCBidWZmZXIgc2l6ZSAodG8gYmUgc2FmZSkuCiAgIAoyMDAxLTA0LTA0IDA3OjI0ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgLSBjYWxsIGV4dGVybmFsIHNpZ25hbCBoYW5kbGVycyBiZWZvcmUgY2FsbGluZyBzbm1wX3NlbGVjdF9pbmZvKCksCiAgICAgIHJhdGhlciB0aGFuIGFmdGVyIGNhbGxpbmcgc25tcF9zZWxlY3RfaW5mbygpIGJ1dCBiZWZvcmUgc2VsZWN0KCkuCiAgICAgIFRoaXMgZml4ZXMgYSBwb3RlbnRpYWwgcHJvYmxlbSB0aGF0IGNvdWxkIGFyaXNlIGlmIGEgc2lnbmFsIGhhbmRsZXIKICAgICAgY2xvc2VkIGEgc2Vzc2lvbiwgd2hpY2ggd291bGQgY2F1c2Ugc2VsZWN0KCkgdG8gcmV0dXJuIC0xIHdpdGgKICAgICAgRUJBREYsIGFuZCB0aHVzIHRlcm1pbmF0ZSB0aGUgYWdlbnQuCiAgIAoyMDAxLTA0LTA0IDA2OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBFbnN1cmUgdGhhdCBjaGVja2luZyBmb3IgJ3N0YXR2ZnMnIGlzIGRvbmUgY29uc2lzdGVudGx5CiAgIAoyMDAxLTA0LTA0IDA2OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBlbnN1cmUgdGhhdCAnZXhlY19jb21tYW5kJyBpcyB1c2VkIGNvbnNpc3RlbnRseSB3aXRoIHRoZSBhdmFpbGFiaWxpdHkgb2YgZXhlY3YKICAgCjIwMDEtMDQtMDQgMDY6NDUgIGR0czEyCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hcGkuYywgc25tcF9sb2dnaW5nLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDMgMjI6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgRml4IG1heGltdW0gZW5jcnlwdGVkIHBhY2tldCBsZW5ndGggc3VwcG9ydCBmb3IgcmV2ZXJzZSBlbmNvZGVkIHBhY2tldHMuCiAgIAoyMDAxLTA0LTAzIDE4OjA3ICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0OgoKICAgZml4IHJ3Y29tbXVuaXR5CiAgIAoyMDAxLTA0LTAzIDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC93ZXNyZXN0YXJ0OgoKICAgcmVtb3ZlIG9sZCB1bnVzZWQgc2NyaXB0CiAgIAoyMDAxLTA0LTAzIDE2OjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQuY29uZi9vcGVyYXRpb246CgogICBBZGQgc25tcGNvbmYgZGlyZWN0aXZlIHN1cHBvcnQgZm9yIHRoZSBuZXcgIm1hc3RlciIgdG9rZW4uCiAgIAoyMDAxLTA0LTAzIDE2OjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIEZpeCBidWcgaW4gbWVudXMgZm9yIGNvbmZpZ3VyYXRpb24gZmlsZXMgY29udGFpbmluZyBvbmx5ICJncm91cHMiLgogICAKMjAwMS0wNC0wMyAxNjo0MCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQ2hhbmdlIG15IG5hbWUgLT4gbmV0LXNubXAgZGV2ZWxvcGVycy4KICAgCjIwMDEtMDQtMDMgMTU6MzYgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICBtZW50aW9uIHNubXBjb25mCiAgIAoyMDAxLTA0LTAzIDE1OjI4ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICB1cmwgY2hhbmdlcyBtb3N0bHkuCiAgIAoyMDAxLTA0LTAzIDE1OjI4ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgNC4yLjEgdXBkYXRlIChwbGVhc2UgY2hlY2spLgogICAKMjAwMS0wNC0wMyAxNToyOCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgZnRwIHNpdGUgdXBkYXRlLgogICAKMjAwMS0wNC0wMyAxNDowNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGRlZCBhZ2VudHggdG8gZGVmYXVsdCBtb2R1bGVzIHRvIGNvbXBpbGUgaW4KICAgCjIwMDEtMDQtMDMgMTA6MTIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIGEgY29tbWVudCBhdCB0aGUgZW5kIG9mIHRoZSBtaWIyYyBvdXRwdXQgZXhwbGFpbmluZyB0aGF0IGl0cwogICBtZXJlbHkgYSB0ZW1wbGF0ZS4KICAgCjIwMDEtMDQtMDMgMDg6MjcgIGhhcmRha2VyCgogICAqIEFHRU5ULnR4dCwgRkFRLCBQT1JUSU5HLCBSRUFETUUsIFJFQURNRS5hZ2VudHg6CgogICBXZWIgcGFnZS9mdHAgc2l0ZSB1cGRhdGVzLiAgVXNlcyB3d3cubmV0LXNubXAub3JnIGV2ZXJ5d2hlcmUgbm93LgogICAKMjAwMS0wNC0wMyAwNjoyNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBGaXggc2lnbmVkL3Vuc2lnbmVkIGNvbXBhcmUuCiAgIAoyMDAxLTA0LTAzIDA2OjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYzoKCiAgIFBsdWcgZmlsZS1kZXNjcmlwdG9yIGxlYWsgd2hlbiB1c2luZyBjYWNoZWQgZGF0YS4gIChCdWcjNDEyMDAwKQogICAKMjAwMS0wNC0wMiAyMzoyMiAgbmJhCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgIEZpeCBhbiBpbmNvbXBsZXRlbHkgaW5pdGlhbGl6ZWQgdmFyaWFibGUKICAgCjIwMDEtMDQtMDIgMjM6MjEgIG5iYQoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIFRoZSBhbnN3ZXJzIGZvciB0aGUgImxvYWQgd2hpY2ggZmlsZXMiIG1lbnUgYXJlIGtlcHQgc2VjcmV0IGZyb20gdGhlIGNvZGUKICAgdGhhdCBsb2FkcyB0aGUgZmlsZXMgLi4uLiBmaXhlZC4KICAgCjIwMDEtMDQtMDIgMjA6MDIgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIHNubXBjb25mLmRpci9zbm1wdHJhcGQuY29uZi9mb3JtYXR0aW5nLAogICBzbm1wY29uZi5kaXIvc25tcHRyYXBkLmNvbmYvdHJhcGhhbmRsZToKCiAgIEFkZGVkIHNubXB0cmFwZCBjb25maWd1cmF0aW9uIGZpbGUgZGlyZWN0aXZlcyB0byBzbm1wY29uZi4KICAgCjIwMDEtMDQtMDIgMTA6MDggIGpicG4KCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjM6CgogICAgLSB1cGRhdGUgZG9jdW1lbnRhdGlvbiBvZiBhZ2VudF9jaGVja19hbmRfcHJvY2VzcyB0byByZWZsZWN0CiAgICAgIGN1cnJlbnQgYmVoYXZpb3VyCiAgIAoyMDAxLTA0LTAyIDA5OjU4ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAtIEZpeCBtZW1vcnkgbGVhayBpbiBoYW5kbGVfb25lX3ZhciB3aGVyZSBsb25nIHZhcmJpbmRzIHdlcmVuJ3QKICAgICAgY29ycmVjdGx5IGZyZWUoKWQuCiAgIAogICAgLSBDaGFuZ2UgYmVoYXZpb3VyIG9mIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzIHNvIHRoYXQgYWxhcm1zIHJ1bgogICAgICBjb3JyZWN0bHkuCiAgIAoyMDAxLTA0LTAyIDA4OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBVc2UgdGhlICdzdGFuZGFyZCcgY29uZmlnIGhhbmRsZXIgcmVnaXN0cmF0aW9uIHJvdXRpbmUsCiAgIGFuZCByZWNvZ25pc2UgdGhlIGNvbmZpZyBzZXR0aW5nICdtYXN0ZXIgYWxsJwogICAKMjAwMS0wNC0wMiAwNjo1MyAgbmJhCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRml4IHNvbWUgbWlzc2luZyBxdW90aW5nIG9uIC5JUCBwYXJhbWV0ZXJzCiAgIAoyMDAxLTAzLTMwIDA4OjA1ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRS5hZ2VudHgsIGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4OgoKICAgbW92ZWQgYWdlbnR4IFJFQURNRSB0byB0b3AKICAgCjIwMDEtMDMtMzAgMDc6MjIgIGR0czEyCgogICAqIEZBUToKCiAgIFR5cG8gaW4gQWdlbnRYIFJFQURNRSBmaWxlbmFtZQogICAKMjAwMS0wMy0zMCAwNzoyMCAgZHRzMTIKCiAgICogYWdlbnQvOiBkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4LCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaDoKCiAgIFByb3ZpZGUgJ21hc3RlcicgY29uZmlnIGRpcmVjdGl2ZSB0byBjb250cm9sIHdoZXRoZXIgb3Igbm90IHRvCiAgIGFjdGl2YXRlIGV4dGVuc2libGUgc3ViYWdlbnQgc3VwcG9ydC4KICAgICBJbml0aWFsbHkgcmVzdHJpY3RlZCB0byBBZ2VudFggc3VwcG9ydCBvbmx5LgogICAKMjAwMS0wMy0zMCAwMzo0NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHg6CgogICBVcGRhdGUgdG8gcmVmbGVjdCB0aGUgaW5jcmVhc2VkIG1hdHVyaXR5IG9mIHRoZSBBZ2VudFggaW1wbGVtZW50YXRpb24uCiAgIAoyMDAxLTAzLTMwIDAzOjM0ICBkdHMxMgoKICAgKiBGQVE6CgogICBUd2Vha2VkIHZhcmlvdXMgZW50cmllcywgYW5kIGFkZGVkIGEgZmV3IG5ldyBvbmVzLiAgR2VuZXJhbCBTaGllbGQgbWVkZGxpbmcuCiAgIAoyMDAxLTAzLTMwIDAxOjAwICBkdHMxMgoKICAgKiBSRUFETUU6CgogICBBZGQgcHJvbWluZW50IHdhcm5pbmcgcmVnYXJkaW5nIHVjZC1zbm1wID0+IG5ldC1zbm1wIHN3aXRjaC4KICAgCjIwMDEtMDMtMzAgMDA6NDYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBpbnRlcnByZXRhdGlvbiBvZiAicHVyZSBudW1lcmljIiBwZWVybmFtZSBzdHJpbmdzIChpLmUuIGxpc3RlbiBvbiB0aGUKICAgICBzcGVjaWZpZWQgcG9ydCBvbiBhbGwgaW50ZXJmYWNlcykgLSBwcm9ibGVtIGlkZW50aWZpZWQgYnkgTWFsYSBSYW1ha3Jpc2huYW4uCiAgIAoyMDAxLTAzLTMwIDAwOjA0ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgUmVwbGFjZSBhdG9pL2F0b2wgd2l0aCBzdHJ0byh1KWwgd2hpY2ggaGFzIGJldHRlciBvdXQtb2YtcmFuZ2UgcmV0dXJucy4KICAgVGhpcyBpcyBub3QgYSBwZXJmZWN0IHNvbHV0aW9uLCBidXQgaXQgaXMgYmV0dGVyIC4uLgogICAKMjAwMS0wMy0yOSAyMTo0MyAgaGFyZGFrZXIKCiAgICogSVNTVUVTOgoKICAgcm0gSVNTVUVTCiAgIAoyMDAxLTAzLTI5IDE0OjM0ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgbWlub3IgZm9ybWF0dGluZy4KICAgCjIwMDEtMDMtMjkgMTQ6MzMgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBVbSwgZ290IHRoZSB5ZWFyIHJpZ2h0IHRoaXMgdGltZS4KICAgCjIwMDEtMDMtMjkgMTQ6MzIgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICB1cGRhdGUgZm9yIDIwMDE6IGFkZGVkIG15IHJlcXVpcmVkIE5BSSBCU0QgY29weXJpZ2h0LgogICAKMjAwMS0wMy0yOSAwODoyMyAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBtZXJnZSBjaGFuZ2UgZnJvbSBtYWluIGJyYW5jaCAocmV0dXJuX3ZhbHVlPTEgc3RhdGVtZW50KS4KICAgCjIwMDEtMDMtMjkgMDg6MjEgIHNsaWYKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBBZGQgdmFjbV9pc19jb25maWd1cmVkLgogICAKMjAwMS0wMy0yOCAyMjoxMiAgbmJhCgogICAqIG1pYnMvOiByZmNsaXN0LCByZmNtaWJzLmRpZmY6CgogICBBZGQgUHJpbnRlci1NSUIgdG8gdGhlIHJmY2xpc3Qgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBwYXRjaC4KICAgCjIwMDEtMDMtMjggMTM6MDYgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBQcm9wZXJseSBpZ25vcmUgbm9uLXJlc3BvbnNlIFBEVSdzIHdoZW4gZG9pbmcgYXN5bmMgdHJhbnNhY3Rpb24uCiAgIAoyMDAxLTAzLTI4IDEzOjA0ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMSwgc25tcGxpYi9taWIuYzoKCiAgIEZpeCBpbmRleCBoYW5kbGluZyB0byBwcm9wZXJseSBhY2NlcHQgaW5kZXhpbmcgd2l0aCBUaW1lVGlja3MuCiAgIEltcGxlbWVudCAtSXIgdG8gZGlzYWJsZSBpbmRleCBjaGVja3MuCiAgIAoyMDAxLTAzLTI4IDA2OjIwICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMS5wcmUyICkKICAgCjIwMDEtMDMtMjcgMTA6MjcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBVc2Ugc25tcF9sb2cgd2l0aCAlcyB0byBwcmV2ZW50ICUgZXhwYW5zaW9uIGluIG9jdGV0IHN0cmluZ3MgY29udGFpbmluZyBhICVzLgogICAKMjAwMS0wMy0yNyAwNTozNyAgZHRzMTIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgSGFuZGxlIG5vbi1yZXNwb25zaXZlIEFnZW50WCBzdWItYWdlbnRzIG1vcmUgcm9idXN0bHkuCiAgICAgIChCYXNlZCBvbiBzdWdnZXN0aW9ucyBmcm9tIEhhcnJpZSBIYXpld2lua2VsICYgUGF1bCBSYXNtdXNzZW4pCiAgIAoyMDAxLTAzLTI3IDAyOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIFJlc2V0IGNvdW50IG9mIGF1dGhvcml6ZWQgcGVlcnMgb24gY2xvc2Vkb3duLiAgKFRoYW5rcyB0byBWbGFkIFR1bmlrKQogICAKMjAwMS0wMy0yNiAxODowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaDoKCiAgIEZpeGVkIHZhY20gdG8gZHJvcCB2MS92MmMgcGFja2V0cyBwcm9wZXJseSB3aGVuIG5vIGNvbTJzZWMgZW50cmllcyBhcmUgZm91bmQuCiAgIAoyMDAxLTAzLTI2IDExOjA2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9pcGYtbW9kLnBsOgoKICAgYWRkIHVzYWdlIGNvbW1lbnQgYXQgdG9wCiAgIAoyMDAxLTAzLTIyIDE0OjM0ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgTmV3IE1JQiBpbiBSRkMgMzA4MzogRE9DUy1CUEktTUlCCiAgIAoyMDAxLTAzLTIyIDE0OjI3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsIHMvY3lnd2luLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYzoKCiAgIE1ha2UgbW9zdCBvZiB0aGUgaG9zdCByZXNvdXJjZXMgbWliIGNvbXBpbGUgdW5kZXIgQ3lnd2luLiBXZSBjYW4gbm93IGRvCiAgIC0td2l0aC1taWItbW9kdWxlcz1ob3N0IC0td2l0aC1vdXQtbWliLW1vZHVsZXM9aG9zdC9ocl9uZXR3b3JrCiAgIAoyMDAxLTAzLTIyIDEyOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBmaXggaGVhZGVyX3NpbXBsZV90YWJsZSgpIGZvciB0b28gbG9uZyByZXF1ZXN0cwogICAKMjAwMS0wMy0yMiAwODoxMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEJhZCBXZXM6IGZpbmQgYWxsIGluc3RhbmNlcyBvZiBjdXQtbi1wYXN0ZSBlcnJvcnMgYmVmb3JlIGNvbW1pdHRpbmcuCiAgIAoyMDAxLTAzLTIyIDA4OjEyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQmFkIFdlczogZG9uJ3QgY2FsbCBmdW5jdGlvbiB3aXRob3V0IHRoZSAoKXMuICAoYXQgbGVhc3QgaW4gQykuCiAgIAoyMDAxLTAzLTIyIDA3OjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBGaXggZm9yIG1pbm9yIG1lbW9yeSBsZWFrIHdpdGggdHJhcC1yZWxhdGVkIHZhcmJpbmQgdmFsdWVzLgogICBUaGFua3MgdG8gSm9obiBWaWxsYWxvdm9zIChhbmQgdGhlIEludGVsIFNOTVAgdGVhbSkKICAgCjIwMDEtMDMtMjEgMTc6MjIgIGRyaWVodWlzCgogICAqIHNubXBsaWIvbWliLmM6CgogICBCdWdmaXggZm9yIGNyYXNoIGF0IHNubXBfc2h1dGRvd24gdGltZSB3aXRoIE9TJ3MgdGhhdCBjaGVjayBwb2ludGVyCiAgIHZhbGlkaXR5IChlLmcuLCBGcmVlQlNEKQogICAKMjAwMS0wMy0yMSAwODoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgam9pbiBicm9rZW4gc25tcF9sb2cgbGluZXMKICAgCjIwMDEtMDMtMjEgMDg6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBmaXggLUYgKEkgdGhpbmspCiAgIAoyMDAxLTAzLTIxIDA3OjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggdmFyaWFibGUgdHlwZXMgKGludCAtPiBzaXplX3QpCiAgIAoyMDAxLTAzLTIwIDA4OjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBzL2xpbnV4Lmg6CgogICBGaXggdGhlIGF0VGFibGUgYW5kIGlwTmV0VG9wTWVkaWFUYWJsZSBmb3IgTGludXggdG8gcmV0dXJuIHRoZSBpZkluZGV4CiAgIAoyMDAxLTAzLTE5IDEzOjE0ICBuYmEKCiAgICogYXBwcy9zbm1wZGVsdGEuYywgbWFuL3NubXBkZWx0YS4xOgoKICAgTWFqb3Igb3B0aW9uIHBhcnNpbmcgc3VyZ2VyeSB0byBjYXRoZXIgZm9yIHRoZSBnZXRvcHQgdXNpbmcgdmVyc2lvbiBvZgogICBzbm1wX3BhcnNlX2FyZ3MuIFNlZW1zIHRvIGhhdmUgYmVlbiBmb3Jnb3R0ZW4gd2hlbiB0aGUgcmVzdCBvZiB0aGUgYXBwcwogICB3ZXJlIHVwZGF0ZWQuCiAgIAoyMDAxLTAzLTE5IDEzOjEzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgUmUtb3JkZXIgc3lzL2NvbmYuaCBhbmQgc3lzL3BhcmFtLmggdG8gbWFrZSBGcmVlQlNELTUgaGFwcHkKICAgCjIwMDEtMDMtMTUgMTM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBmaXhlZCBidWcgIzQwNTAwMDogZHJvcHBlZCBzdXBwb3J0IGZvciBJUE9VVE5PUk9VVEVTLCBzaW5jZSBubwogICBjYWxjdWxhdGlvbiBvZiBpdCBzZWVtcyBjbG9zZSB0byBjb3JyZWN0LgogICAKMjAwMS0wMy0xNSAxMzozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmM6CgogICBmaXggcGFydCAyIG9mIGJ1ZyA0MDU1MTkgYWRkaW5nIGZ1bGxzb2NrIHRvIHVkcGluZXJyb3JzCiAgIAoyMDAxLTAzLTE1IDEzOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIGZpeCBidWcgIzQwODM4OCB3aGVyZSBtZW1tb3ZlIGlzIGNhbGxlZCB3aXRoIHRvbyBzaG9ydCBhIGxlbmd0aC4KICAgCjIwMDEtMDMtMTUgMTE6MjEgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4xLnByZTEgKQogICAKMjAwMS0wMy0xNSAwMzozNCAgamJwbgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBraWxsIC1TSUdLSUxMIGlzbid0IGxlZ2FsIHN5bnRheCBvbiBTb2xhcmlzIG9yIExpbnV4OyBjaGFuZ2VkIHRvIGtpbGwgLTkKICAgd2hpY2ggaXMgbGlrZWx5IHNhZmVyCiAgIAogICBkb24ndCBzZXQgcmV0dXJuX3ZhbHVlIHRvIDEgYWZ0ZXIga2lsbGluZyBzbm1wZCwgd2hpY2ggY2F1c2VzIHNwdXJpb3VzCiAgIHRlc3QgZmFpbHVyZXMKICAgCjIwMDEtMDMtMTQgMTQ6MzggIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuaDoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6IG1ha2Ugc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycyBhIHB1YmxpYyBmbi4KICAgCjIwMDEtMDMtMTQgMTE6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBmaXggaXBuZXR0b21lZGlhIGluZGV4aW5nIG9uIHNvbGFyaXMuCiAgIAoyMDAxLTAzLTE0IDEwOjI3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIFVzZSBjb25maWcuaCwgZG9uJ3QgdXNlIHVjZC1zbm1wIGRpcmVjdG9yeSB0byBidWlsZCBpbiB0aGUgbWliZ3JvdXAgdHJlZS4KICAgCjIwMDEtMDMtMTQgMTA6MTggIHNsaWYKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIHF1aWV0ICJ3aGljaCIgb3V0cHV0LiAgbmV2ZXIgZW5kaW5nIHNhZ2EuLi4KICAgCjIwMDEtMDMtMTQgMTA6MDggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICBxdWlldCB1bnNpZ25lZCBsb25nIGNvbXBhcmUuCiAgIAoyMDAxLTAzLTE0IDEwOjAwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIEdldCBhIGRlY2wgb2YgaW5fYWRkcl90IGZyb20gbmV0aW5ldC9pbi5oLCB3aGVyZSBuZWNlc3NhcnkuCiAgIAoyMDAxLTAzLTE0IDEwOjAwICBzbGlmCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEF2b2lkIHdhcm5pbmdzIG9mIHN0cnVjdCB0aW1ldmFsIGRlY2wgaW4gc3lzdGVtLmggYnkgaW5jbHVkaW5nICp0aW1lLmgqLgogICAKMjAwMS0wMy0xNCAwOTo0NyAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLAogICBzbm1wbGliL3BhcnNlLmM6CgogICBwYXRjaCBzdWJtaXR0ZWQgYnkgSGFycmllIEhhemV3aW5rZWwKICAgCjIwMDEtMDMtMTQgMDk6NDAgIHNsaWYKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIGRvbid0IHJ1biB0ZXN0cyB3aXRob3V0IG5lZWRlZCBwcm9ncmFtczogc25tcGQsIHNubXBnZXQsIHNubXBnZXRuZXh0LgogICAKMjAwMS0wMy0xNCAwODoyNCAgc2xpZgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFByb3ZpZGUgYW4gZW1wdHkgRExMSUJTIHZhbHVlIGZvciBub24tZGxtb2QgdXNlcy4KICAgCjIwMDEtMDMtMTQgMDc6MzYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBjYXN0IHVfbG9uZyB0byB1X2NoYXIgd2hlbiBzdG9yaW5nIDgtYml0IHZhbHVlcy4KICAgCjIwMDEtMDMtMTQgMDc6MzMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGZpeCB1bnNpZ25lZCBsZW5ndGggY29tcGFyZXMuCiAgIAoyMDAxLTAzLTE0IDA1OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBGaXggTGludXggZmlsZSBkZXNjcmlwdG9yIGxlYWsgKHJlcG9ydGVkIGJ5IE9saXZlciBG5G5nZXIpCiAgIAoyMDAxLTAzLTEzIDEzOjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gY2hlY2sgZm9yIE5VTExzIGluIERFQlVHIG1zZwogICAKMjAwMS0wMy0xMiAxNDowNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9hZG1pbi5jLCBzdWJhZ2VudC5jOgoKICAgRml4IHNvbWUgbWlub3IgbGVha3MuCiAgIAoyMDAxLTAzLTEyIDE0OjA1ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFNvbWUgbWlub3IgZml4ZXMgdG8gYXJndW1lbnQgcHJvY2Vzc2luZywgaW5jbHVkaW5nIHRlcm1pbmF0aW5nIHNubXBkIG9uCiAgIGV4dHJhbmVvdXMgbm9uLW9wdGlvbiBhcmd1bWVudHMuCiAgIAoyMDAxLTAzLTEwIDA4OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgQnVnICM0MDQ5ODg6IGRvbid0IHVzZSBpcHN0YXQuaXBzX2ZyYWd0aW1vdXQgYXMgYSBudW1iZXIgb2Ygc2Vjb25kcy4KICAgCjIwMDEtMDMtMDcgMTA6MjYgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgCiAgIG5ldyBERUxBWSBmdW5jdGlvbjsgc3RhcnQvc3RvcCBkYWVtb25zIHVzaW5nIG5ldyBTVEFSVFBST0cvU1RPUFBST0cgd2l0aCBERUxBWTsKICAgbG9nIGNvbW1hbmRzIGlzc3VlZCBhbmQgZmluYWwgcmVzdWx0IHRvIFNOTVBfVE1QRElSL2ludm9rZWQ7CiAgIHN1cHByZXNzICJraWxsIiBvdXRwdXQgdG8gaGVscCBDeWd3aW4gdXNlcnMgaGFwcHkuCiAgIAoyMDAxLTAzLTA3IDEwOjIzICBzbGlmCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICAKICAgYWRkIC1TIHBhcmFtZXRlciBmb3IgREVMQVkgc2Vjb25kczsgYWRkIHRyYXAgZm9yIGludGVycnVwdCBjb250cm9sOwogICBwYXNzIHRlc3QgbnVtYmVyIGFuZCBkaXNwbGF5LWhlYWRlci1vbmx5IHRvIGV2YWxfb25lc2NyaXB0LnNoOwogICBhZGQgd2hpY2ggdGVzdCB0byB2ZXJib3NlIGxvY2F0aW5nIG1lc3NhZ2VzIChDeWd3aW4gdXNlcyB0eXBlLCBub3Qgd2hpY2gpLgogICAKMjAwMS0wMy0wNyAxMDoyMCAgc2xpZgoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIGV2YWxfb25lc2NyaXB0LnNoOgoKICAgCiAgIAogICBJbmNvcnBvcmF0ZSB0ZXN0IG51bWJlciBpbnRvIHRlc3QgcmVzdWx0cyBkaXIgbmFtZS4KICAgUHJvdmlkZSBkZWZhdWx0IHZhbHVlcyBmb3IgdGVzdCBudW1iZXIgYW5kIGRpc3BsYXktaGVhZGVyLW9ubHkgZmxhZy4KICAgCjIwMDEtMDMtMDcgMTA6MTkgIHNsaWYKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIAogICAKICAgIm1ha2UgY2xlYW4iIHJlbW92ZXMgYW55IHRlc3QgcmVzdWx0IGRpcnMgIi90bXAvc25tcC10ZXN0LSoiLgogICAKMjAwMS0wMy0wNyAxMDoxNSAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1NGFnZW50djJjdHJhcCwgVDA1NmFnZW50djJjbWludHJhcCwKICAgVDA1OGFnZW50YXV0aHRyYXA6CgogICAKICAgUmVwbGFjZSBzbGVlcCB3aXRoIGNvbW1lbnRlZCBvdXQgREVMQVkgOyBlYWNoIHN0YXJ0L3N0b3AgYWN0aW9uIG5vdwogICBpbnZva2VzIERFTEFZLgogICAKMjAwMS0wMy0wNyAxMDoxNCAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cDoKCiAgIAogICBSZXBsYWNlIHNsZWVwIHdpdGggREVMQVkuCiAgIAoyMDAxLTAzLTA3IDEwOjEzICBzbGlmCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgCiAgIAogICBDaGFuZ2UgZWxlbWVudCBzZXBhcmF0b3IgdG8gV2luMzIgJzsnIGluIERFRkFVTFRfTUlCUwogICBEZWNsYXJlIFdpbjMyIGhhcyBnZXRwaWQhLgogICAKMjAwMS0wMy0wNyAxMDoxMCAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAKICAgCiAgIFdpbjMyIGluY2x1ZGUgaW8uaCB0byBkZWNsYXJlIG1rdGVtcC4KICAgRXhwYW5kIHRoZSBjb21tZW50IG5lYXIgbWt0ZW1wIHVzYWdlIHRvIGV4cGxhaW4gd2h5IGl0IGlzIG5lZWRlZC4KICAgCjIwMDEtMDMtMDcgMTA6MDkgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAKICAgCiAgIHJlbW92ZSB1bm5lY2Vzc2FyeSBpZm5kZWYgV0lOMzIuICBpZmRlZiBTSUdBTFJNIGlzIHN1ZmZpY2llbnQuCiAgIAoyMDAxLTAzLTA3IDEwOjA3ICBzbGlmCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICAKICAgCiAgIFdpbjMyIGluY2x1ZGUgcHJvY2Vzcy5oIHRvIGRlY2xhcmUgZ2V0cGlkLgogICAKMjAwMS0wMy0wNyAxMDowNiAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgCiAgIAogICBVc2UgcHJvcGVyIGRlZmluZSB0byBxdWFsaWZ5IGluY2x1ZGUtaW5nIGEgaGVhZGVyLgogICAKMjAwMS0wMy0wNyAxMDowNCAgc2xpZgoKICAgKiBhZ2VudC9taWJfbW9kdWxlcy5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIHNubXBsaWIvc3lzdGVtLmg6CgogICAKICAgCiAgIEFwcGx5IHRoZSB0aW1lIGdvbyBjb25zaXN0ZW50bHk6IG1vdmUgaGVhZGVyIGluY2x1ZGVzIG91dCBvZiBzeXN0ZW0uaC4KICAgCjIwMDEtMDMtMDYgMTA6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZG9uJ3QgZm9yY2UgaW5jbHVzaW9uIG9mIC1sZGwuCiAgIAoyMDAxLTAzLTA1IDA2OjMwICBzbGlmCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAKICAgCiAgIEZvbGxvdyBtZXRob2QgdXNhZ2UsIGRvbid0IGRlY2xhcmUgZ2V0SHdBZGRyZXNzIHVubGVzcyB1c2VkLgogICAKMjAwMS0wMy0wNSAwNjozMCAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAKICAgCiAgIFJlbW92ZSBuZXN0ZWQgdmFyaWFibGUgZXAgLSBvbmUgYWxyZWFkeSBleGlzdHMuCiAgIAoyMDAxLTAzLTA1IDA2OjI4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIAogICAKICAgQ29tbWVudCBvdXQgZXhhbXBsZSB2YXJpYWJsZXMgdGhhdCBhcmUgbm90IHVzZWQuCiAgIAoyMDAxLTAzLTA0IDE3OjQxICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvY29uZmlnLmgsIHdpbjMyL21pYl9tb2R1bGVfY29uZmlnLmgsCiAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZiwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcDoKCiAgIAogICAKICAgcGF0Y2ggdG8gYnVpbGQgbW9yZSBtb2R1bGVzLCBpbmNsdWRpbmcgYWdlbnRYLCBvbiBXaW4zMiB1c2luZyBNUy1WQy4KICAgCjIwMDEtMDMtMDQgMTc6MjcgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgCiAgIAogICBwYXRjaCB0byBidWlsZCBtb3JlIG9mIHRoZSBhZ2VudCB1c2luZyBNUy1WQyBvbiBXaW4zMiBwbGF0Zm9ybS4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzLzogSUFOQWlmVHlwZS1NSUIudHh0LCBNVEEtTUlCLnR4dCwgTWFrZWZpbGUubWliLAogICBSRUFETUUubWlicywgVFVOTkVMLU1JQi50eHQsIGlhbmFsaXN0LCBtaWJmZXRjaCwgcmZjbGlzdCwKICAgcmZjbWlicy5kaWZmLCBzbWlzdHJpcDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IElBTkFpZlR5cGUtTUlCLCBwbHVzIGFkZGl0aW9uIG9mIFJFQURNRSBhbmQgdG9vbHMgdG8gZ2V0CiAgIGEgY29tcGxldGUgc2V0IG9mIElFVEYgTUlCIGZpbGVzLgogICAKMjAwMS0wMy0wMyAwNzoxMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaDoKCiAgIFJlbW92ZSBhbiB1bnVzZWQgcHJvdG90eXBlCiAgIAoyMDAxLTAzLTAzIDA2OjM2ICBuYmEKCiAgICogbWFuL3NubXB0cmFwZC44LCBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIEFkZCBhIG5ldyAlUCBmb3JtYXR0aW5nIHNlcXVlbmNlIHRvIHVzZXIgc3BlY2lmaWVkIGxvZyBmb3JtYXRzLiBJdCBwcmludAogICB0aGUgc2VjdXJpdHkgaW5mb3JtYXRpb24gZnJvbSB0aGUgUERVIChjb21tdW5pdHksIHVzZXIsIGNvbnRleHQgYXMgYXZhaWxhYmxlKQogICBBbHNvIG1vZGlmeSB0aGUgZGVmYXVsdCB0cmFwIG91dHB1dCB0byB1c2UgaXQuCiAgIAoyMDAxLTAzLTAzIDA2OjIxICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBGaXggc3BlY2lmaWVycyBsaWtlICUuM3MKICAgCjIwMDEtMDMtMDMgMDY6MTAgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBGaXggdGhlIHBhcnNlciB0byBkaWFnbm9zZSBvaWQgc3BlY3MgbGlrZTo6PSB7IHNpbmdsZSB9CiAgIEJlIHNpbGVudCBmb3IgaW50ZXJuYWwgbGlua3Mgd2hlbiBtb3Zpbmcgbm9kZXMgdG8gdGhlIGFkb3B0aW9uIGxpc3QuIFRoaXMKICAgc2hvdWxkIGhlbHAgZ2l2aW5nIG9ubHkgYSBzaW5nbGUgbWVzc2FnZSBmb3IgbWlzc2luZyBpbXBvcnRzIG9mIGVudGVycHJpc2VzLgogICAKMjAwMS0wMy0wMiAxMzoyNCAgc2xpZgoKICAgKiBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5oLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIAogICAKICAgY2xlYW51cCBmb3IgTVMtVkMgV2luMzIgYnVpbGQKICAgCjIwMDEtMDMtMDIgMDc6MzYgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIHNvdXJjZXJmb3JnZSAtPiBzb3VyY2Vmb3JnZQogICAKMjAwMS0wMy0wMiAwNzoyNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBQYXRjaCBmcm9tIEthcmwgU2NoaWxrZSB0byBmaXggdGltZXN0YW1wcyBpbiBzeW5jaG9ub3VzIGNhc2VzCiAgIAoyMDAxLTAzLTAyIDA2OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlIGZyb20gc25tcF9vaWRfY29tcGFyZSgpLgogICAKMjAwMS0wMy0wMSAxOTo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgc25tcF9hcGkuYzoKCiAgIEZpeCBzbm1wX29pZF9jb21wYXJlIGFuZCByZXZlcnNlIGVuY29kaW5ncyB0byBkZWFsIHdpdGggbnVtYmVycyA+IDJeMzEuCiAgIAoyMDAxLTAyLTIxIDE1OjMxICBuYmEKCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmLCBzbm1wY21kLjE6CgogICBGaXggYSBjb3VwbGUgb2YgdHlwb3MKICAgCjIwMDEtMDItMjEgMTU6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzgwNSBmcm9tIGJjb2xsYXI6IGFkZCBzeXMvdGltZS5oIHRvIHVjZC1zbm1wLWluY2x1ZGVzLmgKICAgCjIwMDEtMDItMjEgMTU6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvaW50NjQuYzoKCiAgIGZpeCBidWcgIzEzMzQxNiAodTY0U3VidHJhY3Rpb24gbWF0aCkgYXMgc3VnZ2VzdGVkIGJ5IHRoZSBzdWJtaXR0b3IKICAgCjIwMDEtMDItMjEgMTQ6MzggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIFRyeSBmaXhpbmcgaW5jb25zaXN0ZW50IGluZGV4aW5nIG9uIEJTRAogICAKMjAwMS0wMi0xOSAwODo0NiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgCiAgIAogICAtIHByb3h5LmM6IHJlbW92ZSBzb21lIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoyMDAxLTAyLTE2IDE1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC92YXJfc3RydWN0Lmg6CgogICAtIGluY3JlYXNlIFVDRF9SRUdJU1RSWV9PSURfTUFYX0xFTiB0byAxMjggYXQgRnJhbmsncyByZXF1ZXN0CiAgIAoyMDAxLTAyLTE0IDE4OjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgcmVtb3ZlZCB1bnVzZWQgc25tcF9hbGFybS5oIGluY2x1ZGUKICAgCjIwMDEtMDItMTMgMTY6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeCBidWcgIzEzMDc0MCB1c2luZyBzdWdnZXN0ZWQgY2xvc2UoKSB3cmFwcGVyIGFyb3VuZCBta3N0ZW1wKCkKICAgCjIwMDEtMDItMDkgMTE6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTM6IGZpeCBtZW1vcnkgbGVhayBpbiBzbm1wZCBwb3J0IHNwZWNpZmljYXRpb24gLT4gZGVmYXVsdF9zdG9yZS4KICAgCjIwMDEtMDItMDkgMTE6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYl9tb2R1bGVzLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTI6IGZpeCBtZW1vcnkgbGVhayBpbiBtaWJfbW9kdWxlIGluaXQgY29kZQogICAKMjAwMS0wMi0wOSAxMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMTogZml4IG1lbW9yeSBsZWFrIGZvciBkdXBsaWNhdGUgb2lkIHJlZ2lzdHJhdGlvbnMuCiAgIAoyMDAxLTAyLTA5IDExOjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYwNDogQWRkIHN1cHBvcnQgZm9yIFYxIHRyYXBzIGFuZCBpbnQvaW50MzIgZGlmZmVyZW5jZXMKICAgCjIwMDEtMDItMDkgMTE6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2ZyZWVic2QyLmMsIHByb3h5LmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM3MDI6IGZpeCBzd2FwIHJlcG9ydGluZyBvbiBmcmVlYnNkIDQuMgogICAKMjAwMS0wMi0wNiAxNDoyNiAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBBZGQgYSBkZXBlbmRlbmN5IGZvciBsaWJzbm1wCiAgIAoyMDAxLTAyLTA2IDE0OjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICBJbXBsZW1lbnQgcmF3IGludGVycnVwdCBhbmQgY29udGV4dCBzd2l0Y2ggY291bnRlcnMKICAgCjIwMDEtMDItMDYgMTQ6MjQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBNYWtlIGRtYWxsb2MgaGFwcHkgYnkgZml4aW5nIGEgbWFsbG9jIHJlYWQgb3ZlcnJ1bgogICAKMjAwMS0wMi0wNiAxNDoxNiAgbmJhCgogICAqIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jOgoKICAgQmFja3BvcnQgLU9UIG91dHB1dCB0byA0LTItcGF0Y2hlcyBicmFuY2gKICAgCjIwMDEtMDItMDYgMDY6MDIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZG9jdW1lbnRhdGlvbiBmaXgKICAgCjIwMDEtMDEtMzEgMjM6MDIgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggdmFsdWUgdmFsaWRhdGlvbiBmb3Igc25tcHNldC9zbm1wdHJhcAogICAKMjAwMS0wMS0zMSAyMzowMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBGaXggYmFkIHJldHVybiBvZiBhIHBvaW50ZXIgdG8gbm9uLXN0YXRpYyBzdG9yYWdlCiAgIAoyMDAxLTAxLTMxIDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBQYXRjaCBmcm9tIEZyYW5rIEJhcnRlbHMgZm9yIGZyZWVic2QgZml4ZXMKICAgCjIwMDEtMDEtMzAgMTc6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzQxNDogZml4IGRpc2sgaW5mbyBmb3IgYmxvY2sgc2l6ZXMgb3RoZXIgdGhhbiAxMDI0LgogICAKMjAwMS0wMS0yOSAxMzoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBmaXggYnVnICMxMzA0MTA6ICBzZXQgdGhlIHdyaXRlX21ldGhvZCBpbiB2YXJfc211eCBiZWZvcmUgcmV0dXJuaW5nCiAgIE5VTEwgdG8gbWFrZSBzdXJlIHRoYXQgc2V0cyBoYXBwZW4gb24gT0lEcyB0aGF0IGRvbid0IGV4aXN0IGZpcnN0LgogICAKMjAwMS0wMS0yOSAxMzoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggc3VnZ2VzdGVkIGluIGJ1ZyAjMTI5OTQ4OiBjaGVjayBmb3IgLSBhcmd1bWVudHMgYXQgdGhlIGJlZ2dpbm5pbmcKICAgb2YgdGhlIGNvbW1hbmQgbGluZSB0b2tlbiAoZG9uJ3QgbWF0Y2ggbWliLTIsIGVnKS4KICAgCjIwMDEtMDEtMjkgMTM6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGZpeCBzdWdnZXN0ZWQgaW4gYnVnICMxMjk4NzY6IGNoZWNrIGZvciBoaW50ICE9IE5VTEwgYmVmb3JlIGZyZWVpbmcuCiAgIAoyMDAxLTAxLTI2IDA1OjQ5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgRml4IGJ1ZyBvbiBGcmVlQlNEIHdoZW4gL2V0Yy9wcmludGNhcCBpcyBlbXB0eQogICAKMjAwMS0wMS0yNSAxNDozOCAgbmJhCgogICAqIG1pYnMvUk1PTi1NSUIudHh0OgoKICAgVXBkYXRlZCB0byBSRkMgMjgxOQogICAKMjAwMS0wMS0yNCAyMTozNyAgbmJhCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBsaWJyYXJpZXMgYmVmb3JlIGFnZW50IHNvIHRoYXQgbGlidG9vbCBjYW4gcmVsaW5rLgogICAKMjAwMS0wMS0yMCAwNTo1NCAgbmJhCgogICAqIGFwcHMvc25tcGRlbHRhLmMsIHNubXBsaWIvaW50NjQuYzoKCiAgIFR3byBDb3VudGVyNjQgZ2xpdGNoZXMgZGV0ZWN0ZWQgYnkgSmFzb24gR2xvdWRvbiA8c25tcEBnbG91ZG9uLmNvbT4KICAgCjIwMDEtMDEtMjAgMDU6NDQgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgRG9udCBzZXQgdXAgdGhlIHNlbGVjdCBwYXJhbWV0ZXJzIGJlZm9yZSBjYWxsaW5nIGludGVycnVwdCBoYW5kbGVycyEKICAgVGhhbmtzIHRvIEZyYW5rIFN0cmF1c3MuCiAgIAoyMDAxLTAxLTIwIDA1OjQyICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGVuY29kaW5nIG9mIEJJVFMgdmFyaWFibGUsIHRoYW5rcyB0byBGcmFuayBTdHJhdXNzCiAgIAoyMDAxLTAxLTIwIDA1OjM3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBSYXcgSU8gY291bnRlcnMgZnJvbSBKb2NoZW4gS21pZXRzY2gKICAgCjIwMDEtMDEtMjAgMDU6MzYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgUHJlcGFyZSBmb3IgbW9yZSByYXcgY291bnRlcnMKICAgCjIwMDEtMDEtMTUgMTU6MTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgdW5kbyBhIGNoYW5nZSB0aGF0IHNuZWFrZWQgaW4gYnkgbWlzdGFrZQogICAKMjAwMS0wMS0xNSAxNDowNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmg6CgogICBFeHRlbmQgdGhlIHN5c3RlbVN0YXRzLmNwdVJhdyBzZWN0aW9uIHRvIGluY2x1ZGUgbW9yZSByYXcgY291bnRlcnMgZm9yIHZhcmlvdXMKICAgb3BlcmF0aW5nIHN5c3RlbXMuICBCYXNpYyB0ZXN0aW5nIHBlcmZvcm1lZCBmb3IgU29sYXJpcyBhbmQgRnJlZUJTRC4gQ29kZQogICBndWVzc3RpbWF0ZSBmb3IgTmV0QlNEIGFuZCBCU0RpLgogICAKMjAwMS0wMS0xMiAwODowMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBiaXRfc3RyaW5nIGZpeGVzCiAgIC0gbWFrZSBzbm1wX2FkZF92YXIgY2FsbCBzbm1wX3BhcnNlX29pZCgpIGluc3RlYWQgb2YgcmVhZF9vYmppZCgpLgogICAKMjAwMS0wMS0xMiAwNzo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBjb21tZW50IG91dCByZWFsbHkgb2RkIChhbmQgYnJva2VuKSBjaGVjayBmcm9tIGFzbl9iaXRzdHJpbmdfY2hlY2s/Pz8KICAgCjIwMDEtMDEtMTIgMDc6NTIgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuc3RvcmFnZS5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mOgoKICAgLSBtaXNjIGJ1ZyBmaXhlcy4KICAgLSBuZXcgZGF0YSB0eXBlcyAodWludDMyLCB1bnNpZ25lZCwgYml0cykuCiAgIAoyMDAxLTAxLTEwIDIxOjU1ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGNhbGxpbmcgb2YgaW5pdF9jYWxsYmFja3MgZXZlbiBpZiBpbml0X3NubXAgY2FsbGVkIHdpdGggTlVMTCBwYXJhbWV0ZXIKICAgCjIwMDEtMDEtMTAgMjE6NTMgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggYmFkbHkgYXBwbGllZCBwcmV2aW91cyBwYXRjaAogICAKMjAwMS0wMS0xMCAyMTo1MiAgbmJhCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIEZpeCB1c2FnZSBtZXNzYWdlICgtZSBpcyBub3cgLUNlKQogICAKMjAwMS0wMS0xMCAyMTo1MSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgRml4IGEgYmFkIGlwUm91dGVQcm90b2NvbCByZXR1cm4KICAgCjIwMDEtMDEtMTAgMjE6NTAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBGaXggcHJvYmxlbSB3aGVuIHJ1bm5pbmcgLS13aXRob3V0LXJvb3QtYWNjZXNzIGZvciBGcmVlQlNELiBUaGFua3MgdG8KICAgQmVydCBEcmllaHVpcy4KICAgCjIwMDEtMDEtMTAgMjE6NDggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBVc2UgdGhlIGlmc3BlZWQgYXR0cmlidXRlIGZyb20gZHJpdmVyIHdoZW4gYXZhaWxhYmxlCiAgIAoyMDAxLTAxLTA5IDA2OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBBcHBseWluZyBwYXRjaCBmb3VuZCBpbiBidWcgIzEyNzI5OToKICAgICAtIHN3aXRjaCBpZkFkbWluIGFuZCBpZk9wZXJTdGF0dXMgbWVhbmluZ3MgdG8gbWF0Y2gga2VybmVsIHBhcmFtZXRlcnMgYmV0dGVyLgogICAKMjAwMS0wMS0wOSAwNjoyMSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwOgoKICAgYWRkZWQgZ2V0b3B0LmMgdG8gbGlzdAogICAKMjAwMS0wMS0wOCAwODoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgUGF0Y2ggZnJvbSBBbmRlcnMgRWxsZWZzcnVkCiAgICAgLSBmaXggaHJfc3dydW4gd2hlbiBwcm9ncmFtcyBoYXZlIGV4aXRlZCBzbyB3ZSBkb24ndCB0cnVuY2F0ZQogICAgICAgZ2V0bmV4dCBxdWVyaWVzLgogICAKMjAwMS0wMS0wOCAwODoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gZml4IEJJVFMgZW5jb2RpbmcgbGVuZ3RoIHdoZW4gbWliIGtub3dsZWRnZSBpcyBhdmFpbGFibGUuCiAgIAoyMDAxLTAxLTA0IDIzOjE4ICBuYmEKCiAgICogYXBwcy86IHNubXBzZXQuYywgc25tcHRyYXAuYzoKCiAgIFRyeSBmaXhpbmcgcHJvYmxlbXMgd2l0aCBzbm1wc2V0IG9mIG5lZ2F0aXZlIHZhbHVlcwogICAKMjAwMS0wMS0wNCAyMzoxNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jOgoKICAgQWRkIHRoZSByYXcgY3B1IGNvdXRlcnMgZm9yIEJTRGkuIENvdXJ0ZXN5IEJlcnQgRHJpZWh1aXMuCiAgIAoyMDAxLTAxLTA0IDIzOjEyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIFNhdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzCiAgIAoyMDAxLTAxLTA0IDIzOjA5ICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliX21vZHVsZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgQWRkIG1pc3NpbmcgZG1hbGxvYyBzdXBwb3J0IGZvciBzb21lIGZpbGVzCiAgIAoyMDAxLTAxLTA0IDIzOjA0ICBuYmEKCiAgICogTWFrZWZpbGUuaW46CgogICBFbnN1cmUgc29ydCBvcmRlciBmb3IgY29uZmlnLmguaW4KICAgCjIwMDEtMDEtMDQgMTA6MjQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IHNlbWktY29sb24gcHJvYmxlbS4gIFBhdGNoICMxMDMxMDEuCiAgIAoyMDAxLTAxLTAzIDA3OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICAvcHJvYy8lZC9jbWRsaW5lIG1heSBiZSBhbiBlbXB0eSBmaWxlIGZvciBzb21lIHByb2Nlc3Nlcy4gIFJldHVybiAiIiBpZiBzby4KICAgCjIwMDEtMDEtMDIgMDk6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBhZGQgYSAiJXMiIGZvcm1hdHRpbmcgc3RyaW5nIHRvIHRoZSBzeXNsb2coKSBjYWxsIChyZWRoYXQgYnVnICMxODE1MykuCiAgIAoyMDAwLTEyLTI5IDEzOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBQYXRjaCBmcm9tIFRlZCBSdWxlOgogICAgIC0gYmV0dGVyIGNoZWNraW5nIGZvciBmb3JtYXR0aW5nIG9mIHRoZSAvcHJvYy9uZXQvZGV2IGZpbGUgdG8gYXZvaWQKICAgICAgIGxpbnV4IGNvcmUgZHVtcHMgd2hlbiB0aGUga2VybmVsIG1pcy1iZWhhdmVzLgogICAKMjAwMC0xMi0yNyAxNjo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTNhZ2VudHYxdHJhcCwgVDA1NGFnZW50djJjdHJhcCwKICAgVDA1NWFnZW50djFtaW50cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwLCBUMTEzYWdlbnR4dHJhcDoKCiAgIC0gdHJhcCBBUEkgdGVzdGluZyBzdWl0ZSBlbmhhbmNlZCB0byB0ZXN0IG1vcmUgY2FzZXMuCiAgIAoyMDAwLTEyLTI3IDE2OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9hZ2VudF90cmFwLmgsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suaDoKCiAgIC0gTWFrZSB0aGUgbm90aWZpY2F0aW9uIG1pYiB3b3JrIG1vcmUgdmlhIGNhbGxiYWNrcyBhbmQgcmVtb3ZlIGlmZGVmcyBpbgogICAgIGFnZW50X3RyYXAuYwogICAtIE1ha2UgdGhlIGFnZW50X3RyYXAuYyBmaWxlIGNoZWNrIGZvciBjYWxsYmFjayByZWdpc3RyYXRpb25zIGFuZAogICAgIGhhbmRsZSBpdCBpbnRlcm5hbGx5IHVzaW5nIHRoZSBvbGQgdHJhcHNpbmsgc3VwcG9ydCBpZiBubyBjYWxsYmFjawogICAgIGlzIGZvdW5kLgogICAtIFRoaXMgZml4ZXMgdGhlIHByb2JsZW0gd2hlbiBpbml0X21pYl9tb2R1bGVzKCkgaXNuJ3QgY2FsbGVkIGluIHN1YmFnZW50cy4KICAgCjIwMDAtMTItMjcgMTY6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIG1ha2UgdGhlIGV4YW1wbGUgdHJhcHMgYmUgc2VudCB1c2luZyBhIGVudGVycHJpc2Ugc3BlY2lmaWMgdHJhcCBvZiA5OQogICByYXRoZXIgdGhhbiAzLiAgV2UgbmVlZCB0byBkZWZpbmUgaXQgaW4gdGhlIG1pYiBzdGlsbC4KICAgCjIwMDAtMTItMjcgMTU6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IGJyb2tlbiBjb21waWxlciBwcmVjZWRlbmNlIGFzIHJlcG9ydGVkIGluIHN1cHBvcnQgIzExMDQ3My4KICAgCjIwMDAtMTItMjIgMDg6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IGNvdW50ZXI2NCByZXZlcnNlIGVuY29kaW5ncy4KICAgCjIwMDAtMTItMjIgMDY6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgZml4IHZpZXcgcHJvY2Vzc2luZyB0byB3YXRjaCBmb3IgbGVuZ3RoIHByZWZpeC4gIFRoZSBsZW5ndGggcHJlZml4CiAgIHJlYWxseSByZWFsbHkgc2hvdWxkbid0IGJlIHN0b3JlZCBkaXJlY3RseSBpbiB0aGUgb2lkLiAgTmllbHM/CiAgIAoyMDAwLTEyLTIxIDE0OjQzICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICAtIG1haW4uYzogZml4IHByb2JsZW0gd2l0aCBwb3NpdGlvbmFsIGNvbW11bml0eSBhcmd1bWVudCB0byBzbm1wbmV0c3RhdAogICAKMjAwMC0xMi0yMSAxNDozNyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBtYWtlIHN1cmUgaW5pdF9taWJfaW50ZXJuYWxzIGlzIGNhbGxlZCBiZWZvcmUgZG9pbmcgYW55dGhpbmcKICAgCXNlcmlvdXMgaW4gaW5pdF9taWIKICAgCjIwMDAtMTItMjEgMDg6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcyB0byBmaXggc3VwcG9ydCBmb3IgQklUUwogICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMS4yIC0+IFY0LjIKCjIwMDAtMTItMDQgMTU6MzAgIGhhcmRha2VyCgoJLSAoTkVXUywgUkVBRE1FKTogdXBkYXRlcy4KCQoyMDAwLTEyLTA0IDE0OjQ4ICBtYXJ6CgoJZW5zdXJlIG1pYmxvYWQudCB1c2VzIGNvcnJlY3QgTUlCRElSIGZvciB0ZXN0aW5nCgkKMjAwMC0xMi0wNCAxMTowNSAgaGFyZGFrZXIKCgktIChBR0VOVC50eHQsIEZBUSwgUkVBRE1FKTogY29udmVydCB1cmwncyB0byB3d3cubmV0c25tcC5vcmcuCgkKMjAwMC0xMi0wNCAwODo0NSAgaGFyZGFrZXIKCgktIChORVdTKTogYWdlbnR4IG5vdGUgY2hhbmdlcy4KCQoyMDAwLTEyLTAzIDA3OjI5ICBuYmEKCgktIHNubXB0cmFwZF9sb2cuYzogZm94IG1pc3NpbmcgbGVhZGluZyB6ZXJvZXMgZm9yICUuMmQgbGlrZSBmb3JtYXRzLgoJCUFkZCBhbiBhbHRlcm5hdGUgZm9ybWF0IGZvciB1cC10aW1lIGRpc3BsYXlzLgoJCjIwMDAtMTItMDIgMTg6MjIgIG1hcnoKCglmb3VuZCB0aGUgdW5pbml0aWFsaXplZCBkYXRhIGJ1Zy4uLm11c3QgaGF2ZSBiZWVuIGluIHRoZXJlIGRvcm1hbnQgZm9yIGEgd2hpbGUsIG90aGVyIHRlc3QgZml4ZXMgLSBnb29kIHRvIGdvIQoJCjIwMDAtMTItMDEgMTY6MzYgIGhhcmRha2VyCgoJLSAoYWdlbnQvc25tcGQuYyk6IHJlZmVyZW5jZSBzb3VyY2Vmb3JnZS4KCQoyMDAwLTEyLTAxIDE2OjM1ICBoYXJkYWtlcgoKCS0gKEFHRU5ULnR4dCk6IHJlZmVyZW5jZSBzb3VyY2Vmb3JnZS4KCQoyMDAwLTEyLTAxIDE2OjM0ICBoYXJkYWtlcgoKCS0gKFRPRE8pOiByZWZlcmVuY2UgbmV0LXNubXAtY29kZXJzLgoJCjIwMDAtMTItMDEgMTY6MzQgIGhhcmRha2VyCgoJLSAoUkVBRE1FKTogdXBkYXRlLgoJCjIwMDAtMTItMDEgMTY6MzMgIGhhcmRha2VyCgoJLSAoYnVnLXJlcG9ydCwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZyk6IHJlbW92ZSB0aGUgYnVnIHJlcG9ydCBzY3JpcHQuCgkKMjAwMC0xMi0wMSAxNjozMSAgaGFyZGFrZXIKCgktIChQT1JUSU5HKTogcmVmZXJlbmNlIHNvdXJjZWZvcmdlLgoJCjIwMDAtMTItMDEgMTY6MjMgIGhhcmRha2VyCgoJLSAobWFuL3NubXB0cmFwZC5jb25mLjUuZGVmKTogbWVudGlvbiB0aGUgZmFjdCB0aGF0IHNubXB2MyB0cmFwcyBhcmUKCSAgdGhlIHNhbWUgYXMgc25tcHYyIHRyYXBzLgoJCjIwMDAtMTItMDEgMTY6MjMgIGhhcmRha2VyCgoJLSAoTkVXUyk6IHVwZGF0ZS4KCQoyMDAwLTEyLTAxIDE1OjMxICBoYXJkYWtlcgoKCS0gKFJFQURNRSk6IHVwZGF0ZS4KCQoyMDAwLTEyLTAxIDE1OjE2ICBoYXJkYWtlcgoKCS0gKHNubXBkLmNvbmYuNS5kZWYpOiB1cGRhdGUgZm9yIHByb3h5IHN1cHBvcnQuCgkKMjAwMC0xMi0wMSAxNDozNiAgaGFyZGFrZXIKCgktIChGQVEpOiB1cGRhdGUgYSBmZXcgdGhpbmdzLgoJCjIwMDAtMTItMDEgMTQ6MjggIG5iYQoKCS0gbWliLmM6IGRpYWdub3NlIHdyb25nIHF1b3RpbmcgaW4gaW5kaWNlcwoJCjIwMDAtMTItMDEgMTQ6MjMgIG5iYQoKCS0gcGFyc2UuYzogYWRkIFJGQy0xMjEzIGFzIGFuIGFsaWFzZSBmb3IgUkZDMTIxMy1NSUIgKHVzZWQgaW4gbWFueSBtaWJzKQoJCjIwMDAtMTItMDEgMTQ6MTkgIG5iYQoKCS0gc211eC5jOiByZWZvcm1hdCBzb21lIGRlYnVnIG1lc3NhZ2VzIGZvciByZWFkYWJpbGl0eQoJCjIwMDAtMTItMDEgMTQ6MTcgIG5iYQoKCS0gaW50ZXJmYWNlcy5jOiBmaXggaWZUeXBlIHZhbHVlcyBmb3IgTGludXgKCQoyMDAwLTEyLTAxIDE0OjE0ICBuYmEKCgktIHN1YmFnZW50LmM6IHN1cHBseSBhIG1pc3NpbmcgcmV0dXJuIHZhbHVlCgkKMjAwMC0xMi0wMSAxMDowNCAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IHF1b3RlIHRoaW5ncyB3aXRoIHNwYWNlcyBpbiB0aGVtLgoJCjIwMDAtMTItMDEgMDk6NDkgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYuMSk6IHF1aWNrIG1hbiBwYWdlIGZvciBzbm1wY29uZi4KCQoyMDAwLTEyLTAxIDA5OjE1ICBoYXJkYWtlcgoKCS0gKGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC5jb25mL21vbml0b3IpOiBjbGVhbnVwcy4KCQoyMDAwLTEyLTAxIDA5OjE0ICBoYXJkYWtlcgoKCS0gKHNubXBsaWIvcGFyc2UuYyk6IGNoYW5nZSBuby1wYXJlbnQgbG9nIG1lc3NhZ2UgaW50byBhIHdhcm5pbmcuCgkKMjAwMC0xMi0wMSAwOToxMSAgaGFyZGFrZXIKCgktIChhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eCk6IHVwZGF0ZSBmcm9tIERhdmUuCgkKMjAwMC0xMi0wMSAwOToxMCAgaGFyZGFrZXIKCgktIChGQVEpOiB1cGRhdGUgZnJvbSBEYXZlLgoJCjIwMDAtMTItMDEgMDc6NTkgIGhhcmRha2VyCgoJLSAoYWdlbnQvYWdlbnRfdHJhcC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKCSAgLSBzdXBwb3J0IHYyLT52MSB0cmFwIGNvbnZlcnNpb24uCgkKMjAwMC0xMi0wMSAwNzo1NiAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHR5cG8uCgkKMjAwMC0xMi0wMSAwNzo0MiAgbWFyegoKCWFkZGl0aW9uYWwgZml4ZXMgdG8gc3VwcG9ydCB0YXJnZXR0ZWQgYnVpbGRzIG9mIHBlcmwvU05NUCB1c2luZyAtTkVULVNOTVAtUEFUSCAoYW5kIHdoaXRlIHNwYWNlIHJlbW92YWwgYXMgbXkgZW1hY3Mga2luZGx5IGRvZXMgdGhhdCBmb3IgbWU/KQoJCjIwMDAtMTEtMzAgMTQ6MDYgIG5iYQoKCS0gZ2V0b3B0LmgsIHNubXBfcGFyc2VfYXJncy5oOiBleHRlcm4gIkMiIGJyYWNrZXRpbmcKCQoyMDAwLTExLTMwIDE0OjA0ICBuYmEKCgktIHNubXBkLmNvbmYuNS5kZWY6IGZpeCBmb3JtYXR0aW5nIG9mIHNtdXhwZWVyIHRva2VuCgkKMjAwMC0xMS0zMCAxMDozMSAgaGFyZGFrZXIKCgktIChGQVEpOiBVcGRhdGUgZnJvbSBEYXZlLgoJCjIwMDAtMTEtMzAgMTA6MTggIGhhcmRha2VyCgoJLSAobWFzdGVyX3JlcXVlc3QuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gZml4IGJhZCBzZXRzIGZvciBhZ2VudHguCgkKMjAwMC0xMS0zMCAwOToxOSAgaGFyZGFrZXIKCgktIChvdi9SRUFETUUpOiBtaW5vciBjb3JyZWN0aW9ucywgcHJvYmFibHkgc3RpbGwgaW5jb3JyZWN0LgoJCjIwMDAtMTEtMzAgMDk6MTggIGhhcmRha2VyCgoJLSAobG9jYWwvTWFrZWZpbGUuaW4sIHNubXBjb25mLCBhY2wsIGJhc2ljX3NldHVwLCBtb25pdG9yLCBvcGVyYXRpb24sCgkgIHN5c3RlbSwgdHJhcHNpbmtzKToKCSAgLSBncm91cGluZyBzdXBwb3J0LgoJICAtIHNvcnQtb2YtcXVpZXQgb3V0cHV0IHN1cHBvcnQuCgkgIC0gb3BlcmF0aW9uIG1vZGUgc3VwcG9ydCAoc2V0dGluZyB1c2VyLCBncm91cCwgcG9ydHMuLi4pCgkKMjAwMC0xMS0zMCAwOToxMyAgaGFyZGFrZXIKCgktIChzbm1wbGliL3JlYWRfY29uZmlnLmMpOiBzYXZlIGEgd2FybmluZyBoZWFkZXIgYXQgdGhlIHRvcCBvZiB0aGUKCSAgcGVyc2lzdGVudCBkYXRhIGZpbGUuCgkKMjAwMC0xMS0zMCAwOToxMSAgaGFyZGFrZXIKCgktIChhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMpOiBDbGVhbnVwIHBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcy4KCQoyMDAwLTExLTMwIDA5OjEwICBoYXJkYWtlcgoKCS0gKGFnZW50L3NubXBkLmMpOiBzZXQgRFNfQUdFTlRfTk9fUk9PVF9BQ0NFU1MgaW4gLUggaGVscCBvdXRwdXQuCgkKMjAwMC0xMS0zMCAwOTowOCAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IG1lbnRpb24gdGhlIFRVTk5FTC1NSUIgc3VwcG9ydC4KCQoyMDAwLTExLTI5IDE4OjIxICBzbGlmCgoJVXBkYXRlIGUtbWFpbCBhZGRyZXNzIGZvciBTbGlmY2FrCgkKMjAwMC0xMS0yOSAxMTozNCAgbWFyegoKCWZpeGVkIG9yZGVyIG9mIGZ1bmN0aW9uIGNoZWNraW5nIHNvIHRoYXQgdnNucHJpbnRmIGlzIG5vdCBmb3VuZCBpbiBsaWJkYiAoQlNEIGRiKSBieSBtaXN0YWtlCgkKMjAwMC0xMS0yOSAwNToxOCAgbWFyegoKCXBhcnRpYWwgc3VibWl0IHRvIGdldCBwZXJsL1NOTVAgdGVzdHMgdG8gcGFzcyBhbmQgdXBkYXRlIHRoZSBkb2NzIHNvbWV3aGF0IC0gc3RpbGwgZ2V0dGluZyBjb3JlcyBpbiBub3RpZnkudC4gaGFkIHRvIGNoYW5nZSBjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24gdG8gdXBkYXRlIGFuIGV4aXN0aW5nIHVzZXIgaW5jYXNlIDIgc2Vzc2lvbnMgYXJlIHN0YXJ0ZWQgd2l0aCB0aGUgc2FtZSB1c2VyCgkKMjAwMC0xMS0yOCAxODowMCAgbWFyegoKCXBhcnRpYWwgc3VibWl0IHRvIGdldCBwZXJsL1NOTVAgdGVzdHMgdG8gcGFzcyBhbmQgdXBkYXRlIHRoZSBkb2NzIHNvbWV3aGF0IC0gc3RpbGwgZ2V0dGluZyBjb3JlcyBpbiBub3RpZnkudC4gaGFkIHRvIGNoYW5nZSBjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24gdG8gdXBkYXRlIGFuIGV4aXN0aW5nIHVzZXIgaW5jYXNlIDIgc2Vzc2lvbnMgYXJlIHN0YXJ0ZWQgd2l0aCB0aGUgc2FtZSB1c2VyCgkKMjAwMC0xMS0yNyAxNDozNyAgaGFyZGFrZXIKCgktIChsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQuY29uZi9iYXNpY19zZXR1cCk6IGJhc2ljIHNldHVwIHNlcmllcyBvZiBxdWVzdGlvbnMuCgkKMjAwMC0xMS0yNyAxNDozNiAgaGFyZGFrZXIKCgktIChsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQuY29uZi9hY2wpOiB0eXBvcy4KCQoyMDAwLTExLTI3IDE0OjM2ICBoYXJkYWtlcgoKCS0gKGxvY2FsL3NubXBjb25mKToKCSAgLSBhZGQgc3VwcG9ydCBmb3IgImdyb3VwcyIgb2YgaXRlbXMuCgkgIC0gZG9uJ3QgdXNlIElPOjpEaXIsIGFzIGl0cyBub3QgaW4gdGhlIHN0YW5kYXJkIHBlcmwgbW9kdWxlIGRpc3RyaWJ1dGlvbnMuCgkKMjAwMC0xMS0yNyAxNDozNCAgaGFyZGFrZXIKCgktIChhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5oKTogcmVtb3ZlIHVubmVlZGVkIHZhcmlhYmxlIHJlZmVyZW5jZS4KCQoyMDAwLTExLTI3IDE0OjMzICBoYXJkYWtlcgoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IFBhdGNoIGZyb20gSm9obiBOYXlsb246CgkgIC0gZml4IGF1dG8tc2V0IHN1cHBvcnQgZm9yIHRoZSBhZ2VudCAoYW5kIHBsdWcgYSBtZW1vcnkgbGVhaykuCgkKMjAwMC0xMS0yNyAxMzo0MiAgbmJhCgoJLSBzbm1wLmNvbmYuNS5kZWY6IGRvY3VtZW50IHRva2VucyBleHRlbmRlZEluZGV4IGFuZCBub1JhbmdlQ2hlY2sKCQoyMDAwLTExLTI3IDEzOjQxICBuYmEKCgktoHBhcnNlLmM6IGZpeCBhIEMrKyBzdHlsZSBjb21tZW50CgkKMjAwMC0xMS0yNCAxNToxNCAgbmJhCgoJLSBtZW1vcnlfZnJlZWJzZDIuYywgdm1zdGF0X25ldGJzZDEuYzogbWlub3IgZml4ZXMgZm9yIE5ldEJTRCAxLjUsIE9QZW5CU0QgMi42CgkKMjAwMC0xMS0yMiAxMzo0OCAgaGFyZGFrZXIKCgktIChtaWJncm91cC91Y2Qtc25tcC9kbG1vZC5jKTogUGF0Y2ggZnJvbSBTZWFuIEhhcmRpbmc6CgkgIC0gZG9uJ3QgZXhwb3J0IGFuIGludGVybmFsIHZhcmlhYmxlLgoJCjIwMDAtMTEtMjEgMTU6MTcgIG5iYQoKCS0gbWliLmM6IGZpeCBwYXJzaW5nIG9mIG9pZCBsaWtlIDk5LjEzLlwiZ3VmXCI4CgkKMjAwMC0xMS0xOSAxMzowMyAgbmJhCgoJLSBTTk1QLnhzLCBtaWIyYy52YXJ0eXBlcy5jb25mOiBUaGUgcmVjZW50IHNwZWNpYWxpc2F0aW9uIG9mIHRoZSBJbnRlZ2VyCgkJdHlwZXMgaW4gdGhlIHBhcnNlciBjcmVhdGVkIHByb2JsZW1zIGZvciB0aGUgcGVybCBtb2R1bGUgYW5kIGluIHR1cm4KCQlmb3IgbWliMmMuIFNvcnJ5IGZvciBub3QgY2F0Y2hpbmcgdGhpcyBiZWZvcmUgcHJlMiA6LSgKCQoyMDAwLTExLTE5IDEyOjU4ICBuYmEKCgktIGZpeGVzIHRvIC4vY29uZmlndXJlIC0td2l0aC1kZWZhdWx0cyAtLWVuYWJsZS1taW5pLWFnZW50OyBtYWtlIGluc3RhbGwKCQlhbmQgcnVuIHRoZSB0b29scyB1bmRlciBjeWd3aW4uIEhhdmVuJ3QgdHJpZWQgdGhlIGFnZW50IHlldCA6LSkKCQoyMDAwLTExLTE4IDA3OjE0ICBoYXJkYWtlcgoKCS0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLnByZTIgKQoJCjIwMDAtMTEtMTggMDc6MTIgIGhhcmRha2VyCgoJLSAoVDA0OXNubXB2M2luZm9ybSk6IHYzIGluZm9ybSB0ZXN0IGFkZGVkLgoJCjIwMDAtMTEtMTcgMTE6MDEgIG5iYQoKCS0gbWliLmMsIHNubXBfYXBpLmM6IGJldHRlciBlcnJvciBtZXNzYWdlcyBmb3IgYmFkIHNubXBzZXQgY2FsbHMgYW5kIGJhZAoJCWluZGljZXMuIEFsc28gZml4IGEgYnVnIHdpdGggcXVvdGVkIGluZGljZXMuCgkKMjAwMC0xMS0xNyAxMDozMiAgaGFyZGFrZXIKCgktICh0ZXN0cy9UMDUwc25tcHYzdHJhcCk6IHRlc3QgZm9yIHNubXB2MyB0cmFwcy4KCQoyMDAwLTExLTE3IDEwOjMwICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwZC5jKTogZml4IGNhc2VzIHdoZXJlIHRoZSBmb3JtYXQgc3RyaW5ncyBhcmUgc3BlY2lmaWVkLgoJCjIwMDAtMTEtMTcgMTA6MjYgIG5iYQoKCS0gSUFOQWlmVHlwZS1NSUIudHh0OiB1cGRhdGUgZnJvbSBJQU5BCgkKMjAwMC0xMS0xNyAwODozMiAgaGFyZGFrZXIKCgktIChtYXN0ZXJfcmVxdWVzdC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKCSAgLSBmaXggbWVtb3J5IGxlYWtzLgoJICAtIGZpeCBhZ2VudHggcHJvYmxlbXMgd2l0aCBiYWQgc2V0cy4KCQoyMDAwLTExLTE2IDE3OjU1ICBoYXJkYWtlcgoKCS0gKHNubXBsaWIvc25tcHYzLmMpOiBhZGRlZCBhIHNwYWNlIGluIGEgZGVidWdnaW5nIG91dHB1dCBzdGF0ZW1lbnQuCgkKMjAwMC0xMS0xNiAxNzo1NCAgaGFyZGFrZXIKCgktIChzbm1wbGliL3JlYWRfY29uZmlnLmMpOiBzaW1wbGUgZGVidWdnaW5nIHN0YXRlbWVudCBhZGRlZC4KCQoyMDAwLTExLTE2IDE3OjU0ICBoYXJkYWtlcgoKCS0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHNldCBEU19MSUJfQVBQVFlQRSBpZiBpdCBoYXNuJ3QgYmVlbiBzZXQgeWV0LgoJCjIwMDAtMTEtMTYgMTc6NTIgIGhhcmRha2VyCgoJLSAodGVzdGluZy9ldmFsX3Rvb2xzLnNoKTogYWRkIENPTkZJR1RSQVBELgoJCjIwMDAtMTEtMTYgMTc6NTAgIGhhcmRha2VyCgoJLSAoc25tcGxpYi9taWIuYywgdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwKCSAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsKToKCSAgLSBzdXBwb3J0IC1JciBmb3IgImRvbnQgY2hlY2sgcmFuZ2UvdHlwZSB2YWx1ZXMiIChsZXR0ZXIgciBzdWJqZWN0IHRvIGRlYmF0ZSkuCgkKMjAwMC0xMS0xNiAxNzoyNSAgaGFyZGFrZXIKCgktIChjYWxsYmFjay5jKTogYmV0dGVyIGRlYnVnZ2luZyBvdXRwdXQgdG8gZGlzcGxheSBhIGNhbGxiYWNrIGNvdW50IHdoZW4gZG9uZS4KCQoyMDAwLTExLTE2IDE2OjUyICBoYXJkYWtlcgoKCS0gKFQxMTNhZ2VudHh0cmFwKTogQSBuZXcgdGVzdCB0byB0ZXN0IHRyYXAgc3VwcG9ydCBmcm9tIGFnZW50eCBzdWJhZ2VudHMuCgkKMjAwMC0xMS0xNiAxNjo1MCAgaGFyZGFrZXIKCgktIChUMDU4YWdlbnRhdXRodHJhcCk6IHNsZWVwIHNvbWUgYW5kIG9ubHkgcGVyZm9ybSBvbmUgZ2V0IHJlcXVlc3QuCgkKMjAwMC0xMS0xNiAxNjo0OSAgaGFyZGFrZXIKCgktIChUMDU0YWdlbnR2MmN0cmFwKTogc2xlZXAgYSBiaXQgYW5kIG9ubHkgc2VuZCBvbmUgc25tcCBzZXQgcmVxdWVzdC4KCQoyMDAwLTExLTE2IDE1OjQ3ICBuYmEKCgktIGdldG9wdC5jOiBxdWVsbCBjb21waWxlciB3YXJuaW5ncwoJCjIwMDAtMTEtMTYgMTU6MzEgIG5iYQoKCS0gcGFyc2UuW2NoXSwgbWliLmMsIHNubXBfYXBpLmM6IHJlbmFtZSBUWVBFX1VJTlRFR0VSMzIgYmFjayB0byBUWVBFX1VJTlRFR0VSCgkKMjAwMC0xMS0xNiAxNToxNiAgbmJhCgoJLSBzbm1wdHJhcGQuYywgc25tcHRyYXBkLmNvbmY6IG5ldyBjb25maWcgZGlyZWN0aXZlcyBmb3JtYXQxIGFuZCBmb3JtYXQyIHRvCgkJc2V0IGxvZyBmb3JtYXRzIGZvciBUUkFQMSBhbmQgVFJBUDIgcGR1cy4KCQoyMDAwLTExLTE2IDEzOjUwICBuYmEKCgktIHNubXBfYXBpLmM6IGFkZCBmdW5jdGlvbmFsaXR5IHRvIGNoZWNrIHZhbHVlIHR5cGVzIGluIGFkZGl0aW9uIHRvIHJhbmdlcwoJCWZvciBzbm1wc2V0IGFuZCBzbm1wdHJhcC4KCQoyMDAwLTExLTE2IDEzOjQ3ICBuYmEKCgktIHBhcnNlLmM6IEZpeCBERUZWQUwgcGFyc2luZyBmb3IgIE9CSkVDVCBJREVOVElGSUVSIG9yIEJJVFMgdmFsdWVzCgkJKGkuZS4gREVGVkFMIHsgeyAwIDAgfSB9IGV0YykKCQoyMDAwLTExLTE2IDExOjM5ICBoYXJkYWtlcgoKCS0gKFQwNThhZ2VudGF1dGh0cmFwKTogYWRkIGEgZ3JlYXRlciB0aW1lb3V0IHRvIHRoZSBnZXQgcmVxdWVzdC4KCQoyMDAwLTExLTE2IDExOjM1ICBoYXJkYWtlcgoKCS0gKGV4YW1wbGUuYyk6CgkgIC0gc2VuZCBhIHYyYyB0cmFwIHVzaW5nIGl0cyBvd24gZGF0YSwgbm90IHRoZSBzeXN0ZW1fbWliJ3MuCgkgIC0gbW9yZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KCQoyMDAwLTExLTE2IDExOjM0ICBoYXJkYWtlcgoKCS0gKFQwNTNhZ2VudHYxdHJhcCwgVDA1NGFnZW50djJjdHJhcCwgVDA1OGFnZW50YXV0aHRyYXApOgoJICAtIG5ldyB0ZXN0cyBmb3IgdHJhcHMgc2VudCBieSB0aGUgYWdlbnQuCgkKMjAwMC0xMS0xNiAwOTo1NiAgaGFyZGFrZXIKCgktICh0YXJnZXQuYyk6IERvbid0IGRlbGV0ZSBSRUFET05MWSB0cmFwIHNlc3Npb25zLgoJCjIwMDAtMTEtMTUgMTY6MzcgIGhhcmRha2VyCgoJLSAodGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSk6IHRlc3QgaW5mb3JtIHNlbmRpbmcvcmVjZWl2aW5nLgoJCjIwMDAtMTEtMTUgMTY6MzcgIGhhcmRha2VyCgoJLSAoYXBwcy9zbm1wdHJhcC5jLCBtYW4vc25tcHRyYXAuMSk6IHN1cHBvcnQgLUNpIGZvciBzZW5kaW5nIGluZm9ybXMuCgkKMjAwMC0xMS0xNSAxNTo0OCAgaGFyZGFrZXIKCgktIChzbm1wdHJhcGRfbG9nLmMpOiB1c2UgU05NUF9NQVhCVUYgaW5zdGVhZCBvZiBhIGxvY2FsIGxlbmd0aCBkZWZpbml0aW9uLgoJCjIwMDAtMTEtMTUgMTQ6MTggIG5iYQoKCS0gTWFrZWZpbGUuaW46IGZpeCBtYWtlJ2luZyBpbiByZW1vdGUgZGlyZWN0b3J5CgkKMjAwMC0xMS0xNSAxNDoxMSAgbmJhCgoJLSBtYWluLmM6IHVwZGF0ZSB0byB1c2UgZ2V0b3B0IGZvciBhcmd1bWVudCBwYXJzaW5nLgoJCjIwMDAtMTEtMTUgMTQ6MTAgIG5iYQoKCS0gc25tcF9hZ2VudC5jOiBmaXggYSBjb25mdXNpbmcgaW5kZW50YXRpb24uCgkKMjAwMC0xMS0xNSAxNDowOSAgbmJhCgoJLSBhZ2VudF90cmFwLmM6IG1ha2Ugc3VyZSBjb21tdW5pdHkgaXMgXDAtdGVybWluYXRlZCBpbiB0YXJnZXRQYXJhbXNUYWJsZQoJCjIwMDAtMTEtMTUgMTQ6MDMgIG5iYQoKCS0gc25tcHRyYXBkX2xvZzogZml4IGEgYnVmZmVyIHRoYXQgaXMgd2F5IHRvbyBzaG9ydCBmb3IgYSB0cmFwIHdpdGgganVzdCBhCgkJc2luZ2xlIHBhcmFtZXRlci4gRml4IGEgYmFkIGxpbWl0IHRlc3QgaW4gc3RyX2FwcGVuZC4KCQoyMDAwLTExLTE1IDE0OjAwICBuYmEKCgktIHNubXB0cmFuc2xhdGUuYzogZml4IGEgc3R1cGlkIHBlcnJvciBmb3Igc25tcF9wZXJyb3IKCQoyMDAwLTExLTE1IDEzOjU4ICBuYmEKCgktIHBhcnNlLltjaF0sIG1pYi5jOiBlbmhhbmNlIHRoZSBwYXJzZXIgdG8gZGlzdGluZ3Vpc2ggSU5URUdFUiwgSW50ZWdlcjMyLAoJCVVuc2lnbmVkMzIsIFVJbnRlZ2VyMzIuCgkKMjAwMC0xMS0xNSAxMzo1NSAgbmJhCgoJc25tcF9hcGkuYzogcmVtb3ZlIGFuIHVudXNlZCB2YXJpYWJsZQoJCjIwMDAtMTEtMTUgMDc6NDkgIGhhcmRha2VyCgoJLSAoc25tcF92YXJzLmMsIHN1YmFnZW50LmMpOiBQYXRjaCBmcm9tIExhd3JlbmNlIEdyZWVuZmllbGQ6CgkgIC0gRG9uJ3QgbWFrZSBpbml0X2FnZW50KCkvc3ViYWdlbnRfcHJlX2luaXQoKSBleGl0IGJ1dCByZXR1cm4gYW4KCSAgICBlcnJvciBjb25kaXRpb24gaW5zdGVhZC4KCQoyMDAwLTExLTEyIDA4OjA4ICBoYXJkYWtlcgoKCS0gKHVjZERlbW9QdWJsaWMuYyk6IGFkZCBOVUxMIHRvIGVuZCBvZiBkZW1vIHN0cmluZyBhbmQgY2hlY2sgZm9yIGxlbj0wLgoJCjIwMDAtMTEtMTIgMDQ6NDUgIG5iYQoKCXNubXBfYXBpLmM6IE1ha2Ugc3VyZSB0aGUgbm9SYW5nZUNoZWNrIHRva2VuIGlzIGEgYm9vbGVhbgoJCjIwMDAtMTEtMTIgMDQ6NDEgIG5iYQoKCS0gbWliLmM6IGdpdmUgdGhlIHRyZWUtdG9wIGEgbmFtZSB0byBwcm90ZWN0IGVycm9yIG1lc3NhZ2Ugd2hlbiBsb29raW5nIHVwIC5mb28KCQoyMDAwLTExLTEyIDA0OjM2ICBuYmEKCgktIHNubXB0cmFuc2xhdGUuYzogdXNlIGNvbmZpZ19wZXJyb3IgZm9yIGEgYmV0dGVyIGVycm9yIG1lc3NhZ2UKCQoyMDAwLTExLTEyIDA0OjM0ICBuYmEKCgktIHByb3h5LmM6IHJlbW92ZSBzb21lIHVudXNlZCB2YXJpYWJsZXMuCgkKMjAwMC0xMS0xMiAwNDozMyAgbmJhCgoJLWFnZW50X3RyYXBzLmM6IE1vdmUgYSBjb25kaXRpb25hbGx5IHVzZWQgdmFyaWFibGUKCQoyMDAwLTExLTEyIDA0OjMyICBuYmEKCglGaXggYSBib2d1cyAjaWZkZWYKCQoyMDAwLTExLTEwIDA5OjE4ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogYXBwbHkgcGF0Y2ggIzEwMjIyNCBmcm9tIGpicG4gZm9yIGNyb3NzLWNvbXBpbGluZy4KCQoyMDAwLTExLTEwIDA4OjU2ICBoYXJkYWtlcgoKCS0gKHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvZXZhbF90b29scy5zaCwgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXApOgoJIC0gZmlyc3QgcGFzcyBhdCBhIHRlc3Rpbmcgc2NyaXB0IHRvIHRlc3QgdHJhcCBmdW5jdGlvbmFsaXR5LgoJICAgLSB3aGljaCBldmVuIHVuY292ZXJlZCBhIGJ1Zy4KCQoyMDAwLTExLTEwIDA4OjU1ICBoYXJkYWtlcgoKCS0gKGFwcHMvc25tcHRyYXBkLmMpOgoJICAtIGZvcmsgaWYgZmlsZSBsb2dnaW5nIG9yIHN5c2xvZ2dpbmcsIGJ1dCBub3QgcHJpbnRpbmcuCgkgIC0gZG9uJ3QgY2xvc2Ugb3BlbiBmaWxlIGRlc2NyaXB0b3JzLiAgVGhlcmUgc2hvdWxkbid0IGJlIGFueS4KCQoyMDAwLTExLTEwIDA4OjUzICBoYXJkYWtlcgoKCS0gKGFwcHMvc25tcHRyYXBkX2xvZy5jKTogcHJvcGVybHkgbnVsbCB0ZXJtaW5hdGUgbG9nIHN0cmluZ3MuCgkKMjAwMC0xMS0wOSAxNjo0MCAgaGFyZGFrZXIKCgktIChjb25maWd1cmUuaW4pOiBhdHRlbXB0IHRvIGltcGxlbWVudCBhIC0td2l0aC1yc2FyZWYgZmxhZy4KCQoyMDAwLTExLTA5IDE1OjMyICBoYXJkYWtlcgoKCS0gKFJFQURNRSwgcGVybC9TTk1QL1JFQURNRSk6IG1lbnRpb24gS2FybC4KCQoyMDAwLTExLTA5IDE1OjMxICBoYXJkYWtlcgoKCS0gKE5FV1MsIHBlcmwvU05NUC9SRUFETUUpOiBtZW50aW9uIEthcmwuCgkKMjAwMC0xMS0wOSAxNDo1NiAgaGFyZGFrZXIKCgktIChleGFtcGxlcy9idWxrd2Fsay5wbCwgdC9idWxrd2Fsay50KTogcGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2U6CgkgIC0gc3VwcG9ydCBidWxrIHJlcXVlc3RzLgoJCjIwMDAtMTEtMDkgMTQ6NTMgIGhhcmRha2VyCgoJLSAoTUFOSUZFU1QsIFJFQURNRSwgU05NUC5wbSwgU05NUC54cyk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgoJICAtIHN1cHBvcnQgYnVsayByZXF1ZXN0cy4KCQoyMDAwLTExLTA4IDIzOjMzICBoYXJkYWtlcgoKCS0gKHJlYWRfY29uZmlnLmMpOiBmaXggLUggb3V0cHV0LgoJCjIwMDAtMTEtMDggMjM6MDIgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogbWFrZSBhZ2VudF9jaGVja19hbmRfcHJvY2VzcygpIGNhbGwgcnVuX2FsYXJtcygpLgoJCjIwMDAtMTEtMDggMjI6NDUgIGhhcmRha2VyCgoJLSAoZGlza2lvLmMpOiBmaXggT0lELgoJCjIwMDAtMTEtMDggMTc6MDYgIGhhcmRha2VyCgoJLSAoU05NUC5wbSwgU05NUC54cyk6IHBhdGNoIGZyb20gTWFyayBDYXZhZ2UgZm9yIGRlZmF1bHQgdmFsdWUgc3VwcG9ydC4KCQoyMDAwLTExLTA4IDE3OjAzICBoYXJkYWtlcgoKCS0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogbWluaW1hbCBERUZWQUwgcGFyc2luZyBzdXBwb3J0LgoJCjIwMDAtMTEtMDggMTY6MjAgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSk6IGNoZWNrIGZvciBsaWJyc2FyZWYsIGV0YywgaWYgbmVlZGVkLgoJCjIwMDAtMTEtMDcgMTU6MTUgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAoJICBhZ2VudC9zbm1wZC5jKToKCSAgLSB1aWQvZ2lkIGNoYW5nZXMuCgkKMjAwMC0xMS0wNyAxNToxMCAgaGFyZGFrZXIKCgktIChTTk1QLnhzKTogZml4IFRZUEVfTk9USUYgLT4gVFlQRV9OT1RJRlRZUEUuCgkKMjAwMC0xMS0wNyAxMTozMCAgaGFyZGFrZXIKCgktIChTTk1QL1NOTVAucG0sIFNOTVAvU05NUC54cyk6IFBhdGNoIGZyb20gSm9lIENsYXJrZToKCSAgLSBpbXBsZW1lbnQgYmVzdC1ndWVzcyAoLUliKSBwYXJzaW5nLgoJICAtIGFjY2VzcyB0byB0cmFwIHZhcmJpbmRzLgoJICAtIHJhbmdlIGFjY2Vzcy4KCQoyMDAwLTExLTA3IDExOjAwICBoYXJkYWtlcgoKCS0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgYnVpbGQgY3JlYXRlZCBmaWxlcy4KCQoyMDAwLTExLTA3IDEwOjU4ICBoYXJkYWtlcgoKCS0gKFJFQURNRSwgU05NUC5wbSwgU05NUC54cyk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgoJICAtIGltcGxlbWVudCBhIGZpbmlzaCgpIGNhbGwuCgkKMjAwMC0xMS0wNyAxMDo1NCAgaGFyZGFrZXIKCgktIChTTk1QL1NOTVAueHMpOiBwYXRjaCBmcm9tIEthcmwgU2NoaWxrZToKCSAgLSBtdWx0aXBsZSBjYWxsYmFjayBwYXRjaCBmb3IgcGVybC9TTk1QL1NOTVAueHMuCgkKMjAwMC0xMS0wNyAxMDo0OCAgaGFyZGFrZXIKCgktIChyZWFkX2NvbmZpZy5jKTogbG9nIGFuIGVycm9yIG1lc3NhZ2UgaWYgdGhlIG9wdGlvbmFsIGNvbmZpZyBmaWxlIERORS4KCQoyMDAwLTExLTA3IDEwOjQxICBoYXJkYWtlcgoKCS0gKFNOTVAucG0pOiBmaXggaWlkIHBhcnNpbmcgd2l0aCByZXNwZWN0IHRvIG1pYiBub2RlcyB3aXRoIGEgLSBpbiBpdC4KCQoyMDAwLTExLTA3IDEwOjI5ICBoYXJkYWtlcgoKCS0gKGlmX2ZpZWxkcy5oLCBpbnRlcmZhY2VzLmMsIGlwTWVkaWEuYywgaXBSb3V0ZS5jLCB0Y3AuYywgdGNwVGFibGUuYywKCSAgdWRwLmMsIHVkcFRhYmxlLmMpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CgkgIC0gbWliSkogZml4ZXMgW0ZyZWVCU0Qvb3RoZXIgQlNEJ3NdLgoJCjIwMDAtMTEtMDcgMTA6MTMgIGhhcmRha2VyCgoJLSAoYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQvc25tcGQuYywKCSAgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CgkgIC0gaW1wbGVtZW50IHVpZC9naWQgY2hhbmdlcyBhZnRlciBzdGFydHVwIGZvciB0aGUgYWdlbnQuCgkKMjAwMC0xMS0wNyAwODozMyAgaGFyZGFrZXIKCgktICh0YXJnZXQuYyk6IGEgYmV0dGVyIHNhbml0eSBjaGVjayBmb3Igc2Vzc2lvbiBkZWxldGlvbi4KCQoyMDAwLTExLTA3IDA3OjI0ICBoYXJkYWtlcgoKCS0gKHRhcmdldC5jKTogUGF0Y2ggZnJvbSBEYXZlIHRvIHNhbml0eSBjaGVjayBwYXJhbS0+dXBkYXRlVGltZS4KCQoyMDAwLTExLTA2IDExOjAwICBoYXJkYWtlcgoKCS0gKG1kNS5jKTogY2hlY2sgdG8gc2VlIHRoYXQgTURzaWduKCkgZGF0YSBsaWVzIG9uIGEgMzIgYnl0ZSBib3VuZHJ5LgoJICAtIGl0cyBwb3NzaWJsZSBzb21lIGNvbXBpbGVycyB3aWxsIGNob2tlIG9uIHRoaXMgaGFjay4KCSAgLSBmaXhlcyBidWcgIzEyMTc1LgoJCjIwMDAtMTEtMDMgMTc6NTQgIGhhcmRha2VyCgoJLSAobWliMmMpOiBzb3J0IE9JRHMgcHJvcGVybHkuCgkKMjAwMC0xMS0wMyAxNjo0NCAgaGFyZGFrZXIKCgktIChleGFtcGxlLmMpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgoJICAtIGZpeCBtaWIgcmVnaXN0cmF0aW9ucyBmb3IgZHVwbGljYXRlIE9JRHMgYmVpbmcgdXNlZCBmb3IgdGhlIHRyYXAgZXhhbXBsZXMuCgkKMjAwMC0xMS0wMyAxNTozMSAgaGFyZGFrZXIKCgktIChzbm1wZC5jKTogc2Vjb25kIHBhdGNoIGZyb20gZG91Z3dhcnogaW4gYnVnICMxMTcyNzMgdG8gZml4IHNtdXggcHJvYmxlbXMuCgkgIC0gVW0sIGFwcGxpZWQgY29ycmVjdGx5IHRoaXMgdGltZSAoSSBob3BlKS4KCQoyMDAwLTExLTAzIDE1OjI5ICBoYXJkYWtlcgoKCS0gKHNubXBkLmMpOiBzZWNvbmQgcGF0Y2ggZnJvbSBkb3Vnd2FyeiBpbiBidWcgIzExNzI3MyB0byBmaXggc211eCBwcm9ibGVtcy4KCQoyMDAwLTExLTAyIDIyOjE5ICBuYmEKCglDbGVhbiB1cCBzb21lIHVudXNlZCB2YXJpYWJsZXMgZXRjLgoJCjIwMDAtMTEtMDIgMjI6MTYgIG5iYQoKCS0gTWFrZWZpbGUuaW46IGZpeCBzb21lICQoc3JjZGlyKSByZWZlcmVuY2VzIHdoZW4gcnVubmluZyBvdXRzaWRlIHNvdXJjZQoJCjIwMDAtMTEtMDIgMjI6MTUgIG5iYQoKCS0gc25tcHRyYXBkLmM6IGZpeCB0aGUgZm9ybWF0IHN0cmluZyBmb3IgZm9ybWF0X3RyYXAKCQoyMDAwLTExLTAyIDIyOjE0ICBuYmEKCgktIE1ha2VmaWxlLmluOiByZW1vdmUgc29tZSBkdXBsaWNhdGVzIGZyb20gZmlsZSBsaXN0cwoJCjIwMDAtMTEtMDIgMjI6MTIgIG5iYQoKCURvY3VtZW50IHRoZSAtT1ggb3V0cHV0IG9wdGlvbgoJCjIwMDAtMTEtMDIgMjI6MTEgIG5iYQoKCURvY3VtZW50IHRoZSBzeXNzZXJ2aWNlcyB0b2tlbgoJCjIwMDAtMTEtMDIgMTY6MTcgIGhhcmRha2VyCgoJLSAoYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCk6IGFkZCB1Y2Qtc25tcC9wcm94eS4KCQoyMDAwLTExLTAyIDE2OjE2ICBoYXJkYWtlcgoKCS0gKGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcpOiBjaGFuZ2UgY3ZzIGFyY2hpdmUgc2l0ZSBhbmQgcGFja2FnZSBuYW1lLgoJCjIwMDAtMTEtMDIgMTM6MjMgIGhhcmRha2VyCgoJLSAoc211eC5jKTogUGF0Y2ggMTAyMjM5IGZyb20gZG91Z3dhcnogdG8gZml4IGEgcHJldmlvdXNseSBiYWQgc211eC5jIHBhdGNoLgoJCjIwMDAtMTEtMDEgMTY6MzYgIGhhcmRha2VyCgoJLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIucHJlMSApCgkKMjAwMC0xMS0wMSAxNjoxNCAgaGFyZGFrZXIKCgktIChUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldCwgVDEyMnByb3h5c2V0ZmFpbCk6IHByb3h5IHRlc3Qgc3VpdGUuCgkKMjAwMC0xMS0wMSAxNjowOCAgaGFyZGFrZXIKCgktIChhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oKToKCSAgLSBtaW5pbWFsIFNFVCBzdXBwb3J0IGZvciB0aGUgcHJveHkgY29kZS4KCQoyMDAwLTExLTAxIDEwOjIyICBoYXJkYWtlcgoKCS0gKFQxMTJhZ2VudHhzZXRmYWlsKTogdGVzdCBmb3IgYWdlbnR4IHNldHMgdGhhdCBzaG91bGQgZmFpbCBwcm9wZXJseS4KCQoyMDAwLTEwLTMxIDE0OjMwICBuYmEKCgktIHRjcFRhYmxlLmM6IHJlbW92ZSBhbiB1bm5lc2Nlc3NhcnkgI2luY2x1ZGUKCQoyMDAwLTEwLTMxIDE0OjI4ICBuYmEKCgktIHNtdXguYzogZml4IHdyb25nIHZhcmlhYmxlIGxlbmd0aAoJCjIwMDAtMTAtMzEgMTQ6MjUgIG5iYQoKCS0gcHJvdG9jb2wuYzogZml4IHNvbWUgc3VzcGljaW91cyBsb29raW5nIGNvZGUKCQoyMDAwLTEwLTMxIDE0OjIxICBuYmEKCgktIG1hbi9zbm1wZC5jb25mOiBmaXggYSB0eXBvCgkKMjAwMC0xMC0zMSAxMjo0MSAgbmJhCgoJLSBtaWIuYzogYWRkIC1PWCBvdXRwdXQgZm9ybWF0LCBmb3IganVzdCBhbm90aGVyIHdheSBvZiBwcmludGluZyBpbmRpY2VzCgkKMjAwMC0xMC0zMSAxMjoyNyAgbmJhCgoJLSBpbnRlcmZhY2UuYzogYWRkICJpbnRlcmZhY2UiIGNvbmZpZyBmb3IgdW5ndWVzc2FibGUgaW50ZXJmYWNlIHR5cGUvc3BlZWQKCQoyMDAwLTEwLTMxIDEyOjI1ICBuYmEKCgktIGFwcHMvKjogbWFrZSBzdXJlIHdlIHJlcG9ydCBhbnkgZXJyaW5kZXgvZXJyY29kZSBpbiB0aGUgcmVzcG9uc2UKCQoyMDAwLTEwLTMxIDEyOjA0ICBuYmEKCgktIHByb3RvY29sLmM6IGNsZWFuIHVwIHVudXNlZCB2YXJpYWJsZXMuCgkKMjAwMC0xMC0zMSAxMDoxMyAgaGFyZGFrZXIKCgktIChzbXV4LmMpOiBwYXRjaCAjMSBmcm9tIGJ1ZyAjMTE3MjczIGFwcGxpZWQgdG8gZml4IHNtdXggc29ja2V0IHByb2JsZW1zLgoJCjIwMDAtMTAtMzEgMDk6MjQgIGhhcmRha2VyCgoJLSAoU05NUC54cyk6IHByaW50IGNvdW50ZXI2NCdzIGFzIHVuc2lnbmVkLgoJCjIwMDAtMTAtMzEgMDc6NTQgIGhhcmRha2VyCgoJLSAoYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgsIHN1YmFnZW50LmMsIHNubXBOb3RpZnlUYWJsZS5jLAoJICBzbm1wTm90aWZ5VGFibGUuaCk6IFBhdGNoIGZyb20gRGF2ZToKCSAgLSBmaXggbm90aWZpY2F0aW9ucyBmcm9tIGFnZW50eCBzdWJhZ2VudHMuCgkKMjAwMC0xMC0zMCAyMjowMyAgaGFyZGFrZXIKCgktIChzbXV4LmMpOiBmaXggYnVnICMxMTk3ODY6IG1ha2Ugc211eCByZXVzZSBzb2NrZXQgYWRkcmVzcy4KCQoyMDAwLTEwLTMwIDIxOjQyICBoYXJkYWtlcgoKCS0gKGV2YWxfdG9vbHMuc2gsIHRlc3RzL1QxMTBhZ2VudHhnZXQsIHRlc3RzL1QxMTFhZ2VudHhzZXQpOgoJICAtIGZpeCBidWcgIzM4MgoJICAtIGZpeCBhZ2VudHggbm9uLXJvb3QgdGVzdHMgdG8gdXNlIC14IC90bXAvYmxhaC9hZ2VudHhfc29ja2V0LgoJCjIwMDAtMTAtMzAgMTM6NDUgIGhhcmRha2VyCgoJLSAoc25tcGQuMS5kZWYpOiBmaXggYSB0eXBvIHBvaW50ZWQgb3V0IGJ5IENocmlzIFBlcHBlci4KCQoyMDAwLTEwLTMwIDExOjQ2ICBoYXJkYWtlcgoKCS0gKHRlc3RzL1QxMTFhZ2VudHhzZXQpOiB0ZXN0IHNjcmlwdCBmb3IgQWdlbnRYIHNldCBzdXBwb3J0LgoJCjIwMDAtMTAtMzAgMTE6NDMgIGhhcmRha2VyCgoJLSAodGVzdHMvVDExMGFnZW50eGdldCk6IGhlYWRlciBjaGFuZ2VkIHRvIGluY2x1ZGUgdGhlIHdvcmQgR0VULgoJCjIwMDAtMTAtMzAgMTE6MTMgIG5iYQoKCS0gdWNkLXNubXAvdm1zdGF0XyosIG1lbW9yeV9mcmVlYnNkMi5jLCBkbG1vZC5jOiBNYWtlIHNzUmF3Q3B1IG9iamVjdHMgQ291bnRlcnMsCgkJYW5kIGFkZCBzdXBwb3J0IGZvciAqQlNEIChpbmNsdWRpbmcgT3BlbkJTRCkKCQoyMDAwLTEwLTMwIDExOjA3ICBuYmEKCgktIENsZWFuIHVwIHVudXNlZCB2YXJpYWJsZXMuCgkKMjAwMC0xMC0zMCAxMTowNCAgaGFyZGFrZXIKCgktICh0ZXN0aW5nL3Rlc3RzL1QxMDFhZ2VudHgsIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldCk6CgkgIC0gcmVuYW1lZCB0aGUgYWdlbnR4IHRlc3Qgc2NyaXB0LgoJCjIwMDAtMTAtMzAgMTE6MDMgIGhhcmRha2VyCgoJLSAodGVzdGluZy9ldmFsX3Rvb2xzLnNoKTogZG9uJ3QgYWRkIC1jIENPTkZJR0ZJTEUgaWYgaXQgZG9lc24ndCBleGlzdC4KCQoyMDAwLTEwLTMwIDEwOjM5ICBoYXJkYWtlcgoKCS0gKGFnZW50L3NubXBkLmMpOiBlcnJvciB3aGVuIHBhcnNpbmcgLVggZm9yIG5vbi1hZ2VudHggYnVpbGRzLgoJCjIwMDAtMTAtMjcgMTE6MjkgIGhhcmRha2VyCgoJLSAoYXBwcy9zbm1wdHJhcGQuYyk6IGFkZCAtbyBmbGFnIHRvIGxvZyB0byBhIHBhcnRpY3VsYXIgZmlsZS4KCQoyMDAwLTEwLTI3IDEwOjQxICBoYXJkYWtlcgoKCS0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHVzZSBta3N0ZW1wIGlmIGF2YWlsYWJsZS4KCQoyMDAwLTEwLTI3IDEwOjQwICBoYXJkYWtlcgoKCS0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFNlYXJjaCBmb3IgbWtzdGVtcCgpLgoJCjIwMDAtMTAtMjcgMTA6MDggIGhhcmRha2VyCgoJLSAoRkFRKTogdXBkYXRlIGxpbnV4IGtlcm5lbCBsaXN0IHRvIGluY2x1ZGUgMi4yLgoJCjIwMDAtMTAtMjYgMTc6NTEgIGhhcmRha2VyCgoJLSAoZXZhbF90b29scy5zaCk6IG1ha2UgU0tJUElGTk9UIGNoZWNrIHRoZSBtaWIgbW9kdWxlIGxpc3QgdG9vLgoJCjIwMDAtMTAtMjYgMTc6NDggIGhhcmRha2VyCgoJLSAodGVzdHMvVDEwMWFnZW50eCk6IEFnZW50WCBzdWJhZ2VudCB0ZXN0IGZvciBzaW1wbGUgZ2V0IHJldHJpZXZhbC4KCQoyMDAwLTEwLTI1IDE3OjQ0ICBoYXJkYWtlcgoKCS0gKHNubXBkLmMpOiBBZGQgLVggb3B0aW9uIHRvIHNubXBkIHRvIHJ1biBhcyBhIHN1YmFnZW50LgoJCjIwMDAtMTAtMjUgMTc6MDYgIGhhcmRha2VyCgoJLSAocmVhZF9jb25maWcuYyk6IGZpeCBmb3IgY2FzZXMgd2hlbmUgZGVidWdnaW5nIGlzIGFsd2F5cyBvZmYuCgkKMjAwMC0xMC0xNyAxNTozMCAgaGFyZGFrZXIKCgktIChjb25maWcuaC5pbik6IGF1dG9oZWFkZXIgcnVuCgkKMjAwMC0xMC0xNiAwMzoxMyAgZGF2ZXMKCgktIChhZ2VudHgvbWFzdGVyLmMpOiBTcGVjaWZ5IHRoZSBsZW5ndGggb2YgdGhlIChwc2V1ZG8tKWFuc3dlciB0byBhIHJlcXVlc3QuCgkJVGhpcyBhbGxvd3MgaXQgdG8gYmUgY2FjaGVkIGNvcnJlY3RseSBmb3IgbXVsdGktcGFzcyBTRVQgaGFuZGxpbmcuCgkKMjAwMC0xMC0xNiAwMzoxMSAgZGF2ZXMKCgktIChhZ2VudHgvc3ViYWdlbnQuYyk6IERvbid0IG92ZXJ3cml0ZSBzYXZlZCBtb2RlIGluZm9ybWF0aW9uCgkJVGhpcyBzaG91bGQgaGVscCB3aXRoIChzb21lIG9mKSB0aGUgU0VUIGhhbmRsaW5nIHByb2JsZW1zLgoJCjIwMDAtMTAtMTYgMDE6NTYgIGRhdmVzCgoJLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBEb24ndCBmcmVlIGNhbGxiYWNrIGRhdGEgc3RydWN0dXJlLgoJCVRoaXMgaG9sZHMgaW5mb3JtYXRpb24gdGhhdCBuZWVkcyB0byBwZXJzaXN0IGFjcm9zcyBtdWx0aS1wYXNzIHJlcXVlc3RzLgoJCUkgcmVhbGlzZSB0aGF0IHRoaXMgaW50cm9kdWNlcyBhIG1lbW9yeSBsZWFrLCBidXQgdGhpcyBpc24ndCB0aGUKCQljb3JyZWN0IHBsYWNlIHRvIGhhbmRsZSB0aGlzLgoJCjIwMDAtMTAtMTIgMTQ6NTIgIGhhcmRha2VyCgoJLSAoc25tcGQuYyk6IGFkZCAtSSB0byB0aGUgaGVscCBvdXRwdXQuCgkKMjAwMC0xMC0xMiAxNDoyNCAgaGFyZGFrZXIKCgktIChhZ2VudC9kbG1vZHMvKik6IHJlbW92ZSBvYnNvbGV0ZSB2ZXJzaW9ucwoJCjIwMDAtMTAtMTIgMTQ6MDggIGhhcmRha2VyCgoJLSAoY29uZmlndXJlKTogdXBkYXRlLgoJCjIwMDAtMTAtMTIgMTQ6MDEgIGhhcmRha2VyCgoJLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gTWF0dCBCcmFpdGh3YWl0ZToKCSAgLSB1ZHAgY29uZmlndXJhdGlvbiBjaGFuZ2VzIHRvIGNoZWNrIGZvciBtaXNjIHN0cnVjdHVyZSBkZWZpbml0aW9ucy4KCQoyMDAwLTEwLTEyIDEzOjQ4ICBoYXJkYWtlcgoKCS0gKFRVTk5FTC1NSUIudHh0KTogVFVOTkVMLU1JQiBkZWZpbml0aW9uLgoJCjIwMDAtMTAtMTIgMTM6NDggIGhhcmRha2VyCgoJLSAodHVubmVsLmgpOiBjb25maWdfYWRkX21pYihUVU5ORUwtTUlCKS4KCQoyMDAwLTEwLTEyIDEzOjQ3ICBoYXJkYWtlcgoKCS0gKHR1bm5lbC5oLCB0dW5uZWwuYywgdHVubmVsLmgpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CgkgIC0gaW1wbGVtZW50IHRoZSBUVU5ORUwtTUlCLgoJCjIwMDAtMTAtMTAgMTQ6MzMgIG1zbGlmY2FrCgoJRml4IHVubGlua190cmVlIGZvciAidG9wIGxldmVsIiB0cmVlIG5vZGVzLgoJCjIwMDAtMTAtMTAgMTE6MDIgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiByZXZlcnNlIGxpYnJhcnkgbGluayBvcmRlcmluZyBhZ2Fpbi4uLgoJCjIwMDAtMTAtMTAgMDk6MDMgIG1zbGlmY2FrCgoJUmVtb3ZlIHJlbGF0aXZlIHBhdGggdG8gaW5jbHVkZSBzeXN0ZW0uaC4KCQoyMDAwLTEwLTEwIDA2OjUzICBtc2xpZmNhawoKCVJlbW92ZSB1bm5lZWRlZCBkZWNsIG9mIHZzbnByaW50ZiB3aXRob3V0IHN0ZGFyZy92YXJhcmdzIGRlY2wgb2YgdmFfbGlzdC4KCQoyMDAwLTEwLTEwIDA1OjE1ICBtc2xpZmNhawoKCUFwcGx5IHBhdGNoIGZvciBERUMgQWxwaGEgRVY2LCBzdXBwbGllZCBieSBTaHVtb24gSHVxdWU8c2h1cXVlQGlzYy51cGVubi5lZHU+CgkKMjAwMC0xMC0wOSAxNzowNiAgbXNsaWZjYWsKCglwYXRjaCB0byBmaXggbGVhZGluZyB6ZXJvIGVycm9yIGludHJvZHVjZWQgYnkgY2hhbmdlcyBmb3Igc2h1dGRvd25fbWliLgoJCjIwMDAtMTAtMDkgMTU6NTEgIGhhcmRha2VyCgoJLSAoZGxtb2QuYyk6IG1pbm9yIGRlYnVnZ2luZyBvdXRwdXQgYWRkaXRpb25zLgoJCjIwMDAtMTAtMDkgMTU6NTEgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBtb3ZlIGF1dG9fbmxpc3QgdG8gbGlidWNkbWlicy4KCQoyMDAwLTEwLTA5IDExOjQzICBoYXJkYWtlcgoKCS0gKEZBUSwgUkVBRE1FKTogYWRkIG5ldyBtaXJyb3IuCgkKMjAwMC0xMC0wOSAxMDoyNiAgbXNsaWZjYWsKCglNb3ZlIGNvbmZpZy0gYW5kIHN0b3JlLXJlbGF0ZWQgY2xlYW51cCBmcm9tIHNodXRkb3duX21pYiB0byBzbm1wX3NodXRkb3duLgoJCjIwMDAtMTAtMDkgMDI6MzYgIGRhdmVzCgoJLSAobWliSUkvaW50ZXJmYWNlcy5jKTogUXVhbGlmeSBhbiBpbmRpdmlkdWFsIGludGVyZmFjZSB0eXBlIHRlc3Qgc3ltYm9sCgkJKFFuOiBzaG91bGQgYW55L2FsbCBvZiB0aGUgb3RoZXJzIGJlIHF1YWxpZmllZCBhcyB3ZWxsPykKCQoyMDAwLTEwLTA2IDA4OjU2ICBtc2xpZmNhawoKCVN1cHBvcnQgZm9yIHNodXRkb3duX21pYiAtIGNsZWFyaW5nIHRoZSBNSUIgdHJlZXMgYW5kIGNvbmZpZ3VyZWQgcmVnaXN0cmF0aW9ucy4KCQoyMDAwLTEwLTA2IDA1OjMzICBtc2xpZmNhawoKCVBsdWcgbWVtb3J5IGxlYWsgZm9yIHVjZC1zdXBwbGllZCBzZXRlbnYgb24gV2luMzIgcGxhdGZvcm0uCgkKMjAwMC0xMC0wNiAwNDo1OCAgbXNsaWZjYWsKCglSZW1vdmUgdW51c2VkIHZhcmlhYmxlcy4KCQoyMDAwLTEwLTA1IDIzOjQ1ICBuYmEKCgktIG1pYi5jOiBmaXggc2lsbHkgYnVnIGluIG5ldyBvaWQgcGFyc2VyLCB3aGVuIGxlYXZpbmcgdGhlIHRyZWUgYW5kIGdvaW5nCgkJaW50byBzdWItaWRzIHdlIGtub3cgbm90aGluZyBhYm91dAoJCjIwMDAtMTAtMDUgMTY6MDMgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgoJICAtIGZpeCBsaWJyYXJ5IGRlcGVuZGVuY3kgb3JkZXIuCgkKMjAwMC0xMC0wNCAxNzo1OSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IGluc3RhbGwgImV4dGVuZGluZyIgc25tcGNvbmYgZmlsZS4KCQoyMDAwLTEwLTA0IDE3OjU4ICBoYXJkYWtlcgoKCS0gKGV4dGVuZGluZyk6IGFkZCBzbm1wY29uZiBzdXBwb3J0IGZvciBleHRlbmRpbmcgdGhlIGFnZW50IChwYXNzLCBleGVjLCAuLi4pCgkKMjAwMC0xMC0wNCAxNzo1OCAgaGFyZGFrZXIKCgktIChtb25pdG9yKTogbWlzYyB1cGRhdGVzIGFuZCBhZGQgImZpbGUiIHdhdGNoaW5nLgoJCjIwMDAtMTAtMDQgMTc6NTcgIGhhcmRha2VyCgoJLSAoYWNsKTogZG9uJ3Qgc3BlY2lmeSBsaW5lIHNwZWNpZmljYXRpb25zIGZvciBkZWZhdWx0IHNubXBjb25mIHVzYWdlLgoJCjIwMDAtMTAtMDQgMTQ6NTAgIG5iYQoKCS0gRkFROiBmaXggYSBjb25mdXNpb24gYmV0d2VlbiAib21pdCIgYW5kICJpbmNsdWRlIgoJCjIwMDAtMTAtMDQgMTM6MjUgIGhhcmRha2VyCgoJLSAocGFzc19wZXJzaXN0LmMpOiBvcGFxdWVzIGluIHBhc3NfcGVyc2lzdC4KCQoyMDAwLTEwLTA0IDEwOjM1ICBoYXJkYWtlcgoKCS0gKHBhc3MuYyk6IHN1cHBvcnQgb3BhcXVlIHJldHVybiB0eXBlcy4KCQoyMDAwLTEwLTA0IDA3OjE1ICBtc2xpZmNhawoKCUZpeCBwYXJzaW5nIHByb2JsZW0gZm9yIC1QYyBvcHRpb247IHJlcG9ydGVkIGJ5IENocmlzdGlhbiBNYXV0bmVyLgoJCjIwMDAtMTAtMDQgMDc6MDIgIG1zbGlmY2FrCgoJcXVhbGlmeSBuZXcgaS9mIHR5cGVzLgoJCjIwMDAtMTAtMDQgMDY6NTIgIG1zbGlmY2FrCgoJcXVhbGlmeSBzeW1ib2xzIGZvciBuZXcgaS9mIHR5cGVzLgoJCjIwMDAtMTAtMDQgMDY6NTEgIG1zbGlmY2FrCgoJVGVybWluYXRlIGxpc3QgdG8gY29tcGlsZSAoYWRkIGEgY29tbWEpLgoJCjIwMDAtMTAtMDQgMDA6MTggIG5iYQoKCS0gc25tcHRhYmxlLmM6IGluZGV4IGNvbHVtbnQgKC1DaSkgd2lkdGggbm90IHByb3Blcmx5IGNvbXB1dGVkIHdoZW4gdXNpbmcKCQlHRVRCVUxLCgkKMjAwMC0xMC0wMyAxODoxOSAgaGFyZGFrZXIKCgktIChhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKCSAgLSBhZGQgYSBwYXNzYmFjayBhcmd1bWVudCB0byByZWdpc3Rlcl9yZWFkZmQoKSBjYWxsYmFja3MuCgkKMjAwMC0xMC0wMyAxODoxNyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CgkgIC0gbW92ZSBhdXRvX25saXN0Lm8vbG8gdG8gbGlidWNkYWdlbnQgc2luY2Ugc29tZSBtaWItbW9kdWxlcyBuZWVkIGl0LgoJCjIwMDAtMTAtMDMgMTg6MDcgIGhhcmRha2VyCgoJLSAoc211eC5jKTogUGF0Y2ggZnJvbSBKb2NoZW4gRnJpZWRyaWNoOgoJICAtIGZpeCBnZXRuZXh0IHJlcXVlc3RzIHRvIHN1YmFnZW50cy4KCQoyMDAwLTEwLTAzIDE3OjI2ICBoYXJkYWtlcgoKCS0gKG1pYkpKL2ludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSBiZXR0ZXIgaWZ0eXBlIGd1ZXNzaW5nLgoJCjIwMDAtMTAtMDMgMTc6MjQgIGhhcmRha2VyCgoJLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgoJICAtIGJldHRlciBpZnR5cGUgZ3Vlc3NpbmcuCgkKMjAwMC0xMC0wMyAxNjo1MiAgaGFyZGFrZXIKCgktIChzbXV4LmMpOiBQYXRjaCBmcm9tIERvdWcgV2FyemVjaGE6CgkgIC0gZml4IG9pZCBwYXJzaW5nIGluIHRyYXBzLgoJCjIwMDAtMTAtMDMgMTY6MjMgIGhhcmRha2VyCgoJLSAoZXhhbXBsZS5jLCBleGFtcGxlLmgpOiBleGFtcGxlIG9mIGNvZGluZyBhIHYyIHRyYXAgZnJvbSBzb21lb25lIHdobwoJICBJIGhhdmUgdmVyeSBzYWRseSBmb3Jnb3R0ZW4uICBJJ3ZlIGJlZW4gbG9va2luZyBmb3IgdGhhdCBtZXNzYWdlIGZvcgoJICBhIHdoaWxlIHRvIHByb3Blcmx5IGF0dHJpYnV0ZSB0aGlzIHBhdGNoLiAgU2lnaC4KCQoyMDAwLTEwLTAzIDE2OjIxICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYyk6IFBhdGNoIGZyb20gRG91Z2xhcyBXYXJ6ZWNoYToKCSAgLSBzbm1wZCByZXR1cm5zIHdyb25nIGVycm9yIGluZGV4IG9uIFNOTVB2MSByZXF1ZXN0IChCVUcjMzc1KS4KCQoyMDAwLTEwLTAzIDA5OjEyICBtc2xpZmNhawoKCUZpeCBudWxsIGRlcmVmIG9mIHNzLT5jb21tdW5pdHksIHJlcG9ydGVkIGJ5IEppbSBQaWNrZXJpbmcuCgkKMjAwMC0xMC0wMyAwODowMyAgbXNsaWZjYWsKCglDYXN0aW5nIHRvIGZpeCBwcm9ibGVtcyBidWlsZGluZyB3aXRoIGFDQwoJVGhhbmtzIHRvIE1hcmtrdSBMYXVra2FuZW4gPHBreUBtb3JlbWFnaWMuY29tPgoJCjIwMDAtMTAtMDMgMDU6NTkgIG1zbGlmY2FrCgoJUmVtb3ZlIGNoZGlyIHRvIHVuZG8gZml4IGZvciAoQlVHIzI5OCkKCQoyMDAwLTEwLTAyIDIxOjQxICBuYmEKCgktIG1pYi5jOiBFc2NhcGUgIiBhbmQgXCBpbiB0ZXh0IHN0cmluZ3MuCgkKMjAwMC0xMC0wMiAyMTozOSAgbmJhCgoJLSBzbm1wX2xvZ2dpbmcuYzogI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KCQoyMDAwLTEwLTAyIDIxOjM4ICBuYmEKCgktIE1ha2VmaWxlLmluOiBmaXggYSBtaXNzaW5nICQoc3JjZGlyKSBkdXJpbmcgbWFrZSBpbnN0YWxsIG9mIG1pYjJjCgkJY29uZmlndXJhdGlvbiBmaWxlcwoJCjIwMDAtMTAtMDIgMjE6MzcgIG5iYQoKCS0gc25tcHNldC5jOiBEbyBhIGV4aXQoMikgZm9yIGZhaWx1cmUgaW4gc2V0dGluZyB0aGUgdmFyaWFibGUuCgkKMjAwMC0xMC0wMiAyMTozNiAgbmJhCgoJLSBocl9zd3J1bi5jOiBhZGQgYSBzYWZlZ3VhcmQgZm9yIHZlcnkgbG9uZyBhcmd1bWVudCBsaXN0cy4KCQoyMDAwLTEwLTAyIDIxOjM0ICBuYmEKCgktIGhyX2Rpc2suYzogQWRkIGEgbmFtZSBwYXR0ZXJuIHRoYXQgbWF0Y2hlcyB4ODYgSURFIGRpc2tzIGZvciBTb2xhcmlzLgoJCjIwMDAtMTAtMDIgMjE6MzMgIG5iYQoKCS0ga2VybmVsX3N1bm9zNS5jOiBtYWtlIHRoZSBidWZmZXIgZm9yIFNJT0NHSUZDT05GIGR5bmFtaWMuCgkKMjAwMC0xMC0wMiAxMTo0MSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IGluc3RhbGwgc25tcHVzbS5oLgoJCjIwMDAtMTAtMDIgMTA6NDggIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOgoJICAtIG5ldyBvcHRpb25zIGZvciBpbnN0YWxsaW5nIGNyZWF0ZWQgZmlsZXMuCgkgIC0gbW9yZSBjb21tZW50cyBpbiB0aGUgY29kZS4KCSAgLSBhbGxvdyByZWFkaW5nIGEgLmNvbmYgZGlyZWN0bHkgdG8gd3JpdGluZyBmb3IgYXV0by1jb21tZW50aW5nIC5jb25mIGZpbGVzLgoJICAtIG1pc2MuCgkKMjAwMC0xMC0wMiAxMDo0NyAgaGFyZGFrZXIKCgktIChhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC1sZXNzLgoJCjIwMDAtMTAtMDIgMDk6MzUgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogcHJvdGVjdCBhZ2FpbnN0IDAgYnl0ZSBzdGF0UCBtYWxsb2NzLgoJCjIwMDAtMTAtMDIgMDk6MTQgIGhhcmRha2VyCgoJLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBUZWQgUnVsZToKCSAgLSBmaXggaW50ZXJmYWNlcy5jIGZvciB2YXJpYWJsZSBsZW5ndGggbnVtYmVyIGZvcm1hdHRpbmcgaW4gL3Byb2MvbmV0L2Rldi4KCQoyMDAwLTEwLTAxIDE2OjQwICBtc2xpZmNhawoKCVBlciBOaWVscyByZWNvbW1lbmRhdGlvbiwgY2hkaXIgdG8gUEVSU0lTVEVOVF9ESVJFQ1RPUlkgKHJlOiBidWcgIzI5OCkKCQoyMDAwLTA5LTMwIDA4OjU3ICBtc2xpZmNhawoKCUZpeCBERUJVR01TR1RMIG5vdCBmb3VuZCBlcnJvciBmb3IgYnVpbGRzIHdpdGhvdXQgZGxtb2Qgc3VwcG9ydC4KCVRoYW5rcyB0byBzaW1vbkB6aWQudHV3ZWluLmFjLmF0CgkKMjAwMC0wOS0zMCAwODo1MCAgbXNsaWZjYWsKCglGaXggc29tZSBrZXJuZWwgc3ltYm9scyAtIHRoYW5rcyB0byBzaW1vbkB6aWQudHV3aWVuLmFjLmF0CgkKMjAwMC0wOS0yOSAxNDozNSAgaGFyZGFrZXIKCgktICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQgKyAubyAtPiAubG8gZml4ZXMuCgkKMjAwMC0wOS0yOSAxNDoyNyAgaGFyZGFrZXIKCgktIChtYWtlZmlsZWluZGVwZW5kLnBsKTogc2tpcCBlbXB0eSBkZXBlbmQgbGluZXMuCgkKMjAwMC0wOS0yOSAxNDowOSAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IGRyb3AgZHVwbGljYXRlIGxpbmVzIGZyb20gcmVhZCBpbiBzbm1wZC5jb25mIGZpbGVzLgoJCjIwMDAtMDktMjkgMTM6NDYgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiBzb3J0IHVua25vd24gZGlyZWN0aXZlcyBieSBmaWxldHlwZSAod2hvb3BzKS4KCQoyMDAwLTA5LTI5IDEzOjQyICBoYXJkYWtlcgoKCS0gKG1vbml0b3IpOiBtaW5vciB3b3JkaW5nIGFkanVzdG1lbnRzLgoJCjIwMDAtMDktMjkgMTM6NDIgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiBwcmludCBtb3JlIGluZm9ybWF0aW9uL2NvbW1lbnRzIHRvIHRoZSBzY3JlZW4uCgkKMjAwMC0wOS0yOSAxMTozMSAgaGFyZGFrZXIKCgktICh2YXJfc3RydWN0LmgpOiBpbmNyZWFzZSByZWdpc3RyYXRpb24gbmFtZSBsZW5ndGggdG8gMzIgZnJvbSAxNiAoQnVnICMxNzIpCgkKMjAwMC0wOS0yOSAxMToxMiAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jKTogaW5jb3JyZWN0IHZhbCBsZW5ndGggcGFzc2VkIHRvIHBhcnNlX3Vuc2lnbmVkX2ludCAoQnVnICMzMzkpLgoJCjIwMDAtMDktMjkgMTE6MDEgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYyk6IGZpeCBCdWcjMzUzIGZvciBob3N0bmFtZXMgdGhhdCBsb29rIGxpa2UgIjV3Ii4KCSAgLSBkb24ndCBpbnRlcnByZXRlIHRoZW0gYXMgYW4gaXAtcG9ydC4KCQoyMDAwLTA5LTI5IDEwOjM5ICBoYXJkYWtlcgoKCS0gKHNubXBfYWxhcm0uYyk6IFBhdGNoIGZyb20gamJwbkBjYW1icmlkZ2Vicm9hZGJhbmQuY29tOgoJICAtIFRoZXJlIGlzIGEgcGVjdWxpYXJpdHkgaW4gdGhlIHNubXBfYWxhcm1fdW5yZWdpc3RlciBmdW5jdGlvbiBpbgoJICAgIHNubXBsaWIvc25tcF9hbGFybS5jIHdoaWNoIGNhbiBjYXVzZSBhIHNlZ21lbnRhdGlvbiBmYXVsdC4gKEJ1ZyAjMzY3KQoJCjIwMDAtMDktMjkgMTA6MzQgIGhhcmRha2VyCgoJLSAoc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiBQYXRjaCBmcm9tIEpvaG4gTmF5bG9uOgoJICAtIGZpeCB1c2Ugb2YgTlVMTCB0aW1lc3RhbXAgcG9pbnRlciBpbiBuZXcgcm93IGNyZWF0aW9uIChCdWcgIzM0NikKCQoyMDAwLTA5LTI4IDE0OjM4ICBuYmEKCgktIG1pYl9hcGkuMzogYWRkIGEgZmV3IGZ1bmN0aW9ucyB0byB0aGUgaGVhZGVyCgkKMjAwMC0wOS0yOCAxNDoxNCAgbmJhCgoJLSBzbm1wdHJhcC5jOiByZW1vdmUgYW4gZXh0cmFuZW91cyBzbm1wX2ZyZWVfcGR1CgkKMjAwMC0wOS0yOCAxNDoxMyAgbmJhCgoJLSBtYW4vOiBhZGQgbWFuIGVudHJpZXMgZm9yIG1hbnkgbGlicmFyeSBmdW5jdGlvbnMgKHBvaW50aW5nIHRvIHNubXBfYXBpLjMpCgkKMjAwMC0wOS0yOCAxMTowOSAgbXNsaWZjYWsKCglyZW1vdmUgc2Vjb25kIGNvcHkgb2Ygc3lzL3NvY2tldC5oCgkKMjAwMC0wOS0yOCAxMTowOCAgbXNsaWZjYWsKCglGb3IgYnVpbGRpbmcgb24gVWx0cml4IFY0LngKCQoyMDAwLTA5LTI3IDEyOjU5ICBoYXJkYWtlcgoKCS0gKGRsbW9kLmgpOiBhZGQgdGhlIFVDRC1ETE1PRC1NSUIgdG8gdGhlIGRlZmF1bHQgbG9hZCBsaXN0LgoJCjIwMDAtMDktMjcgMTI6NTUgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCB1Y2Rfc25tcC5oLCBkbG1vZC5jKToKCSAgLSBpbmNsdWRlIHVjZC1zbm1wL2RsbW9kIGJ5IGRlZmF1bHQuCgkgIC0gYnVpbGQgY29kZSBvbmx5IGlmIGRsb3BlbiBpcyBmb3VuZC4KCQoyMDAwLTA5LTI3IDA4OjMxICBoYXJkYWtlcgoKCS0gKGF1dG9fbmxpc3QuYyk6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CgkgIC0gZG9uJ3QgcHJpbnQga2VybmVsIGJhc2VkIHdhcm5pbmcgbWVzc2FnZXMgd2hlbiAtciwgZXRjLCBpcyBzcGVjaWZpZWQuCgkKMjAwMC0wOS0yNiAxNjowNyAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0pOiBtaW5vciBidWcgZml4ZXMuCgkKMjAwMC0wOS0yNiAxNDoyMSAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0sIG1hbmFnZXIucG0pOgoJICAtIGRpc3BsYXRhYmxlIHN1cHBvcnRzIC1tYXJrLy1vbm1hcmtlZC4KCSAgLSB1c2VyJ3Mgb25jYWxsIHNjaGVkdWxlIGlzIG1vZGlmaWFibGUgdmlhIHRoZSB3ZWIuCgkKMjAwMC0wOS0yNiAxMzoxNyAgbXNsaWZjYWsKCglGb3IgV2luMzIgQVBJOiBEZWNsYXJlIHN0cnRvdWwsIHZzbnByaW50ZjsgRW5hYmxlIHJldmVyc2UgQkVSIGVuY29kaW5nLgoJCjIwMDAtMDktMjYgMTM6MTUgIG1zbGlmY2FrCgoJSW5jbHVkZSBzeXN0ZW0uaCAodnNucHJpbnRmIGRlY2wpCgkKMjAwMC0wOS0yNiAxMzoxNCAgbXNsaWZjYWsKCglGaXggdW5zaWduZWQgY29tcGFyaXNvbi4KCQoyMDAwLTA5LTI2IDEzOjE0ICBtc2xpZmNhawoKCUZpeCB1bnNpZ25lZCBjb21wYXJpc29ucy4KCQoyMDAwLTA5LTI2IDEzOjEzICBtc2xpZmNhawoKCUZpeCBzaWduZWQgY29tcGFyaXNvbjsgUmVtb3ZlIHVudXNlZCB2YXIuCgkKMjAwMC0wOS0yNiAxMzoxMiAgbXNsaWZjYWsKCglJbmNsdWRlIGdldG9wdC5oIChvcHRhcmcgZGVjbCk7IFJlbW92ZSB1bnVzZWQgdmFyLgoJCjIwMDAtMDktMjYgMTM6MTEgIG1zbGlmY2FrCgoJTWF0Y2ggSW5pdGlhbGlzZV9UYWJsZSBhcmdzIDMsNCBkZWNsYXJhdGlvbnMgd2l0aCBkZWZpbml0aW9ucy4KCQoyMDAwLTA5LTI2IDEyOjU4ICBoYXJkYWtlcgoKCS0gKGludGVyZmFjZXMuYyk6IG1ha2UgdGhlIGFkbWluc3RhdHVzIFJPTkxZLgoJCjIwMDAtMDktMjYgMTA6MjEgIGhhcmRha2VyCgoJLSAobWliMmMpOiBjaG9tcCgkMSkgaXMgaWxsZWdhbC4KCQoyMDAwLTA5LTI2IDAzOjA0ICBtc2xpZmNhawoKCUV4cGxpY2l0bHkgYnVpbGQgcGF0aCB0byBDQUNIRUZJTEUsIGFzIG5vdCBhbGwgQyBjb21waWxlcnMgc3VwcG9ydCAiIyMiLgoJCjIwMDAtMDktMjUgMTc6NDkgIGhhcmRha2VyCgoJLSAoZGlzcGxheXRhYmxlLnBtKTogV2VzIGFjdHVhbGx5IGRvY3VtZW50ZWQgc29tZXRoaW5nPyAgeW91IG11c3QgYmUga2lkZGluZyEKCQoyMDAwLTA5LTI1IDE2OjU2ICBtc2xpZmNhawoKCWNoZGlyIGp1c3QgYmVmb3JlIHNlbmRpbmcgY29sZHN0YXJ0IHRyYXAsIHRvIGFsbG93IGZvciBwYXRocyB0byBiZQoJcmVzb2x2ZWQuCgkKMjAwMC0wOS0yNSAxNTowOCAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0pOiBtaW5vciBncmFwaGluZyBjaGFuZ2VzCgkKMjAwMC0wOS0yNSAwOTozNSAgbXNsaWZjYWsKCgljYXNlIGluc2Vuc2l0aXZlIHRva2VuIHNlYXJjaCAodXNlIHN0cmNhc2VjbXApLgoJCjIwMDAtMDktMjIgMDY6MDMgIG5iYQoKCSAtbWlicy86IE1JQiB1cGRhdGVzCgkKMjAwMC0wOS0yMiAwNTo1NSAgbmJhCgoJLSBtaWJzLzogTUlCIHVwZGF0ZXMKCQoyMDAwLTA5LTIyIDA1OjUyICBuYmEKCgktIHNubXBfYXBpLmM6IHN1cHBvcnQgc2V0dGluZyBvZiBCSVRTIHZhcmlhYmxlcwoJCjIwMDAtMDktMjIgMDU6NTAgIG5iYQoKCS0gc25tcHN0YXR1cy5jOiBzaG93IGVycm9yIG9iamVjdAoJCjIwMDAtMDktMjIgMDQ6MjkgIG5iYQoKCS0gc25tcHVzbS5jOiBpc3N1ZSBlcnJvciBtZXNzYWdlIHdpdGggb2JqZWN0CgkKMjAwMC0wOS0yMiAwNDoyOCAgbmJhCgoJLSBzeXN0ZW0uaDogcHJvdmlkZSBwcm90b3R5cGVzIGZvciBzdHJ0b2wsIHN0cnRvdWwsIHNucHJpbnRmLCB2c25wcmludGYKCQoyMDAwLTA5LTIyIDA0OjI3ICBuYmEKCgktIHZhY21fdmFycy5jOiBwcm90ZWN0IGFnYWluc3Qgb3ZlcnJ1biBvZiBzdHJpbmdzCgkKMjAwMC0wOS0yMSAxNjoxNyAgbmJhCgoJLSBhcHBzLzogZGlzcGxheSBmYWlsZWQgb2JqZWN0IHdoZW4gb25lIGlzIGlkZW50aWZpZWQgYnkgcGR1LT5lcnJpbmRleAoJCjIwMDAtMDktMjEgMTU6NTkgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIHNubXBkZi4xKTogZG9jdW1lbnQgdGhlIHNubXBkZiBjb21tYW5kLgoJCjIwMDAtMDktMjEgMTU6NTAgIG5iYQoKCS0gc25tcHRhYmxlOiB1c2UgR0VUQlVMSyB0byBjb2xsZWN0IGRhdGEgd2hlbiBwcm90b2NvbCBhbGxvd3MgaXQuIEFkZAoJCS1DQiBvcHRpb25zIHRvIGZhbGwgYmFjayB0byBHRVRORVhULgoJCjIwMDAtMDktMjEgMTU6MzggIG5iYQoKCS0gbWliLmM6IHJld3JpdGUgaW5kZXggaGFuZGxpbmcgaW4gb2JqZWN0IGlkcywgdG8gYWxsb3cgc3ltYm9saWMgZW51bXMuCgkJQWRkIERhdmVzIHN1Z2dlc3RlZCAtT3Ygb3V0cHV0LiBBbHNvIGVuaGFjZSAtVGQgb3V0cHV0IHRvCgkJZGVzdGluZ3Vpc2ggT0JKRUNULVRZUEUgZnJvbSBUUkFQLVRZUEUsIE1PRFVMRS1JREVOVElUWSBldGMuCgkKMjAwMC0wOS0yMSAxNTozMSAgaGFyZGFrZXIKCgktIChzbm1wZGYuYyk6IHVzZSB0aGUgVUNELVNOTVAtTUlCJ3MgZHNrVGFibGUgaWYgdGhlCgkgIEhPU1QtUkVTT1VSQ0VTLU1JQiBpcyBlbXB0eSBvciBpZiAtQ3UgaXMgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCgkKMjAwMC0wOS0yMSAxNToyOCAgbmJhCgoJLSBwYXJzZS5jOiBhZGQgYWJpbGl0eSB0byBjb2xsZWN0IFZBUklBQkxFUy9PQkpFQ1RTIGZvciBUUkFQLVRZUEUKCQlhbmQgTk9USUZJQ0FUSU9OLVRZUEUuIElnbm9yZSBmaWxlcyB0aGF0IGRvZXMgbm90IGhhdmUgREVGSU5JVElPTlMKCQlhcyB0aGVpciBzZWNvbmQgdG9rZW4uIEVuaGFuY2UgLVRkIG91dHB1dCBhY2NvcmRpbmdseS4KCQoyMDAwLTA5LTIxIDE1OjIyICBuYmEKCgktIHNubXBsaWI6IGFkZCBzbnByaW50Ziwgc3RydG9sLCBzdHJ0b3VsIGZvciBzeXN0ZW1zIHRoYXQgZG9uJ3QgaGF2ZSB0aGVtCgkKMjAwMC0wOS0yMSAxNToxMCAgaGFyZGFrZXIKCgktIChtaWIuaCk6IGFkZCBmYWtlIHN0cnVjdCBkZWZpbml0aW9uIGZvciBlbnVtcwoJCjIwMDAtMDktMjEgMTQ6MTYgIG5iYQoKCWZpbGUgc3RydG91bC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDktMjEgMTQ6MTYgIG5iYQoKCWZpbGUgc3RydG9sLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOS0yMSAxNDoxNiAgbmJhCgoJZmlsZSBzbnByaW50Zi5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDktMjEgMDY6MTYgIGhhcmRha2VyCgoJLSAobWliLmMsIG1pYi5oKTogbWFrZSBzcHJpbnQqIG5vbi1zdGF0aWMgKGJ1ZyAjMTMyKS4KCQoyMDAwLTA5LTIxIDAwOjI1ICBoYXJkYWtlcgoKCS0gKHNubXBfYWxhcm0uYyk6IFBhdGNoIGZyb20gSm9obiBOYXlsb246CgkgIC0gZml4IGJ1ZyAjMzYwIHdoZXJlIGEgY2xpZW50IG1pZ2h0IHJlbW92ZSBhIGFsYXJtIHJlZ2lzdHJhdGlvbgoJICAgIGR1cmluZyBhIGNhbGwgdG8gdGhlIGFsYXJtIGZ1bmN0aW9uIGFuZCBpbnZhbGlkYXRlIHRoZSBwb2ludGVyCgkgICAgYmVpbmcgdXNlZCBieSB0aGUgY2FsbGluZyBmdW5jdGlvbi4KCQoyMDAwLTA5LTIxIDAwOjIyICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogLS1kaXNhYmxlLXNoYXJlZCBieSBkZWZhdWx0IGluIGN2cyBjaGVja291dHMuCgkKMjAwMC0wOS0yMCAxNzozMSAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IHNwYWNlIGluZGVudCB0b2tlbnMgaWYgIyBwcmVwZW5kZWQuCgkKMjAwMC0wOS0yMCAxNzozMCAgaGFyZGFrZXIKCgktIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKTogbnVsbCBpbnRlcm5hbCBoZWxwIGxpbmVzLgoJCjIwMDAtMDktMjAgMTc6MjkgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIG1vbml0b3IpOiBkaXNrLCBwcm9jLCBhbmQgbG9hZCBjaGVja3MuCgkKMjAwMC0wOS0yMCAxNzoyOCAgaGFyZGFrZXIKCgktIChhdXRob3B0cyk6IGZpeCB2YWxpZCBhbnN3ZXJzIGZvciBhdXRoIGFuZCBwcml2IHR5cGVzLgoJCjIwMDAtMDktMjAgMTc6MjcgIGhhcmRha2VyCgoJLSAodmFjbV92YXJzLmMsIHVzbVVzZXIuYywgc25tcHYzLmMpOiBOVUxMIG91dCBoZWxwIG1lc3NhZ2VzIGZvciAuY29uZgoJICB0b2tlbnMgdGhhdCBhcmUgZWl0aGVyIGludGVybmFsIG9yIG5vIGxvbmdlciB0aGUgc3RhbmRhcmQgd2F5IG9mCgkgIGRvaW5nIHRoaW5ncy4KCQoyMDAwLTA5LTIwIDE3OjI2ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZXhwb3J0IFNOTVBDT05GUEFUSCB0byBNYWtlZmlsZXMKCQoyMDAwLTA5LTIwIDE3OjI1ICBoYXJkYWtlcgoKCS0gKEVYQU1QTEUuY29uZi5kZWYpOiBtaW5vciBjb3JyZWN0aW9uIG9mIHRhYmxlIG5hbWUuICBNb3JlIGVycm9ycyBleGlzdC4KCQoyMDAwLTA5LTIwIDE2OjQ2ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBkZWJ1Z2dpbmcsIG1pYnMsIG91dHB1dCk6IG1vcmUgc25tcC5jb25mIHNubXBjb25mIGNvbmZpZyBmaWxlcy4KCQoyMDAwLTA5LTIwIDE1OjE3ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBhdXRob3B0cyk6IHNubXAuY29uZiBzdXBwb3J0IGZvciBiYXNpYyBhdXRoZW50aWNhdGlvbiBvcHRpb25zLgoJCjIwMDAtMDktMjAgMTQ6NTUgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOgoJIC0gZG9uJ3QgZm9yY2UgcmVhZGluZyBvZiAvdXNyL2xvY2FsL3NoYXJlL3NubXBkLmNvbmYuCgkgLSBkb24ndCBwcmludCB1bmtub3duIGRpcmVjdGl2ZSBjb21tZW50IGhlYWRlcnMgaWYgdGhlcmUgYXJlbid0IGFueS4KCQoyMDAwLTA5LTIwIDE0OjQ1ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogc3BhY2UgdGhpbmdzIG91dCBvbiB0aGUgc2NyZWVuIGEgYml0IGJldHRlci4KCQoyMDAwLTA5LTIwIDE0OjQ0ICBoYXJkYWtlcgoKCS0gKHRyYXBzaW5rcyk6IGFkZCBwb3J0IG51bWJlciBvcHRpb24gdG8gdHJhcHNpbmsgZGlyZWN0aXZlcy4KCQoyMDAwLTA5LTIwIDE0OjM1ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBzbm1wY29uZik6IGluc3RhbGwgc25tcGNvbmYgYW5kIGl0cyB2YXJpb3VzIHN1cHBvcnQgZmlsZXMuCgkKMjAwMC0wOS0yMCAxNDoyMCAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogZG8gcmV2ZXJzZSB2MyBoZWFkZXIgZW5jb2Rpbmcgd2l0aCBhIHN0YXRpYyBidWZmZXIuCgkKMjAwMC0wOS0yMCAxMTozNyAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IG1pc2MgdXBkYXRlcyBhbmQgaW1wcm92ZW1lbnRzLgoJCjIwMDAtMDktMjAgMDg6NTQgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYyk6IEZpeCBkeW5hbWljIGFycmF5ICBwcm9ibGVtIHBvaW50ZWQgb3V0IGJ5IEpvY2hlbiBLbWlldHNjaC4KCQoyMDAwLTA5LTIwIDAyOjA1ICBkYXZlcwoKCS0gKGFnZW50eC9wcm90b2NvbC5jKTogRG9uJ3QgaW5jbHVkZSBjb250ZXh0IHN0cmluZ3Mgb24gUERVcyB0aGF0IHNob3VsZG4ndCBoYXZlIHRoZW0KCQkoVGhhbmtzIHRvIFBlZHJvIFBlcmVpcmEgZm9yIGlkZW50aWZ5aW5nIHRoaXMpCgkKMjAwMC0wOS0xOSAxNzowNyAgaGFyZGFrZXIKCgktIChhY2wsIHN5c3RlbSwgdHJhcHNpbmtzKTogaW5pdGlhbCBzbm1wY29uZiBkZXNjcmlwdGlvbiBmaWxlcy4KCQoyMDAwLTA5LTE5IDE3OjA2ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogcmVhZCBvbGRlciBjb25maWd1cmF0aW9uIGZpbGVzIGluIGFuZCBtZXJnZSB3aXRoIG5ldyByZXN1bHRzLgoJCjIwMDAtMDktMTkgMTQ6NDAgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYyk6IHByaW50IHBkdSB0eXBlIG9uIGRlYnVnZ2luZyBkdW1wIG91dHB1dC4KCQoyMDAwLTA5LTE5IDE0OjE1ICBoYXJkYWtlcgoKCS0gKGFzbjEuYywgc25tcC5jKTogcmV2ZXJzZSBlbmNvZGluZyBzdXBwb3J0IGZvciBzcGVjaWFsaXplZCBvcGFxdWUKCSAgZGF0YXR5cGVzIChmbG9hdCwgZG91YmxlLCBldGMpLgoJCjIwMDAtMDktMTkgMTQ6MTUgIGhhcmRha2VyCgoJLSAoYWNsb2NhbC5tNCk6IGRvY3VtZW50IG1hY3JvcyBhIGJpdCBtb3JlIGZvciBzdWJtaXNzaW9uIHRvIHRoZQoJICBhdXRvY29uZiBtYWNybyBsaWJyYXJ5LgoJCjIwMDAtMDktMTkgMDg6MzAgIG1zbGlmY2FrCgoJRml4IGJ1ZyAjMjk1IHJlcG9ydGVkIGJ5IEpvaG4gV2hpdG5leSBqb2hud0BhaWluZXQuY29tCgkKMjAwMC0wOS0xOCAxNDo1OSAgaGFyZGFrZXIKCgktIChzbm1wX3ZhcnMuaCwgc25tcGQuaCk6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CgkgIC0gbW92ZSBnZXRTdGF0UHRyIGRlZmluaXRpb24gdG8gcHJvcGVyIC5oIGZpbGUuCgkKMjAwMC0wOS0xOCAxNDo1NSAgbXNsaWZjYWsKCglGaXggYnVnICMzNDcgcmVwb3J0ZWQgYnkgZGFzX2Rlbml6QHlhaG9vLmNvbTogbWFrZSBzYmluIGluc3RhbGwgZGlyCgkKMjAwMC0wOS0xNCAwOTowNSAgaGFyZGFrZXIKCgktIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKCSAgLSBhZGQgYSBwb3J0IHNwZWNpZmljYXRpb24gc25tcGQuY29uZiB0b2tlbi4KCQoyMDAwLTA5LTE0IDA4OjUyICBoYXJkYWtlcgoKCS0gKGFnZW50X3RyYXAuYyk6IGlnbm9yZSBvdXRwdXQgb2YgZ2V0aG9zdGJ5bmFtZSBmb3IgdHJhcCBzZXNzaW9uIGFkZGluZy4KCQoyMDAwLTA5LTEzIDE1OjA2ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogbmV3IHV0aWxpdHkgdG8gZ2VuZXJhdGUgLmNvbmYgZmlsZXMgYnkgcHJvbXB0aW5nIHRoZQoJICB1c2VyIHdpdGggcXVlc3Rpb25zLgoJCjIwMDAtMDktMDggMTM6MDcgIGhhcmRha2VyCgoJLSAocHJveHkuYyk6IFBhdGNoIGZyb20gU2NvdHQgTGlwY29uOgoJICAtIGZpeCBwcm94eSBzdXBwb3J0IGZvciBudWxsIGxlbmd0aCBzdHJpbmdzLgoJCjIwMDAtMDktMDcgMTA6MTIgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKCSAtIGZpeCBvcGVuc3NsIGNoZWNrcy4KCSAtIHJ1biBhdXRvaGVhZGVyLgoJCjIwMDAtMDktMDUgMTM6MzUgIG1zbGlmY2FrCgoJTWlub3IgdG91Y2h1cHMgdG8gYnVpbGQgb24gV2luMzIgcGxhdGZvcm0uCgkKMjAwMC0wOS0wNSAxMzozNCAgbXNsaWZjYWsKCglXZWxjb21lIHRoZSBuZXdlc3QgdWNkLXNubXAgYXBwbGljYXRpb25zIHRvIHRoZSBXaW4zMiBidWlsZHMuCgkKMjAwMC0wOS0wNCAxNToxOSAgbmJhCgoJLSByZWFkX2NvbmZpZy5jOiByZXN0YXJ0IGVycm9yY291bnQgd2hlbiByZWxvYWRpbmcgY29uZmlnCgkKMjAwMC0wOS0wNCAxNToxMiAgbmJhCgoJLSBzbm1wbmV0c3RhdC4xOiBhbGlnbiBtYW4gcGFnZSB3aXRoIHByb2dyYW0KCQoyMDAwLTA5LTA0IDE1OjEwICBuYmEKCgktIGlwQWRkci5jOiByZW1vdmUgYSBiYWQgbnRvaGwgZm9yIE9wZW5CU0QKCQoyMDAwLTA5LTA0IDE1OjA5ICBuYmEKCgktIG1pYmluY2wuaCwge3RjLHVkfXB7LFRhYmxlfS5jOiBlbnN1cmUganVzdCBvbmUgaW5jbHVkZSBvZiBzb2NrZXQuaAoJCXRvIG1ha2UgdW5wcm90ZWN0ZWQgaW5jbHVkZSBmaWxlIGluIFVsdHJpeCBoYXBweQoJCjIwMDAtMDktMDQgMTU6MDUgIG5iYQoKCS0gY29uZmlndXJlLmluOiBtYWtlIC0td2l0aG91dC1saWJ3cmFwIHdvcmsKCQoyMDAwLTA5LTAxIDE1OjE0ICBoYXJkYWtlcgoKCS0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoOgoJICAtIHVwZGF0ZWQgY29kZS4KCQoyMDAwLTA5LTAxIDExOjU0ICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwZC5jKTogU2NvdHQgTGlwY29uIG5vdGVkIHRoYXQgc25tcHRyYXBkIGRvZXNuJ3Qgc3VwcG9ydCAtVC4KCQoyMDAwLTA4LTMwIDEzOjI4ICBuYmEKCgktIHBhcnNlLmM6IGZpeCBsb29wIGluIHN5bnRheCBlcnJvciBpbiBERUZWQUwgY2xhdXNlLiBBbHNvIGZpeCByZWFkaW5nCgkJb2YgLmluZGV4IGZpbGUgd2l0aCBmaWxlbmFtZXMgY29udGFpbmluZyBibGFua3MuCgkKMjAwMC0wOC0yOCAxMzo0MyAgbWFyegoKCW1pbm9yIHN5bnRheCBnbGl0Y2ggaW4gUE9EIGRvY3MKCQoyMDAwLTA4LTI0IDAxOjU1ICBkYXZlcwoKCS0gKGFwcHMvc25tcHRhYmxlLmMpOiBGaXggYnVnIHdpdGggZGlzcGxheWluZyBoZWFkZXItbGVzcyBpbmRleGVkIHRhYmxlcwoJCShUaGFua3MgdG8gRXJuaWUgTWlsbGVyKQoJCjIwMDAtMDgtMTkgMTE6MjkgIG1zbGlmY2FrCgoJQXBwbHkgcGF0Y2ggZnJvbSA8Q2hyaXN0b3BoLk1hbW1pdHpzY2hAdHUtY2xhdXN0aGFsLmRlPgoJdG8gZml4IHNpZ24gaW4gYXNuX3JidWlsZF91bnNpZ25lZF9pbnQgLgoJCjIwMDAtMDgtMTggMDQ6MTggIG1zbGlmY2FrCgoJcmVzdG9yZSBwcmV2aW91cyB2ZXJzaW9uOyBvcGVuYnNkLCBzb2xhcmlzLCBsaW51eCBidWlsZCBvay4KCQoyMDAwLTA4LTE4IDAzOjQ0ICBtc2xpZmNhawoKCXJlbW92ZSB1bnVzZWQgcHJpbnRmIGFyZ3VtZW50IHBhc3NlZCB0byBzbm1wX2xvZy4KCQoyMDAwLTA4LTE4IDAzOjIwICBtc2xpZmNhawoKCWZpeCBidWcgMjUzIHdpdGggcGF0Y2ggc3VwcGxpZWQgYnkgSmVmZnJleSBIb25pZyA8amNoQGJzZGkuY29tPgoJCjIwMDAtMDgtMTggMDI6NTIgIG1zbGlmY2FrCgoJZml4IGJ1ZyAzMTggLSB0ZXN0IDkgYW5kIDEwIGV4cGxpY2l0bHkgY3JlYXRlIHRoZSB0ZXN0IHVzZXIuCgkKMjAwMC0wOC0xNyAxMzo0MiAgbXNsaWZjYWsKCglUaGUgYmF0dGxlIHRvIHRyaW0gbmV3bGluZXMgY29ycmVjdGx5IGNvbnRpbnVlcy4uLnJlZHVjZSBsZW5ndGggYnkgb25lLgoJCjIwMDAtMDgtMTYgMTU6MDQgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYywgc25tcHVzbS5jKTogZml4IHZhcmlvdXMgZW5jcnlwdGlvbi9kZWNyeXB0aW9uIHByb2JsZW1zLgoJCjIwMDAtMDgtMTYgMTU6MDMgIGhhcmRha2VyCgoJLSAoc2NhcGkuYyk6IGZpeCBwYWRkaW5nIHNpemUgaW4gZW5jcnlwdGlvbi4KCQoyMDAwLTA4LTE2IDE0OjQ4ICBoYXJkYWtlcgoKCS0gKHNjYXBpLmMpOiBzZXQgcGxhaW50ZXh0IGxlbmd0aCBhdCB0aGUgZW5kIG9mIHNjX2RlY3J5cHQuCgkKMjAwMC0wOC0xNSAwNTowOCAgbXNsaWZjYWsKCglGaXggYnVnIDI4NCB3aXRoIGEgc2hvcnQgZXhwbGFuYXRpb24gYWJvdXQgc25tcC5jb25mLgoJCjIwMDAtMDgtMTUgMDM6MDAgIG1zbGlmY2FrCgoJRml4IGJ1ZyAyODMgLSB1bWFzayAwMjIsIG1ha2UgaW5zdGFsbC4gVGhhbmtzIHRvIGNzYWJhLnRvdGhAc3prLmJrZS5odQoJCjIwMDAtMDgtMTUgMDA6MDkgIG5iYQoKCS0gc25tcHRlc3QuYzogb3ZlcmhhdWwgaW5wdXRfdmFyaWFibGUsIGtpbGwgbmV3bGluZQoJCjIwMDAtMDgtMTQgMjI6MDUgIG5iYQoKCS0gYWNsb2NhbC5tNCwgY29uZmlndXJlLmluOiBmaXhlcyBmb3IgY29uZmlndXJlIC0tc2lsZW50CgkKMjAwMC0wOC0xNCAxNzoyNyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKCSAgLSAtLWVuYWJsZS1zaWxlbnQtbGlidG9vbCB0byBtYWtlIE5pZWxzIHNtaWxlLgoJCjIwMDAtMDgtMTQgMTc6MTcgIGhhcmRha2VyCgoJLSAoc25tcHYzLmMsIHNubXB2My5oKTogaW1wbGVtZW50IGEgbmV3IChkZWZhdWx0KSBlbmdpbmVJRCB0eXBlIGJhc2VkCgkgIG9uIGEgcmFuZG9tIG51bWJlciwgYW5kIGEgdGltZXN0YW1wLgoJICAtIEkgdGhpbmsgaXQgd29uJ3QgaW52YWxpZGF0ZSBleGlzdGluZyBpbnN0YWxsYXRpb25zIChoZWgpLgoJCjIwMDAtMDgtMTQgMTY6NDcgIGhhcmRha2VyCgoJLSAocmVhZF9jb25maWcuYyk6CgkgIC0gaWYgLURyZWFkX2NvbmZpZywgdGhlbiBwcmludCBldmVuIG5vLWhlbHAgdG9rZW5zIGFuZCBhICogZm9yIFBSRU1JQiBvbmVzLgoJCjIwMDAtMDgtMTQgMTQ6NTEgIG5iYQoKCS0gKG1hbnkpOiBwb3J0YWJpbGl0eSBmaXhlcyBmb3IgT3BlbkJTRCAyLjYsIEZyZWVCU0QgNC4xLCBVbHRyaXggNC41CgkKMjAwMC0wOC0xNCAxMTozMyAgaGFyZGFrZXIKCgktIChrZXl0b29scy5jKTogUGF0Y2ggZnJvbSBZaWdhbCBIb2NoYmVyZzoKCSAgLSByZW1vdmUgdW51c2VkIGNvbnRleHQgdmFyaWFibGVzLgoJCjIwMDAtMDgtMTQgMTE6MjkgIGhhcmRha2VyCgoJLSAoc2NhcGkuYyk6IFBhdGNoIGZyb20gWWlnYWwgSG9jaGJlcmc6CgkgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBrZXlsZW5ndGggY2hlY2suCgkKMjAwMC0wOC0xMSAxMzowOSAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jKTogb3B0aW1pemUgcmV2ZXJzZSBlbmNvZGluZyBvZiB2YXJiaW5kbGlzdHMuCgkKMjAwMC0wOC0xMSAwODo1NSAgaGFyZGFrZXIKCgktIChSRUFETUUubWliMmMpOiBQYXRjaCBmcm9tIEphbiBBbGZyZWQgU2FuZHZlbjoKCSAgLSB0eXBvcy4KCQoyMDAwLTA4LTExIDA2OjA1ICBuYmEKCgktIGFwcHMvKjogc25tcGFwcCAtViBzaG91bGQgbm90IGdpdmUgdGhlIHVzYWdlIG1lc3NhZ2UgdG9vLgoJCjIwMDAtMDgtMTEgMDA6NDQgIG5iYQoKCS0gc25tcHRyYXBkLjg6IGZpeCB0eXBvLiBUaGFua3MgdG8gRy4gQWxsZW4gTW9ycmlzIElJSSA8Z2FtM0BhY20ub3JnPgoJCjIwMDAtMDgtMTAgMjM6MjMgIG5iYQoKCS0gcGFyc2UuYzogcHJlZGVmaW5lIE9iamVjdFN5bnRheCwgQXBwbGljYXRpb25TeW50YXgsIFNpbXBsZVN5bnRheCBhbmQKCQlPYmplY3ROYW1lCgkKMjAwMC0wOC0xMCAxNjoyMCAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgbWliMmMpOgoJICAtIG1ha2UgbWliMmMgbG9vayBpbiAkKHNubXBsaWJkaXIpIGZvciAuY29uZiBmaWxlcy4KCSAgLSBpbnN0YWxsIG1pYjJjIGFuZCAuY29uZiBmaWxlcy4KCQoyMDAwLTA4LTEwIDE0OjMzICBoYXJkYWtlcgoKCS0gKGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYyk6IGR5bmFtaWNhbGx5IGRlY2lkZSB0byByZXZlcnNlL2ZvcndhcmQgZW5jb2RlLgoJCjIwMDAtMDgtMTAgMTQ6MzEgIGhhcmRha2VyCgoJLSAoZXh0ZW5zaWJsZS5jKTogZml4IENSIHRlcm1pbmF0aW9uLgoJCjIwMDAtMDgtMTAgMTQ6MjUgIGhhcmRha2VyCgoJLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBkZWZpbmUgcmV2ZXJzZSBlbmNvZGluZyBvbiBieSBkZWZhdWx0LgoJCjIwMDAtMDgtMTAgMTM6MDIgIG1zbGlmY2FrCgoJZml4IGJ1ZyAyNTIgZm9yIGNvbmZpZ3VyZSBhbmQgc3lzL3NvY2tldC5oIG9uIEJTRC9PUyA0LjIKCQoyMDAwLTA4LTEwIDA5OjA3ICBoYXJkYWtlcgoKCS0gKGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXAuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHVzbS5jLAoJICBzbm1wdXNtLmgsIHNubXB2My5jKToKCSAgLSBpbXBsZW1lbnQgcmV2ZXJzZSBlbmNvZGVkIG1lc3NhZ2VzLgoJICAgIC0gVE9ETzogY2xlYW4gdXAsIHJ1bi10aW1lIGRldGVybWluYXRpb24gb2Ygd2VhdGhlciB0byB1c2UgaXQgb3Igbm90LgoJCjIwMDAtMDgtMDkgMTU6NDAgIG1zbGlmY2FrCgoJRml4IGJ1ZyAzMzEgd2l0aCBwYXRjaCBpbiBwYXJ0IHByb3ZpZGVkIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CgkKMjAwMC0wOC0wOSAxNToyNyAgbXNsaWZjYWsKCglubyAvLyBjb21tZW50LCBpbiBkZWZlcmVuY2UgdG8gbm9uLUFOU0ktQyBjb21waWxlcnMuCgkKMjAwMC0wOC0wOSAwNzoyMSAgbmJhCgoJLSBocl9zd3J1bi5jOiBmaXggdGhlIFJ1blBhdGggZm9yIHN3YXBwZWQgb3V0IExpbnV4IHByb2Nlc3MKCQoyMDAwLTA4LTA5IDA3OjIxICBuYmEKCgktIGhyX3ByaW50LmM6IGZpeCBhIGRlYnVnIHRva2VuCgkKMjAwMC0wOC0wOSAwNDo0NCAgbmJhCgoJLSBtYWluLmM6IGZpeCBwYXJzaW5nIG9mIC12CgkKMjAwMC0wOC0wOSAwMToxMyAgZGF2ZXMKCgktIChtaWJKSi9pcFJvdXRlLmgpOiBPbWl0IHJvdXRlX3dyaXRlIGZvciBub3cKCQoyMDAwLTA4LTA5IDAwOjU4ICBkYXZlcwoKCS0gKG1pYkpKLyopOiBFeHBlcmltZW50YWwgcmUtd3JpdGUgb2YgbWliSUkKCQkoUGlsb3QgZXJyb3Igd2hlbiB0cnlpbmcgdG8gY29tbWl0IHRoZSBjaGFuZ2VzIGVhcmxpZXIgLSBzb3JyeSEpCgkKMjAwMC0wOC0wOCAxMDowNiAgaGFyZGFrZXIKCgktIChleHRlbnNpYmxlLmMpOiBzdHJpcCBuZXdsaW5lcy4KCQoyMDAwLTA4LTA4IDA4OjUxICBoYXJkYWtlcgoKCS0gKHNubXBfcGFyc2VfYXJncy5jKTogUGF0Y2ggZnJvbSBTY290dCBMaXBjb246IHN0YXJ0IG9wdGluZCBhdCAxIG5vdCAwLgoJICAtCgkKMjAwMC0wOC0wOCAwNjozNiAgbXNsaWZjYWsKCglGaXggYnVnICMyOTUgKGZyZWUgKnNlY1N0YXRlUmVmIGJlZm9yZSBhbGxvY2F0aW5nIGFub3RoZXIgb25lKS4KCQoyMDAwLTA4LTA4IDA2OjA1ICBtc2xpZmNhawoKCWZpeCBidWcgIzI5OCByZXBvcnRlZCBhbmQgcGF0Y2ggc3VwcGxpZWQgYnkgQ29ucmFkIExpbmsgPGNsaW5rQG1sLmNvbT4KCQoyMDAwLTA4LTA4IDA0OjU5ICBuYmEKCgktIHNubXBfYXBpLmM6IGZpeCBhIGJ1c3kgbG9vcCB3aGVuIGFsYXJtIHF1ZXVlIGlzIGFjdGl2ZSB3aXRob3V0IGFueQoJCW91dHN0YW5kaW5nIHJlcXVlc3RzCgkKMjAwMC0wOC0wOCAwNDo0NyAgbmJhCgoJLSBzbm1wc2V0LjE6IGNhbm5vdCBzZXQgY291bnRlcnMKCQoyMDAwLTA4LTA4IDA0OjQyICBtc2xpZmNhawoKCUZpeGVkIChCVUcjMzMyKSB1c2luZyBwYXRjaCBzdWJtaXR0ZWQgYnkgSm9obiBOYXlsb24gPGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbT4KCUFsc28gY29uc29saWRhdGVkIGNvbW1lbnRzIGFib3V0IHRoZSBmb3VyIHNlbmQgUERVIGZ1bmN0aW9ucy4KCQoyMDAwLTA4LTA3IDA2OjU5ICBtc2xpZmNhawoKCUZpeCBsZWFrIGluIHJlcG9ydGFibGUgZXJyb3JzIGZvdW5kIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CgkKMjAwMC0wOC0wNyAwNTo0OCAgbmJhCgoJZmlsZSBhZGRfbW9kdWxlX3JlcGxhY2VtZW50LjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwNTo0OCAgbmJhCgoJZmlsZSByZWFkX29iamlkLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBzbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgc25tcF9zZXRfbWliX3dhcm5pbmdzLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSByZWFkX21vZHVsZV9ub2RlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSByZWFkX21vZHVsZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcmVhZF9hbGxfbWlicy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcmVhZF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHByaW50X3ZhcmlhYmxlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBwcmludF92YWx1ZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcHJpbnRfb2JqaWQuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHByaW50X2Rlc2NyaXB0aW9uLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBwcmludF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIGluaXRfbWliX2ludGVybmFscy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgaW5pdF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIGdldF9tb2R1bGVfbm9kZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgYWRkX21pYmRpci4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDQgMTc6MTMgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBhZGQgaW4gdGhlIG5vdGlmaWNhdGlvbiBncm91cCBieSBkZWZhdWx0LgoJCjIwMDAtMDgtMDQgMTc6MDggIGhhcmRha2VyCgoJLSAobm90aWZpY2F0aW9uLmgpOiBub3RpZmljYXRpb24gbWliIHdyYXBwZXIuCgkKMjAwMC0wOC0wNCAxNzowNiAgaGFyZGFrZXIKCgktIChzbm1wX3BhcnNlX2FyZ3MuYyk6CgkgLSBpbml0aWFsaXplIG9wdGluZCBiZWZvcmUgY2FsbGluZyBnZXRvcHQuCgkgLSBkZWJ1Z2dpbmcgb3V0cHV0LgoJCjIwMDAtMDgtMDQgMTY6NTYgIGhhcmRha2VyCgoJLSAocHJveHkuYyk6IHByb3Blcmx5IHNldCB0aGUgZmlyc3QgKHVudXNlZCkgYXJndW1lbnQgdG8gc25tcF9wYXJzZV9hcmdzKCkuCgkKMjAwMC0wOC0wNCAxNjo1MyAgaGFyZGFrZXIKCgktIChhZ2VudF90cmFwLmMsIHNubXBOb3RpZnlUYWJsZS5oLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCgkgIHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCgkgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCB0YXJnZXQuYyk6CgkgIC0gaWYgdXNpbmcgdGhlIHNubXBOb3RpZmljYXRpb25UYWJsZSwgaW5zZXJ0IG5vbi12MSB0cmFwIHNpbmtzIGludG8gaXQuCgkKMjAwMC0wOC0wNCAwNToyNiAgZGF2ZXMKCgktIChtaWJncm91cC9taWJKSi5oIG1pYmdyb3VwL21pYkpKLyopOiBFeHBlcmltZW50YWwgcmUtd3JpdGUgb2YgbWliSUkKCQoyMDAwLTA4LTA0IDA1OjIxICBkYXZlcwoKCS0gKG1pYmdyb3VwL3V0aWxfZnVuY3MuW2NoXSk6IE5ldyAnY2FjaGVkIHRhYmxlJyByb3V0aW5lcwoJCjIwMDAtMDgtMDMgMDg6MzcgIG1zbGlmY2FrCgoJRml4IGJ1ZyAjMzI1IGlkZW50aWZpZWQgYnkgSm9obiBOYXlsb24gPGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbT4KCQoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCglmaWxlIElQLUZPUldBUkQtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCglmaWxlIElORVQtQUREUkVTUy1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKCWZpbGUgSUYtSU5WRVJURUQtU1RBQ0stTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCglmaWxlIEhDTlVNLVRDLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTAyIDA3OjA2ICBtc2xpZmNhawoKCVNpbGVudCBydW5uaW5nIGdyZXAgcmVzdWx0cy4KCQoyMDAwLTA4LTAyIDA2OjEwICBtc2xpZmNhawoKCUZpeCBCVUcgIzI5MSA6IGFsbG93ICIyNTUuMjU1LjI1NS4yNTUiIGZvciB0ZXh0IGlucHV0IHRvIEFTTl9JUEFERFJFU1MKCQoyMDAwLTA4LTAyIDA1OjIwICBtc2xpZmNhawoKCUZpeCAoQlVHIzMyMykgOiBmcmVlIFBEVSB3aGVuIHNubXBfc2VuZCBmYWlscy4KCQoyMDAwLTA4LTAyIDA1OjA2ICBtc2xpZmNhawoKCUFkZCAtcCBvcHRpb24gb25jZSB0byBzbm1wZCBhcmdzLgoJRmluZCBNSUJESVJTIGluIHNvdXJjZSB0cmVlLgoJRml4IGNvbmRpdGlvbiB0byBzZXQgUEFUSC4KCQoyMDAwLTA4LTAxIDIzOjMwICBuYmEKCgktIGlwLmM6IE9uZSBtb3JlICNpZiBzb2xhcmlzCgkKMjAwMC0wOC0wMSAyMzoxOSAgbmJhCgoJLSBpcC5jOiBBIGJhZCAjaWYgLi4uIHRoZSBwcm9wZXIgZGVmaW5lIHRvIHRlc3QgZm9yIFNvbGFyaXMgaXMgc29sYXJpczIKCQoyMDAwLTA4LTAxIDE2OjQwICBoYXJkYWtlcgoKCS0gKHNubXBfcGFyc2VfYXJncy5jKTogcmVtb3ZlIHVudXNlZCB1c2FnZSgpIHR5cGVkZWYuCgkKMjAwMC0wOC0wMSAxNjo0MCAgaGFyZGFrZXIKCgktIChwcm94eS5jLCBwcm94eS5oKTogLVdhbGwgd2FybmluZyBmaXhlcy4KCQoyMDAwLTA4LTAxIDE2OjM5ICBoYXJkYWtlcgoKCS0gKEZBUSk6IG1lbnRpb24gbmV3ZXIgdmVyc2lvbnMgb2YgU29sYXJpcy4KCQoyMDAwLTA4LTAxIDE2OjM3ICBoYXJkYWtlcgoKCS0gKFRFU1RDT05GLnNoLCBURVNUQ09ORi5zaC5pbik6IHJldmVydCB0byBub24tY29uZmlnZWQgVEVTVENPTkYuCgkKMjAwMC0wOC0wMSAxNjozMSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3ApOiBtYWtlIHVuLXF1aWV0LgoJCjIwMDAtMDgtMDEgMTA6MjMgIGhhcmRha2VyCgoJLSAoc25tcC11Y2Quc2gpOiBmaXggYnVnICMyOTcgKGRvbid0IGtpbGwgZ3JlcCBhbmQgaW5pdCBzY3JpcHQgaW52b2NhdGlvbnMpLgoJCjIwMDAtMDgtMDEgMDQ6NDUgIG1zbGlmY2FrCgoJRml4IGJ1ZyBmb3VuZCBieSBZaWdhbCBIb2NoYmVyZyA8aG9jaGJlcmdAZG1oc29mdHdhcmUuY29tPgoJCjIwMDAtMDgtMDEgMDM6MzAgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggYnVpbGRpbmcgb2YgY29tcGxldGUgT0lECgkJKHdvcmsgd2l0aCB0aGUgbmFtZSBvcmlnaW5hbGx5IHJlZ2lzdGVyZWQsCgkJIG5vdCBhbnkgc3Vic2VxdWVudCBkaXZpc2lvbiBib3VuZGFyaWVzKQoJCjIwMDAtMDctMzEgMjA6MDkgIG1zbGlmY2FrCgoJUmVtb3ZlIGR1cGxpY2F0ZSBmb3BlbiBmcm9tIHNoZWxsX2NvbW1hbmQuCgkKMjAwMC0wNy0zMSAxODo1OCAgbXNsaWZjYWsKCgkoVEVTVENPTkYuc2guaW4pIC0gc2V0IE1JQkRJUlMgdG8gc2libGluZyBvZiB0aGUgdGVzdGluZyBkaXJlY3RvcnkuCgkoUlVOVEVTVFMpIC0gYWxsb3cgYmluYXJpZXMgdG8gYmUgaW4gdGhlICItRCBiaW5kaXIiIGRpcmVjdG9yeS4KCQoyMDAwLTA3LTMxIDE1OjI1ICBtc2xpZmNhawoKCURvbnQgYWRqdXN0IFBBVEggaWYgU05NUF9QQVRIIGlzIHNldC4KCURvbnQgYWRkIHBvcnQgc3BlYyB0byBTTk1QX0ZMQUdTIGlmIG9uZSBpcyBhbHJlYWR5IHNwZWNpZmllZC4KCQoyMDAwLTA3LTMxIDEzOjQ5ICBtc2xpZmNhawoKCVJlbW92ZSB0ZXN0IGRpcmVjdG9yaWVzIGZvciBza2lwcGVkIHRlc3RzLgoJS2VlcCB0ZXN0IGRpcmVjdG9yaWVzIGZvciBmYWlsZWQgdGVzdHMuCglLZWVwIHRlc3QgZGlyZWN0b3JpZXMgZm9yIHBhc3NlZCB0ZXN0cyB3aGVuICJSVU5URVNUUyAtcyIgaXMgc3BlY2lmaWVkLgoJU2VhcmNoIGNvbmZpZy5oIGF0IHRoZSByb290IG9mIHRoZSBidWlsZCB0cmVlLgoJCjIwMDAtMDctMzEgMTE6MzIgIG1zbGlmY2FrCgoJTWVyZ2UgZnJvbSBhdXRvbWFrZS0xLjQ6IEFkZCBmb3IgUmhhcHNvZHksIE9wZW5TdGVwLCBDcmF5LVQzLCBTWC00LCBTWC01CgkKMjAwMC0wNy0zMSAxMTozMSAgbXNsaWZjYWsKCglNZXJnZSBmcm9tIGF1dG9tYWtlLTEuNDogQWRkIGZvciBSaGFwc29keSwgT3BlblN0ZXAKCQoyMDAwLTA3LTMwIDE3OjM4ICBoYXJkYWtlcgoKCS0gKHNubXBOb3RpZnlUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuaCwgdGFyZ2V0LmMsIHRhcmdldC5oKToKCSAgLSBpbXBsZW1lbnQgdW50ZXN0ZWQgZmlsdGVyaW5nIGZ1bmN0aW9uIGNhbGxiYWNrIGZvciB0YXJnZXQgc2VhcmNoZXMuCgkgIC0gZGVsZXRlIHVudXNlZCBmdW5jdGlvbi4KCSAgLSBtaXNjIHdhcm5pbmcgZml4ZXMuCgkKMjAwMC0wNy0zMCAxNzowNyAgaGFyZGFrZXIKCgktIChzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsIHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaCwKCSAgc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5oKToKCSAgLSBtb3JlIG5vdGlmaWNhdGlvbiB0YWJsZSBpbXBsZW1lbnRhdGlvbnMgZm9yIGZpbHRlcmluZy4KCSAgICAtIEZyYW1ld29yayBjb21wbGV0ZSwgZnVuY3Rpb25hbGl0eSBpcyBub3QuCgkKMjAwMC0wNy0zMCAxNzowNSAgaGFyZGFrZXIKCgktIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKToKCSAgLSBoYW5kbGUgaW1wbGllZCBvYmplY3RzLgoJICAtIGltcGxlbWVudCBoZWFkZXJfY29tcGxleF9nZXQoKSBmb3Igc2ltcGxlIGRhdGEgcmV0cmlldmFscy4KCQoyMDAwLTA3LTI4IDA2OjE1ICBtc2xpZmNhawoKCUNsZWFudXAgaW5jbHVkZSBoZWFkZXJzIHRvIGZpeCBidWcgIzMwNy4gVGhhbmtzIHRvIHNhbmR2ZW5AcmVzZWFyY2guYXR0LmNvbS4KCQoyMDAwLTA3LTI3IDE1OjE5ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBWaW5heSBNb2h0YToKCSAgLSBhY2Nlc3NfaG9zdHMoKSByZXF1aXJlcyBhbiBhcmd1bWVudCBzbyBmYWtlIG9uZS4KCQoyMDAwLTA3LTI3IDE1OjAwICBoYXJkYWtlcgoKCS0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTWF0dGlhcyBCYXJ0aGVsOgoJICAtIGZpeCBmb3IgaW50ZXJmYWNlcyB3aXRob3V0IGFuIGF0dGFjaGVkIElQIGFkZHJlc3MuCgkKMjAwMC0wNy0yNyAxNDo1NSAgaGFyZGFrZXIKCgktICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKCSAgLSBzdXBwb3J0IHJhdyB2YWx1ZXMuCgkKMjAwMC0wNy0yNyAwODoyNSAgaGFyZGFrZXIKCgktIChzbm1wdXNtLmMpOiBwcmludCBlcnJvcnMgdG8gc3RkZXJyLgoJCjIwMDAtMDctMjcgMDY6MjAgIG5iYQoKCS0gcGFyc2UuYzogRml4IGEgbWlzc2luZyBpbml0aXphdGlvbiB3aGVuIG9uZSBNSUIgaG9sZHMgTU9EVUxFLUNPTVBMSUFOQ0UKCQlmb3IgYW5vdGhlcgoJCjIwMDAtMDctMjcgMDE6MzUgIG5iYQoKCS0gc25tcF9hcGkuYzogRml4IHBkdS0+Y29tbXVuaXR5IGJlaW5nIG92ZXJ3cml0dGVuIHdpdGggc2Vzc2lvbi0+Y29tbXVuaXR5CgkJVGhhbmtzIHRvIERhbmEgUC4gQ29vayA8ZGNvb2tAY2FibGV0cm9uLmNvbT4KCQoyMDAwLTA3LTI2IDIyOjI4ICBtc2xpZmNhawoKCVVwZGF0ZSBmb3Igd2luMzIgYnVpbGQ6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzIGFuZCB1bnB1Ymxpc2hlZCBtZXRob2QuCgkKMjAwMC0wNy0yNiAwODo1MyAgaGFyZGFrZXIKCgktIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBtaXNjIGNoYW5nZXMgYW5kIGltcHJvdmVtZW50cy4KCQoyMDAwLTA3LTI2IDA4OjUzICBoYXJkYWtlcgoKCS0gKHRrbWliKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgoJICAtIHRyYW5zbGF0ZU9iaiBoYWNrLgoJCjIwMDAtMDctMjYgMDg6NDkgIGhhcmRha2VyCgoJLSAodGttaWIpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CgkgIC0gcmVtb3ZlIGJlZ2lubmluZyBuZXdsaW5lIGluIGRlc2NyaXB0aW9uIGNsYXVzZXMuCgkKMjAwMC0wNy0yMSAxNDowMCAgaGFyZGFrZXIKCgktIChzZXR1cGRiLCBzbm1wdG9zcWwpOiBvbmx5IGRlbGV0ZSBoaXN0b3J5IHJvd3Mgb25jZSBldmVyeSBob3VyIG9yIHNvLgoJICAtIHRvbyBDUFUgaW50ZW5zaXZlIGZvciBsYXJnZSB0YWJsZXMuCgkKMjAwMC0wNy0yMSAxMjo1OSAgaGFyZGFrZXIKCgktIChzZXR1cGRiLCBzbm1wdG9zcWwpOiByZWNvcmQgYW5kIGRpc3BsYXkgc3lzVXBUaW1lIGFuZCBvdGhlcnMuCgkKMjAwMC0wNy0yMSAxMjo1NyAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogZ3JhcGhpbmcgd29ya3MgYWdhaW4uCgkKMjAwMC0wNy0yMSAxMjo1NyAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0pOiBjb21tZW50cywgbGVnZW5kcywgYW5kIG1heC9taW4gd29yayBhZ2Fpbi4KCQoyMDAwLTA3LTE3IDExOjAwICBoYXJkYWtlcgoKCS0gKHZtc3RhdF9zb2xhcmlzMi5oKTogY29uZmlnX3JlcXVpcmUga2VybmVsX3N1bm9zNS4KCQoyMDAwLTA3LTEyIDA5OjI5ICBoYXJkYWtlcgoKCS0gKHNubXB2My5jKTogY29weSBrZXkgbGVuZ3RoIGFzIHdlbGwgYXMgdGhlIGtleSB3aGVuIHVzaW5nIHRoZSBzYW1lCgkgIHByaXZhY3kga2V5IGFzIHRoZSBhdXRoIGtleS4KCQoyMDAwLTA3LTExIDEzOjM0ICBtYXJ6CgoJYWRkZWQgcmFuZ2VzIGZpZWxkIHRvIFNOTVA6Ok1JQiBoYXNoCgkKMjAwMC0wNy0xMSAxMDowNSAgaGFyZGFrZXIKCgktIChtaWIuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgoJICAtIG1ha2UgbnVsbCBQUkVGSVggdmFyaWFibGUgcG9zc2libGUgc28gbm9uLWRvdC1sZWFkaW5nIG9pZHMgYXJlIGFjY2VwdGVkLgoJCjIwMDAtMDctMTEgMDk6MjIgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHVzbS5jLCBzbm1wdXNtLmgpOgoJICAtIG1ha2UgdGhlIHNlc3Npb24gcG9pbnRlcnMgaW5kaWNhdGUgd2VhdGhlciBvciBub3QgdGhleSBhcmUKCSAgICAiYXV0aG9yaXRhdGl2ZSIsIG1lYW5pbmcgd2VhdGhlciB0aGV5IHNob3VsZCBiZSBsZWFybmluZyBlbmdpbmVJRHMKCSAgICBvciByZXBvcnRpbmcgb24gdGhlbS4KCSAgLSBwYXNzIHRoZSByZWNlaXZlZC1wYWNrZXQgc2Vzc2lvbiBwb2ludGVyIGludG8gc25tcHYzX3BhcnNlIGFuZAoJICAgIHVzbV9wcm9jY2Vzc19pbl9tc2coKSB0byB1c2UgdGhpcyBmbGFnLgoJICAtIHNldCBpc0F1dGhvcmF0YXRpdmUgPSB0cnVlIGluIHRoZSBhZ2VudCwgYW5kIHVua25vd24gaW4gdGhlIHNubXB0cmFwZC4KCQoyMDAwLTA3LTExIDA4OjMyICBoYXJkYWtlcgoKCS0gKHNubXB2My5jKTogbWFrZSB0aGUgY3JlYXRlVXNlciB0b2tlbiBhY2NlcHQgYW4gZW5naW5laWQgKC1lIEFSRykgdG8gdXNlLgoJCjIwMDAtMDctMDcgMDE6MzcgIGRhdmVzCgoJLSAobWliSUkvaW50ZXJmYWNlcy5jKTogUmVjb2duaXNlIFRva2VuIFJpbmcgaW50ZXJmYWNlcyB1bmRlciBMaW51eAoJCjIwMDAtMDctMDYgMTc6MTkgIGhhcmRha2VyCgoJLSAocmVhZF9jb25maWcuYyk6IHByaW50IGdlbmVyaWMgc3RyaW5ncyB3aGVuIHNhdmluZyBwZXJzaXN0ZW50IGRhdGEKCSAgd2hlcmUgcG9zc2libGUuICAoSUUsIGNoZWNrIGZvciBwcmludGFibGUgY2hhcmFjdGVycyBiZWZvcmUgcHJpbnRpbmcgaGV4KS4KCQoyMDAwLTA3LTA2IDE3OjA1ICBoYXJkYWtlcgoKCS0gKFRFU1RDT05GLnNoLCBURVNUQ09ORi5zaC5pbik6IG1vdmVkIFRFU1RDT05GLnNoIHRvIFRFU1RDT05GLnNoLmluCgkgIGFuZCBoYXZlIHRoZSBNSUJTIHBhdGggdmFyaWFibGUgYnVpbHQgYnkgY29uZmlndXJlIHNpbmNlIGl0IGtub3dzCgkgIHdoZXJlIHRoZSByb290IGxldmVsIHNvdXJjZSBkaXJlY3RvcnkgaXMuCgkKMjAwMC0wNy0wNiAxNzowNCAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaGVhZGVyX2NvbXBsZXguYywgc25tcE5vdGlmeVRhYmxlLmMsCgkgIGFzbjEuaCwgc25tcF9hcGkuYyk6CgkgIC0gaW1wbGVtZW50IElNUExJRUQgaW5kZXggaGFuZGxpbmcuCgkgIC0gbWFrZSB0aGUgY3JlYXRlZCBVU00gZW50cmllcyBzZXQgdGhlIHN0b3JhZ2VUeXBlIGFuZCBSb3dTdGF0dXMKCSAgICBhcHByb3ByaWF0ZWx5LgoJCjIwMDAtMDctMDYgMTc6MDIgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuaCk6IGJldHRlciBjb21tZW50cyBvbiBhIGNvdXBsZSBvZiBmdW5jdGlvbiBkZWZpbml0aW9ucy4KCQoyMDAwLTA3LTA1IDA3OjUwICBtc2xpZmNhawoKCWZpeCAoQlVHIzI5MCkgZ3JhY2VmdWxseSBoYW5kbGUgc29tZSBQRFVzIHRoYXQgaGF2ZSBubyB2YXJpYWJsZXMuCgkKMjAwMC0wNy0wNSAwNjo0NiAgbXNsaWZjYWsKCglbbm8gbG9nIG1lc3NhZ2VdCgkKMjAwMC0wNy0wNCAxMDoyMSAgaGFyZGFrZXIKCgktIChzbm1wX3ZhcnMuYywgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB1c20uYywgc25tcHVzbS5oKToKCSAgLSByZW1vdmUgbGFzdCByZW1uYW50cyBvZiB0aGUgImluaXRpYWwiIHVzZXIuCgkgIC0gbWFrZSBlbmdpbmVpZCByZXBvcnRzIGZyb20gdGhlIHVzbSBoYXBwZW4gYmFzZWQgb24gdGhlIHJlcG9ydCBmbGFnCgkgICAgaW4gdGhlIG1lc3NhZ2UgZmxhZy4KCSAgICAtIE5vdGU6IHRoaXMgaXMgYSBiaWcgaXNzdWUgd2l0aCB0aGUgU05NUHYzIHByb3RvY29sIHNwZWNzLiAgVGhlCgkgICAgICBzcGVjaWZpY2F0aW9ucyBub3RlIHRoYXQgeW91IHNlbmQgYSByZXBvcnQgaWYgeW91IGFyZQoJICAgICAgImF1dGhvcml0YXRpdmUiLCBidXQgZG9uJ3QgZGVzY3JpYmUgaG93IHRvIGtub3cgaWYgeW91IGFyZQoJICAgICAgYXV0aG9yaXRhdGl2ZSBvciBub3QuICBGb3Igc2l0dWF0aW9ucyBsaWtlIHByb3hpZXMgYW5kCgkgICAgICBub3RpZmljYXRpb24gcmVjZWl2ZXJzLCB3aGVyZSB5b3UgYXJlIHNvbWV0aW1lcyBhdXRob3JpdGF0aXZlCgkgICAgICBhbmQgb3RoZXIgdGltZXMgeW91J3JlIG5vdCwgdGhpcyBpcyBwcm9ibGVtYXRpYy4gIFRoZSBTTk1QdjMKCSAgICAgIEFTSXMgZG8gbm90IHBhc3MgaW4gZW5vdWdoIGluZm9ybWF0aW9uIHRvIGRldGVybWluZSB0aGlzIGFuZCB0aGUKCSAgICAgIFdHIGhhcyBwcm9jbGFpbWVkIHRoYXQgdGhlIEFTSXMgYXJlIG5vdCBtZWFudCB0byBiZSB1c2VkIGFzIGFuCgkgICAgICBBUEksIGJ1dCB0aGUgaW5pdGlhbCB3b3JrIGRvbmUgYnkgTkFJIGFuZCBUSVNMYWJzIGF0dGVtcHRlZCB0bwoJICAgICAgaW1wbGVtZW50IHRoZSBVU00gc3VjaCB0aGF0IGl0IHdvdWxkIGJlIGEgInJlZmVyZW5jZSIgcmVsZWFzZQoJICAgICAgYW5kIGhlbmNlIHdlIGZvbGxvd2VkIHRoZSBzcGVjaWZpY2F0aW9ucyB0byB0aGUgbGV0dGVyIGFuZCB1c2VkCgkgICAgICB0aGUgQVNJcyBhcyBBUElzIGp1c3QgdG8gc2VlIGlmIHdlIGNvdWxkLiAgV2UgY291bGQgcHJldmlvdXNseQoJICAgICAgb25seSBiZWNhdXNlIHdlIHdlcmUgYWx3YXlzIGVpdGhlciBhdXRob3JpdGF0aXZlIG9yCgkgICAgICBub24tYXV0aG9yaXRhdGl2ZS4gIFNpbmNlIGJlZ2lubmluZyB0byB3b3JrIG9uIHByb3h5IGFuZCB0aGUKCSAgICAgIG5vdGlmaWNhdGlvbiBtaWIsIHRoaXMgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlLiAgRm9yIHRoZSByZWNvcmQsIEkKCSAgICAgIGFtIGhlcmVieSBjaGFuZ2luZyB0aGUgaW5pdGlhbCByZWZlcmVuY2UgcmVsZWFzZSBpbiBzdWNoIGEKCSAgICAgIG1hbm5lciBhcyBpdCBubyBsb25nZXIgY29uZm9ybXMgZXhhY3RseSB0byB0aGUgU05NUHYzIEFTSXMuICBTbwoJICAgICAgYXMgbm90IHRvIGNvbmZ1c2UgYW55b25lLCB0aGlzIGlzIGFuIGVudGlyZWx5IHRoZW9yZXRpY2FsIGlzc3VlCgkgICAgICB3aXRoIHJlc3BlY3QgdG8gdGhlIFNOTVB2MyBzcGVjaWZpY2F0aW9uIGFuZCBpcyBwZXJmZWN0bHkgbGVnYWwKCSAgICAgIHRvIGRvLiAgVGhvdWdoIEkgY291bGQgZWFzaWx5IGdvIG9uLCBJJ2xsIHN0ZXAgb2ZmIG15IHNvYXAgYm94IG5vdy4KCQoyMDAwLTA3LTAzIDEwOjEwICBoYXJkYWtlcgoKCS0gKGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCwgc25tcE5vdGlmeVRhYmxlLmMsCgkgIHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldEFkZHJFbnRyeS5oLAoJICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIHRhcmdldC5jKToKCSAgLSBBZGQgYSBuZXcgY2FsbGJhY2sgZm9yIHNlbmRpbmcgdHJhcHMuCgkgICAgLSBNYWtlIHRoZSBub3RpZmljYXRpb24gbWliIHVzZSBpdC4KCSAgLSBtYWtlIHRoZSB0YXJnZXQgbWliIGdlbmVyYXRlIG1vcmUgcGVyc2lzdGVudCBzZXNzaW9ucy4KCSAgLSBNYWtlIHRoZSBub3RpZmljYXRpb24gbWliIGFsd2F5cyBhc2sgdGhlIHRhcmdldCBtaWIgZm9yIGEgc2Vzc2lvbgoJICAgIGxpc3QsIHdoaWNoIGlzIG5vdyBjYWNoZWQgZGlyZWN0bHkgYnkgdGhlIHRhcmdldCBtaWIuCgkKMjAwMC0wNy0wMyAwODozOCAgbXNsaWZjYWsKCglmaXggKEJVRyMyNjIpIC0gKHNvbWUpIHN0YXRlbWVudHMgdGhhdCBjYW5ub3QgYmUgcmVhY2hlZC4KCQoyMDAwLTA3LTAzIDA3OjU1ICBtc2xpZmNhawoKCWZpeCAoQlVHIzI4NykKCQoyMDAwLTA3LTAzIDA2OjExICBtc2xpZmNhawoKCWZpeCBidWcgIyAyODkKCQoyMDAwLTA2LTMwIDA0OjQ1ICBtc2xpZmNhawoKCXNpbXBsaWZ5IG1lbW9yeSBhbGxvY2F0aW9uIGluIHJlYWRfY29uZmlnX3JlYWRfe29jdGV0X3N0cmluZywgb2JqaWR9CgkKMjAwMC0wNi0zMCAwMDo0NyAgbmJhCgoJLSByZWFkX2NvbmZpZy5jOiBGaXggYSBtaXNzaW5nIGluaXRpYWxpemF0aW9uIGZvciBrZXl3b3JkcyB3aXRob3V0IGhlbHAKCQoyMDAwLTA2LTI4IDIzOjM3ICBuYmEKCgktIElGLU1JQi50eHQ6IHVwZ3JhZGUgdG8gUkZDIDI4NjMKCQoyMDAwLTA2LTI4IDAwOjU4ICBuYmEKCgktIGludGVyZmFjZXMuYywgY29uZmlndXJlOiBJcml4IDYuNSBoYXMgaWZpX2JhdWRyYXRlLmlmc192YWx1ZQoJCjIwMDAtMDYtMjcgMDE6MzQgIG5iYQoKCS0gbWFpbi5jOiBiZXR0ZXIgb3B0aW9uIHBhcnNpbmcuCgkKMjAwMC0wNi0yNyAwMTozNCAgbmJhCgoJLSBzbm1wdjMuYzogZG8gY2FzZSBpbnNlbnNpdGl2ZSBtYXRjaGluZyBvZiBvcHRpb24gdmFsdWVzLgoJCjIwMDAtMDYtMjcgMDA6MzMgIG5iYQoKCS0gc25tcHRyYW5zbGF0ZS4xOiBkb2N1bWVudCB0aGF0IC13IGlzIGFsc28gZm9yIC1UZAoJCjIwMDAtMDYtMjcgMDA6MzAgIG5iYQoKCS0gdmFyaW91cyBtYW4gcGFnZSBuaXQtcGlja2luZwoJCjIwMDAtMDYtMjcgMDA6MjggIG5iYQoKCS0gc25tcHRhYmxlLmM6IGZpeGVzIGFuZCB1c2FnZSBtZXNzYWdlIGZvciAtQ2ggYW5kIC1DSAoJCjIwMDAtMDYtMjYgMjM6NDMgIG5iYQoKCS0gTWFrZWZpbGUuaW4sICpNSUIudHh0OiB1cGRhdGUgdG8gY3VycmVudCBSRkMgdmVyc2lvbgoJCjIwMDAtMDYtMjYgMjM6NDIgIG5iYQoKCS0gTWFrZWZpbGUubWliLCBtaWJmZXRjaCwgc21pc3RyaXA6IHRvb2xzIHRvIGV4dHJhY3QgTUlCcyBmcm9tIFJGQwoJCWRvY3VtZW50cy4KCQoyMDAwLTA2LTI2IDIzOjQwICBuYmEKCgktIHBhcnNlLmMsIG1pYi5bY2hdLCBzbm1wdHJhbnNsYXRlLmM6IGFkZCBwYXJzaW5nIG9mIENIT0lDRSBhbmQgY2hlY2tzIGZvcgoJCU9CSkVDVC1HUk9VUCBhbmQgQUdFTlQtQ0FQQUJJTElUSUVTLiBUaGlzIGFsbG93cyB1cyB0byBwYXJzZQoJCWNvbXBsZXRlIE1JQiBleHRyYWN0cyBmcm9tIFJGQyBkb2N1bWVudHMuCgkKMjAwMC0wNi0yNiAyMzozOCAgbmJhCgoJLSBNYWtlZmlsZS50b3A6IG1ha2UgbGlidG9vbCBzaWxlbnQsIHNvIHdlIGNhbiBzZWUgdGhvc2Ugd2FybmluZ3MKCQoyMDAwLTA2LTI2IDIzOjM3ICBuYmEKCgktIHNubXBUYXJnZXRBZGRyRW50cnkuYzogZG8gYSBjYXN0IHRvIGtpbGwgYSB3YXJuaW5nCgkKMjAwMC0wNi0yNiAyMzozMiAgbmJhCgoJLSBhZ2VudF90cmFwLmM6IEZpeCBhIGxlYWsgd2hlbiByZXF1ZXN0IGlzIGJsb2NrZWQgYnkgVkFDTSBhbmQgbm8gdHJhcAoJCWlzIHNlbnQuCgkKMjAwMC0wNi0yNiAxMTo1NiAgbXNsaWZjYWsKCglmaXggKEJVRyMyMzMpCgkKMjAwMC0wNi0yMyAwNjo0MiAgbXNsaWZjYWsKCglyZXBsYWNlIG1hbGxvYy9tZW1zZXQgMCB3aXRoIGNhbGxvYy4KCQoyMDAwLTA2LTIzIDAxOjA4ICBkYXZlcwoKCS0gKG1pYklJL2tlcm5lbF9saW51eC5bY2hdLCBtaWJJSS9pcC5jKTogQWRkZWQgc3VwcG9ydCBmb3IgaXBSb3V0aW5nRGlzY2FyZHMKCQkoVGhhbmtzIHRvIEJyeWFuIEJsYWNrbWFuKQoJCjIwMDAtMDYtMjIgMTc6MDkgIG1zbGlmY2FrCgoJcmVtb3ZlIGV4dHJhIGluY2x1ZGUgZXJyb3JtaWIuaAoJCjIwMDAtMDYtMjIgMTY6NTAgIG1zbGlmY2FrCgoJRml4IGJ1ZyAjMjc2IC0gY2xvc2UgbW9zdCBmaWxlIGRlc2NyaXB0b3JzIGJlZm9yZSBleGVjJ2luZyBjb21tYW5kLgoJCjIwMDAtMDYtMjIgMTU6NTkgIG1zbGlmY2FrCgoJZmdldHM6IHVzZSBzaXplb2YoYnVmKSBpbiBsaWV1IG9mIGNvbXBpbGVyIGNvbnN0YW50IFNUUk1BWC4KCQoyMDAwLTA2LTIyIDE1OjUzICBtc2xpZmNhawoKCVVzZSBmZXdlciBsYXJnZSBzdGF0aWMgYnVmZmVycy4gIHBhc3NfcGVyc2lzdCB1c2VzIGJpZ2dlciBidWZmZXJzIG5vdy4KCQoyMDAwLTA2LTIxIDE0OjU5ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0sIHNubXB0b3NxbCk6IHJlY29yZCBhbmQgcmVwb3J0IHN5c1VwVGltZS4KCQoyMDAwLTA2LTIxIDE0OjMxICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6IG1pbm9yIHNxbCBjYWNoaW5nIHNwZWVkIG9wdGltaXphdGlvbnMuCgkKMjAwMC0wNi0yMSAxMzozMyAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBBY2suICBEb24ndCBkZWxldGUgc3R1ZmYgZnJvbSB0aGUgaGlzdG9yeSB0YWJsZSB0aGF0IGZyZXF1ZW50bHkuCgkKMjAwMC0wNi0yMSAxMjo1MSAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBiZXR0ZXIgZXJyb3IgZGVzY3JpcHRpb24gc3VwcG9ydC4KCQoyMDAwLTA2LTIxIDEyOjQ2ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0sIHNubXB0b3NxbCk6IGNvbGxlY3Qgc3lzRGVzY3IsIHN5c09iamVjdElkLCAmIHZlcnNpb25UYWcuCgkKMjAwMC0wNi0yMSAxMjo0NiAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0pOiBhZGQgLXNlbGVjdG9yZGVyLgoJCjIwMDAtMDYtMjEgMTI6MjUgIGhhcmRha2VyCgoJLSAoc25tcE5vdGlmeVRhYmxlLmMpOiBVaCwgb25seSBpZiBub3QgZGVsZXRlZC4KCQoyMDAwLTA2LTIxIDEyOjIzICBoYXJkYWtlcgoKCS0gKHNubXBOb3RpZnlUYWJsZS5jKTogY2hhbmdlIGNyZWF0ZUFuZEdvL2NyZWF0ZUFuZFdhaXQgc3RhdGVzIHRvIGFjdGl2ZS9OSVMuCgkKMjAwMC0wNi0yMCAyMDowMSAgbXNsaWZjYWsKCglEZWNsYXJlIHRvcF9idWlsZGRpciB0byBhdm9pZCBhbm5veWluZyAvbGlidG9vbCBub3QgZm91bmQgbWVzc2FnZS4KCQoyMDAwLTA2LTIwIDE3OjMwICBtc2xpZmNhawoKCURvbnQgYXNzdW1lIEFOU0kgQy1wcmVwcm9jZXNzb3IgKHJlcGxhY2UgIiMjIiBjb25jYXRlbmF0aW9uIHdpdGggc3ByaW50ZikuCgkKMjAwMC0wNi0yMCAxNTozNyAgbXNsaWZjYWsKCglXaW4zMiBNUy1WQysrIGJ1aWxkIGZpeHVwcy4KCQoyMDAwLTA2LTIwIDE1OjM3ICBtc2xpZmNhawoKCUVuY2Fwc3VsYXRlIGxvY2FsIHZhcmlhYmxlICJ4IiB0byB0aGUgc2NvcGUgd2hlcmUgbmVlZGVkLgoJCjIwMDAtMDYtMjAgMTU6MzYgIG1zbGlmY2FrCgoJUmVtb3ZlIHVudXNlZCB2YXIgIm5ld3ZhciIuCgkKMjAwMC0wNi0yMCAxNTozNiAgbXNsaWZjYWsKCglVc2UgaW50IHZzIHVsb25nIGZvciBhcnJheSBpbmRleGluZyB2YXJpYWJsZXMgdG8gYXZvaWQgc2lnbmVkL3Vuc2lnbmVkIG1pc21hdGNoLgoJCjIwMDAtMDYtMjAgMTU6MzQgIG1zbGlmY2FrCgoJUmVtb3ZlIHVudXNlZCB2YXJzIHN0cnVjdCB0bSwgdGltZV90LgoJCjIwMDAtMDYtMjAgMTU6MzQgIG1zbGlmY2FrCgoJUmVtb3ZlIHVudXNlZCB2YXIgImluaXRsaXN0Ii4KCQoyMDAwLTA2LTIwIDE1OjMzICBtc2xpZmNhawoKCURlY2xhcmUgc3RybmNhc2VjbXAgaW4gc3lzdGVtLmggOyBSZW1vdmUgdW51c2VkIHZhciAic3RhdHVzIi4KCQoyMDAwLTA2LTIwIDE1OjMxICBtc2xpZmNhawoKCVJlbW92ZSB1bnVzZWQgdmFycy4KCQoyMDAwLTA2LTIwIDE1OjMwICBtc2xpZmNhawoKCURlY2xhcmUgb3B0YXJnIGluIGdldG9wdC5oLgoJCjIwMDAtMDYtMjAgMTQ6MDAgIGhhcmRha2VyCgoJLSAobWliMmMuc3RvcmFnZS5jb25mKTogbWlzYyBtaW5vciBjaGFuZ2VzLgoJCjIwMDAtMDYtMjAgMTM6NTkgIGhhcmRha2VyCgoJLSAoLmN2c2lnbm9yZSwgc25tcE5vdGlmeVRhYmxlLmMsIHNubXBOb3RpZnlUYWJsZS5oKToKCSAgLSBTTk1QLU5PVElGSUNBVElPTi1NSUIncyBzbm1wTm90aWZ5VGFibGUgaW1wbGVtZW50ZWQ6CgkgICAgLSB1c2VzIHRoZSBTTk1QLVRBUkdFVC1NSUIgdG8gZ2V0IGl0cyBhZGRyZXNzZXMgZnJvbS4KCSAgICAtIHVzZXMgaGVhZGVyX2NvbXBsZXggdG8gaGFuZGxlIHRoZSBkYXRhLgoJICAgIC0gbXVjaCB0b2RvOgoJICAgICAgLSBkeW5hbWljIHRhcmdldC9ub3RpZmljYXRpb24gbWliIHVwZGF0aW5nIHdpdGhvdXQga2lsbCAtSFVQIG5lZWRlZC4KCSAgICAgICAgLSB0aGlzIHdpbGwgYmUgYSByZWFsIHBhaW4uCgkgICAgICAtIGZpeCB2MyByZWxhdGVkIHRyYXBzIHN0aWxsIChzYW1lIHVzbSBidWcgSSd2ZSBiZWVuIG1lYW5pbmcgdG8gZml4KS4KCSAgICAgIC0gdGhlIHJlc3Qgb2YgdGhlIFNOTVAtTk9USUZJQ0FUSU9OLU1JQiB0YWJsZXMuCgkKMjAwMC0wNi0yMCAxMzo1MyAgaGFyZGFrZXIKCgktIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRBZGRyRW50cnkuaCwKCSAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oKToKCS0gZ2VuZXJpYyB0YXJnZXQgc2Vzc2lvbiBjcmVhdGlvbgoJLSBtaXNjIG90aGVyIG1pbm9yIGZpeGVzLgoJCjIwMDAtMDYtMjAgMTM6NTEgIGhhcmRha2VyCgoJLSAodGFyZ2V0LmgsIHRhcmdldC5jLCB0YXJnZXQuaCk6IGdlbmVyaWMgdGFyZ2V0IHNlc3Npb24gY3JlYXRpb24KCSAgYmFzZWQgb24gZW50cmllcyBpbiB0aGUgU05NUC1UQVJHRVQtTUlCIHRhYmxlLgoJCjIwMDAtMDYtMjAgMTM6NTAgIGhhcmRha2VyCgoJLSAoaGVhZGVyX2NvbXBsZXguYyk6IHJlbW92ZSBNaWNoYWVsJ3MgaG9ycmlibGVseSB3cm9uZyAiZml4ZXMiLgoJCjIwMDAtMDYtMjAgMTM6NDggIGhhcmRha2VyCgoJLSAoYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgpOiBhZGQgcmVtb3ZlX3RyYXBfc2Vzc2lvbigpLgoJCjIwMDAtMDYtMjAgMTM6NDYgIGhhcmRha2VyCgoJLSAocmVhZF9jb25maWcuYyk6IGRlYWwgd2l0aCAwLWxlbmd0aCBwZXJzaXN0ZW50IHN0cmluZ3MgYmV0dGVyLgoJCjIwMDAtMDYtMTkgMTI6MzIgIG1zbGlmY2FrCgoJQ2hlY2sgbW9yZSBhbGxvYyBmYWlsdXJlcy4KCQoyMDAwLTA2LTE5IDEyOjE1ICBtc2xpZmNhawoKCShwcm90b2NvbC5jKSBVc2Ugc2l6ZW9mKG9pZCksIG5vdCA0IQoJKGNsaWVudC5jKSBBZGQgX2FsbF8gb2YgT0lEIHZhbHVlIGZvciBhZ2VudHhfcmVnaXN0ZXIgYW5kIGFnZW50eF91bnJlZ2lzdGVyLgoJCjIwMDAtMDYtMTkgMTE6NDEgIG1zbGlmY2FrCgoJIFJlbW92ZWQgc2l6ZW9mKHVfY2hhcikgYW5kIHVubmVjZXNzYXJ5ICh1bnNpZ25lZCkgY2FzdHMgdG8gbWFsbG9jIHBhcmFtcy4KCQoyMDAwLTA2LTE5IDAzOjA0ICBuYmEKCglQcm90b3R5cGUgZml4dXAuCgkKMjAwMC0wNi0xOSAwMzowMSAgbmJhCgoJcy9jb25pZmcvY29uZmlnLyAuLi4uIEhycnJtbW1wZgoJCjIwMDAtMDYtMTkgMDI6NTggIG5iYQoKCS0gbWFrZW5vc3lzZGVwZW5kLnBsIE1ha2VmaWxlLmluOiBvYmplY3QgZmlsZXMgYXJlIG5vdyBuYW1lZCAubG8gLi4uCgkKMjAwMC0wNi0xNiAxNjowMSAgaGFyZGFrZXIKCgktIChzbm1wVGFyZ2V0QWRkckVudHJ5LmgpOiBhZGQgdGhlIFNOTVB2Mi1UTSBtaWIgdG8gdGhlIGRlZmF1bHQgbGlzdC4KCQoyMDAwLTA2LTE2IDE2OjAxICBoYXJkYWtlcgoKCS0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiBmaXggaW5jb3JyZWN0IE9JRHMuCgkKMjAwMC0wNi0xNSAwNjo0NSAgbWFyegoKCWZhdCBmaW5nZXJzCgkKMjAwMC0wNi0xNSAwNjo0MiAgbWFyegoKCWFkZCBkZWZhdWx0cyB0byBkYWVtb24gc2VhcmNoIHBhdGguLi5yZWNhbGMgdC9zbm1wdGVzdC5jbWQgZXZlcnl0aW1lIHBlciBtYWtlZmlsZS5QTCBpcyBydW4KCQoyMDAwLTA2LTE0IDE2OjE1ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0pOiBmaXggdXNlciBwcmVmZXJlbmNlcy4gIENvbHVtbnMgYXJlIG9wdGlvbmFsbHkKCSAgZGlzcGxheWFibGUgYWdhaW4uCgkKMjAwMC0wNi0xNCAxNjoxNSAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBmaXggaGlzdG9yeSBkZWxldGlvbi4KCQoyMDAwLTA2LTEyIDE2OjQzICBoYXJkYWtlcgoKCS0gKHNubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCB0cmFwc2Vzcy4KCQoyMDAwLTA2LTEyIDE2OjM5ICBoYXJkYWtlcgoKCS0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oKToKCSAgLSBuZXcgc25tcGQuY29uZiB0b2tlbiBmb3IgdHJhcCBzZXNzaW9uczogInRyYXBzZXNzIi4KCSAgICAtIHVzZXMgc25tcF9wYXJzZV9hcmdzIHNvIGFueSB0eXBlIG9mIHRyYXAgY2FuIGJlIHNlbnQgd2l0aCBpdAoJICAgICAgbW9kaWZpZWQgYnkgYW55IG9mIHRoZSBwYXJhbWV0ZXJzIHRoYXQgYXJlIGRvY3VtZW50ZWQgaW4gc25tcGNtZCgxKS4KCSAgICAtIHYzIHRyYXBzIGRvbid0IHdvcmsgZHVlIHRvIHRoZSBzYW1lIFVTTSBwcm9ibGVtcyBmb3VuZCBpbiB0aGUKCSAgICAgIHJlY2VudCBwcm94eSBzdWJtaXNzaW9ucyAobXkgbmV4dCB0YXJnZXQpLgoJICAgIC0gLUNpIGluIHRoZSBhcmd1bWVudCBzcGVjaWZpZXMgaW5mb3JtcyBzaG91bGQgYmUgdXNlZC4KCQoyMDAwLTA2LTEyIDE2OjE4ICBoYXJkYWtlcgoKCS0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiByZS1lbmFibGUgZnJlZWluZyBvZiBtYXN0ZXIgcmVxdWVzdC4KCQoyMDAwLTA2LTEyIDE2OjE3ICBoYXJkYWtlcgoKCS0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogc2F2ZSBleGVjIGRhdGEgdG8gL3Zhci91Y2Qtc25tcC4KCSAgLSBjb3VsZCBjYXVzZSBwcm9ibGVtcyBmb3Igbm9uLXJvb3QgcnVucy4gIFVudGVzdGVkLgoJCjIwMDAtMDYtMTIgMTQ6MTIgIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkX2xvZy5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgoJICAtIHJlbW92ZSBlbmRpbmcgY29tbWFzIGluIGVudW0gbGlzdC4KCQoyMDAwLTA2LTEyIDEwOjM2ICBoYXJkYWtlcgoKCS0gKHNldHVwZGIsIHNldHVwdXNlciwgc25tcHRvc3FsKTogdXNlICJUYWJsZSJzIGluc3RlYWQgb2YgIkVudHJ5InMuCgkKMjAwMC0wNi0xMiAxMDozMyAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogc2F2ZSBtaWIgZGVzY3JpcHRpb25zIGZvciBkaXNwbGF5IHB1cnBvc2VzIChhZ2FpbikuCgkKMjAwMC0wNi0xMiAxMDoyOSAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogcmVtb3ZlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgoJCjIwMDAtMDYtMTIgMTA6MjcgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSk6IHByb3Blcmx5IHNvcnQgZGlzcGxheWVkIHRhYmxlIGNvbHVtbnMgYWdhaW4uCgkKMjAwMC0wNi0wNyAxMzoyMyAgaGFyZGFrZXIKCgktIChzbm1wX2NvbmZpZy41LmRlZiwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CgkgIC0gdGhlIFRZUEUuY29uZiBwYXJzZXIgbm93IGFjY2VwdHMgdG9rZW5zIGZyb20gYSBkaWZmZXJlbnQgLmNvbmYKCSAgICBmaWxlIFRZUEUgaWYgYSBzcGVjaWFsICJbVFlQRV0iIGtleXdvcmQgaXMgaW5zZXJ0ZWQgaW50byB0aGUKCSAgICAuY29uZiBmaWxlLiAgU2VlIHNubXBfY29uZmlnKDUpIGZvciBhIGJldHRlciBkZXNjcmlwdGlvbi4KCQoyMDAwLTA2LTA3IDEzOjIyICBoYXJkYWtlcgoKCS0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CgkgIC0gbWFwIHN0cnRvdWwgdG8gYXRvaSBpZiB0aGUgZnVuY3Rpb24gaXNuJ3QgZm91bmQuCgkKMjAwMC0wNi0wNiAxNDoyNiAgaGFyZGFrZXIKCgktIChJTlNUQUxMLCBncmVlbi5naWYsIG1hbmFnZXIucG0sIHJlZC5naWYsIHNldHVwYXV0aCwgc2V0dXBkYiwKCSAgc2V0dXBuZXdob3N0LCBzZXR1cHVzZXIsIHNubXB0b3NxbCwgc25tcHRvc3FsdGFibGUsIHNxbHRvaHRtbCk6CgkgIC0gbWFuYWdlbWVudCBjbGVhbnVwIGFuZCBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIHdyaXR0ZW4uCgkgIC0gc2hvdWxkIGJlIG1vc3RseSBjb21wbGV0ZSAoaWUsIGJhcmVseSBmdW5jdGlvbmFsKSBmb3IgdGhlIGFscGhhIHRlc3RlcnMuCgkKMjAwMC0wNi0wNiAwODowMyAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBob3N0IG5hbWUgY2hhbmdlcyAtPiB2YXJjaGFyKDY0KQoJCjIwMDAtMDYtMDYgMDg6MDIgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSk6IG1hbnkgbWlub3IgZml4ZXMgYW5kIGNoYW5nZXMuCgkKMjAwMC0wNi0wNiAwODowMiAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0pOiBhbGxvdyB0YWJsZSB0aXRsZSBzZXR0aW5nLgoJCjIwMDAtMDYtMDIgMTE6NDEgIGhhcmRha2VyCgoJLSAoLmN2c2lnbm9yZSk6IGFkZCAqLm1hZGUuCgkKMjAwMC0wNi0wMiAxMTo0MCAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgZml4cHJvYywgaXBmLW1vZC5wbCwgbWliMmMsIHRrbWliKToKCSAgLSBtYWtlIChhbmQgaW5zdGFsbCkgcGVybCBzY3JpcHRzIGRpZmZlcmVudGx5LCB3aXRob3V0IG1vZGlmeWluZyB0aGUgb3JpZy4KCQoyMDAwLTA2LTAxIDE2OjQ3ICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6IHR5cG9zLgoJCjIwMDAtMDYtMDEgMTY6NDQgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKToKCSAgLSBkZWJ1Z2dpbmcgdG8gU1RERVJSLgoJICAtIGF1dG8gZGVsZXRpb24gb2Ygb2xkIGhpc3RvcmljYWwgZGF0YS4KCQoyMDAwLTA2LTAxIDE2OjQ0ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0pOiBiZWdpbm5pbmdzIG9mIGEgbmljZXIgcmVhbCBpbnRlcmZhY2UuCgkKMjAwMC0wNi0wMSAxNjo0MyAgaGFyZGFrZXIKCgktIChnZXRWYWx1ZXMucG0pOiBzb21lIHZhcmlhYmxlcyB3ZXJlIGdsb2JhbCBhbmQgaGVuY2UgcGVyc2lzdGVudCBhbmQKCSAgd2VyZSBtZXNzaW5nIHRoaW5ncyB1cC4KCQoyMDAwLTA2LTAxIDE0OjQ4ICBoYXJkYWtlcgoKCS0gKHNubXBkLmMpOiBzdG9yZSBwZXJzaXN0ZW50IGRhdGEgaW1tZWRpYXRlbHkgYWZ0ZXIgaW5pdCdpbmcgdG8KCSAgZW5zdXJlIHdlIHVwZGF0ZSBjb3VudGVycyBhbmQgc3R1ZmYgdGhhdCBtdXN0IGNoYW5nZSAoZWcsIGVuZ2luZUJvb3RzKS4KCQoyMDAwLTA1LTMxIDE2OjIyICBoYXJkYWtlcgoKCS0gKHNubXBkLjEuZGVmKTogZGVzY3JpYmUgLUkuCgkKMjAwMC0wNS0zMSAxNTo1MiAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbWliX21vZHVsZXMuYywgbWliX21vZHVsZXMuaCwgc25tcGQuYyk6CgkgIC0gbmV3IC1JIHN3aXRjaCB0byBzbm1wZCB0byBkbyBkeW5hbWljIGRldGVybWluYXRvbiBvZiB3aGljaCBtaWIKCSAgICBtb2R1bGVzIHRvIGluaXRpYWxpemUgKGFuZCBoZW5jZSB3aGljaCBtaWIgdHJlZSBzZWN0aW9ucyB0byBzdXBwb3J0KS4KCQoyMDAwLTA1LTMxIDE1OjUwICBoYXJkYWtlcgoKCS0gKGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oKTogZGVmYXVsdCBzdG9yZSByb3V0aW5lcyBmb3Igdm9pZCBwb2ludGVycy4KCSAtIHdoaWNoIEkgaW1tZWRpYXRlbHkgZGVjaWRlZCB0byBkbyBzb21ldGhpbmcgZGlmZmVyZW50IGZvciB3aGF0IEkKCSAgIG9yaWdpbmFsbHkgaW1wbGVtZW50ZWQgaXQgZm9yLCBzbyBpdHMgbm90IGJlaW5nIHVzZWQgeWV0LgoJCjIwMDAtMDUtMzEgMDU6NTkgIGRhdmVzCgoJLSAobWliSUkvaXAuW2NoXSk6IEFsbG93IElQIHN1cHBvcnQgd2l0aG91dCB0aGUgQXQvaXBOZXRUb01lZGlhIG1vZHVsZQoJCjIwMDAtMDUtMzAgMTc6MTEgIGhhcmRha2VyCgoJLSAocHJveHkuYywgcHJveHkuaCk6IHNpbXBsZSBwcm94eSBzdXBwb3J0LgoJICAtIG1hcHMgb25lIG9pZCBpbnNpZGUgdGhlIGFnZW50IHRvIGEgcG9zc2libHktZGlmZmVyZW50IG9pZCBvbiBhIHRhcmdldC4KCSAgLSB1c2VzIHNubXBfcGFyc2VfYXJncygpIHNvIGl0IHRha2VzIHN0YW5kYXJkIGNvbW1hbmQgbGluZSBjb25maWcgb3B0aW9ucy4KCSAgLSBubyBzZXQgc3VwcG9ydC4KCSAgLSBubyBraWxsIC1IVVAgc3VwcG9ydC4KCSAgLSBubyBTTk1QdjMgc3VwcG9ydCAoc2lnaCkuCgkKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgoJZmlsZSBJQU5BLUxBTkdVQUdFLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgoJZmlsZSBJQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA1LTMwIDE1OjA2ICBuYmEKCglmaWxlIERJU01BTi1TQ0hFRFVMRS1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDUtMzAgMTU6MDYgIG5iYQoKCWZpbGUgQUdFTlRYLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wNS0zMCAwNzo0NyAgbXNsaWZjYWsKCglGaXggcHJvYmxlbSBpZGVudGlmaWVkIGJ5IFYuIEdyZW5ldCA6IG5ldyBtZXRob2Qgc25tcF9vaWRfbWluX2NvbXBhcmUKCQoyMDAwLTA1LTMwIDAxOjMxICBuYmEKCglmaWxlIG1pYmZldGNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDUtMzAgMDE6MzEgIG5iYQoKCWZpbGUgc21pc3RyaXAgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wNS0zMCAwMTozMSAgbmJhCgoJZmlsZSBNYWtlZmlsZS5taWIgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wNS0yNiAwOToyNCAgZGF2ZXMKCgktIChtaWJJSS9zeXNPUlRhYmxlLmMgbWliSUkvc3lzdGVtX21pYi5jKToKCSAgLSBVc2UgbmV3IHRpbWUgdXRpbGl0eSByb3V0aW5lcyB0byBzaW1wbGlmeSBwcm9jZXNzaW5nCgkgIC0gVXBkYXRlIHN5c09STGFzdENoYW5nZSB3aGVuIGFkZGluZy9yZW1vdmluZyBlbnRyaWVzCgkKMjAwMC0wNS0yNiAwOToyMyAgZGF2ZXMKCgktICh1dGlsX2Z1bmNzLltjaF0pOiBOZXcgdGltZS1kaWZmIHV0aWxpdHkgcm91dGluZXMKCQoyMDAwLTA1LTI2IDA4OjQ2ICBkYXZlcwoKCS0gKHNubXBkLmMgc25tcF9hZ2VudC5jIG1pYklJL3Zhcl9yb3V0ZS5jKTogVXNlICdtaWJpbmNsLmgnIGhlYWRlcgoJCjIwMDAtMDUtMjYgMDc6NDggIGRhdmVzCgoJLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBhZ2VudHgvY2xpZW50LltjaF0KCSAgIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jIGFnZW50eC9zdWJhZ2VudC5jKToKCSAgIC0gU3VwcG9ydCBmb3IgTUlCIHJlZ2lvbiB0aW1lb3V0cwoJCjIwMDAtMDUtMjYgMDc6NDYgIGRhdmVzCgoJLSAoc25tcC5oIHNubXBfYXBpLmMgc25tcF9jbGllbnQuYyk6IFN1cHBvcnQgZm9yIHBlci1yZXF1ZXN0IHRpbWVvdXQgaGFuZGxpbmcKCQoyMDAwLTA1LTI2IDA3OjQ1ICBkYXZlcwoKCS0gKGFnZW50eC9wcm90b2NvbC5jKTogTWlub3IgZXJyb3IgaW4gQWdlbnRYIHBhY2tldCBkdW1wCgkKMjAwMC0wNS0yNSAxMDowNyAgaGFyZGFrZXIKCgktIChtZW1vcnkuYyk6IFBhdGNoIGZyb20gUmFnbmFyIEtq+HJzdGFkOgoJICAtIGZpeGVkIGxpbnV4IHByb2JsZW06IHdyb25nIHBhcmFtcyBnZXR0aW5nIHJldHVybmVkLgoJCjIwMDAtMDUtMjUgMDU6MzggIG1zbGlmY2FrCgoJRml4IHVzZSBvZiBiaW4yYXNjIHRvIG5vdCBhbHdheXMgc2hvdyAic3RyaW5nIjsgdXNlIHNubXBfb2lkX2NvbXBhcmUsIHRvby4KCVNlZSBidWcgIzIzNCBmb3IgZGV0YWlscy4KCQoyMDAwLTA1LTI1IDAzOjM5ICBkYXZlcwoKCS0gKG1pYklJL2ludGVyZmFjZXMuYyk6IENvbnNvbGlkYXRlIGhlYWRlciBoYW5kbGluZy4KCQoyMDAwLTA1LTI1IDAzOjMxICBkYXZlcwoKCS0gKG1pYklJL2ludGVyZmFjZXMuYyk6IENvcnJlY3QgY29uZnVzaW5nIGNvbW1lbnQKCQoyMDAwLTA1LTI1IDAxOjUzICBkYXZlcwoKCS0gKGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBSZXBsYWNlIHVzZSBvZiAnY3V0JyB3aXRoIGVxdWl2YWxlbnQgJ3NlZCcgY2FsbHMKCQoyMDAwLTA1LTI1IDAxOjMwICBkYXZlcwoKCS0gKGNvbmZpZ3VyZS5pbiBhY2xvY2FsLm00IGNvbmZpZ3VyZSk6CgkgIC0gRGlyZWN0IGNlcnRhaW4gY2hlY2tzIHRvIHRoZSBhcHByb3ByaWF0ZSBmaWxlIGRlc2NyaXB0b3IgKHNlZSBCVUcjMjQ3KQoJCjIwMDAtMDUtMjIgMTY6MjIgIGhhcmRha2VyCgoJLSAoYXBwcy8uY3ZzaWdub3JlKTogYWRkIG1vcmUgc3R1ZmYgdG8gaWdub3JlLgoJCjIwMDAtMDUtMjIgMTY6MjEgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaCwgc25tcGJ1bGtnZXQuYywKCSAgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZGYuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAoJICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsCgkgIHNubXB1c20uYywgc25tcHZhY20uYywgc25tcHdhbGsuYywgTWFrZWZpbGUuaW4sIHNubXBfcGFyc2VfYXJncy5jLAoJICBzbm1wX3BhcnNlX2FyZ3MuaCk6CgkgIC0gbW92ZWQgc25tcF9wYXJzZV9hcmdzIHRvIHRoZSBsaWJyYXJ5LCBhcyBJIHByb21pc2VkIHRvIGRvIGFnZXMgYWdvLgoJICAgIC0gbm8gbG9uZ2VyIGNhbGxzIHVzYWdlKCkgZGlyZWN0bHksIGJ1dCByZXR1cm5zIC0xIGlmIHlvdSBzaG91bGQuCgkKMjAwMC0wNS0yMiAwNTo0NyAgZGF2ZXMKCgktIChzbm1wbGliL3Rvb2xzLltjaF0pOiBSb3V0aW5lIGZvciBjb21wYXJpbmcgdHdvIG1hcmtlcnMuCgkKMjAwMC0wNS0yMiAwNTo0MiAgZGF2ZXMKCgktIChsb2NhbC9taWIyYyk6IEdlbmVyYXRlIG11bHRpcGxlIHRhYmxlcyBpbiBvbmUgY29kZSBmaWxlCgkKMjAwMC0wNS0xNyAxMDoyOCAgaGFyZGFrZXIKCgktICh2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgsIHZhY20uYywgdmFjbS5oKTogUGF0Y2ggZnJvbSBBcm5lIE9lc2xlYm9lOgoJICAtIHdyaXRhYmxlIHZhY20gbWliIHN1cHBvcnQuCgkgIC0gb3RoZXIgbWlzYyB2YWNtIGZpeGVzLgoJCjIwMDAtMDUtMTcgMTA6MjYgIGhhcmRha2VyCgoJLSAoc25tcHVzbS5jKTogUGF0Y2ggZnJvbSBBcm5lIE9lc2xlYm9lOgoJICAtIERvbid0IHNlZ2ZhdWx0IG9uIGFuIHVua25vd24gY29tbWFuZCwgaW5zdGVhZCBwcmludCBhIHdhcm5pbmcuLgoJCjIwMDAtMDUtMTcgMTA6MjUgIGhhcmRha2VyCgoJLSAoc25tcHZhY20uYyk6IFBhdGNoIGZyb20gQXJuZSBPZXNsZWJvZToKCSAgLSBhZGRlZCBhIG5ldyBjb21tYW5kOiBzbm1wdmFjbS4KCQoyMDAwLTA1LTE3IDA5OjI1ICBoYXJkYWtlcgoKCS0gKGFnZW50X3JlYWRfY29uZmlnLmMpOiBtZW50aW9uIHRoZSBwb3J0IG51bWJlciBvbiB0aGUgdHJhcHNpbmsgaGVscCBsaW5lLgoJCjIwMDAtMDUtMTcgMDk6MjAgIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkLmMpOiB1c2Ugc3RhbmRhcmRpemVkIGJ1ZmZlciBzaXplcwoJCjIwMDAtMDUtMTcgMDk6MTMgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfbG9nLmMsIHNubXB0cmFwZC44KTogUGF0Y2ggZnJvbQoJICBKZWZmIENvdXJzOgoJICAtIGN1c3RvbWl6ZWQgZm9ybWF0dGluZyBvZiB0cmFwIG91dHB1dC4KCQoyMDAwLTA1LTE3IDA5OjExICBoYXJkYWtlcgoKCS0gKFJFQURNRSk6IGFkZCBKZWZmIGFuZCBBcm5lLgoJCjIwMDAtMDUtMTcgMDg6MTUgIGhhcmRha2VyCgoJLSAobWliLmMpOiAqY29ycmVjdGx5KiBhc3NvY2lhdGUgZXNjYXBlUXVvdGVzIHdpdGggdGhlIHJpZ2h0IGRlZmF1bHRfc3RvcmUgYm9vbC4KCQoyMDAwLTA1LTE3IDA4OjExICBoYXJkYWtlcgoKCS0gKHNubXAuY29uZi41LmRlZik6IGRvY3VtZW50IGVzY2FwZVF1b3Rlcy4KCQoyMDAwLTA1LTE3IDA4OjA5ICBoYXJkYWtlcgoKCS0gKHNubXBjbWQuMSwgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6IG5ldyBvcHRpb24gLU9FOgoJICAtIHNoZWxsIGJhY2tzbGFzaCBlc2NhcGUgcXVvdGF0aW9ucyBtYXJrcyBmb3IgY3V0dGluZyBhbmQgcGFzdGluZwoJICAgIG9udG8gYW5vdGhlciBzbm1wIGNvbW1hbmQgbGluZS4KCQoyMDAwLTA1LTE1IDA5OjI0ICBkYXZlcwoKCS0gKG1pYklJL3tpcCxpY21wLHRjcCx1ZHAsa2VybmVsX2xpbnV4fS5bY2hdKToKCSAgLSAgUHVsbCBMaW51eCBNSUItSUkgc3RhdGlzdGljcyBnYXRoZXJpbmcgaW50byBhIHNpbmdsZSByb3V0aW5lLgoJICAtICBDYWNoZSBNSUItSUkgc3RhdGlzdGljcyBvbiBhbGwgYXJjaGl0ZWN0dXJlcy4KCQoyMDAwLTA1LTE1IDA4OjUzICBoYXJkYWtlcgoKCS0gKHVjZF9zbm1wLmgsIHZtc3RhdF9ic2RpNC5jLCB2bXN0YXRfYnNkaTQuaCk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKCSAgLSB2bXN0YXQgc3VwcG9ydCBmb3IgYnNkaTQuCgkKMjAwMC0wNS0xNSAwMzowNiAgZGF2ZXMKCgktIChzbm1wX2FnZW50LmMpOiBSZS1yZW1vdmUgcmVkdW5kYW50IFBEVSBjbG9uZQoJCShJdCByZWFwcGVhcmVkIGR1cmluZyBhIHJlY2VudCBjaGFuZ2UpCgkKMjAwMC0wNS0xNSAwMzowMCAgZGF2ZXMKCgktIChhZ2VudF9yZWdpc3RyeS5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6IEltcGxlbWVudCBtaXNzaW5nIHJvdXRpbmUgJ3VucmVnaXN0ZXJfbWliX2NvbnRleHQnCgkKCS0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnRfaW5kZXguW2NoXSk6IE1vdmUgJ2ZkJyByZWdpc3RyeSBoYW5kbGluZyBiYWNrIHRvIGFnZW50X3JlZ2lzdHJ5CgkKCS0gKGFnZW50eC9jbGllbnQuYyk6IFJlY29nbmlzZSBuZXcgY29kZSBmaWxlIGZvciBpbmRleCBoYW5kbGluZwoJCjIwMDAtMDUtMTIgMTA6MTUgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogVW0sIGRlZmF1bHQgdG8gcG9ydCAxNjEuICBPcHBzLgoJCjIwMDAtMDUtMTIgMDk6MDAgIGRhdmVzCgoJLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSB2YXJfc3RydWN0LmggYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKCSAgLSBQcmVwYXJhdGlvbiBmb3IgcGVyLU1JQiByZWdpb24gdGltZW91dCwgYW5kIGNvbnRleHQgc3VwcG9ydAoJCjIwMDAtMDUtMTIgMDg6NDUgIGRhdmVzCgoJLSAoa2VybmVsX3N1bm9zNS5jKTogUmVjb2duaXNlIFNvbGFyaXMgQVRNIExBTiBFbXVsYXRpb24gaW50ZXJmYWNlcwoJCVRoYW5rcyB0byBKYXkgWW91bmcKCQoyMDAwLTA1LTEyIDA4OjEzICBkYXZlcwoKCS0gKGFnZW50X2luZGV4LltjaF0gYWdlbnRfcmVnaXN0cnkuW2NoXSBNYWtlZmlsZS5pbiBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgoJICAtIFNwbGl0IGluZGV4IGhhbmRsaW5nIG91dCBmcm9tIHRoZSBNSUIgcmVnaXN0cnkuCgkKMjAwMC0wNS0xMiAwNzowMiAgZGF2ZXMKCgktIChrZXJuZWxfc3Vub3M1LmMpOiBBZGQgc3VwcG9ydCBmb3IgcmVjb2duaXNpbmcgUXVhZEZhc3RFdGhlciBpbnRlcmZhY2UKCQoyMDAwLTA1LTEyIDA2OjU3ICBkYXZlcwoKCS0gKGFwcHMvc25tcHRhYmxlLmMpOiBGaXggcHJvYmxlbSB3aXRoIG1pc3Npbmcgc2VwYXJhdG9yICh3aXRoIC1DaSAtQ2YpCgkJVGhhbmtzIHRvIFhhdmllciBGT1VSTkVUCgkKMjAwMC0wNS0xMiAwNDowMiAgZGF2ZXMKCgktIChzbm1wX2FnZW50LmMpOiBSZW1vdmUgcmVkdW5kYW50IFBEVSBjbG9uZQoJCUknbSBzdXJlIHRoaXMgd2FzIHB1dCBpbiBmb3IgYSByZWFzb24sIGJ1dCBJIGNhbid0IHJlbWVtYmVyIHdoYXQuCgkJSXQgZG9lc24ndCBzZWVtIHRvIGJlIG5lZWRlZCBub3csIGFuZCBqdXN0IGxlYWtzIG1lbW9yeS4KCQlIZXJlJ3MgaG9waW5nLi4uLi4KCQoyMDAwLTA1LTEyIDAzOjExICBkYXZlcwoKCS0gKGFnZW50L3NubXBkLmMpOiBDYXRjaCAoYW5kIGlnbm9yZSkgU0lHUElQRSBzaWduYWxzLgoJCURpc2FwcGVhcmluZyBzdWJhZ2VudHMgdGhlcmVmb3IgYXBwZWFyIGFzIG5vcm1hbCBJL08gZmFpbHVyZXMKCQoyMDAwLTA1LTEyIDAyOjI0ICBkYXZlcwoKCS0gKGFnZW50eC9wcm90b2NvbC5jKToKCSAgLSBJbXBsZW1lbnQgb3BhcXVlLWVuY29kZWQgZmxvYXQgJiBkb3VibGUgdHlwZXMKCSAgLSBCcmluZyBwYWNrZXQgZHVtcCBpbiBsaW5lIHdpdGggdGhlIG1haW4gbGlicmFyeSBzdHlsZQoJICAtIEFkZCBwYWNrZXQgZHVtcCBjYXBhYmlsaXR5IGZvciBvdXRnb2luZyBQRFVzCgkKMjAwMC0wNS0xMCAxNjo1MiAgaGFyZGFrZXIKCgktIChzbm1wZC4xLmRlZik6IGRvY3VtZW50IC1wLgoJCjIwMDAtMDUtMTAgMTY6NDMgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogYWx3YXlzIHVzZSB0aGUgZGVmYXVsdCB0cmFuc3BvcnQgbWFwcGluZywgbm90IHRoZSBsYXN0IG9uZS4KCQoyMDAwLTA1LTEwIDE2OjI1ICBoYXJkYWtlcgoKCS0gKGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcGQuYyk6IGltcGxlbWVudCBtdWx0aXBsZSB0cmFuc3BvcnQKCSAgbWFwcGluZ3MgdmlhIC1wIFt0cmFuc3BvcnQ6XXBvcnRbQGFkZHJlc3NdLgoJCjIwMDAtMDUtMTAgMTE6MDggIG1zbGlmY2FrCgoJZml4IHVkcHN0YXQgLS0+IHRjcHN0YXQKCQoyMDAwLTA1LTEwIDA3OjU5ICBkYXZlcwoKCS0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdCwgYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKCSAgLSBIYW5kbGUgc3ViYWdlbnQgZGlzYXBwZWFyaW5nIHdpdGhvdXQgd2FybmluZwoJCjIwMDAtMDUtMTAgMDc6NTcgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jIHNubXBsaWIvc25tcF9hcGkuaCk6CgkgIC0gUHJvdmlkZSBhIG1lY2hhbmlzbSB0byBoYW5kbGUgYXN5bmNocm9ub3VzIHNlbmQgZmFpbHVyZXMuCgkKMjAwMC0wNS0xMCAwNjoxMyAgZGF2ZXMKCgktIChzbm1wX2FwaS5oKTogTG9naWNhbCBOT1Q/IEJpdHdpc2UgTk9UPyBXaG8nbGwgbm90aWNlIHRoZSBkaWZmZXJlbmNlIGFueXdheSEKCQoyMDAwLTA1LTEwIDA1OjM0ICBkYXZlcwoKCS0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogSGFuZGxlIG5vbi1yZXNwb25zaXZlIHN1YmFnZW50cwoJCjIwMDAtMDUtMTAgMDU6MzMgIGRhdmVzCgoJLSAoYWdlbnRfcmVnaXN0cnkuYyBtaWJJSS9zeXNPUlRhYmxlLmMpOiBEb24ndCBhc3N1bWUgc3Vic2Vzc2lvbiBsaW5rIGlzIHZhbGlkCgkKMjAwMC0wNS0xMCAwNToyOSAgZGF2ZXMKCgktIChzbm1wX2FwaS5oKTogRGVmaW5pdGlvbnMgZm9yIHNlc3Npb24gY2xvc2Vkb3duIGhhbmRsaW5nCgkKMjAwMC0wNS0wOSAxNDo0MiAgbXNsaWZjYWsKCglhbHNvIGNsZWFuIFdpbjMyIGJpbmFyeSBvYmplY3RzLCBhbmQgY29yZSBmaWxlcy4KCQoyMDAwLTA1LTA5IDE0OjM0ICBtc2xpZmNhawoKCXRvdWNoIHVwIHRoZSAiY2xlYW4iIHJ1bGUuCgkKMjAwMC0wNS0wOSAxMTozMiAgbXNsaWZjYWsKCgl1bnRpbCBEYXZlJ3MgdmVyc2lvbiB3aW5zLCBuZWVkIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUgdG8gYnVpbGQgV2luMzIgYWdlbnQuCgkKMjAwMC0wNS0wOSAxMTozMSAgbXNsaWZjYWsKCglmaXggc29tZSBXaW4zMiBidWlsZHMgKHNpZ25hbHM/IHdlIGRvbid0IG5lZWQgbm8gc3RlZW5raW5nIHNpZ25hbHMhKQoJCjIwMDAtMDUtMDkgMTE6MzAgIG1zbGlmY2FrCgoJUmVtb3ZlIHRyYWlsaW5nIENSIFsweDBkXSBmcm9tIG9uZSBsaW5lLgoJCjIwMDAtMDUtMDkgMDg6NTAgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUudG9wLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBmaXggbGluayB0aW1lIHByb2JsZW1zCgkgIHdpdGggYUNDIChvciBhbnkgb3RoZXIgdW5rbm93biBjb21waWxlcikuCgkKMjAwMC0wNS0wOSAwODo0NyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3AsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IGZpeCBsaW5rIHRpbWUgcHJvYmxlbXMKCSAgd2l0aCBhQ0MgKG9yIGFueSBvdGhlciB1bmtub3duIGNvbXBpbGVyKS4KCQoyMDAwLTA1LTA5IDA3OjQzICBkYXZlcwoKCS0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogU2VuZCBvdXQgcmUtZGVsZWdhdGVkIHJlcXVlc3RzCgkJKGFuZCBmaXggYSBwcm9ibGVtIHdpdGggc3BlY2lmeWluZyB0aGUgZW5kLW9mLXJhbmdlIHZhbHVlKQoJCjIwMDAtMDUtMDkgMDc6NDAgIGRhdmVzCgoJLSAoYWdlbnR4L3N1YmFnZW50LmMpOiBGaXggaGFuZGxpbmcgb2YgZXJyb3IgcmVzcG9uc2UgZ2VuZXJhdGlvbgoJCShieSBhbmFsb2d5IHdpdGggcmVjZW50IGNoYW5nZXMgdG8gc25tcF9hZ2VudC5jKQoJCjIwMDAtMDUtMDkgMDc6MzQgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5jKTogSGFuZGxlIEFnZW50WCAiZW5kLW9mLXJhbmdlIiBpbmRpY2F0aW9uLgoJCShUaGlzIGlzIG5vdCB0aGUgY2xlYW5lc3Qgd2F5IG9mIGRvaW5nIHRoaW5ncywKCQkgYnV0IHdvcmtzIGZvciBub3cuICBXZSBjYW4gdGlkeSB1cCBsYXRlcikuCgkKMjAwMC0wNS0wOSAwNzoxNiAgZGF2ZXMKCgktIChzbm1wX3ZhcnMuYyk6IFVzZSBNSUIgcmVnaXN0cnkgJ3N0YXJ0JyB2YWx1ZXMKCQkocmF0aGVyIHRoYW4gdGhlIG9yaWdpbmFsIG5hbWUgcmVnaXN0ZXJlZCkKCQlUaGlzIGhhbmRsZXMgc3Vic2VxdWVudCBwYXJ0IG9mICdzcGxpdCcgcmFuZ2VzIHByb3Blcmx5LgoJCjIwMDAtMDUtMDggMTE6MDggIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBJIGNhbid0IGJlbGlldmUgdGhlIGxhc3QgY2hlY2tpbiBldmVuIGNvbXBpbGVkIChsdWNrKS4KCQoyMDAwLTA1LTA4IDExOjAzICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogZml4IGxpYnJhcnkgbGlzdC4KCQoyMDAwLTA1LTA1IDA5OjU2ICBoYXJkYWtlcgoKCS0gKGRpc2tpby5jKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgoJICAtIGRpc2sgaW8gc3VwcG9ydCBmb3IgQlNEL09TLgoJCjIwMDAtMDUtMDUgMDk6NTQgIGhhcmRha2VyCgoJLSAoYXQuYyk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKCSAgLSBmaXggYSB6ZXJvIGJ5dGUgbWFsbG9jIGJ1ZyAobW9zdGx5IG5vdGljZWQgd2l0aCAtbGVmZW5jZSkuCgkKMjAwMC0wNS0wNSAwOTo0MyAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gQWxiZXJ0IENoaW4tQS1Zb3VuZzoKCSAgLSAtLXdpdGgtbGlid3JhcCBpbXByb3ZlbWVudHMuCgkKMjAwMC0wNS0wNSAwOTowMCAgZGF2ZXMKCgktIChhZ2VudHgvc3ViYWdlbnQuYyBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6CgkgIC0gU2lnbmlmaWNhbnQgaW1wcm92ZW1lbnRzIHRvIEFnZW50WCBwcm9jZXNzaW5nCgkJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA1LTA1IDA4OjU4ICBkYXZlcwoKCS0gKHNubXBsaWIvc25tcF9hcGkuW2NoXSBzbm1wbGliL3NubXBfY2xpZW50LmMgYWdlbnQvc25tcF9hZ2VudC5bY2hdKToKCSAgLSBNaW5vciBjaGFuZ2VzIHRvIGFzc2lzdCB3aXRoIEFnZW50WCBkZXZlbG9wbWVudAoJCShUaGVzZSBtYXkgbm90IGJlIGFic29sdXRlbHkgbmVjZXNzYXJ5LCBidXQgdGhleSBnZXQgdGhpbmdzIHdvcmtpbmcgYWdhaW4hKQoJCjIwMDAtMDUtMDQgMTY6MjEgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBtaW5vciB1bmltcG9ydGFudCAtLXdpdGhvdXQtb3BlbnNzbCBmaXguCgkKMjAwMC0wNS0wNCAxNjoxOSAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gSm9obiBMLiBWaWxsYWxvdm9zOgoJICAtIGFsbG93IC0td2l0aG91dC1vcGVuc3NsIHRvIHdvcmsuCgkKMjAwMC0wNS0wNCAxNjoxNSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IGFkZCB0aGUgRElTTUFOLVNDUklQVC1NSUIudHh0CgkKMjAwMC0wNS0wNCAxNjowMSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gQWxiZXJ0IENoaW4tQS1Zb3VuZzoKCSAgLSBpbnN0YWxsIFVDRC1ESVNLSU8tTUlCLnR4dC4KCQoyMDAwLTA1LTA0IDE1OjIxICBoYXJkYWtlcgoKCS0gKGRpc3BsYXl0YWJsZS5wbSwgbWFuYWdlci5wbSk6IG1ha2UgcHVyZHkgZ3JhcGhzIHdpdGggaGlzdG9yeSB0YWJsZXMuCgkKMjAwMC0wNS0wNCAwODoyNiAgZGF2ZXMKCgktIChzbm1wbGliL3NubXBfY2xpZW50LltjaF0pOiBOZXcgcm91dGluZSAnc25tcF9jbG9uZV92YXJiaW5kKCknCgkJCShGcm9tIGEgc3VnZ2VzdGlvbiBieSBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA1LTA0IDA4OjI0ICBkYXZlcwoKCS0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFZhcmlvdXMgbWlub3IgZml4ZXMKCQkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQoJCjIwMDAtMDUtMDQgMDE6MjkgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5bY2hdKTogSGFuZGxlIGluZGV4L3N0YXR1cyBpbmZvcm1hdGlvbiBzZXBhcmF0ZWx5IGZyb20gUERVLgoJCUFsc28gbWVhbnMgdGhhdCBkZWxlZ2F0ZWQgcmVxdWVzdHMgaGF2ZSBhY2Nlc3MgdG8gdmFyaWFibGUgaW5kZXhlcwoJCQkoQmFzZWQgb24gYSBzdWdnZXN0aW9uIGZyb20gUmVpbmVyIEJlbmluZ2EpCgkKMjAwMC0wNS0wNCAwMTowMCAgZGF2ZXMKCgktICh1Y2Qtc25tcC9wcm9jLmMpOiBJbml0aWFsaXplIG5ld2x5IG1hbGxvY2VkIHN0cnVjdHVyZQoJCShUaGFua3MgdG8gSmVmZiBXaWxzb24gLSBzZWUgQlVHICMyMzEpCgkKMjAwMC0wNS0wMyAwOTowNiAgZGF2ZXMKCgktIChzbm1wX2FnZW50LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKCSAgLSBDbG9uZSBQRFUgd2l0aGluIGluaXRfYWdlbnRfc25tcF9zZXNzaW9uLgoJICAgIE5ldyByb3V0aW5lICdmcmVlX2FnZW50X3NubXBfc2Vzc2lvbicKCQkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQoJCjIwMDAtMDUtMDMgMDg6MTcgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5jKTogV2hlbiByZXR1cm5pbmcgYW4gZXJyb3IgcmVzcG9uc2UsCgkJdXNlIGEgY2xlYW4gY29weSBvZiB0aGUgb3JpZ2luYWwgcmVxdWVzdCBQRFUuCgkKMjAwMC0wNS0wMyAwODoxNCAgZGF2ZXMKCgktIChzbm1wX2FnZW50LltjaF0pOiBSb3V0aW5lIHRvIGhhbmRsZSB2YXJpYWJsZXMgaW5kaXZpZHVhbGx5CgkJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA1LTAzIDA0OjM3ICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuYyk6IENoZWNrIGFjY2Vzc2liaWxpdHkgb2YgZXhhY3QgcmVxdWVzdHMgYmVmb3JlIHByb2Nlc3NpbmcKCQkoYW5kIHJlbW92ZSByZWR1bmRhbnQgJ2dlbmVyaWMnIFNFVCBoYW5kbGluZykKCQoyMDAwLTA1LTAyIDA5OjU2ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0pOiBsb3RzIG9mIHNtYWxsIGNoYW5nZXMuCgkKMjAwMC0wNS0wMSAxMTozNCAgbmJhCgoJLSBtaWIuYzogZml4IHByaW50aW5nIG9mIEJJVFMgdmFyaWFibGVzCgkKMjAwMC0wNS0wMSAwNjo1NSAgbWFyegoKCSBhcHBsaWVkIHBhdGNoIGZyb20gU3RldmUgUGhlcmFuIFNub2RncmFzcyB0byBmaXggaW5jb21wYXRpYmlsaXR5IHdpdGggcGVybDUuNiByZWYgc3RyaW5naWZpY2F0aW9uCgkKMjAwMC0wNC0yOSAwNzo0NiAgaGFyZGFrZXIKCgktIChjb25maWcuaC5pbiwgY29uZmlndXJlLmluLCBhZ2VudF9yZWdpc3RyeS5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgoJICAtIHVzZSBzaWdhY3Rpb24gd2hlbiBhdmFpbGFibGUuCgkKMjAwMC0wNC0yOCAxNjoyMiAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBmaXggLW0vLU0gdGhlIHdyb25nIHdheS4KCQoyMDAwLTA0LTI4IDE2OjE1ICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6CgkgLSBkbyBoaXN0b3J5IHNhdmluZyBiZXR0ZXIgKGRpZmZlcmVudCB0YWJsZSkuCgkgLSAtbS8tTSBtaWIgbG9hZGluZyBvcHRpb25zICh3aGljaCBkb24ndCBhcHBlYXIgdG8gYmUgd29ya2luZyByaWdodCB5ZXQpLgoJCjIwMDAtMDQtMjggMDc6MzYgIGhhcmRha2VyCgoJLSAoYWdlbnRfcmVnaXN0cnkuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSBmaXggc2lnbmFsIGhhbmRsaW5nLgoJCjIwMDAtMDQtMjcgMTQ6NTggIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIHNubXBkZi5jKTogaW1wbGVtZW50IGEgcmVtb3RlIGRmIGNvbW1hbmQgdmlhIHNubXAKCSAgLSAobmVlZHMgdGhlIGhvc3QgcmVzb3VyY2VzIG1pYiB3b3JraW5nIG9uIHRoZSByZW1vdGUgc3lzdGVtKS4KCQoyMDAwLTA0LTI3IDEwOjU3ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLnRvcCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcnBtIGlzIG5vdwoJICByZXF1aXJpbmcgeWV0IGFub3RoZXIgbGlicmFyeTogbGlicG9wdC4KCQoyMDAwLTA0LTI2IDE1OjIwICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLnRvcCk6IHJ1biBsaWJ0b29sIC0tZmluaXNoIHdpdGhvdXQgLW4gKGdvIGFoZWFkIGFuZCBkbyB0aGUgY21kcykKCQoyMDAwLTA0LTI2IDE1OjE5ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluKToKCSAgLSBtb3JlIGxpYnRvb2wgZml4ZXMgKC5zbyB2ZXJzaW9uaW5nLCBwcm9wZXJseSBpbnN0YWxsLi4uKQoJCjIwMDAtMDQtMjYgMTQ6MTggIGhhcmRha2VyCgoJLSAoKi8uY3ZzaWdub3JlLCAqL01ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwKCSAgY29uZmlndXJlLmluLCBsdGNvbmZpZywgbHRtYWluLnNoKToKCSAgLSB1c2UgbGlidG9vbCBmb3IgYnVpbGRpbmcuCgkgICAgLSBDZXJ0YWlubHksIEkgbXVzdCBoYXZlIGJyb2tlIHNvbWV0aGluZyBpbiB0aGUgcHJvY2Vzcy4gKG1ha2UgZGVwZW5kLCBlZykKCQoyMDAwLTA0LTI2IDE0OjE1ICBoYXJkYWtlcgoKCS0gKCovLmN2c2lnbm9yZSwgKi9NYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCgkgIGNvbmZpZ3VyZS5pbiwgbHRjb25maWcsIGx0bWFpbi5zaCk6CgkgIC0gdXNlIGxpYnRvb2wgZm9yIGJ1aWxkaW5nLgoJICAgIC0gQ2VydGFpbmx5LCBJIG11c3QgaGF2ZSBicm9rZSBzb21ldGhpbmcgaW4gdGhlIHByb2Nlc3MuIChtYWtlIGRlcGVuZCwgZWcpCgkKMjAwMC0wNC0yNiAwODoxMSAgaGFyZGFrZXIKCgktIChGQVEpOiBuZXcgc2Vjb25kYXJ5IHNsb2dhbi4KCQoyMDAwLTA0LTI2IDA3OjIyICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMsIHNubXB1c20uYyk6IEF0dGVtcHQgdG8gcGFyc2UgdGhlIFBEVSB3aGVuIGEgcmVwb3J0IGlzCgkgIGJlaW5nIHNlbnQgc28gdGhhdCB0aGUgcmVxdWVzdGlkIGNhbiBiZSB1c2VkIGluIHRoZSBvdXRnb2luZyByZXBvcnQuCgkgIFRoaXMgc2hvdWxkIGZpeCBhIHByb2JsZW0gd2hlcmUgU05NUCBSZXNlYXJjaCdzIEVtYW50ZSBhZ2VudCBpcwoJICBkb2luZyBlbmdpbmVJRCBkaXNjb3ZlcnkgcHJvYmVzIGJhc2VkIG9uIHRoZSByZXF1ZXN0X2lkICh3aGljaCBpcyBhCgkgIGZhaXJseSBwb29yIGNob2ljZSBhcyB0aGUgbWVzc2FnZV9pZCB3b3VsZCBiZSBhIGJldHRlciBvbmUgdG8gbWF0Y2gKCSAgb24gaW4gZ2VuZXJhbCBhbmQgaXMgdGhlIG9ubHkgcG9zc2libGUgdGhpbmcgdG8gdXNlIGluIGNhc2VzIHdoZXJlCgkgIHRoZSByZXBvcnQgaXMgZW5jcnlwdGVkKS4KCQoyMDAwLTA0LTI1IDEzOjA4ICBoYXJkYWtlcgoKCS0gKEZBUSk6IG1lbnRpb24gdGhhdCB0aGUgcGVybCBtb2R1bGUgaXMgaW5jbHVkZWQgd2l0aCB0aGUgc291cmNlLgoJCjIwMDAtMDQtMjUgMDg6MjQgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYyk6IG1pc2MgLURkdW1wIGZpeGVzLgoJCjIwMDAtMDQtMjUgMDg6MDIgIGhhcmRha2VyCgoJLSAoc25tcHRhYmxlLmMpOiBjaGVjayBmb3IgZW5kIG9mIG1pYiB2aWV3IGV4Y2VwdGlvbnMgKHYyYywgdjMpLgoJCjIwMDAtMDQtMjQgMTE6MjcgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYyk6IC1EIHN1cHBvcnQgZm9yIHRob3NlICJvbGRlciIgcHJvdG9jb2xzIHRoYXQgc2hvdWxkbid0CgkgIGJlIHVzZWQgYW55bW9yZSAodjEsIHYyYykuCgkKMjAwMC0wNC0yNCAxMDozNiAgaGFyZGFrZXIKCgktIChhc24xLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIHNubXAuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsCgkgIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oLCBzbm1wdXNtLmMpOgoJICAtIHRpbWVzdGFtcHMgY2FuIGJlIHByaW50ZWQgYXMgYSBudW1lcmljIG51bWJlciBvbmx5ICgtT3QpLgoJICAtIG1vcmUgY29uZmlndXJhYmxlIHBhY2tldCBkdW1waW5nIGNvZGUgZm9yIGJvdGggc2VuZCBhbmQgcmVjZWl2ZS4KCSAgICAtIHVzZXMgbmV3IC1EIHRva2VuczogZHVtcGggKGhlYWRlcnMpLCBkdW1weCAoaGV4KSwgZHVtcHYKCSAgICAgICh2YWx1ZXMpLiAgZHVtcHhfIGFuZCBkdW1wdl8gKG5vdGUgdGhlIF9zKSBtYWtlIGl0IGVhdCBzcGFjZQoJICAgICAgKGFuZCBuZXdsaW5lKSBiZWZvcmUgdGhlIHNlZ21lbnQgaW4gcXVlc3Rpb24uICBUcnkgLURkdW1wIHRoZW4KCSAgICAgIC1EZHVtcGgsZHVtcHZfIHRvIHNlZSBleGFtcGxlcy4KCSAgICAtIHRvZG86CgkgICAgICAtIGJldHRlciBob3Jpem9udGFsbHkgZm9ybWF0ZWQgaW5mb3JtYXRpb24gKHByb2JhYmx5IHVzaW5nICIlTlVNcyIpLgoJICAgICAgLSBVU00gaXMgY2FsbGVkIGFmdGVyIHBkdSBidWlsZGluZyAobWFrZXMgc2Vuc2UgYnV0IGlzIGJhY2t3YXJkcwoJICAgICAgICB2aXN1YWxseSBpbiB0aGUgZHVtcGVkIHBhY2tldCkuCgkgICAgICAtIG9wdGlvbiB0byBzdHJpcCBkYXRhdHlwZSB0b2tlbiAoaWUgSW50ZWdlcjopLgoJCjIwMDAtMDQtMjQgMDk6MzcgIGhhcmRha2VyCgoJLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIucHJlMCApCgkKMjAwMC0wNC0yNCAwOToxMyAgaGFyZGFrZXIKCgktICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIEVYVC40LjIucHJlMCApCgkKMjAwMC0wNC0yMSAxNDoxMyAgaGFyZGFrZXIKCgktIChzbm1wd2Fsay5jKTogZml4IEdFVCBjYWxsIGZvciBhbiBzbm1wd2Fsay4gKHdhcyB1c2luZyBhIEdFVE5FWFQgUERVLCBhY2spLgoJCjIwMDAtMDQtMjEgMTA6NDEgIGhhcmRha2VyCgoJLSAoc25tcHYzLmMpOiBtb3JlIHVfbG9uZyAtPiBzaXplX3QgZm9yIGVuZ2luZUlEIGxlbi4KCQoyMDAwLTA0LTIxIDA4OjE4ICBoYXJkYWtlcgoKCS0gKG1pYi5jKTogZml4IGZwcmludF9kZXNjcmlwdGlvbiB0byBjaGVjayBmb3IgbnVsbCBzdWJ0cmVlcy4KCQoyMDAwLTA0LTIxIDA4OjE3ICBoYXJkYWtlcgoKCS0gKHNubXB2My5jLCBzbm1wdjMuaCk6IHVzZSBzaXplX3QgZm9yIGVuZ2luZWlkIGxlbmd0aHMuCgkKMjAwMC0wNC0xOSAxMTowMiAgbWFyegoKCWNoYW5nZWQgbW9kZV90IHR5cGVkZWYgdG8gYWdyZWUgd2l0aCB3aGF0IEFjdGl2ZVN0YXRlIHBlcmwgdXNlcyAoYW55b25lIGhhdmUgYSBwcm9ibGVtIHdpdGggdGhpcz8pCgkKMjAwMC0wNC0xOSAxMDo1OSAgbWFyegoKCWFkZGVkIE1hcmMgTGVobWFuIHBhdGNoIHRvIGVuc3VyZSBhbGxvYy9kZWFsbG9jIHVzZSBzYW1lIG1lY2hhbmlzbSAocGVybCB2cy4gc3lzdGVtIGRlZmF1bHQpCgkKMjAwMC0wNC0xOSAwODoyNiAgaGFyZGFrZXIKCgktIChzbm1wX2FnZW50LmMpOiBhZ2VudF9jaGVja19hbmRfcHJvY2VzcygpIGFsd2F5cyBibG9jayBpZiBjYWxsZXIgcmVxdWVzdGVkIGl0LgoJCjIwMDAtMDQtMTkgMDQ6MzQgIG1zbGlmY2FrCgoJbW92ZSBzdGF0aWMgZGVjbCB0byAuYzttaW5vciBjYXN0aW5nIGFib3V0IHRvIHN1cHBvcnQgYUNDCgkKMjAwMC0wNC0xOCAxMToxMSAgbXNsaWZjYWsKCglTeW5jaCBkZXZlbCBicmFuY2ggd2l0aCBwYXRjaGVzIGJyYW5jaC4KCQoyMDAwLTA0LTE4IDExOjA3ICBtc2xpZmNhawoKCURlZmluZSBvcHRhcmcgZm9yIGFwcHMgdXNlOyBEZWZpbmUgdmFjbV9pc19jb25maWd1cmVkIGZvciBhZ2VudCB1c2UuCgkKMjAwMC0wNC0xOCAwNzo1NyAgaGFyZGFrZXIKCgktICh2bXN0YXQuYywgdm1zdGF0LmgsIFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE1penVraSBIb25kYToKCSAgLSBpbXBsZW1lbnQgcmF3IGNwdSB1c2FnZSBudW1iZXJzLgoJCjIwMDAtMDQtMTggMDM6MTggIGRhdmVzCgoJLSAobWFuL3NubXB0YWJsZS4xIGFwcHMvc25tcHRhYmxlLmMpOgoJICAtIENvbW1hbmQtc3BlY2lmaWMgJy1DJyBvcHRpb25zIGZvciBzbm1wdGFibGUKCQoyMDAwLTA0LTE4IDAyOjAxICBkYXZlcwoKCS0gKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMpOiBIYW5kbGUgcHJldmlvdXMgZm9ybSBvZiAtWiBvcHRpb24gYXMgd2VsbAoJCjIwMDAtMDQtMTcgMTU6MzYgIGhhcmRha2VyCgoJLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBmaXggLVogaWYgYXJncyBhcmUgd3JvbmcuCgkKMjAwMC0wNC0xNyAxNTozMiAgaGFyZGFrZXIKCgktIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGNtZC4xKTogZml4IC1aIHRvIHVzZSBhICcsJy4KCQoyMDAwLTA0LTE3IDE1OjA2ICBoYXJkYWtlcgoKCS0gKG10YV9zZW5kbWFpbC5jLCBtdGFfc2VuZG1haWwuaCk6IFBhdGNoIGZyb20gQ2hyaXN0b3BoIE1hbW1pdHpzY2g6CgkgIC0gdXBkYXRlIG9uIHRoZSBzZW5kbWFpbCBtb2R1bGUuCgkKMjAwMC0wNC0xNyAxNTowMCAgaGFyZGFrZXIKCgktICh2bXN0YXQuYyk6IFBhdGNoIGZyb20gSm9obiBMLiBWaWxsYWxvdm9zOgoJICAtIGZpeCBzc0NwdVN5c3RlbSwgc3NDcHVVc2VyLCBzc0NwdUlkbGUuCgkKMjAwMC0wNC0xNyAxNDoxOCAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3AsIE1ha2VmaWxlLmluKTogcHJvcGVybHkgdXNlIExOX1MgZm9yIGxpbmtpbmcgc25tcGluZm9ybS4KCQoyMDAwLTA0LTE3IDEzOjQ1ICBoYXJkYWtlcgoKCS0gKHNubXB1c20uYywgc25tcHYzLmMsIHNubXB2My5oKTogZW5naW5lSUQgY2hhbmdlcyBmb3IgYmV0dGVyIGFDQyBzdXBwb3J0LgoJCjIwMDAtMDQtMTcgMTM6NDQgIGhhcmRha2VyCgoJLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSBzbm1waW5mb3JtLgoJCjIwMDAtMDQtMTcgMDk6NTggIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogZml4IHJvdyBjcmVhdGlvbi4KCQoyMDAwLTA0LTE3IDA3OjI1ICBkYXZlcwoKCS0gKGF1dG9fbmxpc3QuYyBzbm1wZC5jIGFnZW50eC9tYXN0ZXIuYyk6IERvbid0IGV4aXQgb24gZmFpbHVyZSB3aXRoICctcicKCQoyMDAwLTA0LTE0IDE1OjA3ICBoYXJkYWtlcgoKCS0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAoJICBzbm1wc3RhdHVzLmMsIHNubXBjbWQuMSwgc25tcGdldC4xLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKToKCSAgLSBtb3ZlIC1JZiB0byAtQ2YgYW5kIGludmVydCBiZWhhdmlvdXIuCgkKMjAwMC0wNC0xNCAxNTowNiAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSBkZWJ1Z2dpbmcgb3V0cHV0IChvcHBzKS4KCQoyMDAwLTA0LTE0IDA5OjAzICBoYXJkYWtlcgoKCS0gKHZlcnNpb2luZm8uYyk6IGFscmlnaHQuICBXaG8gbWFkZSB2ZXJzaW9uQ2xlYXJDYWNoZSBST05MWT8KCQoyMDAwLTA0LTEzIDA1OjQ5ICBuYmEKCgktIHNubXB0cmFuc2xhdGUuMTogZGVjdW1lbnQgdGhlIC13IHdpZHRoIG9wdGlvbgoJCjIwMDAtMDQtMTIgMTI6MDUgIG1zbGlmY2FrCgoJaGlkZSB1c2VyJ3MgaG9zdG5hbWU7IHByb21wdCBiZWZvcmUgc2VuZGluZyBlLW1haWw7IHByb21wdCB0byBzYXZlIGFzIGZpbGUuCgkKMjAwMC0wNC0xMiAxMToyMiAgbXNsaWZjYWsKCglmaXggJWYoJXMpCgkKMjAwMC0wNC0xMiAwOToyOSAgaGFyZGFrZXIKCgktIChzbm1wY21kLjEpOiBkb2N1bWVudCAtSWYuCgkKMjAwMC0wNC0xMiAwOToxNyAgaGFyZGFrZXIKCgktIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHB1dCArKyBiYWNrIGluIHRoYXQgYWNjaWRlbnRpY2FsbHkgZ290IGNoZWNrZWQgaW4uCgkKMjAwMC0wNC0xMiAwOToxNiAgaGFyZGFrZXIKCgktIChzbm1wc2V0LmMpOiBwdXQgc3BhY2UgYmFjayBpbiB1c2FnZSBsaW5lLgoJCjIwMDAtMDQtMTIgMDk6MTIgIGhhcmRha2VyCgoJLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCgkgIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKToKCSAgLSBBZGQgYSBuZXcgb3B0aW9uIC1JZiB0byBzcGVjaWZ5IGZpeGluZyBvZiBQRFVzLgoJICAgIC0gQW55b25lIGtub3cgYSBiZXR0ZXIgcGxhY2UgdG8gcHV0IHRoaXMgb3B0aW9uPwoJICAtIEFwcGxpY2F0aW9ucyBkb24ndCBkbyB0aGlzIGJ5IGRlZmF1bHQgYW55bW9yZSwgYW5kIHlvdSBjYW4ndCBpbiBzbm1wc2V0LgoJCjIwMDAtMDQtMTIgMDc6MzggIGhhcmRha2VyCgoJLSAodmFjbV92YXJzLmMsIHZhY20uYywgdmFjbS5oKTogZml4IHRvIGFsbG93IG5vIHYxL3YyYyByZXF1ZXN0cyB3aGVuCgkgIGNvbmZpZ3VyZWQgZm9yIGp1c3QgdjMuCgkKMjAwMC0wNC0xMiAwNjo1MCAgbXNsaWZjYWsKCglmaXggTVNWQyBidWlsZCBmb3IgZW5jb2RlX2tleWNoYW5nZSwgYW5kIGFkZCBtb3JlIHN5bWJvbHMgZm9yIHJlbGVhc2UgYnVpbGRzCgkKMjAwMC0wNC0xMiAwNTozMiAgbmJhCgoJLSBwYXJzZS5jOiBjb3JyZWN0IHBhcnNpbmcgb2Ygc3ViLXR5cGVzIHRleHR1YWwgY29udmVudGlvbnMuIEFsbG93IHBhcnNpbmcKCQlvZiBNQUNSTyBpbnZvY2F0aW9ucyBmb3Igc3RhbmRhcmQgc3ltYm9scwoJCjIwMDAtMDQtMTIgMDU6MzEgIG5iYQoKCS0gcGFyc2UuW2NoXSwgc25tcHRyYW5zbGF0ZS5jOiBhbGxvdyBzcGVjaWZpY2F0aW9uIG9mIHdpdGggZm9yIC1UcAoJCjIwMDAtMDQtMTIgMDU6MzAgIG5iYQoKCS0gSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgSE9TVC1SRVNPVVJDRVMtVFlQRVMudHh0OiBhbGlnbiB3aXRoIHB1Ymxpc2hlZAoJCVJGQyAyNzkwCgkKMjAwMC0wNC0xMSAxNTozMyAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IG1ha2UgY29uZmlnX2FkZF9taWIoKSBhY3R1YWxseSBsb29rIGZvcgoJICB0aGUgbWliIGluICRzcmNkaXIvbWlicy9ibGFoIGFuZCBpbnN0YWxsIGl0IGlmIGZvdW5kLgoJCjIwMDAtMDQtMTEgMTU6MjEgIGhhcmRha2VyCgoJLSAoc25tcHYzLmMsIHNubXB2My5oKTogbWFrZSBtYWNhZGRyIGVuZ2luZWlkIHNldHVwIG5vdCBsaW51eAoJICBzcGVjaWZpYywgYnV0ICNkZWZpbmVzIGFyZSBjaGVja2VkIGluc3RlYWQuCgkKMjAwMC0wNC0xMSAxNToyMCAgaGFyZGFrZXIKCgktIChzbm1wX2xvZ2dpbmcuaCk6IHJlbW92ZSBvbGQgY2FsbGJhY2sgdHlwZWRlZiBubyBsb25nZXIgbmVlZGVkLgoJCjIwMDAtMDQtMTEgMTQ6MzggIGhhcmRha2VyCgoJLSAoc25tcHYzLmMsIHNubXB2My5oKTogUGF0Y2ggZnJvbSBKb2huIEwuIFZpbGxhbG92b3M6CgkgIC0gZW5hYmxlIGVuZ2luZUlEIHRvIGJlIHNldCBmcm9tIE1BQ0FkZHIuCgkKMjAwMC0wNC0xMSAwOTo1MSAgaGFyZGFrZXIKCgktIChtdGFfc2VuZG1haWwuYywgbXRhX3NlbmRtYWlsLmgpOiBOZXcgbW9kdWxlIGZyb20gQ2hyaXN0b3BoIE1hbW1pdHpzY2g6CgkgIC0gaW1wbGVtZW50cyB0aGUgTVRBLU1JQiBmb3IgbW9uaXRvcmluZyBzZW5kbWFpbC4KCQoyMDAwLTA0LTExIDA5OjUwICBoYXJkYWtlcgoKCS0gKE1UQS1NSUIudHh0LCBORVRXT1JLLVNFUlZJQ0VTLU1JQi50eHQpOiBuZXcgbWlicyBmb3IgbmV3IG1vZHVsZXMuCgkKMjAwMC0wNC0xMSAwMzoyNSAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBTYXZlL3Jlc3RvcmUgb3JpZ2luYWwgc3RhdFAgdmFsdWUgZm9yIFNFVCBoYW5kbGluZy4KCQoyMDAwLTA0LTExIDAyOjM1ICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IFJlcG9ydCBmYWlsdXJlcyBmcm9tIEFDVElPTiBwaGFzZSBvZiBTRVQgY29ycmVjdGx5LgoJCjIwMDAtMDQtMTEgMDE6NTcgIGRhdmVzCgoJLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBEeW5hbWljYWxseSByZXNpemUgc3ViYWdlbnQgcmVxdWVzdHMKCQkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQoJCjIwMDAtMDQtMTAgMDU6MDggIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5jIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRml4IG11bHRpLXN1YmFnZW50IHJlcXVlc3RzCgkJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA0LTA3IDEyOjI1ICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwLmMsIHNubXB1c20uYyk6CgkgIC0gZml4IHNubXB2MyB0cmFwcyB0byBiZSBhdXRob3JpdGF0aXZlIGZyb20gdGhlIGNsaWVudCBzaWRlLCBub3QgdGhlCgkgICAgcmVjZWl2ZXIgc2lkZS4gIHNubXB2MyBpbmZvcm1zIHN0YXkgYXMgaXMuICBVbmZvcnR1bmF0ZWx5LCBmb3IKCSAgICBjb21tYW5kIGxpbmUgYXBwcyB0aGlzIGRvZXNuJ3QgbWFrZSBhIHdob2xlIGxvdCBvZiBzZW5zZSBidXQgaXMKCSAgICByaWdodCBpbiB0ZXJtcyBvZiBob3cgdGhlIHByb3RvY29sIHdvcmtzIGFuZCB0aGlzIGlzIGhlbmNlCgkgICAgc29tZXdoYXQgb2YgYSBoYWNrLgoJCjIwMDAtMDQtMDcgMDc6NTAgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogSGFuZGxlIHYyIGV4Y2VwdGlvbiB0eXBlcyBpbiB2MSBxdWVyaWVzCgkKMjAwMC0wNC0wNyAwNzoxNiAgaGFyZGFrZXIKCgktIChzbm1wdHJhcGQuYywgcmVhZF9jb25maWcuYywgc25tcHYzLmMpOgoJICAtIGFsbG93IE5VTEwgaGVscCBsaW5lcyBmb3IgY29uZmlnIGRpcmVjdGl2ZXMgYW5kIHVzZSBpdCB0byBoaWRlCgkgICAgaW50ZXJuYWwgZGlyZWN0aXZlcyB1c2VkIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UuCgkKMjAwMC0wNC0wNiAxNTozMSAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKCSAgLSB0dXJuIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG1hY3JvcyBiYWNrIGludG8gZnVuY3Rpb25zIHNvCgkgICAgZGVmYXVsdF9zdG9yZS5oIGRlcGVuZGVuY2llcyBnbyBhd2F5IGFnYWluLgoJICAtIGNyZWF0ZSBhIGZsYWcgdG8gbm90IHByb2JlIGZvciBlbmdpbmVJRHMgZHVybmluZyBzZXNzX29wZW4oKS4KCQoyMDAwLTA0LTA2IDA3OjIwICBkYXZlcwoKCS0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEZpeCBtaXNoYW5kbGVkIENvdW50ZXI2NCBwYXJzaW5nCgkKMjAwMC0wNC0wNiAwMzozNiAgZGF2ZXMKCgktIChhZ2VudC9zbm1wZC5jKTogRml4IHVzYWdlIG1lc3NhZ2UgYWxpZ25tZW50LgoJCjIwMDAtMDQtMDYgMDM6MzEgIGRhdmVzCgoJLSAobWFuL3NubXBkLjEuZGVmKTogRG9jdW1lbnQgdGhlIEFnZW50WCBzb2NrZXQgY29tbWFuZC1saW5lIG9wdGlvbgoJCjIwMDAtMDQtMDUgMDg6NDEgIGhhcmRha2VyCgoJLSAoRkFRMkhUTUwpOiBpdCdzIGJlZW4gc2l0dGluZyBpbiBteSBwZXJzb25hbCBzcmMgdHJlZSBmb3IgPiAyIHllYXJzLgoJCjIwMDAtMDQtMDUgMDg6MzggIGhhcmRha2VyCgoJLSAobWliaW5jbC5oLCB1c21Vc2VyLmMsIHNubXB0cmFwZC5jLCBsY2RfdGltZS5jLCBzY2FwaS5jLCBzbm1wX2FwaS5jLAoJICBzbm1wdXNtLmMsIHNubXB1c20uaCwgc25tcHYzLmMpOgoJICAtIG1ha2Ugc25tcHRyYXBkIGhhbmRsZSB2MyB1c2VycyBwcm9wZXJseSwgKGFuZCBzaHV0ZG93biBwcm9wZXJseSBhcyB3ZWxsKS4KCSAgLSBhIG1vcmUgZ2VuZXJpYyB1c2VyIHN0b3JhZ2Ugcm91dGluZSBhZGRlZCB0byBzbm1wdXNtLmMgYW5kIHVzZWQgaW4KCSAgICB1c21Vc2VyLmMgd2l0aCBhIHNpZGUgZWZmZWN0IG9mIG5lZWRpbmcgY2FsbGJhY2suaCBhYm92ZSBzbm1wdXNtLmguCgkKMjAwMC0wNC0wNSAwODoyNyAgaGFyZGFrZXIKCgktIChyc25tcCk6IC0+IC91c3IvYmluL3BlcmwKCQoyMDAwLTA0LTA1IDA4OjI0ICBoYXJkYWtlcgoKCS0gKC5jdnNpZ25vcmUpOiBtaXNjIG1pbm9yIGFkZGl0aW9ucyB0byAvCgkKMjAwMC0wNC0wNCAxMTowMyAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBFbnN1cmUgdW5pbXBsZW1lbnRlZCBvYmplY3RzIHJldHVybiAnbm9TdWNoT2JqZWN0JwoJCjIwMDAtMDQtMDMgMTQ6NTcgIG1zbGlmY2FrCgoJSW5pdGlhbGl6ZSBzdGF0UC4KCQoyMDAwLTA0LTAzIDA5OjEyICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEVuc3VyZSBhIHYxIFNFVCByZXR1cm5zIGEgdjEgZXJyb3Igc3RhdHVzLgoJCjIwMDAtMDQtMDMgMDg6MzIgIGhhcmRha2VyCgoJLSAoQ2hhbmdlTG9nKTogWWVhciB3YXMgIjEwMCIgZm9yIDIwMDAgKG5vdGljZWQgYnkgSmF5IFJpZGRlbGwpOgoJCjIwMDAtMDQtMDMgMDc6NTMgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRW5zdXJlIFNFVHMgZmFpbCBpZiBvbmUgdmFyYmluZCBkb2VzLgoJCjIwMDAtMDMtMzEgMDc6MjUgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggdG8gcmVwb3J0ICdub1N1Y2hPYmplY3QnIGluIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcwoJCjIwMDAtMDMtMzEgMDc6MTMgIGRhdmVzCgoJLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogRG9uJ3QgcmVwZWF0IHRoZSBmaXJzdCBmb3VyIGJ5dGVzIGluIGEgUERVIGR1bXAKCQoyMDAwLTAzLTMxIDA3OjA0ICBkYXZlcwoKCS0gKHNubXBsaWIvc25tcF9sb2dnaW5nLmMpOiBIYW5kbGUgbG9nZ2luZyBlbXB0eSBzdHJpbmdzIChlLmcuIGEgbnVsbCBpbmRlbnQpCgkKMjAwMC0wMy0zMCAwMDoxNSAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBJbml0aWFsaXNlIHRpbWVvdXQgc3RydWN0dXJlIHByb3Blcmx5CgkJKFRoYW5rcyB0byBhc2hpcG1hbkBlcmdncm91cC5jb20pCgkKMjAwMC0wMy0yNyAxMDozMiAgbXNsaWZjYWsKCglyZW1vdmUgdHJhaWxpbmcgbmV3bGluZSBmcm9tIGhyU1dSdW5OYW1lIHZhbHVlcy4KCQoyMDAwLTAzLTI0IDA5OjA5ICBtc2xpZmNhawoKCXRvIHN5bmMgd2l0aCBwYXRjaGVzIGJyYW5jaC4KCQoyMDAwLTAzLTI0IDA1OjA3ICBuYmEKCgktIHNubXB0cmFwZC5jOiBjb3JyZWN0bHkgZnJlZSB0aGUgcmVwb25zZSBpZiBzZW5kaW5nIGl0IGZhaWxzCgkKMjAwMC0wMy0yNCAwNDoyMiAgbXNsaWZjYWsKCgl4eF9zeW5jaF9yZXNwb25zZTogYXZvaWQgZnJlZWluZyBQRFUgdHdpY2UuCgkKMjAwMC0wMy0yMyAyMzoyOSAgbmJhCgoJLSBzbm1wY21kLjEsIHNubXB0cmFwLjEsIHNubXB0cmFwLmMsIE1ha2VmaWxlLmluOiBJbnN0YWxsIGFuZCBkb2N1bWVudAoJCXNubXBpbmZvcm0uCgkKMjAwMC0wMy0yMyAwOTo1OCAgbXNsaWZjYWsKCglFbnF1ZXVlIG9ubHkgY29tcGxldGUgcmVxdWVzdF9saXN0IGVudHJ5OyBSZWR1Y2Ugc2NvcGluZyBvZiBjYWxsYmFjayB2YXJzLgoJCjIwMDAtMDMtMjMgMDM6MDIgIG5iYQoKCWZpbGUgc25tcGluZm9ybS4xIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDMtMjIgMDg6MTMgIG1zbGlmY2FrCgoJcHJpbnRmID8KCQoyMDAwLTAzLTIxIDExOjEyICBtc2xpZmNhawoKCW1vZGlmeSBGLiBTdHJhdXNzJyBwYXRjaCBwZXIgTi4gQmFnZ2VzZW4ncyBzdWdnZXN0aW9uOiByZW1vdmUgZXhwb3J0LWR5bmFtaWMuCgkKMjAwMC0wMy0yMSAwOToxNCAgbXNsaWZjYWsKCgltb3JlIHNtb290aCBzYWlsaW5nIHdpdGggV2luMzIgLkRMTCAuIERMTEVYUE9SVCwgYW55b25lID8KCQoyMDAwLTAzLTIxIDA5OjA3ICBtc2xpZmNhawoKCXdpbjMyIGJ1aWxkIGNoZWNrOiBubyBzaWdhY3Rpb24sIFNJR0NMRCBkZWZpbmVkLgoJCjIwMDAtMDMtMjEgMDg6NDcgIGRhdmVzCgoJLSAoZHNfYWdlbnQuaCBzbm1wZC5jIG1pYmdyb3VwL2FnZW50eC97bWFzdGVyLHN1YmFnZW50fS5jKToKCSAgLSAgQ29tbWFuZC1saW5lIG9wdGlvbiBmb3Igc3BlY2lmeWluZyBBZ2VudFggcG9ydAoJICAgICAoYmFzZWQgb24gcGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzKQoJCjIwMDAtMDMtMjEgMDg6MzggIGRhdmVzCgoJLSAoc25tcF9hcGkuYyk6IFN1cHBvcnQgJ2hvc3Q6cG9ydCcgcmVwcmVzZW50YXRpb24gb2YgcGVlcm5hbWVzCgkKMjAwMC0wMy0yMSAwNDowNSAgZGF2ZXMKCgktIChzbm1wX2FnZW50LmMpOiBNaXNzaW5nIG5ldy1saW5lIG9uIGRlYnVnIG91dHB1dAoJCjIwMDAtMDMtMjEgMDI6NTIgIGRhdmVzCgoJLSAobWliSUkve3RjcCx1ZHAsaXAsaWNtcH0qKSBDb250aW51aW5nIG1pYklJIGNvZGUgY2xlYW51cAoJCjIwMDAtMDMtMjAgMTE6MTQgIG1zbGlmY2FrCgoJQ29tbWVudCAtQyAtLSBkbyBub3QgdXNlIHRoaXMgZmxhZy4KCQoyMDAwLTAzLTE3IDE1OjMyICBoYXJkYWtlcgoKCS0gKGhlYWRlcl9jb21wbGV4LmMpOiBzaXplb2YoeCkqKGxlbisxKSBub3Qgc2l6ZW9mKHgpKmxlbisxCgkKMjAwMC0wMy0xNiAwMDoxMCAgbmJhCgoJLSBjb25maWd1cmUsIGhyX3ByaW50LmM6IGRldGVjdCBzeXN0ZW0gcHJpbnRlcnMgKFN5c1YvbHBzdGF0LCAqQlNEL2NnZXRuZXh0LAoJCUxpbnV4L3ByaW50Y2FwKQoJCjIwMDAtMDMtMTUgMTg6MzAgIG1zbGlmY2FrCgoJU2Vjb25kIHBhcnQgOiBhbGwgbWVtYmVycyBvZiBzdHJ1Y3Qgc25tcF9pbmRleCBhcmUgcG9pbnRlcnMuCgkKMjAwMC0wMy0xNSAxNTowNyAgbXNsaWZjYWsKCglGaXggbWVtb3J5IGxlYWsgd2l0aCB1bnJlZ2lzdGVyX2luZGV4LgoJCjIwMDAtMDMtMTUgMTU6MDcgIG1zbGlmY2FrCgoJRml4IG1lbW9yeSBsZWFrIHdoZW4gY2xlYW5pbmcgdXAgdHJhcCB2YXJpYWJsZXMuCgkKMjAwMC0wMy0xNSAwODo0OCAgZGF2ZXMKCgktIChzbm1wX2FwaS5jIHNubXBfY2xpZW50LmMpOiBJbml0aWFsaXNlIHZhcmJpbmQgZGF0YSBob29rIGVsc2V3aGVyZSBhcyB3ZWxsLgoJCjIwMDAtMDMtMTUgMDc6NTcgIGRhdmVzCgoJLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggaW5maW5pdGUgbG9vcCBwcm9ibGVtIHdoZW4gd2Fsa2luZyBzdWJhZ2VudC4KCQoyMDAwLTAzLTE1IDA2OjA5ICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEF2b2lkIGNhbGxpbmcgcmVhZCByb3V0aW5lIGZvciBlYWNoIFNFVCBoYW5kbGluZyBwYXNzLgoJCU4uQjogIFRoaXMgaGFzbid0IGJlZW4gdGVzdGVkIHdpdGggQWdlbnRYIHN1YmFnZW50cyB5ZXQKCQoyMDAwLTAzLTE1IDA2OjA3ICBkYXZlcwoKCS0gKHNubXBsaWIvc25tcF9hcGkuW2NoXSk6IFByb3ZpZGUgaG9vayBmb3IgaW50ZXJuYWwgdmFyYmluZC1yZWxhdGVkIGRhdGEKCQoyMDAwLTAzLTE1IDA1OjIyICBkYXZlcwoKCS0gKGFnZW50L3Zhcl9zdHJ1Y3QuaCk6IFVzZSBhIHNpbmdsZSBtYWdpYyBudW1iZXIgZm9yIE1JQiByZWdpc3RyeSBuYW1lIGxlbmd0aHMuCgkKMjAwMC0wMy0xNSAwMTo1MSAgZGF2ZXMKCgktIChzbm1wbGliL3N5c3RlbS5oKTogRG9uJ3QgZGVjbGFyZSBnZXR0aW1lb2ZkYXkoKSBpZiB0aGUgc3lzdGVtIHByb3ZpZGVzIGl0LgoJCShGaXggcHJvdmlkZWQgYnkgUm9uIE1ldmlzc2VuKQoJCjIwMDAtMDMtMTQgMDc6NTcgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRG9uJ3Qgb3ZlcndyaXRlIHNhdmVkIHN0YXR1cyB3aGVuIGNoZWNraW5nIGFjY2Vzcy4KCQoyMDAwLTAzLTE0IDA3OjUyICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IFJldHVybiBhIHJlc3BvbnNlLCBldmVuIGlmIHRoZSByZXF1ZXN0IGZhaWxlZC4KCQoyMDAwLTAzLTEzIDE1OjMyICBuYmEKCgktIGlwZndhY2MuaDogZml4IHRoZSBNSUIgbmFtZQoJCjIwMDAtMDMtMTAgMTI6NDggIGhhcmRha2VyCgoJLSAoY29uZmlndXJlKTogYXV0b2NvbmYgcnVuCgkKMjAwMC0wMy0xMCAxMTowOSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5kbG1vZCk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSBkbG1vZCBidWlsZCBNYWtlZmlsZSBleGFtcGxlLiAgTmVlZHMgaW5jb3JwZXJhdGlvbiB3aXRoIG1haW4gY29uZmlndXJlLgoJCjIwMDAtMDMtMTAgMTE6MDIgIGhhcmRha2VyCgoJLSAoYWdlbnRfcmVnaXN0cnkuYyk6IGJldHRlciBzaWduYWwgY2hlY2sgZnJvbSBNaWNoYWVsIFNsaWZjYWsKCQoyMDAwLTAzLTEwIDEwOjU5ICBoYXJkYWtlcgoKCS0gKFVDRC1ETE1PRC1NSUIudHh0KTogdHlwbyBmb3VuZCBieSBNaWNoYWVsIFNsaWZjYWsuCgkKMjAwMC0wMy0xMCAxMDo1NCAgaGFyZGFrZXIKCgktIChkbG1vZC5jLCBkbG1vZC5oLCBzbm1wZC5jb25mLjUuZGVmLCBVQ0QtRExNT0QtTUlCLnR4dCk6IFBhdGNoIGZyb20KCSAgRnJhbmsgU3RyYXVzczoKCSAgLSBSZWltcGxlbWVudGF0aW9uIG9mIHRoZSBkbG1vZCBtaWIgbW9kdWxlOgoJICAgIG8gbWliZ3JvdXAvbWlzYy9kbG1vZCArIGRsbW9kcy9kbG1vZF9taWIgLT4gbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QKCSAgICBvIGZpeGVkIHJlZ2lzdHJhdGlvbiAodWNkYXZpcy51Y2RFeHBlcmltZW50YWwuMTQgaW5zdGVhZCBvZiB1Y2RhdmlzLjE0KQoJICAgIG8gYWRkZWQgY29uZmlndXJlIHN0dWZmIGZvciBIQVZFX1NOUFJJTlRGLCB3aGljaCB3YXMgdXNlZCBieSBkbG1vZC5jCgkgICAgbyByZW1vdmVkIGBfZHluYW1pY18nIHByZWZpeGVzIGZyb20gaW5pdC9kZWluaXQgZnVuY3Rpb25zCgkgICAgbyBtYWRlIGRsbW9kSW5kZXggbm90LWFjY2Vzc2libGUgKG9ubHkgaW1wbGVtZW50YXRpb24sIG5vdCBkZWZpbml0aW9uKQoJICAgIG8gcmVtb3ZlZCB0aGUgYXNuX3BhcnNlX1hYWCBzdHVmZgoJICAgIG8gbWFkZSBlbnRyaWVzIHdpdGggc3RhdGUgYGVycm9yJyBhYmxlIHRvIGFjY2VwdCBzdGF0ZSBgbG9hZCcKCSAgICBvIG1hZGUgdGhlIHdvbWJhdCBleGFtcGxlIHVzYWJsZSBhcyBzdGF0aWMgYW5kIGR5bmFtaWMgbW9kdWxlCgkgICAgbyBhZGRlZCBzaW1wbGUgY29uZmlnX3BhcnNlIGZ1bmN0aW9uYWxpdHkgdG8gdGhlIHdvbWJhdCBleGFtcGxlCgkKMjAwMC0wMy0xMCAxMDo1MiAgaGFyZGFrZXIKCgktIChhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgoJICAtIHNpZ25hbCByZWdpc3RyeSBzeXN0ZW0gaW1wbGVtZW50ZWQgKG5lZWRzIHRvIGJlIHJlZG9uZSBhbGxvd2luZwoJICAgIG11bHRpcGxlIGNhbGxiYWNrcyBhbmQgaGFuZGxlcnMgZm9yIGFsbCBzaWduYWxzKS4KCSAgLSBhcmJpdHJhcnkgZmlsZSBkZXNjcmlwdG9yL3NvY2tldCByZWdpc3RyYXRpb24uCgkgICAgLSB0aGlzIGlzIG5vdCB0aGUgd2F5IGl0IHNob3VsZCBiZSBkb25lICh1c2Ugc2Vzc2lvbnMgaW5zdGVhZCkuCgkKMjAwMC0wMy0xMCAxMDo0NCAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLAoJICBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOgoJICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CgkgIC0gY2xlYW4gdXAgc2hhcmVkIGxpYnJhcnkgdXNhZ2UuCgkKMjAwMC0wMy0xMCAxMDoxNiAgaGFyZGFrZXIKCgktIChjb25maWcuaC5pbik6IGF1dG9oZWFkZXIgcmUtYXJyYW5nZWQgc29tZSBzdHVmZi4KCQoyMDAwLTAzLTA3IDExOjU4ICBtc2xpZmNhawoKCW1vcmUgdG91Y2h1cHMgdG8gYWxsb3cgVW5peFdhcmUgYnVpbGQgdG8gY29tcGxldGUuCgkKMjAwMC0wMy0wNyAxMToyMSAgaGFyZGFrZXIKCgktIChkZWZhdWx0X3N0b3JlLmgpOiBtYWtlIE1BWF9TVUJJRFMgbGFyZ2VyIGFuZCBhIG11bHRpcGxlIG9mIDguCgkKMjAwMC0wMy0wNyAxMDoxMyAgbXNsaWZjYWsKCglJbnRyb2R1Y2UgLS1lbmFibGUtbWluaS1hZ2VudCB0byBjb25maWd1cmUgYWdlbnQgKHNubXB2Mywgbm8gbWliSUkgaW50ZXJmYWNlcykuCgkKMjAwMC0wMy0wNyAwOTowMyAgbXNsaWZjYWsKCglhc3N1bWUgInNubXBhcHAiIGlmIG5vIGFyZyBwYXNzZWQgdG8gaW5pdF9zbm1wdjMuCgkKMjAwMC0wMy0wNyAwODo1OCAgbXNsaWZjYWsKCglyZW1vdmUgaW5pdF9taWIoKSBjYWxsIC0gbm90IGFwcHJvcHJpYXRlIGhlcmUuCgkKMjAwMC0wMy0wNyAwODozNSAgbXNsaWZjYWsKCglMZXQgdGhlIGFpeDQgcGF0Y2ggd29yay4KCQoyMDAwLTAzLTA3IDA3OjA4ICBtc2xpZmNhawoKCXRyaW0gZmF0IGZyb20gcmVjZW50IGNoZWNrLWlucy4KCQoyMDAwLTAzLTA2IDIwOjAxICBtc2xpZmNhawoKCWNsZWFuZWQgdXAgU0NPIFVuaXhXYXJlIGJ1aWxkLgoJCjIwMDAtMDMtMDYgMTY6NDAgIG1zbGlmY2FrCgoJc3RhcnQgc3VwcG9ydCBmb3IgU0NPIFVuaXhXYXJlIDUgYXMgc3ZyNS4KCQoyMDAwLTAzLTA2IDEwOjU2ICBoYXJkYWtlcgoKCS0gKGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgoJICAtIGRvbid0IGNoZWNrIHJhbmdlcyBpZiBub3QgcmVxdWVzdGVkLgoJCjIwMDAtMDMtMDYgMTA6NTUgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsIHNubXBkLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKCSAgLSBmaXggZXhpdCgpaW5nIGJlaGF2aW91ciBpbiB0aGUgbGlidWNkYWdlbnQgbGlicmFyeS4KCQoyMDAwLTAzLTA2IDEwOjM2ICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CgkgIC0gLW4gcHJpbnRzIG51bWVyaWMgSVAgYWRkcnMuCgkKMjAwMC0wMy0wNiAxMDoyNSAgaGFyZGFrZXIKCgktIChjYWxsYmFjay5oLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOiBJZGVhIGZyb20gYXNoaXBtYW5AZXJnZ3JvdXAuY29tOgoJICAtIGNhbGxiYWNrIGZ1bmN0aW9uICh1c2luZyBjYWxsYmFjay5oKSBhZGRlZCBmb3IgZXh0ZXJuYWwgbG9nZ2luZy4KCQoyMDAwLTAzLTA1IDA1OjI1ICBtYXJ6CgoJZml4IHRvIHByZXNlcnZlIHRyYWlsaW5nIG11bHRpIGNvbXBvbmVudCBpbnN0YW5jZSBpZCdzIGF0IHRoZSBlbmQgb2YKCXN5bWJvbGljIG1pYiBuYW1lcyhlLmcuLCBmb28uNi43KSB3aGVuIGRvaW5nIHRyYW5zbGF0ZU9iai4KCQoyMDAwLTAzLTA0IDExOjM0ICBuYmEKCgktIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOiBzdXBwb3J0IC0td2l0aG91dC1vcGVuc3NsLCBldmVuIGlmIE9wZW5TU0wKCQlpcyBhdmFpbGFibGUKCQoyMDAwLTAzLTA0IDExOjMwICBuYmEKCgktIGFnZW50Lyh2YXJpb3VzKTogZ2xvYmFsaXplIHRoZSBrdm1fdCAqa2QgdmFyaWFibGUKCQoyMDAwLTAzLTA0IDExOjI2ICBuYmEKCgktIG1pYl9tb2R1bGVzLmMsIGhyX3N0b3JhZ2UuYzogcHJlLXByb2Nlc3NvciAjIHNob3VsZCBiZSBpbiBjb2x1bW4gMQoJCjIwMDAtMDMtMDQgMTE6MTcgIG5iYQoKCS0gaW5ldC5jLCBpbmV0Ni5jOiBzdXJ2aXZlIC12IDJjIGV4Y2VwdGlvbiByZXBsaWVzCgkKMjAwMC0wMy0wNCAxMToxNyAgbmJhCgoJLSBzbm1wX2FwaS5jOiByZW1vdmUgYSBzdXBlcmZsdW91cyAmIGluIGZyb250IG9mIGFuIGFycmF5CgkKMjAwMC0wMy0wNCAxMToxNSAgbmJhCgoJLSB1Y2Rfc25tcC5oLCB7bWVtb3J5LHZtc3RhdH1fbmV0YnNkMS5bY2hdOiBzdXBwb3J0IGZvciBOZXRCU0QKCQoyMDAwLTAzLTA0IDExOjE0ICBuYmEKCgktIGhyX2Rpc2suYzogZml4ZXMgZm9yIE5ldEJTRAoJCjIwMDAtMDMtMDQgMTE6MTAgIG5iYQoKCS0gdmVyc2lvbmluZm8uYzogZG9uJ3QgcmV0dXJuIHRoZSB0cmFpbGluZyBuZXdsaW5lCgkKMjAwMC0wMy0wNCAxMTowOCAgbmJhCgoJLSBocl9zd3J1bi5jOiBmaXggcHJvY2VzcyBzaXplIGZvciBGcmVlQlNEIDMgYW5kIE5ldEJTRAoJCjIwMDAtMDMtMDQgMTE6MDUgIG5iYQoKCS0gYWdlbnRfdHJhcC5oOiBmaXggYSB3cm9uZyBwcm90b3R5cGUKCQoyMDAwLTAzLTA0IDExOjA0ICBuYmEKCgktIHNubXB0YWJsZS5jOiBmaXggcHJvYmxlbXMgcHJpbnRpbmcgdGFibGUgbmFtZSBhbmQgaGVhZGVycyB3aGVuIHVzaW5nCgkJLU9TIGZvcm1hdAoJCjIwMDAtMDMtMDIgMTE6NTAgIG5iYQoKCS0gc25tcF9hcGkuYzogZml4IGFkZHJlc3MgbGVuZ3RoIGluZm8gZm9yIHRjcCBjb25uZWN0CgkKMjAwMC0wMy0wMiAxMTo0OCAgbmJhCgoJLSBsb2FkYXZlLmM6IGZpeCBmb3IgQUlYIDQKCQoyMDAwLTAzLTAyIDA4OjMwICBkYXZlcwoKCS0gKG1pYjIvaXAuW2NoXSBtaWIyL2lwQWRkci5bY2hdKTogRmlyc3Qgc3RhYiBhdCB0aWR5aW5nIHVwIG1pYjIgc3VwcG9ydC4KCQoyMDAwLTAzLTAxIDEzOjIzICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6IGZpeCBkeW5hbWljIHRhYmxlIHRlc3RpbmcgZm9yIGNyZWF0aW9uIG5lZWRlZC4KCQoyMDAwLTAzLTAxIDEzOjIyICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0sIHVjZC1zbm1wLnBtKTogT3Bwcy4gIFdyb25nIG5hbWUuICB1Y2Qtc25tcC5wbSAtPiBtYW5hZ2VyLnBtLgoJCjIwMDAtMDMtMDEgMTM6MjEgIGhhcmRha2VyCgoJLSAodWNkLXNubXAucG0pOiB0dXJuZWQgc3FsdG9odG1sIGludG8gYW4gYXBhY2hlIG1vZHVsZS4gMnggc3BlZWQgaW1wcm92ZW1lbnQuCgkKMjAwMC0wMy0wMSAwODozMiAgbXNsaWZjYWsKCglmaXggYnVnIDE4MCBmb3IgY3lnd2luIGJ1aWxkIHdpdGggX1JFRU5UUkFOVDsgcGVyIGFzaGlwbWFuQGVyZ2dyb3VwLmNvbQoJCjIwMDAtMDItMjkgMTQ6MzAgIG1zbGlmY2FrCgoJSW52b2tlIHNubXBfc2Vzc19zZW5kIGZyb20gd2l0aGluIHNubXBfcmVhZCB0byBhdm9pZCBtdXRleCBkZWFkbG9ja3MuCgkKMjAwMC0wMi0yOCAxNDoyNSAgbmJhCgoJLSBzbm1wZC5oLCBzbXV4LmM6IGRvbid0IGluaXRpYWxpemUgc211eCBtYXN0ZXIgaW4gc3ViIGFnZW50CgkKMjAwMC0wMi0yOCAxNDoxNiAgbmJhCgoJLSBzbm1wX3ZhcnMuYzogdXNlIFNVQl9BR0VOVCBzeW1ib2wKCQoyMDAwLTAyLTI4IDE0OjEyICBuYmEKCgktIG1pYi5jOiBzcHJpbnRfYnlfdHlwZSBzaG91bGQgaGFuZGxlIEFTTl9CSVRfU1RSCgkKMjAwMC0wMi0yOCAxNDoxMCAgbmJhCgoJLSBzbm1wX3BhcnNlX2FyZ3MuYzogY29ycmVjdGx5IGNhbGwgdGhlIC1JIG9wdGlvbnMgaW5wdXQgb3B0aW9ucwoJCjIwMDAtMDItMjggMTA6NDcgIG1zbGlmY2FrCgoJZml4IGJ1ZyAjMTc2IChBSVggNCAtIHVzZSBrbmxpc3QgaW4gbGlldSBvZiBubGlzdCkKCQoyMDAwLTAyLTI0IDE3OjE3ICBtc2xpZmNhawoKCWFwcGx5IHBhdGNoIHRvIGZpeCBidWcgbm8uIDE3Ny4KCQoyMDAwLTAyLTI0IDEzOjMxICBoYXJkYWtlcgoKCS0gKGRlZmF1bHRfc3RvcmUuaCwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6IG5ldyBzbm1wLmNvbmYga2V5d29yZAoJICB0byBmb3JjZSB0aGUgcGFyc2VyIHRvIGlnbm9yZSB1bmtub3duIHRva2Vucy4KCQoyMDAwLTAyLTI0IDAzOjU5ICBtc2xpZmNhawoKCWRvY3VtZW50IFVOU0lHTkVEMzIgYW5kIENPVU5URVIzMiAoJ3UnIGFuZCAnYycpIGluIHNubXBzZXQgKGdyYXRpcyBhc2hpcG1hbkBlcmdncm91cC5jb20pCgkKMjAwMC0wMi0yNCAwMzo1NiAgbXNsaWZjYWsKCglhZGQgc3VwcG9ydCBmb3IgQ09VTlRFUjMyIHRvIHNubXBfYWRkX3ZhcjsgZG9jdW1lbnQgVU5TSUdORUQzMiBhbmQgQ09VTlRFUjMyCgkoJ3UnIGFuZCAnYycpIGluIHNubXB0cmFwIChncmF0aXMgYXNoaXBtYW5AZXJnZ3JvdXAuY29tKQoJCjIwMDAtMDItMjMgMjM6MDYgIG5iYQoKCS0gcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzogZml4IHNldHRpbmcgb2Ygb2N0ZXQgc3RyaW5ncy4KCQoyMDAwLTAyLTIzIDAyOjA5ICBuYmEKCgktIG10X3N1cHBvcnQuaDogYSBiYWQgOyBpbiB0aGUgQysrIGJyYWNrZXRpbmcKCQoyMDAwLTAyLTIzIDAyOjA5ICBuYmEKCgktIHN5c3RlbS5jOiByZW1vdmUgc29tZSBzdXBlcmZsdW91cyBpbmRpcmVjdGlvbnMgaW4gc3RyY2FzZWNtcAoJCjIwMDAtMDItMjMgMDI6MDcgIG5iYQoKCS0gdm1zdGF0X3NvbGFyaXMuYzogbWFrZSBzdXJlIHdlIGFncmVlIHdpdGggdGhlIHByb3RvdHlwZSBvZiBnZXRwYWdlc2l6ZSEKCQoyMDAwLTAyLTIyIDE1OjMxICBuYmEKCgktIHBhc3NfcGVyc2lzdC5oOiBkZWNsYXJlIGluaXRfcGFzc19wZXJzaXN0CgkKMjAwMC0wMi0yMiAwOTo1NyAgbXNsaWZjYWsKCglwcnVuZSB0d28gbW9yZSBzeW1ib2xzIG5vdCB1c2VkIGJ5IGF1dG9fbmxpc3QgZm9yIFNvbGFyaXMtYnVpbHQgTUlCIG1vZHVsZXMuCgkKMjAwMC0wMi0yMSAxNjoxNyAgbXNsaWZjYWsKCglBcHBseSBSLiBTdG9yeSdzIHBhdGNoIGZvciBta2RpcmhpZXIgYW5kIHN0cm5jYXNlY21wIG9uIHdpbjMyCgkKMjAwMC0wMi0yMSAwNzozOSAgbXNsaWZjYWsKCglmaXggYnVnIDE3MSAodGhhbmtzIHRvIExhcnJ5IFBhcm1lbGVlKS4KCQoyMDAwLTAyLTIxIDA1OjU2ICBtc2xpZmNhawoKCXJlbW92ZSBmcmVlIGFmdGVyIHNubXBfY2xvc2UgKGRvbid0IGZyZWUgdHdpY2UhKQoJCjIwMDAtMDItMjEgMDQ6NTggIG1zbGlmY2FrCgoJQWRkZWQgZGVzY3JpcHRpb24gaW4gU0hfTkFNRSBmb3Igc2V2ZXJhbCBtYW4tcGFnZXMgKGMvbyByYWduYXJrKQoJCjIwMDAtMDItMTggMTI6MTQgIG1zbGlmY2FrCgoJcmVmZXIgdGhlIC5zbyBtYWNybyB0byBtYW4zOyBhZGp1c3QgTWFrZWZpbGUuaW4gdG8gdXNlIHRoZSByZW5hbWVkIGZpbGUuCgkKMjAwMC0wMi0xNyAwNToxNyAgbXNsaWZjYWsKCglpbmNsdWRlIHBhc3NfcGVyc2lzdCBpbiB0aGUgcmVxdWlyZWQgbGlzdC4KCQoyMDAwLTAyLTE3IDAyOjAwICBkYXZlcwoKCS0gKGNvbmZpZ3VyZSogdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMpOgoJICAtIFByb3ZpZGUgbWlzc2luZyAnZ2V0cGFnZXNpemUnIHJvdXRpbmUgZm9yIFNvbGFyaXMgMi40CgkgICAgKFRoYW5rcyB0byBSYWduYXIgS2r4cnN0YWQpCgkKMjAwMC0wMi0xNiAyMDoxNyAgbXNsaWZjYWsKCglpbmNsdWRlIG1pYmluY2wuaCBpbiBocl9zeXN0ZW0uYyB0byBmaXggYnVnICMxNTkuCgkKMjAwMC0wMi0xNiAxNjozNSAgbXNsaWZjYWsKCglyZW1vdmUgYXV0b19ubGlzdCBvZiB1bnVzZWQgInN3YXBsaXN0IiBzeW1ib2wuCgkKMjAwMC0wMi0xNiAxNToxNyAgbXNsaWZjYWsKCglwYXRjaCBzdWdnZXN0ZWQgYnkgUmljayBCZWFtYW4gPGJlYW1hbkBtZWRpYW9uZS5uZXQ+CgkKMjAwMC0wMi0xNiAxNDo1OCAgbXNsaWZjYWsKCglyZW1vdmUgdW51c2VkIHZhcnMKCQoyMDAwLTAyLTE2IDE0OjU3ICBtc2xpZmNhawoKCXRlc3QgbGVuZ3RocyBiZWZvcmUgYWxsb2NhdGluZyBtZW1vcnk7IHVzZSBuZXcgVkFDTVNUUklOR0xFTiBjb25zdGFudC4KCQoyMDAwLTAyLTE2IDA4OjE4ICBtc2xpZmNhawoKCWluY2x1ZGUgdGltZS5oIG9uY2UKCQoyMDAwLTAyLTE2IDA4OjAyICBtc2xpZmNhawoKCXJlc3RvcmUgI2lmIEhBVkUuLi5JTl9QQ0JfSAoJCjIwMDAtMDItMTUgMjM6NDcgIG5iYQoKCS0gY29uZmlndXJlLmluLCBpcGNoLltjaF06IGluaXRpYWwgc3RhYnMgYXQgTGludXggaXB2NiBzdXBwb3J0LiBBIGxvdCBpcwoJCWxhY2tpbmcgaW4gdGhlIGtlcm5lbCBzdGF0aXN0aWNzIHRob3VnaC4KCQoyMDAwLTAyLTE1IDIzOjQwICBuYmEKCgktIChtYW55KTogY29uZmlndXJlIGNoZWNrIGZvciBuZXRpbmV0L2lwNi5oCgkKMjAwMC0wMi0xNSAyMzozNCAgbmJhCgoJLSBocl9maWxlc3lzLmM6IE1OVFRZUEUgZGVmaW5lcyBmb3IgRnJlZUJTRC0zIGFuZCBCU0RJLTQsIGFuZCBtb3ZpbmcgdGhlCgkJcmV0dXJuIHZhbHVlIGZvciBFeHQyRlMgdG8gdGhlIG5ld2x5IGRlZmluZWQgT0lELgoJCjIwMDAtMDItMTUgMjM6MjQgIG5iYQoKCS0gZnJlZWJzZDMuaDogc29tZSBrZXJuZWwgc3ltYm9scyBub3QgdG8gYmUgdXNlZCBmb3IgRnJlZUJTRCAzCgkKMjAwMC0wMi0xNSAyMzoyMyAgbmJhCgoJLSBzbm1wdGFibGUuYzogZ2l2ZSBhIHNlbnNpYmxlIG91dHB1dCBmb3IgYW4gZW1wdHkgdGFibGUuCgkKMjAwMC0wMi0xNSAyMzoyMiAgbmJhCgoJLSB2YWNtKjogYnVmZmVyIGxlbmd0aCBjaGVja2luZyEKCQoyMDAwLTAyLTE1IDIzOjIwICBuYmEKCgktIGhyX3N0b3JhZ2UuYzogcmV0dXJuIG1lbW9yeSBzaXplIGluIHBhZ2VzLgoJCjIwMDAtMDItMTUgMjM6MTcgIG5iYQoKCS0gdWNkX3NubXAuaCwgbWVtb3J5X2ZyZWVic2QyLmg6IG1ha2UgaXQgd29yayBmb3IgRnJlZUJTRC0zIHRvbwoJCjIwMDAtMDItMTUgMjM6MTYgIG5iYQoKCS0gc25tcF9hZ2VudC5jOiBvbmUgbW9yZSBwbGFjZSB0byBzZW5kIGEgQVVUSEZBSUwgdHJhcAoJCjIwMDAtMDItMTUgMjM6MTUgIG5iYQoKCS0gYWdlbnRfcmVnaXN0cnkuYzogZml4IGEgcmV0dXJuIGZvciBTTk1QdjEvQ291bnRlcjY0IGNhc2UKCQoyMDAwLTAyLTE1IDAyOjEyICBkYXZlcwoKCS0gKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMpOiBPbWl0IGRlcHJlY2F0ZWQgb3B0aW9ucyBmcm9tIG9wdGFyZyBoYW5kbGluZy4KCQoyMDAwLTAyLTExIDE1OjQ4ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIvKik6IC91c3IvbG9jYWwvYmluL3BlcmwgLT4gL3Vzci9iaW4vcGVybAoJCjIwMDAtMDItMTEgMTU6NDcgIGhhcmRha2VyCgoJLSAobWFrZWRlcGVuZC5pbik6IC91c3IvbG9jYWwvYmluL3BlcmwgLT4gL3Vzci9iaW4vcGVybAoJCjIwMDAtMDItMTEgMTU6MzggIGhhcmRha2VyCgoJLSAocnNubXApOiBwZXJsNSAtPiBwZXJsCgkKMjAwMC0wMi0xMSAxNToxNyAgaGFyZGFrZXIKCgktIChtYW4vTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHNubXBfdHJhcF9hcGkuMwoJCjIwMDAtMDItMTEgMTQ6MjAgIGhhcmRha2VyCgoJLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBsYXN0IG1pbnV0ZSBtYWtlZmlsZSB0b3VjaHVwCgkKMjAwMC0wMi0xMSAxNDowMyAgaGFyZGFrZXIKCgktIChORVdTKTogdXBkYXRlIGZvciA0LjEuMQoJCjIwMDAtMDItMTEgMTM6NDcgIGhhcmRha2VyCgoJLSAoQ2hhbmdlTG9nKTogVXBkYXRlIGZvciA0LjEuMQoJCjIwMDAtMDItMTEgMTM6MjkgIGhhcmRha2VyCgoJLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEuMSApCgkKMjAwMC0wMi0xMSAxMjo1MyAgaGFyZGFrZXIKCgktIChUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwpOiB1cGRhdGUgZm9yIFRpbWVvdXQgZm9yIHYyYy4KCQoyMDAwLTAyLTExIDEyOjQ5ICBoYXJkYWtlcgoKCS0gKGxvY2FsL01ha2VmaWxlLmluKTogZG9uJ3QgY3AgZm9yIHNubXBjaGVjawoJCjIwMDAtMDItMTEgMTI6NDQgIGhhcmRha2VyCgoJLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBmaXggZm9yIHNlcGVyYXRlIGJ1aWxkIHBhdGgKCQoyMDAwLTAyLTExIDEyOjMwICBoYXJkYWtlcgoKCS0gKHN5c09SVGFibGUuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CgkgIC0gY29tcGlsZXIgd2FybmluZyBmaXguCgkKMjAwMC0wMi0xMSAxMjoyOSAgaGFyZGFrZXIKCgktIChzbm1wX2FnZW50LmMpOiBwYXRjaCBmcm9tIE5pZWxzOgoJICAtIGRvbid0IHNlbmQgYXV0aGVycm9yIHJlc3BvbnNlcyBmb3IgdjJjLgoJICAtIHNlbmQgYXV0aEZhaWx1cmUgdHJhcC4KCQoyMDAwLTAyLTExIDEyOjIyICBoYXJkYWtlcgoKCS0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogY2hhbmdlIHBlcmwgcGF0aCB0byAvdXNyL2Jpbi4KCQoyMDAwLTAyLTExIDA2OjU4ICBoYXJkYWtlcgoKCS0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogRG9udCBkZWZpbmUgUFJPQ0ZJWENNRCBhbmQgRVhFQ0ZJWENNRCBieSBkZWZhdWx0LgoJCjIwMDAtMDItMTAgMTE6MTQgIG1zbGlmY2FrCgoJZml4IGZvciBvbGRlciBwbGF0Zm9ybXMgdG8gdXNlIHBhc3NfcGVyc2lzdDsgbm90IGluY2x1ZGVkIGJ5IGRlZmF1bHQuCgkKMjAwMC0wMi0xMCAxMDozMyAgbXNsaWZjYWsKCglbbm8gbG9nIG1lc3NhZ2VdCgkKMjAwMC0wMi0xMCAxMDozMiAgaGFyZGFrZXIKCgktIChocl9zd2luc3QuYyk6IG1pbm9yIGZpeGVzIHBvaW50ZWQgb3V0IGJ5IE1pY2hhZWwuCgkKMjAwMC0wMi0xMCAxMDoyOCAgaGFyZGFrZXIKCgktIChzbm1wdjMuYyk6IGZpeCBzZXR1cCBlbmdpbmVJRCBidWZmZXIgb3ZlcmZsb3cgZm91bmQgYnkgTWlrZSBCYWVyLgoJCjIwMDAtMDItMTAgMDg6MzkgIG5iYQoKCS0gbWFuLyo6IHNldCB0aGUgZGF0ZXMgb24gdGhlIHBhZ2VzIHRvIHJlZmxlY3QgdGhlIHJldmlzaW9uIGRhdGUKCQoyMDAwLTAyLTEwIDA4OjEzICBtc2xpZmNhawoKCWZpeCB2YXJhcmdzIGRlY2wvZGVmbiBvZiBzbm1wX2xvZwoJCjIwMDAtMDItMTAgMDg6MDAgIG1zbGlmY2FrCgoJdHlwZWRlZiBpbnQgc3NpemVfdCAob25lIGxpbmUgYWRkZWQpIGZvciBidWlsZCBvbiBTdW5PUyA0LgoJCjIwMDAtMDItMTAgMDc6NTQgIGhhcmRha2VyCgoJLSAoRkFRKTogbWVudGlvbiB0aGUgdHV0b3JpYWwuCgkKMjAwMC0wMi0xMCAwNzoxNCAgZGF2ZXMKCgktIChGQVEpOiBFeHBsaWNpdCBleGFtcGxlcyBvZiBzZW5kaW5nIHRyYXBzIGJ5IGhhbmQKCQoyMDAwLTAyLTEwIDA0OjQxICBkYXZlcwoKCS0gKHNubXBsaWIve3NubXBfYXBpLHNubXBfY2xpZW50fS5jIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYyk6CgkgIC0gIENvbW1lbnQgdW51c2VkIGNvZGUgbW9yZSBpbmZvcm1hdGl2ZWx5IGFzIHRvIHdoeSBpdCBpcyBvbWl0dGVkLgoJCjIwMDAtMDItMDkgMTM6NTMgIGhhcmRha2VyCgoJLSAoZXZhbF90b29scy5zaCwgVDAyM3NubXB2M2dldE1ENURFUywgVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVMpOgoJICAtIHNraXAgc3NsIHRlc3RzIHdlIGNhbid0IHBlcmZvcm0uCgkKMjAwMC0wMi0wOSAxMzo1MSAgbXNsaWZjYWsKCglpbmNsdWRlIHN5cy9wYXJhbS5oIHRvIGdldCBQQVRIX01BWCBvbiBGcmVlQlNELgoJCjIwMDAtMDItMDkgMTM6MzggIGhhcmRha2VyCgoJLSAoU3YzU0hBREVTY29uZmlnLCBUMDI0c25tcHYzZ2V0U0hBMSwgVDAyNXNubXB2M2dldFNIQURFUyk6CgkgIC0gbWFrZSBTSEEgdGVzdHMgYWN0dWFsbHkgd29yay4KCQoyMDAwLTAyLTA5IDEzOjMyICBoYXJkYWtlcgoKCS0gKFN2M2NvbmZpZ3NoYSk6IHNoYSBjb25maWcgc3VwcG9ydAoJCjIwMDAtMDItMDkgMTM6MzEgIGhhcmRha2VyCgoJLSAoVDAwM3NubXB2MWdldGZhaWwsIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKCSAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCk6IGZpeCBmb3IgcHJvcGVyIEFDTSBlcnJvciBvdXRwdXRzLgoJCjIwMDAtMDItMDkgMTM6MzAgIG1zbGlmY2FrCgoJRGVmaW5lIFNOTVBfTUFYUEFUSCwgYW5kIHVzZSBpdC4KCQoyMDAwLTAyLTA5IDEzOjMwICBoYXJkYWtlcgoKCS0gKFQwMjRzbm1wdjNnZXRTSEExIFQwMjVzbm1wdjNnZXRTSEFERVMpOiBuZXcgdGVzdHMKCQoyMDAwLTAyLTA5IDEzOjE2ICBoYXJkYWtlcgoKCS0gKFVDRC1TTk1QLU1JQi50eHQpOiBtZW50aW9uIGEgbmV3IHVjZEV4cGVyaW1lbnRhbCByZWdpc3RyYXRpb24gKHdhdmxhbikuCgkKMjAwMC0wMi0wOSAxMzoxNiAgaGFyZGFrZXIKCgktIChhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKCSAgc25tcF9hZ2VudC5jLCB2YWNtX3ZhcnMuYyk6CgkgIC0gZml4IHBvc2libGUgYWNtIERvUyBwcm9ibGVtcyBieSBjaGVja2luZyBhY2Nlc3MgdGFibGVzIGVhcmx5IG9uLgoJCjIwMDAtMDItMDkgMTE6MzggIGhhcmRha2VyCgoJLSAoaHJfc3dpbnN0LmMpOiBwYXRjaCBmcm9tIHJlZGhhdCBmb3IgYmV0dGVyIFJQTSBzdXBwb3J0LgoJCjIwMDAtMDItMDkgMTA6NDMgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLmluKTogY2hhbmdlIG1vZGUgdG8gYXV0b2NvbmYuCgkKMjAwMC0wMi0wOSAxMDo0MSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IGZpeCByc25tcCBidWlsZC4gIFJlYWxseS4gIEkgbWVhbiBpdC4KCQoyMDAwLTAyLTA5IDEwOjQxICBoYXJkYWtlcgoKCS0gKGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jKTogUGF0Y2ggZnJvbSBBbmR5IEhPT0Q6CgkgIC0gU29sYXJpcyBwYXRjaGVzLgoJCjIwMDAtMDItMDkgMTA6MzcgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOgoJICAtIGZpeCByc25tcC5tYWRlLgoJICAtIHVzZSAkKE1BS0UpLgoJCjIwMDAtMDItMDkgMDg6NDEgIGhhcmRha2VyCgoJLSAodm1zdGF0X3NvbGFyaXMyLmMsIHZtc3RhdF9zb2xhcmlzMi5oKTogVXBkYXRlIGZyb20gSm9jaGVuIEttaWV0c2NoCgkKMjAwMC0wMi0wNyAxMTo0OSAgbWFyegoKCW9vcHMgbWlzc2luZyBpbXBvcnRhbnQgZml4IGZvciB3aW4zMiBidWlsZCAtIGZkX3NldCBtdXN0IGJlIHNhbWUgc2l6ZSBhcyBpbiB3aW5zb2NrCgkKMjAwMC0wMi0wNyAxMToxOCAgbXNsaWZjYWsKCglVbmRvIGxhc3QgY2hhbmdlOyBvbiBTdW4sIGFkZGl0aW9uYWwgcGxhdGZvcm0gaW5mbyB3YXMgbm90IG9idGFpbmVkOwoJdGhlIHByb3BlciBzb2x1dGlvbiB3b3VsZCBiZSB0byByZW1vdmUgdGhlIHNlY29uZCB0b2tlbiAoaG9zdG5hbWUpLgoJCjIwMDAtMDItMDcgMTA6NDMgIG1zbGlmY2FrCgoJS2VlcCBjdXN0b21lcidzIG5vZGVuYW1lIG91dCBvZiB0aGUgcHVibGlzaGVkICd1bmFtZScgaW5mb3JtYXRpb24uCgkKMjAwMC0wMi0wNyAwNzoyMCAgaGFyZGFrZXIKCgktIChQT1JUSU5HKTogTWljaGFlbCBsaWtlcyBkaWZmIC11LgoJCjIwMDAtMDItMDYgMDY6MTEgIG5iYQoKCS0gcmVhZF9jb25maWcuYzogRml4IG9uZSBmaW5hbCAnOicgdG8gRU5WX1NFUEFSQVRPUl9DSEFSCgkKMjAwMC0wMi0wNSAxNzozOSAgaGFyZGFrZXIKCgktIChzbm1wdjMuYyk6IGNvcnJlY3Qgc29tZSBhd2Z1bCB0ZXh0IC0+IGVuZ2luZUlEIGNyZWF0aW9uIG1pc3Rha2VzLgoJCjIwMDAtMDItMDUgMDg6MzcgIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkLmMpOiBmaXggd3JhcHBlZCBsaW5lIGNvbnRpbnVhdGlvbiBpbiB1c2FnZSBtZXNzYWdlLgoJCjIwMDAtMDItMDUgMDY6NTYgIG1hcnoKCglmaXggdmVyc2lvbiAgbnVtYmVyCgkKMjAwMC0wMi0wNCAxODo1NSAgbWFyegoKCXdlaXJkIGRlbGF5IGluIGNyZWF0aW9uIG9mIHBpZCBmaWxlcwoJCjIwMDAtMDItMDQgMTg6MjEgIG1hcnoKCglicmFpbi1vCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMSAtPiBWNC4xLjEKCm1hcnogIDUgRmViIDAwIDA2OjU2OjQzCiAgICBmaXggdmVyc2lvbiAgbnVtYmVyCgpoYXJkYWtlciAgNSBGZWIgMDAgMDg6Mzc6MjcKICAgIC0gKHNubXB0cmFwZC5jKTogZml4IHdyYXBwZWQgbGluZSBjb250aW51YXRpb24gaW4gdXNhZ2UgbWVzc2FnZS4KCmhhcmRha2VyICA1IEZlYiAwMCAxNzozOTo1NAogICAgLSAoc25tcHYzLmMpOiBjb3JyZWN0IHNvbWUgYXdmdWwgdGV4dCAtPiBlbmdpbmVJRCBjcmVhdGlvbiBtaXN0YWtlcy4KCm5iYSAgNiBGZWIgMDAgMDY6MTE6NTkKICAgIC0gcmVhZF9jb25maWcuYzogRml4IG9uZSBmaW5hbCAnOicgdG8gRU5WX1NFUEFSQVRPUl9DSEFSCgpoYXJkYWtlciAgNyBGZWIgMDAgMDc6MjA6MjQKICAgIC0gKFBPUlRJTkcpOiBNaWNoYWVsIGxpa2VzIGRpZmYgLXUuCgptc2xpZmNhayAgNyBGZWIgMDAgMTA6NDM6MjkKICAgIEtlZXAgY3VzdG9tZXIncyBub2RlbmFtZSBvdXQgb2YgdGhlIHB1Ymxpc2hlZCAndW5hbWUnIGluZm9ybWF0aW9uLgoKbXNsaWZjYWsgIDcgRmViIDAwIDExOjE4OjI2CiAgICBVbmRvIGxhc3QgY2hhbmdlOyBvbiBTdW4sIGFkZGl0aW9uYWwgcGxhdGZvcm0gaW5mbyB3YXMgbm90IG9idGFpbmVkOwogICAgdGhlIHByb3BlciBzb2x1dGlvbiB3b3VsZCBiZSB0byByZW1vdmUgdGhlIHNlY29uZCB0b2tlbiAoaG9zdG5hbWUpLgoKbWFyeiAgNyBGZWIgMDAgMTE6NDk6MDEKICAgIG9vcHMgbWlzc2luZyBpbXBvcnRhbnQgZml4IGZvciB3aW4zMiBidWlsZCAtIGZkX3NldCBtdXN0IGJlIHNhbWUgc2l6ZSBhcyBpbiB3aW5zb2NrCgpoYXJkYWtlciAgOSBGZWIgMDAgMDg6NDE6MTEKICAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFVwZGF0ZSBmcm9tIEpvY2hlbiBLbWlldHNjaAoKaGFyZGFrZXIgIDkgRmViIDAwIDEwOjM3OjAwCiAgICAtIChNYWtlZmlsZS5pbik6CiAgICAgIC0gZml4IHJzbm1wLm1hZGUuCiAgICAgIC0gdXNlICQoTUFLRSkuCgpoYXJkYWtlciAgOSBGZWIgMDAgMTA6NDE6MTQKICAgIC0gKGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jKTogUGF0Y2ggZnJvbSBBbmR5IEhPT0Q6CiAgICAgIC0gU29sYXJpcyBwYXRjaGVzLgoKaGFyZGFrZXIgIDkgRmViIDAwIDEwOjQxOjQ0CiAgICAtIChNYWtlZmlsZS5pbik6IGZpeCByc25tcCBidWlsZC4gIFJlYWxseS4gIEkgbWVhbiBpdC4KCmhhcmRha2VyICA5IEZlYiAwMCAxMDo0MzowNQogICAgLSAoY29uZmlndXJlLmluKTogY2hhbmdlIG1vZGUgdG8gYXV0b2NvbmYuCgpoYXJkYWtlciAgOSBGZWIgMDAgMTE6Mzg6NDIKICAgIC0gKGhyX3N3aW5zdC5jKTogcGF0Y2ggZnJvbSByZWRoYXQgZm9yIGJldHRlciBSUE0gc3VwcG9ydC4KCmhhcmRha2VyICA5IEZlYiAwMCAxMzoxNjoxNwogICAgLSAoYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgICAgIHNubXBfYWdlbnQuYywgdmFjbV92YXJzLmMpOgogICAgICAtIGZpeCBwb3NpYmxlIGFjbSBEb1MgcHJvYmxlbXMgYnkgY2hlY2tpbmcgYWNjZXNzIHRhYmxlcyBlYXJseSBvbi4KCmhhcmRha2VyICA5IEZlYiAwMCAxMzoxNjo1OAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1lbnRpb24gYSBuZXcgdWNkRXhwZXJpbWVudGFsIHJlZ2lzdHJhdGlvbiAod2F2bGFuKS4KCm1zbGlmY2FrICA5IEZlYiAwMCAxMzozMTowMQogICAgRGVmaW5lIFNOTVBfTUFYUEFUSCwgYW5kIHVzZSBpdC4KCmhhcmRha2VyICA5IEZlYiAwMCAxMzozMToyNAogICAgLSAoVDAwM3NubXB2MWdldGZhaWwsIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKICAgICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCk6IGZpeCBmb3IgcHJvcGVyIEFDTSBlcnJvciBvdXRwdXRzLgoKbXNsaWZjYWsgIDkgRmViIDAwIDEzOjUxOjEyCiAgICBpbmNsdWRlIHN5cy9wYXJhbS5oIHRvIGdldCBQQVRIX01BWCBvbiBGcmVlQlNELgoKaGFyZGFrZXIgIDkgRmViIDAwIDEzOjUzOjM3CiAgICAtIChldmFsX3Rvb2xzLnNoLCBUMDIzc25tcHYzZ2V0TUQ1REVTLCBUMDI0c25tcHYzZ2V0U0hBMSwgVDAyNXNubXB2M2dldFNIQURFUyk6CiAgICAgIC0gc2tpcCBzc2wgdGVzdHMgd2UgY2FuJ3QgcGVyZm9ybS4KCmRhdmVzIDEwIEZlYiAwMCAwNDo0MToxMAogICAgLSAoc25tcGxpYi97c25tcF9hcGksc25tcF9jbGllbnR9LmMgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jKToKICAgICAgLSAgQ29tbWVudCB1bnVzZWQgY29kZSBtb3JlIGluZm9ybWF0aXZlbHkgYXMgdG8gd2h5IGl0IGlzIG9taXR0ZWQuCgpkYXZlcyAxMCBGZWIgMDAgMDc6MTQ6NTEKICAgIC0gKEZBUSk6IEV4cGxpY2l0IGV4YW1wbGVzIG9mIHNlbmRpbmcgdHJhcHMgYnkgaGFuZAoKaGFyZGFrZXIgMTAgRmViIDAwIDA3OjU0OjQ2CiAgICAtIChGQVEpOiBtZW50aW9uIHRoZSB0dXRvcmlhbC4KCm1zbGlmY2FrIDEwIEZlYiAwMCAwODowMDoyNgogICAgdHlwZWRlZiBpbnQgc3NpemVfdCAob25lIGxpbmUgYWRkZWQpIGZvciBidWlsZCBvbiBTdW5PUyA0LgoKbXNsaWZjYWsgMTAgRmViIDAwIDA4OjEzOjE0CiAgICBmaXggdmFyYXJncyBkZWNsL2RlZm4gb2Ygc25tcF9sb2cKCm5iYSAxMCBGZWIgMDAgMDg6NDA6MDQKICAgIC0gbWFuLyo6IHNldCB0aGUgZGF0ZXMgb24gdGhlIHBhZ2VzIHRvIHJlZmxlY3QgdGhlIHJldmlzaW9uIGRhdGUKCmhhcmRha2VyIDEwIEZlYiAwMCAxMDoyODoyMQogICAgLSAoc25tcHYzLmMpOiBmaXggc2V0dXAgZW5naW5lSUQgYnVmZmVyIG92ZXJmbG93IGZvdW5kIGJ5IE1pa2UgQmFlci4KCmhhcmRha2VyIDEwIEZlYiAwMCAxMDozMjowOAogICAgLSAoaHJfc3dpbnN0LmMpOiBtaW5vciBmaXhlcyBwb2ludGVkIG91dCBieSBNaWNoYWVsLgoKbXNsaWZjYWsgMTAgRmViIDAwIDEwOjMzOjQ3CiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptc2xpZmNhayAxMCBGZWIgMDAgMTE6MTQ6NTgKICAgIGZpeCBmb3Igb2xkZXIgcGxhdGZvcm1zIHRvIHVzZSBwYXNzX3BlcnNpc3Q7IG5vdCBpbmNsdWRlZCBieSBkZWZhdWx0LgoKaGFyZGFrZXIgMTEgRmViIDAwIDA2OjU4OjAzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IERvbnQgZGVmaW5lIFBST0NGSVhDTUQgYW5kIEVYRUNGSVhDTUQgYnkgZGVmYXVsdC4KCmhhcmRha2VyIDExIEZlYiAwMCAxMjoyMjoxMAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBjaGFuZ2UgcGVybCBwYXRoIHRvIC91c3IvYmluLgoKaGFyZGFrZXIgMTEgRmViIDAwIDEyOjI5OjM3CiAgICAtIChzbm1wX2FnZW50LmMpOiBwYXRjaCBmcm9tIE5pZWxzOgogICAgICAtIGRvbid0IHNlbmQgYXV0aGVycm9yIHJlc3BvbnNlcyBmb3IgdjJjLgogICAgICAtIHNlbmQgYXV0aEZhaWx1cmUgdHJhcC4KCmhhcmRha2VyIDExIEZlYiAwMCAxMjozMDowMgogICAgLSAoc3lzT1JUYWJsZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBjb21waWxlciB3YXJuaW5nIGZpeC4KCmhhcmRha2VyIDExIEZlYiAwMCAxMjo0NDoyMwogICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBmaXggZm9yIHNlcGVyYXRlIGJ1aWxkIHBhdGgKCmhhcmRha2VyIDExIEZlYiAwMCAxMjo0OTowMwogICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBkb24ndCBjcCBmb3Igc25tcGNoZWNrCgpoYXJkYWtlciAxMSBGZWIgMDAgMTI6NTM6MTUKICAgIC0gKFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCk6IHVwZGF0ZSBmb3IgVGltZW91dCBmb3IgdjJjLgoKaGFyZGFrZXIgMTEgRmViIDAwIDEzOjI5OjI5CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMS4xICkKCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMC4xIC0+IFY0LjEKCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNDo0NDo0NwogICAgQ2xlYW4gQ1JzIGZyb20gcmVhZF9jb25maWcsc25tcF9sb2dnaW5nOyBjb21tZW50IGRlZmluZSBVU0VfQVNOX1NIT1JUX0xFTi4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNToxMToxMwogICAgUmVtb3ZlIEFTTl9TSE9SVF9MRU4gaGFjayAtIGtub3duIHRvIGR1bXAgY29yZSBpbiBhZ2VudC4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNjoxOTo0OQogICAgQWRkICIuIiB0byBQQVRIIGZvciBSVU5URVNUUzsgRHJvcCBvcHRyZXNldCB0byBidWlsZCBtb3N0IHBsYXRmb3JtcwoKbXNsaWZjYWsgMjQgQXVnIDk5IDEwOjI1OjUzCiAgICAtKHRlc3RpbmcvZXZhbF90b29scykgLSBsZXQgc29tZSAoQUlYKSBhZ2VudHMgc2V0dGxlIGJlZm9yZSBmaXJpbmcgcmVxdWVzdHMuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTI6NDg6MjEKICAgIC0gKHZhY21fdmFycy5jKTogY29ycmVjdCBzeXNPUlRhYmxlIGVudHJ5LgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjM2OjM1CiAgICAtIChzbm1wdXNtLmMpOiBjaGVjayBmb3IgbnVsbCByZXNwb25zZSBwb2ludGVyLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjM3OjMxCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wdjMuYyk6CiAgICAgIC0gcHJvdmlkZSBkZWZWZXJzaW9uIHRva2VuIHN1cHBvcnQgaW4gc25tcC5jb25mIChzb3J0IG9mIGhhY2tpc2gpLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjQxOjE4CiAgICAtIChUT0RPKTogcmVtb3ZlIHNubXB2MyBzdXBwb3J0IDotKQoKbXNsaWZjYWsgMjQgQXVnIDk5IDE0OjA1OjM5CiAgICAtKHRvcC9NYWtlZmlsZS5pbikgLSByZW1vdmUgbW9yZSBnZW5lcmF0ZWQgZmlsZXMgd2l0aCBkaXN0Y2xlYW4gcnVsZS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNDoxNTo0MAogICAgLSAoYWxsX3N5c3RlbS5oKTogcmVtb3ZlLiAgYWdhaW4uCgptc2xpZmNhayAyNCBBdWcgOTkgMTQ6MTc6MzMKICAgIC0oaG9zdC9ocl9zd3J1bjttaWJJSS9pY21wLGlwO3VjZC1zbm1wL2Rpc2sscHJvYykgbG9nX3BlcnJvciAtLT4gc25tcF9sb2dfcGVycm9yCgptc2xpZmNhayAyNCBBdWcgOTkgMTU6MTQ6MTgKICAgIC0oc211eC5jKSBhcHBseSBOaWNrIEFtYXRvJ3MgcGF0Y2g6IHByZXZlbnQgU01VWCBjbG9zZSBvbiBwYXJzZSBvciBlcnJvci4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNTo1OTo0MgogICAgLSAoc25tcF9hcGkuYyk6IHJlbW92ZSB2ZXJzaW9uIHNldHRpbmcgaW4gc25tcF9hcGkuYy4gIE5vdCBuZWVkZWQgdGhlcmUuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTY6MDE6NTUKICAgIC0gKE5FV1MpOiA0LjAuMSB1cGRhdGUKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNjowNToxNQogICAgLShjb25maWd1cmUuKikgbW92ZSBzdGF0ZW1lbnQgYWJvdXQgdWNkRGVtb1B1YmxpYyBpbnRvIGNvbW1lbnQgZmllbGQuCgptc2xpZmNhayAyNCBBdWcgOTkgMTY6NDk6MjIKICAgIC0odGVzdGluZy8qKSBydW4gdGVzdHMgd2hlbiBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQsIGFuZCB3aGVuCiAgICB0aGUgYnVpbGQgdHJlZSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSB0cmVlLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDE3OjEzOjI1CiAgICAtIChDaGFuZ2VMb2cpOiB1cGRhdGUgZm9yIDQuMC4xCgpoYXJkYWtlciAyNCBBdWcgOTkgMTc6MTQ6NTAKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLjEgKQoKbXNsaWZjYWsgMjQgQXVnIDk5IDE3OjM5OjU0CiAgICAtKFJVTlRFU1RTKSBleHBvcnQgUEFUSCBiZWZvcmUgdXNlCgptc2xpZmNhayAyNCBBdWcgOTkgMTc6NDM6MDQKICAgIC0odGVzdGluZy9NYWtlZmlsZS5pbikgbm8gbmVlZCB0byBidWlsZCB0YXJnZXRzIGluIHRlc3QgcnVsZS4KCm1zbGlmY2FrIDI2IEF1ZyA5OSAxMzoxODozMQogICAgLSh0ZXN0aW5nL1JVTlRFU1RTKSBpbXByb3ZlZCBQQVRIIHNldAoKbXNsaWZjYWsgMjYgQXVnIDk5IDEzOjQwOjEzCiAgICAtKHRlc3RpbmcvTWFrZWZpbGUuaW4pIGRvbid0IGJ1aWx0IHRhcmdldHMgdGhhdCBhcmUgbm8gbG9uZ2VyIHVzZWQKCm1zbGlmY2FrIDI3IEF1ZyA5OSAwNzozNToxMAogICAgLShjb25maWd1cmUqLCBzZWRzY3JpcHQqKSBjaGFuZ2UgLi4uRVhURU5JUy4uLiAgdG8gLi4uRVhURU5TSS4uLgoKbXNsaWZjYWsgMjcgQXVnIDk5IDA4OjAzOjQ2CiAgICBIb3dhcmQgU3BpbmRlbCBzdWdnZXN0cyBhbiBBUEkgZm9yIHRyYXBzIHdpdGggcGFzc19wZXJzaXN0LgoKaGFyZGFrZXIgMjcgQXVnIDk5IDA5OjE3OjA4CiAgICAtIChpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgcm91dGVfd3JpdGUuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6CiAgICAgIC0gU3VzYW5uZSBPc3RlZCBwb2ludGVkIG91dCBhIGxhY2sgb2YgI2lmIEhBVkVfU1lTX1BBUkFNX0guCgpoYXJkYWtlciAyOCBBdWcgOTkgMDc6MTk6MTYKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBzbm1wX2FsYXJtLjMuCgpoYXJkYWtlciAyOCBBdWcgOTkgMDc6Mjk6NDgKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcmVhZF9jb25maWcuYyk6CiAgICAgIC0gYWRkIC9ldGMvc25tcCB0byBkZWZhdWx0IGNvbmYgZmlsZSBwYXRoIHRvIG1ha2UgUmVkSGF0IGhhcHB5LgoKaGFyZGFrZXIgMzAgQXVnIDk5IDA5OjMzOjQxCiAgICAtIChNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfdHJhcC5jLAogICAgICBhZ2VudF90cmFwLmgsIGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLCBzbm1wX3ZhcnMuYywKICAgICAgc25tcGQuYywgdXRpbF9mdW5jcy5jLCBzeXNPUlRhYmxlLmMsIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgsCiAgICAgIGRlZmF1bHRfc3RvcmUuaCwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6CiAgICAgIC0gcmVzdHJ1Y3R1cmUgdGhlIGFnZW50IGludG8gdHdvIHBpZWNlczogYSBsaWJyYXJ5IGFuZCBhIGFwcGxpY2F0aW9uLgogICAgICAgIC0gbmVlZHMgbXVjaCBtb3JlIHdvcmsuCiAgICAgICAgLSBtYW55IHBhcmFtZXRlcnMgYXJlIG5vdyBjb250cm9sbGVkIGJ5IG5ldyBkZWZhdWx0X3N0b3JlIHNldHRpbmdzCiAgICAgICAgICB0byBoZWxwIHJlbGlldmUgY29tcGlsZSB0aW1lIGJpbmRpbmdzLgogICAgICAtIG1lcmdlIGluaXRfc25tcCBhbmQgdGhlIGN1c3RvbSB2ZXJzaW9uIGNhbGxlZCBpbnNpZGUgdGhlIGFnZW50LgogICAgICAtIGFkZCBhIG5ldyBwbGFjZSBmb3IgdHJhcCBzcGVjaWZpYyBhZ2VudCBjb2RlIChhZ2VudF90cmFwLltjaF0pLgogICAgICAtIHByb2JhYmx5IG90aGVyIHRoaW5ncyBJJ3ZlIGZvcmdvdHRlbiB0aGF0IEkgZGlkLgoKaGFyZGFrZXIgMzAgQXVnIDk5IDA5OjM4OjE4CiAgICAtIChjbGllbnQuYywgbWFzdGVyLmMsIG1hc3Rlcl9yZXF1ZXN0LmMsIHByb3RvY29sLmMsIHN1YmFnZW50LmMpOgogICAgICAtIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgogICAgICAtIHVzZSBuZXcgZGVmYXVsdF9zdG9yZSBzZXR0aW5ncyBpbnN0ZWFkIG9mIGV4dGVybmFsIHZhcmlhYmxlcy4KCmhhcmRha2VyIDMwIEF1ZyA5OSAxMDozMDo1NgogICAgLSAobWFzdGVyLmMsIG1hc3Rlcl9yZXF1ZXN0LmMpOiB5ZXQgbW9yZSBkZWJ1Z2dpbmcuCgpuYmEgMzAgQXVnIDk5IDEzOjAyOjE4CiAgICAtIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBkb2N1bWVudCBzbXV4cGVlciBkaXJlY3RpdmUKCm5iYSAzMCBBdWcgOTkgMTM6MDM6NDAKICAgIC0gYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzogcHJvcGVybHkgaGFuZGxlIE1JQjpvaWQgY29uc3RydWN0CgpuYmEgMzAgQXVnIDk5IDEzOjA1OjAyCiAgICAtIGFwcHMvc25tcHRyYXBkLmM6IGZpeCBhcmd1bWVudCBwYXJzZXIKCm5iYSAzMSBBdWcgOTkgMDA6MDg6NDUKICAgIC0gYWdlbnQvc25tcGQuYzogZG9uJ3QgdHJ5IHRvIHBhcnNlIGEgcGFja2V0IHdoZW4gdGhlcmUgaXMgYW4gZXJyb3IgaW4KICAgIAlyZWN2ZnJvbQoKbXNsaWZjYWsgMzEgQXVnIDk5IDA4OjE3OjI0CiAgICAtKGFnZW50X3RyYXAuYykgZml4IHJlY2VudCBtZW1vcnkgbGVhaywgYW5kIHNpemVvZihvYmppZF9zbm1wdHJhcCkgYnVnLgoKbXNsaWZjYWsgMzEgQXVnIDk5IDA5OjI2OjE0CiAgICAtKGFnZW50X3RyYXAuYykgYWx3YXlzIGZyZWUgUERVIGFmdGVyIHNubXBfc2VuZC4KCmRhdmVzICAyIFNlcCA5OSAwNjozODoxNgogICAgLSAoYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgpOiBGaXggTUlCIGxvY2F0aW9uIG9mIGlwZndhY2MgbW9kdWxlCgpkYXZlcyAgMiBTZXAgOTkgMDY6Mzg6NTMKICAgIC0gKGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jKTogRml4IE1JQiBsb2NhdGlvbiBvZiBpcGZ3YWNjIG1vZHVsZQoKaGFyZGFrZXIgIDIgU2VwIDk5IDA3OjA3OjA0CiAgICAtIChzdWJhZ2VudC5jKTogc2h1dGRvd25fc3ViYWdlbnQgLT4gc3ViYWdlbnRfc2h1dGRvd24gc28gY29uZmlndXJlCiAgICAgIGRvZXNuJ3QgZmluZCBpdC4KCmhhcmRha2VyICAyIFNlcCA5OSAwODo1Mjo0OAogICAgLSAoc3ViYWdlbnQuYyk6IG9wcHMuICBGb3Jnb3QgYSBzaHV0ZG93biBuYW1lIGNoYW5nZSBpbnN0YW5jZS4KCmhhcmRha2VyICAzIFNlcCA5OSAxMzoxNToxNQogICAgLSAoaGlzdG9yeS5jLCBoaXN0b3J5LmgsIHNubXBfdmFycy5saW51eC5oKTogcmVtb3ZlZC4gTm8gbG9uZ2VyIG5lZWRlZC4KCmhhcmRha2VyICAzIFNlcCA5OSAxMzoxNTozMwogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIGFnZW50IGhlYWRlciBmaWxlcy4KCmhhcmRha2VyICAzIFNlcCA5OSAxMzoyNzoxMwogICAgLSAoTWFrZWZpbGUuaW4pOgogICAgICAtIGluc3RhbGwgbGliYWdlbnQuYS4KICAgICAgLSBta2RpcmhlaXIgb24gbmVlZGVkIG5ldyBpbnN0YWxsYXRpb24gZGlyZWN0b3JpZXMuCgpoYXJkYWtlciAgMyBTZXAgOTkgMTM6MzA6MzYKICAgIC0gKHNubXBsaWIvTWFrZWZpbGUuaW4pOiBpbnN0YWxsIG1vcmUgbGlicmFyeSBoZWFkZXJzLgoKaGFyZGFrZXIgIDMgU2VwIDk5IDE0OjI4OjQ2CiAgICAtIChzbm1wX3ZhcnMuYyk6IGRvbid0IGZhbGwgb2ZmIHRoZSBlbmQgb2YgdGhlIHNlYXJjaCB0cmVlLgoKaGFyZGFrZXIgIDMgU2VwIDk5IDE1OjAxOjM5CiAgICAtIChGQVEpOiBtb3JlIEJTREkgc3lzdGVtIHZlcnNpb25zIGxpc3RlZC4KCm5iYSAgNiBTZXAgOTkgMjM6NTM6MDcKICAgIC0gKG1hbi9zbm1wX2FwaS4zIHNubXBsaWIvc25tcF9hcGkuYyBhZ2VudC9zbm1wZC5jIGFwcHMvc25tcHRyYXAuYyk6CiAgICAJZml4IG1lbW9yeSBsZWFrIHdoZW4gYWdlbnQgc2VuZHMgdHJhcHMgYnkgaW1wbGVtZW50aW5nIHRoZSBtaXNzaW5nCiAgICAJZnJlZSBvZiBUUkFQIHBkdSBpbiBzbm1wX3NlbmQuCgpuYmEgIDYgU2VwIDk5IDIzOjU1OjM4CiAgICAtIGlmLmM6IGNvcnJlY3QgY2FsbHMgb2Ygc25tcF9maXhfcGR1IHRvIHVzZSBHRVRORVhUCgptc2xpZmNhayAgNyBTZXAgOTkgMTQ6NDc6MTgKICAgIC0ocGFyc2UuKikgZml4IHNtYWxsIG1lbW9yeSBsZWFrczsgYWxsb3cgSU5ERVh7SU5URUdFUi4uLn0gY2xhdXNlczsKICAgICAgICAgICAgICAgYWxsb3cgbGFyZ2VyIERFU0NSSVBUSU9OIGNsYXVzZXMgW21heCA4MTkyXS4KCm1zbGlmY2FrICA3IFNlcCA5OSAxNToyMjoxNAogICAgc25tcHYzLmMgLSBzaWxlbmNlIHR5cGUgd2FybmluZyBmcm9tIE1TVkMrKy4KCm1zbGlmY2FrICA3IFNlcCA5OSAxNToyMzowMgogICAgKGRlZmF1bHRfc3RvcmUuKikgLSBtYWtlIDNyZCBwYXJhbSB0byBkc19zZXRfc3RyaW5nIHR5cGUgb2YgY29uc3QgY2hhciAqLgoKbXNsaWZjYWsgIDcgU2VwIDk5IDE1OjIzOjUxCiAgICAod2luMzIvY29uZmlnLmgpIC0gc2V0IFNOTVBDT05GUEFUSCB0byBzdWNjZWVkIGNvbXBpbGU7CiAgICAod2luMzIqbGlic25tcC5kZWYpIC0gYWRkIG5ldyBzbm1wX2dldF90b2tlbiB0byBsaXN0LgoKbXNsaWZjYWsgIDcgU2VwIDk5IDE1OjMyOjAwCiAgICAtKHNubXBfYXBpLmgpIHN0cnVjdCBwZHUgYW5kIHNubXBfc2Vzc2lvbiBhZ3JlZTogbG9uZyB0eXBlIGZvciB2ZXJzaW9uIG1lbWJlci4KCm1zbGlmY2FrICA3IFNlcCA5OSAxNTozMjo1OQogICAgLShwYXJzZS5jKSByZW1vdmUgdW5uZWVkZWQgc3RyZHVwIHRvIEZpbGUgdmFyaWFibGUgZnJvbSBpbml0X21pYl9pbnRlcm5hbHMuCgptc2xpZmNhayAgNyBTZXAgOTkgMTU6NTc6MTMKICAgIC0ocGFyc2UuYykgZml4IFVubGlua2VkIE9JRCBwcmludCB3aGVuIG9iamVjdCBpZGVudGlmaWVyIGhhcyBubyBwYXJlbnQuCgptc2xpZmNhayAgNyBTZXAgOTkgMjA6MTI6NTcKICAgIC0oYWdlbnRfdHJhcC5jLHNubXB0cmFwLmMsc25tcF9hcGkuWzNjXSkgLSBzbm1wX2ZyZWVfcGR1IGZpeCBCdWcgIzU0IHBlciBOaWVscyBCLgogICAgLShzbm1wbmV0c3RhdC9pZi5jKSAtIGZpeCBmb3IgR0VUTkVYVCBwZXIgTmllbHMgQi4KCm1zbGlmY2FrICA3IFNlcCA5OSAyMDoxOTo1MgogICAgc25tcHRyYXAuYyAtIHJld29yayBmaXggYnVnICM1NCAobWlzc2VkIGVsc2UpLgoKbXNsaWZjYWsgIDggU2VwIDk5IDA1OjE2OjM0CiAgICBpbmNsdWRlIHJlYWRfY29uZmlnLmgKCm5iYSAgOCBTZXAgOTkgMDc6NDU6NTQKICAgIC0gKGNvbmZpZ3VyZS5pbiwgbG9hZGF2ZS5jKTogU29sYXJpcyAyLjcgaGFzIGdldGxvYWRhdmcgcHJvdG90eXBlCgpuYmEgIDggU2VwIDk5IDA3OjQ2OjUxCiAgICAtIHNubXBfYXBpLmg6IG1vdmUgaW5jbHVzaW9uIHByb3RlY3Rpb24gdG8gdGhlIHJlYWwgYmVnaW5uaW5nL2VuZCBvZiB0aGUgZmlsZQoKbmJhICA4IFNlcCA5OSAwNzo0ODowMwogICAgLSB2YXJfc3RydWN0Lmg6IHRoZSBBZ2VudHggY29kZSB1c2VzIHVuc2lnbmVkIHZhbHVlcyBmb3IgdGhlIHZhcmlhYmxlIHR5cGUuCgpuYmEgIDggU2VwIDk5IDA3OjUwOjM3CiAgICAtICh2YXJpb3VzKTogZml4IGNvbXBpbGVyIHdhcm5pbmdzCgpuYmEgIDggU2VwIDk5IDA3OjUxOjI2CiAgICAtIHNubXBkLjEuZGVmOiBmaXggYSBmb3JtYXR0aW5nIHByb2JsZW0KCm5iYSAgOCBTZXAgOTkgMDc6NTI6MjMKICAgIC0gYXBwcy9zbm1wdHJhcGQuYzogZml4IGFyZ3VtZW50IHByb2Nlc3NpbmcgKC1sZCBhbmQgc2ltaWxhcikKCm1zbGlmY2FrICA4IFNlcCA5OSAxMzowMDo0MAogICAgLSh0ZXN0aW5nL1JVTlRFU1RTKSBwcmVmaXggUEFUSCB3aXRoIC4gYW5kIC4uICwgYXMgdGhlIHNjcmlwdCBjaGFuZ2VzIGRpci4KCm1zbGlmY2FrICA4IFNlcCA5OSAxMzowNDo1NQogICAgLShzbm1wbGliL3NubXBfY2xpZW50LiopIGFkZCBzbm1wX3NwbGl0X3BkdSwgc25tcF92YXJiaW5kX2xlbiBtZXRob2RzLgoKbXNsaWZjYWsgIDggU2VwIDk5IDE3OjAyOjM3CiAgICBtaWJpbmNsLmgsIG1pYmdyb3VwL21pYklJLyogLSBmaXh1cCBmb3IgQ3lnV2luMzIgYnVpbGQKCm1zbGlmY2FrICA4IFNlcCA5OSAxNzo0OToxMwogICAgLShjb25maWcqLHdpbjMyLyosc25tcGxpYi8qKSByZXNvdXJjZSBsb2NraW5nIG9yaWdpbmFsbHkgZnJvbSBNYXJra3UgTGF1a2thbmVuCgptc2xpZmNhayAgOCBTZXAgOTkgMTc6NTI6NDcKICAgIC0obXRfc3VwcG9ydC4qKSBPcmlnaW5hbCBieSBNYXJra3UgTGF1a2thbmVuLCBjaGFuZ2VzIGJ5IE0uIFNsaWZjYWsKCm1zbGlmY2FrICA4IFNlcCA5OSAyMjozMDoyOQogICAgLShzbXV4LmMpIHZhcl9zbXV4X3dyaXRlIGZpeGVkIHBlciBNaWtlIE1pY2hhdWQgYW5kIE5pY2sgQW1hdG8KCm1zbGlmY2FrICA4IFNlcCA5OSAyMjozNDozNwogICAgLShtaWJpbmNsLmgpIGNvbW1lbnQgb3V0IGR1cGxpY2F0ZSAjaW5jbHVkZSBoZWFkZXIgbGluZXMuCgpkYXZlcyAgOSBTZXAgOTkgMDE6MzI6MTUKICAgIC0gKG1pYnMvU05NUHYyLUNPTkYudHh0KTogT21pdCB1bm5lY2Vzc2FyeSBpbXBvcnQgY2xhdXNlCgptc2xpZmNhayAgOSBTZXAgOTkgMDI6MjE6NTAKICAgIC0od2luc3R1Yi5jKSBIYWNrIHRvIGFsbG93IHNubXBuZXRzdGF0IC1hIHRvIHdvcmsgb24gQUlYNCAoc2ljKS4KCm1zbGlmY2FrICA5IFNlcCA5OSAwMjozMToyNgogICAgLSgqY29uZmlnKikgdHVybiBvbiByZXNvdXJjZSBsb2NraW5nIHdpdGggLS1lbmFibGUtcmVlbnRyYW50LgoKbXNsaWZjYWsgIDkgU2VwIDk5IDEzOjU5OjI2CiAgICAtKG1pYi5jLCBwYXJzZS5jKSBtaWIuYyBwcmludF90cmVlX25vZGUgdGVzdCBkaXNwbGF5IG51bGwgdHlwZSB3aXRoIHJhbmdlCiAgICAgICAgICAgICAgICAgICAgICBwYXJzZS5jIHdvcmsgYXJvdW5kIGNvcmUgZHVtcCBmcmVlaW5nIFRDcyB0aGF0IHNwZWNpZnkgcmFuZ2VzLgoKbmJhIDEyIFNlcCA5OSAyMTo1MDoyMwogICAgLSB2YXJfcm91dGUuYzogTGludXggY2xlYW51cC4gUmVxdWlyZWQgZm9yIExpbnV4L1NQQVJDCgpuYmEgMTIgU2VwIDk5IDIxOjU3OjE4CiAgICAtIGFnZW50LyosIHNubXBsaWIvKjogbWFsbG9jIGZpeGVzLCBzb21lIHByb3Zva2VkIGJ5IHRoZSBjb3JyZWN0ZWQKICAgIAlzbm1wX3NlbmQgc2VtYW50aWNzLgoKbmJhIDEyIFNlcCA5OSAyMTo1ODoxNwogICAgLSBURVNUQ09ORi5zaDogZml4IHNvbWUgZXhwb3J0cyB0byBleHBvcnQgdGhlIHJpZ2h0IHZhcmlhYmxlLgoKbmJhIDEyIFNlcCA5OSAyMTo1OTozNAogICAgLSBwcm90b2NvbC5jOiBhZGQgYSBtaXNzaW5nIGluY2x1ZGUgZmlsZS4KCm5iYSAxMiBTZXAgOTkgMjI6MDA6MzMKICAgIC0gc25tcF9pbXBsLmg6IHJlbW92ZWQgc29tZSB1bnVzZWQvdW5uZWVkZWQgZGVmaW5lcy9zdHJ1Y3RzCgpuYmEgMTMgU2VwIDk5IDA0OjM1OjE4CiAgICAtIHZhcl9yb3V0ZS5jOiBMaW51eCBjbGVhbnVwLiBSZXF1aXJlZCBmb3IgTGludXgvU1BBUkMKCm5iYSAxMyBTZXAgOTkgMTM6MzI6MDcKICAgIC0gc25tcGQuYzogZml4IGEgYnVmZmVyIG92ZXJmbG93CgpoYXJkYWtlciAxMyBTZXAgOTkgMTU6MDE6NTQKICAgIC0gKGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLAogICAgICBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLCBzdWJhZ2VudC5jLAogICAgICBzdWJhZ2VudC5oLCBzeXNPUlRhYmxlLmMsIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCk6CiAgICAgIC0gZnVydGhlciBzZXBhcmF0aW9uIG9mIGFnZW50IGNodXJjaCBhbmQgc3RhdGU6CiAgICAgICAgLSB1c2UgY2FsbGJhY2tzIGV2ZXJ5d2hlcmUgbmVlZGVkIHRvIG5vdCBjYWxsIG1pYiBtb2R1bGUgY29kZSBkaXJlY3RseS4KICAgICAgICAtIGdldCByaWQgb2YgYWxsIGluc3RhbmNlcyBvZiBVU0lOR18gaW4gbGliYWdlbnQgY29kZS4KCm1zbGlmY2FrIDEzIFNlcCA5OSAyMDoyMDo1NAogICAgLShzbm1wX2FwaS5jKSByZS1hc3NlcnQgTmllbHMnIHBhdGNoIHRvIHNubXBfc2VuZCB0byBmcmVlIHYyL3YxIFRyYXAtUERVcwoKbXNsaWZjYWsgMTQgU2VwIDk5IDA5OjU0OjA1CiAgICAtKEZBUSwgbWFuL3NubXBjbWQuMSwgc25tcGxpYi9wYXJzZS4qKSBhZGQgcmVwbGFjZSBNSUIgY2FwYWJpbGl0eShleHBlcmltZW50YWwpCgptYXJ6IDE0IFNlcCA5OSAxMzowMDoxMgogICAgICAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX2FwaS5bY2hdKTogZml4IHNwdXJpb3VzIGVycm9yIG1lc3NhZ2Ugd2hlbiBzbm1wX3BhcnNlX29pZCBmYWlscwoKbXNsaWZjYWsgMTQgU2VwIDk5IDEzOjIyOjM5CiAgICBwYXJzZS5jIC0gYW5vdGhlciBmaXggZm9yIG5vZGU6IGNvbnNpZGVyIE5VTEwgbmFtZSBvciBOVUxMIHBhcmVudAoKbXNsaWZjYWsgMTUgU2VwIDk5IDA2OjA4OjMyCiAgICBpbmNsdWRlIG1pYmdyb3VwL21pYl9tb2R1bGVfaW5jbHVkZXMuaCBmb3IgYmVuZWZpdCBvZiBtaWJfbW9kdWxlX2RvdF9jb25mLmgKCmhhcmRha2VyIDE1IFNlcCA5OSAwOTo0NTozNQogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfY2xvc2UuMywgc25tcF9mcmVlX3BkdS4zLCBzbm1wX29wZW4uMywKICAgICAgc25tcF9yZWFkLjMsIHNubXBfc2VsZWN0X2luZm8uMywgc25tcF9zZW5kLjMsCiAgICAgIHNubXBfc2Vzc19hc3luY19zZW5kLjMsIHNubXBfc2Vzc19jbG9zZS4zLCBzbm1wX3Nlc3NfZXJyb3IuMywKICAgICAgc25tcF9zZXNzX2luaXQuMywgc25tcF9zZXNzX29wZW4uMywgc25tcF9zZXNzX3JlYWQuMywKICAgICAgc25tcF9zZXNzX3NlbGVjdF9pbmZvLjMsIHNubXBfc2Vzc19zZW5kLjMsIHNubXBfc2Vzc19zZXNzX3RpbWVvdXQuMywKICAgICAgc25tcF9zZXNzX3Nlc3Npb24uMywgc25tcF90aW1lb3V0LjMpOiBQYXRjaCBmcm9tIE1hcmsgSC4gV29vZDoKICAgICAgLSBjcmVhdGUgc29tZSBmYWtlIHNvdXJjaW5nIG1hbiBwYWdlcyBmb3IgZnVuY3Rpb25zLgoKbXNsaWZjYWsgMTUgU2VwIDk5IDExOjMwOjU4CiAgICBmaW5lIHR1bmluZyBtdCBzdXBwb3J0Cgptc2xpZmNhayAxNiBTZXAgOTkgMTQ6MTY6MzgKICAgIC1wZXIgYWdyZWVtZW50IHdpdGggTWFya2t1LCBubyBzdXBwb3J0IG5lZWRlZCBmb3IgU29sYXJpcy1zcGVjaWZpYyB0aHJlYWRzLgoKaGFyZGFrZXIgMTcgU2VwIDk5IDA3OjE3OjIxCiAgICAtIChzbm1wX2FwaS4zKTogUGF0Y2ggZnJvbSBNYXJrIEguIFdvb2Q6CiAgICAgIC0gZml4IGNvbW1lbnRzLgoKbXNsaWZjYWsgMTcgU2VwIDk5IDExOjE5OjQyCiAgICAtKHBhcnNlLmMpIC0gcmVtb3ZlIHVubmVlZGVkIHVzZSBvZiBzdGF0aWMgdmFyICJsYXN0IgoKbXNsaWZjYWsgMTcgU2VwIDk5IDExOjI0OjQ4CiAgICAtcmVtb3ZlIG9sZC1zdHlsZSBpbml0IGZvciByZXBsYWNlIG1pYiBmZWF0dXJlLgoKbXNsaWZjYWsgMTcgU2VwIDk5IDExOjQyOjE3CiAgICBtYWtlIG1vZHVsZV9tYXAqIGFuZCB0b2tlbnMgc3RydWN0dXJlcyBzdGF0aWMgKG9ubHkgdXNlZCBpbiBwYXJzZS5jID8pCgpoYXJkYWtlciAxNyBTZXAgOTkgMTU6Mzc6NDEKICAgIC0gKGNvbmZpZ3VyZSk6IHVwZGF0ZSB0byAyLjEzLgoKZGF2ZXMgMjEgU2VwIDk5IDA5OjIxOjU5CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBoYW5kbGUgYWRkaW5nICdlcnJvcicgdHlwZSB2YXJpYWJsZXMgdG8gYSBQRFUKCmRhdmVzIDIxIFNlcCA5OSAwOToyNToyNQogICAgLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMpOiBIYW5kbGUgcGFyc2luZyBudWxsLWxlbmd0aCB2YXJpYWJsZXMKCmRhdmVzIDIxIFNlcCA5OSAwOTozMjoyNwogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wZC5jKTogU2ltcGxlIHJ1bi10aW1lIGR1bXAgb2YgcmVnaXN0ZXJlZCBNSUJzCgptc2xpZmNhayAyMSBTZXAgOTkgMTA6NDA6NDMKICAgIC0obWliLmMpIHVuZG8gZXJyb25lb3VzIGNoYW5nZSB0byBpbml0X21pYiAodGhhbmtzIE5CISkKCmRhdmVzIDIyIFNlcCA5OSAwOToyNzozNwogICAgLSAoYWdlbnQvc25tcGQuYyk6IHN0dXBpZCB0eXBvCgpkYXZlcyAyMiBTZXAgOTkgMDk6MzE6MDgKICAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMpOiBzdHVwaWQgdHlwbwoKZGF2ZXMgMjIgU2VwIDk5IDA5OjMzOjUxCiAgICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5bY2hdKTogUHJvdmlkZSBtZXRob2QgZm9yIHByaW9yaXRpc2VkIHJlZ2lzdHJhdGlvbgoKZGF2ZXMgMjIgU2VwIDk5IDA5OjM1OjA5CiAgICAtIChhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOgogICAgICAtIEVuc3VyZSBsb2NhbCBzeXNPUlRhYmxlIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBzdWJhZ2VudCB2ZXJzaW9ucwoKZGF2ZXMgMjIgU2VwIDk5IDA5OjU0OjAyCiAgICAtIChhZ2VudF9yZWdpc3RyeS5jIHNubXBfdmFycy5jIHZhcl9zdHJ1Y3QuaCk6CiAgICAgIENoYW5nZSB0aGUgd2F5IHRoZSBNSUIgcmVnaXN0cnkgaGFuZGxlcyByZWdpc3RlcmVkIHJhbmdlcy4KICAgICAgVGhpcyBzaG91bGQgd29yayBtb3JlIHJlbGlhYmx5IChhcyB3ZWxsIGFzIGJlaW5nIHJhdGhlciBzaW1wbGVyLCBJTUhPKQoKZGF2ZXMgMjIgU2VwIDk5IDA5OjU4OjEyCiAgICAtIChhZ2VudF9yZWdpc3RyeS5jKTogcmVtb3ZlIHJlZHVuZGFudCByb3V0aW5lcwoKZGF2ZXMgMjIgU2VwIDk5IDEwOjAwOjU2CiAgICAtIChhZ2VudF9yZWdpc3RyeS5jKTogRW5zdXJlIHJlZ2lzdHJ5IGlzIGluaXRpYWxpc2VkIGNvcnJlY3RseSBvbiBzdWJhZ2VudHMKCmRhdmVzIDIyIFNlcCA5OSAxMDowMTo0NQogICAgLSAobWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBJbXByb3ZlZCBBZ2VudFggcmVzcG9uc2UgaGFuZGxpbmcKCm1zbGlmY2FrIDIyIFNlcCA5OSAxMjo1MTowMAogICAgLShzbm1wX2FwaS5jKSAtIEltcHJvdmVkIGVycm9yIHN0YXR1cyBhZ2dyZWdhdGlvbi4KCmhhcmRha2VyIDI3IFNlcCA5OSAxNjoyMjoyMAogICAgLSAocmVhZF9jb25maWcuYyk6IE9wcHM6IERTX0xJQl9ET05UX1JFQURfQ09ORklHUyBuZWVkZWQgYW4gIS4KCmhhcmRha2VyIDI4IFNlcCA5OSAxNjo1MjowNAogICAgLSAoTWFrZWZpbGUuaW4sIG1pYl9tb2R1bGVzLmMsIG1pYl9tb2R1bGVzLmgsIHNubXBfdmFycy5jLCBzbm1wZC5jKToKICAgICAgLSBtYWtlIGxpYnVjZGFnZW50IGFuZCBsaWJ1Y2RtaWJzIGFzIHNlcGVyYXRlIGxpYnJhcmllcy4gIEluIHRoZW9yeSwKICAgICAgICB5b3Ugc2hvdWxkbid0IG5lZWQgbGlidWNkbWlicyB0byB1c2UgbGlidWNkYWdlbnQuCgpkYXZlcyAyOSBTZXAgOTkgMTE6MTQ6NDIKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHByb3RlY3Qgc25tcF9jbG9zZSgpIGFnYWluc3QgYSBudWxsIFNlc3Npb25zIGxpc3QKCmRhdmVzIDI5IFNlcCA5OSAxMToxNzowMQogICAgLSAobXRfc3VwcG9ydC5oIHNubXBfYXBpLltjaF0pOiBTdXBwb3J0IGZvciBzZXNzaW9uIGFuZCBpbmNvbWluZyB0cmFuc2FjdGlvbiBJRHMKCmRhdmVzIDI5IFNlcCA5OSAxMToyMzo0MAogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IENvcnJlY3QgdmFsdWUgb2YgZGVmYXVsdCByZWdpc3RyYXRpb24gcHJpb3JpdHkKCmRhdmVzIDI5IFNlcCA5OSAxMTozNjo0MwogICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSk6CiAgICAgIC0gSW1wcm92ZSByZWdpc3RyeSBlcnJvciBoYW5kbGluZwogICAgICAtIENvcnJlY3RseSBoYW5kbGUgdW5yZWdpc3RlcmluZyBNSUIgcmVnaW9ucwoKZGF2ZXMgMjkgU2VwIDk5IDExOjM4OjIyCiAgICAtIChhZ2VudF9yZWdpc3RyeS5jKToKICAgICAgLSAnQ2hpbGRyZW4nIG5vZGVzIG5vdyBoYXZlIGEgZGlmZmVyZW50IHN0YXR1cywgYW5kIHNob3VsZG4ndCBiZSBmcmVlZC4gT29wcyEKCmRhdmVzIDI5IFNlcCA5OSAxMTo0MzowMAogICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSk6IFByb3Zpc2lvbiB0byB1bnJlZ2lzdGVyIE1JQnMgYnkgc2Vzc2lvbgoKZGF2ZXMgMjkgU2VwIDk5IDExOjQ2OjAyCiAgICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6CiAgICAgIC0gTW92ZSBzZXR0aW5nIGFnZW50IHN0YXJ0IHRpbWUgdG8gZWFybGllciBpbiB0aGUgaW5pdGlhbGlzYXRpb24gc2VxdWVuY2UKICAgICAgICAoc28gdGhhdCBpdCBjYW4gYmUgb3ZlcnJpZGRlbiBpbiBzdWJhZ2VudHMgd2l0aCB0aGUgbWFzdGVyJ3MgdmFsdWUpCgpkYXZlcyAyOSBTZXAgOTkgMTE6NDg6NTUKICAgIC0gKGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6IENoYW5nZSBpbiBNSUIgcmVnaXN0cmF0aW9uIGludGVyZmFjZQoKZGF2ZXMgMjkgU2VwIDk5IDEyOjE5OjU2CiAgICAtIChhZ2VudC9taWJncm91cC9hZ2VudHgvKik6ICBBc3NvcnRlZCBpbXByb3ZlbWVudHMhCgptc2xpZmNhayAyOSBTZXAgOTkgMTQ6MzE6NDgKICAgIFJvYnVzdCBjb3B5IG9mIGluZm9ybWF0aW9uIHRvIHRyZWUsIGltcG9ydF9saXN0LCBkaXNwbGF5IGhpbnRzLgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE2OjM1OjQzCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGZpeCBSQU5MSUIgdGVzdGluZyBmb3IgLS1lbmFibGUtc2hhcmVkLgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE2OjM2OjA3CiAgICAtIChSRUFETUUpOiBhZGRlZCBNaWtlIE1pY2hhdWQgdG8gdGhlIHRoYW5rIHlvdSBsaXN0LgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE2OjM4OjM0CiAgICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKToKICAgICAgLSBuZXcgZXh0cmFjdGlvbiBhbmQgZnJlZWluZyBmdW5jdGlvbnMuCiAgICAgIC0gYnVnIGZpeCwgbWlzc2luZyBhIG1hbGxvYyBzaXplIGJ5IG9uZSAoZWxlY3RyaWMgZmVuY2UgaXMgdmVyeSBjb29sKS4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjozODo1OQogICAgLSAoY2xpZW50LmMpOiB0aGF0cyAidGltZXZhbCIgbm90ICJ0aW1ldmFsZSIgRGF2ZSAoaGVoZSkuCgpoYXJkYWtlciAyOSBTZXAgOTkgMTY6Mzk6MjEKICAgIC0gKGNsaWVudC5oKTogZGVmaW5lIERFRkFVTFRfTUlCX1BSSU9SSVRZIHRvIDI1NS4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjozOTo0MgogICAgLSAobWFzdGVyX2FkbWluLmMpOiAtV2FsbCBmaXhlcyBhbmQgZm91bmQgYSBtaXNzaW5nIH0uCgpoYXJkYWtlciAyOSBTZXAgOTkgMTY6NDA6MDgKICAgIC0gKHBhc3MuYyk6IHJ1biBudG9obCBvbiBpcCBhZGRyZXNzZXMgc3RvcmVkIGluIGEgbG9uZy4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjo0MDozMAogICAgLSAobWliMmMudmFydHlwZXMuY29uZik6IHJlbW92ZWQgZXh0cmEgXG4uCgpoYXJkYWtlciAyOSBTZXAgOTkgMTc6MDE6MjgKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgpOiBmaXggYnVncy4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNzowMTo1MAogICAgLSAobWliX21vZHVsZXMuYyk6IGluY2x1ZGUgbmV0aW5ldC9pbi5oCgptc2xpZmNhayAyOSBTZXAgOTkgMjM6NDI6NDkKICAgIFJlbW92ZSB1bnVzZWQgZmlsZS4uIHNubXBsaWIvaHB1eC5jCgpkYXZlcyAzMCBTZXAgOTkgMDE6MDk6MjUKICAgIC0gKG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMpOgogICAgICAtIHByb3RlY3QgYWdhaW5zdCBOVUxMIHV0bXAgZmlsZSAoZnJvbSBGYWJyaWNlIER1cHJlKQoKZGF2ZXMgIDEgT2N0IDk5IDA5OjQ4OjIwCiAgICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IEZpeCBpbmNvbXBhdGFiaWxpdHkgaW4gYWdlbnQgbGlicmFyeSBuYW1lcwoKZGF2ZXMgIDIgT2N0IDk5IDE0OjI4OjIwCiAgICAtIChtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMpOgogICAgICAtIEZpeCBhIHByb2JsZW0gd2l0aCByZS11c2VkIFBEVSBzdHJ1Y3R1cmVzIGJlaW5nIGZyZWVkIHR3aWNlLgoKZGF2ZXMgIDQgT2N0IDk5IDAzOjU4OjIyCiAgICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuaCk6CiAgICAgIC0gY29uc29saWRhdGUgZGVmaW5pdGlvbnMgb2YgZGVmYXVsdCBNSUIgcmVnaXN0cmF0aW9uIHByaW9yaXR5CgpkYXZlcyAgNCBPY3QgOTkgMDk6NTM6NDgKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gc25tcF92YXJzLmggbWliSUkvc3lzT1JUYWJsZS5jCiAgICAgICBhZ2VudHgvY2xpZW50LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKICAgICAgIC0gSGFuZGxlIE1JQiByYW5nZSByZWdpc3RyYXRpb24sIGFuZCBjbGVhbiB1cCB3cmFwcGVyIGludGVyZmFjZXMKCmRhdmVzICA0IE9jdCA5OSAwOTo1ODoyNgogICAgLSAobWliX21vZHVsZXMuYyBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuW2NoXSk6CiAgICAgIC0gRW5zdXJlIHN1YmFnZW50IGlzIGluaXRpYWxpc2VkIGVhcmx5IChwcmlvciB0byBNSUIgcmVnaXN0cmF0aW9uLCBldGMpCgpkYXZlcyAgNCBPY3QgOTkgMTA6MTU6MzgKICAgIC0gKHNubXBsaWIvY2FsbGJhY2suaCk6IEluY3JlYXNlIG51bWJlciBvZiBhcHBsaWNhdGlvbiBjYWxsYmFja3Mgc3VwcG9ydGVkCgpkYXZlcyAgNCBPY3QgOTkgMTA6MTc6NTMKICAgIC0gKGFnZW50X2NhbGxiYWNrcy5oICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLltjaF0KICAgICAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyk6CiAgICAgICAtIENvbXBsZXRlIHN1YmFnZW50IGhhbmRsaW5nIG9mIEFnZW50IENhcGFiaWxpdGllcyAvIHN5c09SVGFibGUKCmRhdmVzICA0IE9jdCA5OSAxMDoyMjoyNQogICAgLSAoYWdlbnR4L2NsaWVudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6IFRyaXZpYWwgJ3BpbmcnIGltcGxlbWVudGF0aW9uCgpuYmEgIDQgT2N0IDk5IDExOjQ4OjUxCiAgICAtIChzbm1wX2FwaT8sIGludDY0Lj8gc25tcHRyYXAuYyk6IGFkZCBzb21lIGVycm9yIGNoZWNraW5nIGZvciB2YXJpYWJsZXMKCm5iYSAgNCBPY3QgOTkgMTE6NTA6NTAKICAgIC0gTWFrZWZpbGUuaW46CWFsd2F5cyB1c2UgJChNQUtFKSBmb3IgbWFrZSBpbiBNYWtlZmlsZXMKCm5iYSAgNCBPY3QgOTkgMTE6NTI6MjUKICAgIC0gY29uZmlndXJlLmluOglyZW1vdmUgLXBlZGFudGljIGZyb20gLS13aXRoLWRldmVsb3BlciwgYW5kIHRoZSBzeXN0ZW0gaGVhZGVycwogICAgCWFyZSBub3QgcHJlcGFyZWQgZm9yIGl0IChhdCBsZWFzdCBvbiBMaW51eCBhbmQgTmV0QlNEKQoKbmJhICA0IE9jdCA5OSAxMzozODoxOQogICAgLSB2YXJpb3VzOiBpbmNsdWRlIGFkZGl0aW9ucyBhbmQgZml4ZXMgdG8ga2lsbCB3YXJuaW5ncwoKaGFyZGFrZXIgIDQgT2N0IDk5IDEzOjUxOjUxCiAgICAtIChzeXN0ZW1fbWliLmMpOiBtYWtlIHN5c1NlcnZpY2VzIGNvbmZpZ3VyYWJsZS4KCm5iYSAgNCBPY3QgOTkgMTM6NTI6MjAKICAgIC0gc3ViYWdlbnQuaCwgc3ViYWdlbnQuYywgbWliX21vZHVsZXMuYzogcHJlX2luaXRfc3ViYWdlbnQgY29uZnVzZXMKICAgIAljb25maWd1cmUgaW50byBiZWxpZXZpbmcgdGhlcmUgaXMgYSBpbml0X3N1YmFnZW50IGZ1bmN0aW9uLgogICAgCVJlbmFtZSB0byBzdWJhZ2VudF9wcmVfaW5pdAoKaGFyZGFrZXIgIDQgT2N0IDk5IDE2OjMyOjE5CiAgICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKTogYWRkZWQgaGVhZGVyX2NvbXBsZXhfZmluZF9lbnRyeSgpLgoKZGF2ZXMgIDUgT2N0IDk5IDA3OjIzOjQ1CiAgICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyBhZ2VudHgvc3ViYWdlbnQuYyk6IFdvcmtpbmcgU0VUIHN1cHBvcnQKCm5iYSAgNSBPY3QgOTkgMjE6NDk6MjIKICAgIC0gc25tcF9kZWJ1Zy5oOiBtYWtlIHRoZSBERUJVRyogbWFjcm9zIHNhZmUgZm9yIHVzZSBpbiBjb21wb3VuZCBzdGF0ZW1lbnRzCgpuYmEgIDUgT2N0IDk5IDIyOjE4OjQ2CiAgICAtIHNubXBfcGFyc2VfYXJncy5jOiBmaXhlcyB0byByZXBvcnQgaW52YWxpZCBlbmdpbmVJZAoKbmJhICA1IE9jdCA5OSAyMjoyMjo1NAogICAgLSBzdWJhZ2VudC5jOiBpbmNsdWRlIHN5c3RlbS5oIGZvciBwcm90b3R5cGUgZm9yIGNhbGN1bGF0ZV90aW1lX2RpZmYKCmhhcmRha2VyICA2IE9jdCA5OSAwODo1Nzo0MgogICAgLSAoZml4cHJvYyk6IG5ldyBjb21tZW50ZWQgdmVyc2lvbi4KCmhhcmRha2VyICA2IE9jdCA5OSAxNjozMTo1MwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMpOgogICAgICAtIFNhdmUgYW5kIHBhcnNlIG9sZGVyIHBlcnNpc3RlbnQgc3RvcmFnZSBmaWxlcyB0byBtYWtlIHN1cmUgZGF0YSBpcwogICAgICAgIG5vdCBsb3N0IGR1cmluZyBzdG9yYWdlIGNyYXNoZXMuCiAgICAgIC0gRml4IFNOTVB2MyBlbmdpbmVJRCBwcm9iZXM6IFBEVSdzIGFyZSBhbGxvd2VkIHRvIGhhdmUgYSBOVUxMIHZhcmJpbmRsaXN0LgoKZGF2ZXMgIDcgT2N0IDk5IDA3OjI2OjIwCiAgICAtIChhZ2VudF90cmFwLmMgYWdlbnRfdHJhcC5oIGFnZW50X3JlYWRfY29uZmlnLmMgc25tcGQuaCk6CiAgICAgIC0gIFJlLXdyaXRlIG9mIGFnZW50IHRyYXAgaGFuZGxpbmc6CiAgICAJUHJvdmlzaW9uIGZvciB2MSB0cmFwcyB3aXRoIHZhcmJpbmRzCiAgICAJQ29uc29saWRhdGUgdjEgYW5kIHYyIHRyYXAgc2luayBsaXN0cwogICAgCVByZWxpbWluYXJ5IElORk9STSBzdXBwb3J0CgpkYXZlcyAgNyBPY3QgOTkgMDg6NDI6MTUKICAgIC0gKGFnZW50X3RyYXAuW2NoXSk6IEltcHJvdmUgYWNjZXNzaWJpbGl0eSBmb3Igc3ViYWdlbnRzCgpkYXZlcyAgNyBPY3QgOTkgMDk6MDE6MjUKICAgIC0gKGFnZW50eC9zdWJhZ2VudC5jIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6IE5vdGlmaWNhdGlvbiBzdXBwb3J0Cgptc2xpZmNhayAxMiBPY3QgOTkgMDU6NTg6MjgKICAgIG1pYi5jIDogcXVpY2tfcHJpbnQgaXMgZXhwb3NlZCBmb3IgQ01VX0NPTVBBVElCTEUgYnVpbGRzLgogICAgbGNkX3RpbWUuYyA6IGNvbW1lbnRlZCB1bnVzZWQgZHVtcF9ldGltZWxpc3RfZW50cnkgdW5kZXIgU05NUF9URVNUSU5HX0NPREUuCgptc2xpZmNhayAxMiBPY3QgOTkgMDY6MDc6NDQKICAgIERlZmluZSBhZGRyZXNzIGxlbmd0aCBmb3IgRnJlZUJTRCBwbGF0Zm9ybS4KCm1zbGlmY2FrIDEzIE9jdCA5OSAwMzo1NDowMgogICAgYWRkIG1pc3NpbmcgcHJvdG8gZm9yIHNhdmVfcGVyc2lzdGVudC4KCm5iYSAxMyBPY3QgOTkgMDc6MDk6MzYKICAgIC0gbWFzdGVyX2FkbWluLmMsIHN5c3RlbV9taWIuaDogaW5jbHVkZXMgZm9yIHByb3RvdHlwZXMKCm1zbGlmY2FrIDE1IE9jdCA5OSAwNzowOToxNAogICAgLShkZWZhdWx0X3N0b3JlLmMsIGNhbGxiYWNrLmMpIGZpeAogICAgYnVnIGluIGFycmF5LWJvdW5kYXJ5IGNoZWNrIGluIHNubXBsaWIvY2FsbGJhY2suYwogICAgcmVwb3J0ZWQgYnkgQmVydCBIb2xzdGVpbiAxNSBPY3QgMTk5OS4KCmhhcmRha2VyIDIwIE9jdCA5OSAxNzoyNjo1OQogICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IHBhcnNlZCBzdHJpbmdzIGZyb20gb2lkJ3MgaW5jbHVkZSBudWxsIHRlcm1pbmF0b3JzLgoKaGFyZGFrZXIgMjAgT2N0IDk5IDE4OjA4OjM5CiAgICAtIChtaWIuYyk6IGVuYWJsZSBvaWQgcGFyc2VyIHRvIGhhbmRsZSBzaW1wbGUgZW1iZWRkZWQgc3RyaW5ncyBpbiBvaWRzCiAgICAgIGFuZCB0byB0cmFuc2xhdGUgdGhlbSBpbnRvIG9pZCBzZWdtZW50cy4KICAgICAgRUc6IC4xLjMuXCJoZWxsb1wiLlwnaGlcJyAtPiAuMS4zLjUuMTA0LjEwMS4xMDguMTA4LjExMS4xMDQuMTA1CgpoYXJkYWtlciAyMSBPY3QgOTkgMTA6MDc6MDAKICAgIC0gKG1pYi5jKTogZW5hYmxlIG9pZG5hbWUuImhpIi4ndGhlcmUnIGluIGdldF9tb2R1bGVfbm9kZSgpIGFzIHdlbGwuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6MjA6MTUKICAgIE5vdGUgIFNOTVBFUlJfVU5LTk9XTl9PQkpJRCBlcnJvciB3aXRob3V0IHNwZWNpZnlpbmcgc25tcF9lcnJubyBfb3V0c2lkZV8gdGhlIGxpYnJhcnkuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6MjY6MjkKICAgIE5vdGUgIFNOTVBFUlJfVU5LTk9XTl9PQkpJRCBlcnJvciBmcm9tIHdpdGhpbiB0aGUgbGlicmFyeS4KCm1zbGlmY2FrIDIxIE9jdCA5OSAxMDozNzo0OQogICAgbWliLmMgLSByZXN0b3JlIGxpbmUgc3RvbXBlZCBpbiBteSBsYXN0IHVwZGF0ZS4KICAgIHJlYWRfY29uZmlnLmMgLSBkcm9wIHVudXNlZCB2YXJpYWJsZS4KICAgIHNubXBfYXBpLmMgLSBuZXcgbWV0aG9kIHNubXBfb3Blbl9leCByZXBsYWNlcyBzZXQgaW50ZXJuYWwgaG9vayBmdW5jdGlvbnMuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6Mzk6MDkKICAgIEZpeHVwcyBmb3IgYnVpbGRpbmcgd2l0aCBNU1ZDKysuIChubyBocHV4LmMsIHN1cHBseSBNQVhfUEVSU0lTVEVOVF9CQUNLVVBTKS4KCm1zbGlmY2FrIDIxIE9jdCA5OSAxMDo0MTozOAogICAgcmVtaW5kZXJzIGZvciBzbm1wX3Nlc3NfcGVycm9yIHVzYWdlIGFmdGVyIG9wZW4uCiAgICBzbm1wdGFibGUuYyAtIG9wZW4vY2xvc2Ugc2Vzc2lvbiBmcm9tIG1haW4oKS4KICAgIG5ldHN0YXQvbWFpbi5jIC0gdXNlIHNubXBfc2Vzc19wZXJyb3IuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6NDI6MjgKICAgIHVzZSBzbm1wX29wZW5fZXguCgptc2xpZmNhayAyMSBPY3QgOTkgMTI6MDk6NTEKICAgIEZpeCBCVUcjNzgKCm1zbGlmY2FrIDIxIE9jdCA5OSAxMjozMToyOAogICAgc21hbGwgcGF0Y2ggZnJvbSBNLiBMYXVra2FuZW4gdG8gZml4IEhQIGFDQyBidWlsZC4KCm5iYSAyMSBPY3QgOTkgMTI6NTI6MjYKICAgIC0gbWVtb3J5X3NvbGFyaXMuYzogcmVvcmRlciBjb21wdXRhdGlvbnMgdG8gYXZvaWQgb3ZlcmZsb3cuCgpuYmEgMjEgT2N0IDk5IDEyOjU0OjQxCiAgICAtIG1lbW9yeV9zb2xhcmlzMi5jOiByZW9yZGVyIGNvbXB1dGF0aW9ucyB0byBhdm9pZCBvdmVyZmxvdy4KCm1zbGlmY2FrIDIyIE9jdCA5OSAwNjoyOToxNgogICAgSW4gZml4aW5nIGJ1ZyAjODMgb24gNC4wIGJyYW5jaCwgZGlzY292ZXJlZCB0aGF0IDMuNiBicmFuY2gKICAgIGRpZCBub3QgaGF2ZSAib2N0ZXQiIHRva2VuIHN1cHBvcnQuICBBZGRlZC4KCm1zbGlmY2FrIDIyIE9jdCA5OSAwNjoyOTo1MgogICAgRml4IEJVRyAjODMuCgptc2xpZmNhayAyMiBPY3QgOTkgMDc6Mzk6MDEKICAgIFJlbW92ZWQgZHVwbGljYXRlZCB2YXJpYWJsZSBpbiBhIG5lc3RlZCBibG9jay4gQVJnIQoKaGFyZGFrZXIgMjIgT2N0IDk5IDA5OjU5OjM5CiAgICAtIChtaWIuYyk6IGVuYWJsZSBoZXggc3RyaW5ncyBpbnNpZGUgb2lkcy4KCm1zbGlmY2FrIDIyIE9jdCA5OSAxMDoxMjoyNgogICAgRGlzcGxheSBfc29tZV8gb2N0ZXQgc3RyaW5nIGluZGljZXMgb2Ygb2JqZWN0IGlkZW50aWZpZXJzIGFzIHF1b3RlZCBwcmludGFibGUuCiAgICBTaG91bGQgYmUgZXhwYW5kZWQgdG8gaGFuZGxlIG90aGVyIElOREVYIHR5cGVzLgoKaGFyZGFrZXIgMjIgT2N0IDk5IDE1OjI4OjU5CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGtleXRvb2xzLmMsCiAgICAgIGtleXRvb2xzLmgsIHNjYXBpLmMpOgogICAgICAtIHVzZSBvcGVuc3NsIGZvciBtZDUvc2hhIHN1cHBvcnQgKGZyb20gT2xhZnVyIEd1ZG11bmRzc29uKS4KCmhhcmRha2VyIDIyIE9jdCA5OSAxNToyOTozOAogICAgLSAobWliLmMpOiBwcmludCBzdHJpbmcgYmFzZWQgT0lEcyBiZXR0ZXIuCgpoYXJkYWtlciAyNCBPY3QgOTkgMDg6MjQ6MDIKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogU05NUENPTkZQQVRIIHVzZXMgc3lzY29uZmRpciBub3QgZGF0YWRpci4KCmhhcmRha2VyIDI0IE9jdCA5OSAwODoyNDoyMQogICAgLSAoUkVBRE1FLnNubXB2Myk6IHR5cG8uCgpoYXJkYWtlciAyNCBPY3QgOTkgMDg6MjU6MzUKICAgIC0gKG1pYi5jKTogZml4ICJtaWJzIiBhbmQgIm1pYmRpcnMiIC5jb25mIGRpcmVjdGl2ZXMgdG8gcHJvcGVybHkKICAgICAgaGFuZGxlIG11bHRpcGxlIGNhbGxzIChhZGRpdGl2ZSkgYW5kICcrJ3MgYW5kIHRoaW5ncy4KCmhhcmRha2VyIDI0IE9jdCA5OSAwODoyNzoyOAogICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgIC0gcHJlbWliIGRpcmVjdGl2ZXMgd2VyZW4ndCBnZXR0aW5nIHJlYWQgZHVlIHRvIGEgbWlzc2luZyBuZWdhdGlvbiAoISkuCiAgICAgIC0gbW9yZSBwYXJzaW5nIGRlYnVnZ2luZyBzdGF0ZW1lbnRzIGFkZGVkLgoKbXNsaWZjYWsgMjUgT2N0IDk5IDA4OjA2OjMyCiAgICBtaW5vciByZXdvcmsgdG8gY2xhcmlmeSBzaWduZWQgY29tcGFyZXMgYW5kIHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgoKbmJhIDI1IE9jdCA5OSAxMzozOToyNwogICAgLSBpbnRlcmZhY2VzLmM6IGZpeCBhIG1lbW9yeSBsZWFrIGluIHRoZSBMaW51eCBwYXJ0CgpuYmEgMjUgT2N0IDk5IDEzOjQxOjAxCiAgICAtIGNvbmZpZ3VyZS5pbiwgcHJvYy5jOiBzdXBwb3J0IGZvciBGcmVlQlNEIDIuMSB3aGVyZSBwcyBkb2Vzbid0IGhhdmUgYyBmbGFnCgpuYmEgMjUgT2N0IDk5IDEzOjUxOjIyCiAgICAtIGhyX3N5c3RlbS5jOiBwbGF5IGl0IHNhZmUgd2hlbiBubyB1dG1wIGZpbGUgZXhpc3RzCgpuYmEgMjUgT2N0IDk5IDEzOjUzOjI2CiAgICAtIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYzogc3VwcG9ydCBmb3IgdHJhcGhhbmRsZSBERUZBVUxUCgpuYmEgMjUgT2N0IDk5IDEzOjU2OjI2CiAgICAtIFJVTlRFU1RTLCBURVNUQ09ORi5zaCBldmFsX29uZXNjcmlwdC5zaCBldmFsX3Rvb2xzLnNoOiBzdXBwb3J0IG5vbi1iYXNoCiAgICAJc2hlbGxzIChlY2hvIC1uIHZzIGVjaG8gXFxjKS4gRG9uJ3QgcmVxdWlyZSAuIGluIFBBVEgKCm5iYSAyNSBPY3QgOTkgMTM6NTg6MDMKICAgIC0gc25tcHRyYW5zbGF0ZS5jOiBsZXQgJzonIGluIE9JRCBkbyAidGhlIHJpZ2h0IHRoaW5nIgoKbmJhIDI1IE9jdCA5OSAxMzo1OTowNQogICAgLSBwYXNzLmM6IGRvIGFuIGh0b25sIHdoZW4gcGFzc2luZyBpcCBhZGRyZXNzCgpuYmEgMjUgT2N0IDk5IDE0OjA3OjExCiAgICAtIHNubXBkZWx0YS5jOiBDT1VOVEVSNjQgd2lsbCBkZXJlZmVyZW5jZSBmcmVlZCBwb2ludGVyCgpuYmEgMjUgT2N0IDk5IDE0OjA4OjI1CiAgICAtIHNubXBkLmNvbmYuNS5kZWY6IG1pbm9yIHF1aXJrCgpuYmEgMjUgT2N0IDk5IDE0OjEzOjU3CiAgICAtICo6IGNvbmZpZ3VyZSBzdXBwb3J0IGZvciBkbWFsbG9jIG1hbGxvYyBkZWJ1Z2dlciAod3d3LmRtYWxsb2MuY29tKQoKaGFyZGFrZXIgMjUgT2N0IDk5IDE0OjM1OjUxCiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBlbmFibGUgLXAgcHJpbnRpbmcgb2Ygb25seSBhIHNlY3Rpb24gb2YgdGhlIG1pYiB0cmVlLgoKaGFyZGFrZXIgMjUgT2N0IDk5IDE2OjA1OjAzCiAgICAtIChzbm1wdHJhbnNsYXRlLmMsIHBhcnNlLmMpOiBoYWNrIHRvIGRvIHdpbGQgY2FyZCBzZWFyY2hlcyBmb3IgYSBtaWIgbm9kZS4KCm1zbGlmY2FrIDI2IE9jdCA5OSAxMDozNDo0MAogICAgQWxsb3cgdW5zaWduZWQgcmFuZ2UgZm9yIGNvdW50ZXIvZ2F1Z2UvdGltZXRpY2tzIChmaXggQlVHIzg0IHBlciBTYW5kZXIgU3RlZmZhbm4pLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE0OjMzOjMzCiAgICAtIChNYWtlZmlsZS5pbik6IGZpeCB1cCB1Y2Qtc25tcC1jb25maWcuaCBidWlsZGluZy4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozNDoxMAogICAgLSAoc25tcF9hZ2VudC5oKTogcHJvdG90eXBlIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzKCkuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTQ6MzQ6NTUKICAgIC0gKE1ha2VmaWxlLmluLCB1Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oKTogYWRkZWQgYSBoZWFkZXIgZmlsZSB0bwogICAgICB3cmFwIGFyb3VuZCB0aGUgdmFyaW91cyBhZ2VudCBpbmNsdWRlIGZpbGVzLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE0OjM1OjI3CiAgICAtIChtYXN0ZXJfYWRtaW4uYyk6IHNpbXBsZSBkZWJ1Z2dpbmcgc28geW91IGNhbiB3YXRjaCBzdHVmZiByZWdpc3Rlci4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozNjoyMQogICAgLSAoTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuMywgZGVmYXVsdF9zdG9yZS4zLmJvdCwKICAgICAgZGVmYXVsdF9zdG9yZS4zLmgsIGRlZmF1bHRfc3RvcmUuMy50b3AsIHNubXBfYWdlbnRfYXBpLjMpOgogICAgICAtIG5ldyBtYW51YWwgcGFnZXM6IGRlZmF1bHRfc3RvcmUuMywgc25tcF9hZ2VudF9hcGkuMy4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozNjo1NQogICAgLSAoZGVmYXVsdF9zdG9yZS5oKToKICAgICAgLSBtYXJrIHJlZ2lvbnMgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGRlZmF1bHRfc3RvcmUuMyBtYW51YWwgcGFnZS4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozNzo0OQogICAgLSAobGNkX3RpbWUuaCk6IGRlZmluZSBhbmQgY29tbWVudCBMQ0RfVElNRV9TWU5DX09QVCBiZXR0ZXIuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTQ6Mzg6MDYKICAgIC0gKHVjZC1zbm1wLWluY2x1ZGVzLmgpOiBhZGQgZGVmYXVsdF9zdG9yZS5oIGFuZCBzbm1wX2xvZ2dpbmcuaAoKaGFyZGFrZXIgMjcgT2N0IDk5IDE3OjEyOjAxCiAgICAtICh1Y2Qtc25tcC1pbmNsdWRlcy5oKTogYWRkZWQgbW9yZSBpbmNsdWRlIGZpbGVzLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE3OjEyOjU5CiAgICAtIChtaWIuYyk6IGJhaWwgaWYgd2UgY2FuJ3QgZmluZCBhbiBpbmRleCBpbiB0aGUgbWliIHRyZWUgdG8gdXNlIGZvcgogICAgICBicmVha2luZyBhbiBvaWQgYXBhcnQuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTc6MzA6MjUKICAgIC0gKHZhY21fdmFycy5jKTogd2F0Y2ggZm9yIG51bGwgY29tbXVuaXRpZXMgd2hlbiBwcmludGluZyBkZWJ1ZyBzdGF0ZW1lbnRzLgoKbXNsaWZjYWsgMjggT2N0IDk5IDA0OjU1OjUyCiAgICBEYXZlJ3MgY29tbWVudCBhYm91dCBwcmVfcGFyc2UgZXRjLiB3YXMgdG9vIGdvb2QgdG8gbG9zZSBpbiBlLW1haWwuCgptc2xpZmNhayAyOCBPY3QgOTkgMDU6MjM6MDUKICAgIHVfaW50OC8xNi8zMl90IHR5cGVzIG5vIGxvbmdlciBuZWVkZWQgZm9yIFdJTjMyIGJ1aWxkcy4KCm1zbGlmY2FrIDI4IE9jdCA5OSAwNToyNTowMgogICAgT29wcyEgcmVzdG9yZSB2ZXJzaW9uIHIxLjEzMS4KCm1zbGlmY2FrIDI4IE9jdCA5OSAwNjo0OTowMwogICAgcmVwaHJhc2Ugc3VidHJlZSBub3QgZm91bmQgY29kZSBpbiBfZ2V0X3N5bWJvbC4KCmhhcmRha2VyIDI4IE9jdCA5OSAxMzo0Nzo1NwogICAgLSAoc25tcHRvc3FsKTogZGVidWdnaW5nIGFuZCBlcnJvciBjaGVja2luZy4KCmhhcmRha2VyIDI5IE9jdCA5OSAwODo1ODoxNwogICAgLSAobWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6IFBhdGNoIGZyb20gS2VpdGggVHVzb246CiAgICAgIC0gbWlzYyBmaXhlcy4KCmhhcmRha2VyIDI5IE9jdCA5OSAwOToyODoxMQogICAgLSAoRkFRKTogYWRkZWQgcmVmZXJlbmNlIHRvIGFuIGFib3ZlIHF1ZXN0aW9uIGZvciBwZXJsIGluc3RhbGxhdGlvbi4KCmhhcmRha2VyIDI5IE9jdCA5OSAwOToyODo0MwogICAgLSAodWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCk6IGFkZGVkIHZhcl9zdHJ1Y3QuaCBhbmQgYWdlbnRfcmVhZF9jb25maWcuaAoKaGFyZGFrZXIgMjkgT2N0IDk5IDA5OjUyOjE4CiAgICAtIChkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKTogdHdvIG5ldyBwcmludGluZyBvcHRpb25zOgogICAgICAtIHByaW50TnVtZXJpY09pZHMKICAgICAgLSBwcmludE51bWVyaWNFbnVtcwoKaGFyZGFrZXIgMjkgT2N0IDk5IDEwOjA2OjAzCiAgICAtIChkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsIHNubXBfcGFyc2VfYXJncy5jKToKICAgICAgLSBzbm1wIG92ZXIgVENQIG9wdGlvbnM6IC1UIFRDUC4KICAgICAgLSBuZXcgcXVpY2sgcHJpbnQgb3B0aW9uczogLXFvIC1xZSBmb3IgbnVtZXJpYyBvaWRzIGFuZCBlbnVtcy4KCmhhcmRha2VyIDI5IE9jdCA5OSAxMDoxMzo0NAogICAgLSAoc25tcGNtZC4xKTogZG9jdW1lbnQgLVQgYW5kIC1xW29lXQoKaGFyZGFrZXIgMjkgT2N0IDk5IDEwOjE1OjAxCiAgICAtKGRlZmF1bHRfc3RvcmUuM3ssLmh9KTogcmVtb3ZlZCBmcm9tIENWUyBzaW5jZSB0aGV5IGFyZSBidWlsdAoKaGFyZGFrZXIgMjkgT2N0IDk5IDEwOjE1OjQzCiAgICAtICguY3ZzaWdub3JlKTogaWdub3JlIGRlZmF1bHRfc3RvcmUuM3ssLmh9CgpoYXJkYWtlciAyOSBPY3QgOTkgMTY6NTg6MDcKICAgIC0gKHRrbWliKTogbWFrZSBpdCBkbyBzbm1wdjMuICBBZGRlZCBtYW55IHRoaW5ncyB0byB0aGUgb3B0aW9ucyBtZW51LgoKbWFyeiAyOSBPY3QgOTkgMTk6NTQ6MTAKICAgICAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdjMuYyk6IG1ha2UgZW5naW5lSUQgc2V0dXAgY29uZGl0aW9uYWwgb24gYXBwIHR5cGUgdG8gcHJldmVudCBhcHBzIGZyb20gZWFzaWx5IGVuZGluZyB1cCB3aXRoIHRoZSBzYW1lIGVuZ2luZUlEIGFzIGFnZW50IG9uIHNhbWUgaG9zdAoKaGFyZGFrZXIgIDEgTm92IDk5IDEzOjE4OjAwCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywgc25tcF9hbGFybS5jKToKICAgICAgLSBkb24ndCBicmVhayBvaWRzIGludG8gcGllY2VzIGlmIHF1aWNrX3ByaW50IGlzIHR1cm5lZCBvbi4KICAgICAgLSBkaXR0byBpZiB0aGUgbmV3IGRlZmF1bHRfc3RvcmUgb3B0aW9uIGlzIHR1cm5lZCBvbi4KICAgICAgLSBtYWRlIGEgZGVmYXVsdF9zdG9yZSBvcHRpb24gdG8gbm90IHVzZSBzaWdhbHJtIGZvciBzbm1wX2FsYXJtcy4KCmhhcmRha2VyICAyIE5vdiA5OSAwOTo1NzozMQogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIG90aGVyIGhlYWRlciBmaWxlcyBuZWVkZWQgYnkgU05NUC5wbS4KCm1zbGlmY2FrICAyIE5vdiA5OSAxNTozNzowNQogICAgVXNlIEhBVkVfU1REQVJHX0ggd2hlbiBkZWNpZGluZyB0byB1c2UgdmFyYXJncyB2cyBBTlNJLUMgcHJvdG90eXBlcy4KCm1zbGlmY2FrICAyIE5vdiA5OSAxNTo0NjowOAogICAgSW5zdGFsbCBzbm1wX2FnZW50X2FwaS4zCgptc2xpZmNhayAgMyBOb3YgOTkgMDY6MTE6MDMKICAgIGRlY2xhcmUgZmluZF9iZXN0X3RyZWVfbm9kZSBmb3IgTVNWQyBidWlsZC4KCm1zbGlmY2FrICAzIE5vdiA5OSAwNjo0OTozMAogICAgTmVhciBsaW5lIDY2MyA6IGNsb3NlKGZkKSBiZWZvcmUgaW52b2tpbmcgd2FpdF9vbl9leGVjCgptc2xpZmNhayAgMyBOb3YgOTkgMTM6MTg6NTkKICAgIEZvbGxvd2luZyBjYWxsIHRvIGZkb3BlbiAobmVhciBnZXRfZXhlY19vdXRwdXQpLCBkbyBub3QgY2xvc2UoZmQpLgoKbXNsaWZjYWsgIDMgTm92IDk5IDEzOjIwOjE2CiAgICBGaXggYnVpbGQgcHJvYmxlbSBvbiBMaW51eCBSZWRIYXQgNi4wIDoga2V5IG9mZiBHTlVfTElCUkFSWSB2YWx1ZS4KCm1zbGlmY2FrICA0IE5vdiA5OSAwMjo0MjoxNQogICAgUGF0Y2ggdG8gYnVpbGQgQlNEL09TIDQuMC4xOyBmcm9tIEJlcnQgRHJpZWh1aXMgLS0gZHJpZWh1aXNAcGxheWJlaW5nLm9yZwoKbXNsaWZjYWsgIDQgTm92IDk5IDA0OjE0OjI4CiAgICBNb3JlIFNURENfSEVBREVSUyBjbGVhbnVwOiB1c2UgSEFWRV9TVFJJTkdfSCwgSEFWRV9TVERMSUJfSCBpbnN0ZWFkLgoKbXNsaWZjYWsgIDQgTm92IDk5IDA0OjMzOjMyCiAgICBDaGFuZ2UgZXhhbXBsZSBhd2F5IGZyb20gU1REQ19IRUFERVJTLgoKbXNsaWZjYWsgIDQgTm92IDk5IDA1OjA4OjMxCiAgICBFdmVyeSAjZGVmaW5lIGlzIGdpdmVuIGEgdmFsdWU7IHNldCB0byAxIGlmIG5vIHZhbHVlIHdhcyBzcGVjaWZpZWQuCgptc2xpZmNhayAgNCBOb3YgOTkgMDU6MTM6MDUKICAgIEZpcnN0IHBhc3Mgc3VwcG9ydCBmb3IgRnJlZUJTRCA0LjAgW3Byb2JsZW1zIHdpdGggcHJvYyB0YWJsZSBsb29rdXBzXS4KCm1zbGlmY2FrICA0IE5vdiA5OSAwNjoxMTo0OAogICAgVXNlIHN5c2N0bChDVExfVk0uLikgdG8gZ2V0IHZpcnR1YWwgbWVtb3J5IHN0YXRzLgoKaGFyZGFrZXIgIDQgTm92IDk5IDEwOjAzOjQ3CiAgICAtIChNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWIuYyk6CiAgICAgIC0gZGVmaW5lIElOX1VDRF9TTk1QX1NPVVJDRSBpbiBjb25maWcuaCBidXQgbm90IGluIHVjZC1zbm1wLWNvbmZpZy5oLgogICAgICAtIG1vdmUgdWNkLXNubXAtY29uZmlnLmggdXAgaW4gdGhlIGJ1aWxkIG9yZGVyIGJlZm9yZSBzdWJkaXJzLgogICAgICAtIE1ha2UgZGVmYXVsdCBNSUJESVJTIHNlYXJjaCBwYXRoIGluY2x1ZGUgJEhPTUUvLnNubXAvbWlicy4KICAgICAgLSBNYWtlIE1JQkRJUlMgcGFyc2luZyBoYW5kbGUgJEhPTUUgdmFyaWFibGVzIGluIGl0LgoKaGFyZGFrZXIgIDQgTm92IDk5IDEwOjA0OjQyCiAgICAtIChtaWIyYy5jb25mKTogaW5jbHVkZSBoZWFkZXJzIGZvciBjb21waWxhdGlvbiBmb3IgYm90aCBpbnRlcm5hbCBhbmQKICAgICAgZXh0ZXJuYWwgdG8gdGhlIHVjZC1zbm1wIHNvdXJjZS4KCm1zbGlmY2FrICA0IE5vdiA5OSAxMDoxOTozNQogICAgUmVkbyBGcmVlQlNEIDQuMDogZGVmaW5lIGZyZWVic2QzIGluIHMvZnJlZWJzZDQuaDsgcmVkdWNlICJkZWZpbmUiIHRocmFzaGluZy4KCmhhcmRha2VyICA0IE5vdiA5OSAxMDoyODo0NAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBjbWQuMSk6IG1vdmUgLXEgZmxhZ3MgdG8gLU8uCgptc2xpZmNhayAgNCBOb3YgOTkgMTM6NDM6NDAKICAgIFNwZWVkIHVwIHNwcmludF92YXJpYWJsZTogaGFsdmUgdGhlIG51bWJlciBvZiBjYWxscyB0byBnZXRfc3ltYm9sLgoKbXNsaWZjYWsgIDUgTm92IDk5IDA2OjIyOjUyCiAgICBTYXkgZ29vZGJ5ZSB0byBTTk1QX01BTExPQywgbWFsbG9jX3plcm8sIHhjYWxsb2MsIHhtYWxsb2MsIGFuZCB4c3RyZHVwLgogICAgUmVzcGVjdGl2ZWx5IHJlcGxhY2VkIHdpdGggY2FsbG9jLCBjYWxsb2MsIGNhbGxvYywgbWFsbG9jLCBhbmQgc3RyZHVwLgoKbmJhICA5IE5vdiA5OSAwMTo1MDowOQogICAgLSBtaWIuYyxwYXJzZS5jOiBtYWtlIGVycm9yIHJlcG9ydGluZyBpbiBwYXJzZXIgd29yayBhY2NvcmRpbmcgdG8gc3BlYyAoLVBlKQogICAgCXNob3cgZGVmaW5pbmcgbW9kdWxlcyBpbiBzbm1wdHJhbnNsYXRlIC1kCiAgICAJdXNlIGRzX3RvZ2dsZV9ib29sZWFuCgpuYmEgIDkgTm92IDk5IDEyOjU5OjUyCiAgICAtIHNubXB0cmFwZC5jLHNubXB0cmFwZF9oYW5kbGVycy5jOiBtYWtlIGl0IGNvbXBpbGUgd2l0aCBWQysrIDUuMAogICAgCShidXQgbm8gaGFuZGxlcnMgKHlldCkpCgpoYXJkYWtlciAgOSBOb3YgOTkgMTM6MDI6MTcKICAgIC0gKHNubXBkLmMpOiBmaXggLUguCgpoYXJkYWtlciAgOSBOb3YgOTkgMTM6MDI6NDEKICAgIC0gKHVjZF9zbm1wLmgpOiByZXF1aXJlIHRoZSBERU1PLU1JQiAoanVzdCBmb3IgdHV0b3JpYWwgcHVycG9zZXMpLgoKaGFyZGFrZXIgIDkgTm92IDk5IDEzOjA5OjIxCiAgICAtICh2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOiBzaW1wbGUgbmV3IC5jb25mIHRva2Vuczogcm9jb21tdW5pdHksIHJ3Y29tbWl0eS4KCmhhcmRha2VyICA5IE5vdiA5OSAxMzowOTo0MAogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHRoZSBERU1PLU1JQi4KCm5iYSAgOSBOb3YgOTkgMTU6MTY6MDMKICAgIC0gdmFyaW91czogYWRhcHQgdG9vbHMgdG8gdXNlIGdldG9wdCAoYW5kIHB1dCBvbmUgaW4gZm9yIFdpbjMyKQoKbmJhICA5IE5vdiA5OSAyMjoyMDo1MgogICAgLiBzbm1wX3BhcnNlX2FyZ3MuYzogYSBnbGl0Y2ggaW4gdGhlIGNvbnZlcnNpb24gdG8gZ2V0b3B0ICh0aGFua3MgdG8KICAgIAlkcmllaHVpc0BwbGF5YmVpbmcub3JnKQoKbmJhICA5IE5vdiA5OSAyMzozMDowMwogICAgLSBnZXRvcHQuaDogYXJndW1lbnRzIHRvIGdldG9wdCBkaWQgbm90IG1hdGNoIHRob3NlIGluIGdldG9wdC5jCgpuYmEgMTAgTm92IDk5IDA4OjMwOjEzCiAgICAtIHdpbjMyLyo6IGZpeGVzIHRvIHRoZSBWQysrIGJ1aWxkIHByb2plY3RzCgpuYmEgMTAgTm92IDk5IDA4OjMyOjAwCiAgICAtIHdpbjMyLyo6IFZDKysgcHJvamVjdCB1cGRhdGVzCgpkYXZlcyAxMCBOb3YgOTkgMDg6NTc6MDAKICAgIC0gKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMpOiBPbmx5IHNldCB1cCB0cmFwIHNpbmtzIG9uIHRoZSBtYXN0ZXIgYWdlbnQKCmRhdmVzIDEwIE5vdiA5OSAwODo1ODozOAogICAgLSAoYWdlbnQvYWdlbnRfdHJhcC5bY2hdKTogbWlub3IgcmUtc3RydWN0dXJlIHRvIGFsbG93IHN1YmFnZW50IHRyYXAgInNpbmtzIgoKZGF2ZXMgMTAgTm92IDk5IDA4OjU5OjQ1CiAgICAtIChhZ2VudHgvc3ViYWdlbnQuYyk6IEZpeCBBZ2VudFggbm90aWZ5IHN1cHBvcnQKCm5iYSAxMCBOb3YgOTkgMTI6MjA6NDcKICAgIC0gd2luMzIvKi5kc3A6IHlldCBhbm90aGVyIHJvdW5kIG9mIG1ha2luZyB0aGlzIGNyYXAgd29yawoKbmJhIDEwIE5vdiA5OSAxNToyOToxOAogICAgLSBhcHBzLyo6IGNoYW5nZXMgZm9yIGdldG9wdCB1c2FnZSwgYW5kIHJld29ya2luZyBvZiBzbm1wX3BhcnNlX2FyZ3MKCm5iYSAxMCBOb3YgOTkgMjI6MTI6MDgKICAgIC0gd2luMzIvKjogY2xlYW4gdXAgcmVwb3NpdG9yeSBmaWxlcywgYW5kIGFkZCBwcm9wZXIgLmN2c2lnbm9yZSBmaWxlcwoKZGF2ZXMgMTEgTm92IDk5IDAzOjM3OjU5CiAgICAtIChhZ2VudHgvY2xpZW50LmMpOiBTaWxseSB0eXBvIGluIHN0YXJ0IHRpbWUgc3luY2hyb25pc2F0aW9uCgpuYmEgMTEgTm92IDk5IDIyOjE0OjI3CiAgICAtIHNubXBjbWQuMTogdXBkYXRlIG1hbiBwYWdlIHRvIGNvcnJlc3BvbmQgdG8gdGhlIG5ldyBnZXRvcHQgc2l0dWF0aW9uCiAgICAJTm90ZTogZXZlbiB0aG91Z2ggc29tZSBvcHRpb25zIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhpcwogICAgCXBhZ2UsIHRoZXkgc3RpbGwgd29yayEKCm5iYSAxMSBOb3YgOTkgMjI6NTA6MDAKICAgIC0gc25tcF9wYXJzZV9hcmdzLmMsIG1pYi5jOiBhbGlnbm1lbnQgb2Ygb3B0aW9uIGNvZGUuCiAgICAJU29tZSBlbmhhbmNlbWVudHMgdG8gdGhlIHNubXB0cmFuc2xhdGUgLWQgb3V0cHV0LgoKZGF2ZXMgMTIgTm92IDk5IDA4OjQ2OjMzCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBQcm92aWRlIGEgdW5pcXVlIElEIGZvciBhbGwgaW5jb21pbmcgUERVcwoKbWFyeiAxMiBOb3YgOTkgMTM6MDE6MDgKICAgICAobGNkX3RpbWUuW2NoXSwgc25tcHVzbS5jKTogZml4IGVuZ2luZXRpbWUgdXBkYXRlIGFsZ29yaXRobSB0byBjb25mb3JtIHRvIHNwZWMgcmZjMjU3NCAzLjIuNy5iLjEKCm5iYSAxNCBOb3YgOTkgMDE6NDg6NTEKICAgIC0gc25tcHRhYmxlLCBzbm1wX3BhcnNlX2FyZ3M6IGFsbG93IHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYyBvcHRpb25zIHRvCgpuYmEgMTQgTm92IDk5IDAxOjUxOjU3CiAgICAtIHNubXB0YWJsZTogYWRkIGluIHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYyBzbm1wdGFibGUgb3B0aW9ucyBiZXR3ZWVuCiAgICAJdGhlIG5vcm1hbCBvcHRpb25zLgoKbmJhIDE0IE5vdiA5OSAwMTo1MzoxNgogICAgLSBzbm1wYnVsa2dldDogbmV3IHRvb2wgdG8gaXNzdWUgYSBzaW5nbGUgR0VUQlVMSyByZXF1ZXN0CgpuYmEgMTQgTm92IDk5IDAxOjU0OjE3CiAgICAtIHNubXBfcGFyc2VfYXJnczogY2hhbmdlcyB0byBzdXBwb3J0IG11bHRpLXZhbHVlZCBvcHRpb25zCgpuYmEgMTQgTm92IDk5IDAxOjU5OjIwCiAgICAtIG1pYnMvKiwgdmFjbV92YXJzLmg6IHVwZGF0ZSB0aGUgbWliIGZpbGVzIHRvIHJmYyAyNTcxLTI1NzUuIEFsc28gYWRkCiAgICAJU05NUF9DT01NVU5JVFlfTUlCIGZyb20gdGhlIGNvZXggZHJhZnQuCgpuYmEgMTQgTm92IDk5IDAyOjAwOjAwCiAgICAtIHZhY21fdmFycy5jOiBraWxsIGEgd2FybmluZwoKbmJhIDE0IE5vdiA5OSAwMjowMTozNwogICAgLSBwYXNzLmMsIHNubXBkLmNvbmYuNS5kZWY6IGFkZCBhbiBVTlNJR05FRCByZXR1cm4gdHlwZQoKbmJhIDE0IE5vdiA5OSAwMjowNDo0NgogICAgLSBtaWIuYywgc25tcHRyYW5zbGF0ZS5jOiBtb3ZlIHRoZSBNSUI6aWQgaGFuZGxpbmcgaW5zaWRlIHJlYWRfb2JqaWQgZm9yCiAgICAJY29uc2lzdGVuY3kuIEFsc28gZml4ZXMgYSBidWZmZXIgb3ZlcnJ1biBpbiBtaWIuYwoKbmJhIDE0IE5vdiA5OSAwMjo0MjozOAogICAgLSBTTk1QdjItQ09ORi50eHQ6IGNvbW1lbnQgb3V0IHRoZSBJTVBPUlQgY2xhdXNlCgpuYmEgMTQgTm92IDk5IDA2OjEyOjAzCiAgICAtIHNubXB0cmFwZC5jOiBhZGQgdGhlIG5ldyBjb21tb24gLU8gb3B0aW9uIHNldAoKbmJhIDE0IE5vdiA5OSAwNjoxNTowMQogICAgLSBzbm1wdHJhcGQuODogYWRkIHRoZSBuZXcgY29tbW9uIC1PIG9wdGlvbiBzZXQKCm5iYSAxNCBOb3YgOTkgMDY6MzI6MjUKICAgIC0gaXBjNjogQWRkIHRoZSBJUHY2IGNvZGUgZnJvbSB0aGUgS2FtZSBwcm9qZWN0LiBJIGhhdmUgb25seSBtYXNzYWdlZAogICAgCWl0IHNvIG11Y2ggYXMgdG8gc3RpbGwgY29tcGlsZSBvbiBub24tSVB2NiBzeXN0ZW1zLCBhbmQgZGV0ZWN0CiAgICAJTGludXgsIElOUklBLCBTb2xhcmlzIElQdjYuIE5vIGNvZGUgZm9yIHRoZW0geWV0LiBPcmlnaW5hbAogICAgCWF1dGhvcjogaXRvanVuQGlpamxhYi5uZXQKCmRhdmVzIDE1IE5vdiA5OSAwNzo1NjowNgogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggaGFuZGxpbmcgb2YgZmFpbGVkIEdFVC9TRVQgcmVxdWVzdHMKCm1zbGlmY2FrIDE1IE5vdiA5OSAwODoyOTowNgogICAgRml4IGRlc2NyaXB0aW9uIG9mIHJlYWRfb2JqaWQgcmV0dXJuIHZhbHVlLgoKbmJhIDE1IE5vdiA5OSAxNDowMDoyMAogICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogZnVydGhlciBlcnJvciBjaGVja2luZywgY291cnRlc3kgbXNsaWZjYWsKICAgICAgc25tcGJ1bGtnZXQuYzogbmVlZHMgI2luY2x1ZGUgPGdldG9wdC5oPiAoVGhhbmtzIHRvIFJvYmVydCBTdG9yeSkKCm5iYSAxNSBOb3YgOTkgMTQ6MDM6MzYKICAgIC0gbWlicy86IHJlcGxhY2UgUkZDMTI3MS1NSU4udHh0IHdpdGggUk1PTi1NSUIudHh0IChSRkMgMTc1NyB2ZXJzaW9uKQoKbmJhIDE1IE5vdiA5OSAxNDowNTo1NwogICAgLSBwYXJzZS5jOiBmaXggYSBzcGVsbGluZyBlcnJvciBpbiB0aGUgTUlCIHJlcGxhY2VtZW50IHRhYmxlLgoKbmJhIDE1IE5vdiA5OSAxNDowOToyOQogICAgLSAuY3ZzaWdub3JlOiB1cGRhdGVzIHRvIGtlZXAgY3ZzIHNpbGVudCBhYm91dCBnZW5lcmF0ZWQgZmlsZXMuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MTg6NDYKICAgIC0gKEZBUSwgUkVBRE1FKTogbmV3IG1pcnJvciBpbiBBdXN0cmFsaWEuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MTk6MjIKICAgIC0gKG1pYl9tb2R1bGVzLmMsIHNubXBfdmFycy5jKTogbW92ZSBzdWJhZ2VudF9wcmVfaW5pdCgpIHRvIGluaXRfYWdlbnQoKS4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToxOTo0NwogICAgLSAoVE9ETyk6IG1lbW9yeSBpbnQgLT4gdWludC4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToyMDoxMAogICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IHNldCB0byAnXDAnIGluc3RlYWQgb2YgTlVMTCBmb3IgLVdhbGwuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MjE6MDcKICAgIC0gKG1pYjJjLCB0a21pYik6IHJlbW92ZSAtdy4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToyMToyOAogICAgLSAoc25tcF9hZ2VudF9hcGkuMyk6IGRvbid0IGNhbGwgc3ViYWdlbnRfcHJlX2luaXQoKS4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToyMTo1NwogICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogZGVidWdnaW5nIHN0YXRlbWVudHMgaW5zZXJ0ZWQuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MjI6MjQKICAgIC0gKGFzbjEuYywgYXNuMS5oKTogbmV3IGZ1bmN0aW9uOiBhc25fY2hlY2tfcGFja2V0KCkuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MzY6MjYKICAgIC0gKHNubXBkZWx0YS5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYyk6CiAgICAgIC0gYWRkIGRlZmF1bHRfc3RvcmUuaAoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjM4OjI1CiAgICAtIChkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKTogbW92ZSBtb3JlIG9wdGlvbnMgdG8gdGhlIGRzXyogcm91dGluZXMuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6NDE6MzgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIG1vdmUgbW9yZSBvcHRpb25zIHRvIHRoZSBkc18qIHJvdXRpbmVzLgogICAgICAtIGltcGxlbWVudCBzdXBwb3J0IGZvciBUQ1AgYnJva2VuIFNOTVAgcGFja2V0cyBieSBzdG9yaW5nIGJ1ZmZlcnMKICAgICAgICBhbmQgZGVhbGluZyB3aXRoIHBpZWNlcyBvZiBpbmNvbWluZyBkYXRhIHRpbGwgd2UgaGF2ZSBhIGZ1bGwgcGFja2V0LgoKbXNsaWZjYWsgMTUgTm92IDk5IDE2OjQzOjI1CiAgICBEb24ndCBhZGQgTlVMTCB2YXJiaW5kIHdoZW4gRU5ET0ZNSUJWSUVXIGlzIHJlYWNoZWQuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTc6NDE6MTAKICAgIC0gKHNubXBfYWdlbnQuYywgbWFzdGVyLmMsIHByb3RvY29sLmMsIHByb3RvY29sLmgsIHN1YmFnZW50LmMsCiAgICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIG1ha2UgVENQIHN1cHBvcnQgYmV0dGVyIGZvciBhZ2VudHguICBTdGlsbCBoYXMgYSBwcm9ibGVtIChJIGJyb2tlIGFnZW50eCkuCgptc2xpZmNhayAxNSBOb3YgOTkgMjE6NTc6MzYKICAgIEZpeCBidWcjNzU6IGJ1aWxkIC0td2l0aG91dC1vcGFxdWUtdHlwZXMKCm1zbGlmY2FrIDE2IE5vdiA5OSAwMzozNjowOQogICAgRml4IHNwZWxsaW5nIG1pc3RlYWsuCgpuYmEgMTYgTm92IDk5IDA2OjIxOjI1CiAgICAtIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhbnNsYXRlLmMsIG1pYi5jOiByZWRvIHRoZSBzbm1wdHJhbnNsYXRlIG9wdGlvbnMKICAgIAl0byBmb2xsb3cgdGhlIGNvbW1vbiBvcHRpb24gc2V0LiBJc3N1ZSB3YXJuaW5ncyB3aGVuIHNvbWVvbmUKICAgIAl1c2VzIHRoZSBvbGQgZm9ybSwgYWR2aXNpbmcgYWJvdXQgdGhlIG5ldy4KCm1zbGlmY2FrIDE2IE5vdiA5OSAwODo0ODozMQogICAgRW1icmFjZSBhbGwgSFAtOTAwMC82eHgsN3h4LCA4eHggc2VyaWVzIHBsYXRmb3Jtcywgd2l0aG91dCByZWdyZXRzLgoKZGF2ZXMgMTYgTm92IDk5IDA5OjEzOjU5CiAgICAtIChzbm1wbGliL2FzbjEuYyk6IEZpeCBlbmNvZGluZyBvZiByb290IE9JRHMuCgpoYXJkYWtlciAxNiBOb3YgOTkgMTA6MjQ6NTkKICAgIC0gKHByb3RvY29sLmMpOiBhZGQgdGhlIGhlYWRlciBsZW5ndGggdG8gdGhlIHBhY2tldCBsZW5ndGggZXN0aW1hdGUuCgpoYXJkYWtlciAxNiBOb3YgOTkgMTA6MjY6MDIKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIHRoZSBUOiBmbGFnIGZvciAtVCB0byBnZXRvcHQKCm1zbGlmY2FrIDE2IE5vdiA5OSAxNDo0MTo1MAogICAgTVNWQyB0b3VjaHVwczoKICAgIEFkZGVkIHNubXB0cmFwZCBwcm9qZWN0IC5EU1AgZmlsZTsgQWxsIC5EU1tQV10gZmlsZXMgQ1ItTEYgbGluZSB0ZXJtaW5hdGVkOwogICAgRml4IHdhcm5pbmdzIGluIGFzbjEuYyBhbmQgc25tcF9hcGkuYzsgUmVtb3ZlIHVudXNlZCB2YXIgaW4gc25tcHRyYW5zbGF0ZS5jLgoKbXNsaWZjYWsgMTYgTm92IDk5IDE0OjU2OjU5CiAgICBCdWlsZCB3aXRoIGdldG9wdC4KCm1zbGlmY2FrIDE3IE5vdiA5OSAwNTo1OToxNQogICAgUmVwbGFjZSB1X2ludDE2X3Qgd2l0aCBtb3JlIHVuaXZlcnNhbGx5IHN1cHBvcnRlZCB1X3Nob3J0LgoKbXNsaWZjYWsgMTcgTm92IDk5IDA3OjM1OjAzCiAgICBQcm9qZWN0IGZpbGUgZm9yIGJ1aWxkaW5nIHNubXBidWxrZ2V0IHVzaW5nIE1TVkMrKyBncmF0aXMgUm9iZXJ0IFN0b3J5LgoKbXNsaWZjYWsgMTcgTm92IDk5IDA3OjM2OjU4CiAgICBBZGQgc25tcGJ1bGtnZXQgdG8gbGlzdCBvZiBhcHBzIHRvIGJ1aWxkLgoKaGFyZGFrZXIgMTcgTm92IDk5IDExOjU1OjQxCiAgICAtIChkc19hZ2VudC5oLCBrZXJuZWwuYywgc25tcGQuYywgc25tcGQuMS5kZWYpOgogICAgICAtIHJ1biB0aW1lIHJvb3RsZXNzIHJ1bm5pbmcgc3VwcG9ydCBmb3Igc25tcGQsIGJ5IHJlcWVzdCBvZiBKb2UuICgtcikKCmhhcmRha2VyIDE3IE5vdiA5OSAxMjoyMToyNgogICAgLSAoc25tcHRvc3FsKToKICAgICAgLSBtb3ZlIHRvIE5ldDo6U01UUC4KICAgICAgLSBNYWtlIG5ldyBhdXRoZ3JvdXAgYW5kIGF1dGhob3N0IHRhYmxlcyB0byBjb250YWluIFNOTVA6OlNlc3Npb24gZGVmYXVsdHMuCgpoYXJkYWtlciAxNyBOb3YgOTkgMTM6MDU6MDAKICAgIC0gKGNvbmZpZ3VyZS5pbik6IHVwZGF0ZSB0aGUgc28gTEQgZm9yIGxpbnV4IHRvICQoQ0MpLgoKaGFyZGFrZXIgMTcgTm92IDk5IDEzOjA4OjE3CiAgICAtIChjb25maWd1cmUpOiB1cGRhdGUuCgpoYXJkYWtlciAxNyBOb3YgOTkgMTM6MDk6MTQKICAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IHVwZGF0ZS4gIERlYWxzIHdpdGggUm93U3RhdHVzIG9iamVjdHMgYmV0dGVyLgoKbmJhIDE3IE5vdiA5OSAyMTo1MToxOQogICAgLSBkZWZhdWx0X3N0b3JlLmM6IGRzX3RvZ2dsZV9ib29sZWFuIG1pc3NlZCBhIG1hc2sKCm1zbGlmY2FrIDE4IE5vdiA5OSAxNzo1ODo0NwogICAgQ2hlY2staW4gYWdlbnQgY2hhbmdlcyB0byBzdXBwb3J0IFdpbjMyIGFnZW50IGJ1aWx0IHdpdGggTVNWQysrLgogICAgVGhhbmtzIHRvIFJvYmVydCBTdG9yeS4KCm1zbGlmY2FrIDE4IE5vdiA5OSAxODoxNDo1OAogICAgTW9yZSB0b3VjaHVwIHBlciBNU1ZDKysgV2luMzIgYWdlbnQgd29yay4KCm1zbGlmY2FrIDE4IE5vdiA5OSAxODoyMDo0NQogICAgTW9yZSBNU1ZDKysgV2luMzIgYWdlbnQgZmlsZXMsIGdyYXRpcyBSb2JlcnQgU3RvcnkuCgpkYXZlcyAxOSBOb3YgOTkgMTE6MDY6MjYKICAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgpOiBQcm92aWRlIG1pc3NpbmcgaW5kZXggYWxsb2NhdGlvbiBkZWZpbmVzLgoKaGFyZGFrZXIgMTkgTm92IDk5IDEzOjQ3OjAxCiAgICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBmaXggbWliMmMuc3RvcmFnZS5jb25mLgoKaGFyZGFrZXIgMTkgTm92IDk5IDE0OjIwOjI1CiAgICAtIChzbm1wX3ZhcnMuYywgc25tcGQuYywgc25tcF9hbGFybS5oLCBzbm1wX2FwaS5jKToKICAgICAgLSBtYWtlIHNubXBfc2VsZWN0X2luZm8gcG9zc2libHkgaGFuZGxlIGFsYXJtIHRpbWVycy4KICAgICAgLSBtYWtlIHNubXBkIHVzZSB0aGVtIGFuZCBjYWxsIHNubXBfcnVuX2FsYXJtcygpLgoKaGFyZGFrZXIgMTkgTm92IDk5IDE1OjI0OjE1CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwKICAgICAgZGlzay5jLCBkaXNrLmgsIFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEFuZHkgSE9PRDoKICAgICAgLSBtb25pdG9yIGRpc2sgaW5vZGUgcGVyY2VudGFnZXMuCgpuYmEgMjIgTm92IDk5IDA1OjI3OjE1CiAgICAtIGNvbmZpZ3VyZS5pbjogY29uZmlndXJlIHRlc3QgZm9yIG5ldGluZXQvaXAuaAoKbmJhIDIyIE5vdiA5OSAwNToyODowOQogICAgIHNubXBfbG9nZ2luZy5jOiBvbmx5IHRpbWVzdGFtcCBlZnRlciBhIG5ld2xpbmUKCm5iYSAyMiBOb3YgOTkgMDU6Mjg6NDUKICAgIC0gc25tcGQuYzogcmVpbnN0YXRlIHNubXBkIC1hIGZ1bmN0aW9uYWxpdHkKCm5iYSAyMiBOb3YgOTkgMDU6Mjk6MzcKICAgIC0gcGFzcy5jOiByZW1vdmUgYSBjb25zdCBjYXN0aW5nIHdhcm5pbmcKCm5iYSAyMiBOb3YgOTkgMDU6MzI6MDUKICAgIC0gSVBWNi1UQ1AtTUlCLCBJUFY2LVVEUC1NSUIsIGlwdjYuYywgdGNwLmM6IG1vdmUgdGhlIElQdjYgdGNwIGFuZCB1ZHAKICAgIAl0YWJsZXMgdG8gdGhlaXIgcHJvcGVyIHBvc2l0aW9uIGluIHRoZSB0cmVlLCBhY2NvcmRpbmcgdG8gdGhlIFJGQy4KCm5iYSAyMiBOb3YgOTkgMDY6NTk6NDYKICAgIC0gaXB2Ni5jOiB1cGdyYWRlIHRvIHRoZSBjdXJyZW50IEthbWUgcGF0Y2gKCm5iYSAyMiBOb3YgOTkgMDc6MTY6NTkKICAgIC0gaXB2Ni5jOiBzb21lIG1vcmUgQU5TSSBwcm90b3R5cGVzCgpkYXZlcyAyMiBOb3YgOTkgMDc6MzA6MDYKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnR4L2NsaWVudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgIEluZGV4IGRlLWFsbG9jYXRpb24sIGFuZCBBZ2VudFggaW5kZXggc3VwcG9ydC4KCm1zbGlmY2FrIDIyIE5vdiA5OSAwODoyMDoyOQogICAgUmV0cnkgYWRkIE1TVkMrKyBwcm9qZWN0IGZpbGUuCgptc2xpZmNhayAyMiBOb3YgOTkgMDg6MjE6NTgKICAgIEFkZCBDVlMgaWdub3JlIGxpc3QgZm9yIHdpbjMyL2xpYmFnZW50LgoKaGFyZGFrZXIgMjIgTm92IDk5IDA4OjI5OjMzCiAgICAtIChzbm1wdGFibGUuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgICAtIEFkZGVkIGFiaWxpdHkgdG8gdXNlIE1JQiB0byBxdWVyeSB0YWJsZXMgd2l0aCBub24tc2VxdWVudGlhbCBjb2x1bW4gT0lEcy4KICAgICAgLSBBZGRlZCBjb2RlIHRvIGhhbmRsZSBzcGFyc2UgdGFibGVzLgoKaGFyZGFrZXIgMjIgTm92IDk5IDA5OjAwOjQ1CiAgICAtICh1c21Vc2VyLmMpOiBmaXggb2lkIC0+IGNoYXIgY29udmVyc2lvbnMgcG9pbnRlZCBvdXQgYnkgTWljaGFlbCBTbGlmY2FrLgoKaGFyZGFrZXIgMjIgTm92IDk5IDA5OjA3OjM0CiAgICAtIChSRUFETUUpOiBhZGRlZCBtb3JlIHBlb3BsZSB0byB0aGUgdGhhbmtzIGxpc3QuCgpoYXJkYWtlciAyMiBOb3YgOTkgMDk6MTg6MTUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBob3N0X3Jlcy5oLCBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywKICAgICAgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGJzZGk0LmgpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CiAgICAgIC0gYnNkaSBzdXBwb3J0IGZvciB0aGUgaG9zdCByZXNvdXJjZXMgbWliLgoKaGFyZGFrZXIgMjIgTm92IDk5IDA5OjI0OjUxCiAgICAtIChUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwpOiB1cGRhdGUgdGVzdHMgZm9yIG5ldwogICAgICBlcnJvciBtZXNzYWdlcy4KCmhhcmRha2VyIDIyIE5vdiA5OSAxMjozMDowNQogICAgLSAodm1zdGF0LmMsIHZtc3RhdF9mcmVlYnNkMi5jKTogdXNlIGhlYWRlcl9nZW5lcmljIG5vdCBoZWFkZXJfc2ltcGxlX3RhYmxlCgpoYXJkYWtlciAyMiBOb3YgOTkgMTI6NDk6MjEKICAgIC0gKHZhY21fdmFycy5jLCBwYXNzLmMpOiBmaXggb2lkIC0+IGNoYXIgY29udmVyc2lvbnMuCgpuYmEgMjIgTm92IDk5IDEyOjU0OjA4CiAgICAtICo6IGNoYW5nZSB0aGUgZmlyc3QgYXJndW1lbnQgb2YgdGhlIGNvbmZpZyBwYXJzZXIgZnVuY3Rpb25zIHRvIGEKICAgIAljb25zdCBzdHJpbmcKCmhhcmRha2VyIDIyIE5vdiA5OSAxMzowNTowNQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCB0Y3AuYyk6IFBhdGNoCiAgICAgIGZyb20gR2FycmV0dCBXb2xsbWFuOgogICAgICAtIEZyZWVCU0QgNC54IGZpeGVzLgoKaGFyZGFrZXIgMjIgTm92IDk5IDE2OjQ4OjU0CiAgICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZSBjcmVhdGlvbiBvZiBpbml0aWFsIGFuZCB0ZW1wbGF0ZSogdXNlcnMuCgpoYXJkYWtlciAyMiBOb3YgOTkgMTY6NTA6MjUKICAgIC0gKHZhY21fdmFycy5jLCB1c21Vc2VyLmMpOiBuZXcgY29uZmlnIHRva2VucyBhbGxvd2luZyBlYXN5IHVzZXIgYW5kCiAgICAgIHZhY20vdXNlciBjb25maWd1cmF0aW9uIGFuZCBzZXR1cC4KCmhhcmRha2VyIDIyIE5vdiA5OSAxNzowMjoxMQogICAgLSAoc2NhcGkuYyk6IGZpeCBsZW5ndGggY2hlY2sgb2Yga2V5IHNwYWNlLgoKaGFyZGFrZXIgMjIgTm92IDk5IDE3OjUyOjM2CiAgICAtIChSRUFETUUuc25tcHYzKTogdXBkYXRlIHRvIHJlZmxlY3QgbmV3IGFuZCBlYXNpZXIgLmNvbmYgbWVjaGFuaXNtcy4KCm5iYSAyMyBOb3YgOTkgMDE6MjM6MTYKICAgIC0gaXB2Ni5oOiByZW1vdmUgYW4gX19QIHRoYXQgaGFkIHNuZWFrZWQgaW4KCm5iYSAyMyBOb3YgOTkgMDE6MjQ6MzcKICAgIC0gSVBTRUMtTUlCLnR4dDogY2hhbmdlIHNvbWUgdW5kZXJsaW5lcyBpbnRvIGRhc2hlcywgYW5kIHJlcGFpciB0aGUKICAgIAk6Oj0gKG1heWJlIEkgc2hvdWxkIGhhdmUgbG9va2VkIGF0IHRoaXMgZmlsZSBiZWZvcmUgYWRkaW5nIGl0IDotKSkKCm5iYSAyMyBOb3YgOTkgMDE6MjY6MjYKICAgIC0gcGFzc19wZXJzaXN0LmM6IGZpeCBzb21lIGFyZ3VtZW50cyAoaW50ID0+IHNpemVfdCkuIFRoYW5rcyB0bwogICAgCUFudGhvbnkgU2hpcG1hbiA8YXNoaXBtYW5AZXJnZ3JvdXAuY29tPgoKZGF2ZXMgMjMgTm92IDk5IDAxOjM3OjI5CiAgICAtIChob3N0L2hyX3N3cnVuLmMpOiBGaXggbGludXggcHJvY2VzcyBtZW1vcnkgdXNhZ2UgZmlndXJlcy4KICAgIAkoUmVwb3J0ZWQgYnkgTWl0Y2ggU2hpZWxkcykKCmRhdmVzIDIzIE5vdiA5OSAwMjoxMTo0MwogICAgLSAoaG9zdC9ocl9zdG9yYWdlLmMgaG9zdC9ocl9zd3J1bi5jKTogR3VhcmQgYWdhaW5zdCBjYWxjdWxhdGlvbiBvdmVyZmxvdwoKbmJhIDIzIE5vdiA5OSAwMjoyMDoxMwogICAgLSBzbm1wX2FnZW50LmM6ICNpbmNsdWRlIDx1bmlzdGQuaD4gZm9yIHNlbGVjdCBwcm90b3R5cGUKCmRhdmVzIDIzIE5vdiA5OSAwNToyMTo1OAogICAgLSAoc25tcF9hZ2VudC5jIGFnZW50eC9zdWJhZ2VudC5jKToKICAgICAgIE1ha2UgbWFpbiBzZXNzaW9uIHN0cnVjdHVyZSB2aXNpYmxlIHRocm91Z2hvdXQgdGhlIGFnZW50LAogICAgICAgYW5kIHVzZSB0aGlzIGZvciBBZ2VudFggc3ViYWdlbnQgYXMgd2VsbC4KCmRhdmVzIDIzIE5vdiA5OSAwNTo0MDowOQogICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSk6CiAgICAgIC0gTWFrZSBpbmRleCByZWdpc3RyYXRpb24gQVBJIG1vcmUgaW1tZWRpYXRlbHkgY29udmVuaWVudAogICAgICAtIEFzc29jaWF0ZSBzdWNoIHJlZ2lzdHJhdGlvbnMgd2l0aCB0aGUgbWFpbiBzZXNzaW9uCiAgICAgIC0gbmV3IHJvdXRpbmUgdG8gdW5yZWdpc3RlciBhbGwgaW5kZXhlcyBmb3IgYSBnaXZlbiBzZXNzaW9uCiAgICAgIC0gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIEFOWSBpbmRleCBhbmQgTkVXIGluZGV4CiAgICAgIC0gY2xlYW4gdXAgYXNzb3J0ZWQgY29tcGlsZXIgd2FybmluZ3MKCmhhcmRha2VyIDIzIE5vdiA5OSAxNzo1MTo0NAogICAgLSAoc25tcHRvc3FsKTogZml4IGZyb20gYWRkcmVzcyBsaW5lLCBvdGhlciBtaXNjIGZpeGVzLgoKZGF2ZXMgMjQgTm92IDk5IDA5OjAzOjAwCiAgICAtIChhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBSZWxlYXNlIGFsbG9jYXRlZCBpbmRleGVzIG9uIHN1YmFnZW50IHNodXRkb3duLgoKaGFyZGFrZXIgMjQgTm92IDk5IDA5OjA5OjA4CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHVzbVVzZXIuYywKICAgICAga2V5dG9vbHMuYywga2V5dG9vbHMuaCwgbGNkX3RpbWUuYywgc2NhcGkuaCwgdG9vbHMuYywKICAgICAga2V5bWFuYWdldGVzdC5jLCBzY2FwaXRlc3QuYywgY29uZmlnLmgpOgogICAgICAtIGZvcmNlIC0tZW5hYmxlLWRldmVsb3BlciBmb3IgQ1ZTIGNoZWNrb3V0cy4KICAgICAgLSByZW1vdmUgYWxsIHJlZmVyZW5jZXMgdG8gS01ULgoKaGFyZGFrZXIgMjQgTm92IDk5IDA5OjE2OjAyCiAgICAtIChJTlNUQUxMKTogY2hhbmdlIGVkaXRpbmcgb2YgY29uZmlnLmggbm90ZS4KCmhhcmRha2VyIDI0IE5vdiA5OSAxMDo0MzowOAogICAgLSAodmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgIC0gYWxsb3cgc2VwZXJhdGlvbiBvZiBtYXNrIHdpdGggYm90aCAuIGFuZCA6LgoKbXNsaWZjYWsgMjQgTm92IDk5IDExOjA3OjA1CiAgICBGaXggQlVHIzU3IHVzaW5nIG1vZGlmaWVkIHBhdGNoIHN1cHBsaWVkIGJ5IHphbnlAdHJpcS5uZXQuCgptc2xpZmNhayAyNCBOb3YgOTkgMTE6MDc6NDkKICAgIEZpeCBCVUcjNTcgdXNpbmcgMi8zIG9mIHBhdGNoIHN1cHBsaWVkIGJ5IHphbnlAdHJpcS5uZXQuCgpuYmEgMjUgTm92IDk5IDE0OjMyOjQ3CiAgICAtIHNubXBfYXBpLmMsIGFnZW50X3RyYXAuYywgc25tcF9hZ2VudC5jLCBzbm1wX21pYi5oLCBzbm1wX21pYi5jOgogICAgCWZpeCBtaXNhbGlnbm1lbnQgb2Ygc3RhdGlzdGljcyBjb3VudGVycwoKbmJhIDI1IE5vdiA5OSAxNDozMzoxNQogICAgLSBzbm1wX21pYi5oOiBmaXggbWlzYWxpZ25tZW50IG9mIHN0YXRpc3RpY3MgY291bnRlcnMKCm5iYSAyNSBOb3YgOTkgMTQ6NTI6NTcKICAgIC0gdXNtVXNlci5jOiBuZXcgdXNlciBpcyBub3QgYWRkZWQgdW5sZXNzIGJvdGggYXV0aCBhbmQgcHJpdiBpcyBzcGVjaWZpZWQKICAgIAlvbiBjcmVhdGVVc2VyIGRpcmVjdGl2ZQoKbmJhIDI1IE5vdiA5OSAxNDo1NjoxMgogICAgLSBkZWZhdWx0c19zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wX3BhcnNlX2FyZ3MuYzogYWRkIGRlZkNvbW11bml0eQogICAgCWRpcmVjdGl2ZQogICAgLSBzbm1wX2FwaS5oLCBzbm1wX2FwaS5jOiBhZGQgZXJyb3Jjb2RlIGZvciBtYWxsb2MgZmFpbHVyZQoKbmJhIDI1IE5vdiA5OSAxNDo1Nzo1NwogICAgLSBtaWIuYzoga2lsbCB5ZXQgYW5vdGhlciBzaWxseSB3YXJuaW5nIGZyb20gZ2NjCgpuYmEgMjYgTm92IDk5IDExOjE4OjIzCiAgICAtIGRlZmF1bHRfc3RvcmUuYzogYWx0aG91Z2ggcmVhZF9jb25maWcgaXMgY2FzZSBpbnNlbnNpdGl2ZSwgZHNfaGFuZGxlX2NvbmZpZwogICAgCXdhcyBub3QuIEF0IHRoZSBzYW1lIHRpbWUgaXQgZmFpbGVkIHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0aGF0CiAgICAJaXQgd2FzIGNhbGxlZCBidXQgZGlkbid0IGtub3cgd2hhdCB0byBkby4KCm1hcnogMjcgTm92IDk5IDA2OjMxOjExCiAgICAgKGFnZW50L2tlcm5lbC5jLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gpOiBmaXggLXIgc3dpdGNoIHRvIHN1cHJlc3MgZXJyb3IgbWVzc2FnZXMgYWJvdXQgZmFpbGVkIGtlcm5lbCBhbmQgYWRkIC1yIHRvIGRlZmF1bHQgdGVzdGluZyBjb2RlIHNvICdtYWtlIHRlc3QgY2FuIGJlIHJ1biBieSB1c2VyCgpoYXJkYWtlciAyNyBOb3YgOTkgMDk6MTg6MTUKICAgIC0gKHZhY21fdmFycy5jKTogcmVkbyByd3VzZXIvcm91c2VyIHRvIGFsbG93IHNwZWNpZmljYXRpb24gb2YgYXV0aCB0eXBlLgoKbXNsaWZjYWsgMjkgTm92IDk5IDA1OjUwOjI3CiAgICBNb3JlIEhQLVVYIGFDQyBmaXhlcyBzdXBwbGllZCBieSBNYXJra3UgTGF1a2thbmVuLgoKbXNsaWZjYWsgMjkgTm92IDk5IDEwOjMwOjUxCiAgICBVc2UgbnRvaHMgbWFjcm8gdG8gY2FyZWZ1bGx5IG9idGFpbiB0aGUgZGVmYXVsdCBzZXJ2aWNlIHBvcnQuCgptc2xpZmNhayAyOSBOb3YgOTkgMTA6MzM6NDUKICAgIEZpeCByZWZlcmVuY2UgdG8gc25tcGxpYi4KCm1zbGlmY2FrIDI5IE5vdiA5OSAxMDozNjo0MwogICAgUmVtb3ZlIGxhc3QgdmVzdGlnZXMgb2YgREVCVUdfTUFMTE9DX0lOQyBmcmFnbWVudHMuCgptc2xpZmNhayAyOSBOb3YgOTkgMTE6NTg6MzcKICAgIEZyZWUgU1RSRUFNIHBhY2tldCBidWZmZXIgd2hlbiBzZXNzaW9uIGlzIGNsb3NlZDsKICAgIFRlc3QgZm9yIGNsb3NlIGluIHByb2dyZXNzIGZvciByZWFkLCB3cml0ZSwgc2VsZWN0LCBhbmQgdGltZW91dCBmdW5jdGlvbnMuCgptc2xpZmNhayAyOSBOb3YgOTkgMTI6NDM6MzQKICAgIFVzZSBzaXplX3QgZm9yIG5hbWVfbGVuIG1lbWJlci4KCmhhcmRha2VyIDI5IE5vdiA5OSAxNDowMjowOAogICAgLSAoc3lzdGVtLmMsIHN5c3RlbS5oKTogaW1wbGVtZW50IHN0cmNhc2VzdHIgKGZyb20gTWljaGFlbCBTbGlmY2FrKS4KCmhhcmRha2VyIDI5IE5vdiA5OSAxNDowMjo1MAogICAgLSAocGFyc2UuYyk6IG1ha2UgYmVzdCBtYXRjaGluZyAoLWIpIHVzZSByZWdleCB3aGVuIGF2YWlsYWJsZS4KCmhhcmRha2VyIDI5IE5vdiA5OSAxNDowMzo0OQogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBjaGVjayBmb3IgcmVnZXguaCwgcmVnY29tcCwgc3RyY2FzZXN0ci4KCmhhcmRha2VyIDI5IE5vdiA5OSAxNDowNDowOQogICAgLSAoUkVBRE1FKTogYW5vdGhlciBuYW1lLgoKbmJhIDMwIE5vdiA5OSAwMzowMTozNAogICAgLSBzbm1wX2FwaS5oLCBzbm1wX21pYi5bY2hdOiBBIGNvdXBsZSBhZGRpdGlvbmFsIFNOTVAgc3RhdGlzdGljcyBwb2ludHMKCmRhdmVzIDMwIE5vdiA5OSAwNzowNzowMQogICAgLSAoYWdlbnR4L21hc3Rlci5jKTogUmVtb3ZlIHJlZHVuZGVudCByb3V0aW5lLgoKZGF2ZXMgMzAgTm92IDk5IDA3OjA4OjQzCiAgICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEZpeCBoYW5kbGluZyBvZiBtdWx0aS12YXJpYWJsZSByZXF1ZXN0cyB0byBzdWJhZ2VudHMuCgptc2xpZmNhayAzMCBOb3YgOTkgMTM6MTA6NDAKICAgIEZpeCAtVGQgdXNhZ2UgZGVzY3JpcHRpb247IHVzZSBzd2l0Y2ggd2hlbiBjdXJyZW50X25hbWUgaXMgTlVMTC4KCm1zbGlmY2FrIDMwIE5vdiA5OSAxMzoxMToxNAogICAgSW5jbHVkZSBjdHlwZS5oCgpoYXJkYWtlciAzMCBOb3YgOTkgMTQ6MzA6MzIKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBtaWIuYywgbWliLmgsIHBhcnNlLmMpOiBpbXBsZW1lbnQgcmVnZXggbWF0Y2hpbmcKICAgICAgZXZlcnl3aGVyZS4KCm1zbGlmY2FrIDMwIE5vdiA5OSAxNDo0NzozNgogICAgVXNlIFdlcycgY29vbCBuZXcgZ2V0X3dpbGRfbm9kZSBtYXRjaCBtZXRob2QuCgptc2xpZmNhayAzMCBOb3YgOTkgMTY6NTA6NDEKICAgIEFkZCBtdWx0aXBsZSBtYXRjaCBjYXBhYmlsaXR5IHRvIGZpbmRfYmVzdF90cmVlX25vZGUsIGFuZCB1c2UgaXQgaW4KICAgIHNubXB0cmFuc2xhdGUgKG5ldyAtQiBvcHRpb24pLgoKbXNsaWZjYWsgIDEgRGVjIDk5IDA2OjQwOjA3CiAgICBFcnJvciBjaGVjayBhbmQgZnJlZSByZXNvdXJjZXMgZHVyaW5nIHJlZ2V4IHByb2Nlc3NpbmcuCgptc2xpZmNhayAgMSBEZWMgOTkgMTA6Mzg6MTgKICAgIFByZXZlbnQgb3ZlcmZsb3cgb2Ygb2JqZWN0IElEIGluIGdldF9tb2R1bGVfbm9kZS4KICAgIEluIGZpbmRfYmVzdF90cmVlX25vZGUsIHRyZWF0IHJlc3VsdCBmcm9tIHJlY3Vyc2VkIGNhbGwgc2FtZSBmb3IgbWF0Y2ggPSAwLgoKbXNsaWZjYWsgIDEgRGVjIDk5IDE1OjU1OjU2CiAgICBGaXggYnVnICMxMTIgYW5kIGZpbmlzaCBwYXRjaCBzdXBwbGllZCBieSBBbnRob255IFNoaXBtYW4uCgptc2xpZmNhayAgMSBEZWMgOTkgMTY6MzI6MTQKICAgIFVzZSBTTk1QX01BWEJVRiB3aGVuIGRlZmluaW5nIGxhcmdlIHN0YXRpYyBidWZmZXIgc3RvcmFnZS4KCm5iYSAgMiBEZWMgOTkgMDQ6NDE6NTUKICAgIC0gbWliLmM6IGFjY2Vzc2luZyBhbmQgZnJlZWVpbmcgZW52X3ZhciBtaXNwbGFjZXMgYXJvdW5kIE5VTEwgdGVzdAoKbmJhICAyIERlYyA5OSAwNDo0Mjo1NwogICAgLSBzbm1wdHJhcGQuYzogZml4IHNubXBfY2xvbmVfcGR1MiBieSB1c2luZyB0aGUgc25tcGxpYiB2ZXJzaW9uCgpuYmEgIDIgRGVjIDk5IDA1OjA2OjU1CiAgICAtIHVzbVVzZXIuYyBzbm1wdjMuW2NoXTogbW92ZSB1c21fcGFyc2VfY3JlYXRlX3VzbVVzZXIgZnJvbSB0aGUgYWdlbnQKICAgICAJdG8gdGhlIGxpYnJhcnksIHNvIHRoYXQgc25tcHRyYXBkIGNhbiB1c2UgaXQuCgptc2xpZmNhayAgMiBEZWMgOTkgMDk6MjE6NDUKICAgIEZpeCBidWcgIzgxIC0gY29udGludWUgaW5zdGFsbCBhZnRlciBlcnJvciBjcmVhdGluZyBwZXJzaXN0ZW50IGRpcmVjdG9yeS4KCmhhcmRha2VyICAyIERlYyA5OSAxNjo1OTo1NQogICAgLSAocGFyc2UuYyk6IHR1cm4gb24gUkVHRVhfRVhURU5ERUQuCgpuYmEgIDMgRGVjIDk5IDE1OjAzOjQ4CiAgICAtIHNubXB0cmFwZC5jOiBjb3JyZWN0IGhhbmRsaW5nIG9mIFNJR0hVUCB0cCByZWNvbmZpZ3VyZS4KCm5iYSAgMyBEZWMgOTkgMTU6MDQ6MTYKICAgIC0gc25tcHRyYXBkX2hhbmRsZXJzLmM6IGEgbGl0dGxlIG5pY2VyIGVycm9yIG1lc3NhZ2UKCm5iYSAgMyBEZWMgOTkgMTU6MDU6MTMKICAgIC0gcGFyc2UuYzogcmVtZW1iZXIgdG8gTlVMTCBhIGZyZWVkIHBvaW50ZXIKCmhhcmRha2VyICAzIERlYyA5OSAxNjo1MTo0MwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBzd2l0Y2ggdG8gUElDIGZyb20gcGljLgoKaGFyZGFrZXIgIDMgRGVjIDk5IDE2OjUyOjE2CiAgICAtIChNYWtlZmlsZS5pbik6IHVzZSAkKE1BS0UpIGluc3RlYWQgb2YgbWFrZS4KCmhhcmRha2VyICAzIERlYyA5OSAxNjo1Mjo1MQogICAgLSAodm1zdGF0LmMpOiByZW1vdmUgZHVwbGljYXRlIGxpbWl0cy5oIGluY2x1ZGUuCgpuYmEgIDUgRGVjIDk5IDIxOjQ5OjUwCiAgICAtIHBhc3MuYywgcGFzc19wZXJzaXN0LmM6IGVuc3VyZSBwcm9wZXIgYnl0ZSBvcmRlcmluZyB3aGVuIHBhc3MnaW5nCiAgICAJaXBhZGRyZXNzLgoKbXNsaWZjYWsgIDYgRGVjIDk5IDA5OjE5OjA4CiAgICBTaG93IGFsbCBub24tcHJpbnRhYmxlIHN1YmlkcyBpbiBkdW1wX29pZF90b19zdHJpbmcuCiAgICBSZWN1cnNlIGNsZWFyX3RyZWVfZmxhZ3Mgb25seSBpZiBuZWNlc3NhcnkuCgpoYXJkYWtlciAgNiBEZWMgOTkgMTM6NDc6NDEKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogZGVmYXVsdCBzcGVjaWZpY2F0aW9ucyBmb3IgYXV0aC9wcml2IHR5cGVzLgoKaGFyZGFrZXIgIDYgRGVjIDk5IDEzOjUxOjM0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHByaW50IGVycm9yIHN0cmluZ3MgcmV0dXJuZWQgYnkgZ2VuZXJhdGVfS3UoKS4KCm5iYSAgNiBEZWMgOTkgMTQ6MzI6MjIKICAgIC0gLmN2c2lnbm9yZTogTWFrZSBDVlMgc2lsZW50IGFib3V0IGluc3RhbGxhdGlvbiBmaWxlcwoKaGFyZGFrZXIgIDYgRGVjIDk5IDE0OjQ4OjA4CiAgICAtIChzbm1wdXNtLmMpOgogICAgICAtIG1ha2Ugc25tcHVzbSB1c2FibGUgYWdhaW4sIGNoYW5naW5nIGFyZ3VtZW50cyBzbGlnaHRseS4KICAgICAgLSBtYWtlIGl0IGFsc28gdXNlIGRlZmF1bHRzIGZvciBwYXNzcGhyYXNlcywgdXNlciwgZXRjLgoKaGFyZGFrZXIgIDYgRGVjIDk5IDE0OjU2OjIxCiAgICAtIChTdjNjb25maWcsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24pOiBtYWtlIHYzIHRlc3Rpbmcgd29yayBhZ2Fpbi4KCmhhcmRha2VyICA2IERlYyA5OSAxNDo1ODoyOAogICAgLSAoc25tcHVzbS5jKTogZml4IHVzYWdlIGZvciBuZXcgYXJncy4KCm1zbGlmY2FrICA2IERlYyA5OSAxNTowOTo1MwogICAgQ29udmVydCBVU01fRVJSKiB0byBTTk1QRVJSX1VTTSouCgpuYmEgIDYgRGVjIDk5IDE1OjEzOjIxCiAgICAtIHN5c3RlbS5jLCBjb25maWcuaCwgd2luMzIuZHN3LCAqLmRzcCwgbGlic25tcC5kZWY6IGNsZWFuaW5nIHVwIGZvciBWQyBidWlsZHMKCm1zbGlmY2FrICA2IERlYyA5OSAxNjozMToyNgogICAgTW9yZSBmdW4gdXBkYXRpbmcgTVMgVkMgYnVpbGQgb2YgYXBwcyBhbmQgbGlicmFyeS4KCm1zbGlmY2FrICA3IERlYyA5OSAwODowMzowNgogICAgVXNlIGFyZ3ZbMF0gc2luY2UgdGhlIGFwcCB3b250IGJlIHNubXBnZXRuZXh0LCBwcm9iYWJseS4KCmRhdmVzICA3IERlYyA5OSAwODoyOTo1NQogICAgLSAoYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuW2NoXSBhZ2VudC9zbm1wX3ZhcnMuW2NoXSBhZ2VudC9zbm1wZC5bY2hdCiAgICAgICBzbm1wbGliL3JlYWRfY29uZmlnLltjaF0gc25tcGxpYi9zbm1wX2FwaS5jKToKICAgICAgIC0gIFVzZSB0aGUgc2F2ZWQgYXBwbGljYXRpb24gbmFtZSBmb3IgcmVnaXN0ZXJpbmcgY29uZmlnIGhhbmRsZXJzCiAgICAJKE4uQjogVGhpcyBjaGFuZ2Ugd2lsbCBuZWVkIHRvIGJlIGFwcGxpZWQgdG8gTUlCIG1vZHVsZXMgYXMgd2VsbCkKCmhhcmRha2VyICA3IERlYyA5OSAwOToxNDozMAogICAgLSAoaHJfb3RoZXIuYyk6IHNob3J0ZW4gY3B1IGRlc2NyaXB0aW9uIGxlbmd0aC4KCmhhcmRha2VyICA3IERlYyA5OSAwOToxNzo0MQogICAgLSAoc3lzT1JUYWJsZS5jKTogbWFrZSBzeXNPckluZGV4IG5vdC1hY2Nlc3NpYmxlLCBhcyBpdCBzaG91bGQgYmUuCgpoYXJkYWtlciAgNyBEZWMgOTkgMDk6MzI6MDIKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAgLSBjb252ZXJ0IHRvIFNNSXYyIGFuZCBjbGVhbnVwLgoKaGFyZGFrZXIgIDcgRGVjIDk5IDEzOjQ1OjU5CiAgICAtIChzbm1wd2Fsay5jKToKICAgICAgLSBOZXcgYWJpbGl0eSB0byBwZWZvcm0gYSBnZXQgb24gdGhlIHJlcXVlc3RlZCBPSUQgd2hlbiBlaXRoZXIgbm8KICAgICAgICByZXN1bHRzIGFyZSByZXR1cm5lZCBvciB3aGVuIHRoZSB1c2VyIHJlcXVlc3RzIGFuIGluY2x1c2l2ZSBvcHRpb24uCiAgICAgIC0gTmV3IGFiaWxpdHkgdG8gcHJpbnQgbnVtYmVyIG9mIHZhcmlhYmxlcyBmb3VuZCBhdCB0aGUgZW5kLgoKaGFyZGFrZXIgIDcgRGVjIDk5IDEzOjU0OjExCiAgICAtIChzbm1wd2Fsay4xKTogZG9jdW1lbnQgLUNpIGFuZCAtQ3AgKGJhZGx5KS4KCm1zbGlmY2FrICA3IERlYyA5OSAxNToyMzo0NAogICAgRWxpbWluYXRlIG11bHRpcGx5aW5nIGJ5IHNpemVvZihjaGFyKSBvciBzaXplb2YodW5zaWduZWQgY2hhcik7CiAgICBhZ2VudHgvY2xpZW50LmMgLSBzbm1wX2ZyZWVfdmFyYmluZCByZXBsYWNlcyBmcmVlIGluIGZvdXIgcGxhY2VzOwogICAgc25tcHYzL3VzbVVzZXIuYyAtIHVzbV9mcmVlX3VzZXIgcmVwbGFjZXMgZnJlZSBpbiBvbmUgcGxhY2UuCgpoYXJkYWtlciAgOCBEZWMgOTkgMDk6MTk6MDgKICAgIC0gKG1pYi5jKTogcmVnaXN0ZXIgYSBjb25maWcgdG9rZW4gZm9yIHN1ZmZpeCBwcmludGluZy4KCmhhcmRha2VyICA4IERlYyA5OSAxNDowODoyMAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1ha2UgbXJJbmRleCBJTVBMSUVEIHNpbmNlIGl0IGlzIGluIHRoZSBjb2RlLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE0OjQxOjUzCiAgICAtIChtaWIuYyk6IGZpeCAtT3MgYW5kIGluZGV4IGJhc2VkIG9pZCBwcmludGluZyB0byB3b3JrIGFnYWluLgoKbXNsaWZjYWsgIDggRGVjIDk5IDE1OjAxOjIwCiAgICBJbmNsdWRlIGdldG9wdC5oIHRvIGRlZmluZSBvcHRhcmcuCgptc2xpZmNhayAgOCBEZWMgOTkgMTU6MDQ6NTQKICAgIEFkZCBtaXNzaW5nIGRza1BlcmNlbnROb2RlIHRvIERza0VudHJ5ICh0aGFua3MgdG8KICAgICAgICAgICAgIE1pY2hhZWwgS2lya2hhbSA8c3VwcG9ydEBpd2wuY29tPikuCgpoYXJkYWtlciAgOCBEZWMgOTkgMTU6MjM6MDcKICAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKToKICAgICAgLSByZW1lbWJlcmVkIElNUExJRUQgaW5kZXhlcy4KICAgICAgLSBwcm9wZXJseSBwcmludCBPSURzIHdpdGggbGVuZ3RoIHByZWZpeGVzIG9uIHBhcnNlZCBPSURzIHNvCiAgICAgICAgY3V0dGluZy9wYXN0aW5nIG9mIHRoZW0gd29ya3MuCiAgICAgIC0gcHJvcGVybHkgcHJpbnQgc3RyaW5ncyBhbmQgb2lkcyB0aGF0IGFyZSBJTVBMSUVELgogICAgICAtIHByaW50IHN0cmluZ3MgaW4gZWl0aGVyICcgb3IgIiBxdW90ZXMgZGVwZW5kaW5nIG9uIGlmIHRoZWlyIElNUExJRUQuCgpoYXJkYWtlciAgOCBEZWMgOTkgMTU6MjY6NTEKICAgIC0gKFJFQURNRSk6IGFkZCBKdWVyZ2VuLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE1OjI4OjU0CiAgICAtICgqLi5NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE1OjI5OjUyCiAgICAtIChzbm1wZC5jKTogbW92ZSBzeXMvcGFyYW0gb3V0IG9mIGlmZGVmIEZEX1NFVC4KCmhhcmRha2VyICA4IERlYyA5OSAxNTo0NzowMgogICAgLSAoKi4uTWFrZWZpbGUuaW4pOiBBIHJlYWwgbWFrZSBkZXBlbmQgd2l0aCBubyBzc2wgZGVwZW5kYW5jaWVzLCBldGMuCgpoYXJkYWtlciAgOCBEZWMgOTkgMTU6NDk6MzIKICAgIC0gKG1ha2VmaWxlaW5kZXBlbmQucGwsIG1ha2Vub3N5c2RlcGVuZC5wbCwgcmVtb3ZlLWZpbGVzKToKICAgICAgLSBtb3ZlIHRoZSBtYWtlIGRlcGVuZCBwZXJsIHNjcmlwdHMgdG8gdGhlIHRvcCBsZXZlbCB3aGVyZSB0aGV5IG9ubHkKICAgICAgICBuZWVkIHRvIGJlIGVkaXRlZCBvbmNlLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE3OjEzOjE3CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgbWFzdGVyLmMsIHJlYWRfY29uZmlnLmMsIHN5c3RlbS5jLCBzeXN0ZW0uaCk6CiAgICAgIC0gaW1wbGVtZW50IG1rZGlyaGllcigpIGFuZCB1c2UgaXQgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZSBhbmQgYWdlbnR4CiAgICAgICAgc29ja2V0IGZpbGUgY3JlYXRpb24uCgpkYXZlcyAgOSBEZWMgOTkgMDc6MzQ6MDMKICAgIC0gKG1hbi9zbm1wX3RyYXBfYXBpLjMpOiBJbml0aWFsIGRvY3VtZW50YXRpb24gZm9yIGFnZW50IHRyYXAgZ2VuZXJhdGlvbi4KCm5iYSAgOSBEZWMgOTkgMDc6MzQ6MDgKICAgIC0gbWliLmM6IGltcGxlbWVudCBNSUI6OmxhYmVsCgpuYmEgIDkgRGVjIDk5IDA3OjQ5OjM0CiAgICAtIHNubXBjbWQuMTogc3VwcG9ydCBNSUI6OmxhYmVsCgptc2xpZmNhayAgOSBEZWMgOTkgMDg6MTQ6NTkKICAgIFBhdGNoZXMgc3VwcGxpZWQgYnkgSnVlcmdlbiBTY2hvZW53YWVsZGVyLgoKaGFyZGFrZXIgIDkgRGVjIDk5IDEwOjA4OjI2CiAgICAtIChNYWtlZmlsZS50b3AsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICAgYWdlbnQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pOgogICAgICAtIGZpeGVkIC0tZW5hYmxlLXNoYXJlZCAoYXQgbGVhc3Qgb24gbGludXgpLgoKaGFyZGFrZXIgIDkgRGVjIDk5IDE1OjI2OjIzCiAgICAtIChrZXl0b29scy5jKTogUGF0Y2ggZnJvbSBMZW9uYXJkIEdvbWVsc2t5OgogICAgICAtIGdlbmVyYXRlX0t1KCkgc3BlZWQgaW1wcm92ZW1lbnRzLgoKaGFyZGFrZXIgIDkgRGVjIDk5IDE2OjE2OjQwCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogY2hhbmdlZCBhbGwgaW5zdGFuY2VzIG9mIGtiIHRvIGtCLgoKaGFyZGFrZXIgIDkgRGVjIDk5IDE2OjUzOjE0CiAgICAtIChzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbik6IGZpeCBmb3IgLS1lbmFibGUtc2hhcmVkCgpoYXJkYWtlciAgOSBEZWMgOTkgMTc6MDk6MjMKICAgIC0gKGFnZW50LypNYWtlZmlsZS5pbik6IGZpeCBmb3IgLS1lbmFibGUtc2hhcmVkIG9uIGhwdXgKCm5iYSAxMCBEZWMgOTkgMDM6MDY6MTgKICAgIC0gbWFzdGVyLmM6IGFkZCBhIG1pc3NpbmcgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4gKGF0IGxlYXN0IGZvciBTb2xhcmlzKS4KCm5iYSAxMCBEZWMgOTkgMDM6MDc6MDYKICAgIC0gcGFzcy5jOiBmaXggc29tZSBidWYvYnVmMiBjb25mdXNpb24KCm5iYSAxMCBEZWMgOTkgMDM6MDk6MzMKICAgIC0gcGFzc19wZXJzaXN0LmM6IGZpeCBzb21lIGJ1Zi9idWYyIGNvbmZ1c2lvbgoKbmJhIDEwIERlYyA5OSAwMzoxMDozMAogICAgLSByZWFkX2NvbmZpZy5jOiBhZGQgc29tZSBtaXNzaW5nIGNvbnN0IHNwZWNpZmllcnMKCm5iYSAxMCBEZWMgOTkgMDM6MjA6MTAKICAgIC0gKHZhcmlvdXMpOiBjaGFuZ2VzIHRvIGNvbXBpbGUgc25tcGQgd2l0aCBWQysrIDUuMCAoUmVsZWFzZSBtb2RlKQoKbXNsaWZjYWsgMTAgRGVjIDk5IDA3OjI4OjMzCiAgICBGaXggdG8gYnVpbGQgZXhlY3V0YWJsZSBhZ2VudCBvbiBIUC1VWC4KCm1zbGlmY2FrIDEwIERlYyA5OSAxMDoyMzozNgogICAgQXBwbHkgRGF2ZSdzIHBhdGNoIHRvIGZpeCBtYXggdmFyYmluZHMgdGVzdGluZyBvbiBHRVRCVUxLLgoKbWFyeiAxMCBEZWMgOTkgMTA6NDQ6MjkKICAgICAoc25tbGliL3NubXBfYXBpLmMpOiBmaXggYnVnIGluIF9zZXNzX2NvcHkgd2hlcmUgcG9pbnRlcnMgdGhhdCB3ZXJlIG5vdCBvd25lZCBieSBuZXdseSBjcmVhdGVkIHNlc3Npb24gY291bGQgZ2V0IG1pc3Rha2VubHkgZnJlZWQgaWYgZXJyb3JzIHdlcmUgZW5jb3VudGVyZWQgZHVyaW5nIHNlc3Npb24gY29weSAtIGFsc28gZWxpbWluYXRlIHNvbWUgcmVkdW5kYW50IGNvcHlpbmcgb2Ygc2VjdXJpdHl7QXV0aHxQcml2fUtleSBkYXRhCgptc2xpZmNhayAxMCBEZWMgOTkgMTM6MDM6NTgKICAgIEZpeCBIUC1VWCBwcm9ibGVtIHdpdGggaXBEZWZhdWx0VFRMLgoKZGF2ZXMgMTMgRGVjIDk5IDAzOjE3OjQxCiAgICAtIChhZ2VudF9yZWdpc3RyeS5jKTogSGFuZGxlIGRlbGVnYXRlZCBNSUIgcmVnaW9ucyBwcm9wZXJseSB3aGVuIHNwbGl0LgoKZGF2ZXMgMTMgRGVjIDk5IDAzOjE4OjM4CiAgICAtIChhZ2VudF90cmFwLmMpOiBhbGxvdyBzcGVjaWZpY2F0aW9uIG9mIGVudGVycHJpc2UgT0lEIHdoZW4gc2VuZGluZyB0cmFwcwoKZGF2ZXMgMTMgRGVjIDk5IDA0OjQzOjE0CiAgICAtIChhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5bY2hdKToKICAgICAgLSBQYXRjaCB0byBnZXQgU01VWCBzdXBwb3J0IHdvcmtpbmcgd2l0aCB0aGUgbmV3IGFnZW50IGFyY2hpdGVjdHVyZS4KICAgICAgICBUaGlzIGlzIHByb2JhYmx5IG5vdCBUaGUgUmlnaHQgV2F5IFRvIERvIFRoaW5ncyBOb3csIGJ1dCBpdCB3b3Jrcy4KICAgICAgICBUaGFua3MgdG8gTmljayBBbWF0byBhbmQgTWlrZSBNaWNoYXVkLgoKbXNsaWZjYWsgMTMgRGVjIDk5IDA5OjQ5OjI4CiAgICBBZGRlZCBwYXRjaCBmcm9tIE0uTWljaGF1ZCB0byB1c2Ugc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycy4KCmhhcmRha2VyIDEzIERlYyA5OSAwOTo1NzozNwogICAgLSAoRExNT0QtTUlCLnR4dCwgVUNELURMTU9ELU1JQi5pbmMsIFVDRC1ETE1PRC1NSUIudHh0KToKICAgICAgLSBKdWVyZ2VucyBwYXRjaCB0byBtb3ZlIERMTU9ELU1JQiAtPiBVQ0QtRExNT0QtTUlCIGFuZCAtPiBTTUl2Mi4KICAgICAgLSBtb3ZlZCB0byB0aGUgZXhwZXJpbWVudGFsIHRyZWUuCgptc2xpZmNhayAxMyBEZWMgOTkgMTI6MDQ6MTUKICAgIENsZWFuIGFsc28gcmVtb3ZlcyBnZW5lcmF0ZWQgZGVmYXVsdF9zdG9yZS4zLmggLgoKbXNsaWZjYWsgMTMgRGVjIDk5IDEzOjU0OjI3CiAgICBTYW5pdHkgY2hlY2tzIGFkZGVkIHRvIF9nZXRfc3ltYm9sLgoKaGFyZGFrZXIgMTMgRGVjIDk5IDE0OjIwOjEwCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiAtLXdpdGgtZWZlbmNlIGltcGxlbWVudGVkLgogICAgICAtIChmb3JjZWQgY2hlY2tpbmcgZm9yIC0tZW5hYmxlLWRldmVsb3BlciBhbmQgQ1ZTIGNoZWNrb3V0cykKCm1zbGlmY2FrIDEzIERlYyA5OSAxNDo1NDozMQogICAgRml4IHByb2JsZW0gcHJpbnRpbmcgSU1QTElFRCBpbmRpY2VzIG9mIE9CSkVDVElEIHR5cGUuCgptc2xpZmNhayAxMyBEZWMgOTkgMTU6MTI6MDEKICAgIEZpbmlzaCBzeW1ib2wgY29udmVyc2lvbiB3aXRoIG51bWVyaWMgd2hlbiBzdWJ0cmVlIGlzIGxlYWYgbm9kZS4KCm1zbGlmY2FrIDEzIERlYyA5OSAxNjowMzowMAogICAgQWxsb3cgc3ByaW50X3ZhcmlhYmxlIHRvIHdvcmsgZXZlbiBpZiBubyBNSUIgZmlsZXMgd2VyZSByZWFkLgoKaGFyZGFrZXIgMTQgRGVjIDk5IDA4OjA4OjAwCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYywgZGVmYXVsdF9zdG9yZS5oLAogICAgICBtaWIuYywgbWliLmgpOgogICAgICAtIGFyZ3VtZW50IHNodWZmbGluZy4uLgogICAgICAgIC1JIGZvciBpbnB1dCBhcmdzIGNyZWF0ZWQsIGFuZCAtT1IgbW92ZWQgdGhlcmUuCiAgICAgICAgLUliIGNyZWF0ZWQuCiAgICAgICAgLVRCIGNyZWF0ZWQgZm9yIHNubXB0cmFuc2xhdGUgKHdhcyAtQikuCgpoYXJkYWtlciAxNCBEZWMgOTkgMDg6NDE6NDEKICAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgICAtIHVwZGF0ZXMuCgpoYXJkYWtlciAxNCBEZWMgOTkgMTQ6NTQ6MDkKICAgIC0gKGtleXRvb2xzLmMpOiByZXZlcnNlIGdlbmVyYXRlX0t1IG9wdGltaXphdGlvbnMsIGFzIHRoZXkgZG9uJ3Qgd29yay4KCmhhcmRha2VyIDE0IERlYyA5OSAxNToxOTozNQogICAgLSAoTWFrZWZpbGUuaW4pOiBETE1PRCAtPiBVQ0QtRExNT0QKCmhhcmRha2VyIDE0IERlYyA5OSAxNjowNTowOAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBtb3ZlIC1sZWZlbmNlIGNoZWNrIHVwIHRvIGZyb250IChsYXN0IGluIGxpbmspLgoKaGFyZGFrZXIgMTQgRGVjIDk5IDE2OjA1OjM3CiAgICAtIChoZWFkZXJfY29tcGxleC5jKTogZ2V0IG5leHQgaW4gbGluayBsaXN0IGJlZm9yZSBkZWxldGluZyByb290LgoKbXNsaWZjYWsgMTUgRGVjIDk5IDA0OjIxOjI3CiAgICBJc29sYXRlIGFuZCByZXRvdWNoIGRlcHJlY2F0ZWQgY29tbWFuZCBsaW5lIG9wdGlvbnMuCgptc2xpZmNhayAxNSBEZWMgOTkgMDU6NTE6MDAKICAgIFNoYXJlIGtzdGF0IGZkIGlmZiB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIgaXMgYWxzbyBjb25maWd1cmVkLgoKaGFyZGFrZXIgMTUgRGVjIDk5IDA5OjE3OjAzCiAgICAtIChFdGhlckxpa2UtTUlCLnR4dCwgSVBGSUxURVIudHh0LCBVQ0QtSVBGSUxURVItTUlCLmluYywKICAgICAgVUNELUlQRklMVEVSLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAgLSBFdmVuIG1vcmUgdXBkYXRlcy4KCmhhcmRha2VyIDE1IERlYyA5OSAwOToxOToxNAogICAgLSAoU05NUHYyLVBBUlRZLU1JQi50eHQgU05NUHYyLU0yTS1NSUIudHh0ICk6IHJlbW92ZWQuCgptc2xpZmNhayAxNSBEZWMgOTkgMDk6NDI6NDQKICAgIFJlbW92ZSBzbm1wX2xvZ19zeXNsb2csIHNubXBfbG9nX2ZpbGVsb2csIHNubXBfbG9nX3N0ZGVycmxvZzsKICAgIFNpbXBsaWZ5IHNubXBfbG9nX3N0cmluZy4KCm1zbGlmY2FrIDE1IERlYyA5OSAwOTo1NjoyNAogICAgQWRkIHRpbWUgbWFya2VyIGNyZWF0ZSwgc2V0LCBhbmQgZGVsdGEgdGltZSBjaGVjayBtZXRob2RzLgoKbXNsaWZjYWsgMTUgRGVjIDk5IDExOjA4OjE5CiAgICBSZXBsYWNlIGtjIGZyb20gbWVtb3J5X3NvbGFyaXMyLmMgd2l0aCBrc3RhdF9mZCwgZGVmaW5lZCBpbiBrZXJuZWxfc3Vub3M1LmMuCgpuYmEgMTYgRGVjIDk5IDIzOjA1OjQ3CiAgICAtIGtlcm5lbC5jOiBvdXRwdXQgZXJyb3Igc3RyaW5nLCBub3QgbnVtYmVyCgpuYmEgMTYgRGVjIDk5IDIzOjA2OjU4CiAgICAtIHNubXBkLmM6IFxuIHRlcm1pbmF0ZSBzb21lIGxvZyBtZXNzYWdlcwoKbmJhIDE2IERlYyA5OSAyMzowODowMgogICAgLSBzbXV4LltjaF06IGZpeCBzb21lIHByb3RvdHlwZXMgYW5kIGluY2x1ZGVzLgoKbmJhIDE2IERlYyA5OSAyMzowODo1NAogICAgLSBzbm1wdHJhbnNsYXRlLmM6IGJlIGV4cGxpY2l0IGluIHRoZSAtdCB3YXJuaW5nCgpuYmEgMTYgRGVjIDk5IDIzOjA5OjQyCiAgICAtIG1pYi5jOiBmaXggYSB0YWlsIHJlY3Vyc2lvbiBlbGltaW5hdGlvbiBwcm9ibGVtIHByaW50aW5nIG9pZHMKCm5iYSAxNiBEZWMgOTkgMjM6MTA6MzEKICAgIC0gc25tcHYzLmM6IGEgbW9yZSBzcGV2aWZpYyBoZWxwIG1lc3NhZ2UgZm9yIGRlZlZlcnNpb24KCm5iYSAxNyBEZWMgOTkgMDI6MDg6MTcKICAgIC0gbWliLmM6IGtpbGwgdGhhdCB0YWlsIHJlY3Vyc2lvbiBlbGltaW5hdGlvbiwgaXQganVzdCBhZGRzIHRvbyBtYW55CiAgICAJY29uZGl0aW9uYWxzLiBQcm9wZXJseSBvdXRwdXQgYW4gZW1wdHkgc3RyaW5nIGluZGV4LgoKbmJhIDE3IERlYyA5OSAwMjowOToxOAogICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogcmVtb3ZlIHNvbWUgc3VwZXJmbHVvdXMgdXNhZ2UoKSBjYWxscy4KCm5iYSAxNyBEZWMgOTkgMDI6MTQ6MTgKICAgIC0gc25tcHRhYmxlLmM6IGNsZWFudXAgb2YgdGhlICJuZXciIG1pYiB3YWxrIHRvIGRldGVybWluZSBmaWVsZHMuIE1ha2UgaXQKICAgIAlkZWZhdWx0IChkb24ndCBldmVuIGRvY3VtZW50IHRoZSAtQyBjb21wYXRpYmlsaXR5IG9wdGlvbikuIElnbm9yZQogICAgCW5vdC1hY2Nlc3NpYmxlIGZpZWxkcyBpbiB0aGUgd2Fsay4KCm5iYSAxNyBEZWMgOTkgMDI6MTg6MzAKICAgIC0gc25tcHRyYXBkLmM6IG1ha2UgdGhlIG9pZHMgZ2l2ZW4gdG8gdHJhcGQgaGFuZGxlcnMgcHJvcGVybHkgLjAgdGVybWluYXRlZC4KICAgIAlBZGQgYSBTTk1QLUNPTU1VTklUWS1NSUI6OnNubXBUcmFwQWRkcmVzcy4wCiAgICAJQWRkIHN5c2xvZyBvZiB2MiB0cmFwcyBhbmQgaW5mb3JtcwoKbmJhIDE3IERlYyA5OSAwMzoyMjozOQogICAgLSBsaWJzbm1wLmRlZjogYWRkIHNvbWUgZnVuY3Rpb24gbmFtZXMKCmhhcmRha2VyIDE3IERlYyA5OSAwNzowMzowOQogICAgLSAoc25tcGNtZC4xKTogZG9jdW1lbnQgLUkgYW5kIC1PIGZsYWdzLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDA3OjA1OjA4CiAgICAtIChzbm1wY21kLjEpOiBtZW50aW9uIHRoYXQgLUlSIGFuZCAtSWIgYXJlIGFjdHVhbGx5IHVzZWQgYnkgZGVmYXVsdC4KCmhhcmRha2VyIDE3IERlYyA5OSAwNzoxMzowMwogICAgLSAoc25tcC5jb25mLjUuZGVmKTogZG9jdW1lbnQgYSBidW5jaCBvZiBuZXcgY29uZmlndXJhdGlvbiBvcHRpb25zLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDA3OjI2OjA1CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgcm9jb21tdW5pdHksIHJ3Y29tbXVuaXR5LCByb3VzZXIsIHJ3dXNlci4KCmhhcmRha2VyIDE3IERlYyA5OSAwNzoyODozNAogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHRoZSBmaWxlIGRpcmVjdGl2ZS4KCmhhcmRha2VyIDE3IERlYyA5OSAwNzo0MDo0MwogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IGNyZWF0ZVVzZXIuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTA6NDIKICAgIC0gKE5FV1MpOiBmaXJzdCBwYXNzIGF0IGNoYW5nZXMuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTE6MDIKICAgIC0gKHNlZHNjcmlwdC5pbik6IFBFUlNJU1RFTlRfRElSRUNUT1JZIHRva2VuIGFkZGVkLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDEwOjExOjM0CiAgICAtIChzbm1wZC5jKTogcmVvcmRlciBpbml0KCkgcm91dGluZXMgZm9yIC1IIHRvIHByZXZlbnQgc2VnZmF1bHRpbmcuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTY6MzIKICAgIC0gKE1ha2VmaWxlLmluKTogcHV0IHNubXBkLm8gaW50byB0aGUgb2JqZWN0IGxpc3QsIGFuZCByZW1vdmUgaXQgZnJvbQogICAgICBkaXJlY3QgY29tcGlsYXRpb24gaW4gdGhlIENDIGxpbmsgbGluZS4KCmhhcmRha2VyIDE3IERlYyA5OSAxMDoxNzowNQogICAgLSAodXNtVXNlci5jKTogY2hhbmdlZCBoZWxwIGxpbmUgb2YgY3JlYXRlVXNlciB0byBzZXBlcmF0ZSBERVMgdG9rZW4KICAgICAgZnJvbSB0aGUgcGFzc3BocmFzZS4KCmhhcmRha2VyIDE3IERlYyA5OSAxMDoxNzoyOAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiByZW1vdmVkIC1SIGZyb20gdGhlIC1oIG91dHB1dC4KCmhhcmRha2VyIDE3IERlYyA5OSAxMDoxODoyNAogICAgLSAoTkVXUyk6IHNlY29uZCBwYXNzLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDEwOjE4OjQyCiAgICAtIChzbm1wX2FnZW50X2FwaS4zKTogcmUtc3RydWN0dXJlIGJhc2VkIG9uIHJlY2VudCBjaGFuZ2VzLgoKbXNsaWZjYWsgMTcgRGVjIDk5IDE0OjIzOjI1CiAgICBGaXhlZCBhIGZldyBzcGVsaWxuZyBlcnJvcnMuCgptc2xpZmNhayAxNyBEZWMgOTkgMTU6MjE6MzkKICAgIEFkZCBCaWxsIEZ1bWVyb2xhJ3MgcGF0Y2ggZm9yIEZyZWVCU0QgNC54IHRvIHVzZSBzd2FwaW5mby4KICAgIEluY2x1ZGUgRnJlZUJTRCA0Lnggc3BlY2lmaWMgbWVtb3J5IGFuZCB2bXN0YXQgd2hlbiBidWlsZGluZyB0aGF0IGFnZW50LgoKbXNsaWZjYWsgMTcgRGVjIDk5IDE1OjQxOjE0CiAgICBObyBkdW1teSB2YWx1ZXMgZm9yIEZyZWVCU0QsIHBsZWFzZS4KCmhhcmRha2VyIDE3IERlYyA5OSAxNTo0NjowOAogICAgLSAoc25tcF9hbGFybS5jKTogbWlzc2luZyAhIG9wZXJhdGVyIG9uIHNpZ25hbCB0ZXN0LgoKaGFyZGFrZXIgMTcgRGVjIDk5IDE1OjU1OjQ4CiAgICAtIChORVdTKTogbWVudGlvbiAtSS4KCmhhcmRha2VyIDE3IERlYyA5OSAxNTo1NjoyNwogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywgc25tcF92YXJzLmMpOgogICAgICAtIGluY2x1ZGUgInNubXBfYWxhcm0uaCIgZm9yIG1pYiBtb2R1bGVzIHRoYXQgbmVlZCB0aGUgY2FsbGJhY2sgZGVmLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDE1OjU3OjEwCiAgICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKTogY29tcGxldGVseSByZXN0cnVjdHVyZWQuCiAgICAgIC0gZHJhc3RpY2x5IHJlZHVjZXMgbWVtb3J5IHVzYWdlIGZvciBsYXJnZSBkYXRhIHNldHMgKDEvMykuCgpkYXZlcyAyMCBEZWMgOTkgMDM6MDE6NDkKICAgIC0gKGFnZW50eC9SRUFETUUuYWdlbnR4KTogVXBkYXRlZCB0byBkZXNjcmliZSBjdXJyZW50IHN0YXR1cy4KCmRhdmVzIDIwIERlYyA5OSAwNDoxNTo1NQogICAgLSAoYWdlbnRfdHJhcC5jIHNubXBfdmFycy5jIG1pYklJLltjaF0gbWliSUkvKi5jIG1pYklJL3N5c09SVGFibGUuaCk6CiAgICAgIC0gVXNlIFNOTVBfT0lEIHByZWZpeCBkZWZpbml0aW9ucyBpbiBPSUQgc3BlY2lmaWNhdGlvbnMuCiAgICAgIC0gUmVnaXN0ZXIgdGhlIHZhcmlvdXMgTUlCLTIgbW9kdWxlcyBzZXBhcmF0ZWx5IGluIHN5c09SVGFibGUuCgpoYXJkYWtlciAyMCBEZWMgOTkgMDY6NDM6NDAKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogRm9yY2Ugc2V0IHRvIDEgZm9yIC1EIHNvIG11bHRpcGxlIHN3aXRjaGVzIGNhbgogICAgICBiZSBnaXZlbiAoaWUsIGRvbid0IHRvZ2dsZSB0aGUgdmFsdWUpLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDA2OjQ4OjI0CiAgICAtIChNYWtlZmlsZS5pbik6IG1vdmVkIGtlcm5lbC5vIGludG8gdGhlIGxpYnVjZGFnZW50IGxpYnJhcnkuCgpoYXJkYWtlciAyMCBEZWMgOTkgMTM6MjM6MjUKICAgIC0gKElQU0VDLU1JQi50eHQpOiByZW1vdmVkCgpoYXJkYWtlciAyMCBEZWMgOTkgMTM6MjU6MTUKICAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IG1vdmVkIHRvIFVDRC1JUEZXQUNDLU1JQi50eHQKCmhhcmRha2VyIDIwIERlYyA5OSAxMzoyNjowOQogICAgLSAoVUNELUlQRldBQ0MtTUlCLnR4dCk6IG1vdmVkIGFuZCB1cGRhdGVkIGZyb20gSVBGV0FDQy1NSUIudHh0CgpoYXJkYWtlciAyMCBEZWMgOTkgMTM6MzA6MDYKICAgIC0gKFVDRC1JUEZXQUNDLU1JQi50eHQpOiBtb3ZlZCB0YWJsZSB0byBvbmUgbGV2ZWwgZGVlcGVyIHVuZGVyIG1pYiBub2RlLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDEzOjMwOjM2CiAgICAtIChpcGZ3YWNjLmMpOiBtb3ZlZCB0YWJsZSB0byBvbmUgbGV2ZWwgZGVlcGVyIHVuZGVyIG1pYiBub2RlLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDE1OjM4OjM0CiAgICAtIChNYWtlZmlsZS5pbik6IElQRldBQ0MtTUlCLnR4dCAtPiBVQ0QtSVBGV0FDQy1NSUIudHh0CgpoYXJkYWtlciAyMCBEZWMgOTkgMTc6MTk6MTgKICAgIC0gKGFnZW50X3RyYXAuYyk6IG1ha2UgdXB0aW1lIGEgbG9uZyBmb3IgNjRiaXQgYXJjaGl0ZWN0dXJlcy4KCmhhcmRha2VyIDIwIERlYyA5OSAxNzoyMDoxNQogICAgLSAoYWdlbnR4L3Byb3RvY29sLmMpOiBtYWtlIGEgdGhpbmdzIHNpemVfdCBpbnN0ZWFkIG9mIHVfaW50IChmb3IgNjRiaXQgY29kZSkuCgpoYXJkYWtlciAyMCBEZWMgOTkgMTc6MjA6NTUKICAgIC0gKHNubXBfYXBpLmMpOiBEaWdpdGFsIFVuaXggaGFjayBmb3IgYmFkIHJlY3Zmcm9tIGltcGxlbWVudGF0aW9uLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDE3OjMxOjQ1CiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogbWlub3Igbm90ZS4KCmhhcmRha2VyIDIwIERlYyA5OSAxNzozMjoyMwogICAgLSAoTkVXUyk6IG1lbnRpb24gU01JdjIgdXBkYXRlcy4KCmhhcmRha2VyIDIwIERlYyA5OSAxNzozMjozNwogICAgLSAobWliaW5jbC5oKTogYWRkIGFnZW50X3RyYXAuaAoKaGFyZGFrZXIgMjAgRGVjIDk5IDE3OjM0OjMxCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMS5wcmUxICkKCm5iYSAyMSBEZWMgOTkgMDI6Mzc6MTkKICAgIC0gc25tcGQuYywgc211eC5jLCBzbm1wX2FwaS5jOiB0YWtlIGF3YXkgc29tZSB1bnVzZWQgdmFyaWFibGVzLgoKbmJhIDIyIERlYyA5OSAwMjo0MTo0MgogICAgLSBtZW1vcnlfZnJlZWJzZDIuYzogbWFrZSBpdCB3b3JrIChhZ2FpbikgZm9yIEZyZWVCU0QtMiA6LSkKCm5iYSAyMiBEZWMgOTkgMDI6NDM6MTUKICAgIC0gaHJfc3RvcmFnZS5jOiBraWxsIGEgZHVtbXkgdmFsdWUKCm5iYSAyMiBEZWMgOTkgMDU6NDY6MjEKICAgIC0gc3lzdGVtLmM6IG5hdWdodHksIG5hdWdodHkgTmllbHMsIGp1c3QgcmVpbmRlbnRpbmcgLi4uCgpuYmEgMjIgRGVjIDk5IDA1OjQ3OjExCiAgICAtIHN5c3RlbV9taWIuYzogdXNlIHNvbWUgI2RlZmluZXMgaSBwbGFjZSBvZiBudW1iZXJzCgpuYmEgMjIgRGVjIDk5IDA1OjU4OjE4CiAgICAtIHZhY20gcm91dGluZXM6IGFsaWdubWVudCB3aXRoIFJGQyBtaWJzLCBwcmVwYXJpbmcgZm9yIHRyYXAgZ2VuZXJhdGlvbgogICAgCWFuZCBhIGJldHRlciBpbnRlZ3JhdGlvbiB3aXRoIHZhcmlhYmxlIHRyZWUgd2Fsa2luZwoKaGFyZGFrZXIgMjIgRGVjIDk5IDE1OjEyOjI2CiAgICAtIChtYXN0ZXIuYyk6IHVzZSBzbm1wX3Nlc3Nfb3BlbiBmb3IgdGhlIHNlY29uZCB0cnkgYXQgb3BlbmluZyB0aGUKICAgICAgbWFzdGVyIHBvcnQuCgpoYXJkYWtlciAyMiBEZWMgOTkgMTU6MTM6MDUKICAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiBpbmNyZWFzZSBtYXggdmFycyB0byA2NCAod2FzIDE2KS4gIEkgaGF2ZSBhCiAgICAgIHRhYmxlIHdpdGggbW9yZSB0aGFuIHRoYXQgbnVtYmVyIGluIGNvbHVtbnMsIHdoaWNoIGJyZWFrcyBzbm1wdGFibGUuCgpoYXJkYWtlciAyMiBEZWMgOTkgMTY6MzA6MDEKICAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoOgogICAgICAtIGZpcnN0IHBhc3MgYXQgdm1zdGF0IHN1cHBvcnQgZm9yIHNvbGFyaXMuCgpoYXJkYWtlciAyMyBEZWMgOTkgMDg6MjE6MzcKICAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jKTogUGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2g6CiAgICAgIC0gbm9uIDgwLWNvbHVtbiB3cmFwcGVkIHZlcnNpb24uCgpoYXJkYWtlciAyOCBEZWMgOTkgMTU6NDI6MDgKICAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiByZW1vdmUgdGhlICEgaW4gZnJvbnQgb2YgaW5fYV92aWV3LCB3aGljaCBjaGFuZ2VkLgoKaGFyZGFrZXIgMzAgRGVjIDk5IDA3OjUxOjM2CiAgICAtIChzbm1wZC5jKTogdXNhZ2UgbGluZSBvcmRlciBtZXNzZWQgdXAsIGFzIHBvaW50ZWQgb3V0IGJ5IFJvYmVydCBTdG9yeS4KCm1zbGlmY2FrIDMwIERlYyA5OSAxMjowMDo1OAogICAgRml4IGNvbXBpbGUgZXJyb3JzLgoKbXNsaWZjYWsgMzEgRGVjIDk5IDA5OjMxOjEyCiAgICBGaXggYnVnICMgMTIyCgptc2xpZmNhayAzMSBEZWMgOTkgMDk6MzI6NTgKICAgIEFwcGx5IHBhdGNoIHByb3ZpZGVkIGJ5IFNlcmcgVHJ1c2huaWtvdiA8c2F0QHptYWlsLnJ1PiBmb3IgQUlYIDQuMi4xIGtubGlzdAoKbXNsaWZjYWsgMzEgRGVjIDk5IDEwOjExOjEyCiAgICBGaXggYnVnICMxMjUgLSBpbnNlcnQgdW5kZXJzY29yZSBpbnRvIHN0cnVjdCBzbm1wX2lwYWRkciBtZW1iZXIgbmFtZXMuCgptc2xpZmNhayAzMSBEZWMgOTkgMTA6MzM6MTYKICAgIEF1dG9jb25mIHBhdGNoIGMvbyBBbGJlcnQgQ2hpbi1BLVlvdW5nIDxjaGluYUB0aGV3cml0dGVud29yZC5jb20+Cgptc2xpZmNhayAzMSBEZWMgOTkgMTA6MzY6NDYKICAgIEZpeCB3YXJuaW5ncyBvZiB1bmluaXRpYWxpemVkIHZhcmlhYmxlcy4KCm1zbGlmY2FrIDMxIERlYyA5OSAxMjo0Mzo1MAogICAgRml4IGJ1ZyAjNDggOiBubyBzdHJjYXNlY21wL3N0cm5jYXNlY21wIGZvciBTaW5peAoKbXNsaWZjYWsgMzEgRGVjIDk5IDEzOjI3OjQ0CiAgICBBcHBseSBzb21lIE5ldEJTRCAxLjMueCwgMS40IHBhdGNoZXMgYy9vIEdyZWEgQS4gV29vZHMgPHdvb2RzQHBsYW5peC5jb20+CgpuYmEgIDMgSmFuIDAwIDE1OjIzOjIxCiAgICAtIEVYQU1QTEUuY29uZi5kZWY6IGFkYXB0IHRvIGNoYW5nZXMgaW4gdmFsaWQgdmFjbSBzeW50YXgKCm5iYSAgMyBKYW4gMDAgMTU6MjY6MDcKICAgIC0gc25tcF92YXJzLmM6IGluY2x1ZGUgYWdlbnRfcmVnaXN0cnkuaCBvbmx5IG9uY2UKCm5iYSAgMyBKYW4gMDAgMTU6MjY6NTEKICAgIC0gc25tcGQuYzogYWRkIGEgbWlzc2luZyBjb25zdCBzcGVjaWZpZXIKCm5iYSAgMyBKYW4gMDAgMTU6Mjc6MjkKICAgIC0gbWliSUkuaDogYWRkIHByb3RvdHlwZSBmb3IgaW5pdF9taWJJSQoKbmJhICAzIEphbiAwMCAxNToyODoyNAogICAgLSB3b21iYXQuW2NoXTogY29ycmVjdCBwcm90b3R5cGUgZm9yIHdvbWJhdF9wYXJzZV9jb25maWcKCm5iYSAgMyBKYW4gMDAgMTU6MzA6MjYKICAgIC0gc3lzdGVtLmg6IGFkZCBwcm90b3R5cGUgZm9yIHN0cmNhc2VjbXAKCm5iYSAgMyBKYW4gMDAgMTU6MzI6NTkKICAgIC0gcGFyc2UuYzogZml4IEZpbGUgdmFyaWFibGUgYmVpbmcgbGVmdCBwb2ludGluZyBpbnRvIHRoZSBzdGFjay4KICAgIAlJZ25vcmUgLmluZGV4IGZpbGUgb24gV0lOMzIgcGxhdGZvcm0KCm5iYSAgMyBKYW4gMDAgMTU6MzQ6MjIKICAgIC0gbWliLmM6IGFsc28gbm90ZSBURVhUVUFMIENPTlZFTlRJT04gaW4gLVRkIG91dHB1dAoKbmJhICAzIEphbiAwMCAxNTozOTo0MAogICAgLSBzbm1wY21kLjE6IGFkZCBzbm1wYnVsa2dldCB0byBsaXN0IG9mIGFwcGxpY2F0aW9ucwogICAgLSBzbm1wdHJhbnNsYXRlLjE6IGV4cGxhaW4gLVQgb3V0cHV0cwogICAgLSBzbm1wdHJhcGQuY29uZi41LmRlZjogZGVmYWx0IHRyYXBoYW5kbGVyIGlzIGltcGxlbWVudGVkCgpoYXJkYWtlciAgNCBKYW4gMDAgMDg6NTg6MjQKICAgIC0gKFJFQURNRSwgRkFRKTogSmFwYW4gbWlycm9yIGxvY2F0aW9uIGNoYW5nZS4KCmhhcmRha2VyICA0IEphbiAwMCAxMDozMzo1NAogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHN0cnVjdC5oCgpoYXJkYWtlciAgNCBKYW4gMDAgMTA6MzU6MDYKICAgIC0gKHNubXBfYWdlbnQuYyk6IGRlYWwgd2l0aCBibG9ja2luZyBiZXR0ZXIgaW4gc25tcF9hZ2VudF9jaGVja19hbmRfcHJvY2VzcygpLgoKaGFyZGFrZXIgIDQgSmFuIDAwIDE2OjI3OjQ1CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIFNhbmRlciBTdGVmZmFubjoKICAgICAgLSBBZGQgLUkvdXNyL2luY2x1ZGUvcnBtIGJlY2F1c2Ugb2YgYmFkbHkgd3JpdHRlbiBycG0gaGVhZGVyIGZpbGVzLgoKbmJhICA0IEphbiAwMCAyMjoxMjoxMAogICAgLSBFWEFNUExFLmNvbmYuZGVmLCBGQVEsIHNubXBkLmNvbmYuNS5kZWY6IHJlbW92ZSBhbGwgdHJhY2VzIG9mIHNlY3VyaXR5CiAgICAJbW9kZWwgImFueSIgaW4gImdyb3VwIiBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMKCm5iYSAgNCBKYW4gMDAgMjM6NTA6MjcKICAgIC0gcGFyc2UuYzogI2lmZGVmIHNvbWUgdmFyaWFibGVzIG5vdCB1c2VkIHVuZGVyIHdpbjMyCgpuYmEgIDQgSmFuIDAwIDIzOjUxOjExCiAgICAtIHNubXB0cmFwZC5jOiBpbXBsZW1lbnQgdHJhbmQgaGFuZGxlcnMgZm9yIHdpbjMyCgpkYXZlcyAgNiBKYW4gMDAgMDE6NTg6NTYKICAgIC0gKG1pYmdyb3VwL21pYklJLmMpOiBSZW1vdmUgcmVkdW5kYW50IGZpbGUKCmhhcmRha2VyICA2IEphbiAwMCAwODo1NzozMQogICAgLSAodXRpbF9mdW5jcy5oKTogcHJvcGVybHkgd3JhcCBzdHJ1Y3QuaCBpbmNsdWRlIGRpcmVjdGl2ZSBmb3IKICAgICAgbm9uLXNvdXJjZS1kaXJlY3RvcnkgaW5jbHVkZS4KCm1hcnogIDYgSmFuIDAwIDEyOjU2OjUwCiAgICB1cGRhdGUgc3ludGF4IChleGFjdCkKCm1hcnogIDYgSmFuIDAwIDEzOjA3OjAzCiAgICB3ZSBzaG91bGQgbm90IHByaW50IHRvIHN0ZGVyciBpZiBzdGRlcnIgbG9nZ2luZyBpcyBkaWFibGVkIC0gdGhpcyB0aG93cyBvZmYgdGhlIGFsaWdubWVudCBvZiB0ZXN0IG91dHB1dCBmb3IgJ21ha2UgdGVzdCcgaW4gYm90aCB1Y2Qtc25tcCBhbmQgUGVybC9TTk1QCgptYXJ6ICA2IEphbiAwMCAxMzoxNDoxMAogICAgdXBkYXRlIGNvbmZpZyBhY2Nlc3Mgc3ludGF4IChleGFjdCkKCmhhcmRha2VyICA2IEphbiAwMCAxNTowODoyOAogICAgLSAoQ09QWUlORyk6IHkyayBidWcuCgpoYXJkYWtlciAgNiBKYW4gMDAgMTU6MDg6NDgKICAgIC0gKG1pYjJjKTogcmVtb3ZlZCBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQuCgpoYXJkYWtlciAgNiBKYW4gMDAgMTU6MDk6MjAKICAgIC0gKG1pYjJjLmNvbmYpOiB1bnF1b3RlZCBxdW90ZXMgcXVvdGVkLgoKaGFyZGFrZXIgIDcgSmFuIDAwIDA5OjI5OjA2CiAgICAtIChzbm1wX2FnZW50LmMpOiBiZXR0ZXIgaGFuZGxpbmcgb2Ygd3JpdGUgZmFpbHVyZXMuCgpoYXJkYWtlciAgNyBKYW4gMDAgMTA6Mzg6NDgKICAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiB1cGRhdGUgdG8gdjQgQVBJIHNldCBjb2RlLgoKaGFyZGFrZXIgIDcgSmFuIDAwIDExOjIyOjQwCiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAgLSBoYW5kbGUgbXVsdGlwbGUgdHJhbnNsYXRlZCBPSURzLgoKaGFyZGFrZXIgIDcgSmFuIDAwIDE2OjIxOjUwCiAgICAtICh2YWNtX3ZhcnMuYyk6IHByb3Blcmx5IGdyb3VwIHJ3L3JvdXNlcnMgaW50byB1c20gbm90IHYxL3YyYy4KCm5iYSAgNyBKYW4gMDAgMjM6NDM6MTAKICAgIC0gY29uZmlndXJlLmluOiBzb21lIG1pc3NpbmcgIngiIGluIHRlc3RzIGZvciAtLXdpdGgtb3BlbnNzbCBhbmQKICAgIAktLWRpc2FibGUtZGV2ZWxvcGVyCgpuYmEgIDggSmFuIDAwIDAwOjU2OjMwCiAgICAtIGNvbmZpZ3VyZS5pbjogYnVnZml4IGZvciBhIGJ1Z2ZpeCBidWcKCm1zbGlmY2FrICA4IEphbiAwMCAxMTo0NDo1OAogICAgRml4IGJ1aWxkIGZvciBMaW51eCBSZWRIYXQgNi4xIChjYW50IGxpbmsgbGlid3JhcCB3aXRob3V0IGxpYm5zbCkuCgptc2xpZmNhayAgOCBKYW4gMDAgMTI6MDc6NDQKICAgIFVzZSBrbmxpc3QgaWZmIGFpeDQgYW5kIEhBVkVfS05MSVNUIFtub3QgY29tcGxldGUgdy9vIGNvbmZpZ3VyZSBtb2RzXQoKZGF2ZXMgMTAgSmFuIDAwIDAxOjM3OjMyCiAgICAtIChhZ2VudC9taWJncm91cC9taWJJSS5oKTogUmUtcmVtb3ZlIHJlZHVuZGFudCBwcm90b3R5cGUuCgpkYXZlcyAxMCBKYW4gMDAgMDI6MzE6MzkKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IERpZmZlcmVudGlhdGUgbWF4LXJlcGV0aXRpb24gYW5kIG5vbi1yZXBlYXRlciBlcnJvcnMuCgpkYXZlcyAxMCBKYW4gMDAgMDM6MDY6NDIKICAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IENvdW50IG51bWJlcnMgb2YgdmFyaWFibGVzIHJlcXVlc3RlZC9zZXQKCmRhdmVzIDEwIEphbiAwMCAwNjoxMjo0MAogICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6IFJlLXN0cnVjdHVyZSBnZXRfdXB0aW1lKCkgdG8gY2FjaGUgYm9vdCB0aW1lLgoKbXNsaWZjYWsgMTAgSmFuIDAwIDEzOjE0OjAzCiAgICBBbGxvdyBNU1ZDKysgNS54IHVzZXJzIHRvIGJ1aWxkIHVzaW5nIHRoaXMgd29ya3NwYWNlLgoKbXNsaWZjYWsgMTAgSmFuIDAwIDEzOjIxOjMwCiAgICBRdWFsaWZ5IHVzZSBvZiB3aXRodmFsIHRvIGRlZmluZSBsaWJyYXJ5IGFuZCBpbmNsdWRlIHNlYXJjaCBwYXRocy4KCm1hcnogMTAgSmFuIDAwIDE0OjIxOjE0CiAgICBDaGVja2luZyBpbiBTTk1QLTMuMS4wYjEKCm1hcnogMTAgSmFuIDAwIDE0OjM0OjUwCiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptYXJ6IDEwIEphbiAwMCAxNDo0MDowNAogICAgYWRkIG1pYmxvYWQKCmhhcmRha2VyIDEwIEphbiAwMCAxNTozNjoxOAogICAgLSAobWliaW5jbC5oKTogaW5jbHVkZSBzdGRsaWIuaCBhbmQgbWFsbG9jLmguCgpoYXJkYWtlciAxMCBKYW4gMDAgMTU6MzY6NDAKICAgIC0gKFN2M2NvbmZpZyk6IHJlbW92ZSB0aGUgdHJhaWxpbmcgc3BhY2UuCgpoYXJkYWtlciAxMCBKYW4gMDAgMTU6Mzg6NDQKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gbWFrZSAtLXdpdGhvdXQtZWZlbmNlIHdvcmsuCiAgICAgIC0gY2hlY2sgZm9yIC1sbnNsIG1vcmUgZXhwbGljaXRseS4KCm1zbGlmY2FrIDEwIEphbiAwMCAxNjozMDo1MQogICAgdWNkRGVtb1B1YmxpYy5jIC0gcmVtb3ZlIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGZyb20gd3JpdGUgbWV0aG9kLgogICAgc25tcF92YXJzLmMgICAgIC0gcHJvcGVyIG9pZCBjb21wYXJlOyBubyBjb3B5IGZyb20gc2F2ZSBpZiBvaWRzIGV4YWN0IG1hdGNoCiAgICBzbm1wZC5jICAgICAgICAgLSB0ZXJtaW5hdGUgc3RhdGVtZW50LgoKbXNsaWZjYWsgMTAgSmFuIDAwIDE2OjMxOjE2CiAgICBzbm1wdHJhbnNsYXRlLjEgICAtIHJlbW92ZSBqdW5rIGxpbmUuCgptc2xpZmNhayAxMCBKYW4gMDAgMTY6MzE6MzgKICAgIHNubXB0cmFuc2xhdGUuYyAgLSBzaW1wbGUgZGVmYXVsdCBjYXNlLgoKbXNsaWZjYWsgMTAgSmFuIDAwIDE2OjMyOjA4CiAgICBzbm1wX2FwaS5jICAgIC0gYmV0dGVyIGNvbW1lbnQgZm9yIHNubXBfb2lkX2NvbXBhcmUuCiAgICByZWFkX2NvbmZpZy5jIC0gcmVtb3ZlIHNpemVvZih1X2NoYXIpIGZyb20gbWFsbG9jIHNpemUgY2FsYy4KICAgIHNjYXBpLmggICAgICAgLSBzcGVsbCBjaGVjay4KCm1zbGlmY2FrIDExIEphbiAwMCAwMTozMzo0NQogICAgVHJvbGxpbmcgZm9yIG1hbGxvYyBlcnJvcnM7IG1vcmUgZ3JhY2VmdWwgZGVncmFkYXRpb24uCgptc2xpZmNhayAxMSBKYW4gMDAgMDE6NTM6MDgKICAgIEdsZWFuIHJlZnMgdG8gbWliSUkubyBmcm9tIHRoaXMgbWFrZWZpbGUuCgptc2xpZmNhayAxMSBKYW4gMDAgMDc6NDQ6NTAKICAgIEFkZCBJTl9VQ0RfU05NUF9TT1VSQ0UgdG8gbm90IGJyZWFrIFdpbjMyIGJ1aWxkcy4KCm1zbGlmY2FrIDExIEphbiAwMCAwNzo1OToyMwogICAgS2VlcCB3aW4zMiByZWxlYXNlIGJ1aWxkIGZyb20gYnJlYWtpbmcuCgptc2xpZmNhayAxMSBKYW4gMDAgMDg6MTA6MTAKICAgIEluaXQgZmlsZSBjb3VudCBhdCB6ZXJvLCBub3QgYnkgaW5jcmVtZW50aW5nIHJhbmRvbSB2YWx1ZS4KCm1zbGlmY2FrIDExIEphbiAwMCAwOToxMzozOAogICAgUmVzdG9yZSBtZW1kdXAgdXNhZ2UgdG8gaXRzIGZvcm1lciBsdXN0ZXIuCgptYXJ6IDExIEphbiAwMCAxMDozNzoyMQogICAgcmVtb3ZlIGJhZCBzZXNzaW9uIHRlc3QgLSBzZXNzaW9uLnQgaGFzIGl0IGFscmVhZHkgLSBub3RlIHRoZSBjYWxsIHRvIGdldGhvc3RieW5hbWUgY2FuIGhhbmcgZm9yIHNvbWUgdGltZSBpZiBETlMgaXMgbm90IHNldHVwIGNvcnJlY3RseSAtIGFueW9uZSBrbm93IGEgd2F5IGFycm91bmQgdGhpcz8KCm1zbGlmY2FrIDExIEphbiAwMCAxNTowNTowOQogICAgVXNlIENGTEFHUyB3aGVuIGxpbmtpbmcgKGNvdWxkIGhhdmUgcHJvZmlsZSBzd2l0Y2gsIGV0YykuCgpoYXJkYWtlciAxMiBKYW4gMDAgMTE6MTY6MjcKICAgIC0gKHNubXB2My5jKTogY2FzdCBtYWxsb2MgcmV0dXJucy4KCm1zbGlmY2FrIDEyIEphbiAwMCAyMTowOTo0NwogICAgVXNlIERFQlVHTVNHT0lEIGxpYmVyYWxseSwgcmVwbGFjaW5nIHNwcmludF9vYmppZDsgc21hbGwgc3BlZWR1cC4KCmRhdmVzIDEzIEphbiAwMCAwMjo0Njo0NwogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBSZW1vdmUgZXh0cmFuZW91cyBicmFja2V0LgoKbXNsaWZjYWsgMTMgSmFuIDAwIDA1OjM2OjIxCiAgICBObyBnZXRfYm9vdHRpbWUgc3VwcG9ydCBmb3IgY3lnd2luICh5ZXQpLiBIb3BlZnVsbHkgYSB0ZW1wb3JhcnkgY29uZGl0aW9uLgoKZGF2ZXMgMTMgSmFuIDAwIDA2OjMxOjQ0CiAgICAtIChzbm1wbGliL3BhcnNlLltjaF0pOiBVbmxvYWQgTUlCIG1vZHVsZQogICAgCShOLkI6IFNvbWV3aGF0IHNpbXBsaXN0aWMgd2l0aCByZWdhcmQgdG8gbXVsdGlwbHktbG9hZGVkIG5vZGVzKQoKZGF2ZXMgMTMgSmFuIDAwIDA2OjMzOjQwCiAgICAtIChzbm1wbGliL3BhcnNlLmMpOiBNb3JlIGNvbXBsZXRlIGhhbmRsaW5nIG9mIHVubG9hZGluZyBNSUIgbW9kdWxlcy4KCm1zbGlmY2FrIDE0IEphbiAwMCAwOTozMzozOQogICAgU21hbGwgY29tcGlsZSBmaXggYW5kIGRlYnVnIG1lc3NhZ2UgcmVzdG9yYXRpb24uCgpoYXJkYWtlciAxNCBKYW4gMDAgMTE6MzQ6MjUKICAgIC0gKGJ1Zy1yZXBvcnQpOiBncmVwIGZvciBjb25maWd1cmUgZmxhZ3MKCmhhcmRha2VyIDE0IEphbiAwMCAxNjowOTowOQogICAgLSAoc2NhcGkuYyk6IGltcGxlbWVudCBERVMgZW5jcnlwdGlvbi4KCmhhcmRha2VyIDE0IEphbiAwMCAxNjoxMDoyOQogICAgLSAoTkVXUyk6IHJlbW92ZSBleHBvcnQgY29udHJvbCBub3RlIGFib3V0IERFUy4KCmRhdmVzIDE3IEphbiAwMCAwNjoxMzozOQogICAgLSAobWFuL3NubXB0cmFwZC44KTogRGVzY3JpYmUgZGVmYXVsdCBsb2dnaW5nIGJlaGF2aW91ci4KCmRhdmVzIDE3IEphbiAwMCAwOTowMjozMgogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBEaXNjYXJkICJ0b28tbGF0ZSIgcmVzcG9uc2VzIGZyb20gb3ZlcmxhcHBlZCByZWdpb25zLgoKbWFyeiAxNyBKYW4gMDAgMTI6NDc6NTgKICAgIGFkZGVkIHYyIHRyYXAKCm1hcnogMTggSmFuIDAwIDA3OjAwOjI2CiAgICBtb2RpZmllZCBmb3IgdjItdHJhcC4KCm1hcnogMTggSmFuIDAwIDA3OjU0OjEyCiAgICBmaXggZXJyb3IgbWVzc2FnZXMgYW5kIHJldHVybiB2YWxzIGZvciB0cmFwIGZ1bmNzLCBjbGVhbiB1cCBwZHUKCm1zbGlmY2FrIDE4IEphbiAwMCAwODoxNDo0MgogICAgUHJldmVudCBhcnJheSBib3VuZHMgZXJyb3Igd2hlbiBjcmVhdGluZyBzcGVjaWZpYyB0cmFwIG9pZC4KCm1zbGlmY2FrIDE4IEphbiAwMCAxNDoyMzo0NAogICAgTGF0ZXN0IHZtc3RhdF9zb2xhcmlzMiBmcm9tIHRoZSBhdXRob3IgSm9jaGVuIEttaWV0c2NoLgoKbXNsaWZjYWsgMTggSmFuIDAwIDIxOjIyOjA2CiAgICBDbGVhbnVwIGFyb3VuZCBpcDZfdmFycy5oIGluY2x1ZGUgKG5vICNpZiAwKQoKbXNsaWZjYWsgMTggSmFuIDAwIDIxOjI1OjUzCiAgICBSZW1vdmUgY29tbWVudGVkIG91dCBvYmplY3RzIHRoYXQgYXJlIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUuCgptc2xpZmNhayAxOCBKYW4gMDAgMjE6Mjk6MDEKICAgIDEuTWFrZSBzbm1wX2dldF9kb19sb2dnaW5nIHZpc2libGUgZnJvbSBETEwKICAgIDIuQXBwbHkgV2luMzIgcGF0Y2ggZnJvbSBSLlN0b3J5IHRvIGFjdGl2YXRlIG1pYiBzdGF0cyBtb2R1bGUgKHNubXBfbWliKS4KCm1zbGlmY2FrIDE4IEphbiAwMCAyMTozNzowMgogICAgQ29uc2lzdGVudCBnZXRwYWdlc2l6ZSAoZmlyc3QgZGl2aWRlIGJ5IDEwMjQpLgoKZGF2ZXMgMjAgSmFuIDAwIDA0OjI1OjA1CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBTdXBwb3J0IHNlbGVjdGl2ZSBiaW5kaW5nIG9mIHNlcnZlciBhZGRyZXNzZXMuCgptc2xpZmNhayAyMSBKYW4gMDAgMDE6NDY6MDQKICAgIFJlbW92ZSBwYXJ0eSBjcnVkOyBzcGVsbCBjaGVjay4KCm1zbGlmY2FrIDIxIEphbiAwMCAwMTo0Njo0MQogICAgQWRkIGNvbnN0IHRvIGNsZWFudXAgYSBmZXcgc2lnbmF0dXJlcy4KCm1zbGlmY2FrIDIxIEphbiAwMCAwMTo0OTozNQogICAgTWluaW1pemUgZGF0YSBoYW5kbGluZyBhbmQgdXNlIHJlZ2lzdGVyIHZhcmlhYmllcyBpbgogICAgc25tcF9vaWRfY29tcGFyZSBhbmQgY29tcGFyZV90cmVlLgoKbWFyeiAyMSBKYW4gMDAgMDc6Mjc6MTMKICAgIGFkZGVkIHYzIGluZm9ybQoKbWFyeiAyMSBKYW4gMDAgMDg6MDA6MjcKICAgIGluZm9ybS4KCm1hcnogMjEgSmFuIDAwIDA4OjEzOjI1CiAgICBpbmZvcm0KCm1hcnogMjEgSmFuIDAwIDEwOjQ3OjI0CiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptc2xpZmNhayAyMSBKYW4gMDAgMTE6MTk6MDkKICAgIGNvbmZpZ19hcmNoX3JlcXVpcmUgc29sYXJpczIgdmVyc2lvbiBvZiB2bXN0YXQuCgpuYmEgMjMgSmFuIDAwIDA4OjUxOjM5CiAgICAtIHBhcnNlLmM6IGFkZCBzb21lIG1vcmUgZXJyb3IgY2hlY2tpbmcgdG8gZ2V0b2lkCgpuYmEgMjMgSmFuIDAwIDEyOjQyOjExCiAgICAtIHBhcnNlLmM6IGZpeCBtZXJnaW5nIG9mIGFub255bW91cyBub2RlcyB3aGVuIHRoZXkgYXJlIG5hbWVkCgpuYmEgMjMgSmFuIDAwIDEyOjQzOjU0CiAgICAtIHBhcnNlLmM6IGVycmVub3VzID0+IGVycm9uZW91cwoKbWFyeiAyMyBKYW4gMDAgMTY6NDE6MDYKICAgIGhhbmRsZSBhZGRpbmcgT1BBUVVFIHZhcnMgZm9yIHNldHRpbmcgYW5kIHRyYXBzIGV0Yy4KCmRhdmVzIDI0IEphbiAwMCAwNzoyMTozNAogICAgLSAoZXhhbXBsZXMve2V4YW1wbGUsd29tYmF0fS5bY2hdKToKICAgICAgLSBDb25zb2xpZGF0ZWQgZXhhbXBsZSBtb2R1bGVzIGludG8gb25lLCBpbmNsdWRpbmcgY29uZmlnIGFuZCBTRVQgc3VwcG9ydC4KCm1hcnogMjQgSmFuIDAwIDA4OjU5OjMyCiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptc2xpZmNhayAyNCBKYW4gMDAgMDk6NDQ6NDUKICAgIE1ha2Ugc3VyZSBrc3RhdF9mZCBpcyBpbml0aWFsaXplZCBiZWZvcmUgYmVpbmcgdXNlZC4KCm1zbGlmY2FrIDI0IEphbiAwMCAwOTo1NTozMgogICAgRml4IEJ1ZyAjMTQ0IGl0ZW1zIDEsMyw0IDogY2FzZSBpbnNlbnNpdGl2ZSBjaGVjayBmb3IgImFsbCIga2V5d29yZC4KCm1zbGlmY2FrIDI0IEphbiAwMCAxMDowNToxMgogICAgSXRvanVuJ3MgbmV0YnNkIEVMRiBwYXRjaCArIHJlbW92ZSB3b21iYXQgW0RhdmUncyBleGFtcGxlIGZpeF0KCm1zbGlmY2FrIDI0IEphbiAwMCAxMDoxNDo1NgogICAgRml4IHByaW50aW5nIElNUExJRUQgaW5kZXggKGZyb20gYXNzb2NpYXRlIG9mIEouIEttaWV0c2NoKSBtb2RpZmllZCBhbmQgYXBwbGllZC4KCm1hcnogMjQgSmFuIDAwIDEwOjM2OjQzCiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptYXJ6IDI1IEphbiAwMCAwNjo0OTo0MwogICAgc3ludGF4IGZvciB3aW4zMiBidWlsZAoKbWFyeiAyNSBKYW4gMDAgMTE6NDc6MTIKICAgIGFkZCBtaXNzaW5nIHN5bmJvbHMgZm9yIHBlcmwvU05NUCBtb2R1bGUKCm1hcnogMjUgSmFuIDAwIDEyOjA1OjU5CiAgICBhZGRpdGlvbmFsIHdpbjMyIGluc3RhbGwgbm90ZXMKCm5iYSAyNSBKYW4gMDAgMTM6NTI6NDIKICAgIC0gcGFyc2UuYzogZml4IGEgbWlzc2luZyBpbml0aWFsaXphdGlvbiBvZiB0Y19pbmRleAoKaGFyZGFrZXIgMjUgSmFuIDAwIDEzOjU1OjMzCiAgICAtICh2ZXN0aW50ZXJuZXR0L2Rpc2tpby5bY2hdKTogUmFnbmFyIEtqcnN0YWQncyBkaXNraW8gbWliLgoKaGFyZGFrZXIgMjUgSmFuIDAwIDEzOjU2OjAyCiAgICAtIChWRVNULUlOVEVSTkVUVC1NSUIudHh0KTogUmFnbmFyIEtqcnN0YWQncyBkaXNraW8gbWliLgoKbmJhIDI1IEphbiAwMCAxNDoxMjo1OAogICAgLSBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQsIE1ha2VmaWxlLmluOgogICAgCVVwZGF0ZSB0byB0aGUgY3VycmVudCBkcmFmdCBIT1NULVJFU09VUkNFUyAoZHJhZnQtb3BzLWhvc3RtaWItMDEpCgpoYXJkYWtlciAyNSBKYW4gMDAgMTQ6NDc6NTkKICAgIC0gKGNvbmZpZ3VyZSk6IGhlbHAgdXBkYXRlCgpoYXJkYWtlciAyNSBKYW4gMDAgMTQ6NTA6NTYKICAgIC0gKHNubXBfYWxhcm0uMywgc25tcF9hbGFybS5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgICAtIGZpeCByZWdpc3RyYXRpb24gZnVuY3Rpb24gdG8gZG8gd2hhdCBpdCBzYXlzIGl0IHNob3VsZCBkby4KCm1zbGlmY2FrIDI1IEphbiAwMCAxOTozMDo1MQogICAgTGFyZ2VyIGJ1ZmZlciBmb3IgcHJpbnRfbW9kdWxlX25hbWU7IEZpeCBwb3NzaWJsZSBudWxsIGRlcmVmIGluIGdldF90Yy4KCm1zbGlmY2FrIDI1IEphbiAwMCAyMTo0NjoxNAogICAgbWliLmM6cHJpbnRfdHJlZV9ub2RlIC0gc2hvdyBtb2R1bGUgbmFtZSBvbmNlIGluIC0tIEZST007CiAgICBwYXJzZS5jOiBzaG93ICJDYW5ub3QgZmluZCBtb2R1bGUiIG9uY2UgcGVyIG1pc3NpbmcgbW9kdWxlLgoKbXNsaWZjYWsgMjYgSmFuIDAwIDA3OjE0OjUwCiAgICBmaXggY29tcGlsZSBlcnJvciB3aGVuIC0td2l0aG91dC1yb290LWFjY2VzcyBpcyB1c2VkIChzdHJhdXNzQGlici5jcy50dS1icy5kZSkKCm1zbGlmY2FrIDI2IEphbiAwMCAwNzoyNjoyMgogICAgQWNrbm93bGVkZ2UgbW9yZSBjb250cmlidXRvcnMuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTA6MjQ6MjEKICAgIC0gKGdldFZhbHVlcy5wbSkgZ2V0VmFsdWVzLnBtIHdhcyBub3RlZCBtaXNzaW5nCgpoYXJkYWtlciAyNiBKYW4gMDAgMTU6Mjk6NTQKICAgIC0gKFVDRC1ESVNLSU8tTUlCLmluYywgVUNELURJU0tJTy1NSUIudHh0LCBWRVNULUlOVEVSTkVUVC1NSUIudHh0KToKICAgICAgUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgIC0gZml4IHRoZSBkaXNraW8gbWliLCBjb252ZXJ0IHRvIFNNSXYyLCBhbmQgbW92ZSB0byB1Y2RFeHBlcmltZW50YWwuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTU6MzA6NDIKICAgIC0gKFVDRC1ETE1PRC1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgIC0gcHJlZml4IG9pZCB3aXRoICJ1Y2QiLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE1OjMxOjAwCiAgICAtIChVQ0QtSVBGSUxURVItTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgICAtIHByZWZpeCBvaWRzIHdpdGggInVjZCIuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTU6MzI6MjUKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAgLSBjbGVhbiB1cCBhbmQgcmVmb3JtYXQgc3ViLXJlZ2lzdHJhdGlvbiBjb21tZW50cy4KCmhhcmRha2VyIDI2IEphbiAwMCAxNTozNDoyMAogICAgLSAoVUNELURFTU8tTUlCLnR4dCwgVUNELURJU0tJTy1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLnR4dCwKICAgICAgVUNELUlQRklMVEVSLU1JQi50eHQsIFVDRC1JUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIGNvcnJlY3QgdWNkLXNubXAtY29kZXJzIGVtYWlsIGFkZHJlc3MgdG8gcmVwbGFjZSAiZWNlIiB3aXRoICJ1Y2Qtc25tcCIuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTY6MDY6MzEKICAgIC0gKGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oLCBzbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgICAtIGFkZCBhYmlsaXR5IHRvIGFsbG93IHNlbmRpbmcgdHJhcHMgdG8gcG9ydHMgb3RoZXIgdGhhbiAxNjIuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTY6Mjg6MjIKICAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKToKICAgICAgLSBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDI2IEphbiAwMCAxNjo1Mzo0MQogICAgLSAoc25tcHYzLmMpOiBmaXggcHJpdiBrZXkgbGVuZ3RoIGV4dHJhcG9sYXRpb24uICBTaG91bGQgYmUgZG9uZSBkaWZmZXJlbnRseT8uCgpoYXJkYWtlciAyNiBKYW4gMDAgMTY6NTQ6NDMKICAgIC0gKFN2M0RFU2NvbmZpZywgVDAyM3NubXB2M2dldE1ENURFUyk6IGZpeCBERVMgdGVzdCBzbyBpdCB3b3Jrcy4KCmhhcmRha2VyIDI2IEphbiAwMCAxNzoxNTowNwogICAgLSAoc25tcGNtZC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZiwgc25tcHVzbS4xKToKICAgICAtIGJhZGx5IGRvbmUgdXBkYXRlcy4KCmhhcmRha2VyIDI2IEphbiAwMCAxNzoxODoxNwogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEucHJlMiApCgpoYXJkYWtlciAyNiBKYW4gMDAgMTc6MzI6NDEKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogYWxsb3cgJywnIHNlcGVyYXRlZCAtLXdpdGgtKi1tb2R1bGVzIGZsYWcgdmFsdWVzLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE5OjIyOjUzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNvbW1hLCBjb21tYSwgY29tbWEsIGNvbW1hLCBjb21tYS1jaGFtZWxlb24uCgpoYXJkYWtlciAyNyBKYW4gMDAgMDg6MzM6NDMKICAgIC0gKGRlZmF1bHRfc3RvcmUuYyk6IG1ha2UgY29uZmlnIHBhcnNlciBoYW5kbGUgIiIgKG51bGwpIHBhcnNlZCBzdHJpbmdzLgoKbWFyeiAyNyBKYW4gMDAgMTE6MTQ6MDkKICAgIHJlbW92ZSBuby1vcCBzbm1wX3N5bmNoX3NldHVwCgptc2xpZmNhayAyNyBKYW4gMDAgMTQ6NTE6MzkKICAgICAxLiBGaXggbWVtb3J5IGxlYWsgd2hlbiBhbm9ueW1vdXNseSBuYW1lZCBub2RlcyBhcmUgdXNlZC4KICAgICAyLiBIYWNrIGFyb3VuZCBzbWljbmcncyAiU01JICIgc3RhdGVtZW50cyB0byBwcmV2ZW50IG90aGVyIG1lbW9yeSBsZWFrcy4KCm1zbGlmY2FrIDI3IEphbiAwMCAxNjoxMzo1OAogICAgUmVtb3ZlIGhhY2sgYXJvdW5kICJTTUkiIHRva2VuOyBrZWVwIHRoZSBnb29kIHBhcnQgb2YgdGhlIHByZXZpb3VzIHBhdGNoLgoKbXNsaWZjYWsgMjggSmFuIDAwIDA3OjE4OjA5CiAgICBTb21lIHZhcmlhYmxlIHJlbmFtaW5nIGZvciBjb25zaXN0ZW5jeSwgZXJyb3IgY2hlY2tpbmcKICAgIGltcHJvdmVkLCBtaXNzaW5nIHN0cmluZy5oIGluY2x1ZGVkLiAgUGF0Y2ggc3VwcGxpZWQgYnkgYXV0aG9yLgoKbXNsaWZjYWsgMjggSmFuIDAwIDEyOjMwOjIwCiAgICBGaXggc3BlbGwgTElUVExFX0VORElBTi4gVGhhbmtzIHRvIHRhbG1hbkBoaXR0Lm5sLgoKbXNsaWZjYWsgMjggSmFuIDAwIDEyOjM4OjIyCiAgICBDaGFuZ2UgYWdlbnR4X3tidWlsZCxwYXJzZX1fc2hvcnQgLiBUaGFua3MgdG8gR2VyYXJkIFRhbG1hbkBoaXR0Lm5sLgoKbXNsaWZjYWsgMjggSmFuIDAwIDEyOjUyOjI1CiAgICBUaGlzIHdpdGggcHJldmlvdXMgdHdvIGNoYW5nZXMgY29tcGxldGVzIGEgcGF0Y2ggZm9yIGl0ZW1zIDIsMyw0CiAgICBmb3IgYnVnICMxNDkuCgpuYmEgMzAgSmFuIDAwIDAzOjAxOjUyCiAgICAtIGhvc3QuaDogY29uZmlnX3JlcXVpcmVfbWliKEhPU1QtUkVTT1VSQ0VTLVRZUEVTKQoKbmJhIDMwIEphbiAwMCAwMzowNDoyMgogICAgLSBocl9kaXNrLmM6IGNvbnZlcnQgdG8gMWsgYmxvY2tzCgpuYmEgMzAgSmFuIDAwIDAzOjA5OjM4CiAgICAtIGhyX3N0b3JhZ2UuYzogY29udmVydCBmcm9tIHBhZ2VzIHRvIDFrIGJsb2NrcwoKbmJhIDMwIEphbiAwMCAwMzoxMToyOAogICAgLSBpZi5jOiBkZWZlbnNpdmUgdGVzdCBmb3IgbWlzc2luZyBvYmplY3RzIChpdCBtaWdodCBmYWlsIHRvIHNob3cKICAgIAlkb3duIHN0YXR1cyBwcm9wZXJseSkKCm1hcnogMzAgSmFuIDAwIDA4OjE5OjM0CiAgICBjcmVhdGUgVjMgdXNlciBlbnRyeSwgY2xlYW51cAoKbWFyeiAzMCBKYW4gMDAgMTA6NDI6MzYKICAgIGNsZWFuIHVwIGJlZm9yZSByZWxlYXNlIC0gdXBkYXRlIHZlcnNpb24sIHJlbGVhc2Ugbm90ZXMKICAgIAogICAgTm90ZTogS05PV04gQlVHUwogICAgdGhlIG5ldyBxdW90ZWQgT0NURVRTVFIgaW5zdGFuY2UgaWRlbnRpZmllcnMgcmV0dXJuZWQgYnkgZ2V0X3N5bWJvbAogICAgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIHBlcmwvU05NUCBtb2R1bGUgKF9fZ2V0X2xhYmVsX2lpZCkKCm1hcnogMzAgSmFuIDAwIDEwOjQ0OjM3CiAgICBjbGVhbiB1cCBiZWZvcmUgcmVsZWFzZSAtIHVwZGF0ZSB2ZXJzaW9uLCByZWxlYXNlIG5vdGVzCiAgICAKICAgIE5vdGU6IEtOT1dOIEJVR1MKICAgIHRoZSBuZXcgcXVvdGVkIE9DVEVUU1RSIGluc3RhbmNlIGlkZW50aWZpZXJzIHJldHVybmVkIGJ5IGdldF9zeW1ib2wKICAgIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBwZXJsL1NOTVAgbW9kdWxlIChfX2dldF9sYWJlbF9paWQpCiAgICAKICAgIG5vdCBzdXJlIHRoYXQgdGhpcyBldmVyIHdvcmtlZCAtIHdpbGwgaGF2ZSB0byBsb29rIGF0IG9sZCBPQ1RFVFNUUgogICAgYmVoYXZpb3VyIGFuZCBzZWUgaG93IHRvIHJlY3JlYXRlIGl0CgptYXJ6IDMwIEphbiAwMCAxMDo1ODowMgogICAgY2xlYW4gdXAgYmVmb3JlIHJlbGVhc2UgLSB1cGRhdGUgdmVyc2lvbiwgcmVsZWFzZSBub3RlcyBldGMuCgpkYXZlcyAzMSBKYW4gMDAgMDE6MDU6MTYKICAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgpOiBMb2cgZmFpbGVkIE1JQiByZWdpc3RyYXRpb25zLgoKZGF2ZXMgMzEgSmFuIDAwIDAxOjQ1OjE1CiAgICAtIChhZ2VudC9hZ2VudF90cmFwLmMpOiBJbmNsdWRlIGluc3RhbmNlIHN1YmlkZW50aWZpZXIgaW4gc25tcFRyYXBPSUQgYW5kCiAgICAJc25tcFRyYXBFbnRlcnByaXNlIE9JRCBkZWZpbml0aW9ucy4gIChUaGFua3MgdG8gR2VyYXJkIFRhbG1hbikKCmRhdmVzIDMxIEphbiAwMCAwMjo0MDowMgogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5bY2hdKTogUmVzdG9yZSB0cmFkaXRpb25hbCBzb2NrZXQgZmllbGQgbmFtZXMuCgpkYXZlcyAzMSBKYW4gMDAgMDM6MDA6MTYKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCk6IEFsdGVybmF0aXZlIGFwcHJvYWNoIHRvIElyaXggc29ja2V0IGhhbmRsaW5nLgoKZGF2ZXMgMzEgSmFuIDAwIDAzOjAzOjE1CiAgICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOgogICAgICAtIEF0dGVtcHQgdG8gZGV0ZWN0IG5vbi10cmFkaXRpb25hbCBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmUgKG9uIElyaXggNi54KS4KCmRhdmVzIDMxIEphbiAwMCAwMzoxNDo1MAogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogSW5pdGlhbGl6ZSBhZGRybGVuIGluIF9zZXNzX3JlYWQoKS4gIChGcmFuayBTdHJhdXNzKQoKZGF2ZXMgMzEgSmFuIDAwIDAzOjQxOjA4CiAgICAtIChBR0VOVC50eHQpOiBSZXZpc2VkIGFuZCB1cGRhdGVkIHZlcnNpb24uCgpkYXZlcyAzMSBKYW4gMDAgMDc6NDk6NTAKICAgIC0gKGFjY29uZmlnLmggY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6CiAgICAgIC0gSW1wcm92ZWQgY2hlY2tpbmcgZm9yIElyaXgtc3R5bGUgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlLgoKZGF2ZXMgMzEgSmFuIDAwIDA3OjUxOjU0CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmgpOiBBdHRlbXB0IHRvIG1pbWljIElyaXgtc3R5bGUgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlLgoKZGF2ZXMgMzEgSmFuIDAwIDA3OjUzOjUyCiAgICAtIChzbm1wbGliL2FzbjEuYyBzbm1wbGliL3NubXAuYyBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wdXNtLmMpOgogICAgICAtIERvbid0IGFzc3VtZSBzaXplX3QgaXMgc2lnbmVkIChQZWtrYSBLeXRvbGFha3NvKQoKZGF2ZXMgMzEgSmFuIDAwIDA3OjU1OjA2CiAgICAtIChzbm1wbGliL3NubXB2My5bY2hdKTogRG9uJ3QgYXNzdW1lIHNpemVfdCBpcyBzaWduZWQgKFBla2thIEt5dG9sYWFrc28pCiAgICAgIC0gTi5COiBUaGlzIGNoYW5nZXMgdGhlIGludGVyZmFjZSBvZiBzbm1wdjNfZ2VuZXJhdGVfZW5naW5lSUQoKSBzbGlnaHRseS4KCmRhdmVzIDMxIEphbiAwMCAwNzo1NjozOAogICAgLSAoYXBwcy9zbm1wdGVzdC5jKTogRG9uJ3QgYXNzdW1lIHNpemVfdCBpcyBzaWduZWQgKFBla2thIEt5dG9sYWFrc28pCgpkYXZlcyAzMSBKYW4gMDAgMDc6NTc6NTYKICAgIC0gKG1pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuW2NoXSk6CiAgICAgIC0gUHJvdmlkZSBhbiBleGFtcGxlIGZvciBob3cgdG8gdHJpZ2dlciBhIHRyYXAuCgptYXJ6IDMxIEphbiAwMCAxMDo0MToxNgogICAgc2V0IERTX0xJQl9ET05UX0JSRUFLRE9XTl9PSURTIHRvIGdldCBwcmV2aW91bHN5IHJlbGVhc2VkIGJlaGF2aW91ciBvZiBnZXRfc3ltYm9sIHdydCBvY3RldCBiYXNlZCBpbnN0YW5jZSBpZHMgKGkuZS4sIG5vIGRvdWJsZS1xdW90aW5nKQoKZGF2ZXMgIDEgRmViIDAwIDAxOjQ5OjU1CiAgICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUgc25tcGxpYi9zbm1wX2FwaS5oKToKICAgICAgLSBGaXggYnJva2VuIHNldHRpbmcgb2Ygc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlIGNob2ljZS4KCmRhdmVzICAxIEZlYiAwMCAwMzozNzoyNQogICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggc2Vzc2lvbiBJRCBoYW5kbGluZyB3aGVuIGRlbGVnYXRpbmcgcmVxdWVzdHMuCgpkYXZlcyAgMSBGZWIgMDAgMDQ6MTk6MTYKICAgIC0gKGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBDYXRjaCBjb21tb24gaW52YWxpZCBjb25maWd1cmUgb3B0aW9ucy4KCmRhdmVzICAxIEZlYiAwMCAwNToyNzowMwogICAgLSAoRkFRKTogRXhwYW5kIHRoZSBkZXNjcmlwdGlvbiBvZiBnZW5lcmF0aW5nIHRyYXBzIGZyb20gdGhlIGFnZW50IHNsaWdodGx5LgoKaGFyZGFrZXIgIDEgRmViIDAwIDA4OjMyOjAzCiAgICAtIChkaXNraW8uKik6IG1vdmVkIHRvIHRoZSB1Y2Qtc25tcCBkaXJlY3RvcnkKCmhhcmRha2VyICAxIEZlYiAwMCAwODozNDowOQogICAgLSAoZGlza2lvLmgpOiBsb2FkIHRoZSBtaWIuCgpoYXJkYWtlciAgMSBGZWIgMDAgMDg6MzQ6MjQKICAgIC0gKGRpc2tpby5jKTogbW92ZSB0byB1Y2RFeHBlcmltZW50YWwuMTUuCgpoYXJkYWtlciAgMSBGZWIgMDAgMDg6NDM6MDMKICAgIC0gKE5FV1MpOiB1cGRhdGUgKGFnYWluKS4KCmhhcmRha2VyICAxIEZlYiAwMCAwODo0NTo0MQogICAgLSAoc25tcGNtZC4xKTogLlBQIC0+IC5JUCBmb3IgLU9iLgoKaGFyZGFrZXIgIDEgRmViIDAwIDA4OjQ2OjA3CiAgICAtIChzbm1wdXNtLjEpOiBjaGFuZ2VkIGNvbnRleHQgc3RyaW5nIGluIGV4YW1wbGVzIHRvICIiLgoKbXNsaWZjYWsgIDEgRmViIDAwIDExOjI2OjM2CiAgICBGaXh1cCBtb3JlIHNpZ25lZC91bnNpZ25lZCBjb21wYXJpc29ucy4KCmRhdmVzICAyIEZlYiAwMCAwMToxMjozNwogICAgLSAoaG9zdC9ocl9kaXNrLmMpOiBGaXggc29sYXJpcyBpbml0aWFsaXNhdGlvbiwgcGx1cyBleHRyYSBkZWJ1Z2dpbmcgaW5mby4KCm1zbGlmY2FrICAyIEZlYiAwMCAwNDo0NDoyMwogICAgUmVtb3ZlIGRlcGVuZGVuY2llcyBvbiAobW92ZWQpIHZlc3RpbnRlcm5ldHQvZGlza2lvCgpuYmEgIDIgRmViIDAwIDA2OjQ0OjMxCiAgICAtIHNvbGFyaXMyLjguaDogU29sYXJpcyA4IHNlZW1zIGNsb3NlIHRvIFNvbGFyaXMgNwoKbmJhICAyIEZlYiAwMCAwNjo0NToyNQogICAgLSBocl9kaXNrLmM6IGFkZCBOZXRCU0Qgc3VwcG9ydAoKaGFyZGFrZXIgIDIgRmViIDAwIDA3OjE3OjI4CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHVwZGF0ZWQgLS1oZWxwCgpkYXZlcyAgMiBGZWIgMDAgMDg6MDI6NDYKICAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogQ29ycmVjdGx5IGhhbmRsZSBpbmRpdmlkdWFsbHkgZXhjbHVkZWQgaW5zdGFuY2VzCgptc2xpZmNhayAgMiBGZWIgMDAgMDg6NDI6MTcKICAgIEFsbG93IC1DbyB0byBhZmZlY3QgdGhlIG91dGNvbWUuCgptc2xpZmNhayAgMiBGZWIgMDAgMDg6NTI6NDMKICAgIGZpeCB0aGUgZmF0LWZpbmdlcmluZyBwYXRjaCBJIGp1c3QgbWFkZS4gZmVoLgoKaGFyZGFrZXIgIDIgRmViIDAwIDEwOjUyOjMzCiAgICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIFJvYmVydCBNaWxlczoKICAgICAgLSB2YXJpb3VzIGZpeGVzOgogICAgICAgIDEpIFRoZSBmaXJzdCByZWdpc3RyYXRpb24gcmVxdWVzdCBjb3VsZCBiZSBsb3N0LgogICAgICAgIDIpIFJlZ2lzdHJhdGlvbiBkZWxldGUgcmVxdWVzdHMgbmV2ZXIgcmVjZWl2ZWQgYSByZXNwb25zZS4KICAgICAgICAzKSBSZWdpc3RyYXRpb24gZGVsZXRlIHJlcXVlc3RzIHdlcmUgbm90IGZpbmRpbmcgdGhlIHJlZ2lzdHJhdGlvbiB3aGVuIHRoZQogICAgICAgICAgIGRlbGV0ZSdzIHByaW9yaXR5IHdhcyBzZXQgdG8gLTEuCiAgICAgICAgNCkgTm9uLXplcm8gdmFsdWVzIHdlcmUgbm90IGJlaW5nIGVuY29kZWQgcHJvcGVybHkgaW4gcmVnaXN0cmF0aW9uCiAgICAgICAgICAgcmVzcG9uc2VzLgoKbWFyeiAgMiBGZWIgMDAgMTQ6MTg6MDkKICAgIGFkZCBpbnN0cnVjdGlvbnMgZm9yIGJ1aWxkaW5nIHcvIE9wZW5TU0wgb24gVkMrKwoKbXNsaWZjYWsgIDIgRmViIDAwIDE0OjE4OjIyCiAgICBMZXQgaHJQcm9jZXNzb3JMb2FkIG91dCBvZiB0aGUgZ2VuaWUncyBib3R0bGUuCgptc2xpZmNhayAgMiBGZWIgMDAgMTY6MjQ6MTUKICAgIFRvdWNodXAgZm9yIGJ1aWxkaW5nIG1vcmUgTUlCIG1vZHVsZXMgaW4gV2luMzIgKE1TVkMpLgoKbXNsaWZjYWsgIDIgRmViIDAwIDE2OjM2OjIxCiAgICBUb3VjaHVwIHRvIGJ1aWxkIG1vcmUgTUlCIG1vZHVsZXMgb24gV2luMzIuCgpkYXZlcyAgMyBGZWIgMDAgMDE6MzU6MTIKICAgIC0gKEZBUSk6IERvY3VtZW50IGNoYW5nZXMgdG8gYWNjZXNzIGNvbnRyb2wgc3R1ZmYuCgptc2xpZmNhayAgMyBGZWIgMDAgMDQ6MTI6NTcKICAgIFVuZG8gdW5pbmZvcm1lZCBjaGFuZ2UgOiBsb2FkIGF2ZXJhZ2UgIT0gYXZlcmFnZSB0aW1lIHRoYXQgQ1BVIGlzIGlkbGUuCgptc2xpZmNhayAgMyBGZWIgMDAgMDY6NDM6MTAKICAgIGluY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaCB0byBtYWtlIHRoZSBVU0lOR18gY29uc3RhbnRzIHZpc2libGUuCgptYXJ6ICAzIEZlYiAwMCAwOTo0NDozNwogICAgdXBkYXRlIG15IGVtYWlsCgptc2xpZmNhayAgMyBGZWIgMDAgMDk6NTY6NDgKICAgIEluY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaCBmcm9tIG1pYmluY2wuaCwgbm90IHRvcCBsZXZlbCBjb25maWcuaC4KCm1hcnogIDMgRmViIDAwIDEwOjQ4OjM3CiAgICBhZGQgLXUgUElERklMRSB0byBzbm1wdHJhcGQsIG5vdyB3ZSBuZWVkIC1jIC1DIDopLCBidHcgaXMgdGhlIHZhbHVlIG9mIG9wdGFyZyByZWxpYWJsZSBhZnRlciBnZXRvcHQgaGFzIGJlZW4gY2FsbGVkIGFnYWluLi4uaXQgc2VlbXMgdG8gd29yawoKbXNsaWZjYWsgIDMgRmViIDAwIDEyOjU3OjIwCiAgICBSZW1vdmUgRE9TLXN0eWxlIGxpbmUgdGVybWluYXRpb24gKENSLUxGIC0tPiBMRikuCiAgICBsaWJzbm1wLmRlZiAtIHJlbW92ZSB1bm5lZWRlZCBjb21tZW50IGFib3V0IG9ic29sZXRlIHYycGFydHkuCgptc2xpZmNhayAgMyBGZWIgMDAgMTI6NTg6MjcKICAgIE5vdGUgdGhlIHdvbWJhdCBpcyByZXBsYWNlZCBieSBleGFtcGxlIGluIG1vcmUgcGxhY2VzLgoKbXNsaWZjYWsgIDMgRmViIDAwIDEzOjI4OjMxCiAgICBGb2xsb3cgY29uZGl0aW9uIEhBVkVfR0VUUElEIGZvciBwaWRfZmlsZSBvYmplY3QuCgpoYXJkYWtlciAgMyBGZWIgMDAgMTQ6Mjk6MTkKICAgIC0gKGR1bW15LyopOiByZW1vdmVkLCB1c2UgZXhhbXBsZSBpbnN0ZWFkLgoKaGFyZGFrZXIgIDMgRmViIDAwIDE0OjQ0OjMzCiAgICAtIChzdWJhZ2VudC5jKTogaW5jbHVkZSBtaWJfbW9kdWxlX2NvbmZpZy5oLgoKaGFyZGFrZXIgIDMgRmViIDAwIDE0OjQ2OjEwCiAgICAtIChzdWJhZ2VudC5jKTogcHJvdGVjdCBzeXNPUlRhYmxlIGNhbGxiYWNrcyB3aXRoICNpZmRlZnMuCgpoYXJkYWtlciAgMyBGZWIgMDAgMTQ6NTE6NDAKICAgIC0gKFJFQURNRSk6IHJlbW92ZSBkdW1teSByZWZlcmVuY2UuCgpuYmEgIDMgRmViIDAwIDIzOjU3OjQ5CiAgICAtIGFnZW50L3JlZ2lzdHJ5LmMsIGFnZW50X3RyYXAuYywgY2xpZW50LmM6IGNoYW5nZSBzb21lIHR5cGUgY2FzdHMgZnJvbQogICAgCShjaGFyICopIHRvICh1X2NoYXIgKikgdG9wIHNpbGVuY2Ugc29tZSB3YXJuaW5ncy4KCm5iYSAgMyBGZWIgMDAgMjM6NTk6NTcKICAgIC0gbXRfc3VwcG9ydC5oOiBhbm90aGVyIHdheSBvZiBkb2luZyBub3RoaW5nLCBub3QgZ2l2aW5nIGEgIm51bGwgZWZmZWN0IgogICAgCXdhcm5pbmcgZnJvbSBnY2MuCgpuYmEgIDQgRmViIDAwIDAwOjE2OjAxCiAgICAtIHJlYWRfY29uZmlnLmMsIG1pYi5jOiBmaXggc29tZSBQQVRIIHNlcGFyYXRvcnMgZnJvbSBjb25zdGFudCA6IHRvCiAgICAJRU5WX1NFUEFSQVRPUntfQ0hBUn0KCm5iYSAgNCBGZWIgMDAgMDA6MTc6NDgKICAgIC0gaHJfZGlzay5jOiBBIGxpdHRsZSBjbGVhbnVwIG9mIHRoZSBkaXNrIGRldmljZSBkZWZpbml0aW9ucywgYWxzbyBhZGRpbmcKICAgIAlTQ1NJIHRvIEZyZWVCU0QgMwoKbmJhICA0IEZlYiAwMCAwMToyMDo1NQogICAgLSB2YWNtX3ZhcnMuYzogc2xpZ2h0IHJld29yZGluZyBvZiB3YXJuaW5nIG1lc3NhZ2UKCm5iYSAgNCBGZWIgMDAgMDQ6MDA6MjcKICAgIC0gaHJfZGlzay5jOiByZWFsbHkgZG8gdGhhdCBGcmVCU0Qgc2NzaSB0aGluZwoKbWFyeiAgNCBGZWIgMDAgMDY6NDQ6MjQKICAgICBoYXZlIG1pYiBsb2FkaW5nIGFwaSByZXR1cm4gcmVzdWx0IGNvZGVzCgptYXJ6ICA0IEZlYiAwMCAwODo1NTo0MgogICAgYWRkIGRlZmF1bHRzIGZvciB2MiB0cmFwIHBhcmFtcwoKaGFyZGFrZXIgIDQgRmViIDAwIDEyOjAxOjMyCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOiBmaW5kLCBsb2NhdGUsIGFuZCB1c2UgcGVybCBpZiBmb3VuZC4KCmhhcmRha2VyICA0IEZlYiAwMCAxMjo0NzoyNgogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHYzLmMpOiBwcm92aWRlIHYzIGRlZmF1bHRzLgoKaGFyZGFrZXIgIDQgRmViIDAwIDEzOjEyOjE4CiAgICAtIChyZWFkX2NvbmZpZy5jKTogZG9uJ3QgcHJpbnQgZmFpbGVkIGFjY2VzcyBlcnJvcnMgKEVBQ0NFUykuCgpoYXJkYWtlciAgNCBGZWIgMDAgMTM6MTU6NTEKICAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwKICAgICAgTWFrZWZpbGUuaW4pOiBmaW5hbCBtYWtlIGRlcGVuZC4KCmhhcmRha2VyICA0IEZlYiAwMCAxMzo1MDoxNQogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYyk6IGRvbid0IHJlYWQgdGhlIG9wdCBjb25maWcgZmlsZSBvciBjYWxsCiAgICAgIHBvc3RfY29uZmlnIGNhbGxiYWNrcywgc2luY2UgdGhlIGxpYnJhcnkgdGFrZXMgY2FyZSBvZiB0aGF0IG5vdy4KCm1hcnogIDQgRmViIDAwIDEzOjUyOjA4CiAgICB1cGRhdGVzIGZvciBwZXJsL1NOTVAgYnVpbGQKCmhhcmRha2VyICA0IEZlYiAwMCAxMzo1NjoxOQogICAgLSAoc25tcHRyYXBkLmMpOgogICAgICAtIGltcGxlbWVudCAtYyBhbmQgLUMgZmxhZ3MgZm9yIEpvZS4KICAgICAgLSByZWRpZCB0aGUgaW5pdCBzdHJ1Y3R1cmUgdG8gbWFrZSBpdCBsb29rIG1vcmUgbGlrZSB0aGUgY3VycmVudCBhZ2VudC4KCmhhcmRha2VyICA0IEZlYiAwMCAxNDowMTozMAogICAgLSAoc25tcHRyYXBkLjgpOiBkb2N1bWVudCAtYyBhbmQgLUMuCgptYXJ6ICA0IEZlYiAwMCAxNToyMTo0MQogICAgYnVpbGQgZml4ZXMgYW5kIHRlc3QgZW5oYW5jZW1lbnRzCgptYXJ6ICA0IEZlYiAwMCAxNTo0NDo0NAogICAgdXBkYXRlcyBmb3IgcGVybC9TTk1QIGJ1aWxkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4wIC0+IFY0LjAuMQoKaGFyZGFrZXIgMjMgQXVnIDk5IDE2OjQ0OjI3CiAgICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdGhlIHNubXB1c20uMSBtYW51YWwgcGFnZS4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNDo0NDo0NwogICAgQ2xlYW4gQ1JzIGZyb20gcmVhZF9jb25maWcsc25tcF9sb2dnaW5nOyBjb21tZW50IGRlZmluZSBVU0VfQVNOX1NIT1JUX0xFTi4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNToxMToxMwogICAgUmVtb3ZlIEFTTl9TSE9SVF9MRU4gaGFjayAtIGtub3duIHRvIGR1bXAgY29yZSBpbiBhZ2VudC4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNjoxOTo0OQogICAgQWRkICIuIiB0byBQQVRIIGZvciBSVU5URVNUUzsgRHJvcCBvcHRyZXNldCB0byBidWlsZCBtb3N0IHBsYXRmb3JtcwoKbXNsaWZjYWsgMjQgQXVnIDk5IDEwOjI1OjUzCiAgICAtKHRlc3RpbmcvZXZhbF90b29scykgLSBsZXQgc29tZSAoQUlYKSBhZ2VudHMgc2V0dGxlIGJlZm9yZSBmaXJpbmcgcmVxdWVzdHMuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTI6NDg6MjEKICAgIC0gKHZhY21fdmFycy5jKTogY29ycmVjdCBzeXNPUlRhYmxlIGVudHJ5LgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjM2OjM1CiAgICAtIChzbm1wdXNtLmMpOiBjaGVjayBmb3IgbnVsbCByZXNwb25zZSBwb2ludGVyLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjM3OjMxCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wdjMuYyk6CiAgICAgIC0gcHJvdmlkZSBkZWZWZXJzaW9uIHRva2VuIHN1cHBvcnQgaW4gc25tcC5jb25mIChzb3J0IG9mIGhhY2tpc2gpLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjQxOjE4CiAgICAtIChUT0RPKTogcmVtb3ZlIHNubXB2MyBzdXBwb3J0IDotKQoKbXNsaWZjYWsgMjQgQXVnIDk5IDE0OjA1OjM5CiAgICAtKHRvcC9NYWtlZmlsZS5pbikgLSByZW1vdmUgbW9yZSBnZW5lcmF0ZWQgZmlsZXMgd2l0aCBkaXN0Y2xlYW4gcnVsZS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNDoxNTo0MAogICAgLSAoYWxsX3N5c3RlbS5oKTogcmVtb3ZlLiAgYWdhaW4uCgptc2xpZmNhayAyNCBBdWcgOTkgMTQ6MTc6MzMKICAgIC0oaG9zdC9ocl9zd3J1bjttaWJJSS9pY21wLGlwO3VjZC1zbm1wL2Rpc2sscHJvYykgbG9nX3BlcnJvciAtLT4gc25tcF9sb2dfcGVycm9yCgptc2xpZmNhayAyNCBBdWcgOTkgMTU6MTQ6MTgKICAgIC0oc211eC5jKSBhcHBseSBOaWNrIEFtYXRvJ3MgcGF0Y2g6IHByZXZlbnQgU01VWCBjbG9zZSBvbiBwYXJzZSBvciBlcnJvci4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNTo1OTo0MgogICAgLSAoc25tcF9hcGkuYyk6IHJlbW92ZSB2ZXJzaW9uIHNldHRpbmcgaW4gc25tcF9hcGkuYy4gIE5vdCBuZWVkZWQgdGhlcmUuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTY6MDE6NTUKICAgIC0gKE5FV1MpOiA0LjAuMSB1cGRhdGUKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNjowNToxNQogICAgLShjb25maWd1cmUuKikgbW92ZSBzdGF0ZW1lbnQgYWJvdXQgdWNkRGVtb1B1YmxpYyBpbnRvIGNvbW1lbnQgZmllbGQuCgptc2xpZmNhayAyNCBBdWcgOTkgMTY6NDk6MjIKICAgIC0odGVzdGluZy8qKSBydW4gdGVzdHMgd2hlbiBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQsIGFuZCB3aGVuCiAgICB0aGUgYnVpbGQgdHJlZSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSB0cmVlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNi4yIC0+IFY0LjAKCmhhcmRha2VyIDE0IFNlcCA5OCAwOToxMTo1NwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBjaGFuZ2UgdGhlIFBFUlNJU1RFTlRGSUxFIGRlZmluZSB0byBQRVJTSVNURU5URElSLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDA5OjE3OjQ1CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jLCBzbm1wZC5oLCBzeXN0ZW0uYyk6CiAgICAgIC0gbW92ZSBwZXJzaXN0ZW50IGNhY2hlIGNhcGFiaWxpdHkgaW50byB0aGUgbGlicmFyeSBmcm9tIHRoZQogICAgICAgIGFnZW50LiAoc25tcHRyYXBkLCBhbmQgb3RoZXJzIHdpbGwgbmVlZCB0aGlzIGFzIHdlbGwpLgogICAgICAtIGltcGxlbWVudCBzb21lIG5ldyBmdW5jdGlvbnM6IGluaXRfc25tcHYzKCksIHNubXB2M19zaHV0ZG93bigpLAogICAgICAgIHNubXB2M19nZXRfZW5naW5lX2Jvb3RzKCksIGV0Yy4KICAgICAgLSBhZ2VudEJvb3RzIC0+IGVuZ2luZUJvb3RzLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDA5OjIxOjA1CiAgICAtIChNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBtb3ZlIHBlcnNpc3RlbnQgY2FjaGUgY2FwYWJpbGl0eSBpbnRvIHRoZSBsaWJyYXJ5IGZyb20gdGhlCiAgICAgICAgYWdlbnQuIChzbm1wdHJhcGQsIGFuZCBvdGhlcnMgd2lsbCBuZWVkIHRoaXMgYXMgd2VsbCkuCiAgICAgIC0gaW1wbGVtZW50IHNvbWUgbmV3IGZ1bmN0aW9uczogaW5pdF9zbm1wdjMoKSwgc25tcHYzX3NodXRkb3duKCksCiAgICAgICAgc25tcHYzX2dldF9lbmdpbmVfYm9vdHMoKSwgZXRjLgogICAgICAtIGFnZW50Qm9vdHMgLT4gZW5naW5lQm9vdHMuCgpoYXJkYWtlciAxNCBTZXAgOTggMDk6MjM6MDkKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaCwgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLAogICAgICBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywKICAgICAgc25tcHRlc3QuYywgc25tcHRyYXAuYywgc25tcHdhbGsuYyk6CiAgICAgIC0gcGFzcyBhcHAgbmFtZSB0byBzbm1wX3BhcnNlX2FyZ3MsIHNvIGl0IGNhbiBwYXNzIGl0IHRvCiAgICAgICAgaW5pdF9zbm1wKCksIHdoaWNoIG5vdyBuZWVkcyBpdCBmb3IgcGVyc2lzdGVudCBjYWNoZSByZWFkaW5nLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDA5OjI1OjEzCiAgICAtIChzbm1wRW5naW5lLmMsIHNubXBFbmdpbmUuaCk6CiAgICAgIC0gQmVnaW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIFNOTVAtRlJBTUVXT1JLLU1JQi4KCmhhcmRha2VyIDE0IFNlcCA5OCAxNzo0MzoxMgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBkZWZpbmUgRU5URVJQUklTRV9OVU1CRVIgdG8gMjAyMS4KCmhhcmRha2VyIDE0IFNlcCA5OCAxNzo0Mzo1MAogICAgLSAoc25tcHYzLmMsIHNubXB2My5oKTogaW1wbGVtZW50IHNubXBFbmdpbmVJRCBjcmVhdGlvbiBhbmQgY29uZmlndXJhdGlvbi4KCmhhcmRha2VyIDE0IFNlcCA5OCAxNzo0NDowNgogICAgLSAoc25tcEVuZ2luZS5jKTogcmVwb3J0IHNubXBFbmdpbmVJRCBwcm9wZXJseS4KCmhhcmRha2VyIDE0IFNlcCA5OCAxNzo0OToxNQogICAgLSAoc25tcHYzbWlicy5oKTogaGlnaC1sZXZlbCBtb2R1bGUgY3JlYXRlZCB0byBpbXBvcnQgdjMgcmVsZWF0ZWQgbWlicy4KCmhhcmRha2VyIDE0IFNlcCA5OCAyMTowOTo0MQogICAgLSAodXRpbF9mdW5jcy5bY2hdLCBzbm1wRW5naW5lLmMsIHNubXB2My5bY2hdLCBzeXN0ZW0uW2NoXSk6CiAgICAgIC0gbW92ZSBzbm1wRW5naW5lVGltZSBjYWxjdWxhdGlvbiB0byBzbm1wbGliL3NubXB2My5jLgogICAgICAtIG1vdmUgY2FsY3VsYXRlX3RpbWVfZGlmZigpIHRvIHN5c3RlbS5jIGZyb20gdXRpbF9mdW5jcy5jLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDIyOjI5OjU1CiAgICAtIChzbm1wTVBEU3RhdHMuYywgc25tcE1QRFN0YXRzLmgpOgogICAgIC0gaW1wbGVtZW50IFNOTVAtTVBELU1JQi4KCmhhcmRha2VyIDE0IFNlcCA5OCAyMjozMDoxMAogICAgLSAoc25tcHYzbWlicy5oKTogYWRkIHNubXBNUERTdGF0cyBtb2R1bGUuCgpoYXJkYWtlciAxNCBTZXAgOTggMjI6NDA6MjQKICAgIC0gKHNubXBFbmdpbmUuYywgc25tcE1QRFN0YXRzLmMpOiByZWdpc3RlciB0aGUgbW9kdWxlcyBpbiBzeXNPUlRhYmxlLgoKaGFyZGFrZXIgMTYgU2VwIDk4IDA3OjA0OjExCiAgICAtIChzbm1wTVBEU3RhdHMuYyk6IGRvdWJsZSBibGFuayAtPiBzaW5nbGUuCgpoYXJkYWtlciAxNiBTZXAgOTggMDc6MDQ6NTgKICAgIC0gKHVzbVN0YXRzLmMsIHVzbVN0YXRzLmgpOiBpbXBsZW1lbnQgdGhlIHVzbVN0YXRzIHBvcnRpb24gb2YgdGhlCiAgICAgIFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIuCgpoYXJkYWtlciAxNiBTZXAgOTggMDc6MDU6NDMKICAgIC0gKHNubXB2M21pYnMuaCk6IGFkZCB1c21TdGF0cyB0byByZXF1aXJlIGxpc3QuCgpoYXJkYWtlciAxOCBTZXAgOTggMDk6NTQ6MDgKICAgIC0gKHNubXBfYXBpLmMpOiBjaGFuZ2Ugc3ByaW50Zl9vaWQgYnVmIGxlbmd0aCBpbiBERUJVR1BPSUQgdG8gNDA5Ni4KCmhhcmRha2VyIDE4IFNlcCA5OCAwOTo1NTowNwogICAgLSAoc25tcGQuYyk6IGluaXRfc25tcHYzIG5lZWRzIHRvIGdvIGFib3ZlIGluaXRfYWdlbnQgZm9yIGVuZ2luZUlEIGNyZWF0aW9uLgoKaGFyZGFrZXIgMTggU2VwIDk4IDA5OjU5OjIwCiAgICAtIChzbm1wdjNtaWJzLmgsIHVzbVVzZXIuYywgdXNtVXNlci5oLCBNYWtlZmlsZS5pbiwgc25tcHVzbS5jLAogICAgICBzbm1wdXNtLmgsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gYmFzaWMgdXNtVXNlciBzdHJ1Y3R1cmUgY3JlYXRlZCBmb3IgdGhlIGxpYnJheSB3aXRoIHN1cHBvcnQKICAgICAgICBmdW5jdGlvbnM6CiAgICAgICAgLSBzdHJ1Y3QgdXNtVXNlciAqdXNtX2dldF91c2VyKCplbmdpbmVJRCwgIGVuZ2luZUlETGVuLCAgKm5hbWUsICp1c2VyTGlzdCk7CiAgICAgICAgLSBzdHJ1Y3QgdXNtVXNlciAqdXNtX2FkZF91c2VyKCp1c2VyLCAqdXNlckxpc3QpOwogICAgICAgIC0gc3RydWN0IHVzbVVzZXIgKnVzbV9mcmVlX3VzZXIoKnVzZXIpOwogICAgICAgIC0gc3RydWN0IHVzbVVzZXIgKnVzbV9jbG9uZV91c2VyKCpmcm9tKTsKICAgICAgICAtIHN0cnVjdCB1c21Vc2VyICp1c21fY3JlYXRlX2luaXRpYWxfdXNlcigpOwogICAgICAtIGZpcnN0IHBhc3MgYXQgYmFzaWMgVVNNIG1vZHVsZSBzdXBwb3J0IGFkZGVkIHRvIHRoZSBhZ2VudC4KCmhhcmRha2VyIDE4IFNlcCA5OCAxMjo0Mjo0NgogICAgLSAoc25tcC10Yy5oKTogY3JlYXRlIGEgbmV3IC5oIGZpbGUgdG8gc3RvcmUgY29tbW9uIHRleHR1YWwgY29udmVudGlvbiBkZWZpbmVzLgoKaGFyZGFrZXIgMTggU2VwIDk4IDEyOjQ2OjM4CiAgICAtICh1c21Vc2VyLmMsIHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAgLSBjcmVhdGUgYW5kIHVzZSBzdG9yYWdlVHlwZS91c2VyU3RhdHVzIGluIHRoZSB1c21Vc2VyIHN0cnVjdHVyZS4KICAgICAgLSBmaXggdGhlIGF1dGgvcHJpdiBwcm90b2NvbCBwb2ludGVyIGluaXRpYWxpemF0aW9ucyBmb3IgdGhlICJpbml0aWFsIiB1c2VyLgoKaGFyZGFrZXIgMjAgU2VwIDk4IDExOjQ2OjEzCiAgICAtIChzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgc25tcHVzbS5oIGFuZCBzbm1wdjMuaC4KCmhhcmRha2VyIDIwIFNlcCA5OCAxMTo0NzoxNwogICAgLSAoc25tcF9hZ2VudC5jKTogaWYgYSBtaWIgbW9kdWxlIHJldHVybnMgYW4gZXJyb3IgPiBTTk1QX0dFTl9FUlIsCiAgICAgIHRyYW5zbGF0ZSB0aGUgZXJyb3IgdG8gU05NUF9HRU5fRVJSIGZvciB2MSByZXF1ZXN0cy4KCmhhcmRha2VyIDIwIFNlcCA5OCAxMTo0OTowNAogICAgLSAobWliMmMpOgogICAgICAtIGZwcmludGYgLT4gREVCVUdQLgogICAgICAtIF9fUCAtPiBBTlNJLgoKaGFyZGFrZXIgMjAgU2VwIDk4IDExOjUyOjA4CiAgICAtICh1c21Vc2VyLmMsIHVzbVVzZXIuaCk6CiAgICAgIC0gZ2V0TmV4dCBidWcgZml4ZXMuCiAgICAgIC0gbWFrZSB1c21QdWJsaWMgdHJ1ZWx5IHdyaXRhYmxlLgogICAgICAtIGltcGxlbWVudCB1c21fcGFyc2Vfb2lkKCkgdG8gcGFyc2UgYW4gb2lkIGludG8gZW5naW5lSUQvbmFtZS4KICAgICAgLSBpbXBsZW1lbnQgdGhlIHVzbVVzZXJTcGluTG9jay4KICAgICAgLSBtaXNjIG90aGVyIGJ1ZyBmaXhlcy4KCmhhcmRha2VyIDIxIFNlcCA5OCAxMToxMjo0OQogICAgLSAoc25tcF92YXJzLmMpOiBmaW5hbGx5IGZpeGVkIHRoZSB3cml0ZV9tZXRob2QncyBmb3IgY3JlYXRpb24gcHJvYmxlbS4KCmhhcmRha2VyIDIzIFNlcCA5OCAxMDo0MDowNAogICAgLSAoU05NUHYyLVRDLnR4dCk6IHJlanVzdGlmeSBhIHRhYmxlLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDEwOjQ1OjEzCiAgICAtICh1c21Vc2VyLmMpOgogICAgICAtIE1ha2UgdXNtVXNlclN0YXR1cyBhY3R1YWxseSB3cml0YWJsZSBhbmQgY2FwYWJsZSBvZiBjcmVhdGluZyBuZXcgcm93cy4KICAgICAgLSBCZWdpbiAoYnJva2VuKSBjbG9uZUZyb20gc2V0dGluZy4KICAgICAgLSBGaXhlczoKICAgICAgICAtIHByb3Blcmx5IG1hbGxvYyBzcGFjZS4KICAgICAgICAtIHByb3Blcmx5IHVzZSBkb3VibGUgY2hhciBuYW1lIGFuZCBlbmdpbmVJRCBwb2ludGVycy4KICAgICAgICAtIGRvIHByb3BlciBvaWQgY29tcGFyaXNvbnMgZm9yIGdldE5leHRzLgogICAgICAgIC0gY2hlY2sgdG8gc2VlIHRoYXQgdXB0ciBpcyBkZWZpbmVkIGJlZm9yZSB1c2luZyBpdCB0byByZXRyaWV2ZSBkYXRhLgogICAgICAgIC0gY2xvbmVGcm9tIHNob3VsZCBhbHdheXMgcmV0dXJuIHRoZSBaZXJvRG90WmVybyBPSUQuCgpoYXJkYWtlciAyMyBTZXAgOTggMTA6NDY6MzUKICAgIC0gKHNubXB1c20uYyk6CiAgICAgIC0gZml4IHVzbV9hZGRfdXNlcigpIGZyb20gYWx3YXlzIGFkZGluZyB0aGUgdXNlciBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LgogICAgICAtIHNldCBkZWZhdWx0IHZhbHVlcyBmb3IgYXV0aC9wcml2IHByb3RvY29scyBvbiBuZXcgdXNlcnMuCgpoYXJkYWtlciAyMyBTZXAgOTggMTA6NDc6MjgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBjcmVhdGUgc25tcF9kdXBsaWNhdGVfb2JqaWQoKSB0byBtYWxsb2MgYSBuZXcgb2lkLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDEyOjE1OjExCiAgICAtIChJU1NVRVMpOiB1cGRhdGUKCmhhcmRha2VyIDIzIFNlcCA5OCAxMjoyNDowNAogICAgLSAoSVNTVUVTKTogdG9vayBvbmUuCgpoYXJkYWtlciAyMyBTZXAgOTggMTc6NTg6NDkKICAgIC0gKElTU1VFUyk6IGNsb25pbmcvbWFsbG9jIGlzc3VlLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDE3OjU5OjQwCiAgICAtIChzbm1wdXNtLmMsIHNubXB1c20uaCk6IGNyZWF0ZWQgdXNtX2Nsb25lRnJvbV91c2VyKCkgdG8gY2xvbmUgc2VjIGluZm8uCgpoYXJkYWtlciAyMyBTZXAgOTggMTg6MDA6MjEKICAgIC0gKHVzbVVzZXIuYyk6IG1ha2UgdXNtQ2xvbmVGcm9tIGFjdHVhbGx5IHdvcmsgKGlzIHNldGFibGUpLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDIwOjE1OjU3CiAgICAtIChJU1NVRVMpOiBzdG9yYWdlIHR5cGUgaXNzdWVzLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDIwOjE2OjI0CiAgICAtICh1c21Vc2VyLmMpOiBtYWtlIHVzbVVzZXJBdXRoUHJvdG9jb2wgYW5kIHVzbVVzZXJQcml2UHJvdG9jb2wgd3JpdGFibGUuCgpoYXJkYWtlciAyMyBTZXAgOTggMjA6NTA6MDUKICAgIC0gKElTU1VFUyk6IFJvd1N0YXR1cyBxdWVzdGlvbiBhZGRlZC4KCmhhcmRha2VyIDIzIFNlcCA5OCAyMDo1MDo0NQogICAgLSAoc25tcHVzbS5jLCBzbm1wdXNtLmgpOiBjcmVhdGUgdXNtX3JlbW92ZV91c2VyKCkgdG8gcmVtb3ZlIGEgdXNlcgogICAgICBmcm9tIGEgbGlzdC4KCmhhcmRha2VyIDIzIFNlcCA5OCAyMDo1MTo0NgogICAgLSAodXNtVXNlci5jKTogbWFrZSB1c21Vc2VyU3RhdHVzIGRlc3Ryb3kncyBhY3R1YWxseSByZW1vdmUgYSB1c2VyLgoKaGFyZGFrZXIgMjcgU2VwIDk4IDIyOjUzOjUzCiAgICAtIChJU1NVRVMpOiBtb3JlIHN0dWZmLgoKaGFyZGFrZXIgMjcgU2VwIDk4IDIyOjU1OjA5CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CiAgICAgIC0gYnVnIGZpeGVzLgogICAgICAtIG5ldyBzdXBwb3J0IGZ1bmN0aW9ucyBmb3Igc2F2aW5nIHVzZXJzIHRvIHRoZSBwZXJzaXN0ZW50IGNhY2hlLgoKaGFyZGFrZXIgMjcgU2VwIDk4IDIyOjU3OjAwCiAgICAtICh1c21Vc2VyLmMsIHVzbVVzZXIuaCk6CiAgICAgIC0gYnVnIGZpeGVzLgogICAgICAtIHVzbVVzZXJTdGF0dXMgaXMgc2V0YWJsZSAodG8gZWl0aGVyIHZvbGF0aWxlIG9yIG5vblZvbGF0aWxlKS4KICAgICAgLSB1c2VycyBjcmVhdGVkIGJ5IHNldCdzIGFyZSBzYXZlZCAoaWYgc2V0IHRvIG5vblZvbGF0aWxlKSBvbiBhZ2VudCBzaHV0ZG93bi4KCmhhcmRha2VyIDI5IFNlcCA5OCAyMDoxMToyMAogICAgLSAoSVNTVUVTKTogZXJyb3IgbWFwcGluZyAoY29leCB3b3JrKS4KCm1hcnogIDEgT2N0IDk4IDEyOjU4OjQyCiAgICAtIChzbm1wLmgsIHNubXB1c20uW2NoXSwgc25tcF9hcGkuW2NoXSk6IGFkZGVkIFVTTSBhcGkgYW5kIHNubXB2M19idWlsZCwgc29tZSB0d2Vha3MgdG8gcGFyc2UgaW4gcHJlcCBmb3Igc25tcHYzX3BhcnNlCgptYXJ6ICAxIE9jdCA5OCAxNDowNTo0NQogICAgLSAoc25tcF9hcGkuYyk6IGZpeGVzIHRvIHNubXB2M19wYXJzZQoKbWFyeiAgNCBPY3QgOTggMTc6MjA6MzAKICAgICAtIChzbm1wX2FwaS5bY2hdLCBzbm1wX2NsaWVudC5jLCBzbm1wdXNtLmMpOiBhZGRlZCBzbm1wdjMgcGFyc2luZyByb3V0aW5lcwoKaGFyZGFrZXIgIDUgT2N0IDk4IDIwOjA1OjAzCiAgICAtIChJU1NVRVMpOiBtb3JlIHN0dWZmLgoKaGFyZGFrZXIgIDUgT2N0IDk4IDIwOjA2OjU3CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogYnJlYWtkb3duIG9mIHNubXB2M19idWlsZCgpIGludG8gc3ViLWZ1bmN0aW9ucy4KCmhhcmRha2VyICA1IE9jdCA5OCAyMTo1OToyNgogICAgLSAoc25tcHVzbS5jKTogbWFrZSBnZW5lcmF0ZVJlcXVlc3RNc2cgZG8gc29tZXRoaW5nIGdlbmVyaWMuCgpoYXJkYWtlciAgNSBPY3QgOTggMjI6MDA6MjIKICAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IHJldHVybiBhIHVfY2hhciAqIGluc3RlYWQgb2YgYSBjaGFyICogZm9yIGVuZ2luZUlEcy4KCmhhcmRha2VyICA1IE9jdCA5OCAyMjowMTowNAogICAgLSAoc25tcF9hcGkuYyk6IG1pc2MgYnVnIGZpeGVzLgoKaGFyZGFrZXIgIDUgT2N0IDk4IDIyOjUwOjEwCiAgICAtIChzbm1wX2FwaS5jKTogbGFzdCBvZiBrbm93biBidWdzIGluIHNubXB2M19idWlsZCBmaXhlZCAoYSBwb2ludGVyCiAgICAgIHdhcyBiZWluZyB1c2VkIHR3aWNlIGluIG92ZXJsYXBwaW5nIG5lZWRlZCB0aW1lIHBlcmlvZHMpLgoKbWFyeiAgNyBPY3QgOTggMTM6MDI6NDAKICAgICAtKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIHYzIHN1cHBvcnQKCm1hcnogIDcgT2N0IDk4IDEzOjA2OjQxCiAgICAgLShzbm1wX2FwaS5bY2hdLCBzbm1wdXNtLltjaF0sIHNubXB2My5jKTogYWRkZWQgcGR1IGZpZWxkIHRvIGhvbGQgc2VjIHN0YXRlIHJlZiwgZml4ZWQgdXNtIHByb3RvdHlwZXMsIGFkZGVkIGNoZWNrIGZvciBudWxsIGhlbnQgcmV0dXJuCgpoYXJkYWtlciAgNyBPY3QgOTggMTU6MzY6MDUKICAgIC0gKHNubXB1c20uYyk6IGZsdXNoIG91dCBhIGdlbmVyaWMgcHJvY2Vzc0luY29taW5nTXNnKCkuCgpoYXJkYWtlciAgNyBPY3QgOTggMTU6MzY6MzYKICAgIC0gKHNubXBfaW1wbC5oKTogYWRkIHNlY3VyaXR5TmFtZSB0byB0aGUgYWdlbnQncyBwYWNrZXRfaW5mbyBzdHJ1Y3R1cmUuCgpoYXJkYWtlciAgNyBPY3QgOTggMTU6Mzg6MDAKICAgIC0gKHNubXBfYXBpLmMpOiBtYW55IG1hbnkgYnVnIGZpeGVzIHRvIHYzIHBhcnNlL2J1aWxkIHJvdXRpbmVzLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE1OjM5OjE3CiAgICAtICh2YWNtX3ZhcnMuYyk6IHJlY29nbml6ZSB0aGUgc2VjdXJpdHlOYW1lIHdoZW4gVVNNIG1vZGVsIGlzIGluIHVzZS4KCmhhcmRha2VyICA3IE9jdCA5OCAxNzoxNzoxMAogICAgLSAoc25tcF9hZ2VudC5jKTogaW5pdGlhbCBwYXNzIGF0IHYzLiAgV2lsbCBmYWlsIG9uIHNlbmRpbmcgZXJyb3IgbWVzc2FnZXMuCgpoYXJkYWtlciAgNyBPY3QgOTggMTc6NDU6MjIKICAgIC0gKHNubXBfYXBpLmMpOiBwYXNzIGluIHRoZSBzZWNfcGFybXMgbGVuZ3RoIHRvIHByb2Nlc3NJbmNvbWluZ01zZwoKaGFyZGFrZXIgIDcgT2N0IDk4IDE3OjQ2OjA0CiAgICAtIChzbm1wX2FnZW50LmMpOiBidWcgZml4OiB1c2luZyBhbiBhcnJheSBhcyBhIHBvaW50ZXIgKHVzZWQgdG8gYmUgb25lKS4KCmhhcmRha2VyICA3IE9jdCA5OCAyMjo0MDo0MwogICAgLSAoc25tcF9hcGkuYywgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBkZWZhdWx0IHNubXB2MyBwYXJhbWV0ZXJzIGNhbiBiZSBzcGVjaWZpZWQgaW4gYSBzbm1wLmNvbmYgZmlsZS4KCmhhcmRha2VyICA4IE9jdCA5OCAxMDoxMzoyMwogICAgLSAoSVNTVUVTKTogZXZlcnlvbmUgbG92ZXMgaXNzdWVzIQoKaGFyZGFrZXIgIDkgT2N0IDk4IDA4OjAzOjU3CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB1c2UgemxpYiB3aGVuIHVzaW5nIHJwbSBsaWJyYXJpZXMuCgpkcmVlZGVyICA5IE9jdCA5OCAxMzo1OToxMgogICAgLSAoSVNTVUVTKTogTmVlZCBhIHBhc3MgZm9yIHRyYWRpdGlvbmFsIFVOKlggc3lzdGVtIHByb2dyYW1taW5nIGhvbGVzLgoKaGFyZGFrZXIgIDkgT2N0IDk4IDE4OjIzOjI3CiAgICAtIChzbm1wdXNtLmMpOiBnZW5lcmF0ZVJlcXVlc3RNc2coKSBkb2Vzbid0IEFTTiBlbmNvZGUgdGhlIHNlY19wYXJhbXMuCgpoYXJkYWtlciAgOSBPY3QgOTggMTg6MjQ6MDIKICAgIC0gKHNubXBfYXBpLmMpOiByZXN0cnVjdHVyZSB0aGUgcGFja2V0IGJ1aWxkaW5nIHRvIHVzZSBsZXNzIG1lbWNweSdzLgoKaGFyZGFrZXIgIDkgT2N0IDk4IDE4OjI0OjI2CiAgICAtIChzbm1wX2FnZW50LmMpOiB1c2Ugc25tcF9idWlsZF9wYWNrZXQoKSB0byBjb25zdHJ1Y3QgYWxsIHYzIGRhdGEuCgpkcmVlZGVyIDEyIE9jdCA5OCAwNzoxODo1NgogICAgLSAoSVNTVUVTKTogcHJvb2YgbWVtb3J5IGludm9jYXRpb24vZGlzcG9zYWw7IHB1dCB0aW1lIHN0YW1wcyBpbiBsb2cgZmlsZXMuCgpoYXJkYWtlciAxMiBPY3QgOTggMDc6MTk6MjgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIG5ldyBzdGF0cyBjb3VudGVyIEFQSS4KICAgICAgLSBidWcgZml4ZXMuCgpoYXJkYWtlciAxMiBPY3QgOTggMDc6NDI6MjgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBidWcgZml4ZXMgd2l0aCBjb3VudGVycyAocmV0dXJucyB1X2ludCwgRUcpLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDA3OjQ0OjU1CiAgICAtIChzbm1wX2FnZW50LmMpOgogICAgICAtIG1ha2UgdjMgY29kZSByZXR1cm4gZXJyb3JzIHByb3Blcmx5LgogICAgICAtIGJ1ZyBmaXhlcy4KCmhhcmRha2VyIDEyIE9jdCA5OCAwNzo0NToxMQogICAgLSAoc25tcE1QRFN0YXRzLmMsIHNubXBNUERTdGF0cy5oLCB1c21TdGF0cy5jLCB1c21TdGF0cy5oKToKICAgICAgLSB1c2UgdGhlIG5ldyBzdGF0cyBjb3VudGVyIEFQSS4KCm1hcnogMTIgT2N0IDk4IDA3OjU2OjMwCiAgICAgLShzbm1wX3BhcnNlX2FyZ3MuYyk6IG1lcmdlZCBoZXggdG8gYmluIGZ1bmNzIC0gVGhlcmUgY2FuIGJlIG9ubHkgT25lCgptYXJ6IDEyIE9jdCA5OCAwODoxMTo0NgogICAgIC0oc25tcF9hcGkuW2NoXSwgc25tcHVzbS5bY2hdKTogbWVyZ2VkIGhleCB0byBiaW4gZnVuY3MsIGZpeGVkIE1QL1VTTSBhcGksIGltcGxlbWVudGVkIG5vQXV0aE5vUHJpdiBVU00sIGltcGxlbWVudGVkIGVuZ2luZSBwcm9iZSBhbGdvcml0aG0KCmhhcmRha2VyIDEyIE9jdCA5OCAwOToyMzo0OQogICAgLSAoSVNTVUVTKTogbm90ZSBvbiBEYXZpZCdzIGlzc3VlLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDEyOjI2OjA2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGxvb2sgZm9yIC9kZXYvcmFuZG9tIGFuZCBkZWZpbmUgSEFWRV9ERVZfUkFORE9NLgogICAgICAtIGxvb2sgZm9yIGxpYmttdCBhbmQgbGliY3J5cHRvIGFuZCBkZWZpbmUgSEFWRV9MSUJYWFguCgptYXJ6IDEyIE9jdCA5OCAxNTo0NjozNgogICAgLSAoc25tcHVzbS5jKTogZml4ZWQgaGVhZGVyIHNpemUgaXNzdWVzIChkaWZmZXJlbmNlIGJldHdlZW4gYXNuX2J1aWxkX2hlYWRlciBhbmQgYXNuX2J1aWxkX3NlcXVlbmNlKQoKaGFyZGFrZXIgMTIgT2N0IDk4IDIxOjU2OjQyCiAgICAtIChzeXN0ZW0uYywgc3lzdGVtLmgpOiBtYWtlIGNhbGN1bGF0ZV90aW1lX2RpZmYgdGFrZSBhIHBvaW50ZXIuCgpoYXJkYWtlciAxMiBPY3QgOTggMjE6NTk6NTMKICAgIC0gKHNubXB2My5jKTogdXNlIG5ldyBjYWxjdWxhdGVfdGltZV9kaWZmKCkuCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6MDQ6MDYKICAgIC0gKHNubXBfY2xpZW50LmMpOiBidWcgZml4ZXM6CiAgICAgIC0gc25tcF9zeW5jaF9pbnB1dCgpIG5lZWRzIHRvIGNsb25lIGEgcmVwb3J0IHBkdSB0b28uCiAgICAgIC0gc25tcF9jbG9uZV9wZHUoKSBuZWVkcyB0byBjb3B5IGNvbnRleHRFbmdpbmVJRCwgY29udGV4dE5hbWUsIGFuZAogICAgICAgIHNlY3VyaXR5TmFtZQoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjEyOjUwCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAgLSBtYWtlIHNubXBfaW5jcmVtZW50X3N0YXRpc3RpYygpIHJldHVybiB0aGUgY2hhbmdlZCB2YWx1ZS4KICAgICAgLSBjcmVhdGUgbmV3IGZ1bmN0aW9uOiBzbm1wX2ZyZWVfdmFyYmluZCgpIHRvIGZyZWUgYSBsaXN0LgogICAgICAtIFxuJ3MgdG8gdGhlIGVuZCBvZiB0aGUgbmV3IGRlYnVnZ2luZyBtZXNzYWdlcyBmb3IgZW5naW5lSUQgZGlzY292ZXJ5LgogICAgICAtIE1lcmdlIHJlc3BvbnNlL3JlcG9ydCBoYW5kbGluZyB0byBtYWtlIHJlcG9ydCdzIGNhbGwgdGhlaXIKICAgICAgICBjYWxsYmFjayBhcyB3ZWxsIChlbmdpbmVJRCBkaXNjb3Zlcnkgd2FzIG5ldmVyIHJldHVybmluZykuCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6MTk6NTQKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIGluY29ycmVjdCBjb21tZW50LgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjIyOjM2CiAgICAtIChJU1NVRVMpOiB3aWVyZCBtZW1vcnkgcXVlc3Rpb24uCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6MjM6MTYKICAgIC0gKHN5c3RlbS5jKTogdXNlIG5ldyBjYWxjdWxhdGVfdGltZV9kaWZmKCkuCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6MjU6MDYKICAgIC0gKHNubXBfYWdlbnQuYyk6IGhhbmRsZSBlbmdpbmVJRCBkaXNjb3ZlcnkgcmVxdWVzdHMuCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6NTg6MjYKICAgIC0gKHVzbVVzZXIuYyk6IG5ldyBmdW5jdGlvbiB0byByZXR1cm4gdGhlIHVzZXJMaXN0LgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjU4OjU1CiAgICAtIChzbm1wdXNtLmMsIHNubXB1c20uaCk6IG5ldyBmdW5jdGlvbiB1c21fY2hlY2tfc2VjTGV2ZWwoaW50LCBzdHJ1Y3QgKnVzbVVzZXIpOwoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjU5OjM2CiAgICAtIChzbm1wX2FnZW50LmMpOiBoYW5kbGUgdW5rbm93blNlY3VyaXR5TmFtZSBhbmQgdW5zdXBwb3J0ZWRTZWN1cml0eUxldmVsLgoKaGFyZGFrZXIgMTMgT2N0IDk4IDEzOjI3OjE0CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIG5ldyBvcHRpb25zOiAtLWRpc2FibGUtcHJpdmFjeSwgLS1lbmFibGUtdjJwLW1kNS4KCmhhcmRha2VyIDEzIE9jdCA5OCAxMzozMToyMgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBjb21tZW50IGZvcm1hdHRpbmcuCgpoYXJkYWtlciAxNCBPY3QgOTggMTM6Mjk6MDUKICAgIC0gKHNubXBfYXBpLmMpOiBtYWtlIHNubXBfYWRkX3ZhciBzZXQgdGhlIHNpemUgb2YgdGhlIG9pZCBidWZmZXIuCgpoYXJkYWtlciAxNCBPY3QgOTggMTM6Mjk6NDAKICAgIC0gKHNubXB1c20uYywgc25tcHVzbS5oKTogbW92ZWQgdGhlIGRlZmF1bHQgdXNlckxpc3QgaW50byB0aGUgbGlicmFyeS4KCmhhcmRha2VyIDE0IE9jdCA5OCAxMzozMToyOQogICAgLSAodXNtVXNlci5jKTogdXNlIHRoZSBuZXcgbGlicmFyeSBkZWZhdWx0IHVzZXIgbGlzdC4KCmhhcmRha2VyIDE0IE9jdCA5OCAxMzozMjo1OAogICAgLSAoc25tcF9hZ2VudC5jKToKICAgICAgLSB1c2UgdGhlIG5ldyBsaWJyYXJ5IGRlZmF1bHQgdXNlciBsaXN0LgogICAgICAtIGRvbid0IGZyZWUgYSBub25leGlzdGVudCBwZHUgKGl0IG9ubHkgZXhpc3RzIGZvciB2MyByZXF1ZXN0cykuCgpoYXJkYWtlciAxNCBPY3QgOTggMTM6NDc6NTYKICAgIC0gKHNubXBfYWdlbnQuYyk6IG1ha2Ugc3VyZSBwZHUtPnNlY3VyaXR5TmFtZSBpcyBudWxsIHRlcm1pbmF0ZWQuCgpoYXJkYWtlciAxNCBPY3QgOTggMTc6NTI6MjMKICAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6CiAgICAgIC0gbmV3IGFyZ3VtZW50cyB0byBjb25maWd1cmUgdG8gc2V0IENGTEFHUyBhbmQgTElCUzoKICAgICAgICAtIC0td2l0aC1LTVQ9cGF0aAogICAgICAgIC0gLS13aXRoLVNTTGVheT1wYXRoCiAgICAgIC0gZml4IHRvIGFnZW50L21pYmdyb3VwL01ha2VmaWxlIHRvIGtlZXAgdGhlIGFib3ZlIGZyb20gZ2V0dGluZyB0aGUKICAgICAgICB3cm9uZyBhc24xLmggZnJvbSB0aGUgU1NMZWF5IHBhY2thZ2UuCgpoYXJkYWtlciAxNCBPY3QgOTggMjA6NDE6MDcKICAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgKi9NYWtlZmlsZS5pbik6CiAgICAgIC0gY2hlY2sgZm9yIGttdC5oCiAgICAgIC0gcmUtb3JkZXIgQ1BQRkxBR1MgdG8gcHV0IC1JIGZsYWdzIGxhc3QuCgpoYXJkYWtlciAxNCBPY3QgOTggMjA6NDU6NTEKICAgIC0gKHVzbVVzZXIuYywgdXNtVXNlci5oLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CiAgICAgIC0gbW92ZSB1c21fcGFyc2VfY29uZmlnX3VzbVVzZXIgdG8gdGhlIGxpYnJhcnkuCgpoYXJkYWtlciAxNCBPY3QgOTggMjA6NDc6NDgKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMpOiBpbmNsdWRlIHNubXB1c20uaAoKZHJlZWRlciAxNSBPY3QgOTggMTI6MDI6NDAKICAgIC0gQmFzZSBmb3IgU0NBUEkgKyBzb21lIGZvcm1hdHRpbmcgb24gdGhlIHBhdGggdG8gc25tcHYzIHN0YXJ0dXAgYW5kIHNodXRkb3duLgogICAgLSBTaHVmZmxpbmcgaW4gaGVhZGVyIGZpbGVzIHRvIGRlZmVhdCB3YXJuaW5ncyBvZiAjZGVmaW5lIHJlZHVuZGFuY2llczoKICAgIAlub3RhYmx5LCBzL2ZyZWVic2QqLmggYW5kIHNubXBsaWIvc3lzdGVtLmgKICAgIC0gRGVidWcgJiB0aW5pIHRvb2xiYWcgaW4gc25tcGxpYi97ZGVidWcsdG9vbHN9LioKICAgIC0gQ2hhbmdlZCBjb25maWd1cmUgb3B0aW9uIC0tZW5hYmxlLXYycC1tZDUgdG8gLS1lbmFibGUtaW50ZXJuYWwtbWQ1LgogICAgLSBDb25zb2xpZGF0ZWQgbGlicmFyeSBzeXN0ZW0gYW5kIGxvY2FsIGhlYWRlciBpbmNsdWRlIHNlcXVlbmNlcyBpbnRvCiAgICAJc25tcGxpYi9hbGxfKi5oIGZpbGVzLiAgUG9zc2libHkgYmV0dGVyIHNvbHV0aW9ucyBmb3IgdGhpcy4uLgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjI0OjUyCiAgICAtICh1c21Vc2VyLmMpOiByZW1vdmVkIHVzbV9wYXJzZV9jb25maWdfdXNtVXNlciB0aGF0IERhdmlkIHB1dCBiYWNrIGJ5CiAgICAgIGFjY2lkZW50IHdoZW4gZG9pbmcgZm9ybWF0aW5nLgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjI1OjE3CiAgICAtIChrZXl0b29scy5jLCBrZXl0b29scy5oKTogYWRkZWQgbGVuZ3RoIHRvIGVuZ2luZUlELgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjI1OjU4CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogbWFrZSBjb3B5X3dvcmQgcmV0dXJuIGEgcG9pbnRlci4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjoyNjoyMQogICAgLSAoc2NhcGkuYywgc2NhcGkuaCk6IG1vdmUgI2luY2x1ZGVzIGZyb20gLmggdG8gLmMuCgpoYXJkYWtlciAxNSBPY3QgOTggMjI6Mjc6MDMKICAgIC0gKHNubXB1c20uYywgc25tcHVzbS5oKTogbmV3IGNvbmZpZyBvcHRpb25zIHRvIGNoYW5nZSBrZXlzLgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjI3OjU4CiAgICAtIChzbm1wdjMuYyk6IGRvbid0IGNhbGwgaW5pdF9rbXQoKSB1bmxlc3MgSEFWRV9MSUJLTVQgaXMgZGVmaW5lZC4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjo0MjowMAogICAgLSAoa2V5dG9vbHMuYywga2V5dG9vbHMuaCk6IG1vdmUgI2luY2x1ZGUgZnJvbSAuaCB0byAuYy4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjo0Nzo1NgogICAgLSAodXNtVXNlci5jLCB1c21Vc2VyLmgpOgogICAgICAtIHVzZSBkb19rZXljaGFuZ2UoKSB0byBpbXBsZW1lbnQgdGhlIGtleSBjaGFuZ2Ugd3JpdGUgbWV0aG9kcy4KICAgICAgLSBhIGJpdCBvZiAtV2FsbCBjbGVhbnVwLgoKZHJlZWRlciAxNiBPY3QgOTggMTE6Mjg6MTIKICAgIC0gVXBkYXRlZCBTQ0FQSSBjcnlwdGluZyBmdW5jdGlvbnMgdG8gaWRlbnRpZnkgdHJhbnNmb3JtcyBPSURzIG5vdCAjZGVmaW5lJ3MuCiAgICAtIE1vdmVkICJnbG9iYWwiIGRlZmluaXRpb25zIG9mIE9JRCB0cmFuc2Zvcm1zIHRvIHNubXB1c20uaCwgYW5kIG91dCBvZgogICAgCXVzbVVzZXIuYyBhbmQgc25tcHVzbS5jLgogICAgLSBzY19nZW5lcmF0ZV9rZXllZF9oYXNoKCkgc3RhbmRzIGFzIGEgZ29vZCBleGFtcGxlIG9mIHdoYXQgb3RoZXIgZnVuY3Rpb25zCiAgICAJd2lsbCBsb29rIGxpa2UuCgpkcmVlZGVyIDE2IE9jdCA5OCAxMTo1MDowOQogICAgLSAoc2NhcGkuYywgc2NhcGkuaCkgT3V0cHV0IGJ1ZmZlciBhcmd1bWVudHMgZm9yIChlbnxkZSljcnlwdGluZyBhcmUKICAgIAlzaW5nbGUtcG9pbnRlcnMuCgpsZXdpcyAxNiBPY3QgOTggMTM6MTU6MTYKICAgIC0gLSAoc25tcHVzbS5oKToKICAgICAgLSBBZGRlZCBVU01fRVJSIHN5bWJvbHMgdXNlZCBieSB1c21fZ2VuZXJhdGVfb3V0X21zZwoKbGV3aXMgMTYgT2N0IDk4IDEzOjIwOjA3CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBSZXdyb3RlIHVzbV9nZW5lcmF0ZV9vdXRfbXNnLCByZW5hbWluZyBvbGQgaW1wbGVtZW50YXRpb24gdG8KICAgICAgICB1c21fZ2VuZXJhdGVfb3V0X21zZ19OVUxMCiAgICAgIC0gVGhpcyBjb2RlIGNvbXBpbGVkIG9uIEZyZWVCU0QsIG5vdCB0ZXN0ZWQgZm9yIGxpbmtpbmcgb3IgcnVubmluZwogICAgICAtIEFkZGVkIGZ1bmN0aW9ucyB0byBjYWxjdWxhdGUgaW5kaWNpZXMgKGFzbl9wcmVkaWN0X2ludF9sZW5ndGgsCiAgICAgICAgYXNuX3ByZWRpY3RfbGVuZ3RoLCB1c21fY2FsY19vZmZzZXRzKSBhbmQgdG8gbWFrZSB0aGUgQ0JDLURFUwogICAgICAgIGluaXRpYWxpemF0aW9uIHZlY3RvciAodXNtX3NldF9zYWx0KS4KCmRyZWVkZXIgMTggT2N0IDk4IDIxOjE0OjA5CiAgICAtIFNDQVBJIGNvZGUgY29tcGxldGUsIGJ1dCBub3QgY29tcGxldGVseSB0ZXN0ZWQuCiAgICAJQWRkZWQgdGVzdGluZy8gZGlyZWN0b3J5LgogICAgCVZlcmlmaWVkIHRoYXQgRWQncyByZWNlbnQgY2hhbmdlcyBjb21waWxlIGNsZWFubHkuCiAgICAJVHJpZWQgdG8gcGF0Y2ggdXAgImNyaXRpY2FsIiAtV2FsbCB3YXJuaW5ncy4KCmhhcmRha2VyIDE5IE9jdCA5OCAwNzoxMDoyNwogICAgLSAoTWFrZWZpbGUudG9wKTogcmVtb3ZlIC1XYWxsIHJlcXVpcmVtZW50LgoKZHJlZWRlciAxOSBPY3QgOTggMTU6MTI6NTcKICAgIC0gQ29yZSBTQ0FQSSByb3V0aW5lcyBhcHBlYXIgc291bmQuICB0ZXN0aW5nLyBkaXJlY3RvcnkgaXMgbm8gbG9uZ2VyCiAgICAJY29tbWVudGVkIG91dC4gIFNOTVB2MyBzdHlsZSBrZXkgbWFuaXB1bGF0aW9ucyB1bnRlc3RlZCB5ZXQuCiAgICAJQ3JlYXRlZCAoPykgYSBzbGV3IG9mIG5ldyB3YXJuaW5ncyBmcm9tIGZpbGVzIGVhcmx5IGluIGNvbXBpbGUgc2VxdWVuY2UuCgpkcmVlZGVyIDIwIE9jdCA5OCAxMTozODo0MgogICAgLSBUZXN0cyBmb3IgZ2VuZXJhdGVfS3UgYW5kIGdlbmVyYXRlX2t1bC4gICh0ZXN0aW5nL2t0ZXN0IC1oIGZvciBoZWxwLikKICAgIAlDbGVhbmVkIHVwIG5ldyBzZXQgb2YgImNyaXRpY2FsIiB3YXJuaW5ncyAtLSBtb3N0bHkgYWRkaW5nICNpbmNsdWRlJ3MuCiAgICAJRml4ZWQgS01UL2FwcHMvcmFuZHRlc3QuYyBzbyBpdCBjb21waWxlcyB1bmRlciBMaW51eC4KCm1hcnogMjEgT2N0IDk4IDA4OjE4OjAzCiAgICAgLShzbm1wX2FwaS5bY2hdKTogYWRkIGZpZWxkcyBmb3IgYXV0aEtleSBhbmQgcHJpdktleQoKbGV3aXMgMjEgT2N0IDk4IDEyOjA3OjE2CiAgICAtIC0gKHNubXAuaCkKICAgICAgLSBBZGRlZCBTTk1QX0VSUl8gZXJyb3Igc3ltYm9saWMgY29uc3RhbnRzIGZvciB0aGUgYXV0aC9wcml2IChVU00pIG1vZHVsZQogICAgICAgIHJlcG9ydGVkIGVycm9ycy4KICAgICAgLSBVc2VkIHZhbHVlcyAxOS0yNywgdXBkYXRlZCBNQVhfU05NUF9FUlIgdG8gMjcuCgpsZXdpcyAyMSBPY3QgOTggMTI6MDg6MjQKICAgIC0gLSAoc25tcHVzbS5oKQogICAgICAtIEFkZGVkIHN5bWJvbGljIGNvbnN0YW50cyBmb3IgZXJyb3JzIGZvdW5kIHByb2Nlc3NpbmcgaW5jb21pbmcgbWVzc2FnZXMuCiAgICAgIC0gRXF1YXRlZCB0aGUgc3ltYm9scyB3aXRoIHRob3NlIGFkZGVkIHRvIHNubXAuaAoKaGFyZGFrZXIgMjEgT2N0IDk4IDEyOjEwOjAzCiAgICAtIChzbm1wX2FwaS5oKTogYWRkZWQgQVNOL1NOTVAgY291bnRlcnMgdG8gdGhlIGNvdW50ZXIgbGlzdC4KCm1hcnogMjEgT2N0IDk4IDEyOjUwOjI0CiAgICAgLShzbm1wX2FwaS5bY2hdKTogY29ycmVjdGx5IGFkZCAjZGVmaW5lIHNpemVzIGZvciBhdXRoS2V5IGFuZCBwcml2S2V5CgptYXJ6IDIxIE9jdCA5OCAxMzozODo1NwogICAgIC0oc25tcF9hcGkuW2NoXSk6IGFkZGVkIGF1dGgvcHJpdiBwcm90b2NvbCB0eXBlIGZpZWxkcyB0byBzZXNzaW9uCgptYXJ6IDIxIE9jdCA5OCAxMzo0OToxMQogICAgIC0oc25tcF9hcGkuYyk6IGFkZGVkIGNhc3QgZm9yIGludGVybmFsIHBkdSAoaW50ZXJuYWwgcGR1IHNob3VsZCBiZSBlbGltaWFudGVkIHNvbWVkYXkpCgpoYXJkYWtlciAyMSBPY3QgOTggMTM6NTM6MzgKICAgIC0gKHNubXBfYXBpLmgpOiBTVEFUX01BWF9TVEFUUyAtPiBNQVhfU1RBVFMuCgpoYXJkYWtlciAyMSBPY3QgOTggMTc6NTQ6MDgKICAgIC0gKHNubXB2My5jKTogcmVtb3ZlIHNubXBfcGVycm9yKCkgZGVmaW5lZCBhcyBwZXJyb3IoKS4gIEl0J3MgYSByZWFsIGZ1bmN0aW9uLgoKaGFyZGFrZXIgMjEgT2N0IDk4IDE3OjU4OjA4CiAgICAtIChhc24xLmMpOiBhc25fYnVpbGRfc3RyaW5nOiBhbGxvdyBhIG51bGwgc3RyaW5nIHRvIGJ1aWxkIGEgMDAgcGFkZGVkIHN0cmluZy4KCmhhcmRha2VyIDIxIE9jdCA5OCAxODowMDowNwogICAgLSAoc25tcF9hcGkuYyk6CiAgICAgIC0gZW5naW5lSUQgZGlzY292ZXJ5IGRlYnVnZ2luZyBtZXNzYWdlcy4KICAgICAgLSB6ZXJvIGxlbmd0aCBjb250ZXh0TmFtZXMgb2suCiAgICAgIC0gc2V0IG1heCBsZW5ndGggYmVmb3JlIHVzbV9nZW5lcmF0ZV9vdXRfbXNnKCkuCgpoYXJkYWtlciAyMSBPY3QgOTggMTk6MDQ6MzUKICAgIC0gKHNubXBfYXBpLmMpOiBtb3ZlIHRoZSBlbmdpbmVJRCBkaXNjb3ZlcnkgdG8gc25tcF9zZXNzX29wZW4oKS4KCmhhcmRha2VyIDIxIE9jdCA5OCAxOTowNToxMgogICAgLSAoc25tcF9hcGkuaCk6IHN5bmNoIHNubXBfcGR1IGFuZCBpbnRlcm5hbF9zbm1wX3BkdS4KCmRyZWVkZXIgMjEgT2N0IDk4IDE5OjU1OjE1CiAgICAtIFNob29rIHRoZSBidWdzIG91dCBvZiBrZXkgbWFuaXB1bGF0aW9uIHJvdXRpbmVzIChnZW5lcmF0ZV9rdWwsIGdlbmVyYXRlX0t1KS4KICAgIAlDb21wbGV0ZWQgYW5kIHRlc3RlZCBLZXlDaGFuZ2UgVEMgY29kZSAoe2VuY29kZSxkZWNvZGV9X2tleWNoYW5nZSkuCiAgICAJQ3JlYXRlZCBpbml0aWFsIGVsZW1lbnRzIG9mIGFuIGF1dG9tYXRlZCB0ZXN0IGhhcm5lc3MgaW4gdGVzdGluZy8uCiAgICAJQ3JlYXRlZCBkYXRhIGZpbGVzIGFuZCB0ZXN0IHNjcmlwdHMgdG8gZGVtb25zdHJhdGUgY29tcGxpYW5jZS4KICAgIAlNaXNjZWxsYW5lb3VzIGFkZGl0aW9ucyB0byBzbm1wbGliL3Rvb2xzLj8sIHNvbWUgdGVtcG9yYXJ5L3RyYW5zaXRpb25hbC4KCm1hcnogMjEgT2N0IDk4IDE5OjU4OjExCiAgICAgLShzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZCBhdXRoL3ByaXYgcHJvdG8gZmxhZ3MsIGFkZCBhdXRoIHByaXYga2V5IGZsYWdzCgptYXJ6IDIxIE9jdCA5OCAyMDoxOTowOAogICAgLSAoc25tcF9hcGkuW2NoXSk6IHVwZGF0ZWQgYXV0aC9wcml2IHByb3QgYW5kIGtleSBmaWxlZHMgaW4gc2Vzc2lvbiwgYWRkZWQgc3Vwb3J0IGluIHNubXBfc2Vzc19vcGVuIGFuZCBjbG9zZSAoeWFua2VkIGZpZWxkcyBmcm9tIFBEVSAtIGRpZCBJIGRvIHRoYXQ/KQoKaGFyZGFrZXIgMjEgT2N0IDk4IDIxOjIxOjQxCiAgICAtIChsY2RfdGltZS5jKTogbWlub3Igd2FybmluZyBmaXhlcy4KCmhhcmRha2VyIDIxIE9jdCA5OCAyMToyMjowNwogICAgLSAodG9vbHMuYywgdG9vbHMuaCk6IG5ldyB0b29sOiBtZW1kdXAoKS4KCmhhcmRha2VyIDIxIE9jdCA5OCAyMjowODowNwogICAgLSAoc25tcF9hcGkuYyk6CiAgICAgIC0gZ2VuZXJhdGUgYSB1c20gdXNlciBmcm9tIHNlc3Npb24gZGF0YSBpZiBuZWVkZWQuCiAgICAgIC0gY2hlY2sgdGhlIHJlc3VsdCBmcm9tIHRoZSB1c20gYW5kIGZhaWwgaWYgaXQgZG9lcy4KCm1hcnogMjIgT2N0IDk4IDA4OjAyOjExCiAgICAgLShzbm1wX2FwaS5jKTogYWRkZWQgREVCVUdQIGNvZGUgdG8gdHJhY2UgbWVzc2FnZSB2ZXJzaW9uIGFuZCBzZWNMZXZlbCBmb3IgZGVtbwoKbGV3aXMgMjIgT2N0IDk4IDEzOjM3OjM0CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBOb3QgYSB3b3JraW5nL3Rlc3RlZCB2ZXJzaW9uLCBidXQgaXQgY29tcGlsZXMuCiAgICAgIC0gRml4ZWQgb25lIGJ1ZyAtICImIiB0byAiPT0iIGluIGFuIGlmKCkKICAgICAgLSBEaWQgbm90IGFsdGVyIGNvZGUgdG8gZGVueSBudWxsIGVuZ2luZSBpZCB1c2VycwogICAgICAtIEFkZGVkIG11Y2ggY29kZSBpbiBwcm9jZXNzIGluY29taW5nIG1lc3NhZ2UKICAgICAgLSBOZXcgdXNlIG9mIGVycm9ycyBhbmQgREVCVUdQCiAgICAgIC0gU3RpbGwgd2FpdGluZyBvbiB1cGRhdGVzIHRvIGxjZF90aW1lLmggdG8gaW1wbGVtZW50CiAgICAgICAgc3RlcCAjMyBvZiBSRkMgMjI3NCwgczMuMi4KCmRyZWVkZXIgMjMgT2N0IDk4IDA5OjQ1OjQ3CiAgICAtIExDRCBUaW1lIEFQSSBwcm90b3R5cGVzIGFyZSBjb21wbGV0ZS4gIDkwJSBzdGFibGUuCiAgICAJRHJhZnQgb2YgYXV0b21hdGVkIHRlc3RpbmcgaGFybmVzcyBpbiB0ZXN0aW5nLy4KICAgIAkJVXNlIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaCB0byBydW4gYWxsIGN1cnJlbnQgdGVzdHMuCgpsZXdpcyAyMyBPY3QgOTggMTE6Mzg6MjUKICAgIC0gLSAobGNkX3RpbWUuaCkKICAgICAgLSBhZGRlZCBkZWZpbml0aW9ucyBmb3IgVFJVRSBhbmQgRkFMU0UgKGlmIG5vdCBwcmV2aW91c2x5IGRlZmluZWQpCiAgICAgIC0gZml4ZWQgYSBjb21waWxhdGlvbiBidWcgaW4gdGhlIGVuc3VyZSBlbnRyeSBtYWNybwoKbGV3aXMgMjMgT2N0IDk4IDExOjQ3OjM3CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBBZGRlZCB0aGUgc3RlcCAzIGNvZGUgdG8gcHJvY2VzcyBvdXRnb2luZyBtZXNzYWdlcyBmdW5jdGlvbgogICAgICAtIFN0aWxsIHVuLXJ1bgoKZHJlZWRlciAyMyBPY3QgOTggMTU6Mzk6MDIKICAgIC0gQ29tcGxldGUgY29kZSBmb3IgTENEIHRpbWUgQVBJLiAgQXdhaXRpbmcgc2VyaW91cyB0ZXN0cy4KICAgIAlDaGFuZ2VkIHNubXB2M19nZXRfZW5naW5le1RpbWUsQm9vdHN9IHRvIHNubXB2M19sb2NhbF9zbm1wRW5naW5lKgoKZHJlZWRlciAyNCBPY3QgOTggMjM6MDc6NTQKICAgIC0gU2hvb2sgYnVncyBvdXQgb2YgTENEIHRvIG1hbmFnZSBlbmdpbmUgSURzL3RpbWUgKCJ0ZXN0aW5nL2V0ZXN0IC1hIikuCiAgICAJQWRkZWQgYSBmdW5jdGlvbiBkdW1wX3NubXBFbmdpbmVJRCAoInRlc3RpbmcvbWlzY3Rlc3QgLTEiKS4KICAgIAkJTWFkZSBzcHJpbnRfaGV4c3RyaW5nIG5vdC1zdGF0aWMuLi4gKHRlbXBvcmFyeSBjaGFuZ2UgSSB0aGluaykuCiAgICAJQWRkZWQgY29tbWVudHMvcXVlc3Rpb25zIGFib3V0IGJ1aWxkaW5nIHNubXBFbmdpbmVJRC4gIChzbm1wdjMuYykKICAgIAlBZGRlZCBUUlVFL0ZBTFNFIGRlZmluZXMgdG8gc25tcHVzbS5jLiAgKFRoZXNlIHNob3VsZCBiZSBzdGFuZGFyZGl6ZWQuKQogICAgCUFkZGVkIFNOTVBfTUFYQlVGX1NNQUxMLiAgKHRvb2xzLmgpCiAgICAJQ2xlYW5lZCB1cCAoY2xhcmlmaWVkPykgdGVzdCBoYXJuZXNzIGRlc2NyaXB0aW9uLgoKbWFyeiAyNSBPY3QgOTggMTQ6NDg6MDYKICAgICAtKHNubXBfcGFyc2VfYXJncy5jKTogbW92ZSBrZXkgZ2VuZXJhdGlvbiAoZ2VuZXJhdGVfS3UpIGFmdGVyIGluaXRfc25tcAoKaGFyZGFrZXIgMjUgT2N0IDk4IDIwOjU5OjMzCiAgICAtIChzbm1wX2FnZW50LmMpOiBkZWJ1Z2dpbmcgcGFyc2UvYnVpbGQgc3RhdGVtZW50cyBhbmQgZXJybm8gZml4ZXMuCgpoYXJkYWtlciAyNSBPY3QgOTggMjE6MDA6MTUKICAgIC0gKHN5c3RlbS5oKTogY3JlYXRlZCBERUJVR1BMIHRvIGRvIERFQlVHUCB3aXRoIGZpbGUvbGluZSBzdGF0ZW1lbnRzLgoKaGFyZGFrZXIgMjUgT2N0IDk4IDIxOjAxOjAwCiAgICAtICh0b29scy5jKTogY2hlY2sgbWVtZHVwKCkgZm9yIE5VTEwgcGFzc2VkIGluLgoKaGFyZGFrZXIgMjUgT2N0IDk4IDIxOjAxOjU4CiAgICAtIChyZWFkX2NvbmZpZy5jKTogYnVnIGZpeGVzOiBtaXNjIE5VTEwgY2hlY2tzLgoKaGFyZGFrZXIgMjUgT2N0IDk4IDIxOjAyOjQwCiAgICAtIChzbm1wX2NsaWVudC5jKTogZGVmYXVsdCB0byBzZXR0aW5nIHNlY05hbWVMZW4gYW5kIGNvbnRleHROYW1lTGVuIHRvIC0xLgoKZHJlZWRlciAyNSBPY3QgOTggMjI6Mjg6MTgKICAgIC0gTW9zdGx5IHNodWZmbGluZyBwcmUtZXhpc3RpbmcgdGhpbmdzIGFib3V0IC0tCiAgICAgICAgICAgIFVzZWQgVVNFX0lOVEVSTkFMX01ENSBwdXQga210X2hhc2ggcGFyYWxsZWwgd2l0aCB2MnAgTUQ1IGhhc2guCiAgICAgICAgICAgIHNjX2VuY3J5cHQvc2NfZGVjcnlwdCBub3cgYWxzbyByZXR1cm46IFNOTVBFUlJfU0NfTk9UX0NPTkZJR1VSRUQuCiAgICAgICAgICAgIFRlc3RlZCBhbmQgImZpeGVkIiBidWlsZCB3aXRoIG9uJm9mZiBzZXR0aW5ncyBvZjoKICAgICAgICAgICAgICAgICAgICBVU0VfVjJQQVJUWV9QUk9UT0NPTCwgU0NBUElfQVVUSFBSSVYsIFVTRV9JTlRFUk5BTF9NRDUuCiAgICAgICAgICAgIEdyZWF0ZXN0IGRhbWFnZSBkb25lIGluIGFnZW50L3NubXBfYWdlbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLgogICAgICAgICAgICBSZXBhaXJlZCB1c2Ugb2Yga2V5IG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgaW4gc25tcHVzbS5jLgogICAgICAgICAgICAgICAgICAgIChDb3VsZCB1c2UgcGVlciByZXZpZXcgYXMgbXkgZXhwZWN0YXRpb25zIG9mIHVzZSBtYXkgZGlmZmVyLikKICAgICAgICAgICAgQWRkZWQgKGFuZCByZW1vdmVkIDEpIHNvbWUgWFhYJ3MgaW4gcGFydHkgY29kZS4uLgoKaGFyZGFrZXIgMjYgT2N0IDk4IDEzOjM0OjAzCiAgICAtIChzbm1wdXNtLmMpOiBlbmFibGUgTlVMTCBlbmdpbmVJRHMgaW4gdXNlciBzdG9yYWdlLgoKaGFyZGFrZXIgMjYgT2N0IDk4IDEzOjM3OjAzCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAgLSBjcmVhdGluZyB1c2VycyBmcm9tIGEgc2Vzc2lvbjogIGNyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbigpLgogICAgICAtIG1ha2UgcHJvYmluZyB1c2UgdGhlIGFib3ZlIHR3aWNlIChvbmNlIGZvciBOVUxMIGVuZ2luZUlEIGFuZCBvbmNlCiAgICAgICAgZm9yIHByb2JlZCBlbmdpbmVJRCkuCiAgICAgIC0gYnVnIGZpeDogIHNubXAgdmVyc2lvbiBwcmludGVkIGluIGRlYnVnZ2luZyB3YXMgb2ZmIGJ5IC0xLgoKaGFyZGFrZXIgMjYgT2N0IDk4IDIwOjQxOjE5CiAgICAtIChzbm1wX2FnZW50LmMpOiBzZXQgY29udGV4dCBuYW1lIG9uIGVuZ2luZUlEIHJlcG9ydC4KCmhhcmRha2VyIDI2IE9jdCA5OCAyMDo0MjowNgogICAgLSAoc25tcGQuYyk6IGNyZWF0ZSB0aGUgImluaXRpYWwiIHVzZXIgZm9yIGVuZ2luZUlEOm51bGwuCgpoYXJkYWtlciAyNiBPY3QgOTggMjI6MTI6MTcKICAgIC0gKGtleXRvb2xzLmMpOiBjaGVjayBmb3IgTlVMTCBwb2ludGVyLCBub3QgKnBvaW50ZXIuCgpoYXJkYWtlciAyNiBPY3QgOTggMjI6MTU6MDEKICAgIC0gKHNubXB1c20uYyk6IG1hbGxvYyBrdWwgc3BhY2UgaW4gdXNtX3NldF9wYXNzd29yZCgpLgoKZHJlZWRlciAyOCBPY3QgOTggMDk6Mzk6NTcKICAgIC0gZ2V0X2VuZ2luZXRpbWUoKSBub3cgcmV0dXJucyA8MCwwPiB0dXBsZSBmb3IgTlVMTC8iIi9sZW49MCBlbmdpbmVJRHMuCiAgICAJc2Nfe2NoZWNrLGdlbmVyYXRlfV9rZXllZF9oYXNoKCkgcHJvY2VzcyBoYXNoZXMgPD0gaGFzaCBvdXRwdXQgbGVuLgogICAgCQkoU3RhYmxlLCBidXQgZXhwZWN0IGFuIGV4cGFuZGVkIHRlc3QgaW4gc2NhcGl0ZXN0LmMgc29vbi4pCiAgICAJTWlzYzogUHV0IE1ENV9IQVNIU0laRV9CWVRFUyBpbiBwYXJ0eS5oOyBTTk1QX1pFUk8gaW4gdG9vbHMuaAoKbGV3aXMgMjggT2N0IDk4IDEzOjE2OjU0CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBEZWJ1Z2dlZCBydW5uaW5nIG9mIHVzbV9nZW5lcmF0ZS4uLiBmdW5jdGlvbiBzbyB0aGF0IGl0IHJ1bnMgd2l0aCBubwogICAgICAgIGF1dGhlbnRpY2F0aW9uIC8gbm8gcHJpdmFjeSBvcHRpb25zLiAgKERvbid0IGhhdmUgYSB3YXkgeWV0IHRvIHRlc3QKICAgICAgICB3aXRoIHRoZSBmYW5jeSBzZWN1cml0eS4pCiAgICAgIC0gQWRkZWQgYSBsaW5lIGZvciBkZWJ1Z2dpbmcgd2hpY2ggc2V0cyBhbGwgYnl0ZXMgb2YgdGhlIHNlY3VyaXR5IGhlYWRlcgogICAgICAgIGFuZCB0aGUgUERVJ3MgcmVzdGluZyBwbGFjZSB0byBGRiAtIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMgb25seS4gIFRoaXMKICAgICAgICBsZXRzIG1lIHNlZSB3aGF0IGJ5dGVzIHJlbWFpbiB0byBiZSBwdW5jaGVkIGluLiAgVGhpcyBsaW5lIGlzIGZsdXNoIGxlZnQKICAgICAgICBpbiB0aGUgZmlsZSwgaW5kaWNhdGluZyB0aGF0IGl0IGlzIHRvIGJlIGN1dCBvdXQgaWYgd2UgcmVhY2ggcmVsZWFzZS4KICAgICAgLSBBZGRlZCAiZW1lcmdlbmN5X3ByaW50LCIgYW4gdW5jYWxsZWQgcm91dGluZSBJIGxpa2UgdG8gaGF2ZSB3aGVuIHJ1bm5pbmcKICAgICAgICBpbiBnZGIuICBJdCBkdW1wcyBhIGZpZWxkIG9mIHggYnl0ZXMgaW4gaGV4LCAyNSB2YWx1ZXMgdG8gYSBsaW5lLgoKZHJlZWRlciAyOCBPY3QgOTggMTQ6MTk6NTIKICAgIC0gQm91bmRlZCBLTVQgY29kZSB3aXRoICNkZWZpbmUncyBmb3IgSEFWRV9MSUJLTVQKICAgIAktIFdpbGwgbm90IGNvbXBpbGUgd2l0aG91dCBlaXRoZXIgSEFWRV9MSUJLTVQgLW9yLSBVU0VfSU5URVJOQUxfTUQ1LgogICAgCS0gQWRkZWQgbmV3IGVycm9yIGNvZGU6IFNOTVBFUlJfS1RfTk9UX0FWQUlMQUJMRS4KICAgIAktIEFkZGVkIGEgdGVzdCBmb3IgcHJldmlvdXMgY2hhbmdlcyB0byBzY18qX2tleWVkX2hhc2goKSBmdW5jdGlvbnMuCiAgICAJCShBdWdtZW50ZWQgdGVzdF9kb2tleWVkaGFzaCgpIGluIGtleW1hbmFnZW1lbnQuYy4pCgpsZXdpcyAyOSBPY3QgOTggMDk6NTY6MDgKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIE1hZGUgZml4ZXMgdG8gcHJvY2VzcyBpbmNvbWluZwogICAgICAtIEJlZ2FuIHRvIGFkZCBjb2RlIGZvciB0aGUgc2VjdXJpdHkgc3RhdGUgcmVmZXJlbmNlCgpsZXdpcyAyOSBPY3QgOTggMTA6Mjc6MzcKICAgIC0gLSAoc25tcHVzbS5oKQogICAgICAtIEFkZGVkIHByb3RvdHlwZSBmb3Igc2V0X3JlcG9ydEVycm9yT25Vbmtub3duSUQKCmxld2lzIDI5IE9jdCA5OCAxMDoyOToxNgogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gRml4ZWQgc29tZSBvZiBXZXMnIHJlcG9ydGVkIHByb2JsZW1zLgogICAgICAtIEFkZGVkIGNvZGUgdG8gc3RvcmUgc2VjU3RhdGVSZWYKICAgICAgLSBTdGlsbCBuZWVkIHRvIHVzZSBpdCBpbiBnZW5lcmF0ZV9vdXRnb2luZwoKbGV3aXMgMjkgT2N0IDk4IDE0OjMwOjE4CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBOb3cgbWFrZXMgdXNlIG9mIHRoZSBzdG9yZWQgc2VjU3RhdGVSZWYgaW4gZ2VuZXJhdGUgb3V0Z29pbmcKICAgICAgLSBJIGhvcGUgLSBJIHN0aWxsIGhhdmVuJ3QgYmVlbiBhYmxlIHRvIGdldCBtZXNzYWdlIGJhY2sgYW5kIGZvcnRoLAogICAgICAgIGl0J3MgdGltZSB0byBmaWd1cmUgb3V0IGhvdyB0byBydW4gdGhlIHNubXBkIHN0dWZmIEkgZ3Vlc3MuCgptYXJ6IDI5IE9jdCA5OCAxNTowNjo0OQogICAgYWRkICNpZGVmIGdhdXJkcyBmb3Iga210LmggYW5kIGttdF9hbGdzLmggZGVwZW5kZW50IG9uIGV4aXN0ZW5jZSBvZiBoZWFkZXJzIHJhdGhlciB0aGFuIGxpYmttdAoKbGV3aXMgMzAgT2N0IDk4IDA2OjQ1OjI0CiAgICAtIC0gKHNubXB1c20uaCkKICAgICAgLSBBZGRlZCBhIHN0YXRlIHJlZmVyZW5jZSBmcmVlIHJvdXRpbmUKICAgICAgLSBDaGFuZ2VkIG5hbWUgb2YgdGhlIHJvdXRpbmUgdG8gc2V0IHRoZSByZXBvcnQtb24tZXJyb3IgZmxhZyBzbyB0aGF0IGl0CiAgICAgICAgYmVnaW5zIHdpdGggInVzbV8iLgoKbGV3aXMgMzAgT2N0IDk4IDA2OjQ2OjUyCiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBNb2RpZmllZCB0aGUgZnJlZSBzdGF0ZSByZWYgcm91dGluZSB0byB0YWtlIGEgdm9pZCAqIGluc3RlYWQgb2YgYQogICAgICAgIHN0cnVjdCB3aGF0ZXZlciAqLCB0aGlzIHBsdXMgYWRkaW5nIGl0IHRvIHRoZSAuaCBmaWxlIG1ha2VzIGlzIHVzZWFibGUKICAgICAgICBieSB0aGUgTWVzc2FnZSBQcm9jZXNzb3IuCgpsZXdpcyAzMCBPY3QgOTggMDc6MzQ6MjYKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIFJlbW92ZWQgYSBwb3RlbnRpYWwgbWVtb3J5IGhvbGUgKHJldHVybmluZyBvbiBlcnJvciBmcm9tIHRoZSBwcm9jZXNzCiAgICAgICAgaW5jb21pbmcgcm91dGluZSB3aXRob3V0IGZyZWVpbmcgdGhlIHNlY3VyaXR5IHN0YXRlIHJlZmVyZW5jZSkuCgpoYXJkYWtlciAzMCBPY3QgOTggMDg6Mzg6NTMKICAgIC0gKHNubXB2My5jKTogc25tcF9wZXJyb3IoKSAtPiBwZXJyb3IoKSBbIm1hbGxvYyJdLgoKaGFyZGFrZXIgMzAgT2N0IDk4IDA4OjQzOjUyCiAgICAtIChzbm1wZC5jKToKICAgICAgLSBNYWtlIC1EIGEgdG9nZ2xlLgogICAgICAtIHVzZSB1c21fc2V0X3JlcG9ydEVycm9yT25Vbmtub3duSUQoKS4KCmhhcmRha2VyIDMwIE9jdCA5OCAwODo0NTowOQogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOgogICAgICAtIE1ha2UgLUQgYSB0b2dnbGUuCgpoYXJkYWtlciAzMCBPY3QgOTggMTY6NDQ6NDMKICAgIC0gKHNubXBfYWdlbnQuYyk6IG1ha2UgdGhlIGFnZW50IHdhdGNoIHRoZSBlcnJvciBzdGF0dXMgZnJvbSBwYWNrZXQKICAgICAgcGFyc2luZyBpbnN0ZWFkIG9mIGRvaW5nIGNoZWNrcyBpdHNlbGYuCgpoYXJkYWtlciAzMCBPY3QgOTggMTY6NTI6MDMKICAgIC0gKHNubXB1c20uYyk6IHVzbV9nZXRfdXNlcigpOiBhbGxvdyBhIG51bGwgbGVuZ3RoIChidXQgbm9uIG51bGwKICAgICAgcG9pbnRlcikgZW5naW5lSUQuCgptYXJ6ICAxIE5vdiA5OCAxNTo1NToxMQogICAgIC0oYXNuMS5jLCBsY2RfdGltZS5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jLCBzbm1wdXNtLmMsIHNubXB2My5jKTogcmVtb3ZlIGludGVybmFsIHBkdS92YXJsaXN0LCBwZHVfZnJlZSB1cGRhdGUsIGhhbmRsZSBpbml0aWFsIHVzZXIgYXMgZGlzY3Vzc2VkLCByZW1vdmUgaW5pdGlhbCB1c2VyIGhhY2ssIHJlbW92ZSBlbmdpbmVJRCBwcm9iZS9SZXBvcnQgaGFjaywgaGFuZGxlIHNlY3VyaXR5U3RhdGVSZWYgYXMgZGlzY3Vzc2VkLCBoYW5kbGUgemVyby1sZW5ndGggY29udGV4dCwgbm9ybWFsaXplIF9lbmdpbmV0aW1lIGFyZyBvcmRlciwgaW5jbHVkZSB3ZXMncyBwYXRjaGVzIGZvciBudWxsIGVuZ2luZWlkIGFuZCBzZWNOYW1lTGVuKysKCmhhcmRha2VyICAxIE5vdiA5OCAxOTozMjo0MwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBfcGFyc2VfYXJncy5oLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsCiAgICAgIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLAogICAgICBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLCBzbm1wd2Fsay5jKToKICAgICAgLSB1c2UgInNubXBhcHAiIGFzIGNvbmZpZ3VyYXRpb24gZmlsZSBuYW1lLgoKaGFyZGFrZXIgIDEgTm92IDk4IDE5OjM2OjU5CiAgICAtIChzbm1wX2FwaS5jKTogZ2VuZXJhdGUgdXNlci0+S3VsIGZyb20gc2Vzc2lvbi0+S3UuCgpoYXJkYWtlciAgMSBOb3YgOTggMTk6Mzg6MjkKICAgIC0gKHNubXBfYWdlbnQuYyk6IGdlbmVyYXRlIGFsbCBzb3J0cyBvZiBuZXcgU05NUCByZXBvcnRzIHdoZW4gbmVlZGVkLgoKaGFyZGFrZXIgIDEgTm92IDk4IDE5OjM5OjI5CiAgICAtIChzbm1wZC5jKTogdXNlIHNubXBfcGVycm9yKCkgaWYgc25tcF9hZ2VudF9wYXJzZSgpIHJldHVybnMgMC4KCmhhcmRha2VyICAyIE5vdiA5OCAwOTowMDoyNQogICAgLSAodmFjbS5jKTogYWxsb3cgYSBzZWN1cml0eSBsZXZlbCA+PSwgbm90ID09LgoKaGFyZGFrZXIgIDIgTm92IDk4IDA5OjAxOjA3CiAgICAtIChzbm1wdjMuYyk6IHJlbW92ZSB1c21fY3JlYXRlX2luaXRpYWwoKSBhbmQgc2V0X2VuZ2luZXRpbWUoKS4KCmhhcmRha2VyICAyIE5vdiA5OCAwOTowNjowNAogICAgLSAoc25tcHVzbS5jLCBzbm1wdXNtLmgpOgogICAgICAtIG5ldyBmdW5jdGlvbjogaW5pdF91c21fcG9zdF9jb25maWcodm9pZCk7CiAgICAgIC0gbWFrZSB1c21fZ2V0X3VzZXJfZnJvbV9saXN0KCkgaGFuZGxlIGEgYm9ndXMgaW5pdGlhbCB1c2VyIGZsYWcuCgpoYXJkYWtlciAgMiBOb3YgOTggMDk6MDk6MzUKICAgIC0gKHNubXBfYXBpLmMpOgogICAgICAtIHVzZSBpbml0X3VzbV9wb3N0X2NvbmZpZygpOwogICAgICAtIHVzZSB1c21fZ2V0X3VzZXJfZnJvbV9saXN0IHRvIGFzayBub3QgdG8gcmV0dXJuIHRoZSBkZWZhdWx0IGluaXRpYWwgdXNlci4KICAgICAgLSBmaXggc25tcF92YXJfYWRkX3ZhcmlhYmxlKCkgdG8gYWxsb3cgY291bnRlcnMuCgpoYXJkYWtlciAgMiBOb3YgOTggMDk6MTA6MTUKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogdHlwbyBvbiBkZXMga2V5IGluaXRpYWxpemF0aW9uLCBmb3Jnb3QgdGhlICdYJy4KCmhhcmRha2VyICAyIE5vdiA5OCAwOToxMzozNgogICAgLSAoc25tcF9hZ2VudC5jKToKICAgICAgLSBmaXggcmVwb3J0IE9JRHMgdG8gYmUgY29ycmVjdC4KICAgICAgLSBkZWJ1Z2dpbmcgc3RhdGVtZW50IHdoZW4gc2VuZGluZyBhIHJlcG9ydC4KICAgICAgLSBhZGRlZCB1bnN1cHBvcnRlZCBzZWN1cml0eSBsZXZlbCByZXBvcnQuCiAgICAgIC0gc2VuZCBhIGNvdW50ZXIgaW5zdGVhZCBvZiBhbiBpbnRlZ2VyLgoKaGFyZGFrZXIgIDIgTm92IDk4IDE2OjAxOjI0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGdlbmVyYXRlIEt1IGZvciBwcml2IHByb3RvY29sIHVzaW5nIGF1dGggcHJvdG9jb2wgaGFzaC4KCmhhcmRha2VyICAzIE5vdiA5OCAwOTozNzowMwogICAgLSAobGNkX3RpbWUuYyk6IGZpcnN0IGJ5dGU9PTAgZW5naW5lIElEJ3MgYXJlIHZhbGlkLgoKbGV3aXMgIDQgTm92IDk4IDExOjM1OjI5CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBCZXR0ZXIgaGFuZGxpbmcgb2YgbnVsbCBhbmQgdW5rbm93biBlbmdpbmUgSURzLgoKZHJlZWRlciAgNCBOb3YgOTggMTE6NDU6MDgKICAgIC0gKGxjZF90aW1lLmMpIFNwZWNpYWwgY2FzZXMgZm9yIE5VTEwgb3IgMCBsZW5ndGggZW5naW5lSURzLgoKaGFyZGFrZXIgIDQgTm92IDk4IDIxOjUzOjMyCiAgICAtIChzbm1wX2FnZW50LmMpOiBjaGVjayBlbmdpbmVJRCB0byBtYWtlIHN1cmUgaXRzIHVzLgoKbGV3aXMgIDUgTm92IDk4IDA5OjUyOjM1CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBGaXhlZCBjYWxsIHRvIHByZWRpY3QgaW50ZWdlciBsZW5ndGggcm91dGluZSB0byBnaXZlIGl0IHRoZSAqd2hvbGUqCiAgICAgICAgbnVtYmVyLCBub3QganVzdCBvbmUgKGZpcnN0L2xhc3QgZGVwZW5kcyBvbiBlbmRpYW4pIG9mIHRoZSBudW1iZXIuCiAgICAgICAgRG9oISBzY2FsZSByYXRpbmcgOS4KICAgICAgLSBBbHRlcmVkIHRoYXQgcm91dGluZSB0byBiZSBtb3JlIGxpa2UgdGhlIGFzbl9idWlsZF9pbnQgLi4uIGkuZS4sIG5vCiAgICAgICAgbG9uZ2VyIGFzc3VtZXMgdGhlIGxlbmd0aCBvZiB0aGUgbGVuZ3RoIGlzIDEuICBEb2ghIHJhdGluZyBhIDEuCgpsZXdpcyAgNSBOb3YgOTggMTE6MDM6MjQKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIEZpeGVkIHNvbWUgREVCVUdQIGNhbGxzIHRvIHNob3cgdGhlIHJpZ2h0IGZ1bmN0aW9uLCBwZXJoYXBzIHRoZXNlIHdpbGwKICAgICAgICBiZWNvbWUgREVCVUdQTCBpbiB0aGUgZnV0dXJlLgoKZHJlZWRlciAgNSBOb3YgOTggMTU6Mzc6MjkKICAgIC0gTW9zdGx5IGZ1bmN0aW9uIGhlYWRlciBjb21tZW50cyBpbiByZWFkX2NvbmZpZy5jLCB1dGlsX2Z1bmNzLmMsIHNubXB2My5jLgogICAgICAJKFBsZWFzZSBmZWVsIGZyZWUgdG8gY2hlY2sgZm9yIGFjY3VyYWN5Li4uKQogICAgICBDaGVjayBmb3IgTlVMTCBpbiByZWdpc3Rlcl9jb25maWdfaGFuZGxlcigpLgogICAgICBBZGRlZCBsZW5ndGggYXJndW1lbnQgdG8gc25tcHYzX2dldF9lbmdpbmVJRCgpLgogICAgICBDaGVjayBmb3IgbGVuZ3RoKFApPFVTTV9MRU5HVEhfUF9NSU4gaW4gZ2VuZXJhdGVfS3UoKS4KICAgICAgTm90ZTogImV0ZXN0IC1hIiBoYXMgYSBuZXcgZmFpbHVyZTsgdG8gYmUgZml4ZWQgd2hlbiBUaW1lIExDRCByZS1zdGFiaWxpemVzLgoKbWFyeiAgNiBOb3YgOTggMTY6MTM6MzcKICAgICAtKHNubXBfYXBpLltjaF0sIHNubXBfY2xpZW50LmMpOiBoYW5kbGUgUmVwb3J0cyB0byB0cmlnZ2VyIHJlc2VuZCwgZXhjZXB0IGZvciB1bmtub3duRW5naW5lSUQsIHBhc3Mgc2VjU3RhdGVSZWYgdG8gcmVjZWl2ZSBzZWN1cml0eVN0YXRlIGZyb20gVVNNICpXQVJOSU5HKiBnZXR0aW5nIGF1dGhvcml6YXRpb24gZmFpbHVyZSBpbiBVU00qIHBsZWFzZSBoZWxwIC0gdGhpcyB3YXMgbm90IGhhcHBlbmluZyBiZWZvcmUgc28gZG91YnRsZXNzIGl0IGlzIG15IGZhdWx0PwoKbWFyeiAgNyBOb3YgOTggMTI6MzM6NDkKICAgICAtKHNubXBfYXBpLmMsIGxjZF90aW1lLltjaF0sIHNubXB1c20uYyk6IGNsZWFuIHVwIHByb2JsZW1zIGNhdXNlZCB3aGVuIHdlIGJlZ2FuIHVzaW5nIHNlY1N0YXRlUmVmLCBvdGhlciBVU00gZXJyb3JzLCBpbXBsZW1lbnQgTENEX1RJTUVfU1lOQ19PUFQgb3B0aW1pemF0aW9uCgptYXJ6ICA3IE5vdiA5OCAxMjozNzoyMQogICAgIC0oc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogY2xlYW4gdXAgcHJvYmxlbXMgY2F1c2VkIHdoZW4gd2UgYmVnYW4gdXNpbmcgc2VjU3RhdGVSZWYsIHNldF9lbmdpbmV0aW1lIGluIExDRCBwb3N0IGNvbmZpZyByZWFkLCBMQ0RfVElNRV9TWU5DX09QVCB0aW1lIGxlcm5pbmcgb3B0aW1pemF0aW9uLCBpbmNsdWRlIGZpbGUgZm9yIGxjZF90aW1lIGFkZGVkLCBtb3ZlZCBtYWtlX3JlcG9ydCB0byBzbm1wbGliIC0gcmVwb3J0IGdlbmVyYXRpb24gaXMgc3RpbGwgaW4gYWdlbnQKCmhhcmRha2VyICA5IE5vdiA5OCAxMzoyOToxOQogICAgLSAoc25tcF9hcGkuYyk6IGdlbmVyYXRlX2t1bCBzaG91bGQgdXNlIGF1dGhwcm90b2NvbC4KCm1hcnogMTEgTm92IDk4IDA3OjUxOjQzCiAgICAgLShsY2RfdGltZS5jLCBzbm1wdXNtLmMpOiBmaXhlcyB0byBoYW5kbGUgbnVsbCBlbmdpbmUgSUQgLSB0b2xlcmF0ZWQgd2hlbiBzZW5kaW5nLCB1bmtub3duIHdoZW4gcmVjZWl2aW5nCgptYXJ6IDExIE5vdiA5OCAwODowMzoyNAogICAgIC0oc25tcF9hZ2VudC5jKTogcmVtb3ZlIHdvcmthcm91bmQgdG8gZGV0ZWN0IHVua25vd25FbmdpbmVJRCBlcnJvciAtIG5vdyBkb2VuIGluIFVTTSBhcyBzcGVjJ2QKCmhhcmRha2VyIDExIE5vdiA5OCAxMjozNzo0NwogICAgLSAoc25tcGQuYywgc25tcF9hcGkuYywgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBtb3ZlIGluaXRpYWwgc2V0X2VuZ2luZXRpbWUoKSBmcm9tIGFnZW50IHRvIHNubXB2My5jLgogICAgICAtIG5ldyBzbm1wLmNvbmYgY29uZmlndXJlIGZpbGUgdG9rZW5zOiBkZWZBdXRoVHlwZSwgZGVmUHJpdlR5cGUsCiAgICAgICAgZGVmUGFzc3BocmFzZSwgZGVmQXV0aFBhc3NwaHJhc2UsIGRlZlByaXZQYXNzcGhyYXNlLgogICAgICAtIG1pbmltdW0gYm9vdHMgdXNlZCBpcyAxLCBub3QgMC4KCmhhcmRha2VyIDExIE5vdiA5OCAxMzowOToyNgogICAgLSAoc25tcGQuYyk6IGFkZGVkIG5lZWRlZCBpbml0XygpIHJvdXRpbmVzLgoKaGFyZGFrZXIgMTEgTm92IDk4IDEzOjExOjAyCiAgICAtIChzbm1wdjMuYyk6IGRvbid0IHByaW50IG9pZHMgdG8gJXMncy4KCmhhcmRha2VyIDEzIE5vdiA5OCAwNzo1OTowNAogICAgLSAoc25tcGQuYyk6IGNyZWF0ZSB0aGUgY29ycmVjdCBpbml0aWFsIHVzZXIgYWZ0ZXIgZW5naW5lSUQgY29uZmlndXJhdGlvbi4KCmhhcmRha2VyIDEzIE5vdiA5OCAwODowMzo0NQogICAgLSAodXNtVXNlci5jKTogZG9uJ3QgaW5pdGlhbGl6ZSB1c2VyIGhlcmUuCgpoYXJkYWtlciAxMyBOb3YgOTggMDg6MDQ6NDIKICAgIC0gKHNubXB2My5jKTogbWFrZSBlbmdpbmVJRCBjb25maWd1cmF0aW9uIGxpbmVzIGdldCBwYXJzZWQgZWFybHkuCgpoYXJkYWtlciAxMyBOb3YgOTggMDg6MTQ6MDQKICAgIC0gKHNubXB1c20uYyk6CiAgICAgIC0gbW9yZSBhcHByb3ByaWF0ZSBlbmdpbmVJRCBjaGVja2luZyBmb3IgdXNlcnMgKHdhcyBhIGJ1ZykuCiAgICAgIC0gdXNtX2FkZF91c2VyKCk6IGRvbid0IGR1cGxpY2F0ZSB1c2VycyB3aXRoIHRoZSBzYW1lIG5hbWUvZW5naW5lSUQuCgpoYXJkYWtlciAxNSBOb3YgOTggMTA6MTk6NTUKICAgIC0gKHNubXBkLmMpOiBtb3ZlIHBvc3RfY29uZmlnIGluaXQgcm91dGluZXMgdG8gYmV5b25kIHBlcnNpc3RlbnQgcmVhZGluZy4KCmhhcmRha2VyIDE1IE5vdiA5OCAxMjo1NTozOAogICAgLSAoTWFrZWZpbGUuaW4pOgogICAgICAtIG5ldyBtYWtlIHRhcmdldDogdGVzdAogICAgICAtIG1ha2UgYWxsIGRvZXNuJ3QgY29tcGlsZSB0aGUgdGVzdGluZyBkaXJlY3RvcnkuCgpoYXJkYWtlciAxNSBOb3YgOTggMTM6MDA6NDEKICAgIC0gKHVzbVVzZXIuYywgc25tcHVzbS5jLCBzbm1wdXNtLmgpOgogICAgICAtIHVzbV9yZW1vdmVfdXNlcigpOgogICAgICAgIC0gcHJvcGVybHkgdXBkYXRlcyB0aGUgbGlzdCBwb2ludGVyLgogICAgICAgICAgLSByZXF1aXJlcyBhICoqIHBvaW50ZXIgdG8gdGhlIGxpc3QgdG8gZG8gdGhpcy4KICAgICAgICAtIGNoZWNrIGFnYWluc3QgYSBOVUxMIGxpc3QgcG9pbnRlci4KICAgICAgLSB1c21fY2xvbmVGcm9tX3VzZXIoKToKICAgICAgICAtIHRoZSBrZXlzIHdlcmUgbm90IGJlaW5nIHByb3Blcmx5IGR1cGxpY2F0ZWQuCiAgICAgIC0gdXNtX2Nsb25lX3VzZXIoKTogZGVsZXRlZC4KICAgICAgLSB1c21fY3JlYXRlX3VzZXIoKTogY3JlYXRlZCwgYW5kIHVzZWQgaW4gcGxhY2Ugb2YgdXNtX2Nsb25lX3VzZXIoTlVMTCkuCgpoYXJkYWtlciAxNSBOb3YgOTggMTM6MDE6MjcKICAgIC0gKGV0aW1ldGVzdC5jKTogZml4IGNhbGxzIHRvIHNldC9nZXRfZW5naW5ldGltZSgpLgoKaGFyZGFrZXIgMTUgTm92IDk4IDE0OjE0OjA3CiAgICAtIChJU1NVRVMpOiBmaW5pc2hlZCBhIGNvdXBsZSBvZiB0aGluZ3MuCgpoYXJkYWtlciAxNSBOb3YgOTggMTQ6MTk6MjEKICAgIC0gKElTU1VFUywgc25tcF9hZ2VudC5jKTogZml4IHBkdSBmcmVlaW5nIHByb2JsZW0sIHRoYW5rcyB0byBKb2UncwogICAgICBtZXJnZSBvZiB0aGUgcGR1IHN0cnVjdHVyZXMuCgpoYXJkYWtlciAxNSBOb3YgOTggMTU6NTA6MzMKICAgIC0gKElTU1VFUyk6IG1pc2MgZGF0ZSBjaGFuZ2VzIGFuZCBtYXJrIHRoYXQgSSdtIHdvcmtpbmcgb24gc29tZXRoaW5nLgoKaGFyZGFrZXIgMTUgTm92IDk4IDE1OjUzOjI0CiAgICAtIChzbm1wZC5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jKToKICAgICAgLSBjcmVhdGUvY2FsbCBzbm1wX3NodXRkb3duKCkuCiAgICAgIC0gcmVtb3ZlIHRoZSAicGVyc2lzdGVudC4iIHBhcnQgb2YgdGhlIHBlcnNpc3RlbnQgLmNvbmYgbmFtZS4KICAgICAgLSByZW5hbWUgaW5zdGVhZCBvZiB1bmxpbmsgb2xkIHBlcnNpc3RlbnQgLmNvbmYgZmlsZS4KCmhhcmRha2VyIDE1IE5vdiA5OCAxNzozNzowMAogICAgLSAoSVNTVUVTLCBzbm1wdjMuYyk6IHdoZW4gZW5naW5lSUQgY2hhbmdlcyBmcm9tIHRoZSBwcmV2aW91cyBydW4sCiAgICAgIHJlc2V0IGVuZ2luZUJvb3RzIHRvIDEuICAocmVxdWlyZXMgc3RvcmluZyB0aGUgbGFzdCBlbmdpbmVJRCB1c2VkKS4KCmhhcmRha2VyIDE2IE5vdiA5OCAyMDoxMDoxOQogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wZC5jLCBzbm1wX21pYi5jLCBzbm1wX21pYi5oLCBzbm1wX2FwaS5jLAogICAgICBzbm1wX2FwaS5oKToKICAgICAgLSB1c2UgbmV3IGxpYnJhcnkgYmFzZWQgc3RhdGlzdGljcyBjb3VudGVyIGV2ZXJ5d2hlcmUuCgpoYXJkYWtlciAxNiBOb3YgOTggMjA6MTc6MDEKICAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLCBpbnRlcmZhY2VzLmMsIHN5c3RlbS5jLCByZWdpc3RyeS5jKToKICAgICAgLSB1c2UgaGVhZGVyX2dlbmVyaWMgaW4gYSBmZXcgbW9yZSBwbGFjZXMuCiAgICAgIC0gc3RhbmRhcmRpemUgdGhlIE1BVENIX0ZBSUxFRCBhbmQgTUFUQ0hfU1VDQ0VFREVEIGRlZmluaXRpb25zLgoKaGFyZGFrZXIgMjIgTm92IDk4IDA3OjI0OjU2CiAgICAtIChzbm1wdXNtLmMpOiB1c21fY3JlYXRlX2luaXRpYWxfdXNlcigpIGFjY2VwdHMgbmFtZSAmIGF1dGgvcHJpdiB0eXBlcy4KCmhhcmRha2VyIDIyIE5vdiA5OCAwNzoyNTo1MgogICAgLSAoc25tcGQuYyk6CiAgICAgIC0gbG9nIFBJRCB0byBmaWxlIHVzaW5nIC1QLgogICAgICAtIGNyZWF0ZSB0ZW1wbGF0ZSB1c2VyczogIHRlbXBsYXRlTUQ1ICYgdGVtcGxhdGVTSEEuCgpoYXJkYWtlciAyMiBOb3YgOTggMDc6MjY6MzAKICAgIC0gKGtleW1hbmFnZXRlc3QuYyk6IG5ldyBmbGFnOiAtcSA9IHF1aWV0LgoKaGFyZGFrZXIgMjIgTm92IDk4IDA3OjI3OjEyCiAgICAtIChkZW1vKTogc2NyaXB0IHRvIHJ1biBsaXN0IG9mIGNvbW1hbmRzIHJlcXVpcmVkIGZvciB0aGUgZGVtby4KCmhhcmRha2VyIDIyIE5vdiA5OCAwNzoyODo1OAogICAgLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSB0ZXN0aW5nIHRhcmdldHMuCgpoYXJkYWtlciAyMiBOb3YgOTggMTQ6MzY6NTMKICAgIC0gKGRlbW8pOiBxdW90ZSB0aGUgcGFzcyBwaHJhc2UuCgpoYXJkYWtlciAyMiBOb3YgOTggMjI6MTY6NDQKICAgIC0gKGRlbW8pOgogICAgICAtIHBhc3MvZmFpbCB0eXBlIG91dHB1dC4KICAgICAgLSBob3N0cyBvdGhlciB0aGFuIGxvY2FsaG9zdC4KICAgICAgLSBjYXBhYmlsaXR5IHRvIGxvb2sgZm9yIHN0dWZmIGluIG91dHB1dCBvZiBjb21tYW5kcy4KCmhhcmRha2VyIDIyIE5vdiA5OCAyMjoyNjoyOAogICAgLSAoZGVtbyk6IHR1cm4gZW5jcnlwdGlvbiBvbiBmb3IgdGVzdHMgdGhhdCBuZWVkIGl0LgoKaGFyZGFrZXIgMjMgTm92IDk4IDA3OjE0OjA1CiAgICAtIChrZXltYW5hZ2V0ZXN0LmMpOiBwcmludCBNRDUvU0hBIGJlZm9yZSB0aGUga2V5Y2hhbmdlIHN0cmluZy4KCmhhcmRha2VyIDIzIE5vdiA5OCAwNzoxNjowMQogICAgLSAoZGVtbyk6IGZpeCB0aGUga2V5IGNoYW5nZSBzdHJpbmcgZXh0cmFjdGlvbiB0byBsb29rIGZvciB0aGUgTUQ1IHZlcnNpb24uCgpoYXJkYWtlciAyMyBOb3YgOTggMDc6Mzg6NDQKICAgIC0gKGtleW1hbmFnZXRlc3QuYyk6IGJlcXVpZXQgc2hvdWxkIGJlIDAgYnkgZGVmYXVsdC4KCmhhcmRha2VyIDIzIE5vdiA5OCAwODowNjozNAogICAgLSAoZGVtbyk6IGJ1ZyBmaXhlcy4KCmRyZWVkZXIgMjQgTm92IDk4IDE2OjQzOjUwCiAgICBGaXhlZCBidWcgaW4gVVNNIHByZXZlbnRpbmcgZXhjaGFuZ2Ugb2YgY3J5cHRlZCBwYWNrZXRzLiAgQ29kZSBhZGRlZAogICAgCXRvIHByb3Blcmx5IGVzdGltYXRlIHNpemUgb2YgY3J5cHRlZCB0ZXh0IGdpdmVuIHVuLXBhZGRlZCBwbGFpbnRleHQuCiAgICAJRm91bmQvZml4ZWQgS01UIHByb3RvdHlwZSBjb25mbGljdCB0aGF0IGNhdXNlZCB0aGUgZ2l2ZW4gSVYgdG8gYmUKICAgIAlpZ25vcmVkIGF0IGNyeXB0L2RlY3J5cHQgdGltZS4KICAgIHNldHVwX2VuZ2luZUlEKCkgaGFzIGEgbmV3IGFyZ3VtZW50IHRvIGFsbG93IElEIHN0cmluZ3MgdG8gYmUgcmV0dXJuZWQKICAgIAl0byBjYWxsZXIuCiAgICBOZXcgZmlsZSBzbm1wbGliL3RyYW5zZm9ybV9vaWRzLmggdG8gcHV0IHN0YXRpYyBkZWNsYXJhdGlvbnMgaW4gYSBzaW5nbGUKICAgIAlwbGFjZS4uLgogICAgRmFpbHVyZSBvZiBzdGF0IGluY3JlbWVudHMgaW4gVVNNIG5vIGxvbmdlciBjYXVzZSBmYWlsdXJlIGluIHRoZSBjYWxsaW5nCiAgICAJZnVuY3Rpb24uCiAgICBBZGRlZCB1dGlsaXR5IGFwcHMvZW5jb2RlX2tleWNoYW5nZS4gICgtaCBmb3IgdXNhZ2UuKQogICAgRElGRlRJTUUgbWFjcm8gdG8gcmVwbGFjZSBvZnQgcmVwZWF0ZWQgY29kZS4KICAgIFNob3J0ZW5lZCBzb21lIFZBQ00gZGVidWdnaW5nIG91dHB1dCB0byBhIHNpbmdsZSBsaW5lIGZyb20gbWFueS4KICAgIE1vcmUgY29tbWVudHMuICBNb3JlIHRyb3VibGUgc3BvdHMgbWFya2VkIFhYWC4KICAgIENvbnZlcnRlZCBvZnQgdXNlZCBtYWdpYyBudW1iZXJzIHRvIHN5bWJvbGljIGNvbnN0YW50cyAoc29tZSBwcmUtZXhpc3RpbmcpLgogICAgQ2xlYW5lZCB1cCBzb21lIHNpbXBseSBmaXhlZCBidWlsZCB3YXJuaW5ncy4KICAgIFVwZGF0ZWQgbm9uZXhwb3J0L2NyeXB0by9SRUFETUUuICBTdGlsbCBuZWVkcyB3b3JrLgoKbWFyeiAyNSBOb3YgOTggMDc6NDQ6MjgKICAgICAtKHNubXBfcGFyc2VfYXJncy5jKTogYWRkZWQgLVQgPGJvb3RzPiA8dGltZT4gdG8gc2V0IGFuIGluaXRpYWwgKGF1dGhlbnRpY2F0ZWQpIHRpbWUgdmFsdWUgZm9yIHRoZSBkZXN0aW5hdGlvbiBlbmdpbmVJRHMgYm9vdHMvdGltZSkKCm1hcnogMjUgTm92IDk4IDA3OjQ4OjQ5CiAgICAgLShzbm1wX2FwaS5bY2hdLCBzbm1wLmgsIHNubXBfY2xpZW50LmMpOiBoYW5kbGUgaW5jb21pbmcgUmVwb3J0cyAtIHByb3BhZ2F0ZSBTVEFUX0VSUk9SIHRvIGFwcHMgd2l0aCBhcHByb3AuIGVycm9yIG1lc3NhZ2UsIGhhbmRsZSByZWNvdmVyYWJsZSBlcnJvciBub3RJblRpbWVXaW5kb3cgYW5kIGVuZ2luZUlkIGRpc2NvdmVyeSwgc2VuZCByZXBvcnRzIHdpdGggc2VjTGV2ZWw9PW5vQXV0aE5vUHJpdiBleGNlcHQgbm90SW5UaW1lV2luZG93CgptYXJ6IDI1IE5vdiA5OCAwNzo1MTo1MAogICAgIC0odG9vbHMuYyk6IG9vcHMgYmFjayBvdXQgbGl0dGxlIGNvbXBpbGUgd29ya2Fyb3VuZCBJIGRpZCBub3QgbWVhbiB0byBjb21taXQKCm1hcnogMjUgTm92IDk4IDA3OjU0OjAxCiAgICAgLShzbm1wZC5jLCBzbm1wX2FnZW50LmMpOiBpbml0aWFsaXplIHBpZF9kaWxlLCBvbmx5IGFsbG9jYXRlIGVuZ2luZUlEIG1lbSBmb3IgUmVwb3J0cyB3aGVuIHNlbmRpbmcgUmVwb3J0LCBmaXggdmVyc2lvbiBpbmZvIGluIGRlYnVnIG1lc3NhZ2UKCmhhcmRha2VyIDI1IE5vdiA5OCAwNzo1NjozMAogICAgLSAoc25tcEVuZ2luZS5jLCBzbm1wTVBEU3RhdHMuYywgdXNtVXNlci5jLCB1c21Vc2VyLmgpOgogICAgICAtIEFkZGVkIGEgY291cGxlIG9mIERFVUJHUCBzdGF0ZW1lbnRzIGFuZCBhIGNvdXBsZSBvZiBjb21tZW50IGNsYWlyaWZpY2F0aW9ucy4KCmhhcmRha2VyIDI1IE5vdiA5OCAxMjozOTowMQogICAgLSAoc25tcHVzbS5jKTogY2hhbmdlcyBpbiBjb21tZW50cyBmb3IgY2xhcmlmaWNhdGlvbi4KCmhhcmRha2VyIDI1IE5vdiA5OCAxMjo0MDozNQogICAgLSAoc25tcHYzLmMpOiBjaGFuZ2VzIGluIGNvbW1lbnRzIGZvciBjbGFyaWZpY2F0aW9uLgoKaGFyZGFrZXIgMjUgTm92IDk4IDEyOjU0OjA4CiAgICAtIChzbm1wX2FnZW50LmMpOiB2ZXJzaW9uIGNoZWNrcyBhZ2FpbnN0IHYyYy92MnAgLT4gIXYxLgoKaGFyZGFrZXIgMjUgTm92IDk4IDEzOjA0OjAyCiAgICAtIChzbm1wZC5jKTogY29tbWVudCBjbGFyaWZpY2F0aW9uLgoKaGFyZGFrZXIgMjUgTm92IDk4IDE3OjEyOjAyCiAgICAtIChkZW1vKToKICAgICAgLSBlbmNvZGVfa2V5Y2hhbmdlIHVzYWdlLgogICAgICAtIG1vdmUgY2xvc2VyIHRvIDQyLCBidXQgbGVhdmUgcm9vbSBmb3IgYSBmZXcgbW9yZSB0aGluZ3MuCgpoYXJkYWtlciAyNSBOb3YgOTggMjI6NTg6NDMKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciB0Y2dldGF0dHIuCgpoYXJkYWtlciAyNSBOb3YgOTggMjI6NTk6NTYKICAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IGNyZWF0ZSBzbm1wdjNfc2V0X2VuZ2luZUJvb3RzQW5kVGltZSgpLgoKaGFyZGFrZXIgMjUgTm92IDk4IDIzOjAwOjQ3CiAgICAtICh0b29scy5jKTogZHVtcF9lbmdpbmVJRCBzaG91bGQgKm5ldmVyIGV2ZXIqIG1vZGlmeSB0aGUgcGFzc2VkIGxlbmd0aCBwYXJhbS4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMzowMjo0OQogICAgLSAoZGVtbyk6CiAgICAgIC0gLXM6IDEgc2VjIHNsZWVwIGluc3RlYWQgb2Yga2V5cHJlc3MuCiAgICAgIC0gZG8gdGltZSB0ZXN0cy4KICAgICAgLSB1c2UgZW5jb2RlX2tleWNoYW5nZS4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMzowNDoxMAogICAgLSAoc25tcEVuZ2luZS5jLCBzbm1wRW5naW5lLmgpOgogICAgICAtIFNoaGhoaC4uLi4uICBib290cyBhbmQgdGltZSBhcmUgd3JpdGFibGUuLi4gIERvbid0IHRlbGwgYW55b25lLi4uIFNoaGguLi4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMzoxNTowNQogICAgLSAoZW5jb2RlX2tleWNoYW5nZS5jKToKICAgICAgLSB1c2UgdV9jaGFyJ3Mgd2hlcmUgYXBwcm9wcmlhdGUuCiAgICAgIC0gc29tZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cyBhZGRlZC4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMzozMjo1MQogICAgLSAodXNtVXNlci5jKToKICAgICAgLSBrZXljaGFuZ2UgbmVlZHMgYSB0ZW1wIGJ1ZmZlci4KICAgICAgLSBhIGZldyBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KCmhhcmRha2VyIDI3IE5vdiA5OCAxMDoyMDo0NQogICAgLSAoc25tcHVzbS5jKTogdXNtX3NldF9zYWx0KCkgYWNjZXB0cyBhIGtleSB3aGljaCBpcyB0b28gbG9uZyAoU0hBIGZvciBERVMpLgoKaGFyZGFrZXIgMjcgTm92IDk4IDEwOjIzOjAzCiAgICAtIChzbm1wX2FwaS5jKTogc25tcHYzX3NlbmRfcmVwb3J0KCkgcmVtb3ZlcyB0aGUgc2VjU3RhdGVSZWZlcmVuY2UKICAgICAgZnJvbSB0aGUgcGR1IGlzIHRoZXJlIGlzIG9uZS4gIEl0IHNob3VsZG4ndCBiZSB1c2VkIGZvciByZXBvcnRzLgoKaGFyZGFrZXIgMjcgTm92IDk4IDEwOjMxOjEyCiAgICAtIChkZW1vKTogZmluYWwgZml4ZXMgZm9yIGFsbCBjdXJyZW50IHRlc3RzIHRvIHdvcmsuCgpoYXJkYWtlciAyNyBOb3YgOTggMTU6MTU6MjUKICAgIC0gKGRlbW8pOgogICAgICAtIC1UOiBwYXVzZSBhZnRlciB0ZXN0IGNvbXBsZXRpb25zLgogICAgICAtICoqKiogNDIvNDIgdGVzdHMgcGFzc2VkCgpoYXJkYWtlciAyNyBOb3YgOTggMTY6NTU6MTUKICAgIC0gKHNubXBwYXNzLmMpOiBiZWdpbm5pbmdzIG9mIGEgc25tcCBwYXNzd29yZCBjaGFuZ2VyOgogICAgICAtIHN0b2xlIG1vc3QgY29kZSBmcm9tIHNubXBzZXQuYyBhbmQgZW5jb2RlX2tleWNoYW5nZS5jLgogICAgICAtIG5lZWQgdG8gZml4OiBtdXN0IHNwZWNpZnkgbW9zdCBldmVyeXRoaW5nIG9uIHRoZSBjb21tYW5kIGxpbmUgKGllLAogICAgICAgIC5jb25mIGZpbGUgdG9rZW5zIGRvbid0IHdvcmsgaGVyZSkuCiAgICAgIC0gdmVyeSB1bmNsZWFuIGFuZCBhIHF1aWNrIGhhY2suCiAgICAgIC0gZGlmZmVycyBmcm9tIGVuY29kZV9rZXljaGFuZ2UsIGluIHRoYXQgaXQgYWN0dWFsbHkgcHJlZm9ybXMgdGhlIHNldC4KCmhhcmRha2VyIDI3IE5vdiA5OCAxNjo1NToyMwogICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgc25tcHBhc3MuYwoKaGFyZGFrZXIgMjcgTm92IDk4IDE2OjU2OjQ3CiAgICAtICguY3ZzaWdub3JlKTogc25tcHBhc3MgYW5kIGVuY29kZV9rZXljaGFuZ2UKCmhhcmRha2VyIDI4IE5vdiA5OCAxMTo0MTowMgogICAgLSAodXNtVXNlci5jLCB1c21Vc2VyLmgpOgogICAgICAtIG1lcmdlIHdyaXRlXyBrZXlDaGFuZ2UgYW5kIG93bktleUNoYW5nZSBmdW5jdGlvbnMgaW50byBvbmUuICBTaW5jZQogICAgICAgIHRoZSB1c2VyIG5hbWUgaXMgbm90IHBhc3NlZCBpbiwgdGhlIGNhbGxpbmcgbW9kdWxlIHdpbGwgaGF2ZSB0bwogICAgICAgIGNoZWNrIGZvciBpdCB1bnRpbCB3ZSdyZSB3aWxsaW5nIHRvIGNoYW5nZSB0aGUgQVBJIG9yIHRoZSBWQUNNIGlzCiAgICAgICAgZml4ZWQgYW5kIHRoZSBvd25LZXlDaG5hZ2Ugb2JqZWN0cyBjYW4gYmUgb2Jzb2xldGVkLgoKaGFyZGFrZXIgMjggTm92IDk4IDExOjQxOjM2CiAgICAtIChzbm1wcGFzcy5jKTogLW86IHVzZSB0aGUgb3duS2V5Q2hhbmdlIG9iamVjdC4KCm1hcnogMjkgTm92IDk4IDE5OjMyOjIxCiAgICAgKGRlbW8pOiBmaXggdGltZSBzeW5jIHRlc3QgdG8gdGVzdCBmb3IgdGltZW91dCBhcyBleHBlY3RlZCB3aGVuIGFwcCBjbG9jayBpcyBzZXQgYWhlYWQKCm1hcnogMjkgTm92IDk4IDE5OjM0OjQxCiAgICAgLShzbm1wX2FwaS5jKTogbW92ZSBjb21tYW5kbGluZSBiYXNlZCBib290cy90aW1lIHNldHRpbmcgY29kZSBhZnRlciBlbmdpbmVJRCBkaXNjb3ZlcnkgaW4gY2FzZSBlbmdpbmVJRCB3YXMgbm90IHN1cHBsaWVkIG9uIGNvbW1hbmQgbGluZSBhcyB3ZWxsCgpoYXJkYWtlciAzMCBOb3YgOTggMjI6MDA6MjMKICAgIC0gKGRlbW8pOiBiZXR0ZXIgZG9jdW1lbnQgdGhlIHJlcXVpcmVkIC5jb25mIGZpbGUgcGllY2VzLgoKaGFyZGFrZXIgMzAgTm92IDk4IDIyOjEyOjEwCiAgICAtIChkZW1vKTogZW5hYmxlIC1DOiBhdXRvLWNvbmZpZ3VyZSB0aGUgYWdlbnQuCgp3YmFic29uICAxIERlYyA5OCAwNzo1Njo1NQogICAgRml4ZWQgYSBsaWJyYXJ5IHNlYXJjaCBvcmRlciBidWcgd2hpY2ggaGFkIC91c3IvbG9jYWwvc3NsL2xpYiBhbmQgL3Vzci9sb2NhbC9saWIKICAgIHNlYXJjaGVkIGJlZm9yZSAuLi9zbm1wbGliLiBUaGlzIGNhdXNlZCB1bnJlc29sdmVkIHJlZmVyZW5jZXMgd2hlbiB0cnlpbmcgdG8KICAgIGxpbmsgc25tcGQgYW5kIHRoZSBhcHBsaWNhdGlvbnMuIFRvIGRvIHRoaXMgTE9DQUxfTElCUyB3YXMgY3JlYXRlZCBhbmQgLi4vc25tcGxpYgogICAgd2FzIHJlbW92ZWQgZnJvbSBMSUJTIGFuZCBwbGFjZWQgdGhlcmUuIFRoZW4gTE9DQUxfTElCUyB3YXMgYWRkZWQgYmVmb3JlCiAgICBMREZMQUdTIGluIHRoZSBsaW5rIGNvbW1hbmRzLiBhZ2VudC9NYWtlZmlsZS5pbiBhbmQgYXBwcy9NYWtlZmlsZS5pbiB3ZXJlIG1vZGlmaWVkLgoKaGFyZGFrZXIgIDEgRGVjIDk4IDE0OjU0OjI4CiAgICAtIChzbm1wX2FwaS5jKTogaW5jbHVkZSBrbXQuaCBhbmQgcmVsYXRlZC4KCmhhcmRha2VyICAxIERlYyA5OCAxNDo1NToyOAogICAgLSAodG9vbHMuYyk6IGluY2x1ZGUga210LmggYW5kIHJlbGF0ZWQuCgpoYXJkYWtlciAgMSBEZWMgOTggMTQ6NTU6NDkKICAgIC0gKHVzbVVzZXIuYyk6IGluY2x1ZGUga210LmggYW5kIHJlbGF0ZWQuCgpoYXJkYWtlciAgMSBEZWMgOTggMTQ6NTU6NTUKICAgIC0gKHNubXBwYXNzLmMpOiBpbmNsdWRlIGttdC5oIGFuZCByZWxhdGVkLgoKbWFyeiAgMiBEZWMgOTggMDg6MzI6MjkKICAgICAtKGRlbW8uYyk6IHRlc3QgIzM4IHdpbGwgc2hvdyB0aGUgNiBtZXNzYWdlIGV4Y2hhbmdlIHNpbmNlIGl0IGlzIGluaXRpYWxpemVkIHdpdGggYSBzaW11bGF0ZWQgYXV0aGVudGljIG9vdHMvdGltZSB3aGljaCBkZWZlYXRzIHRoZSBMQ0RfVElORV9TWU5DX09QVAoKaGFyZGFrZXIgIDIgRGVjIDk4IDE0OjI2OjA4CiAgICAtIChzbm1wX2FnZW50LmMpOiBhZnRlciBkZXRlY3Rpb24gb2Ygc25tcCB2ZXJzaW9uLCBlcnJvciBjb2RlcyB3ZXJlIHJldmVyc2VkLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE1OjE4OjUzCiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogYWRkZWQgdjMgc3BlY2lmaWMgdG9rZW4gbm90ZXMuCgpoYXJkYWtlciAgMiBEZWMgOTggMTU6MTk6NDcKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wLmNvbmYuNS5kZWYpOiBjcmVhdGVkIGEgc25tcC5jb25mIG1hbnVhbCBwYWdlLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE3OjAzOjI3CiAgICAtICguY3ZzaWdub3JlKTogc25tcC5jb25mLjUgaWdub3JlZC4KCmhhcmRha2VyICAyIERlYyA5OCAxNzowMzo0OAogICAgLSAoc25tcC5jb25mLjUuZGVmKTogbWliZGlycywgbWlicywgYW5kIG1pYmZpbGVzIGRvY3VtZW50ZWQuCgpoYXJkYWtlciAgMiBEZWMgOTggMTk6Mzg6MTIKICAgIC0gKGxjZF90aW1lLmMpOiBjb21tZW50IGNsYWlyaWZpY2F0aW9uLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE5OjM5OjIyCiAgICAtIChtaWIuYyk6IHVubmVlZGVkIFhYWCByZW1vdmVkLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE5OjM5OjQ3CiAgICAtIChyZWFkX2NvbmZpZy5jKTogbWFrZSBjb3B5X3dvcmQoKSBza2lwIGFoZWFkIG9mIHNwYWNlIG9uIHJldHVybmVkIHBvaW50ZXIuCgpkcmVlZGVyICAzIERlYyA5OCAxODo0NDo0OQogICAgQ28tY2hlY2tpbiB3aXRoIG5ldyB2ZXJzaW9uIG9mIEtNVCAobG9jYXRlZCBpbiBub25leHBvcnQvS01ULXNubXApLgogICAga210X3JhbmRvbSgpIHNpZ25hdHVyZSBjaGFuZ2VkIGluIHNjX3JhbmRvbSgpLgogICAgU2Vjb25kIHZlcnNvbiB0ZXN0aW5nL2RlbW8gYXQgdGVzdGluZy9kZW1vMiogLgoKaGFyZGFrZXIgIDMgRGVjIDk4IDIyOjIwOjA2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIG5ldyBmbGFnIGFuZCBkZWZpbmUgLS1lbmFibGUtdGVzdGluZy1jb2RlIC0+IFNOTVBfVEVTVElOR19DT0RFLgoKaGFyZGFrZXIgIDMgRGVjIDk4IDIyOjIyOjU5CiAgICAtIChrZXl0b29scy5jKTogdXNlIFNOTVBfVEVTVElOR19DT0RFIGRlZiB0byBwcm90ZWN0IHNvbWUgc2VjdGlvbnMuCgpoYXJkYWtlciAgMyBEZWMgOTggMjI6MjM6NDgKICAgIC0gKHNjYXBpLmMpOiB0ZXN0aW5nIERFQlVHUCBmb3IgcHJpbnRpbmcgb3V0IGtleXMuCgpoYXJkYWtlciAgMyBEZWMgOTggMjI6MjY6NDAKICAgIC0gKHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAgLSBwcm90ZWN0IHNlY3Rpb25zIHdpdGggU05NUF9URVNUSU5HX0NPREUuCiAgICAgIC0gYWxsb3cgKidzIGluIGZpZWxkcyBmb3IgZW5naW5lSURzIGZvciBrZXkgc2V0dGluZyAuY29uZiBlbnRyaWVzLgoKaGFyZGFrZXIgIDMgRGVjIDk4IDIyOjMyOjIwCiAgICAtIChzbm1wRW5naW5lLmMsIHNubXBFbmdpbmUuaCk6CiAgICAgIC0gb25seSBtYWtlIHRpbWUvYm9vdHMgc2V0YWJsZSB3aGVuIFNOTVBfVEVTVElOR19DT0RFIGlzIGRlZmluZWQuCgpoYXJkYWtlciAgMyBEZWMgOTggMjM6MTc6MTcKICAgIC0gKGRlbW8pOiByZW1vdmVkLgoKbWFyeiAgNCBEZWMgOTggMDg6MDU6NTkKICAgICAtKHNubXBjbWQuMSk6IHVwZGF0ZSBtYW4gcGFnZSBmb3IgbmV3IFYzIHBhcnNlIGFyZ3MKCmhhcmRha2VyICA0IERlYyA5OCAxMTowMzoxNAogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBwYXNzLmMsIHNubXB1c20uYyk6CiAgICAgIC0gZGVsZXRlIHNubXBwYXNzLgogICAgICAtIGNyZWF0ZSBmaXJzdCBwYXNzIHNubXB1c20uYy4KCmhhcmRha2VyICA0IERlYyA5OCAxMTowNDowOQogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHRoZSAqIGZvciBlbmdpbmVJRCBmZWF0dXJlLgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE2OjQ1OjQzCiAgICAtIChVQ0QtREVNTy1NSUIudHh0KTogZGVtbyBtaWIgb2JqZWN0cy4KCmhhcmRha2VyICA0IERlYyA5OCAxNjo0NjowOQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1lbnRpb24vcmVzZXJ2ZSB0aGUgZGVtbyBvYmplY3QgZ3JvdXAgaW4gYSBjb21tZW50LgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE2OjQ5OjIxCiAgICAtICguY3ZzaWdub3JlKTogLmdkYiBzdHVmZgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE2OjUwOjA0CiAgICAtICh1Y2REZW1vUHVibGljLmMsIHVjZERlbW9QdWJsaWMuaCk6CiAgICAgIC0gZXhhbXBsZXMvdWNkRGVtb1B1YmxpYyBtb2R1bGU6ICBzaW1wbGUgb2JqZWN0cyBmb3IgZG9pbmcgZGVtb3MsCiAgICAgICAgaW5jbHVkaW5nIHJlbW90ZSByZXNldHRpbmcgb2Yga2V5cyB0byBhIGtub3duIHBhc3N3b3JkcyBmb3IgYSBsaXN0CiAgICAgICAgb2YgdXNlcnMuCgpoYXJkYWtlciAgNCBEZWMgOTggMTY6NTA6MjgKICAgIC0gKHVjZERlbW9QdWJsaWMuY21kcyk6IGNvbW1hbmRzIHRvIHJ1biB0byBzZXQgdXAgZm9yIHRoZSBkZW1vLgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE2OjUwOjM4CiAgICAtICh1Y2REZW1vUHVibGljLmNvbmYpOiBjb25maWd1cmF0aW9uIGZpbGUgbGluZXMgbmVlZGVkIGZvciB0aGUgZGVtby4KCmhhcmRha2VyICA0IERlYyA5OCAxODozODowNQogICAgLSAodmVyc2lvbi5oLCBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQpOiA0LjAucHJlMSB0YWcKCmRyZWVkZXIgIDUgRGVjIDk4IDE2OjUyOjQ5CiAgICBFeHRlbmRlZCBkZW1vMiBpbnRvIGRlbW8ucmVtb3RlIHRvIGFsbG93IHRlc3RpbmcgYmV0d2VlbiA8aGVyZT4gYW5kCiAgICB1Y2Qtc25tcC51Y2RhdmlzLmVkdS4KCm1hcnogMTMgRGVjIDk4IDE0OjU3OjAyCiAgICAgLShzbm1wX2FwaS5bY2hdLCBzbm1wX2NsaWVudC5jKTogYWRkIHN1cHBvcnQgZm9yIG1zZ0lEIHdoaWNoIGlzIGRpZmZlcmVudCBmcm9tIHJlcWlkIGFuZCB3aGljaCBpbmNyZW1lbnRzIHdpdGggZWFjaCByZXRyeS4gTm90ZTogbGF0ZSBSZXNwb25zZXMgd2lsbCBiZSBkcm9wcGVkIGlmIHRoZXkgYXJyaXZlIGFmdGVyIHRpbWVvdXQgLSB0aGlzIGlzIGRpZmZlcmVudCBmcm9tIHYxIGJlaGF2aW91ciB3aGVyZSBhIGxhdGUgUmVzcG9uc2UgdG8gdGhlIGluaXRpYWwgdHJ5IHdpbGwgYmUgYWNjZXB0ZWQgdXAgdG8gdGhlIHRpbWUgd2hlcmUgdGhlIGxhc3QgcmV0cnkgdGltZXMgb3V0CgpoYXJkYWtlciAxMyBEZWMgOTggMTg6Mzk6MDIKICAgIC0gKG1pYjJjKTogbWlub3IgdXBkYXRlIChuZWVkcyBtb3JlKSBmb3IgbmV3ZXIgc25tcCBwZXJsIG1vZC4KCmhhcmRha2VyIDEzIERlYyA5OCAxODozOTo0NAogICAgLSAoLmN2c2lnbm9yZSk6IC5nZGIuYXV0by5pbml0CgpoYXJkYWtlciAxMyBEZWMgOTggMTg6NDE6MTEKICAgIC0gKGVuY29kZV9rZXljaGFuZ2UuYyk6IHJlbW92ZWQgdW5uZWVkZWQgbGludXggaWZkZWYuCgpoYXJkYWtlciAxNyBEZWMgOTggMTU6NTk6MTAKICAgIC0gKHJlYWRfY29uZmlnLmMpOiB3cmFwIGNvbmZpZyBsaW5lIHByaW50J3MgaW4gU05NUF9URVNUSU5HX0NPREUgY2hlY2tzLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDIxOjU1OjA0CiAgICAtIChqdXN0IGFib3V0IGFsbCBmaWxlcyk6IG1lcmdlIG9mIFYzLWIxIGNoYW5nZXMgaW50byBWMy1iMiBicmFuY2guCgpoYXJkYWtlciAgMiBEZWMgOTggMjI6Mjc6NTQKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmMsIHVzbVVzZXIuYywgc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgIHJlYWRfY29uZmlnLmgsIHNubXBfYXBpLmMsIHNubXB1c20uYywgc25tcHYzLmMsIHRvb2xzLmgpOgogICAgICAtIGZpbmFsIGNoYW5nZXM/IHRvIFYzLWIyIG1lcmdlLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDIyOjI5OjUyCiAgICAtIChyZWFkX2NvbmZpZy5jKTogbWFrZSB0aGF0IDI4IGVycm9ycyBmcm9tIHdoaXRlc3BhY2UgY2hhbmdlcy4KCmhhcmRha2VyICAyIERlYyA5OCAyMjozNzowOAogICAgLSAoc25tcGQuYyk6IGNhbGwgaW5pdF9zbm1wdjMgYmVmb3JlIC1IIHVzYWdlIGluZm8uCgpoYXJkYWtlciAxMyBEZWMgOTggMTA6MzM6NDUKICAgIC0gKCopOiBtZXJnZTEgdG8gVjMtYjMuCgpoYXJkYWtlciAxMyBEZWMgOTggMTg6NTY6MTgKICAgIC0gKCopOiBtZXJnZTIgdG8gVjMtYjMuCgpkcmVlZGVyIDE3IERlYyA5OCAwODowNTowNAogICAgQ3JlYXR1cmUgY29tZm9ydDogL2V0YyBzY3JpcHQgdG8gKHJlKXN0YXJ0IGFuZCBzdG9wIHNubXBkIGFuZCBzbm1wdHJhcGQKICAgIGFuZCBrZWVwIChjb21wcmVzc2VkKSBjb3BpZXMgb2YgcHJldmlvdXMgbG9nZmlsZXMuICBJbnRlbmRlZCB0byBiZSB1bml2ZXJzYWwKICAgIHRvIExpbnV4LCBTb2xhcmlzLCBGcmVlQlNELCAuLi4gLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE3OjM2OjM3CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRlZmluZSBVU0VfSU5URVJOQUxfTUQ1IGlmIEtNVCBpc24ndCBhdmFpbGFibGUuCgpoYXJkYWtlciAyMSBEZWMgOTggMTc6NDk6MzgKICAgIC0gKGFsbF9zeXN0ZW0uaCwga2V5dG9vbHMuYywgbGNkX3RpbWUuYywgbWQ1LmMsIG1kNS5oLCBzY2FwaS5jLAogICAgICBzY2FwaS5oLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgdG9vbHMuYyk6CiAgICAgIC0gaW50ZXJuYWwgTUQ1IHN1cHBvcnQgZG9uZS4KICAgICAgICAtIHRlc3RlZCB3aXRoIGFuZCB3aXRob3V0IGttdCB0byBvcHBvc2l0ZSBhbmQgc2FtZSBzaWRlIGFwcHMvYWdlbnRzLgogICAgICAgIC0gdGVzdGVkIGFnYWluc3Qgb2xkZXIgNC4wLnByZTEgYWdlbnQgb24gYmFuZGl0IGFzIHdlbGwuCiAgICAgICAgLSBhbGwgYnV0IG9uZSB0ZXN0aW5nLyogdGVzdCBwYXNzZXMgKHdoaWNoIHdhcyBmYWlsaW5nIGJlZm9yZSBhbnl3YXkpLgogICAgICAgIC0gdGhlIG9sZGVyIGRlbW8gc2NyaXB0IHBhc3NlcyBhcyB3ZWxsLgogICAgICAtIE1vZGlmaWVkIG1hbnkgb3RoZXIgcm91dGluZXMuICBFdmVyeXRoaW5nIHNob3VsZCB1c2UgU0NBUEkgbm93IGFuZAogICAgICAgIEtNVCBzaG91bGQgbmV2ZXIgYmUgY2FsbGVkIGRpcmVjdGx5IG91dHNpZGUgdGhlIHNjYXBpLmMgYW5kCiAgICAgICAga2V5dG9vbHMuYyBmaWxlcy4KICAgICAgICAtIG5ldyBzY2FwaSByb3V0aW5lOiAgc2NfaGFzaCgpLgogICAgICAtIENvdWxkLCBhcyBhbHdheXMsIHVzZSBhIGJpdCBtb3JlIGNsZWFuIHVwLCBidXQgSSBuZWVkZWQgdG8gY2hlY2sKICAgICAgICBzb21ldGhpbmcgaW4gdGhhdCB3b3JrZWQgYmVmb3JlIEkgYnJlYWsgaXQgYWdhaW4gKGFoZW0pLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE3OjUzOjEwCiAgICAtIChzbm1wZ2V0LmMsIHNubXB1c20uYyk6IHVubmVlZGVkIEtNVCBpbmNsdWRlcyByZW1vdmVkLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE3OjU0OjM4CiAgICAtIChrZXltYW5hZ2V0ZXN0LmMpOiBzdXJyb3VuZCBhIGZldyBLTVQgc3BlY2lmaWMgaXRlbXMgd2l0aCAjaWZkZWZzLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE3OjU2OjU2CiAgICAtIChzbm1wX2FnZW50LmMpOiByZW1vdmUgdW5uZWVkZWQgS01UIGluY2x1ZGVzLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDE5OjQwOjEyCiAgICAtIChrZXl0b29scy5jKTogZGVjb2RlX2tleWNoYW5nZSgpIHdhc24ndCBzZXR0aW5nIHRoZSByZXR1cm5lZCBidWZmZXIgbGVuZ3RoLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDE5OjQzOjUwCiAgICAtIChzbm1wX2FwaS5jKTogREVCVUdQIG9mIHByb2JlZCBlbmdpbmVJRCBwcmludGVkIDAwJ3MgYXMgMCdzLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDIxOjA5OjM4CiAgICAtIChzbm1wX2FnZW50LmMsIHVzbVN0YXRzLmMsIHVzbVN0YXRzLmgsIHVzbVVzZXIuaCwKICAgICAgU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQpOgogICAgICAtIHVwZGF0ZWQgVVNNIG1pYiwgaW5jbHVkaW5nIHRoZSBtb3ZlIGZyb20gc25tcE1vZHVsZXMuMTIgdG8gLjE1LgogICAgICAtIG1ha2UgcmVwb3J0cyBnZW5lcmF0ZWQgaW5jbHVkZSB0aGUgLjAgc3VmZml4IGZvciB0aGUgaW5zdGFuY2Ugc3BlY2lmaWVyLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDIxOjEwOjI4CiAgICAtICh0b29scy5jKTogd3JhcCBkdW1wX2VuZ2luZUlEIGluICNpZmRlZiBTTk1QX1RFU1RJTkdfQ09ERS4KCmhhcmRha2VyIDIyIERlYyA5OCAyMToxNzoyNQogICAgLSAobGNkX3RpbWUuYyk6IHdyYXAgZHVtcF9ldGltZWxpc3QoKSBpbiAjaWZkZWYgU05NUF9URVNUSU5HX0NPREUuCgpoYXJkYWtlciAyMiBEZWMgOTggMjE6MjA6MzEKICAgIC0gKGVuY29kZV9rZXljaGFuZ2UuYyk6CiAgICAgIC0gZG9uJ3QgdXNlIGR1bXBfc25tcEVuZ2luZUlEKCkgdW5sZXNzIHRlc3RpbmcuCiAgICAgIC0gTm90ZTogdGhpcyB1dGlsaXR5IGlzIG5vdCByZWFsbHkgbmVlZGVkIGFueW1vcmUuCgpoYXJkYWtlciAyMiBEZWMgOTggMjI6MTI6MzIKICAgIC0gKFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0KTogdHlwbyAoY3V0IGFuZCBwYXN0ZSBtaXNzZWQgYSBsaW5lKS4KCmhhcmRha2VyIDIzIERlYyA5OCAyMTowNzozMwogICAgLSAoc25tcHVzbS5jKTogbXNnU2VjdXJpdHlQYXJhbXMgc2hvdWxkIGNvbnRhaW4gdGhlICpzYWx0Kiwgbm90IHRoZSBJViwKICAgICAgYXMgZGVmaW5lZCBieSB0aGUgVVNNIGRvY3VtZW50LCBzZWN0aW9uIDguMS4xLjEgKGFuZCBjb21tb24gc2Vuc2UpLgoKaGFyZGFrZXIgMjMgRGVjIDk4IDIxOjQ3OjQ0CiAgICAtIChzbm1wX2FwaS5jKToKICAgICAgLSBTZW5kIG9ubHkgYXV0aE5vUHJpdiByZXBvcnRzIGZvciBub3RJblRpbWVXaW5kb3cgcmVwb3J0cy4KICAgICAgLSByZXBvcnQgbGVuZ3RoIGNoZWNrIGluY3JlYXNlZCBieSBvbmUgdG8gYWNjb21vZGF0ZSBmb3IgdGhlIC4wIHN1ZmZpeC4KCmhhcmRha2VyIDIzIERlYyA5OCAyMjowNjoyNQogICAgLSAoc25tcHVzbS5jKTogYWxsb3cgZ2VuZXJhdGVfb3V0X21zZygpIHRvIHVzZSB1bmtub3duIHNlY3VyaXR5IG5hbWVzCiAgICAgIGZvciBzZWNMZXZlbCA9IG5vQXV0aE5vUHJpdi4KICAgICAgLSB0aGlzIGlzIHJlcXVpcmVkIHNpbmNlIHVua25vd25Vc2VyIHJlcG9ydHMgbmVlZCB0byBnbyBvdXQgd2l0aCB0aGUKICAgICAgICBzYW1lIHVzZXIgbmFtZSBhcyB0aGUgYmFkIHJlcXVlc3QgdGhhdCBjYW1lIGluLgoKaGFyZGFrZXIgMjkgRGVjIDk4IDE3OjAxOjI0CiAgICAtICh2YWNtLmMpOiBFbmFibGUgbXVsdGlwbGUgc2lkZSBieSBzaWRlIHZpZXdzIGluIHRoZSB2aWV3IGZhbWlseQogICAgICB0cmVlLiAgVGhlIHZpZXdzIGFscmVhZHkgZXhpc3RlZCwgYnV0IHdlcmVuJ3QgY2hlY2tlZCBhbmQgb25seSB0aGUKICAgICAgZmlyc3QgdmlldyB3YXMgZm91bmQuCiAgICAgIC0gTm90IGRvbmUgaW4gYSBjbGVhbiBmYXNoaW9uLiAgTXVjaCBvZiB0aGUgc3RydWN0dXJlIGRlZmluaXRpb25zCiAgICAgICAgc2hvdWxkIGJlIHJld3JpdHRlbiB3aXRoIHN1Yi1waWVjZXMgdG8gZG8gaXQgcHJvcGVybHkgd2l0aCBncmVhdGVyCiAgICAgICAgc3BlZWQuCgpoYXJkYWtlciAyOSBEZWMgOTggMTc6Mjg6MzEKICAgIC0gKGNvbmZpZyopOiBkZWZpbmUgdV9pbnR7OCwxNiwzMn1fdCBmb3IgS01UIGhlYWRlcnMuCgpoYXJkYWtlciAzMSBEZWMgOTggMTc6NTU6MzkKICAgIC0gKHNubXB1c20uYyk6IFVTTSBvaWQncyB3ZXJlIHdyb25nCgpoYXJkYWtlciAzMSBEZWMgOTggMTc6NTg6MTkKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTIgKQoKaGFyZGFrZXIgIDYgSmFuIDk5IDA3OjQ2OjAyCiAgICAtIChzbm1wdXNtLmMpOiB1c21fc2V0X3NhbHQoKSB3YXMgdXNpbmcgYSBob3N0IHNwZWNpZmljIGJ5dGUgb3JkZXJpbmcKICAgICAgZm9yIGdlbmVyYXRpbmcgdGhlIHNhbHQgZnJvbSB0aGUgZW5pZ2luZUJvb3RzIHZhbHVlIGFuZCBmcm9tIHRoZQogICAgICBhcmJpdHJhcnkgaW50ZWdlci4gIFRoaXMgdGVjaG5pY2FsbHkgc2hvdWxkbid0IG1hdHRlciwgYnV0IHNpbmNlCiAgICAgIHdlJ3JlIHNob290aW5nIHRvIGJlIGEgcmVmZXJlbmNlIHBsYXRmb3JtLi4uCgpoYXJkYWtlciAxOSBKYW4gOTkgMTk6MjA6MDcKICAgIC0gKElTU1VFUyk6IG5lZWQgcmFuZG9tIGludCBmb3IgSVYuCgp3YmFic29uIDI2IEphbiA5OSAwNTo1MjoxOQogICAgIENoYW5nZWQgTUlOKCkgbWFjcm8gdG8gU05NUF9NSU4oKSBiZWNhdXNlIHdlIGV4cGxpY2l0bHkKICAgICBkZWZpbmUgdGhhdCBpbiB0b29scy5oLi4uIFRoaXMgd2FzIG5lZWRlZCB0byBhbGxvdyBzdWNjZXNzZnVsCiAgICAgbGlua2FnZSBpbiBTb2xhcmlzIDIuNgoKaGFyZGFrZXIgMjcgSmFuIDk5IDIwOjM3OjU2CiAgICAtIChTTk1QLVRBUkdFVC1NSUIudHh0KTogdGFyZ2V0IG1pYiB3YXMgaW1wcm9wZXJseSBsb2NhdGVkIGF0IC4xNSBub3QgLjEyLgoKaGFyZGFrZXIgMjcgSmFuIDk5IDIwOjUxOjEyCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFjY2VwdCBzZWN1cml0eSBsZXZlbCBhYmJyZXZpYXRpb25zLgoKaGFyZGFrZXIgMjcgSmFuIDk5IDIxOjA3OjU5CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHJlYWRfY29uZmlnLmMpOgogICAgICAtIGNyZWF0ZSAtLXdpdGgtcGVyc2lzdGVudC1kaXJlY3RvcnkgY29uZmlndXJlIHNjcmlwdCBmbGFnLgoKZHJlZWRlciAyOSBKYW4gOTkgMTU6MjA6NTEKICAgIFJlcGFpcmVkIHRlc3RzIHRvIHJlZmxlY3QgY2hhbmdlcyBpbiB0aGUgY29kZWJhc2UuCgptYXJ6IDMxIEphbiA5OSAxMzo1NzoxMwogICAgIC0oc25tcF9hcGkuYyk6IHplcm8gbGVuZ2h0IHVzZXIgbmFtZSBmb3IgZW5pbmVJRCBkaXNjb3ZlcnkKCmRyZWVkZXIgIDIgRmViIDk5IDE0OjA0OjQ4CiAgICBSZXNvbHZlIE9JRCBjb2xsaXNpb25zOiAxKSBiZXR3ZWVuIGRlbW8gTUlCIGFuZCBVQ0QgZW50ZXJwcmlzZSBNSUI7IDIpCiAgICBpbnNpZGUgZGVtbyBNSUIuCgpoYXJkYWtlciAgMiBGZWIgOTkgMjI6MDQ6MzgKICAgIC0gKHNubXB0cmFwZC5jKTogc3VwcG9ydCAtSC4KCmhhcmRha2VyICAyIEZlYiA5OSAyMjoxMzo0MQogICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgIC0gYWxsb3cgZW52IHZhcmlhYmxlIFNOTVBfUEVSU0lTVEVOVF9GSUxFIHRvIG92ZXJyaWRlIHBlcnNpc3RlbnQKICAgICAgICBzdG9yYWdlIGxvY2FjdGlvbi4KICAgICAgLSBtZXJnZSBpbiBNaWtlJ3MgY2hhbmdlcyB0byBjb3B5X3dvcmQoKS4KCmhhcmRha2VyICAyIEZlYiA5OSAyMjoxNDo0NgogICAgLSAodGFyZ2V0LmgpOiBtZXJnZSBtaWtlJ3MgdGFyZ2V0IG1pYmdyb3VwIGludG8gdGhlIDQuMCBsaW5lLgoKbWFyeiAgNiBGZWIgOTkgMTU6MDQ6MTMKICAgICAtKHNubXBfYXBpLltjaF0sc25tcF9wYXJzZV9hcmdzLmMsc25tcHYzLltjaF0sc25tcHVzbS5jLHNubXBjbWQuMSk6IGFsbG93IGNvbnRleHRFbmdpbmVJRCBhbmQgc2VjdXJpdHlFbmdpbmVJRCB0byBiZSBkaWZmZXJlbnQsIGFkZGVkIC1FLy1lIHRvIHBhcnNlX2FyZ3MsIGZpeGVkIGVuZ2luZUlEIGRpc2NvdmVyeSB3aGljaCBicm9rZSBhZnRlciBuYW1lIHVzZWQgaW4gcHJvYmUgc3dpdGNoZWQgdG8gemVybyBsZW5ndGggc3RyaW5nCgpoYXJkYWtlciAgNyBGZWIgOTkgMjA6NDM6MTUKICAgIC0gKHJlYWRfY29uZmlnLmMpOiAtV2FsbCBmaXguCgpoYXJkYWtlciAgNyBGZWIgOTkgMjA6NDU6MTcKICAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IGEgZmV3IC1XYWxsIGZpeGVzOgogICAgICAtIHByb3RveXBlIGluaXRfc25tcHYzX3Bvc3RfY29uZmlnKHZvaWQpLgogICAgICAtIHJlbW92ZSB1bm5lZWRlZCB2YXJpYWJsZXMuCiAgICAgIC0gZG9uJ3QgY29tcGlsZSBpbiBzZXRfZW5naW5lQm9vdHNBbmRUaW1lIGludGVyZmFjZSBmdW5jdGlvbiBpZiBub3QgbmVlZGVkLgoKaGFyZGFrZXIgIDcgRmViIDk5IDIwOjQ3OjU5CiAgICAtIChzbm1wMnAuYywgc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwKICAgICAgc25tcGQuYywgc25tcGQuaCwgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLAogICAgICBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGltcGxlbWVudCBhZ2VudCB1c2luZyBsaWJyYXJpZXMgcGFyc2luZyBhbmQgaGFuZGxpbmcgcm91dGluZXMKICAgICAgICBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0LgoKaGFyZGFrZXIgIDggRmViIDk5IDAwOjExOjU5CiAgICAtIChzbm1wX2FnZW50LmMsIHV0aWxfZnVuY3MuYywgdWNkRGVtb1B1YmxpYy5jLCByb3V0ZV93cml0ZS5jLAogICAgICBzbm1wX21pYi5jLCBzeXN0ZW0uYywgc25tcEVuZ2luZS5jLCB1c21Vc2VyLmMsIGV4dGVuc2libGUuYywgcGFzcy5jLAogICAgICBwYXNzX3BlcnNpc3QuYywgcHJvYy5jLCB2ZXJzaW9uaW5mby5jKToKICAgICAgLSBtb2RpZmllZCB0byB3b3JrIHdpdGggbmV3IHdyaXRlIHZhcmlhYmxlIGFwaS4KICAgICAgLSBmaXhlZCBhIG1pc3NpbmcgZmVhdHVyZSBpbiBEYXZlJ3MgY29kZTogY3JlYXRpb24uCgpoYXJkYWtlciAgOCBGZWIgOTkgMTI6MjI6MTMKICAgIC0gKENPUFlJTkcpOiBJdCdzIDE5OTkuCgp3YmFic29uICA4IEZlYiA5OSAxMzozNDozOQogICAgQ2hhbmdlZCB0aGUgZnVuY3Rpb24gcHJvdG90eXBlIGZvciBzbm1wdjNfc2V0X2VuZ2luZUJvb3RzYW5kIFRpbWUKICAgIGZyb20gaW50IGYoKTsgdG8gdm9pZCBmKCk7IHRvIG1hdGNoIHRoZSBmdW5jdGlvbiBkZWZpbml0aW9uIGkKICAgIHNubXB2My5jIC4KCndiYWJzb24gIDggRmViIDk5IDEzOjQwOjI3CiAgICBmaXhlZCBjYXN0aW5nIGVycm9yLi4uICoobG9uZykgY2hhbmdlZCB0byAqKGxvbmcgKikKCmRyZWVkZXIgMTcgRmViIDk5IDE2OjIzOjQzCiAgICBSYW5kb20gSVY7IGZpeGVkIHNhbHQgY29uc3RydWN0aW9uLgogICAgRml4ZWQgTlVMTCBkZXJlZmVyZW5jZSBzaG93LXN0b3BwZXIgaW50cm9kdWNlZCBieSBtZXJnZSBvZiBELiBTaGVsZCdzIGNoYW5nZXMuCiAgICBjb25maWd1cmUuaW4rTWFrZWZpbGUuaW4gYXV0b21hdGljYWxseSBjcmVhdGUgUEVSU0lTVEVOVF9ESVJFQ1RPUlkuCiAgICBNaW5vciBjb21waWxlIHdhcm5pbmdzLCBvdXQtb2YtZGF0ZSBjb21tZW50cyBmaXhlZCwgY2xhcmlmaWVkIGRlYnVnIG91dG91dCwKICAgIAljbGFyaWZpZWQgcHJlLWNvbXBpbGUgY29kZSBpbiBzY2FwaS5jLgogICAgRGlzY292ZXJlZCB3aGVyZSBwZHUtPnNlY3VyaXR5RW5naW5lSUQgd2FzIGJlaW5nIG11bHRpcGx5IGZyZWUnZCwgYnV0IG5vdAogICAgCXRoZSAqZmlyc3QqIHRpbWUuLi4gKG9wZW4gcHJvYmxlbSkKCmhhcmRha2VyIDE3IEZlYiA5OSAyMDo1OToyOQogICAgLSAoc25tcGQuYyk6IC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjAwOjA3CiAgICAtIChzbm1wX2FnZW50LmMpOgogICAgICAtIGZpeCBnZXRidWxrcy4KICAgICAgLSBmaXggc25tcHNldCdzIHRvIGFsbG93IGNyZWF0aW9uLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjAwOjIyCiAgICAtIChkbG1vZF9taWIuYyk6IGRvbid0IGRlZmluZSBNQVRDSF9TVUNDRUVERUQgYXQgYWxsLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjAwOjM2CiAgICAtICh1dGlsX2Z1bmNzLmMpOiAtV2FsbCB2YXJpYWJsZSByZW1vdmluZy4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMTowMDo1OAogICAgLSAocm91dGVfd3JpdGUuYywgc25tcF9taWIuYywgc3lzdGVtLmMpOgogICAgICAtIC1XYWxsIHZhcmlhYmxlIHJlbW92aW5nLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjAxOjM2CiAgICAtICh1c21Vc2VyLmMsIGV4dGVuc2libGUuYywgcGFzcy5jLCBwcm9jLmMsIHZlcnNpb25pbmZvLmMpOgogICAgICAtIC1XYWxsIHZhcmlhYmxlIHJlbW92aW5nLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjA1OjI4CiAgICAtIChrZXl0b29scy5jLCBtZDUuYywgcmVhZF9jb25maWcuYywgc2NhcGkuaCwgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsCiAgICAgIHNubXBfY2xpZW50LmMsIHNubXB1c20uYywgdHJhbnNmb3JtX29pZHMuaCk6CiAgICAgIC0gLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAxNyBGZWIgOTkgMjE6Mjg6NTcKICAgIC0gKGtleXRvb2xzLmMpOiBvcHBzLiAgRGVsZXRlZCBhIHZhcmlhYmxlIEkgc2hvdWxkbid0IGhhdmUuCgpoYXJkYWtlciAxNyBGZWIgOTkgMjE6MzA6MTEKICAgIC0gKHNubXBfYWdlbnQuYyk6IFlvdSBjYW4ndCBhc3NpZ24gYSBOVUxMIHRvIGEgdW5pb24sIG9ubHkgdG8gYSBzdWItdHlwZS4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMTo0NToyMwogICAgLSAodGVzdGluZy9NYWtlZmlsZS5pbik6IHJlbW92ZSByZWZlcmVuY2VzIHRvIHN1YmRpcnMgc2luY2UgdGhlcmUgYXJlCiAgICAgIG5vbmUgYW5kIGl0IGJyZWFrcyBzaW1wbGllciB2ZXJzaW9ucyBvZiBzaCB3aGVuIG5vIGFyZ3VtZW50cyB0bwogICAgICBmb3JlYWNoIGV4aXN0LgoKbWFyeiAyNCBGZWIgOTkgMDk6MzE6MjkKICAgICAtKHNubXBsaWIvc25tcF9hcGkuW2NoXSxzbm1wbGliL3NubXAuaCxhZ2VudC9zbm1wZC5oLGFnZW50L3NubXBfYWdlbnQuaCk6IG1vdmVkIFJlcG9ydHMgaW50byBzbm1wbGliLCBjb25mb3JtIHRvIHNwZWMgb24gY3JpdGVycmlhIGZvciBzZW5kaW5nIFJlcG9ydHMsIGxheSBncm91bmQgd29yayBmb3IgbWF4TXNnU2l6ZSwgZGVmYXVsdCBjb250ZXh0RW5naW5lSUQgdG8gc2VjdXJpdHlFbmdpbmVJRCB3aGVuIG5vdCBleHBsaWNpdGx5IHNldCBpdHNlbGYKCm1hcnogMjUgRmViIDk5IDE0OjA0OjA1CiAgICAgLShzbm1wX2FwaS5jLHNubXBfY2xpZW50LmMpOiBmaXhlZCBidWcgaW4gc25tcF9jbG9uZV9wZHUgKG5vdCBjbG9uaW5nIHNlY3VyaXR5RW5pZ2luZUlEKSwgdW5jb21tZW50ZWQgX3NubXBfZnJlZQoKd2JhYnNvbiAgOSBNYXIgOTkgMDg6NTQ6MTIKICAgIEZpcnN0IGN1dCBhdCBzbm1wdHJhcGQgbW9kaWZpY2F0aW9uLiBSZWNlaXZlcyBhdXRoUHJpdiBhbmQgbG93ZXIgc2VjdXJpdHkKICAgIGxldmVsIHRyYXBzLgoKd2JhYnNvbiAgOSBNYXIgOTkgMDk6MDI6MDcKICAgIENoYW5nZWQgREVCVUdQKCkgc3RhdGVtZW50IHRvIGdldCBzZWN1cml0eU5hbWUgZnJvbSBQRFUgcmF0aGVyIHRoYW4gc2Vzc2lvbgogICAgYXMgc2Vzc2lvbiB3YXMgbm90IHlldCBpbml0aWFsaXplZCBkdXJpbmcgZW5naW5lIElEIGRpc2NvdmVyeSBhbmQgdGhlIE5VTEwKICAgIHZhbHVlIGNhdXNlZCBhIHNlZ21lbnRhaW9uIGZhdWx0LgoKbWFyeiAxMCBNYXIgOTkgMDg6MDQ6NDcKICAgICAtKHNubXBfYXBpLmMpOiBmaXggZW5naW5lSWQgZGlzY292ZXJ5IHdoZW4gY29udGV4dCBlbmdpbmVJRCBpcyBzcGVjaWZpZWQgKG5lZWRlZCB0byBkaXNjb3ZlciBwcm94eSBlbmdpbmVJRCBpZiBhbGwgeW91IGtub3cgaXMgcHJveGllZCBhZ2VudCdzIGVuZ2luZUlEKQoKd2JhYnNvbiAxNyBNYXIgOTkgMTM6Mjc6NTkKICAgIENoYW5nZWQgREVCVUdQKCkgc3RhdGVtZW50IGFib3V0IEJ1aWxkaW5nIHRoZSBTTk1QIG1lc3NhZ2Ugc28gdGhhdAogICAgZXZlbiBpZiBzZWN1cml0eU5hbWUgaXMgdW5pbml0aWFsaXplZCAoTlVMTCksIHByb2dyYW0gd2lsbCBjb250aW51ZQogICAgd2l0aG91dCBjb3JlIGR1bXBpbmcuIExhdGVyLCBzb21lb25lIHNob3VsZCBzZWUgYWJvdXQgZml4aW5nIHRoZSBsb2dpYwogICAgc28gdGhhdCBzZWN1cml0eU5hbWUgd2lsbCBub3QgYmUgYSBOVUxMIHBvaW50ZXIgaGVyZSwgb3IKICAgIHJlcGFpciB0aGUgZGVidWdnaW5nIHNjaGVtZSwgaWYgdGhhdCdzIHZhbGlkLgoKaGFyZGFrZXIgMjQgTWFyIDk5IDIwOjMwOjEyCiAgICAtIChtaWJpbmNsLmgpOiBhZGQgYWdlbnRfcmVhZF9jb25maWcuaAoKaGFyZGFrZXIgMjQgTWFyIDk5IDIwOjMyOjQ0CiAgICAtICh0ZXN0aW5nL01ha2VmaWxlLmluKTogcmVtb3ZlIHN1YmRpcnMuCgpoYXJkYWtlciAyOCBNYXIgOTkgMTY6MDM6MDQKICAgIC0gKHZhY21fdmFycy5oKTogcmVsb2NhdGUgVkFDTSBub2RlIHdoZXJlIGl0IHNob3VsZCBiZSAoMTMtPjE2KS4KCmhhcmRha2VyIDI4IE1hciA5OSAxNjoxNjozOAogICAgLSAocmVhZF9jb25maWcuYyk6IHNraXAgc3BhY2UgYWZ0ZXIgY29weWluZyBhIHdvcmQgaW4gY29weV93b3JkKCkKCmhhcmRha2VyIDMwIE1hciA5OSAwOTo1MToyMQogICAgLSAodWNkRGVtb1B1YmxpYy5jKTogYWRkZWQgaGVscCBzdHJpbmdzIHRvIGNvbmYgcGFyc2Vycy4KCmhhcmRha2VyICA2IEFwciA5OSAxNToyNzoyOQogICAgLSAoTWFrZWZpbGUuaW4pOiByZW1vdmUgYWNjaWRlbnRpYWxseSBjb21pdHRlZCBjb25mbGljdC4KCmhhcmRha2VyIDE1IEFwciA5OSAwNzoyNTo0OAogICAgLSAoa2V5dG9vbHMuYyk6IEFsbG93IHNob3J0IHBhc3NwaHJhc2VzIHdoZW4gU05NUF9URVNUSU5HX0NPREUgaXMgc2V0LgoKbWFyeiAxOSBBcHIgOTkgMTQ6MTQ6MjMKICAgICAtKHNubXBfYXBpLltjaF0sc25tcF9jbGllbnQuYyk6IGZpeGVkIGJ1ZyB3aGVyZSBtc2dJZCBhbmQgcmVxSWQgd2VyZSBub3QgdHJlYXRlZCBjb3JyZWN0bHkgaW4gcmVzcG9uc2VzIGlmIG9yZ2luYWwgcmVxdWVzdCBoYXBwZW5lZCB0byBoYXZlIG1zZ0lkIG9yIHJlcUlkIGVxdWFsIHRvIGFyYml0cmFyeSBkZWZhdWx0KDApCgptYXJ6IDE5IE1heSA5OSAwNzoxNDo0NAogICAgCiAgICBhZGRpbmcgdjMgcGFja2V0IGdlbmVyYXRvciBwZXJsNSBzY3JpcHQgKHJlcXVpcmVzIENvbnZlcnQ6OkJFUikKICAgIC4KCm1hcnogMTkgTWF5IDk5IDA3OjE2OjQxCiAgICAKICAgIGV4YW1wbGUgZGF0YSBmaWxlIHRvIGdlbmVyYXRlIGEgVjMgcGFja2V0IHdpdGggcGt0Z2VuLnBsCgptYXJ6IDE5IE1heSA5OSAwODowMjoyNAogICAgUkVBRE1FIGZvciBwa3RnZW4ucGwKCm1hcnogMTkgTWF5IDk5IDA4OjQ0OjAzCiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptYXJ6IDE5IE1heSA5OSAwODo0NToxNQogICAgcGt0Z2VuLnBsCgptYXJ6IDE5IE1heSA5OSAxMDozMToxNAogICAgcmVtb3ZlIGxhc3Qgc3VibWl0CgptYXJ6IDIwIE1heSA5OSAxMjozNTowMwogICAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgoKbWFyeiAyMyBNYXkgOTkgMDg6MDQ6MDMKICAgIGhhbmRsZSBzZXFfb2YgdG8gYWxsb3cgYXJiaXRyYXJ5IG51bWJlciBvZiB2YXJiaW5kcywgYnVnIGZpeGVzLCBzZW5kL3JlY2VpdmUsIHByZXR0eSBwcmludCBkZWJ1Z2dpbmcgcGFja2V0IGR1bXAKCmhhcmRha2VyIDI2IE1heSA5OSAxMToxODo0MgogICAgLSAoaXBmd2FjYy5oKTogcHJvcGVybHkgbG9jYXRlIHRoZSBtaWIuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTE6MjA6MDQKICAgIC0gKHZtc3RhdC5jKTogaW5jbHVkZSBsaW1pdHMuaC4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToxNDozMgogICAgLSAoaHJfc3dpbnN0LmMpOiBtYWtlIHNvZnR3YXJlIGFwcGxpY2F0aW9uIHR5cGUgdW5rbm93biBpbnN0ZWFkIG9mIGFwcC4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToxODo0NgogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogY2hhbmdlIHRvIGNvdW50ZXJzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjIwOjExCiAgICAtIChpcGZ3YWNjLmgpOiBtYWtlIGludG8gY291bnRlcnMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MzM6MDUKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGhyX2ZpbGVzeXMuYywgaW50ZXJmYWNlcy5jLCB0Y3AuYywgdWRwLmMpOgogICAgICBQYXRjaCBmcm9tIERlcmVrIEouIEJhbGxpbmc6CiAgICAgIC0gZnJlZWJzZDIgZml4ZXMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6NTI6NTcKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogaW5jcmVhc2UgTUFYUkVBRENPVU5UCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6NTQ6MjIKICAgIC0gKHNubXBfdmFycy5jKTogaW5jbHVkZSBzeXMvcXVldWUuaC4KCm1hcnogIDEgSnVuIDk5IDA3OjI1OjU1CiAgICAocGt0Z2VuLnBsLCBwYWNrZXQudHh0KTogYWRkZWQgYXV0aGVudGljYXRpb24gc3VwcG9ydCAobWQ1IGFuZCBzaGExKQoKZGF2ZXMgIDEgSnVuIDk5IDA4OjM3OjQ3CiAgICAtIChhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jKTogRGV0ZXJtaW5lIHR5cGUgb2YgUlBNIHBhY2thZ2VzCgptYXJ6IDE2IEp1biA5OSAwOTozMDo1NQogICAgKHBrdGdlbi5wbCwgcGFja2V0LnR4dCk6IGFkZGVkIGVuY3J5cHRpb24vcHJpdmFjdCBzdXBwb3J0IChkZXMtY2JjKQoKbWFyeiAxNiBKdW4gOTkgMTI6NTA6MjkKICAgIChwa3RnZW4ucGwsIHBhY2tldC50eHQpOiBsYXRlc3QgYXR0ZW1wdCB0byBmaXggcHJpdmFjeS9lbmNyeXB0aW9uCgptYXJ6IDIzIEp1biA5OSAwODoxODo1OQogICAgKHBrdGdlbi5wbCwgcGFja2V0LnR4dCk6IGxhdGVzdCBhdHRlbXB0IHRvIGZpeCBwcml2YWN5L2VuY3J5cHRpb24od29ya2luZyB3aXRoIENyeXB0OjpERVMvQ3J5cHQ6OkNCQytwYXRjaCkKCmhhcmRha2VyICA2IEFwciA5OSAxNToxMzo0MAogICAgLSAoKik6IE1lcmdlZCB0aGUgNC4wIGxpbmUgaW50byB0aGUgMy42LjEgbGluZS4KCmhhcmRha2VyICA2IEFwciA5OSAxNTozODo0NQogICAgLSAobWliaW5jbC5oLCB1Y2REZW1vUHVibGljLmMsIHZhY21fdmFycy5oLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywKICAgICAgTWFrZWZpbGUuaW4pOiBmaW5hbCBtZXJnZSBwaWVjZXMgb2YgcmVjZW50IHYzIGxpbmUgY2hhbmdlcy4KCm1zbGlmY2FrICA2IEFwciA5OSAyMToyNDoyMgogICAgLSBjaGFuZ2VzIGZvciBBTlNJIGhlYWRlcnM7IFBPU0lYKGluZGV4IHZzIHN0cmNocik7IG1pbm9yIGZpeGVzCgptc2xpZmNhayAgNiBBcHIgOTkgMjI6MTM6NTkKICAgIC0gKHZhY21fdmFycy5jKSAtIHNldCBnbG9iYWwgcHRycyA9IDAuCgptc2xpZmNhayAgNiBBcHIgOTkgMjI6MTQ6NDMKICAgIC0gKHNubXBfdmFycy5jKSBtb3JlIHYycGFydHkgcmV3b3JrIG5lZWRlZAoKbXNsaWZjYWsgIDcgQXByIDk5IDA2OjE3OjI4CiAgICAtICgpIG1vcmUgQU5TSSBoZWFkZXIgZml4dXBzOyB0b3VjaHVwIGZvciBNJCBXaW4zMiBidWlsZAoKaGFyZGFrZXIgIDcgQXByIDk5IDEwOjQyOjEwCiAgICAtIChjb25maWcuaC5pbiwgc25tcF92YXJzLmMsIGVuY29kZV9rZXljaGFuZ2UuYywgc25tcHRyYXBkLmMsCiAgICAgIE1ha2VmaWxlLmluLCBhbGxfZ2VuZXJhbF9sb2NhbC5oLCBrZXl0b29scy5jLCBrZXl0b29scy5oLAogICAgICBsY2RfdGltZS5jLCBtZDUuYywgcmVhZF9jb25maWcuYywgc2NhcGkuYywgc25tcF9hcGkuYywgc25tcHVzbS5jLAogICAgICBzbm1wdjMuYywgdG9vbHMuYywgdG9vbHMuaCk6CiAgICAgIC0gbWlzYyBtZXJnaW5nLCBpbmNsdWRpbmcgZml4ZXMgYW5kIGRlYnVnZ2luZyBzdGF0ZW1lbnQgY2hhbmdlcyB0bwogICAgICAgIG5ld2VyIG1vZGVsLgogICAgICAtIGEgZmV3IC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgIDcgQXByIDk5IDEwOjQ4OjA3CiAgICAtIChzbm1wX21pYi5jKTogcmVtb3ZlZCB1bm5uZWVkZWQgaGVhZGVyX3NubXAoKS4KCmhhcmRha2VyICA3IEFwciA5OSAxMToyODowMgogICAgLSAodWNkRGVtb1B1YmxpYy5jLCBzeXNPUlRhYmxlLmMsIHZhY21fdmFycy5jLCBzbXV4LmMsIHNubXBFbmdpbmUuYywKICAgICAgdXNtVXNlci5jLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKToKICAgICAgLSBkZWJ1Z2dpbmcgc3RhdGVtZW50IGNvbnZlcnNpb24KCm1zbGlmY2FrICA3IEFwciA5OSAxMjowMDoyMAogICAgLSAoYWdlbnQvc25tcDJwLmMgYWdlbnQvc25tcF9hZ2VudC5jIGFnZW50L3NubXBfdmFycy5oCiAgICBhZ2VudC92aWV3X3BhcnNlLmMgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYwogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYwogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYwogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYwogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMgYXBwcy9zbm1wZGVsdGEuYwogICAgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXBkLmMgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYyBzbm1wbGliL2FjbF9wYXJzZS5jCiAgICBzbm1wbGliL2NvbnRleHQuaCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYyBzbm1wbGliL3BhcnR5LmgKICAgIHNubXBsaWIvcGFydHlfcGFyc2UuYyBzbm1wbGliL3JlYWRfY29uZmlnLmMgc25tcGxpYi9zbm1wX2FwaS5jCiAgICBzbm1wbGliL3NubXBfYXV0aC5jIHNubXBsaWIvc25tcF9pbXBsLmggc25tcGxpYi92YWNtLmgKICAgIHNubXBsaWIvdmlldy5oKSAgZmdldHMgdXNlIHNpemVvZiBtb3N0bHksIG9pZCBiYXNlIHNpemUgaXMgTUFYX09JRF9MRU4KCm1zbGlmY2FrICA3IEFwciA5OSAxMjoxNzoyMwogICAgLShpcGZ3Y2hhaW5zLmMpIHJlbW92ZSBtdWx0aXBsZSBkZWZpbml0aW9ucyBvZiBNQVRDSF9GQUlMRUQKCm1zbGlmY2FrICA3IEFwciA5OSAxNTowMDozOQogICAgLSh1c21Vc2VyLmMsc3lzdGVtLmMpIHBsdWcgbWVtIGxlYWs7IChzbm1wX2FwaS5jKSBlbmZvcmNlIGFycmF5IGxpbWl0LgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjE0OjMxCiAgICAtIChtaWJpbmNsLmgpOiBpbmNsdWRlIHN5cy90aW1lLmguCgpoYXJkYWtlciAxMiBBcHIgOTkgMjI6MTU6MzkKICAgIC0gKGhyX3V0aWxzLmgpOiByZW1vdmUgdmFyaWFibGUgbmFtZXMgZnJvbSBwcm90b3R5cGVzICh3YXMgY2F1c2luZyBwcm9ibGVtcykuCgpoYXJkYWtlciAxMiBBcHIgOTkgMjI6MTY6NDUKICAgIC0gKHRrbWliKTogbWFrZSBkaXNwbGF5ZWQgbWliIG5vZGUgaW5mbyBpbnRvIHR3byBjb2x1bW5zIGluc3RlYWQgb2Ygb25lLgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjI1OjA5CiAgICAtIChzbm1wX2FwaS5jKTogbWFrZSBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlIHRvIHBvc3NpYmxlIGNyZWF0ZSBhCiAgICAgIHZhcmxpc3QgYmVmb3JlIGFkZGluZyBzb21ldGhpbmcgdG8gaXQuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6MTk6MjAKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRGFuaWVsIEhhZ2VydHk6CiAgICAgIC0gZml4IGxpYndyYXAgdG8gb25seSBhZGQgdGhlIGxpYnJhcnkgdG8gdGhlIGFnZW50LgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjIwOjAwCiAgICAtIChzeXN0ZW1fbWliLmMpOiBtYWtlIHN5c0Rlc2NyIHJlYWQtb25seS4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTozMjoyMwogICAgLSAocGFzcy5jKTogUGF0Y2ggZnJvbSBKaW0gTWFyOgogICAgICAtIGFkZCBjYXBhYmlsaXR5IGZvciBiaW5hcnkgb2N0ZXQgc3RyaW5ncyBpbiBwYXNzIHNjcmlwdHMuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6MzY6MzEKICAgIC0gKFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIFNOTVAtUFJPWFktTUlCLnR4dCwKICAgICAgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggbW9kdWxlIGxvY2F0aW9ucyBmb3IgYnJva2VuIG1pYnMuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTQ6NDgKICAgIC0gKGZyZWVic2QuaCwgZnJlZWJzZDIuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZnJlZWJzZCB1dG1wIGNsZWFudXBzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU2OjUzCiAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBsb2cgd2l0aCB0aW1lc3RhbXAgYXQgc2h1dGRvd24uCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTc6MjQKICAgIC0gKHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBiZXR0ZXIgY2hlY2tpbmcgb2YgLmNvbmYgZmlsZSBwYXJzaW5nIGxpbmUgcmVxdWlyZW1lbnRzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU4OjAyCiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHN1cHBvcnQgLVAuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTg6MjcKICAgIC0gKHNubXBfY29uZmlnLjUuZGVmLCBzbm1wdHJhcC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20KICAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gY2xlYW4gdXAgc21hbGwgYnVncy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNjowMDo0OQogICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbmljZXIgcGFyc2VyIG1lc3NhZ2VzIChpbmNsdWRlIGZpbGUgbmFtZXMpLiBDb3JyZWN0IGhlbHAgZm9yIC1QYy4KICAgICAgLSBBZGQgRlJBTUUtUkVMQVktRFRFLU1JQiBhcyByZXBsYWNlbWVudCBmb3IgUkZDLTEzMTUKCmhhcmRha2VyIDEzIEFwciA5OSAxNjowMzoyOQogICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNubXB0cmFwZCBvcHRpb24gdG8gaWdub3JlIGF1dGggdHJhcHMsIGFkZCAtUyBvcHRpb24sIGxvZyB0ZXJtaW5hdGlvbi4KCm1zbGlmY2FrIDE0IEFwciA5OSAxNToyOTo1OAogICAgLSAoc25tcHRyYW5zbGF0ZS5jKSBpbml0X3NubXAgdGFrZXMgYXJndW1lbnQ7ICIiIHVzZWQuCgptc2xpZmNhayAxNCBBcHIgOTkgMTU6MzA6MzQKICAgIC0gKHBhcnNlLmMpIEZpbGUgcG9pbnRlciBpbml0aWFsaXplZCB0byAiIiBiZWZvcmUgZmlyc3QgdXNlLgoKaGFyZGFrZXIgMTQgQXByIDk5IDE1OjUyOjM1CiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBpbml0X3NubXAoInNubXBhcHAiKS4KCm1zbGlmY2FrIDE0IEFwciA5OSAxNjozMTo1NQogICAgLSAoc25tcF9hZ2VudCxjLCBzbm1wX2FwaS5bY2hdLCBzbm1wX2NsaWVudC5bY2hdKSBmaXggdmFyaWFibGVfbGlzdCB3aXRoIGJ1aWx0LWluIHN0b3JhZ2UKCm1zbGlmY2FrIDE0IEFwciA5OSAxNjo1NjozNwogICAgLSBhcHBzIHRoYXQgdXNlIHNubXBfZml4X3BkdSBtdXN0IGNsZWFuIHVwIHRoZSByZXNwb25zZSBQRFUgIQoKbXNsaWZjYWsgMTYgQXByIDk5IDA3OjMwOjI5CiAgICAtIChJUEZXQUNDLU1JQi50eHQpIGNoYW5nZSBtb2R1bGUgbmFtZSBmcm9tIElQRldBRE0tTUlCIHRvIElQRldBQ0MtTUlCLgoKbXNsaWZjYWsgMTYgQXByIDk5IDA3OjU0OjIyCiAgICAtIChJUEZXQ0hBSU5TLU1JQi50eHQpIGlwZndDaGFpblRhYmxlIHtpcGZ3IDF9IGZpeAoKbXNsaWZjYWsgMTYgQXByIDk5IDA4OjMzOjE2CiAgICAtIChtaWIuYykgIi1tIiBvciBNSUJTIDogY2FuIHNwZWNpZnkgTUlCIG1vZHVsZSBieSBmaWxlIG5hbWUuCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTA6MDYKICAgIC0gKFJFQURNRSk6IEFkZGVkIHYzIHRlYW0gbWVtYmVycy4KCmhhcmRha2VyIDE2IEFwciA5OSAyMToxMTo0OAogICAgLSAoY29uZmlndXJlLmluKTogY2hhbmdlZCBkZWZhdWx0IHN0b3JlIGxvY2F0aW9uIHRvIC92YXIvdWNkLXNubXAKCmhhcmRha2VyIDE2IEFwciA5OSAyMToxNToxNAogICAgLSAoc25tcC5oKTogU05NUEFETUlOTEVOR1RIIGRlZmluaXRpb24uCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTY6MTYKICAgIC0gKHNubXBfYXV0aC5jKTogcmVtb3ZlZCBmaXggbm90ZS4KCmhhcmRha2VyIDE2IEFwciA5OSAyMToyNzowNgogICAgLSAoTkVXUyk6IHVwZGF0ZWQKCmhhcmRha2VyIDE2IEFwciA5OSAyMToyNzo0MQogICAgLSAoc25tcHRyYXBkLjgpOiBtYW4gcGF0Y2ggZnJvbSBOaWVscwoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjM0OjQ5CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmUzICkKCm1zbGlmY2FrIDE4IEFwciA5OSAwNjo1NDoyNgogICAgLSAoaXBmd2FjYy5oKSBzdWJkaXIgY2hhbmdlIHBlciBKb2UgUHJ1ZXR0dCA6IDkgLT4gMTAKCmhhcmRha2VyIDE5IEFwciA5OSAyMTowMToxNQogICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOgogICAgICAtIHJld3JvdGUgbWliMmMgdG8gYmUgbW9yZSBkZXBlbmRlbnQgb24gLmNvbmYgZmlsZXMuICBUaGUgbWFpbiAuY29uZgogICAgICAgIGZpbGUgbm93IGNvbnRhaW5zIHRoZSBjb2RlIGl0c2VsZi4KICAgICAgLSBuZWVkIHRvIHdyaXRlIGEgZm9yZWFjaChtaWJub2RlKSB0eXBlIHBhcnNlciBuZXh0LgoKaGFyZGFrZXIgMTkgQXByIDk5IDIxOjA5OjI3CiAgICAtIChtaWJpbmNsLmgpOiBhZGQgcmVhZF9jb25maWcuaC4KCmhhcmRha2VyIDE5IEFwciA5OSAyMToxMjoxNwogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgIC0gY3JlYXRlZCBhIG1vcmUgY29udmVuaWVudCByZWFkX2NvbmZpZ19yZWFkX2RhdGEoKSBmdW5jdGlvbiB0bwogICAgICAgIGdlbmVyaWNhbGx5IHJlYWQgYSB0b2tlbiBpbnRvIGEgZ2l2ZW4gdmFyaWFibGUuCiAgICAgIC0gY2xlYW5lZCB1cCBwZXJzaXN0ZW50IHN0b3JhZ2UgcGFyc2luZyByb3V0aW5lcy4KICAgICAgLSB1c2UgcHJldmlvdXNseSBtYWxsb2NlZCBzcGFjZSBpbiBzb21lIHJvdXRpbmVzLCBvciBtYWxsb2MgaXQgZm9yCiAgICAgICAgdGhlbSBpZiB0aGUgc3RvcmFnZSBhcmVhIGlzIE5VTEwuCgpoYXJkYWtlciAxOSBBcHIgOTkgMjE6MTQ6MjgKICAgIC0gKHNubXBfYXBpLmMpOiBEb24ndCBzbm1wX3NldF92YXJfb2JqaWQgaWYgbmFtZSBpcyBOVUxMIGluCiAgICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoKS4KCmhhcmRha2VyIDIwIEFwciA5OSAxMToyODoxNAogICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOiBtb3JlIHVwZGF0ZXMuCgpoYXJkYWtlciAyMCBBcHIgOTkgMTU6MzE6MzUKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKToKICAgICAgLSBjb21wbGV0ZWx5IHJlLWhhY2tlZDoKICAgICAgICAtIGVudGlyZSBjb2RlIGJhc2UgaXMgbm93IHB1dCBpbnRvIHRoZSAuY29uZiBmaWxlcyByYXRoZXIgdGhhbiBpbgogICAgICAgICAgdGhlIG1pYjJjIHByb2dyYW0uICBUaGlzIHNob3VsZCBlbnRpdGxlIG1pYjJjIHRvIGJlIHVzZWQgbW9yZQogICAgICAgICAgZ2VuZXJpY2FsbHksIGFuZCBjb3VsZCBwcm9kdWNlIGRpZmZlcmVudCB0eXBlcyBvZiBjb2RlIHRlbXBsYXRlcwogICAgICAgICAgYmFzZWQgb24gdGhlIC5jb25mIGZpbGUgaXQgaXMgZ2l2ZW4uICBJbiB0aGVvcnksIGl0IHNob3VsZCBiZQogICAgICAgICAgYWJsZSB0byBwcm9kdWNlIEMgY29kZSBmb3IgYSBub24tdWNkLXNubXAgYWdlbnQsIG9yIGV2ZW4gYmV0dGVyLAogICAgICAgICAgYW55IHR5cGUgb2YgY29kZSAobm90IGp1c3QgQykgZm9yIHNvbWV0aGluZyBlbHNlIGJhc2VkIG9uIG1pYgogICAgICAgICAgaW5mb3JtYXRpb24uCiAgICAgICAgLSBUaGUgZG93biBzaWRlLCBpcyB0aGF0IHRoZSBjdXJyZW50IC5jb25mIGZpbGVzIGFyZSBub3cgYW1iaWd1b3VzCiAgICAgICAgICBhZ2FpbiBhbmQgZGlmZmljdWx0IHRvIHVuZGVyc3RhbmQgd2l0aG91dCBiZWluZywgd2VsbCwgbWUuICBUaGUKICAgICAgICAgIHVwIHNpZGUgaXMgdGhhdCBJJ20gc3VyZSBEYXZlIFNoaWVsZCB3aWxsIGdvIHRocm91Z2ggYW5kIGNsZWFuCiAgICAgICAgICBpdCB1cCBmb3IgbWUgbGlrZSBoZSBkaWQgbGFzdCB0aW1lLiAgSGEgaGEuICBJIHdvbmRlciBpZiBoZSdsbAogICAgICAgICAgcmVhZCB0aGlzPyAoSWYgc28sIHNlZSBtZSBmaXJzdCkuCgpoYXJkYWtlciAyMCBBcHIgOTkgMTY6MDQ6MTcKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogdmFyaWFibGUgbmFtZSBjb252ZXJzaW9uczoKICAgICAgLSB2YXJpYWJsZVR5cGVzIC0+IHZhcmlhYmxlcwogICAgICAtIGNuYW1lIC0+IE5BTUUKCmhhcmRha2VyIDIwIEFwciA5OSAxNjoxMDo0NAogICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiBhIGxpdHRsZSBtb3JlIGNsZWFuIHVwLgoKaGFyZGFrZXIgMjAgQXByIDk5IDIxOjM4OjQyCiAgICAtIChtaWIyYy5jb25mKTogY2xlYW4gdXAgc2tpcGlmIHJlZ2V4cHMgYSBiaXQuCgpoYXJkYWtlciAyMiBBcHIgOTkgMDc6NTQ6NDQKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiBjcmVhdGVkICpyZWFkX2NvbmZpZ19zdG9yZV9kYXRhKCk7CgpoYXJkYWtlciAyMiBBcHIgOTkgMDc6NTY6MDMKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogYWxsb3cgTm9BY2Nlc3MgdG8gYmUgcHJvY2Vzc2VkLCBhbmQgdXNlIHNraXBpZjoKICAgICAgZGlyZWN0aXZlcyB3aGVyZSBuZWVkZWQgYmVjYXVzZSBvZiBpdC4KCmhhcmRha2VyIDIyIEFwciA5OSAxMDo1MTozMAogICAgLSAoc25tcF9jbGllbnQuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwga2V5dG9vbHMuYyk6IEFub3RoZXIgdjMgYnJhbmNoIHVwZGF0ZS4KCm1zbGlmY2FrIDI2IEFwciA5OSAwOToyMTowNgogICAgLSAoc25tcGxpYi5jKSAtIHVzZSByZXF1ZXN0IGNhbGxiYWNrJ3MgZGF0YSBpZiByZXF1ZXN0IHNwZWNpZmllcyBhIGNhbGxiYWNrLgoKbmJhIDI2IEFwciA5OSAxMToyMToxMAogICAgCiAgICAocGFyc2UuaCkgU2lsbHkgc3BlbGluZyBtaXN0ZWFrIChBQ0NFU1NfQ1JBRVRFKQoKbmJhIDI2IEFwciA5OSAxMTo0ODo1NwogICAgCiAgICAKICAgIC0gc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmM6IG5ldyBtaWIgcHJpbnRlcjogbWliX3ByaW50X3RyZWUKICAgICAgaW5zcGlyZWQgYnkgYSByZWZlcmVuY2UgdG8gc25teCBpbiBjb21wLnByb3RvY29scy5zbm1wCiAgICAtIGFwcHMvc25tcHRyYW5zbGF0ZTogbGV0IHRoZSAtcCBvcHRpb24gY2FsbCB0aGlzIG5ldyBwcmludGVyCiAgICAtIHNubXBsaWIvc25tcF9hcGkuYzogc29tZSBsZWZ0IG92ZXIgX19QIG1hY3JvcwoKbmJhIDI2IEFwciA5OSAxMjowMzo0NwogICAgCiAgICAoaWYuYykgbWFrZSB0aGUgd2lkdGggb2Ygc25tcG5ldCAtaSAoYW5kIC1vKSBhZGFwdCB0byB0aGUgbGVuZ3RoIG9mIHJldHVybmVkCiAgICAJc3RyaW5ncwoKbmJhIDI2IEFwciA5OSAxMjowOTozNQogICAgCiAgICAKICAgIGFwcHMvKi5jOiB1c2Ugc25tcF9wZXJyb3IgdG8gcmVwb3J0IGVycm9ycyBmcm9tIHJlYWRfb2JqaWQgYW5kIGZyaWVuZHMKICAgIGFwcHMvc25tcHRyYXBkLmM6IGZpeCBhIGJ1cyBlcnJvciB3aGVuIHVzaW5nIC1TIGFuZCByZWNlaXZpbmcgYW4KICAgIAllbnRlcnByaXNlIHNwZWNpZmljIHRyYXAuCgpuYmEgMjYgQXByIDk5IDEyOjEzOjUwCiAgICAKICAgICovKjogcmVwbGFjZSBob3JyaWJsZSAoY2hhciAqKSJzdHJpbmciIHdpdGggY29uc3Qgc3BlY2lmaWVycyBpbiByZWxldmFudAogICAgCWZ1bmN0aW9ucy4KCm1zbGlmY2FrIDI2IEFwciA5OSAxMjozNzowOQogICAgLSAoc25tcF9hcGkuYykgLSBmaXggb3RoZXIgdXNlIG9mIHJlcXVlc3QncyBjYWxsYmFjayBkYXRhCgptc2xpZmNhayAyNyBBcHIgOTkgMDk6NTE6MzUKICAgIC0gKGludGVyZmFjZXMuYykgYWRkIGlmX3R5cGVfZnJvbV9uYW1lIHRvIGNvbnZlcnQgaW50ZXJmYWNlIG5hbWUgdG8gdHlwZS4KCmhhcmRha2VyIDI5IEFwciA5OSAwNzozMjozOQogICAgLSAoTWFrZWZpbGUuaW4sIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgpOiBjYWxsYmFjayBBUEkuCgpoYXJkYWtlciAyOSBBcHIgOTkgMDc6Mzk6NDUKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmMsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLCBzbm1wdXNtLmMsCiAgICAgIHNubXB1c20uaCwgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSB1c2UgdGhlIGNhbGxiYWNrIG1lY2hhbmlzbSBmb3IgcG9zdC1jb25maWcgc3R1ZmYuCgpoYXJkYWtlciAgMyBNYXkgOTkgMDc6MDc6MTUKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHVzbVVzZXIuYywgdXNtVXNlci5oLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgICAgIHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCBzbm1wdHJhcGQuYywgY2FsbGJhY2suYywgY2FsbGJhY2suaCwKICAgICAgc2NhcGkuYywgc2NhcGkuaCwgc25tcF9hcGkuYywgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBzaHV0ZG93biBhbmQgc3RvcmUgY2FsbGJhY2sgdXNhZ2UuCgpoYXJkYWtlciAgMyBNYXkgOTkgMDc6MTM6MzEKICAgIC0gKHNubXBkLmMpOiBmaXggLUEgZmxhZywgd2hpY2ggZ290IGJyb2tlbiBkdXJpbmcgc29tZW9uZXMgY2hhbmdlcy4KCmhhcmRha2VyICAzIE1heSA5OSAxMjo1ODoxOQogICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsIE1ha2VmaWxlLmluLCBoZWFkZXJfY29tcGxleC5jLAogICAgICBNYWtlZmlsZS5pbiwgZW5jb2RlX2tleWNoYW5nZS5jLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgIGFsbF9nZW5lcmFsX2xvY2FsLmgsIGFsbF9zeXN0ZW0uaCwga2V5dG9vbHMuYywgbGNkX3RpbWUuYywgc2NhcGkuYywKICAgICAgc25tcF9hdXRoLmMsIHNubXB1c20uYywgdG9vbHMuYywgdG9vbHMuaCwgTWFrZWZpbGUuaW4sIFQuYywKICAgICAgZXRpbWV0ZXN0LmMsIGtleW1hbmFnZXRlc3QuYywgbWlzY3Rlc3QuYywgc2NhcGl0ZXN0LmMpOgogICAgICAtIG51a2VkIGFsbF9nZW5lcmFsX2xvY2FsLmggYW5kIGFsbF9zeXN0ZW0uaC4KICAgICAgLSBtYWtlZmlsZWluZGVwZW5kIGFzIHdlbGwuCgpuYmEgIDMgTWF5IDk5IDE1OjQwOjExCiAgICAoKi5bY2hdKToJcGF0Y2hlcyB0byB0eXBlcyB0byB3aXBlIHdhcm5pbmdzIGZyb20gY29tcGlsZXJzCiAgICAJd2l0aCBtb3JlIHN0cmljdCBub2lzZSBsZXZlbHMuIChhbHNvIGdvb2Qgd2hlbiBjb21waWxpbmcKICAgIAl3aXRoIGdjYyAtV2FsbCAtcGVkYW50aWMgLVd3cml0ZS1zdHJpbmdzIC1XY2FzdC1xdWFsKQoKbmJhICA0IE1heSA5OSAwMDo0Nzo0NAogICAgKG1pYi5jKToJRml4IHByb2JsZW0gKGNvcmUgZHVtcCkgd2l0aCBNSUJGSUxFUyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCm5iYSAgNCBNYXkgOTkgMDA6NTE6MTYKICAgIChtYW55KToJcmVtb3ZlIGNvbnN0IHNwZWMgZnJvbSBGaW5kVmFyTWV0aG9kLiBUaGF0IHdhcyB3cm9uZwoKaGFyZGFrZXIgIDQgTWF5IDk5IDExOjA4OjU1CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IEFkZGVkIC0tZW5hYmxlLWRldmVsb3BlciBmbGFnLgoKbXNsaWZjYWsgIDYgTWF5IDk5IDA5OjIwOjMwCiAgICAtICh1Y2Qtc25tcC92bXN0YXQuYykgLSBjb25kaXRpb25hbGx5IGluY2x1ZGUgbGltaXRzLmggcGVyIEVkdWFyZCBLb3Vja3kuCgpuYmEgMTAgTWF5IDk5IDE0OjQ3OjIyCiAgICBGaXhpbmcgc29tZSBtb3JlIHByb3RvdHlwZXMuIFBvaW50ZWQgb3V0IGJ5IE1hcmtrdSBMYXVra2FuZW4uCgpuYmEgMTAgTWF5IDk5IDE0OjQ5OjQ5CiAgICBzbm1wbGliL3NubXBfYXBpLmM6IE1peC11cCBvZiBWMV9JTl9WMi9WMl9JTl9WMSBlcnJvciBjb2RlIHdoZW4gR0VUQlVMSwogICAgCWluc2lkZSBWMSBzZXNzaW9uLgoKaGFyZGFrZXIgMTEgTWF5IDk5IDE0OjAyOjQ4CiAgICAtICh1dGlsX2Z1bmNzLmMpOiByZWFkIHJldHVybnMgc3NpemVfdCBub3Qgc2l6ZV90LgoKaGFyZGFrZXIgMTEgTWF5IDk5IDE0OjAzOjI1CiAgICAtIChtZW1vcnkuaCk6IHJlbW92ZSBleHRlcm4uCgpoYXJkYWtlciAxMSBNYXkgOTkgMTQ6MTE6NDAKICAgIC0gKGhwdXguYywgaHB1eC5oKTogaW50IC0+IHNpemVfdCBjb252ZXJzaW9ucy4KCm1zbGlmY2FrIDEyIE1heSA5OSAxMDo1MzoyMwogICAgLSAoc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKSBjYWxsIHNubXBfc3luY2hfcmVzZXQgZnJvbSBzbm1wX3Nlc3NfY2xvc2UKCm1zbGlmY2FrIDEyIE1heSA5OSAxMToyMjoxNgogICAgLShwYXJzZS5jIHBhcnR5X3BhcnNlLmMgcmVhZF9jb25maWcuYykgbm8gZXhpdCgpIGZyb20gbGlicmFyeTsgcmV0dXJuIGVycm9yCgpkYXZlcyAxMyBNYXkgOTkgMDM6NTI6MTkKICAgIC0gKGlwLmMpOiBQcm9wZXJseSByZWdpc3RlciBJUCBtb2R1bGUgZ3JvdXAgb24gRnJlZS1CU0Qgc3lzdGVtcwogICAgICAgICAgICAgICh0aGFua3MgdG8gTWl0Y2hlbGwgVGFzbWFuKQoKaGFyZGFrZXIgMTMgTWF5IDk5IDA5OjA5OjE4CiAgICAtICh2YWNtX3ZhcnMuYyk6IFNldCBwb2ludGVycyB0byBOVUxMIGFmdGVyIGZyZWVpbmcgdGhlbS4KCm1zbGlmY2FrIDE0IE1heSA5OSAwNjo1NDo1MQogICAgLSAoYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYyBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMKICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgKICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYyBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwogICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jIHNubXBsaWIvc25tcF9hdXRoLmMpIG1vcmUgc2l6ZV90IGZpeGVzCgptc2xpZmNhayAxNCBNYXkgOTkgMDk6NDc6MTAKICAgIC0gKGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiAgICAgc25tcGxpYi9wYXJzZS5jKSBtb3JlIEFOU0ktQyB0b3VjaHVwcwoKbXNsaWZjYWsgMTQgTWF5IDk5IDEzOjU5OjM3CiAgICAtKGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyBzbm1wbGliL3NubXB1c20uYykgZml4ZXMgdG8gYnVpbGQgSFAgJiBBSVgKCmRhdmVzIDE3IE1heSA5OSAwMzoyMDo1MwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBJbml0aWFsaXNlIHNlc3Npb24gdXNpbmcgbGlicmFyeSByb3V0aW5lCgpkYXZlcyAxNyBNYXkgOTkgMDQ6MzQ6NTUKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgICBhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jCiAgICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHRyYXBkLmMpOgogICAgCiAgICAgIC0gVXNlIHRoZSBnZW5lcmljIHNvY2tldCBhZGRyZXNzZXMgJ3N0cnVjdCBzb2NrYWRkcicsCiAgICAgICAgcmF0aGVyIHRoYW4gdGhlIElQLXNwZWNpZmljICdzdHJ1Y3Qgc29ja2FkZHJfaW4nCgpkYXZlcyAxNyBNYXkgOTkgMDQ6Mzg6MDAKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgICBhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jCiAgICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHRyYXBkLmMpOgogICAgCiAgICAgIC0gVXNlIHRoZSBnZW5lcmljIHNvY2tldCBhZGRyZXNzICdzdHJ1Y3Qgc29ja2FkZHInLAogICAgICAgIHJhdGhlciB0aGFuIHRoZSBJUC1zcGVjaWZpYyAnc3RydWN0IHNvY2thZGRyX2luJwoKZGF2ZXMgMTcgTWF5IDk5IDA3OjE4OjAyCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2FwaS5oIGFnZW50L3NubXBkLmMKICAgICAgIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgIAogICAgICAtIFVzZSBhIHNpbmdsZSBhZGRyZXNzIGZpZWxkIHdpdGhpbiB0aGUgUERVIHN0cnVjdHVyZQogICAgICAgICAgICAgICAgICAgKG9ic29sZXRpbmcgJ2FnZW50X2FkZHInKQoKZGF2ZXMgMTggTWF5IDk5IDA2OjI2OjE2CiAgICAtIChzbm1wX2FwaS5jIHNubXBfYXBpLmgpOiBNb3JlIGdlbmVyYWwgaGFuZGxpbmcgb2YgUERVIGZsYWdzCgptc2xpZmNhayAxOCBNYXkgOTkgMDk6MDE6NDYKICAgIC0gKHh4L01ha2VmaWxlLmluKSByZW1vdmUgcmVmZXJlbmNlcyB0byBhcyB5ZXQgbWlzc2luZyBkaXNtYW4gZmlsZXMuCgpkYXZlcyAxOCBNYXkgOTkgMDk6MjM6NTAKICAgIC0gKGNvbmZpZ3VyZS5pbiBzbm1wbGliL2NvbnRleHRfcGFyc2UuYyBzbm1wbGliL3JlYWRfY29uZmlnLmMKICAgICAgIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXB2My5jIHNubXBsaWIvc3lzdGVtLmMKICAgICAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMgYXBwcy9zbm1wYnVsa3dhbGsuYyBhcHBzL3NubXBkZWx0YS5jCiAgICAgICBhcHBzL3NubXBnZXQuYyBhcHBzL3NubXBnZXRuZXh0LmMgYXBwcy9zbm1wc2V0LmMKICAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRhYmxlLmMgYXBwcy9zbm1wdGVzdC5jCiAgICAgICBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdXNtLmMgYXBwcy9zbm1wd2Fsay5jCiAgICAgICBhcHBzL3NubXBuZXRzdGF0L2lmLmMgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYwogICAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMpOgogICAgICAgLSAgQ2xlYW4gdXAgY29uZGl0aW9uYWxzIHByb3RlY3RpbmcgaW5jbHVkZSBmaWxlcwogICAgICAgICAgICAoICNpZiBIQVZFX1dJTlNPQ0tfSCAvICNlbHNlIC8gI2VuZGlmICkKCmRhdmVzIDE5IE1heSA5OSAwMjozMzowNwogICAgLSAoY29uZmlnLmguaW4pOiBBZGRpdGlvbmFsIGluY2x1ZGUgcHJvdGVjdGlvbiBlbnRyaWVzCgpkYXZlcyAxOSBNYXkgOTkgMDU6MTE6MzcKICAgIC0gKHNubXBfYXBpLmMpOiBNb3JlIGdlbmVyYWxpc2VkIGhhbmRsaW5nIG9mIHNvY2tldCBhZGRyZXNzZXMKCm1zbGlmY2FrIDE5IE1heSA5OSAxODowMjo1NQogICAgLShtaWJJSS92YXJfcm91dGUuYykgLSBmaXggTGludXggUm91dGVNYXNrIGMvbyAiTmFuY3kiIG5hbUBjcy5jbXUuZWR1Cgptc2xpZmNhayAxOSBNYXkgOTkgMTg6NTA6MTIKICAgIC0gKGhvc3RfcmVzLmgpIGZpeCBIQVZFX05FVF9JRl9WQVJfSCBkZWZpbmUgKHdhcyBIQVZFX05FVF9JTl9WQVJfSCkKCmRhdmVzIDIwIE1heSA5OSAwMzo0NjoyNAogICAgLSAoc25tcF9hcGkuaCk6IFRlbXBvcmFyeSBmaXggdG8gc29ja2V0IGFkZHJlc3MgcHJvYmxlbXMKCm1zbGlmY2FrIDIxIE1heSA5OSAwNToyNDoyMwogICAgLShyZWFkX2NvbmZpZy5jKSBjYXN0IGZpeCBwZXIgTWFya2t1IExhdWtrYW5lbgoKZGF2ZXMgMjEgTWF5IDk5IDA1OjU0OjIyCiAgICAtIChzbm1wX2FwaS5jIHNubXBfYXBpLmgpOgogICAgICAtICBOZXcgQVBJIGNhbGwgdG8gY2xvc2UgZG93biBhbGwgb3BlbiBzZXNzaW9ucwogICAgICAgICAoYWxzbyBjYWxsZWQgb24gYXBwbGljYXRpb24gc2h1dGRvd24pCgpoYXJkYWtlciAyMSBNYXkgOTkgMTE6MTA6NDQKICAgIC0gKG1pYjJjLmNvbmYsIG1pYjJjLnN0b3JhZ2UuY29uZik6CiAgICAgIC0gY29udmVydCB0byBzaXplX3Qgc3RvcmFnZXMuCiAgICAgIC0gbWlzYyBldmFsIGZpeGVzLgogICAgICAtIG1vcmUgY2xlYW51cCBvZiB0aGUgc3RvcmFnZSBkZWYuCgptc2xpZmNhayAyMSBNYXkgOTkgMTU6Mjk6NDYKICAgIC0gbGlicmFyeSBjaGFuZ2VzIHRvIGJ1aWxkIG9uIFdpbjMyLgoKbXNsaWZjYWsgMjQgTWF5IDk5IDA1OjM2OjEzCiAgICAtY29uZmlndXJlIC0gc2F2ZSBvbmUgd2hpY2ggbG9va3MgZm9yIG5ldGRiL3NvY2tldCBoZWFkZXJzCgpoYXJkYWtlciAyNiBNYXkgOTkgMTE6MTk6MDMKICAgIC0gKGlwZndhY2MuaCk6IHByb3Blcmx5IGxvY2F0ZSB0aGUgbWliLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjE0OjU1CiAgICAtIChocl9zd2luc3QuYyk6IG1ha2Ugc29mdHdhcmUgYXBwbGljYXRpb24gdHlwZSB1bmtub3duIGluc3RlYWQgb2YgYXBwLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjE4OjA0CiAgICAtIChJUEZXQUNDLU1JQi50eHQpOiBjaGFuZ2UgdG8gY291bnRlcnMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MjA6MzIKICAgIC0gKGlwZndhY2MuaCk6IG1ha2UgaW50byBjb3VudGVycy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNTo1NjowMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBpbmNyZWFzZSBNQVhSRUFEQ09VTlQuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTc6NDA6MjgKICAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IGFkZGVkIFNFUVVFTkNFIE9GLgoKbXNsaWZjYWsgMjcgTWF5IDk5IDA1OjE2OjI1CiAgICAtKGVuY29kZV9rZXljaGFuZ2UsIHJlYWRfY29uZmlnLCBzbm1wdXNtKSBhQ0MgZml4ZXMgYnkgUEtZIChNYXJra3UgTGF1a2thbmVuKQoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjMwOjAzCiAgICAtIChzbm1wdHJhcGRfaGFuZGxlcnMuYyk6IGltcGxlbWVudCB0aGUgZGVmYXVsdCB0cmFwIGhhbmRsZXIuCgpoYXJkYWtlciAyNyBNYXkgOTkgMTQ6MzA6MTUKICAgIC0gKHNubXB0cmFwZC5jKTogbmVlZCBhbiBpbml0X21pYigpLgoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjM3OjA2CiAgICAtIChzbm1wdHJhcGQuY29uZi41LmRlZik6IGRvY3VtZW50IGRlZmF1bHQgb2lkIGtleXdvcmQuCgpoYXJkYWtlciAyNyBNYXkgOTkgMTQ6Mzc6MzIKICAgIC0gKHNubXB0cmFwZC5jKTogZG9jdW1lbnQgZGVmYXVsdCBvaWQga2V5d29yZCBpbiBoZWxwIGxpbmUuCgpkYXZlcyAyOCBNYXkgOTkgMDc6MDI6MDEKICAgIC0gKGFnZW50L01ha2VmaWxlLmluIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluKTogZml4IHByb2JsZW0gd2l0aCBudWxsIG1hY3JvCgpkYXZlcyAyOCBNYXkgOTkgMDg6MTQ6MDUKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHNhdmUgbG9jYWwgc29ja2V0IGFkZHJlc3MgaW4gaW50ZXJuYWwgc2Vzc2lvbiBzdHJ1Y3R1cmUKCmRhdmVzIDI4IE1heSA5OSAwODo1NzoxOQogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogVW5peCBkb21haW4gKGRhdGFncmFtKSBzb2NrZXQgc3VwcG9ydAoKZGF2ZXMgMjggTWF5IDk5IDA5OjEyOjIwCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBTZXBhcmF0ZSBvdXQgY29weWluZyBhIHNlc3Npb24gYW5kIG9wZW5pbmcgYSBuZXcgb25lCgptc2xpZmNhayAyOCBNYXkgOTkgMDk6MjQ6NTYKICAgIC0oc25tcF9hcGkuYykgLWNhdGNoIG9uZSBtb3JlIGVycm9yIGNsb3NlIGZyb20gc25tcF9zZXNzX2NvcHkKCmhhcmRha2VyIDI4IE1heSA5OSAxNjoxNzoxMwogICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBzYXZlIGFuZCB1c2UgaW5kZXggY2xhdXNlcy4KCmhhcmRha2VyIDI4IE1heSA5OSAxNjo0NDo0MgogICAgLSAoTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oKToKICAgICAgLSBjcmVhdGVkIGdlbmVyaWMgZGVmYXVsdCB2YWx1ZSBzdG9yYWdlIHNwYWNlIGFuZCBwYXJzZXJzIHRvIHJlZHVjZQogICAgICAgIHRoZSBudW1iZXIgb2YgZnVuY3Rpb25zL2V0YyBjcmVhdGVkIGZvciB2YWx1ZXMgd2hpY2ggY29uZmlndXJlIHRoZQogICAgICAgIGxpYnJhcnkuCgpkYXZlcyAgMSBKdW4gOTkgMDI6MTc6MjcKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEdhcmJhZ2UgY29sbGVjdGlvbiBmb3IgVHJhZGl0aW9uYWwgU0FQSSBzZXNzaW9ucwoKZGF2ZXMgIDEgSnVuIDk5IDAyOjMyOjEzCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBHZW5lcmFsaXNlIGhhbmRsaW5nIG9mIGFkZHJlc3NlcyAody5yLnQgc2VudG8vcmVjdmZyb20pCgpkYXZlcyAgMSBKdW4gOTkgMDc6MzA6NDIKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfYXBpLmgpOiBTdXBwb3J0IGZvciBzdHJlYW0tYmFzZWQgc29ja2V0cwoKaGFyZGFrZXIgIDEgSnVuIDk5IDE3OjIxOjUzCiAgICAtIChNYWtlZmlsZS5pbiwgc25tcF9hbGFybS5jLCBzbm1wX2FsYXJtLmgsIHNubXBfYXBpLmMpOgogICAgICAtIGltcGxlbWVudGVkIGEgZ2VuZXJpYyBhbGFybSBoYW5kbGVyIHRvIHJlZ2lzdGVyIGFsYXJtIGZ1bmN0aW9ucyB0bwogICAgICAgIGJlIGNhbGxlZCBiYWNrIGFmdGVyIFggcGVyaW9kIG9mIHRpbWUgYW5kIGl0IGhhbmRsZXMgZmlndXJpbmcgb3V0CiAgICAgICAgd2hpY2ggaXMgbmV4dCBhbmQgY2FsbGluZyBhbGFybSgpIGFuZCBzaWduYWwoKSBhcHByb3ByaWF0ZWx5LgoKbXNsaWZjYWsgIDQgSnVuIDk5IDA5OjUxOjEzCiAgICAtKGhyX2ZpbGVzeXMuYyxpbnRlcmZhY2VzLmMsdGNwLmMsdWRwLmMsZnJlZWJzZDMuaCkgZml4IEZyZWVCU0QzLjEgaW5jbCBLZW4gS2V5J3MgdGNwL3VkcCBwYXRjaGVzCgptc2xpZmNhayAgNyBKdW4gOTkgMDc6NDQ6MDYKICAgIC0oaW50ZXJmYWNlcy5jLCB0Y3AuYywgdWRwLmMsIGlwLmMpIGNsb25lIGZpeGVzIGZyb20gMy42IGxpbmUgKEZyZWVCU0QzLjEpCgptc2xpZmNhayAgNyBKdW4gOTkgMTM6MDQ6MjEKICAgIC0oaWYuYykgY2hlY2sgZm9yIHZhbGlkIHBvaW50ZXIgYmVmb3JlIGRlLXJlZmVyZW5jaW5nLgoKbXNsaWZjYWsgIDggSnVuIDk5IDA3OjQzOjEwCiAgICAtKGhyX2ZpbGVzeXMuYykgZml4IG1lbW9yeSBsZWFrIHdoZW4gSEFWRV9HRVRGU1NUQVQgaXMgZGVmaW5lZC4KCmRhdmVzICA4IEp1biA5OSAwODo0Mzo1OQogICAgLSAoYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jCiAgICAgICBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2FwaS5oCiAgICAgICBzbm1wbGliL3NubXBfYXV0aC5jIHNubXBsaWIvc25tcF9pbXBsLmgpOgogICAgICAgLSAgcmVtb3ZlZCBhbGwgdXNlcyBvZiAnc3RydWN0IHBhY2tldF9pbmZvJyAoc3Vic3VtZWQgaW50byAnc3RydWN0IHNubXBfcGR1JykKCm1zbGlmY2FrICA4IEp1biA5OSAwOTozMjo0OAogICAgLSh4eF9fZnJlZWJzZDIuYykgLSBmaXggc2l6ZV90IHRvIGJ1aWxkIG9uIEZyZWVCU0QgMi4yLngKCmRhdmVzICA5IEp1biA5OSAwNjozMjowMgogICAgLSAoc25tcF9hcGkuaCk6IHJlb3JkZXIgUERVIGFuZCBzZXNzaW9uIGZpZWxkcyBtb3JlIGNsZWFybHkKCmhhcmRha2VyICA5IEp1biA5OSAxODozMTo0MgogICAgLSAoKik6IG1lcmdlZCAzLjYuMiBjaGFuZ2VzIGludG8gbWFpbiBicmFuY2guCgpkYXZlcyAxNSBKdW4gOTkgMDM6NTk6MjMKICAgIC0gKHNubXBfYWdlbnQuYyk6IFJlbW92ZWQgZHVwbGljYXRlIGNvZGUKCmRhdmVzIDE1IEp1biA5OSAwODoyODowMAogICAgLSAoc25tcF9hZ2VudC5jIHNubXBfYWdlbnQuaCk6CiAgICAgIC0gTW92ZSBwcm9jZXNzaW5nIGZyb20gJ2hhbmRsZV9uZXh0X3Bhc3MoKScgdG8gJ2hhbmRsZV9zbm1wX3BhY2tldCgpJwoKaGFyZGFrZXIgMTUgSnVuIDk5IDE2OjI1OjU3CiAgICAtIChzbm1wX2FwaS5jKTogZml4IGFsbG93ZWQgemVyb2xlbmd0aCBwZHUtPnNlY3VyaXR5TmFtZSBwcm9ibGVtIGZvcgogICAgICB2MyBlbmdpbmVJRCBkaXNjb3ZlcnkgcHJvYmVzLgoKZGF2ZXMgMTYgSnVuIDk5IDA1OjExOjQ4CiAgICAtIChzbm1wLmggc25tcF9hcGkuYyk6IG1vdmUgUERVIHZhbGlkYXRpb24sIGV0YyBmcm9tICdzZW5kJyB0byAnYnVpbGQnIHJvdXRpbmVzCgpkYXZlcyAxNiBKdW4gOTkgMDU6NDk6MzgKICAgIC0gKHNubXBfYXBpLmMpOiBoYW5kbGUgcmVzcG9uc2VzIGluIGEgbW9yZSBwcm90b2NvbC1pbmRlcGVuZGVudCBtYW5uZXIKCmRhdmVzIDE2IEp1biA5OSAwNjo1NjoxNAogICAgLSAoc25tcF9hcGkuYyBzbm1wX2FwaS5oKTogSG9va3MgZm9yIGJ1aWxkaW5nL3BhcnNpbmcgbm9uLVNOTVAgcGFja2V0cwoKaGFyZGFrZXIgMTYgSnVuIDk5IDE2OjI0OjU4CiAgICAtIChkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIHBhcnNlLmMpOgogICAgICAtIGZpcnN0IHVzYWdlIG9mIHRoZSBkZWZhdWx0X3N0b3JlKCkgcm91dGluZXM6IG1vdmUgYWxsIHRoZSBtaWIKICAgICAgICBwYXJzZXIgdmFyaWFibGVzIHRvIGl0LCBhbmQgYWRkIHNubXAuY29uZiB0b2tlbnMgZm9yIHRoZW0uCiAgICAgICAgLSBwcmVtaWIgYXV0by1yZWdpc3RyYXRpb24gb2YgZGVmYXVsdF9zdG9yZSBuZWVkcyBjbGVhbmluZyB1cC4uLiAgc2lnaC4uLgoKaGFyZGFrZXIgMTYgSnVuIDk5IDE2OjUxOjExCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCk6CiAgICAgIC0gMiBuZXcgc25tcC5jb25mIHRva2VuczogZG9EZWJ1Z2dpbmcsIGRlYnVnVG9rZW5zLgoKaGFyZGFrZXIgMTcgSnVuIDk5IDA3OjM5OjAxCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGZpeCAtLWhlbHAuCgptc2xpZmNhayAxNyBKdW4gOTkgMTM6MTg6MzUKICAgIGZpeHVwcyB0byBidWlsZCBtb3N0IGFwcHMgdW5kZXIgV2luMzIgKE1TVkMrKyA1LjAgb3IgbGF0ZXIpCgptc2xpZmNhayAxOCBKdW4gOTkgMDU6MDE6NTQKICAgIGFwcGxpZWQgZml4ZXMgZnJvbSBNLiBMYXVra2FuZW4KCmRhdmVzIDE4IEp1biA5OSAwNjo1ODo1MwogICAgLSAoc3lzT1JUYWJsZS5jIHN5c09SVGFibGUuaCk6IG5ldyByb3V0aW5lIGZvciByZW1vdmluZyBzeXNPUlRhYmxlIGVudHJpZXMKCmRhdmVzIDE4IEp1biA5OSAwNzo1Njo0NgogICAgLSAoc25tcC5oIHNubXBfYXBpLmMpOiBkaXN0aW5ndWlzaCBiZXR3ZWVuIFNOTVAgcHJvdG9jb2wgJiBQRFUgaGFuZGxpbmcgZmxhZ3MKCmRhdmVzIDE4IEp1biA5OSAwODowMDozNAogICAgLSAoc25tcF9jbGllbnQuYyk6IEVuYWJsZSBhY2Nlc3MgdG8gImVtcHR5IiByZXNwb25zZSBQRFVzIChpLmUuIGhlYWRlciBvbmx5KS4KICAgIAkoYWxzbyBtYWtlICdzbm1wX2Nsb25lX21lbScgYWNjZXNzaWJsZSB0byBvdGhlciBmaWxlcykKCmRhdmVzIDE4IEp1biA5OSAwODowNDoyMgogICAgLSAoYXNuMS5oIHNubXBfYXBpLmMpOiBOZXcgcHJpdmF0ZSB0eXBlcyBmb3IgT0lEIHJhbmdlcwoKZGF2ZXMgMTggSnVuIDk5IDA4OjQ0OjExCiAgICAtIChzbm1wX2FwaS5oKTogTmV3IHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZQoKZGF2ZXMgMTggSnVuIDk5IDA4OjQ3OjM4CiAgICAtIChzbm1wX2FwaS5jKTogcHJvdG9jb2wtaW5kZXBlbmRlbnQgbm9uLXJlc3BvbnNlIGhhbmRsaW5nIGluICdzbm1wX3Nlc3NfcmVhZCcKCmRhdmVzIDE4IEp1biA5OSAwODo0OTo1MgogICAgLSAoc25tcF9hcGkuYyk6CiAgICAgIC0gYWNjb21vZGF0ZSBzZXJ2ZXJzIHRoYXQgcmVxdWlyZSBhbiBhY2Nlc3NpYmxlIGNsaWVudC1lbmQgdW5peCBzdHJlYW0gc29ja2V0CiAgICAgICAgICAgICAgICAgIChpbiBwYXJ0aWN1bGFyLCB0aGUgQ01VIEFnZW50WCBtYXN0ZXIgYWdlbnQpCgpkYXZlcyAxOCBKdW4gOTkgMDg6NTU6MzIKICAgIC0gKHNubXBfYXBpLmggTWFrZWZpbGUuaW4gYWdlbnR4LmMgYWdlbnR4LmggYWdlbnR4X2NsaWVudC5jKToKICAgICAgLSBiYXNpYyBBZ2VudFggcHJvdG9jb2wgaGFuZGxpbmcKCmRhdmVzIDE4IEp1biA5OSAwOTowMDoxNgogICAgLSAoc25tcF92YXJzLmMpOiBwcm90b2NvbC1pbmRlcGVuZGVudCBtZWFucyBvZiBieXBhc3NpbmcgVkFDTSBjaGVja3MKCmRhdmVzIDE4IEp1biA5OSAwOToxNDo1OAogICAgLSAoc25tcGQuYyBzbm1wZC5oIHNubXBfdmFycy5jIHNubXBfYWdlbnQuYyBzbm1wX2FnZW50LmgKICAgICAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6CiAgICAgICAtIGluaXRpYWwgQWdlbnRYIHN1Yi1hZ2VudCBpbXBsZW1lbnRhdGlvbgoKbXNsaWZjYWsgMTggSnVuIDk5IDEwOjAyOjAzCiAgICAtKHN5c09SVGFibGUuYykgZml4IHB0ciB0ZXN0Cgptc2xpZmNhayAyMiBKdW4gOTkgMDU6MjE6MDMKICAgICBpbnZva2Ugc25tcF9zZXNzX2luaXQgYmVmb3JlIGFueSBNSUIgcHJvY2Vzc2luZyAoZml4ZXMgbWFzdGVyIGFnZW50KS4KCm5iYSAyMiBKdW4gOTkgMDU6MjU6MTMKICAgIFRPRE86CW5lZWQgZm9yIENvdW50ZXI2NCBzdXBwb3J0IGluIHNubXBkZWx0YQoKZGF2ZXMgMjggSnVuIDk5IDAzOjA4OjQyCiAgICAtIChzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oKTogbWFrZSBTTk1QIHBhY2tldCBoYW5kbGluZyByb3V0aW5lIHJlLWVudHJhbnQuCgpkYXZlcyAyOCBKdW4gOTkgMDQ6MDc6MzYKICAgIC0ge01ha2VmaWxlLmluIGFnZW50X3JlYWRfY29uZmlnLmMgc25tcF92YXJzLmMgYWdlbnRfcmVnaXN0cnkuYyk6CiAgICAgIC0gQ29uc29saWRhdGUgYWxsIHJlZ2lzdHJ5IGhhbmRsaW5nIGludG8gb25lIGZpbGUKCmRhdmVzIDI4IEp1biA5OSAwOTo1MjowOAogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuYyBzbm1wX3ZhcnMuaCB2YXJfc3RydWN0LmgpOgogICAgICAtIE5vbi1yZWN1cnNpdmUgTUlCIHJlZ2lzdHJ5IGltcGxlbWVudGF0aW9uCgpoYXJkYWtlciAyOCBKdW4gOTkgMTQ6NTk6NDEKICAgIC0gKHNubXBkLmMpOiBpbml0X3NubXBfYWxhcm0oKS4KCmhhcmRha2VyIDI4IEp1biA5OSAxNTowMToxNAogICAgLSAoc25tcHRyYXBkLmMpOiBpbml0X3NubXBfYWxhcm0oKTsKCmRhdmVzIDMwIEp1biA5OSAwMTozNzoxMQogICAgLSAoc3lzT1JUYWJsZS5jIHN5c09SVGFibGUuaCk6IEluZGljYXRlIHN1Y2Nlc3MvZmFpbHVyZSBvZiB7dW59cmVnaXN0cmF0aW9uCgpkYXZlcyAzMCBKdW4gOTkgMDE6NDU6MjYKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgc25tcF92YXJzLmgpOiBJbmRpY2F0ZSBzdWNjZXNzL2ZhaWx1cmUgb2Yge3VufXJlZ2lzdHJhdGlvbgoKZGF2ZXMgMzAgSnVuIDk5IDAxOjQ4OjM0CiAgICAtIChzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oKTogJ2FnZW50X3NubXBfc2Vzc2lvbicgaW5pdGlhbGlzYXRpb24gcm91dGluZQoKZGF2ZXMgMzAgSnVuIDk5IDAyOjMyOjAzCiAgICAtIChzbm1wX2FwaS5jKTogQ29ycmVjdCB0aGUgc2V0dXAgb2Ygc3RyZWFtLWJhc2VkIGFjY2VwdGVkIGludGVybmFsIHNlc3Npb25zCgpkYXZlcyAzMCBKdW4gOTkgMDM6MjA6NDYKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmgpOiBvbWl0IHJlZHVuZGFudCBkZWNsYXJhdGlvbnMKCmRhdmVzIDMwIEp1biA5OSAwNTowNTo0NAogICAgLSAoc25tcF9hcGkuYyk6IFByb3ZpZGUgdGhlIGNvcnJlY3Qgc2l6ZSBvZiBzb2NrZXQgYWRkcmVzc2VzCgpkYXZlcyAzMCBKdW4gOTkgMDU6MDY6NTIKICAgIC0gKGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBjaGVjayBmb3Igc3lzL3VuLmgKCmRhdmVzIDMwIEp1biA5OSAwNTo0ODo0MAogICAgLSAoc25tcF9hcGkuYyk6IE1pc3NlZCBvbmUgJ3NlbmR0bycgY2FsbAoKaGFyZGFrZXIgMzAgSnVuIDk5IDE5OjM3OjM2CiAgICAtIChkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIG1pYi5oLCBzbm1wX2FwaS5jLAogICAgICBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgICAtIGNvbnZlcnQgbW9yZSBzdHVmZiB0byB0aGUgZGVmYXVsdF9zdG9yZSBzcGFjZS4KCmRhdmVzICAyIEp1bCA5OSAwMjozOTo0MQogICAgLSAoc25tcF9hcGkuYyk6IEZpeCB0aGF0IGxhc3QgJ3NlbmR0bycgY2FzZSAqY29ycmVjdGx5KiB0aGlzIHRpbWUKCmRhdmVzICAyIEp1bCA5OSAwNToxMzo0MgogICAgLSAoc25tcGxpYi9hc24xLmggYWdlbnQvc25tcF92YXJzLmggYWdlbnQvc25tcF9hZ2VudC5jKToKICAgICAgLSBpbXBsZW1lbnQgYW4gaW50ZXJmYWNlIGZvciBkZWxlZ2F0aW5nIHJlcXVlc3RzIHRvIHN1YmFnZW50cwoKZGF2ZXMgIDIgSnVsIDk5IDA1OjE1OjU2CiAgICAtICh2YXJfc3RydWN0LmggYWdlbnRfcmVnaXN0cnkuYyk6CiAgICAgIC0gbWFwIGJldHdlZW4gTUlCIHJlZ2lzdHJhdGlvbnMgYW5kIHRoZSBzdXBwb3J0aW5nIChzdWJhZ2VudCkgc2Vzc2lvbgoKZGF2ZXMgIDIgSnVsIDk5IDA1OjE2OjQxCiAgICAtIChzbm1wX2FwaS5oKTogc3VwcG9ydCBsaXN0cyBvZiBzZXNzaW9ucyAoYW5kIHN1YnNlc3Npb25zKQoKaGFyZGFrZXIgIDIgSnVsIDk5IDA4OjI3OjMwCiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiByZWdpc3RlciBkZWJ1Z2dpbmcgdG9rZW5zIHdpdGggLUQKCmRhdmVzICA2IEp1bCA5OSAwMjoyMDo1NwogICAgLSAoc25tcF9hZ2VudC5jKTogRml4IGhhbmRsaW5nIG9mIFNOTVB2MSBub1N1Y2hOYW1lCgpkYXZlcyAgNyBKdWwgOTkgMDY6NTQ6NTMKICAgIC0gKGFzbjEuYyBhc24xLmggc25tcC5jIHNubXAuaCBzbm1wX2FwaS5jIHNubXBfYXBpLmgKICAgICAgIHNubXBfYXV0aC5jIHNubXBfaW1wbC5oIGFnZW50eC5jKToKICAgICAgIC0gRmlyc3QgYXR0ZW1wdCBhdCBmb3JtYXR0ZWQgZGlzcGxheSBvZiBwYWNrZXQgZGF0YQoKZGF2ZXMgIDggSnVsIDk5IDAyOjE2OjE1CiAgICAtIChzbm1wX2FwaS5jKTogUmV0YWluIGNvbW11bml0eSBzdHJpbmcgaW4gcmVzcG9uc2VzCgpkYXZlcyAgOCBKdWwgOTkgMDY6MjU6MDcKICAgIC0gKG1pYklJL3N5c3RlbV9taWIuYyBtaWJJSS9zbm1wX21pYi5jKToKICAgICAgLSBVcGRhdGUgJ3dyaXRlJyByb3V0aW5lcyBmb3IgVjQgYXJjaGl0ZWN0dXJlLAogICAgICAgIGFuZCB1c2luZyB0aGUgZnVsbCBTRVQgbXVsdGktcGFzcyBhbGdvcml0aG0KCmhhcmRha2VyICA4IEp1bCA5OSAxNDoyOTozNQogICAgLSAoY29uZmlnLmgpOiBjb21tZW50IGNoYW5nZSBmb3IgaW50ZXJuYWwgbWQ1LgoKaGFyZGFrZXIgIDggSnVsIDk5IDE0OjMwOjQ3CiAgICAtIChhc24xLmMpOiAtV2FsbCBmaXhlcy4KCmhhcmRha2VyICA4IEp1bCA5OSAxNDozNjo1MgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLCBzbm1wMnAuYywgc25tcF9hZ2VudC5jLAogICAgICBzbm1wX3ZhcnMuYywgc25tcGQuYywgdmlld19wYXJzZS5jLCB2YWNtX3ZhcnMuYywgc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywgbWFpbi5jLCBNYWtlZmlsZS5pbiwgYWNsLmMsCiAgICAgIGFjbC5oLCBhY2xfcGFyc2UuYywgY29udGV4dC5jLCBjb250ZXh0LmgsIGNvbnRleHRfcGFyc2UuYywKICAgICAgbGlic25tcC5oLCBwYXJ0eS5jLCBwYXJ0eS5oLCBwYXJ0eV9wYXJzZS5jLCBzbm1wLmgsIHNubXBfYXBpLmMsCiAgICAgIHNubXBfYXV0aC5jLCBzbm1wX2NsaWVudC5jLCB2aWV3LmMsIHZpZXcuaCk6CiAgICAgIC0gdjJwYXJ0eSBzdXBwb3J0IGlzIGZpbmFsbHkgZ29uZSEKCmhhcmRha2VyICA4IEp1bCA5OSAxNDo0OTowOAogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kCgpoYXJkYWtlciAgOCBKdWwgOTkgMTU6MTY6MzUKICAgIC0gKHNubXBkZWx0YS5jLCBpbnQ2NC5jLCBpbnQ2NC5oKTogbWluaW1hbCBjNjQgc3VwcG9ydCBmb3Igc25tcGRlbHRhLiBVbnRlc3RlZC4KCmhhcmRha2VyICA4IEp1bCA5OSAxNjowMjo1OAogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gUmFnbmFyIEtq+HJzdGFkOgogICAgICAtIEFkZCBvcHRpb25zIGZvciBzd2l0Y2hpbmcgdG8gYSBnaXZlbiB1aWQgYW5kIGdpZC4KCmRhdmVzICA5IEp1bCA5OSAwMTo0OTo0OQogICAgLSAoc25tcGQuYyk6IENsZWFuIHVwIGdpZC91aWQgY2hhbmdlIGxvZ2dpbmcKCmRhdmVzICA5IEp1bCA5OSAwODoyNzozOQogICAgLSAoKi9NYWtlZmlsZS5pbiBzbm1wbGliL3NubXBfYXBpLmMKICAgICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgYWdlbnQvc25tcF9hZ2VudC5bY2hdIGFnZW50L3NubXBfdmFycy5bY2hdCiAgICAgICBhZ2VudC9zbm1wZC5bY2hdIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6CiAgICAgICAtIE1vdmUgQWdlbnRYIGhhbmRsaW5nIG91dCBvZiB0aGUgbWFpbiBTTk1QIGxpYnJhcnkKCm1zbGlmY2FrICA5IEp1bCA5OSAxMjoxMjo1MAogICAgLShzbm1wX2NsaWVudC4qKSByZW1vdmUgc25tcF9zeW5jaF9zZXR1cCwgc25tcF9zeW5jaF9yZXNldAoKbXNsaWZjYWsgIDkgSnVsIDk5IDE0OjIwOjIzCiAgICAtKHdpbjMyLHNubXBsaWIsYXBwcyxhZ2VudCkgYWRkIHNubXBfc29ja2V0X2xlbmd0aCB0byBoaWRlIHNvY2thZGRyX3VuOyBXaW4zMiB0b3VjaHVwcwoKbXNsaWZjYWsgMTEgSnVsIDk5IDE4OjM2OjI0CiAgICBSZWR1Y2UgdXNlIG9mIHNubXBfZXJybm8gLSBmaXggbWVtb3J5IGxlYWssIHVudXNlZCB2YXJzLCBhbmQgdW5zZXQgdmFyLgoKZGF2ZXMgMTIgSnVsIDk5IDA3OjE0OjM2CiAgICAtIChhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbik6IHJlbW92ZSBkZXBlbmRlbmN5IG9uIHNubXBsaWIvYWdlbnR4LmgKCmRhdmVzIDEyIEp1bCA5OSAwODozMjoyNwogICAgLSAobWliZ3JvdXAvaG9zdC8qKTogRHluYW1pY2FsbHkgcmVnaXN0ZXIgYWxsIEhvc3QgUmVzb3VyY2UgbW9kdWxlcwoKbXNsaWZjYWsgMTQgSnVsIDk5IDEzOjE0OjMwCiAgICAtKHNubXBfYXBpLmMpIC0gc25tcF9hZGRfdmFyIHJldHVybnMgU05NUEVSUjsgTUFZIHNldCBzbm1wX2Vycm5vCgptc2xpZmNhayAxNCBKdWwgOTkgMTM6NDY6NTMKICAgIC0oc25tcGxpYi9taWIuYykgLSBjb25kaXRpb25hbGx5IGFsbG93IGZvciBub3Qgc2V0dGluZyBzbm1wX2Vycm5vCgpoYXJkYWtlciAxNSBKdWwgOTkgMDg6NDY6MDAKICAgIC0gKGFzbjEuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oKToKICAgICAgLSBiZWdpbm5pbmcgb2YgYSAtRGR1bXAgdmVyc2lvbiBvZiBwYWNrZXQgZHVtcGluZy4KICAgICAgLSBuZWVkcyBhIGxvdCBtb3JlIHdvcmsgYW5kIGNsZWFuIHVwLgogICAgICAtIEkgbmVlZCBjb21tZW50cy4uLiAgVGVsbCBtZSB3aGF0IHlvdSB0aGluay4uLgoKaGFyZGFrZXIgMjAgSnVsIDk5IDE0OjAyOjI2CiAgICAtIChhdXRvX25saXN0LmMsIGhpc3RvcnkuYywga2VybmVsLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywKICAgICAgZGxtb2RfbWliLmMsIGtlcm5lbF9zdW5vczUuYywgbWliaW5jbC5oLCB1dGlsX2Z1bmNzLmMsIGlwZndjaGFpbnMuYywKICAgICAgYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCByb3V0ZV93cml0ZS5jLCBzeXN0ZW1fbWliLmMsIHRjcC5jLCB1ZHAuYywKICAgICAgdmFjbV92YXJzLmMsIHZhcl9yb3V0ZS5jLCBkbG1vZC5jLCBzbXV4LmMsIGRpc2suYywgZXh0ZW5zaWJsZS5jLAogICAgICBsb2FkYXZlLmMsIG1lbW9yeV9zb2xhcmlzMi5jLCBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jLCBwcm9jLmMsCiAgICAgIHZlcnNpb25pbmZvLmMsIGFsYXJtLmMsIGV2ZW50LmMsIE1ha2VmaWxlLmluLCBwYXJzZS5jLCBzbm1wLmMsCiAgICAgIHNubXBfZGVidWcuYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKTogUGF0Y2ggZnJvbSBSYWduYXIKICAgICAgS2r4cnN0YWQ6CiAgICAgIC0gZG8gZmlsZSwgc3RkZXJyLCBhbmQgc3lzbG9nIHN1cHBvcnQuCgpoYXJkYWtlciAyMCBKdWwgOTkgMTc6MDY6NTMKICAgIC0gKGF1dG9fbmxpc3QuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jLCBkbG1vZF9taWIuYywga2VybmVsX3N1bm9zNS5jLAogICAgICBpcGZ3Y2hhaW5zLmMsIGludGVyZmFjZXMuYywgZGxtb2QuYywgc211eC5jLCB2ZXJzaW9uaW5mby5jLAogICAgICBhbGFybS5jKToKICAgICAgLSBjb252ZXJ0IHNubXBfbG9nKExPR19ERUJVRykgdG8gREVCVUdNU0dUTCgpLgoKbXNsaWZjYWsgMjAgSnVsIDk5IDE4OjExOjUwCiAgICAtbWlub3IgY2hhbmdlcyB0byBidWlsZCBXaW4zMiBwbGF0Zm9ybXMgdXNpbmcgQ3lnV2luLWVnY3MgYW5kIE1TVkMgY29tcGlsZXJzLgoKbXNsaWZjYWsgMjAgSnVsIDk5IDE5OjMzOjI2CiAgICAtIG5vIHByaW50ZiBpbiBhc2NpaV90b19iaW5hcnkKCmhhcmRha2VyIDIxIEp1bCA5OSAxNjowNjo1MgogICAgLSAodGttaWIsIG1pYjJjKTogdWRwYXRlIHRvIHVzZSBpbmRleGVzIChyZXF1aXJlcyBhIHBlcmwgcGF0Y2guCgpoYXJkYWtlciAyMyBKdWwgOTkgMTA6MzY6NTQKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogbG9nIHRvIHN0ZGVyci4KCmhhcmRha2VyIDIzIEp1bCA5OSAxMDo0NDoxNwogICAgLSAoYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wX2FnZW50LmMsCiAgICAgIHNubXBfdmFycy5jLCBzbm1wZC5jLCBrZXJuZWxfc3Vub3M1LmMsIHV0aWxfZnVuY3MuYywgaW50ZXJmYWNlcy5jLAogICAgICBpbnRlcmZhY2VzLmgsIHN5c3RlbV9taWIuYywgdmFyX3JvdXRlLmMsIHNubXBFbmdpbmUuYywKICAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXB0cmFwZC5jLCBIT1NULVJFU09VUkNFUy1NSUIudHh0LAogICAgICBJQU5BaWZUeXBlLU1JQi50eHQsIElGLU1JQi50eHQsIElQLU1JQi50eHQsIFRDUC1NSUIudHh0LAogICAgICBVRFAtTUlCLnR4dCwgcGFyc2UuYywgc25tcF9hbGFybS5jLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOgogICAgICAtIG1lcmdlIGZyb20gVjMtbGluZSBwb3N0IDMuNi4yIHRvIGN1cnJlbnQuCiAgICAgIC0gbWlzYyBidWcgZml4ZXMuCiAgICAgIC0gbWFrZSBhcHBzIHR1cm4gb24gc3RkZXJyIGxvZ2dpbmcgYnkgZGVmYXVsdC4KCmhhcmRha2VyIDIzIEp1bCA5OSAxMzoxODoyMwogICAgLSAoc25tcGQuYyk6IG1vcmUgc25tcF9sb2cgY29udmVyc2lvbnMuCgpoYXJkYWtlciAyMyBKdWwgOTkgMTM6MTg6NDQKICAgIC0gKHV0aWxfZnVuY3MuYyk6IGNoYW5nZSBtYWxsb2Mgc2l6ZSgpLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDEzOjE5OjIwCiAgICAtIChhc24xLmMpOiBudWxsIHRlcm1pbmF0ZSBwYXJzZWQgc3RyaW5ncywganVzdCBpbiBjYXNlLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDEzOjIwOjAyCiAgICAtIChzbm1wLmMpOiB4ZHVtcCBmaXhlcy4KCmhhcmRha2VyIDIzIEp1bCA5OSAxMzoyMDozMwogICAgLSAoa2V5dG9vbHMuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6IHNubXBfbG9nIGNvbnZlcnNpb25zLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDE0OjE5OjM5CiAgICAtIChhc24xLmMsIGFzbjEuaCwgc25tcC5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgpOgogICAgICAtIHJldmVydCB0byBub24tZHBhcnNlIHZlcnNpb25zIG9mIGFzbiBkZWNvZGluZy4KCmhhcmRha2VyIDIzIEp1bCA5OSAxNDoyNjo1NwogICAgLSAoc25tcGQuYyk6IGluaXQgZGVidWdnaW5nLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDE1OjIyOjAyCiAgICAtIChzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLAogICAgICBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwLmMsCiAgICAgIHNubXB0cmFwZC5jLCBzbm1wdXNtLmMsIHNubXB3YWxrLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsCiAgICAgIHNubXBfY2xpZW50LmMpOgogICAgICAtIG1ha2UgYW5kIHVzZSBzbm1wX3Nlc3NfcGVycm9yKHN0ciwgc2VzcykgZm9yIGVycm9yIHByaW50aW5nLgoKbXNsaWZjYWsgMjQgSnVsIDk5IDA3OjExOjMwCiAgICAtKGFzbjEuYykgLSBmaXggY29tcGFyZSBlcnJvciBhdCBsaW5lIDM4NjsgcmVtb3ZlIHVudXNlZCB2YXJzIGVsc2V3aGVyZQoKbXNsaWZjYWsgMjQgSnVsIDk5IDA3OjE4OjEzCiAgICAtKGxpYnNubXAuZGVmKSAtIGFkZCBkZWNscyBmb3IgbmV3IGVycm9yIGxvZ2dpbmcgZnVuY3Rpb25zLgoKbXNsaWZjYWsgMjQgSnVsIDk5IDA3OjQ1OjU5CiAgICAtKHNubXBfY2xpZW50LmMpIC0gdXNlIFNFVF9TTk1QX0VSUk9SIGZvciByZXN0b3JlZCBzbm1wX2Vycm5vIHNldHMuCgptc2xpZmNhayAyNCBKdWwgOTkgMDg6MTE6MDUKICAgIC0obWQ1LmMpIC0gd3JhcCB1bnVzZWQgTUQ1cHJpbnQgd2l0aCBTTk1QX1RFU1RJTkdfQ09ERSBpZmRlZgoKaGFyZGFrZXIgMjYgSnVsIDk5IDA3OjM3OjA5CiAgICAtIChTTk1QdjItQ09ORi50eHQpOiByZW1vdmVkIGJvZ3VzIElNUE9SVFMgY2xhdXNlCgpoYXJkYWtlciAyNiBKdWwgOTkgMDk6MDQ6MDkKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZAoKaGFyZGFrZXIgMjYgSnVsIDk5IDA5OjE0OjI0CiAgICAtIChORVdTKTogdXBkYXRlZCBhIGJpdAoKaGFyZGFrZXIgMjYgSnVsIDk5IDExOjUxOjIyCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU0ICkKCmhhcmRha2VyIDI2IEp1bCA5OSAxNDozMjoxNwogICAgLSAobWliLmMpOiBCSVRfc3RyaW5nOiAtPiBCSVRTOgoKbXNsaWZjYWsgMjYgSnVsIDk5IDE1OjEyOjQ1CiAgICAtKGFzbjEuYyxhc24xLmgsc25tcC5jLHNubXBfYXBpLmMsc25tcF9hdXRoLmMsc25tcHVzbS5jKSBtb3JlIGRldGFpbGVkIHBhcnNlIGVycm9yIG1lc3NhZ2VzLgoKaGFyZGFrZXIgMjYgSnVsIDk5IDE1OjU5OjEwCiAgICAtIChhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbik6IGZpeCBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDI2IEp1bCA5OSAxNzowNjowMwogICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgICAtIHZhcmlhYmxlIG5hbWluZyBjaGFuZ2UuCgpoYXJkYWtlciAyNiBKdWwgOTkgMTc6MDY6NDcKICAgIC0gKGhwdXguaCk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSBkZWZpbmUgaHB1eAoKaGFyZGFrZXIgMjYgSnVsIDk5IDE3OjA3OjMxCiAgICAtIChrZXl0b29scy5jLCBrZXl0b29scy5oLCBwYXJzZS5jLCBzY2FwaS5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgICAtIHNpemVfdCBjaGFuZ2VzLgoKbXNsaWZjYWsgMjcgSnVsIDk5IDA0OjI0OjA4CiAgICBhZGQgaW5jbHVkZSBuZXQvaWZfZGwuaCBzdWdnZXN0ZWQgYnkgVG9tIEl2YXIgSGVsYmVra21vCgpkYXZlcyAyNyBKdWwgOTkgMDY6Mzg6MDkKICAgIC0gKGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLyouYyk6IHR3ZWFrIHJlZ2lzdHJ5IGxhYmVscwoKbXNsaWZjYWsgMjcgSnVsIDk5IDA3OjUyOjM3CiAgICAtKGFnZW50L2tlcm5lbC5jLGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYyxhZ2VudC9kbG1vZHMvZXhhbXBsZS5jLAogICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYyxhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyxhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jLGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmMsCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLAogICAgc25tcGxpYi9hc24xLmMsc25tcGxpYi9zY2FwaS5jLHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgIHNubXBsaWIvc25tcF9jbGllbnQuaCkgIEVSUk9SX01TRywgcHJpbnRmIC0tPiBERUJVR01TR1RMCgptc2xpZmNhayAyNyBKdWwgOTkgMDk6MzM6NDMKICAgIC0oYWdlbnQva2VybmVsLmMsYWdlbnQvc25tcGQuYyxhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyxhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsYXBwcy9zbm1wZGVsdGEuYyxhcHBzL3NubXBnZXQuYywKICAgIGFwcHMvc25tcGdldG5leHQuYyxhcHBzL3NubXBzZXQuYyxhcHBzL3NubXBzdGF0dXMuYywKICAgIGFwcHMvc25tcHRhYmxlLmMsYXBwcy9zbm1wdGVzdC5jLGFwcHMvc25tcHRyYXAuYywKICAgIGFwcHMvc25tcHRyYXBkLmMsYXBwcy9zbm1wdXNtLmMsYXBwcy9zbm1wd2Fsay5jLAogICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsc25tcGxpYi9wYXJzZS5jLHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgIHNubXBsaWIvc25tcHYzLmMpIGZpeCBzbm1wX3Nlc3NfcGVycm9yIHVzZTsgdXNlIGxvZ19wZXJyb3IgZm9yIHBlcnJvcgoKbXNsaWZjYWsgMjcgSnVsIDk5IDEyOjAwOjM3CiAgICAtKGVuY29kZV9rZXljaGFuZ2UuZHNwLHNubXB1c20uZHNwKSAtYnVpbGQgdXNpbmcgY29tbW9uIFdpbjMyIGNvbXBpbGVyCgptc2xpZmNhayAyNyBKdWwgOTkgMTI6MjQ6MDMKICAgIC0oYXBwczplbmNvZGVfa2V5Y2hhbmdlLmMsc25tcGRlbHRhLmMsc25tcHRhYmxlLmMsIHNubXB1c20uYzsKICAgIHNubXBsaWI6cmVhZF9jb25maWcuYyxzbm1wdjMuYzsgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYpIC0KICAgICBhZGp1c3QgaGVhZGVycywgYnVpbGQgV2luMzIgc25tcHVzbStlbmNvZGVfa2V5Y2hhbmdlCgptc2xpZmNhayAyNyBKdWwgOTkgMTY6MDY6MzUKICAgIC0oaW50ZXJmYWNlcy5jKSAtIGZpeCBlcnJvciBzZXR0aW5nIGlmX2lieXRlcyBmb3IgTGludXggMi4wCgpoYXJkYWtlciAyNyBKdWwgOTkgMTY6MTQ6MjgKICAgIC0gKGFzbjEuYywgbWliLmMsIG1pYi5oLCBzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwgc25tcHVzbS5jKToKICAgICAgLSBjbGVhbmVkIHVwIGRlYnVnZ2luZyBkdW1wIG91dHB1dC4KICAgICAgLSBhZGRlZCBtb3JlIGR1bXAgcGFyc2UgaGVhZGVycyBmb3IgdjMgZHVtcHMuCgpoYXJkYWtlciAyNyBKdWwgOTkgMTY6MjA6NDYKICAgIC0gKGFzbjEuYyk6IGZpeCBoZWFkZXIgZHVtcC4KCm1zbGlmY2FrIDI3IEp1bCA5OSAxNzoxNTowMQogICAgaW5jbHVkaW5nIG1pYi5oIHJlcXVpcmVzIHN0ZGlvLmggdG8gZGVmaW5lIEZJTEUgKi4KCm1zbGlmY2FrIDI3IEp1bCA5OSAxOTowMjozMQogICAgLShzbm1wX3BhcnNlX2FyZ3MpIGluIHNubXBfcGFyc2Vfb2lkLCB0cnkgZ2V0X25vZGUgaWYgcmVhZF9vYmppZCBmYWlscy4KCm1zbGlmY2FrIDI3IEp1bCA5OSAxOTowNjowOAogICAgLShtaWIuYykgZml4IHdhbGtpbmcgT0lEIGxlbmd0aCBwb2ludGVyLCBudW1lcmljIHN1Yi1pZCBub3QgZm91bmQKICAgIGluIHJlYWRfb2JqaWQgYW5kIHBhcnNlX3N1YnRyZWUuCgptc2xpZmNhayAyNyBKdWwgOTkgMjM6MzQ6NTkKICAgIC0oc25tcGQuYykgaW52b2tlIGxvZyBmdW5jdGlvbnMgZnJvbSBjaGlsZCAoY29ycmVjdCBwcm9jZXNzIElEIGluIHN5c2xvZykKCm1zbGlmY2FrIDI3IEp1bCA5OSAyMzo1ODo1MQogICAgLShrZXl0b29scy5jLG1kNS5jLG1kNS5oLHNjYXBpLmMsc25tcC5jLHNubXBfYXBpLmMsc25tcF9hdXRoLmMpIGNhdGNoIE1ENSBlcnJvcnMKCm1zbGlmY2FrIDI4IEp1bCA5OSAwMjo0MjozMgogICAgaHJfc3dydW4gLSByZXNldCBwb2ludGVyIGluIG1vZHVsZSBpbml0IChoZWxwIEhQL1VYIDkpCiAgICBzbm1wX2xvZ2dpbmcgLSB1c2UgdnNwcmludGYgZm9yIEhQL1VYLTkKCmhhcmRha2VyIDI4IEp1bCA5OSAwNjo0NToxOQogICAgLSAoYnVnLXJlcG9ydCk6IGNoYW5nZSBtYWlsIGFkZHIgdG8gdWNkLXNubXAtYnVncwoKZGF2ZXMgMjkgSnVsIDk5IDAzOjI5OjQwCiAgICAtIChtaWJJSS92YWNtX3ZhcnMuYyk6IENhdGNoIHVzZSBvZiB1bmNvbmZpZ3VyZWQgRVhBTVBMRS5jb25mIGZpbGVzCgptc2xpZmNhayAyOSBKdWwgOTkgMDg6MzQ6NTkKICAgIG1lbW9yeV9zb2xhcmlzMiA6IGhhbmRsZSBtYWxsb2MgZXJyb3JzCiAgICBrZXJuZWxfc3Vub3M1IDogc2hhcmUga3N0YXQgZmlsZGVzIFtTSEFSRV9LU1RBVF9GRF0KCm1zbGlmY2FrIDI5IEp1bCA5OSAxMzoyODozNgogICAgLShhcHBzL01ha2VmaWxlLmluKSAtIGNvbW1lbnQgdW5uZWVkZWQgVFJBUFNQRUNJQUwgbGluZQoKbXNsaWZjYWsgMjkgSnVsIDk5IDEzOjU5OjAyCiAgICAtKGFnZW50L3NubXBkLmMpIC0gbG9nIHN0YW5kYXJkIGVycm9yIHVudGlsIGluaXQgaXMgY29tcGxldGVkLgoKbXNsaWZjYWsgMjkgSnVsIDk5IDE1OjA0OjQ5CiAgICBhdXRvX25saXN0LCBrZXJuZWwgOiBwbGFjZSBsb2dfcGVycm9yIHRvIGNhdGNoIGVycm5vIHZhbHVlIGluIHJlcG9ydC4KCmhhcmRha2VyIDI5IEp1bCA5OSAxNzowMzoyNQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKTogcmVtb3ZlIHRyYXBfc3BlY2lhbCBzdHVmZi4KCmhhcmRha2VyIDI5IEp1bCA5OSAxNzowNjo1NgogICAgLSAobWliZ3JvdXAvdjJwYXJ0eSk6IHJlbW92ZWQgZmlsZXMuCgptc2xpZmNhayAzMCBKdWwgOTkgMDM6NTE6MzEKICAgIFJlbW92ZWQgZHVwbGljYXRlIEhBVkVfR0VUPz8/QllOQU1FOyBSZW1vdmVkIHVudXNlZCBfQ1JUSU1QCgptc2xpZmNhayAzMCBKdWwgOTkgMDM6NTc6MjMKICAgIFJlbW92ZWQgaGludCBvZiB2MnBhcnR5IGZyb20gY29tbWVudC4KCm1zbGlmY2FrIDMwIEp1bCA5OSAwNDowMDoyOAogICAgLShhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLGFnZW50L2hpc3RvcnkuYyxhZ2VudC9zbm1wX3ZhcnMuYywKICAgIGFnZW50L3NubXBkLmMsc25tcGxpYi9yZWFkX2NvbmZpZy5jLHNubXBsaWIvc25tcF9hbGFybS5jLAogICAgc25tcGxpYi9zbm1wX2FwaS5jLHNubXBsaWIvc25tcF9sb2dnaW5nLmMsc25tcGxpYi9zbm1wdjMuYywKICAgIHNubXBsaWIvc3lzdGVtLmMpIC0gcHNvcyBkaWZmcyBvZmZlcmVkIGJ5IEFudGhvbnkgU3ltb25zCgptc2xpZmNhayAzMCBKdWwgOTkgMDQ6Mzc6MjAKICAgIHJlbmFtZSBsb2NhbCB2YXIgJ2xhc3QnIHRvICdsYXN0X2lwY2gnIC0gYXZvaWQgc2hhZG93IGdsb2JhbCBkZWNsCgptc2xpZmNhayAzMCBKdWwgOTkgMDQ6Mzk6MzgKICAgIGRlY2wgbG9nX3BlcnJvcgoKbXNsaWZjYWsgMzAgSnVsIDk5IDA0OjQyOjQ4CiAgICByZW5hbWUgc2QgdG8gaWZzZCAtIGF2b2lkIGdsb2JhbCBzaGFkb3cgZGVjbAoKbXNsaWZjYWsgMzAgSnVsIDk5IDA1OjQyOjM0CiAgICBocl9zdG9yYWdlLmMgLSBhdXRvX25saXN0IGZvciBIUl9TVE9SRV9TSVpFCiAgICBocl9zd3J1bi5jIC0gZml4IGdsb2JhbCBzaGFkb3cgZGVjbAogICAgc25tcF9sb2dnaW5nLmMgLSBjaGFuZ2UgZmlsdGVyIGZvciBvcGVubG9nIHBlciBBLiBTeW1vbnMgcGF0Y2gKCmRhdmVzIDMwIEp1bCA5OSAwNjowMTowOAogICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyBhZ2VudC9zbm1wX3ZhcnMuYyBhZ2VudC9zbm1wZC5jCiAgICAgICBhcHBzL3NubXBfcGFyc2VfYXJncy5jIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwLmMKICAgICAgIGFwcHMvc25tcHRyYXBkLmMgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgc25tcGxpYi9zbm1wX2FwaS5jCiAgICAgICBzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5LmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5oKToKICAgICAgIC0gIFJlbW92ZWQgbGFzdCB0cmFjZXMgb2YgdjJwIHN1cHBvcnQKCmRhdmVzIDMwIEp1bCA5OSAwNjoyMzowNgogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYyBhZ2VudF9yZWdpc3RyeS5jIHNubXBfdmFycy5jIHNubXBfdmFyc19tMm0uaCk6CiAgICAgIC0gUmVtb3ZlZCBsYXN0IHRyYWNlcyBvZiBvYnNvbGV0ZSB2MnBhcnR5IE1hbmFnZXItdG8tTWFuYWdlciBzdXBwb3J0Cgptc2xpZmNhayAzMCBKdWwgOTkgMDY6MzA6MzAKICAgIHN5c3RlbSAtIHVzZSBzaXplb2YKCm1zbGlmY2FrIDMwIEp1bCA5OSAwNjozMDo1OQogICAgd2luMzIvY29uZmlnLmggLSBkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRQoKbXNsaWZjYWsgMzAgSnVsIDk5IDA2OjQ2OjIyCiAgICB1c2UgdHJhZGl0aW9uYWwgSyZSIGNvbW1lbnRpbmc7IG5vdCBhbGwgIkMiIGNvbXBpbGVycyBhY2NlcHQgIi8vIiBjb21tZW50cy4KCm1zbGlmY2FrIDMwIEp1bCA5OSAwNjo1ODowOAogICAgcmVtb3ZlIHJlZmVyZW5jZXMgdG8gbm9uLWV4aXN0ZW50IHNubXBfdmFyc19tMm0uaAoKZGF2ZXMgMzAgSnVsIDk5IDA3OjAxOjQ2CiAgICAtIChjb25maWd1cmUuaW4gY29uZmlndXJlKTogQ2hlY2sgZm9yIGxpYmRiL2xpYmRiMSAmIGxpYnJwbSBzZXBhcmF0ZWx5CgpkYXZlcyAzMCBKdWwgOTkgMDc6MzE6NTYKICAgIC0gKGFjY29uZmlnLmgpOiBDaGVjayBmb3IgbGliZGIvbGliZGIxICYgbGlicnBtIHNlcGFyYXRlbHkKCm1zbGlmY2FrIDMwIEp1bCA5OSAwODowMToxOAogICAgYWRkIHZzbnByaW50ZiBjaGVjayBhbmQgSEFWRV9WU05QUklOVEYgY29uc3RhbnQKCm1zbGlmY2FrIDMwIEp1bCA5OSAwODozMjoyOAogICAgbm8gc3RydWN0IHNvY2thZGRyX2RsIGluIEFJWCAzLgoKaGFyZGFrZXIgMzAgSnVsIDk5IDE0OjEwOjA1CiAgICAtIChjb25maWcuaC5pbik6IGF1dG9oZWFkZXIgcnVuLgoKaGFyZGFrZXIgMzAgSnVsIDk5IDE0OjEwOjMwCiAgICAtIChNYWtlZmlsZS5pbik6IG1ha2UgL3Zhci91Y2Qtc25tcCBleGlzdC4gIFdlIHNob3VsZCBkbyBhIHBlcm1pc3Npb24KICAgICAgc2V0IGFzIHdlbGwuCgpoYXJkYWtlciAzMCBKdWwgOTkgMTQ6MTg6NTUKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZAoKaGFyZGFrZXIgMzAgSnVsIDk5IDE0OjE5OjIxCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU1ICkKCm1zbGlmY2FrICAyIEF1ZyA5OSAwNDoyOTozNQogICAgYXNuMSwgcGFyc2UpIGZpeGVzIHN1cHBsaWVkIGJ5IE1hcmtrdSBMYXVra2FuZW4gKE1KUy11c2UgeGNhbGxvYyBpbiBwYXJzZSkKCm1zbGlmY2FrICAyIEF1ZyA5OSAwNDozNzo0NgogICAgcGFyc2UgLSBzaGFtZSBvbiBtZSBmb3Igbm90IGNvbXBpbGUgdGVzdGluZyBmaXJzdCEKCm1zbGlmY2FrICAyIEF1ZyA5OSAyMjoyOTozNwogICAgc25tcF9kZWJ1ZyAtIERFQlVHTVNHIG1hY3JvcyBjYWxsIHNubXBfZ2V0X2RvX2RlYnVnZ2luZyBiZWZvcmUgaW52b2tpbmcgZGVidWdtc2cqIGZ1bmN0aW9ucy4KCm1zbGlmY2FrICAzIEF1ZyA5OSAwNDo0Njo0MQogICAgc25tcF9hcGkuYyAtIHJlbW92ZSAiQlkiIGZyb20gSEFWRV9HRVRIT1NUQllOQU1FIChTb2xhcmlzIDIuNS4xIHdyb25nISkKCm1zbGlmY2FrICAzIEF1ZyA5OSAwNjo1OTo1MAogICAgYXNuMS5jIC0gZml4IG91dC1vZi1ib3VuZCBhcnJheSB3cml0ZSBhbmQgbWVtb3J5IGxlYWsgaW4gcGFyc2luZyBzdHJpbmdzLgoKbXNsaWZjYWsgIDMgQXVnIDk5IDA3OjAwOjE2CiAgICBzbm1wX2RlYnVnLmMgLSByZW1vdmUgdHJhY2UgbWVzc2FnZXMgZnJvbSBkZWJ1Z21zZ19oZXh0bGkuCgptc2xpZmNhayAgMyBBdWcgOTkgMDc6MDM6MTQKICAgIHNubXBfZGVidWcuaCAtIG1vdmUgREVCVUdUUkFDRSBmcm9tIGRlYnVnbXNnX2hleHRsaSB0byBERUJVR0RVTVBTRVRVUAoKbXNsaWZjYWsgIDMgQXVnIDk5IDA3OjU4OjQ5CiAgICB2YWNtX3ZhcnMuYyAtIGNvcHkgY29tbXVuaXR5IHN0cmluZywgbnVsbCB0ZXJtaW5hdGUsIHRoZW4gZGVidWcgcHJpbnQKCm1zbGlmY2FrICAzIEF1ZyA5OSAxMjo1MzozMgogICAgc25tcF9kZWJ1Zy5oIC0gZml4ICJ3YXJuaW5nOiBBTlNJIEMgZm9yYmlkcyBjb25kaXRpb25hbCBleHByIHdpdGggb25seSBvbmUgdm9pZCBzaWRlIi4KCm1zbGlmY2FrICAzIEF1ZyA5OSAxNDowNjozMwogICAgc25tcF9kZWJ1Zy5jIC0gc2lnbmVkIGNvbXBhcmlzb24gZm9yIGxlbiBpbiBkZWJ1Z21zZ19oZXh0bGkuCgptc2xpZmNhayAgNCBBdWcgOTkgMDM6NDg6MDIKICAgIC0oc211eC5jKSAtIHBhdGNoIHN1cHBsaWVkIGJ5IE5pY2sgQW1hdG8gdG8gZml4IEFTTl9JUEFERFJFU1MgcGFyc2UuCgptc2xpZmNhayAgNCBBdWcgOTkgMDU6MDM6MTEKICAgIHVuZG8gcGF0Y2ggYXJvdW5kIFNvbGFyaXMnIGNvbmZpZ3VyZSBmYWlsdXJlIHRvIHJlZ2lzdGVyIEhBVkVfR0VUSE9TVEJZTkFNRS4KCm1zbGlmY2FrICA0IEF1ZyA5OSAwOToxNzoxOAogICAgLShjb25maWd1cmUqKSAtIEtlbiBIb3Juc3RlaW46IGZpeCB0ZXN0IHh4Z2V0aG9zdGJ5bmFtZSwgeHhnZXRzZXJ2YnluYW1lLgoKbXNsaWZjYWsgIDQgQXVnIDk5IDEyOjMzOjU2CiAgICBzbm1wX2FwaS5jIC0gZHVtbXkgZnVuY3Rpb25zIHNubXBfc3luY2hfe3NldHVwLHJlc2V0fSBhbmQgc25tcF9nZXRfZXJybm8uCgptc2xpZmNhayAgNSBBdWcgOTkgMDM6MjU6NTUKICAgIGNvbmZpZy5zdWIgLSBwYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW4gdG8gc3VwcG9ydCBIUFVYIDExCgptc2xpZmNhayAgNSBBdWcgOTkgMTE6MTE6NTMKICAgIHNubXBfYXBpLjMgLSBkZXNjcmliZSBzbm1wX2Vycm9yKCksIHJlcGxhY2VzIHNubXBfZXJybm8gYW5kIHNubXBfZ2V0X2Vycm5vKCkKCmRhdmVzICA2IEF1ZyA5OSAwNTo1OTo0NgogICAgLSAoYWNjb25maWcuaCBjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlKToKICAgICAgLSBjb25maWd1cmUtdGltZSBmbGFnIHRvIGNvbnRyb2wgcHJvdmlzaW9uIG9mICJkdW1teSIgdmFsdWVzCgpkYXZlcyAgNiBBdWcgOTkgMDY6MDI6MTUKICAgIC0gKG1pYklJLyouYyBob3N0LyouYyk6IERvbid0IHByb3ZpZGUgImR1bW15IiB2YWx1ZXMgKHVubGVzcyBleHBsaWNpdGx5IGNvbmZpZ3VyZWQpCgpuYmEgIDkgQXVnIDk5IDAwOjI0OjM3CiAgICBwYXJzZS5jOglwYXJzZSBhZ2VudCBjYXBhYmlsaXRpZXMKCmRhdmVzICA5IEF1ZyA5OSAwMTowMjoxNQogICAgLSAoRkFRKTogTmluZSBuZXcgcXVlc3Rpb25zLCBwbHVzIGFzc29ydGVkIHR3ZWFrcyBmb3IgdGhlIG5ldyByZWxlYXNlLgoKbXNsaWZjYWsgIDkgQXVnIDk5IDA2OjQ4OjQ3CiAgICBtaWIuKiwgcGFyc2UuKiAtIG1vdmUgcHJpbnRfb2lkX3JlcG9ydCBhbmQgbWluaW9ucyB3aG9sbHkgaW50byBtaWIuYwoKbXNsaWZjYWsgIDkgQXVnIDk5IDA2OjUwOjM2CiAgICAgc25tcGRlbHRhLCB0cmFuc2xhdGUsIHRyYXBkKSAtIGxpc3QgYWxsIG9wdGlvbnMgaW4gdXNhZ2U7IHJlbW92ZSBkaXNhYmxlcyBmb3IgcHJpbnRfb2lkX3JlcG9ydCBpbiB0cmFuc2xhdGUuCgptc2xpZmNhayAgOSBBdWcgOTkgMDY6NTI6NDcKICAgIHNubXBkLmMgLSBsaXN0IGFsbCBvcHRpb25zIGluIHVzYWdlCgptc2xpZmNhayAgOSBBdWcgOTkgMDY6NTQ6MDEKICAgIGxpYnNubXAuZGVmIC0gcmVtb3ZlIHByaW50X29pZF9yZXBvcnQgZGlzYWJsZSBvcHRpb25zCgptc2xpZmNhayAgOSBBdWcgOTkgMDk6NDU6MTUKICAgIC0oc25tcC5jKSBmaXggYnVmZmVyIG92ZXJmbG93IGluIHhkdW1wLCBvZiBhbGwgcGxhY2VzICg3NyBzL2IgNzg7IHVzaW5nIDgwKQoKbmJhICA5IEF1ZyA5OSAxMDo0MzoyOAogICAgKG1hbnkpOgludWtlIHZhcmlvdXMgcHJvdG90eXBlIHdhcm5pbmdzCgptc2xpZmNhayAgOSBBdWcgOTkgMTE6NDA6MjUKICAgIC0obWQ1LmMpIGZpeCByZWFkIHBhc3QgZW5kIHByb2JsZW0KICAgIC0oc25tcF9hcGkuYykgZml4IGxvc2luZyBjb21tdW5pdHkgc3RyaW5nIHByb2JsZW0KCmhhcmRha2VyICA5IEF1ZyA5OSAxMzoxMjozNQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIC9kZXYvcmFuZG9tIHRlc3QuCgptc2xpZmNhayAgOSBBdWcgOTkgMTU6MDc6MjQKICAgIHNubXB1c20uYyAtIGFsd2F5cyBjbGVhciBmaWVsZF9sZW4gaWYgcmVmIGlzIHZhbGlkIHB0cjsKICAgIHNubXBfYXBpLmMgLSBkb24ndCBvdmVyd3JpdGUgY29tbXVuaXR5IHBvaW50ZXIgd2l0aCBzZWN1cml0eUF1dGhQcm90byBwb2ludGVyCgpuYmEgMTAgQXVnIDk5IDA0OjQ1OjE3CiAgICBjb25maWd1cmUuaW4gY29uZmlnLmguaW4gY29uZmlndXJlIHMvbmV0YnNkIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgogICAgCXN1cHBvcnQgZm9yIE5ldEJTRC9zcGFyYyBhbmQgTmV0QlNEIDEuNAoKbmJhIDEwIEF1ZyA5OSAwNDo0NjozNQogICAgc25tcGxpYi9taWIuYzoJZml4IGhhbmRsaW5nIG9mIG51bWVyaWMgb2lkcyBhbmQgcmVwb3J0aW5nIGVycm9ycwoKbmJhIDEwIEF1ZyA5OSAwNDo0NzoyMgogICAgYWdlbnQva2VybmVsLmM6CWFib3J0IG9uIGt2bV9vcGVuIGZhaWx1cmVzCgpuYmEgMTAgQXVnIDk5IDA0OjQ4OjQxCiAgICBzbm1wbmV0c3RhdC9pZi5jOglmaXhlcyBmb3Igc25tcG5ldHN0YXQgLWkgb24gdmlydHVhbCBpbnRlcmZhY2VzCgpuYmEgMTAgQXVnIDk5IDA0OjUwOjUyCiAgICBpbnRlcmZhY2VzLmMgdmFyX3JvdXRlLmMgc25tcF9sb2dnaW5nLmM6IGZpeCBjb21waWxlciB3YXJuaW5ncwoKbXNsaWZjYWsgMTAgQXVnIDk5IDA5OjE5OjEwCiAgICByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jIC0gY29udmVydCBmcHJpbnRmKHN0ZGVyciB0byBzbm1wX2xvZyhMT0dfRVJSLFdBUk5JTkcpCgptc2xpZmNhayAxMCBBdWcgOTkgMTA6MDQ6NDAKICAgIEZpeCBmb3IgYnVpbGQgKG5vIHBhZ2VzaXplIHZhciBkZWZpbmVkIGZvciBsaW51eCkuCgpoYXJkYWtlciAxMCBBdWcgOTkgMTE6MDU6MzgKICAgIC0gKHNubXBkLmMpOiBsb2cgdmVyc2lvbiBudW1iZXIgYWZ0ZXIgc3RkZXJyIGlzIG9wdGlvbmFsbHkgY2xvc2VkLgoKaGFyZGFrZXIgMTAgQXVnIDk5IDE0OjI2OjMzCiAgICAtIChzbm1wX3ZhcnMuYyk6IHByb3RlY3QgYWdhaW5zdCBldmlsIG1pYiBtb2R1bGVzIGZyb20gbW9kaWZ5aW5nCiAgICAgIG1lbW9yeSB0aGV5IHNob3VsZG4ndCBiZSBtb2RpZnlpbmcgeWV0LgogICAgICAtIChpZmRlZidlZCBmb3Igc3BlZWQgcHJvZmlsaW5nIGxhdGVyKS4KCmhhcmRha2VyIDEwIEF1ZyA5OSAxNTo1NDozMwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBmb3JjZSB2MyBlbmdpbmVJRCBzZXR0aW5nIHRvIHNvbWV0aGluZyBib2d1cyB0bwogICAgICBnZXQgYXJvdW5kIGxvY2FsIGNvbmZpZ3VyYXRpb24gZGF0YSBzdG9yZSB0aW1lIHN5bmNocm9uaXphdGlvbiBjb25mbGljdHMuCgpoYXJkYWtlciAxMCBBdWcgOTkgMTc6MjM6NTkKICAgIC0gKHNubXBkLmMpOiBwcmludCAtSCB1c2FnZSB0byBzdGRlcnIuCgpoYXJkYWtlciAxMSBBdWcgOTkgMTM6MDQ6NTAKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCByZWFkX2NvbmZpZy5jKToKICAgICAgLSBNYWtlIHBlcnNpc3RlbnQgY2FjaGUgY29uZm9ybSB0byBhIG1vcmUgc2VjdXJlIHVtYXNrLgoKbmJhIDExIEF1ZyA5OSAyMTo1MjoyNgogICAgaHJfc3RvcmFnZS5jOglyZW1vdmUgdG8gZm9yZ290dGVuIGRlYnVnIGxpbmVzLgoKbmJhIDExIEF1ZyA5OSAyMTo1MzozMQogICAgc25tcG5ldHN0YXQvaWYuYzoJaGFuZGxlIG5vbi1jb250aWd1b3VzIGlmVGFibGUuIEFsc28gbWFrZSB0aGUKICAgIAljb3VudGVycyB1bnNpZ25lZC4KCmhhcmRha2VyIDEyIEF1ZyA5OSAxNjoxNjowMQogICAgLSAoc25tcC5jb25mLjUuZGVmKTogdXBkYXRlZCB3aXRoIHRoZSBuZXdlciB0b2tlbiBsaXN0LgoKaGFyZGFrZXIgMTIgQXVnIDk5IDE2OjQxOjIyCiAgICAtIChGQVEsIHNubXBjbWQuMSwgc25tcHRyYXAuMSk6IG1pbm9yIGRvYyB1cGRhdGVzLgoKaGFyZGFrZXIgMTIgQXVnIDk5IDE2OjQ2OjM0CiAgICAtIChORVdTLCBSRUFETUUpOiBtaW5vciB1cGRhdGVzLgoKZGF2ZXMgMTMgQXVnIDk5IDAyOjQ3OjAwCiAgICAtIChleGFtcGxlcy91Y2REZW1vUHVibGljLltjaF0KICAgICAgIGlwZndjaGFpbnMvaXBmd2NoYWlucy5bY2hdIG1pc2MvaXBmd2FjYy5bY2hdCiAgICAgICB0YXJnZXQvc25tcFRhcmdldHtBZGRyLFBhcmFtc31FbnRyeS5bY2hdCiAgICAgICBzbXV4L3NubXBfKi5bY2hdKToKICAgICAgIC0gUmVnaXN0ZXIgbW9kdWxlcyBkeW5hbWljYWxseSBhdCBydW4tdGltZQoKaGFyZGFrZXIgMTMgQXVnIDk5IDA3OjExOjM1CiAgICAtIChNYWtlZmlsZS5pbik6ICJtYWtlIHRlc3QiIGluIHRvcCBsZXZlbCBNYWtlZmlsZS4KCmhhcmRha2VyIDEzIEF1ZyA5OSAwNzoxMjoxOAogICAgLSAoTkVXUywgUkVBRE1FLnNubXB2MywgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgpoYXJkYWtlciAxMyBBdWcgOTkgMDc6MTY6NTEKICAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAxMyBBdWcgOTkgMDk6MzM6NDAKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZG9uJ3QgdXNlIE5PX0RVTU1ZX1ZBTFVFUyBieSBkZWZhdWx0LgoKbXNsaWZjYWsgMTMgQXVnIDk5IDExOjE0OjM5CiAgICAoaG9zdC9ocl9kZXZpY2UuYyxob3N0L2hyX3ByaW50LmMsIGhvc3QvaHJfcHJvYy5jLGhvc3QvaHJfc3RvcmFnZS5jLAogICAgaG9zdC9ocl9zd2luc3QuYyxob3N0L2hyX3N3cnVuLmMsIGhvc3QvaHJfc3lzdGVtLmMsbWliSUkvYXQuYywKICAgIG1pYklJL2ludGVyZmFjZXMuYyxtaWJJSS9pcC5jLCBtaWJJSS9zeXN0ZW1fbWliLmMsbWliSUkvdGNwLmMsCiAgICBtaWJJSS91ZHAuYyxtaWJJSS92YXJfcm91dGUuYykgLSAjaWYgTk9fRFVNTVlfVkFMVUVTIChoZWxwIG91dCBjb25maWd1cmUpCgpoYXJkYWtlciAxMyBBdWcgOTkgMTE6NTU6MzEKICAgIC0gKHZhcl9yb3V0ZS5jKTogZG9uJ3QgZG8gY2FjaGluZyBmb3IgTk9fRFVNTVlfVkFMVUVTLgoKbXNsaWZjYWsgMTMgQXVnIDk5IDEyOjE4OjE3CiAgICB2YXJfcm91dGUuYyAtICNpZmRlZiBOT19EVU1NWSAtLT4gI2lmIE5PX0RVTU1ZIChsaWtlIHRoZSBvdGhlciB1c2VzKS4KCmhhcmRha2VyIDEzIEF1ZyA5OSAxMjo0OTozNQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBwcm9wZXJseSBkbyB3aGF0IC0td2l0aG91dC1kdW1teS12YWx1ZXMKICAgICAgc2hvdWxkIGRvLgoKaGFyZGFrZXIgMTMgQXVnIDk5IDE1OjIyOjUzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSBjb25maWdfbG9hZF9taWIgcGFyc2luZy4KCmhhcmRha2VyIDEzIEF1ZyA5OSAxNTozNTo1NAogICAgLSAoTWFrZWZpbGUuaW4pOiBkb24ndCByZW1vdmUgbWliX21vZHVsZV9sb2Fkcy5oLgoKaGFyZGFrZXIgMTMgQXVnIDk5IDE2OjA1OjQyCiAgICAtIChyZW1vdmUtZmlsZXMpOiByZW1vdmUgdGhlIElTU1VFUyBmaWxlIGZvciByZWxlYXNlcy4KCmhhcmRha2VyIDEzIEF1ZyA5OSAxNjowNjo1MQogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlNiApCgpuYmEgMTYgQXVnIDk5IDE0OjU4OjQwCiAgICBzbm1wbmV0c3RhdC9pZi5jOiBhbGxvdyAtaSBhbmQgLW8gb3V0cHV0cyBldmVuIHdpdGggaW5jb21wbGV0ZSByZXNwb25zZXMKICAgIAlmcm9tIHNubXBkIChzdWNoIGFzIExpbnV4IHRoYXQgZG9lcyBub3QgcmV0dXJuIGlmSW5OVUNhc3RQa3RzCiAgICAJd2l0aCB0aGUgbmV3IERVTU1ZIHNldHVwKQoKbmJhIDE2IEF1ZyA5OSAxNDo1OToyOQogICAgc25tcG5ldHN0YXQvbWFpbi5jOiBlbmFibGVfc3RkZXJybG9nKCkgc28gdGhhdCB3ZSBnZXQgYW4gZXJyb3IgbWVzc2FnZQogICAgCWZvciBiYWQgaG9zdCBuYW1lcy4KCm5iYSAxOCBBdWcgOTkgMDI6NDA6NDgKICAgIGFnZW50L3NubXBkLmM6CW1vdmUgdGhlIHRlcm1pbmF0aW9uIHByb2Nlc3NpbmcgZnJvbSB0aGUgc2lnbmFsIGhhbmRsZXIKICAgIAl0byBhZnRlciB0aGUgbWFpbiBsb29wIGhhcyB0ZXJtaW5hdGVkLgoKbmJhIDE4IEF1ZyA5OSAwMjo1MTo1NwogICAgLSBzbm1wZC5jLCBhZ2VudF9yZWFkX2NvbmZpZy4/LCB2ZXJzaW9uaW5mby5jOiBtb3ZlIHRoZSByZWNvbmZpZ3VyYXRpb24KICAgIAlvdXRzaWRlIHRoZSBzaWduYWwgaGFuZGxlci4KCm5iYSAxOCBBdWcgOTkgMDk6MjY6MzUKICAgIC0gaW50ZXJmYWNlcy4/OiB1cGRhdGVzIGZvciBMaW51eCB0byBoYW5kbGUgbGFyZ2UgY291bnRlcnMgYW5kIHZpcnR1YWwKICAgIAlpbnRlcmZhY2VzLgoKbmJhIDE4IEF1ZyA5OSAwOTozMTowNgogICAgLSAobWFueSk6CWNoYW5nZSB0aGUgbmFtZXMgb2YgdGhlIGxvZ2dpbmcgZnVuY3Rpb25zIHRvIGJlIHNubXBfKgogICAgCWRlZmF1bHQgZG9fc3RkZXJyX2xvZ2dpbmcgdG8gMS4KCm5iYSAxOSBBdWcgOTkgMDI6MzM6NTYKICAgIC0gaW50ZXJmYWNlcy5jOiByZW1vdmUgc29tZSBsZWZ0IG92ZXIgZGVidWcgb3V0cHV0CgpuYmEgMTkgQXVnIDk5IDAyOjM1OjEwCiAgICAtIHNubXBfbG9nZ2luZy5jLCBhZ2VudC92YXJpb3VzOiByZWluc3RhdGUgLWEgYW5kIC1WIGxvZ2dpbmcgKGFsbW9zdCkuCiAgICAJdGltZXN0YW1wIGZpbGUgYW5kIHN0ZGVyciBsb2dnaW5nLgoKbmJhIDE5IEF1ZyA5OSAxMDozODowMgogICAgLSBzbm1wX2FwaS5jOgljb3JyZWNseSBjYWxsIHByZS1wYXJzZSBob29rLCBhbHNvIHdoZW4gbm90IGRlYnVnZ2luZwogICAgCSh0aGlzIGtpbGxlZCB0aGUgbGlid3JhcCBjaGVjayBpbiBzbm1wZCkKCm5iYSAxOSBBdWcgOTkgMTA6Mzg6NDgKICAgIC0gc211eC5jOiByZW1vdmUgc29tZSBleHRyYW5lb3VzIFxuIGZyb20gc25tcF9sb2dfcGVycm9yIGNhbGxzLgoKbmJhIDE5IEF1ZyA5OSAxMDo0MDoyMgogICAgLSBzbm1wZC5jOiByZW1vdmUgc29tZSBzdXBlcmZsdW91cyA6IGZyb20gc25tcF9sb2dfcGVycm9yLgogICAgCUxvZyB3aGVuIHNubXBkIHJlY29uZmlndXJlcyBmb2xsb3dpbmcgYSBTSUdIVVAKCm5iYSAxOSBBdWcgOTkgMTQ6MDk6MjUKICAgIC0gc25tcF9hcGkuPywgc25tcGQuYywgc25tcHRyYXAuYywgc25tcHRyYXBkLmM6IHJlaW5zdGF0ZSBhZ2VudF9hZGRyIGluCiAgICAJdGhlIHBkdSBzdHJ1Y3R1cmUgKHVzZWQgZm9yIHYxIHRyYXBzKS4KCmhhcmRha2VyIDE5IEF1ZyA5OSAxNjowOTo1NAogICAgLSAoc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMpOiBQYXRjaCBmcm9tIGRsZW5nZWxAaG9tZS5jb206CiAgICAgIC0gY2hlY2sgYXJndW1lbnQgY291bnQgZm9yIG1pbmltdW0gbnVtYmVyLgoKbmJhIDIwIEF1ZyA5OSAwMzo0MzozNwogICAgLSBhZ2VudHgvKjogdmFyaW91cyBwcm90b3R5cGUgZml4ZXMsIHRvIGtlZXAgbnVtYmVyIG9mIHdhcm5pbmdzIGRvd24KCmhhcmRha2VyIDIwIEF1ZyA5OSAxMzo0Mzo1NgogICAgLSAoZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOgogICAgICAtIG1ha2UgbG9nZ2luZyBvZiB0aW1lc3RhbXBzIG9wdGlvbmFsIGJ5IGEgc25tcC5jb25mIGRpcmVjdGl2ZS4KCmhhcmRha2VyIDIwIEF1ZyA5OSAxMzo1Njo1NwogICAgLSAoc25tcC5jb25mLjUuZGVmLCBkZWZhdWx0X3N0b3JlLmgsIHNubXBfbG9nZ2luZy5jKToKICAgICAgLSB0dXJuIG9mZiB0aW1lIHN0YW1wIGxvZ2dpbmcgYnkgZGVmYXVsdC4gIEl0IG11c3QgYmUgZXhwbGljaXRseQogICAgICAgIHJlcXVlc3RlZCBpbiB0aGUgc25tcC5jb25mIGZpbGUgdG8gdHVybiBpdCBvbi4KICAgICAgICAodGhlIHJlYXNvbiBpcyB0aGF0IGEgbG90IG9mIGxvZ2dpbmcgaXMgaW5jcmVtZW50YWwgaW4gbmF0dXJlIGFuZAogICAgICAgIGlzIG5vdCBsaW5lIGJ1ZmZlcmVkIGJlZm9yZSBiZWluZyBzZW50IHRvIHRoZSBsb2dnaW5nIHJvdXRpbmVzLgogICAgICAgIFRoZSBvdGhlciBzb2x1dGlvbiBpcyB0byBoYXZlIHRoZSBsb2dnaW5nIHJvdXRpbmVzIGRldGVjdCB3aGVuIHRvCiAgICAgICAgcHJpbnQgdGltZXN0YW1wcyBieSB3YXRjaGluZyBvdXQgZm9yIFxuJ3MuICBCdXQsIG5vdCB0aGlzIHJvdW5kLgoKaGFyZGFrZXIgMjAgQXVnIDk5IDE2OjM5OjIxCiAgICAtIChzbm1wX2FwaS5oLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgsIGFzbjEuYyk6IDY0Yml0IGNsZWFudXAuCgpoYXJkYWtlciAyMCBBdWcgOTkgMTc6MDg6MTcKICAgIC0gKE5FV1MpOiBsYXN0IG1pbnV0ZSBjaGFuZ2VzCgpoYXJkYWtlciAyMCBBdWcgOTkgMTc6MTA6MjYKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTcgKQoKaGFyZGFrZXIgMjIgQXVnIDk5IDE3OjMzOjAwCiAgICAtIChpcGZjaGFpbnMpOiByZW1vdmVkIGZyb20gZGlzdHJpYnV0aW9uLiAgTmV3ZXIgb25lIGluIGZ0cCdzIGNvbnRyaWIgZGlyLgoKaGFyZGFrZXIgMjIgQXVnIDk5IDE3OjU0OjU3CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gLS13aXRob3V0LWR1bW15LXZhbHVlcyBpcyBkZWZhdWx0IGFnYWluLgogICAgICAtIGNsZWFudXAgb2YgLS1oZWxwIHN0dWZmLgogICAgICAtIGZpeCBvZiBwZXJpc3RlbnQgZGlyZWN0b3J5IGNyZWF0aW9uLgoKaGFyZGFrZXIgMjIgQXVnIDk5IDE3OjU2OjI3CiAgICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDIyIEF1ZyA5OSAxNzo1NzoyNwogICAgLSAoc25tcF9hcGkuaCk6IHZlcnNpb24gLT4gdV9sb25nLgoKbXNsaWZjYWsgMjMgQXVnIDk5IDA2OjE0OjM5CiAgICBSZW1vdmUgbGFzdCB2ZXN0aWdlcyBvZiBjb25maWdfbG9hZF9taWIKCmhhcmRha2VyIDIzIEF1ZyA5OSAwNzowMjo0MwogICAgLSAoTkVXUyk6IGFuc2kgbWVudGlvbmVkLgoKbXNsaWZjYWsgMjMgQXVnIDk5IDA5OjAwOjU5CiAgICBXaW4zMiBidWlsZCBmaXhlcwoKbmJhIDIzIEF1ZyA5OSAxMzo1NDozMgogICAgLSBhZ2VudC9zbm1wZC5jLCBhZ2VudC9zbm1wX3ZhcnMuYzogbW92ZSBzb21lIC12IGxvZ2dpbmcgdG8gYSBtb3JlIHJhdGlvbmFsCiAgICAJcGxhY2UuCgptc2xpZmNhayAyMyBBdWcgOTkgMTQ6MDI6NTEKICAgIERlc2NyaWJlIFVTRV9BU05fU0hPUlRfTEVOIGluIEZBUSwgYW5kIGltcGxlbWVudCBpbiBfc25tcF9idWlsZC4KCm1zbGlmY2FrIDIzIEF1ZyA5OSAxNTozMjoyMQogICAgSEFDSyEgZml4dXAgc2hvcnQgbGVuZ3RoIChmaXJzdCBwdXQgY29ycmVjdCBjb21tdW5pdHkgc3RyaW5nIGluIHBkdS0+ICkuCgpoYXJkYWtlciAyMyBBdWcgOTkgMTY6MTQ6MDAKICAgIC0gKFQwMjhzbm1wdjNnZXRmYWlsKTogc25tcHYzIGdldCBmYWlsdXJlIHRlc3QuCgpoYXJkYWtlciAyMyBBdWcgOTkgMTY6MTQ6MDAKICAgIC0gKElOU1RBTEwpOiByZW1vdmUgdmVyc2lvbiBzcGVjaWZpYyBpbmZvcm1hdGlvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNi4xIC0+IFYzLjYuMgoKaGFyZGFrZXIgMTYgTWFyIDk5IDA4OjE1OjE4CiAgICAtIChkbG1vZC5jKTogcmVtb3ZlZCBhIGJvZ3VzIG5ldy1saW5lLgoKaGFyZGFrZXIgMTYgTWFyIDk5IDEwOjM0OjAzCiAgICAtIChocl9zd3J1bi5jKTogZml4IGZpbGUgZGVzY3JpcHRvciBsZWFrIG9uIGZyZWVic2QuCgptc2xpZmNhayAxNiBNYXIgOTkgMTE6MjM6MzAKICAgIC0oc25tcF9hcGkuYykgY29uc2lzdGVudCBlcnJvciByZXR1cm4uCgptc2xpZmNhayAxNiBNYXIgOTkgMTE6MzM6NTIKICAgIC0gbW92ZSBNQVRDSF9GQUlMRUQvTUFUQ0hfU1VDQ0VFREVEIGZyb20gdXRpbF9mdW5jcy5oIHRvIG1pYmluY2wuaAoKbXNsaWZjYWsgMTcgTWFyIDk5IDEzOjUzOjQ4CiAgICAtKGhyX3N3cnVuLmMpIC0gcHJldmVudCBTdW5PUyA0LjEgY29yZSAoc3Vub3M0IHN0aWxsIHByaW1pdGl2ZSkKCm1zbGlmY2FrIDE4IE1hciA5OSAwODozNzo0NQogICAgLSAobWliSUkvaXAuYykgZml4IE1JQl9JUENPVU5URVJfU1lNQk9MIHVzYWdlCgpoYXJkYWtlciAxOSBNYXIgOTkgMDk6MjM6MzgKICAgIC0gKHNubXBnZXQuYywgc25tcHdhbGsuYyk6IGZpeGVkIGluaXRpYWxpemF0aW9uIGFuZCB1c2FnZSBvZiAiZmFpbHVyZXMiLgoKaGFyZGFrZXIgMjMgTWFyIDk5IDEwOjA5OjQ3CiAgICAtIChNYWtlZmlsZS5pbik6IGFkZCBtb3JlIHRhcmdldHMuCgpoYXJkYWtlciAyMyBNYXIgOTkgMTA6MTA6MTEKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBtYWtlIGNvcHlfd29yZCgpIHJldHVybiB0aGUgbmV4dCB0b2tlbiwgbm90IHRoZQogICAgICBuZXh0IHNwYWNlLgoKaGFyZGFrZXIgMjMgTWFyIDk5IDEwOjExOjAzCiAgICAtIChtaWJkZWZzLmgsIHN0cnVjdC5oLCBleHRlbnNpYmxlLmMsIGV4dGVuc2libGUuaCwgcHJvYy5jLCBwcm9jLmgsCiAgICAgIHNubXBkLmNvbmYuNS5kZWYsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIHBlci1wcm9jZXNzL2V4ZWMgZml4IHNjcmlwdHMgY3JlYXRlZC4KCmhhcmRha2VyIDIzIE1hciA5OSAxMDoyMzoyMQogICAgLSAodmVyc2lvbnRhZyk6IHJlZ2V4cCBmaXguCgpoYXJkYWtlciAyOCBNYXIgOTkgMTY6MTE6MzIKICAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgpOiByZWxvY2F0ZSB0bwogICAgICBzbm1wTW9kdWxlcy4xMiwgd2hlcmUgdGhleSBzaG91bGQgYmUuCgpoYXJkYWtlciAyOCBNYXIgOTkgMTY6MTc6MjQKICAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOgogICAgICAtIHdoZW4gdXNpbmcgY29weV93b3JkKCkgZG9uJ3Qgc2tpcCBzcGFjZXMsIHNpbmNlIGl0IGRvZXMgdGhhdC4KCm1zbGlmY2FrICAxIEFwciA5OSAxMzoxMDo0NwogICAgLSAobGlic25tcC5oKSBBc3ltcHRvdGljYWxseSBjbG9zZXIgdG8gc3VwcG9ydGluZyBDTVUgY29uc3RhbnRzLgoKbXNsaWZjYWsgIDUgQXByIDk5IDExOjA2OjI3CiAgICAtIChzbm1wX2FwaS5jLCBtYWluLmMsIHNubXBfcGFyc2VfYXJncy5jKSBKb2UgTWFyem90J3MgZml4IHRvIGNvcHkgZXZlbiBhbiBlbXB0eSBjb21tdW5pdHkgbmFtZS4KCm1zbGlmY2FrICA1IEFwciA5OSAxNDoxMDoxNAogICAgLSBidWlsZCBzbm1wbmV0c3RhdCB3aXRoIEN5Z1dpbjMyCgptc2xpZmNhayAgNSBBcHIgOTkgMTQ6MjI6NDMKICAgIC0gQnVpbGQgd2l0aCBDeWdXaW4zMgoKbXNsaWZjYWsgIDUgQXByIDk5IDE1OjU5OjIwCiAgICAtIEJ1aWxkIHVzaW5nIEN5Z1dpbjMyIChpbmNsdWRlcyBOaWVscyBCLidzIHNubXBfdmFycy5jIHBhdGNoKS4KCmhhcmRha2VyICA2IEFwciA5OSAwOToyMzoxNgogICAgLSAoY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViKTogbmV3IHZlcnNpb25zIGZyb20gYXV0b2NvbmYgMi4xMy4KCm1zbGlmY2FrICA2IEFwciA5OSAxMDo1OTowNQogICAgLSAoZXh0ZW5zaWJsZS5jKSBxdWVsbCB3YXJuaW5nIGFib3V0IGNvbXBhcmluZyBwb2ludGVyIHdpdGggbm9uLXBvaW50ZXIuCgptc2xpZmNhayAgNiBBcHIgOTkgMTE6MzM6NTQKICAgIC0gYW5vdGhlciByb3VuZCBvZiBBTlNJLWZ5aW5nIHRoZSBhZ2VudCBjb21wbGV0ZWQuCgpoYXJkYWtlciAgNiBBcHIgOTkgMTU6MTM6NDAKICAgIC0gKCopOiBNZXJnZWQgdGhlIDQuMCBsaW5lIGludG8gdGhlIDMuNi4xIGxpbmUuCgpoYXJkYWtlciAgNiBBcHIgOTkgMTU6Mzg6NDUKICAgIC0gKG1pYmluY2wuaCwgdWNkRGVtb1B1YmxpYy5jLCB2YWNtX3ZhcnMuaCwgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsCiAgICAgIE1ha2VmaWxlLmluKTogZmluYWwgbWVyZ2UgcGllY2VzIG9mIHJlY2VudCB2MyBsaW5lIGNoYW5nZXMuCgptc2xpZmNhayAgNiBBcHIgOTkgMjE6MjQ6MjIKICAgIC0gY2hhbmdlcyBmb3IgQU5TSSBoZWFkZXJzOyBQT1NJWChpbmRleCB2cyBzdHJjaHIpOyBtaW5vciBmaXhlcwoKbXNsaWZjYWsgIDYgQXByIDk5IDIyOjEzOjU5CiAgICAtICh2YWNtX3ZhcnMuYykgLSBzZXQgZ2xvYmFsIHB0cnMgPSAwLgoKbXNsaWZjYWsgIDYgQXByIDk5IDIyOjE0OjQzCiAgICAtIChzbm1wX3ZhcnMuYykgbW9yZSB2MnBhcnR5IHJld29yayBuZWVkZWQKCm1zbGlmY2FrICA3IEFwciA5OSAwNjoxNzoyOAogICAgLSAoKSBtb3JlIEFOU0kgaGVhZGVyIGZpeHVwczsgdG91Y2h1cCBmb3IgTSQgV2luMzIgYnVpbGQKCmhhcmRha2VyICA3IEFwciA5OSAxMDo0MjoxMAogICAgLSAoY29uZmlnLmguaW4sIHNubXBfdmFycy5jLCBlbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXB0cmFwZC5jLAogICAgICBNYWtlZmlsZS5pbiwgYWxsX2dlbmVyYWxfbG9jYWwuaCwga2V5dG9vbHMuYywga2V5dG9vbHMuaCwKICAgICAgbGNkX3RpbWUuYywgbWQ1LmMsIHJlYWRfY29uZmlnLmMsIHNjYXBpLmMsIHNubXBfYXBpLmMsIHNubXB1c20uYywKICAgICAgc25tcHYzLmMsIHRvb2xzLmMsIHRvb2xzLmgpOgogICAgICAtIG1pc2MgbWVyZ2luZywgaW5jbHVkaW5nIGZpeGVzIGFuZCBkZWJ1Z2dpbmcgc3RhdGVtZW50IGNoYW5nZXMgdG8KICAgICAgICBuZXdlciBtb2RlbC4KICAgICAgLSBhIGZldyAtV2FsbCBmaXhlcy4KCmhhcmRha2VyICA3IEFwciA5OSAxMDo0ODowNwogICAgLSAoc25tcF9taWIuYyk6IHJlbW92ZWQgdW5ubmVlZGVkIGhlYWRlcl9zbm1wKCkuCgpoYXJkYWtlciAgNyBBcHIgOTkgMTE6Mjg6MDIKICAgIC0gKHVjZERlbW9QdWJsaWMuYywgc3lzT1JUYWJsZS5jLCB2YWNtX3ZhcnMuYywgc211eC5jLCBzbm1wRW5naW5lLmMsCiAgICAgIHVzbVVzZXIuYywgc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6CiAgICAgIC0gZGVidWdnaW5nIHN0YXRlbWVudCBjb252ZXJzaW9uCgptc2xpZmNhayAgNyBBcHIgOTkgMTI6MDA6MjAKICAgIC0gKGFnZW50L3NubXAycC5jIGFnZW50L3NubXBfYWdlbnQuYyBhZ2VudC9zbm1wX3ZhcnMuaAogICAgYWdlbnQvdmlld19wYXJzZS5jIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwogICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYwogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYyBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jIGFwcHMvc25tcGRlbHRhLmMKICAgIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwZC5jIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYwogICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMgc25tcGxpYi9hY2xfcGFyc2UuYwogICAgc25tcGxpYi9jb250ZXh0Lmggc25tcGxpYi9jb250ZXh0X3BhcnNlLmMgc25tcGxpYi9wYXJ0eS5oCiAgICBzbm1wbGliL3BhcnR5X3BhcnNlLmMgc25tcGxpYi9yZWFkX2NvbmZpZy5jIHNubXBsaWIvc25tcF9hcGkuYwogICAgc25tcGxpYi9zbm1wX2F1dGguYyBzbm1wbGliL3NubXBfaW1wbC5oIHNubXBsaWIvdmFjbS5oCiAgICBzbm1wbGliL3ZpZXcuaCkgIGZnZXRzIHVzZSBzaXplb2YgbW9zdGx5LCBvaWQgYmFzZSBzaXplIGlzIE1BWF9PSURfTEVOCgptc2xpZmNhayAgNyBBcHIgOTkgMTI6MTc6MjMKICAgIC0oaXBmd2NoYWlucy5jKSByZW1vdmUgbXVsdGlwbGUgZGVmaW5pdGlvbnMgb2YgTUFUQ0hfRkFJTEVECgptc2xpZmNhayAgNyBBcHIgOTkgMTU6MDA6MzkKICAgIC0odXNtVXNlci5jLHN5c3RlbS5jKSBwbHVnIG1lbSBsZWFrOyAoc25tcF9hcGkuYykgZW5mb3JjZSBhcnJheSBsaW1pdC4KCmhhcmRha2VyIDEyIEFwciA5OSAyMjoxNDozMQogICAgLSAobWliaW5jbC5oKTogaW5jbHVkZSBzeXMvdGltZS5oLgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjE1OjM5CiAgICAtIChocl91dGlscy5oKTogcmVtb3ZlIHZhcmlhYmxlIG5hbWVzIGZyb20gcHJvdG90eXBlcyAod2FzIGNhdXNpbmcgcHJvYmxlbXMpLgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjE2OjQ1CiAgICAtICh0a21pYik6IG1ha2UgZGlzcGxheWVkIG1pYiBub2RlIGluZm8gaW50byB0d28gY29sdW1ucyBpbnN0ZWFkIG9mIG9uZS4KCmhhcmRha2VyIDEyIEFwciA5OSAyMjoyNTowOQogICAgLSAoc25tcF9hcGkuYyk6IG1ha2Ugc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSB0byBwb3NzaWJsZSBjcmVhdGUgYQogICAgICB2YXJsaXN0IGJlZm9yZSBhZGRpbmcgc29tZXRoaW5nIHRvIGl0LgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjE5OjIwCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIERhbmllbCBIYWdlcnR5OgogICAgICAtIGZpeCBsaWJ3cmFwIHRvIG9ubHkgYWRkIHRoZSBsaWJyYXJ5IHRvIHRoZSBhZ2VudC4KCmhhcmRha2VyIDEzIEFwciA5OSAxNToyMDowMAogICAgLSAoc3lzdGVtX21pYi5jKTogbWFrZSBzeXNEZXNjciByZWFkLW9ubHkuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6MzI6MjMKICAgIC0gKHBhc3MuYyk6IFBhdGNoIGZyb20gSmltIE1hcjoKICAgICAgLSBhZGQgY2FwYWJpbGl0eSBmb3IgYmluYXJ5IG9jdGV0IHN0cmluZ3MgaW4gcGFzcyBzY3JpcHRzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjM2OjMxCiAgICAtIChTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBTTk1QLVBST1hZLU1JQi50eHQsCiAgICAgIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IG1vZHVsZSBsb2NhdGlvbnMgZm9yIGJyb2tlbiBtaWJzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU0OjQ4CiAgICAtIChmcmVlYnNkLmgsIGZyZWVic2QyLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZyZWVic2QgdXRtcCBjbGVhbnVwcy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1Njo1MwogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbG9nIHdpdGggdGltZXN0YW1wIGF0IHNodXRkb3duLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU3OjI0CiAgICAtICh2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gYmV0dGVyIGNoZWNraW5nIG9mIC5jb25mIGZpbGUgcGFyc2luZyBsaW5lIHJlcXVpcmVtZW50cy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1ODowMgogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzdXBwb3J0IC1QLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU4OjI3CiAgICAtIChzbm1wX2NvbmZpZy41LmRlZiwgc25tcHRyYXAuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tCiAgICAgIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGNsZWFuIHVwIHNtYWxsIGJ1Z3MuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTY6MDA6NDkKICAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIG5pY2VyIHBhcnNlciBtZXNzYWdlcyAoaW5jbHVkZSBmaWxlIG5hbWVzKS4gQ29ycmVjdCBoZWxwIGZvciAtUGMuCiAgICAgIC0gQWRkIEZSQU1FLVJFTEFZLURURS1NSUIgYXMgcmVwbGFjZW1lbnQgZm9yIFJGQy0xMzE1CgpoYXJkYWtlciAxMyBBcHIgOTkgMTY6MDM6MjkKICAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzbm1wdHJhcGQgb3B0aW9uIHRvIGlnbm9yZSBhdXRoIHRyYXBzLCBhZGQgLVMgb3B0aW9uLCBsb2cgdGVybWluYXRpb24uCgptc2xpZmNhayAxNCBBcHIgOTkgMTU6Mjk6NTgKICAgIC0gKHNubXB0cmFuc2xhdGUuYykgaW5pdF9zbm1wIHRha2VzIGFyZ3VtZW50OyAiIiB1c2VkLgoKbXNsaWZjYWsgMTQgQXByIDk5IDE1OjMwOjM0CiAgICAtIChwYXJzZS5jKSBGaWxlIHBvaW50ZXIgaW5pdGlhbGl6ZWQgdG8gIiIgYmVmb3JlIGZpcnN0IHVzZS4KCmhhcmRha2VyIDE0IEFwciA5OSAxNTo1MjozNQogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogaW5pdF9zbm1wKCJzbm1wYXBwIikuCgptc2xpZmNhayAxNCBBcHIgOTkgMTY6MzE6NTUKICAgIC0gKHNubXBfYWdlbnQsYywgc25tcF9hcGkuW2NoXSwgc25tcF9jbGllbnQuW2NoXSkgZml4IHZhcmlhYmxlX2xpc3Qgd2l0aCBidWlsdC1pbiBzdG9yYWdlCgptc2xpZmNhayAxNCBBcHIgOTkgMTY6NTY6MzcKICAgIC0gYXBwcyB0aGF0IHVzZSBzbm1wX2ZpeF9wZHUgbXVzdCBjbGVhbiB1cCB0aGUgcmVzcG9uc2UgUERVICEKCm1zbGlmY2FrIDE2IEFwciA5OSAwNzozMDoyOQogICAgLSAoSVBGV0FDQy1NSUIudHh0KSBjaGFuZ2UgbW9kdWxlIG5hbWUgZnJvbSBJUEZXQURNLU1JQiB0byBJUEZXQUNDLU1JQi4KCm1zbGlmY2FrIDE2IEFwciA5OSAwNzo1NDoyMgogICAgLSAoSVBGV0NIQUlOUy1NSUIudHh0KSBpcGZ3Q2hhaW5UYWJsZSB7aXBmdyAxfSBmaXgKCm1zbGlmY2FrIDE2IEFwciA5OSAwODozMzoxNgogICAgLSAobWliLmMpICItbSIgb3IgTUlCUyA6IGNhbiBzcGVjaWZ5IE1JQiBtb2R1bGUgYnkgZmlsZSBuYW1lLgoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjEwOjA2CiAgICAtIChSRUFETUUpOiBBZGRlZCB2MyB0ZWFtIG1lbWJlcnMuCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTE6NDgKICAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoYW5nZWQgZGVmYXVsdCBzdG9yZSBsb2NhdGlvbiB0byAvdmFyL3VjZC1zbm1wCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTU6MTQKICAgIC0gKHNubXAuaCk6IFNOTVBBRE1JTkxFTkdUSCBkZWZpbml0aW9uLgoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjE2OjE2CiAgICAtIChzbm1wX2F1dGguYyk6IHJlbW92ZWQgZml4IG5vdGUuCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6Mjc6MDYKICAgIC0gKE5FV1MpOiB1cGRhdGVkCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6Mjc6NDEKICAgIC0gKHNubXB0cmFwZC44KTogbWFuIHBhdGNoIGZyb20gTmllbHMKCmhhcmRha2VyIDE2IEFwciA5OSAyMTozNDo0OQogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlMyApCgptc2xpZmNhayAxOCBBcHIgOTkgMDY6NTQ6MjYKICAgIC0gKGlwZndhY2MuaCkgc3ViZGlyIGNoYW5nZSBwZXIgSm9lIFBydWV0dHQgOiA5IC0+IDEwCgpoYXJkYWtlciAxOSBBcHIgOTkgMjE6MDE6MTUKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKToKICAgICAgLSByZXdyb3RlIG1pYjJjIHRvIGJlIG1vcmUgZGVwZW5kZW50IG9uIC5jb25mIGZpbGVzLiAgVGhlIG1haW4gLmNvbmYKICAgICAgICBmaWxlIG5vdyBjb250YWlucyB0aGUgY29kZSBpdHNlbGYuCiAgICAgIC0gbmVlZCB0byB3cml0ZSBhIGZvcmVhY2gobWlibm9kZSkgdHlwZSBwYXJzZXIgbmV4dC4KCmhhcmRha2VyIDE5IEFwciA5OSAyMTowOToyNwogICAgLSAobWliaW5jbC5oKTogYWRkIHJlYWRfY29uZmlnLmguCgpoYXJkYWtlciAxOSBBcHIgOTkgMjE6MTI6MTcKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgICAtIGNyZWF0ZWQgYSBtb3JlIGNvbnZlbmllbnQgcmVhZF9jb25maWdfcmVhZF9kYXRhKCkgZnVuY3Rpb24gdG8KICAgICAgICBnZW5lcmljYWxseSByZWFkIGEgdG9rZW4gaW50byBhIGdpdmVuIHZhcmlhYmxlLgogICAgICAtIGNsZWFuZWQgdXAgcGVyc2lzdGVudCBzdG9yYWdlIHBhcnNpbmcgcm91dGluZXMuCiAgICAgIC0gdXNlIHByZXZpb3VzbHkgbWFsbG9jZWQgc3BhY2UgaW4gc29tZSByb3V0aW5lcywgb3IgbWFsbG9jIGl0IGZvcgogICAgICAgIHRoZW0gaWYgdGhlIHN0b3JhZ2UgYXJlYSBpcyBOVUxMLgoKaGFyZGFrZXIgMTkgQXByIDk5IDIxOjE0OjI4CiAgICAtIChzbm1wX2FwaS5jKTogRG9uJ3Qgc25tcF9zZXRfdmFyX29iamlkIGlmIG5hbWUgaXMgTlVMTCBpbgogICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCkuCgpoYXJkYWtlciAyMCBBcHIgOTkgMTE6Mjg6MTQKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKTogbW9yZSB1cGRhdGVzLgoKaGFyZGFrZXIgMjAgQXByIDk5IDE1OjMxOjM1CiAgICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6CiAgICAgIC0gY29tcGxldGVseSByZS1oYWNrZWQ6CiAgICAgICAgLSBlbnRpcmUgY29kZSBiYXNlIGlzIG5vdyBwdXQgaW50byB0aGUgLmNvbmYgZmlsZXMgcmF0aGVyIHRoYW4gaW4KICAgICAgICAgIHRoZSBtaWIyYyBwcm9ncmFtLiAgVGhpcyBzaG91bGQgZW50aXRsZSBtaWIyYyB0byBiZSB1c2VkIG1vcmUKICAgICAgICAgIGdlbmVyaWNhbGx5LCBhbmQgY291bGQgcHJvZHVjZSBkaWZmZXJlbnQgdHlwZXMgb2YgY29kZSB0ZW1wbGF0ZXMKICAgICAgICAgIGJhc2VkIG9uIHRoZSAuY29uZiBmaWxlIGl0IGlzIGdpdmVuLiAgSW4gdGhlb3J5LCBpdCBzaG91bGQgYmUKICAgICAgICAgIGFibGUgdG8gcHJvZHVjZSBDIGNvZGUgZm9yIGEgbm9uLXVjZC1zbm1wIGFnZW50LCBvciBldmVuIGJldHRlciwKICAgICAgICAgIGFueSB0eXBlIG9mIGNvZGUgKG5vdCBqdXN0IEMpIGZvciBzb21ldGhpbmcgZWxzZSBiYXNlZCBvbiBtaWIKICAgICAgICAgIGluZm9ybWF0aW9uLgogICAgICAgIC0gVGhlIGRvd24gc2lkZSwgaXMgdGhhdCB0aGUgY3VycmVudCAuY29uZiBmaWxlcyBhcmUgbm93IGFtYmlndW91cwogICAgICAgICAgYWdhaW4gYW5kIGRpZmZpY3VsdCB0byB1bmRlcnN0YW5kIHdpdGhvdXQgYmVpbmcsIHdlbGwsIG1lLiAgVGhlCiAgICAgICAgICB1cCBzaWRlIGlzIHRoYXQgSSdtIHN1cmUgRGF2ZSBTaGllbGQgd2lsbCBnbyB0aHJvdWdoIGFuZCBjbGVhbgogICAgICAgICAgaXQgdXAgZm9yIG1lIGxpa2UgaGUgZGlkIGxhc3QgdGltZS4gIEhhIGhhLiAgSSB3b25kZXIgaWYgaGUnbGwKICAgICAgICAgIHJlYWQgdGhpcz8gKElmIHNvLCBzZWUgbWUgZmlyc3QpLgoKaGFyZGFrZXIgMjAgQXByIDk5IDE2OjA0OjE3CiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IHZhcmlhYmxlIG5hbWUgY29udmVyc2lvbnM6CiAgICAgIC0gdmFyaWFibGVUeXBlcyAtPiB2YXJpYWJsZXMKICAgICAgLSBjbmFtZSAtPiBOQU1FCgpoYXJkYWtlciAyMCBBcHIgOTkgMTY6MTA6NDQKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogYSBsaXR0bGUgbW9yZSBjbGVhbiB1cC4KCmhhcmRha2VyIDIwIEFwciA5OSAyMTozODo0MgogICAgLSAobWliMmMuY29uZik6IGNsZWFuIHVwIHNraXBpZiByZWdleHBzIGEgYml0LgoKaGFyZGFrZXIgMjIgQXByIDk5IDA3OjU0OjQ0CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogY3JlYXRlZCAqcmVhZF9jb25maWdfc3RvcmVfZGF0YSgpOwoKaGFyZGFrZXIgMjIgQXByIDk5IDA3OjU2OjAzCiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IGFsbG93IE5vQWNjZXNzIHRvIGJlIHByb2Nlc3NlZCwgYW5kIHVzZSBza2lwaWY6CiAgICAgIGRpcmVjdGl2ZXMgd2hlcmUgbmVlZGVkIGJlY2F1c2Ugb2YgaXQuCgpoYXJkYWtlciAyMiBBcHIgOTkgMTA6NTE6MzAKICAgIC0gKHNubXBfY2xpZW50LmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIGtleXRvb2xzLmMpOiBBbm90aGVyIHYzIGJyYW5jaCB1cGRhdGUuCgptc2xpZmNhayAyNiBBcHIgOTkgMDk6MjE6MDYKICAgIC0gKHNubXBsaWIuYykgLSB1c2UgcmVxdWVzdCBjYWxsYmFjaydzIGRhdGEgaWYgcmVxdWVzdCBzcGVjaWZpZXMgYSBjYWxsYmFjay4KCm5iYSAyNiBBcHIgOTkgMTE6MjE6MTAKICAgIAogICAgKHBhcnNlLmgpIFNpbGx5IHNwZWxpbmcgbWlzdGVhayAoQUNDRVNTX0NSQUVURSkKCm5iYSAyNiBBcHIgOTkgMTE6NDg6NTcKICAgIAogICAgCiAgICAtIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jOiBuZXcgbWliIHByaW50ZXI6IG1pYl9wcmludF90cmVlCiAgICAgIGluc3BpcmVkIGJ5IGEgcmVmZXJlbmNlIHRvIHNubXggaW4gY29tcC5wcm90b2NvbHMuc25tcAogICAgLSBhcHBzL3NubXB0cmFuc2xhdGU6IGxldCB0aGUgLXAgb3B0aW9uIGNhbGwgdGhpcyBuZXcgcHJpbnRlcgogICAgLSBzbm1wbGliL3NubXBfYXBpLmM6IHNvbWUgbGVmdCBvdmVyIF9fUCBtYWNyb3MKCm5iYSAyNiBBcHIgOTkgMTI6MDM6NDcKICAgIAogICAgKGlmLmMpIG1ha2UgdGhlIHdpZHRoIG9mIHNubXBuZXQgLWkgKGFuZCAtbykgYWRhcHQgdG8gdGhlIGxlbmd0aCBvZiByZXR1cm5lZAogICAgCXN0cmluZ3MKCm5iYSAyNiBBcHIgOTkgMTI6MDk6MzUKICAgIAogICAgCiAgICBhcHBzLyouYzogdXNlIHNubXBfcGVycm9yIHRvIHJlcG9ydCBlcnJvcnMgZnJvbSByZWFkX29iamlkIGFuZCBmcmllbmRzCiAgICBhcHBzL3NubXB0cmFwZC5jOiBmaXggYSBidXMgZXJyb3Igd2hlbiB1c2luZyAtUyBhbmQgcmVjZWl2aW5nIGFuCiAgICAJZW50ZXJwcmlzZSBzcGVjaWZpYyB0cmFwLgoKbmJhIDI2IEFwciA5OSAxMjoxMzo1MAogICAgCiAgICAqLyo6IHJlcGxhY2UgaG9ycmlibGUgKGNoYXIgKikic3RyaW5nIiB3aXRoIGNvbnN0IHNwZWNpZmllcnMgaW4gcmVsZXZhbnQKICAgIAlmdW5jdGlvbnMuCgptc2xpZmNhayAyNiBBcHIgOTkgMTI6Mzc6MDkKICAgIC0gKHNubXBfYXBpLmMpIC0gZml4IG90aGVyIHVzZSBvZiByZXF1ZXN0J3MgY2FsbGJhY2sgZGF0YQoKbXNsaWZjYWsgMjcgQXByIDk5IDA5OjUxOjM1CiAgICAtIChpbnRlcmZhY2VzLmMpIGFkZCBpZl90eXBlX2Zyb21fbmFtZSB0byBjb252ZXJ0IGludGVyZmFjZSBuYW1lIHRvIHR5cGUuCgpoYXJkYWtlciAyOSBBcHIgOTkgMDc6MzI6MzkKICAgIC0gKE1ha2VmaWxlLmluLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oKTogY2FsbGJhY2sgQVBJLgoKaGFyZGFrZXIgMjkgQXByIDk5IDA3OjM5OjQ1CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywgc25tcHVzbS5jLAogICAgICBzbm1wdXNtLmgsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gdXNlIHRoZSBjYWxsYmFjayBtZWNoYW5pc20gZm9yIHBvc3QtY29uZmlnIHN0dWZmLgoKaGFyZGFrZXIgIDMgTWF5IDk5IDA3OjA3OjE1CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCB1c21Vc2VyLmMsIHVzbVVzZXIuaCwgc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICAgICBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgc25tcHRyYXBkLmMsIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgsCiAgICAgIHNjYXBpLmMsIHNjYXBpLmgsIHNubXBfYXBpLmMsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gc2h1dGRvd24gYW5kIHN0b3JlIGNhbGxiYWNrIHVzYWdlLgoKaGFyZGFrZXIgIDMgTWF5IDk5IDA3OjEzOjMxCiAgICAtIChzbm1wZC5jKTogZml4IC1BIGZsYWcsIHdoaWNoIGdvdCBicm9rZW4gZHVyaW5nIHNvbWVvbmVzIGNoYW5nZXMuCgpoYXJkYWtlciAgMyBNYXkgOTkgMTI6NTg6MTkKICAgIC0gKE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLCBNYWtlZmlsZS5pbiwgaGVhZGVyX2NvbXBsZXguYywKICAgICAgTWFrZWZpbGUuaW4sIGVuY29kZV9rZXljaGFuZ2UuYywgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLAogICAgICBhbGxfZ2VuZXJhbF9sb2NhbC5oLCBhbGxfc3lzdGVtLmgsIGtleXRvb2xzLmMsIGxjZF90aW1lLmMsIHNjYXBpLmMsCiAgICAgIHNubXBfYXV0aC5jLCBzbm1wdXNtLmMsIHRvb2xzLmMsIHRvb2xzLmgsIE1ha2VmaWxlLmluLCBULmMsCiAgICAgIGV0aW1ldGVzdC5jLCBrZXltYW5hZ2V0ZXN0LmMsIG1pc2N0ZXN0LmMsIHNjYXBpdGVzdC5jKToKICAgICAgLSBudWtlZCBhbGxfZ2VuZXJhbF9sb2NhbC5oIGFuZCBhbGxfc3lzdGVtLmguCiAgICAgIC0gbWFrZWZpbGVpbmRlcGVuZCBhcyB3ZWxsLgoKbmJhICAzIE1heSA5OSAxNTo0MDoxMQogICAgKCouW2NoXSk6CXBhdGNoZXMgdG8gdHlwZXMgdG8gd2lwZSB3YXJuaW5ncyBmcm9tIGNvbXBpbGVycwogICAgCXdpdGggbW9yZSBzdHJpY3Qgbm9pc2UgbGV2ZWxzLiAoYWxzbyBnb29kIHdoZW4gY29tcGlsaW5nCiAgICAJd2l0aCBnY2MgLVdhbGwgLXBlZGFudGljIC1Xd3JpdGUtc3RyaW5ncyAtV2Nhc3QtcXVhbCkKCm5iYSAgNCBNYXkgOTkgMDA6NDc6NDQKICAgIChtaWIuYyk6CUZpeCBwcm9ibGVtIChjb3JlIGR1bXApIHdpdGggTUlCRklMRVMgZW52aXJvbm1lbnQgdmFyaWFibGUuCgpuYmEgIDQgTWF5IDk5IDAwOjUxOjE2CiAgICAobWFueSk6CXJlbW92ZSBjb25zdCBzcGVjIGZyb20gRmluZFZhck1ldGhvZC4gVGhhdCB3YXMgd3JvbmcKCmhhcmRha2VyICA0IE1heSA5OSAxMTowODo1NQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBBZGRlZCAtLWVuYWJsZS1kZXZlbG9wZXIgZmxhZy4KCm1zbGlmY2FrICA2IE1heSA5OSAwOToyMDozMAogICAgLSAodWNkLXNubXAvdm1zdGF0LmMpIC0gY29uZGl0aW9uYWxseSBpbmNsdWRlIGxpbWl0cy5oIHBlciBFZHVhcmQgS291Y2t5LgoKbmJhIDEwIE1heSA5OSAxNDo0NzoyMgogICAgRml4aW5nIHNvbWUgbW9yZSBwcm90b3R5cGVzLiBQb2ludGVkIG91dCBieSBNYXJra3UgTGF1a2thbmVuLgoKbmJhIDEwIE1heSA5OSAxNDo0OTo0OQogICAgc25tcGxpYi9zbm1wX2FwaS5jOiBNaXgtdXAgb2YgVjFfSU5fVjIvVjJfSU5fVjEgZXJyb3IgY29kZSB3aGVuIEdFVEJVTEsKICAgIAlpbnNpZGUgVjEgc2Vzc2lvbi4KCmhhcmRha2VyIDExIE1heSA5OSAxNDowMjo0OAogICAgLSAodXRpbF9mdW5jcy5jKTogcmVhZCByZXR1cm5zIHNzaXplX3Qgbm90IHNpemVfdC4KCmhhcmRha2VyIDExIE1heSA5OSAxNDowMzoyNQogICAgLSAobWVtb3J5LmgpOiByZW1vdmUgZXh0ZXJuLgoKaGFyZGFrZXIgMTEgTWF5IDk5IDE0OjExOjQwCiAgICAtIChocHV4LmMsIGhwdXguaCk6IGludCAtPiBzaXplX3QgY29udmVyc2lvbnMuCgptc2xpZmNhayAxMiBNYXkgOTkgMTA6NTM6MjMKICAgIC0gKHNubXBfYXBpLmMgc25tcF9jbGllbnQuYykgY2FsbCBzbm1wX3N5bmNoX3Jlc2V0IGZyb20gc25tcF9zZXNzX2Nsb3NlCgptc2xpZmNhayAxMiBNYXkgOTkgMTE6MjI6MTYKICAgIC0ocGFyc2UuYyBwYXJ0eV9wYXJzZS5jIHJlYWRfY29uZmlnLmMpIG5vIGV4aXQoKSBmcm9tIGxpYnJhcnk7IHJldHVybiBlcnJvcgoKZGF2ZXMgMTMgTWF5IDk5IDAzOjUyOjE5CiAgICAtIChpcC5jKTogUHJvcGVybHkgcmVnaXN0ZXIgSVAgbW9kdWxlIGdyb3VwIG9uIEZyZWUtQlNEIHN5c3RlbXMKICAgICAgICAgICAgICAodGhhbmtzIHRvIE1pdGNoZWxsIFRhc21hbikKCmhhcmRha2VyIDEzIE1heSA5OSAwOTowOToxOAogICAgLSAodmFjbV92YXJzLmMpOiBTZXQgcG9pbnRlcnMgdG8gTlVMTCBhZnRlciBmcmVlaW5nIHRoZW0uCgptc2xpZmNhayAxNCBNYXkgOTkgMDY6NTQ6NTEKICAgIC0gKGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jCiAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oCiAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYwogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyBzbm1wbGliL3NubXBfYXV0aC5jKSBtb3JlIHNpemVfdCBmaXhlcwoKbXNsaWZjYWsgMTQgTWF5IDk5IDA5OjQ3OjEwCiAgICAtIChhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYwogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwogICAgIHNubXBsaWIvcGFyc2UuYykgbW9yZSBBTlNJLUMgdG91Y2h1cHMKCm1zbGlmY2FrIDE0IE1heSA5OSAxMzo1OTozNwogICAgLShhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgc25tcGxpYi9zbm1wdXNtLmMpIGZpeGVzIHRvIGJ1aWxkIEhQICYgQUlYCgpkYXZlcyAxNyBNYXkgOTkgMDM6MjA6NTMKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogSW5pdGlhbGlzZSBzZXNzaW9uIHVzaW5nIGxpYnJhcnkgcm91dGluZQoKZGF2ZXMgMTcgTWF5IDk5IDA0OjM0OjU1CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAgICAgYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYwogICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgIAogICAgICAtIFVzZSB0aGUgZ2VuZXJpYyBzb2NrZXQgYWRkcmVzc2VzICdzdHJ1Y3Qgc29ja2FkZHInLAogICAgICAgIHJhdGhlciB0aGFuIHRoZSBJUC1zcGVjaWZpYyAnc3RydWN0IHNvY2thZGRyX2luJwoKZGF2ZXMgMTcgTWF5IDk5IDA0OjM4OjAwCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAgICAgYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYwogICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgIAogICAgICAtIFVzZSB0aGUgZ2VuZXJpYyBzb2NrZXQgYWRkcmVzcyAnc3RydWN0IHNvY2thZGRyJywKICAgICAgICByYXRoZXIgdGhhbiB0aGUgSVAtc3BlY2lmaWMgJ3N0cnVjdCBzb2NrYWRkcl9pbicKCmRhdmVzIDE3IE1heSA5OSAwNzoxODowMgogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaCBhZ2VudC9zbm1wZC5jCiAgICAgICBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgICAKICAgICAgLSBVc2UgYSBzaW5nbGUgYWRkcmVzcyBmaWVsZCB3aXRoaW4gdGhlIFBEVSBzdHJ1Y3R1cmUKICAgICAgICAgICAgICAgICAgIChvYnNvbGV0aW5nICdhZ2VudF9hZGRyJykKCmRhdmVzIDE4IE1heSA5OSAwNjoyNjoxNgogICAgLSAoc25tcF9hcGkuYyBzbm1wX2FwaS5oKTogTW9yZSBnZW5lcmFsIGhhbmRsaW5nIG9mIFBEVSBmbGFncwoKbXNsaWZjYWsgMTggTWF5IDk5IDA5OjAxOjQ2CiAgICAtICh4eC9NYWtlZmlsZS5pbikgcmVtb3ZlIHJlZmVyZW5jZXMgdG8gYXMgeWV0IG1pc3NpbmcgZGlzbWFuIGZpbGVzLgoKZGF2ZXMgMTggTWF5IDk5IDA5OjIzOjUwCiAgICAtIChjb25maWd1cmUuaW4gc25tcGxpYi9jb250ZXh0X3BhcnNlLmMgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiAgICAgICBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wdjMuYyBzbm1wbGliL3N5c3RlbS5jCiAgICAgICBhcHBzL3NubXBfcGFyc2VfYXJncy5jIGFwcHMvc25tcGJ1bGt3YWxrLmMgYXBwcy9zbm1wZGVsdGEuYwogICAgICAgYXBwcy9zbm1wZ2V0LmMgYXBwcy9zbm1wZ2V0bmV4dC5jIGFwcHMvc25tcHNldC5jCiAgICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0YWJsZS5jIGFwcHMvc25tcHRlc3QuYwogICAgICAgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHVzbS5jIGFwcHMvc25tcHdhbGsuYwogICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiAgICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYyBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jKToKICAgICAgIC0gIENsZWFuIHVwIGNvbmRpdGlvbmFscyBwcm90ZWN0aW5nIGluY2x1ZGUgZmlsZXMKICAgICAgICAgICAgKCAjaWYgSEFWRV9XSU5TT0NLX0ggLyAjZWxzZSAvICNlbmRpZiApCgpkYXZlcyAxOSBNYXkgOTkgMDI6MzM6MDcKICAgIC0gKGNvbmZpZy5oLmluKTogQWRkaXRpb25hbCBpbmNsdWRlIHByb3RlY3Rpb24gZW50cmllcwoKZGF2ZXMgMTkgTWF5IDk5IDA1OjExOjM3CiAgICAtIChzbm1wX2FwaS5jKTogTW9yZSBnZW5lcmFsaXNlZCBoYW5kbGluZyBvZiBzb2NrZXQgYWRkcmVzc2VzCgptc2xpZmNhayAxOSBNYXkgOTkgMTg6MDI6NTUKICAgIC0obWliSUkvdmFyX3JvdXRlLmMpIC0gZml4IExpbnV4IFJvdXRlTWFzayBjL28gIk5hbmN5IiBuYW1AY3MuY211LmVkdQoKbXNsaWZjYWsgMTkgTWF5IDk5IDE4OjUwOjEyCiAgICAtIChob3N0X3Jlcy5oKSBmaXggSEFWRV9ORVRfSUZfVkFSX0ggZGVmaW5lICh3YXMgSEFWRV9ORVRfSU5fVkFSX0gpCgpkYXZlcyAyMCBNYXkgOTkgMDM6NDY6MjQKICAgIC0gKHNubXBfYXBpLmgpOiBUZW1wb3JhcnkgZml4IHRvIHNvY2tldCBhZGRyZXNzIHByb2JsZW1zCgptc2xpZmNhayAyMSBNYXkgOTkgMDU6MjQ6MjMKICAgIC0ocmVhZF9jb25maWcuYykgY2FzdCBmaXggcGVyIE1hcmtrdSBMYXVra2FuZW4KCmRhdmVzIDIxIE1heSA5OSAwNTo1NDoyMgogICAgLSAoc25tcF9hcGkuYyBzbm1wX2FwaS5oKToKICAgICAgLSAgTmV3IEFQSSBjYWxsIHRvIGNsb3NlIGRvd24gYWxsIG9wZW4gc2Vzc2lvbnMKICAgICAgICAgKGFsc28gY2FsbGVkIG9uIGFwcGxpY2F0aW9uIHNodXRkb3duKQoKaGFyZGFrZXIgMjEgTWF5IDk5IDExOjEwOjQ0CiAgICAtIChtaWIyYy5jb25mLCBtaWIyYy5zdG9yYWdlLmNvbmYpOgogICAgICAtIGNvbnZlcnQgdG8gc2l6ZV90IHN0b3JhZ2VzLgogICAgICAtIG1pc2MgZXZhbCBmaXhlcy4KICAgICAgLSBtb3JlIGNsZWFudXAgb2YgdGhlIHN0b3JhZ2UgZGVmLgoKbXNsaWZjYWsgMjEgTWF5IDk5IDE1OjI5OjQ2CiAgICAtIGxpYnJhcnkgY2hhbmdlcyB0byBidWlsZCBvbiBXaW4zMi4KCm1zbGlmY2FrIDI0IE1heSA5OSAwNTozNjoxMwogICAgLWNvbmZpZ3VyZSAtIHNhdmUgb25lIHdoaWNoIGxvb2tzIGZvciBuZXRkYi9zb2NrZXQgaGVhZGVycwoKaGFyZGFrZXIgMjYgTWF5IDk5IDExOjE5OjAzCiAgICAtIChpcGZ3YWNjLmgpOiBwcm9wZXJseSBsb2NhdGUgdGhlIG1pYi4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToxNDo1NQogICAgLSAoaHJfc3dpbnN0LmMpOiBtYWtlIHNvZnR3YXJlIGFwcGxpY2F0aW9uIHR5cGUgdW5rbm93biBpbnN0ZWFkIG9mIGFwcC4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToxODowNAogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogY2hhbmdlIHRvIGNvdW50ZXJzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjIwOjMyCiAgICAtIChpcGZ3YWNjLmgpOiBtYWtlIGludG8gY291bnRlcnMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6NTY6MDMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogaW5jcmVhc2UgTUFYUkVBRENPVU5ULgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE3OjQwOjI4CiAgICAtIChJUEZXQUNDLU1JQi50eHQpOiBhZGRlZCBTRVFVRU5DRSBPRi4KCm1zbGlmY2FrIDI3IE1heSA5OSAwNToxNjoyNQogICAgLShlbmNvZGVfa2V5Y2hhbmdlLCByZWFkX2NvbmZpZywgc25tcHVzbSkgYUNDIGZpeGVzIGJ5IFBLWSAoTWFya2t1IExhdWtrYW5lbikKCmhhcmRha2VyIDI3IE1heSA5OSAxNDozMDowMwogICAgLSAoc25tcHRyYXBkX2hhbmRsZXJzLmMpOiBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgdHJhcCBoYW5kbGVyLgoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjMwOjE1CiAgICAtIChzbm1wdHJhcGQuYyk6IG5lZWQgYW4gaW5pdF9taWIoKS4KCmhhcmRha2VyIDI3IE1heSA5OSAxNDozNzowNgogICAgLSAoc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCBkZWZhdWx0IG9pZCBrZXl3b3JkLgoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjM3OjMyCiAgICAtIChzbm1wdHJhcGQuYyk6IGRvY3VtZW50IGRlZmF1bHQgb2lkIGtleXdvcmQgaW4gaGVscCBsaW5lLgoKZGF2ZXMgMjggTWF5IDk5IDA3OjAyOjAxCiAgICAtIChhZ2VudC9NYWtlZmlsZS5pbiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbik6IGZpeCBwcm9ibGVtIHdpdGggbnVsbCBtYWNybwoKZGF2ZXMgMjggTWF5IDk5IDA4OjE0OjA1CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBzYXZlIGxvY2FsIHNvY2tldCBhZGRyZXNzIGluIGludGVybmFsIHNlc3Npb24gc3RydWN0dXJlCgpkYXZlcyAyOCBNYXkgOTkgMDg6NTc6MTkKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFVuaXggZG9tYWluIChkYXRhZ3JhbSkgc29ja2V0IHN1cHBvcnQKCmRhdmVzIDI4IE1heSA5OSAwOToxMjoyMAogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogU2VwYXJhdGUgb3V0IGNvcHlpbmcgYSBzZXNzaW9uIGFuZCBvcGVuaW5nIGEgbmV3IG9uZQoKbXNsaWZjYWsgMjggTWF5IDk5IDA5OjI0OjU2CiAgICAtKHNubXBfYXBpLmMpIC1jYXRjaCBvbmUgbW9yZSBlcnJvciBjbG9zZSBmcm9tIHNubXBfc2Vzc19jb3B5CgpoYXJkYWtlciAyOCBNYXkgOTkgMTY6MTc6MTMKICAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogc2F2ZSBhbmQgdXNlIGluZGV4IGNsYXVzZXMuCgpoYXJkYWtlciAyOCBNYXkgOTkgMTY6NDQ6NDIKICAgIC0gKE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCk6CiAgICAgIC0gY3JlYXRlZCBnZW5lcmljIGRlZmF1bHQgdmFsdWUgc3RvcmFnZSBzcGFjZSBhbmQgcGFyc2VycyB0byByZWR1Y2UKICAgICAgICB0aGUgbnVtYmVyIG9mIGZ1bmN0aW9ucy9ldGMgY3JlYXRlZCBmb3IgdmFsdWVzIHdoaWNoIGNvbmZpZ3VyZSB0aGUKICAgICAgICBsaWJyYXJ5LgoKZGF2ZXMgIDEgSnVuIDk5IDAyOjE3OjI3CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBHYXJiYWdlIGNvbGxlY3Rpb24gZm9yIFRyYWRpdGlvbmFsIFNBUEkgc2Vzc2lvbnMKCmRhdmVzICAxIEp1biA5OSAwMjozMjoxMwogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogR2VuZXJhbGlzZSBoYW5kbGluZyBvZiBhZGRyZXNzZXMgKHcuci50IHNlbnRvL3JlY3Zmcm9tKQoKZGF2ZXMgIDEgSnVuIDk5IDA3OjMwOjQyCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2FwaS5oKTogU3VwcG9ydCBmb3Igc3RyZWFtLWJhc2VkIHNvY2tldHMKCmhhcmRha2VyICAxIEp1biA5OSAxNzoyMTo1MwogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYWxhcm0uYywgc25tcF9hbGFybS5oLCBzbm1wX2FwaS5jKToKICAgICAgLSBpbXBsZW1lbnRlZCBhIGdlbmVyaWMgYWxhcm0gaGFuZGxlciB0byByZWdpc3RlciBhbGFybSBmdW5jdGlvbnMgdG8KICAgICAgICBiZSBjYWxsZWQgYmFjayBhZnRlciBYIHBlcmlvZCBvZiB0aW1lIGFuZCBpdCBoYW5kbGVzIGZpZ3VyaW5nIG91dAogICAgICAgIHdoaWNoIGlzIG5leHQgYW5kIGNhbGxpbmcgYWxhcm0oKSBhbmQgc2lnbmFsKCkgYXBwcm9wcmlhdGVseS4KCm1zbGlmY2FrICA0IEp1biA5OSAwOTo1MToxMwogICAgLShocl9maWxlc3lzLmMsaW50ZXJmYWNlcy5jLHRjcC5jLHVkcC5jLGZyZWVic2QzLmgpIGZpeCBGcmVlQlNEMy4xIGluY2wgS2VuIEtleSdzIHRjcC91ZHAgcGF0Y2hlcwoKbXNsaWZjYWsgIDcgSnVuIDk5IDA3OjQ0OjA2CiAgICAtKGludGVyZmFjZXMuYywgdGNwLmMsIHVkcC5jLCBpcC5jKSBjbG9uZSBmaXhlcyBmcm9tIDMuNiBsaW5lIChGcmVlQlNEMy4xKQoKbXNsaWZjYWsgIDcgSnVuIDk5IDEzOjA0OjIxCiAgICAtKGlmLmMpIGNoZWNrIGZvciB2YWxpZCBwb2ludGVyIGJlZm9yZSBkZS1yZWZlcmVuY2luZy4KCm1zbGlmY2FrIDExIE1heSA5OSAxNDozOTo1OAogICAgLSAoYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyBhZ2VudC9zbm1wX3ZhcnMuYyBhZ2VudC9zbm1wZC5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oIGFwcHMvc25tcHRyYW5zbGF0ZS5jCiAgICAgICBhcHBzL3NubXB0cmFwZC5jIGxvY2FsL21pYjJjIGxvY2FsL3RrbWliIG1hbi9zbm1wX2NvbmZpZy41LmRlZgogICAgICAgbWFuL3NubXBkLjEuZGVmIG1hbi9zbm1wdHJhcC4xIG1hbi9zbm1wdHJhcGQuOAogICAgICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmIG1pYnMvU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dAogICAgICAgbWlicy9TTk1QLVBST1hZLU1JQi50eHQgbWlicy9TTk1QLVRBUkdFVC1NSUIudHh0CiAgICAgICBtaWJzL1NOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0CiAgICAgICBtaWJzL1NOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCBzL2ZyZWVic2QuaCBzL2ZyZWVic2QyLmgKICAgICAgIHNubXBsaWIvbWliLmMgc25tcGxpYi9wYXJzZS5jIHNubXBsaWIvcGFyc2UuaAogICAgICAgc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvdmFjbS5jKSAtIGNoYW5nZXMgYy9vIE5pZWxzIEJhZ2dlc2VuCgptc2xpZmNhayAxMSBNYXkgOTkgMTg6NTg6MzcKICAgIC0oY3lnd2luLmgpIC0gdXNlIHRvIGJ1aWxkIG9uIEN5Z1dpbiBwbGF0Zm9ybS4KCm1zbGlmY2FrIDExIE1heSA5OSAxOTo1NDowNAogICAgLShhZ2VudC9zbm1wMnAuYyBhZ2VudC9zbm1wX3ZhcnMuaCBhZ2VudC92aWV3X3BhcnNlLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYyBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5oCiAgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaAogICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jCiAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYwogICAgICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICAgICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaAogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jCiAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jCiAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYyBhcHBzL3NubXBkZWx0YS5jCiAgICAgICBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcGQuYyBhcHBzL3NubXBuZXRzdGF0L2lmLmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYyBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYwogICAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmggc25tcGxpYi9hY2xfcGFyc2UuYwogICAgICAgc25tcGxpYi9jb250ZXh0Lmggc25tcGxpYi9jb250ZXh0X3BhcnNlLmMgc25tcGxpYi9wYXJ0eS5oCiAgICAgICBzbm1wbGliL3BhcnR5X3BhcnNlLmMgc25tcGxpYi9yZWFkX2NvbmZpZy5jIHNubXBsaWIvc25tcF9hcGkuYykKICAgICAgUG9ydCBzb21lIG9mIHRoZSBmaXhlcyBmcm9tIHRoZSBjdXJyZW50IGRldmVsb3BtZW50IGJyYW5jaAoKbXNsaWZjYWsgMTIgTWF5IDk5IDEwOjQ1OjA1CiAgICAtIChzbm1wX2FwaS5jIHNubXBfY2xpZW50LmMpIGNhbGwgc25tcF9zeW5jaF9yZXNldCBmcm9tIHNubXBfc2Vzc19jbG9zZQoKbXNsaWZjYWsgMTIgTWF5IDk5IDExOjI4OjA3CiAgICAtKG1pYi5jIHBhcnNlLmMgcGFydHlfcGFyc2UuYyByZWFkX2NvbmZpZy5jKSBubyBleGl0KCkgZnJvbSBsaWJyYXJ5OyByZXR1cm4gZXJyb3IKCmRhdmVzIDEzIE1heSA5OSAwMzozODowMwogICAgCiAgICAobWliLmMpOiBGaXhlZCBtaW5vciB0eXBvCgpkYXZlcyAxMyBNYXkgOTkgMDM6NTU6MDYKICAgIC0gKGlwLmMpOiBQcm9wZXJseSByZWdpc3RlciBJUCBtb2R1bGUgZ3JvdXAgb24gRnJlZS1CU0Qgc3lzdGVtcwogICAgICAgICAgICAgICh0aGFua3MgdG8gTWl0Y2hlbGwgVGFzbWFuKQoKaGFyZGFrZXIgMTMgTWF5IDk5IDA5OjA3OjEzCiAgICAtICh2bXN0YXQuYyk6IGluY2x1ZGUgbGltaXRzLmguCgpoYXJkYWtlciAxMyBNYXkgOTkgMDk6MDc6MzkKICAgIC0gKHZhY21fdmFycy5jKTogU2V0IHBvaW50ZXJzIHRvIE5VTEwgYWZ0ZXIgZnJlZWluZyB0aGVtLgoKaGFyZGFrZXIgMTMgTWF5IDk5IDE1OjQyOjQ4CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi4yICkKCmRhdmVzIDE3IE1heSA5OSAwMzoyMDoxMAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBJbml0aWFsaXNlIHNlc3Npb24gdXNpbmcgbGlicmFyeSByb3V0aW5lCgptc2xpZmNhayAxOSBNYXkgOTkgMTg6MDE6NDgKICAgIC0obWliSUkvdmFyX3JvdXRlLmMpIC0gZml4IExpbnV4IFJvdXRlTWFzayBjL28gIk5hbmN5IiBuYW1AY3MuY211LmVkdQoKbXNsaWZjYWsgMTkgTWF5IDk5IDE4OjQ5OjI1CiAgICAtIChob3N0X3Jlcy5oKSBmaXggSEFWRV9ORVRfSUZfVkFSX0ggZGVmaW5lICh3YXMgSEFWRV9ORVRfSU5fVkFSX0gpCgpoYXJkYWtlciAyNSBNYXkgOTkgMjA6MjA6MzEKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LjIucHJlMSApCgpuYmEgMjYgTWF5IDk5IDA3OjU3OjQyCiAgICAKICAgICAgVGFnOiBWMy1saW5lCiAgICAKICAgIGlmLmM6IGR5bmFtaWMgd2lkdGggZm9yIC1pIGFuZCAtbyBvcHRpb24KCm1zbGlmY2FrIDI2IE1heSA5OSAwODowMDowNwogICAgLSBmaXgtdXBzIHRvIGJ1aWxkIFdpbjMyIE1TVmlzdWFsQysrCgpuYmEgMjYgTWF5IDk5IDA4OjI0OjM1CiAgICAKICAgIAogICAgU29tZSBmaXhlcyBmb3IgU29sYXJpcyAyLjcgKHByb2MgYWNjZXNzIHN0aWxsIGRvZXMgbm90IHdvcmsgd2hlbiBjb21waWxlZAogICAgd2l0aCBnY2MgKDMyLWJpdCBjb21waWxlcikKCm5iYSAyNiBNYXkgOTkgMDg6Mjk6MjYKICAgIAogICAgRml4ZXMgZm9yIEZyZWVCU0QgMi4xIGZyb20gRGVyZWsgSi4gQmFsbGluZyA8ZGJhbGxpbmdAeWFob28taW5jLmNvbT4KCmhhcmRha2VyIDI2IE1heSA5OSAxNjowNzoxNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBpbmNyZWFzZSBNQVhSRUFEQ09VTlQuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTY6MDc6NDIKICAgIC0gKGhyX3N3aW5zdC5jKTogbWFrZSBzd2luc3RhbGwgYmUgInVua25vd24iIHNpbmNlIHdlIGNhbid0IHRydWx5IGtub3cuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTY6MDg6MDkKICAgIC0gKGlwZndhY2MuaCk6IG1vdmUgdG8gY29ycmVjdCBsb2NhdGlvbi4KCmhhcmRha2VyIDI2IE1heSA5OSAxNjowODoyOAogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogbWFrZSBjb3VudGVycy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNzozMToyNQogICAgLSAocHJvYy5jKTogdWx0cml4IGZpeGVzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE3OjM4OjU2CiAgICAtIChJUEZXQUNDLU1JQi50eHQpOiBhZGRlZCBTRVFVRU5DRSBPRi4KCm5iYSAyNyBNYXkgOTkgMDI6NTY6MjUKICAgIAogICAgCiAgICBob3N0L2hyX3N3cnVuLmMsIHVjZC1zbm1wL3Byb2MuYzogRml4ZXMgZm9yIFNvbGFyaXMgMi43CgpuYmEgMjcgTWF5IDk5IDAyOjU5OjE2CiAgICAKICAgIHNubXBkLmM6CVByb3Blcmx5IGhhbmRsZSB0aGUgY2FzZSBvZiBubyBjb21tdW5pdHkgc3BlY2lmaWVkCiAgICAJZm9yIGFnZW50IHRyYXBzLgoKbmJhIDI3IE1heSA5OSAyMzo1NTowOQogICAgCiAgICBzb2xhcmlzMi4/Lmg6CWRlZmluZSBfU0xBU0hfUFJPQ19NRVRIT0RfIGFzIDEKCm5iYSAyNyBNYXkgOTkgMjM6NTU6NDkKICAgIAogICAgcmVhZF9jb25maWcuYzoJY29tcGxhaW4gYWJvdXQgZXhpc3RpbmcgYnV0IHVucmVhZGFibGUgY29uZmlnIGZpbGVzLgoKbmJhIDI3IE1heSA5OSAyMzo1OTozNwogICAgCiAgICBpbmV0LmM6CTAgSVMgYSB2YWxpZCBzaG9ydCAoYW5kIHBvcnQgYWRkcmVzcyBmb3IgcmVtb3RlIGVuZHMgb2YgcG9ydHMKICAgIAlpbiBMSVNURU4gc3RhdGUpCgpuYmEgMjggTWF5IDk5IDAzOjI1OjI5CiAgICAKICAgIGNoYW5nZSB0aGUgdHJhcHNpbmsvdHJhcDJzaW5rIGRpcmVjdGl2ZXMgdG8gc3VwcG9ydCBhIGNvbW11bml0eSBwYXJhbWV0ZXIuCgpuYmEgMjkgTWF5IDk5IDAyOjQ5OjQ3CiAgICAKICAgIC0gc211eC5jOiBmaXggYSBtaXNzaW5nIG50b2hzIGluIGEgZGVidWcgbWVzc2FnZQoKbmJhICAxIEp1biA5OSAwMDoyNzozNgogICAgCiAgICAtIHByb2MuYzogWUFQQk8gKFlldCBhbm90aGVyIHBvc3NpYmxlIGJ1ZmZlciBvdmVyZmxvdykKCm5iYSAgMSBKdW4gOTkgMDA6Mjk6MzUKICAgIAogICAgLSBzbm1wX2FnZW50LmM6IGNoYW5nZSBub0NyZWF0aW9uIHJldHVybiB0byBub0FjY2Vzcy4gVGhlcmUgYXJlIHByb2JhYmx5CiAgICAJc2l0dWF0aW9ucyB3aGVyZSB0aGUgZm9ybWVyIGlzIGNvcnJlY3QsIGJ1dCB0aGlzIGlzIGxlc3MgY29uZnVzaW5nCgpuYmEgIDEgSnVuIDk5IDAwOjMzOjUyCiAgICAKICAgIC0ga2VybmVsX3N1bm9zNS4/LCBocl9zd3J1bi5jLCBhdC5jLCBpbnRlcmZhY2VzLmM6IGZpeCBhdC5hdFRhYmxlIGFuZAogICAgCWlwLmlwTmV0VG9NZWRpYVRhYmxlIGZvciBTb2xhcmlzLiBBbHNvIGEgdHdlYWsgZm9yIGdldEtzdGF0SW50LgoKaGFyZGFrZXIgIDIgSnVuIDk5IDA3OjI3OjQ2CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi4yLnByZTIgKQoKbXNsaWZjYWsgIDIgSnVuIDk5IDEzOjQ2OjM0CiAgICAtKGhyX2ZpbGVzeXMuYyxpbnRlcmZhY2VzLmMsZnJlZWJzZDMuaCkgZml4IGJ1aWxkIG9uIEZyZWVCU0QgMy4xCgpuYmEgIDMgSnVuIDk5IDE0OjMxOjE4CiAgICAKICAgIC0ga2VybmVsLmM6CWFkZCBzb21lIHNhbml0eSBjaGVja3Mgd2hlbiBydW5uaW5nIHdpdGhvdXQgcm9vdCBhY2Nlc3MuCgpuYmEgIDMgSnVuIDk5IDE0OjM0OjUwCiAgICAKICAgIC0gaHJfc3dydW4uYzoJYWRkIGEgYmxhbmsgYmV0d2VlbiBwcm9jZXNzIHBhcmFtZXRlcnMKCm5iYSAgMyBKdW4gOTkgMTQ6Mzg6MTgKICAgIAogICAgLSBuZXRic2QuaCwgdGNwLmMsIHVkcC5jOglmaXggc29ja2V0IHRhYmxlcyBmb3IgTmV0QlNEIDEuMy8xLjQKCm5iYSAgMyBKdW4gOTkgMTU6MTI6MDEKICAgIAogICAgLSBzbm1wdHJhcC5jOiBmaXggYSBiYWQgZnJlZSB3aGVuIGNhbGxpbmcgc25tcGluZm9ybS4KCm5iYSAgMyBKdW4gOTkgMTU6MjE6MDkKICAgIC0gdGNwLmM6IGxvc3QgYSAnOycgZm9yIHRoZSBGcmVlQlNEIGNhc2UgLi4uLgoKZGF2ZXMgIDQgSnVuIDk5IDA0OjUxOjA0CiAgICAtIChhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jKTogRml4IFJQTSBoYW5kbGluZwoKZGF2ZXMgIDQgSnVuIDk5IDA1OjA2OjQ0CiAgICAtIChjb25maWd1cmUuaW4gY29uZmlndXJlKTogQWRkaXRpb25hbCBsaWJyYXJ5IGZvciBSUE0gaGFuZGxpbmcKCm1zbGlmY2FrICA0IEp1biA5OSAwOTozMDoxMgogICAgLSh0Y3AuYywgdWRwLmMpIGFwcGx5IEtlbiBLZXkncyBmaXggZm9yIEZyZWVCU0QzLjEKCm5iYSAgNCBKdW4gOTkgMTE6NTI6MzgKICAgIC0gaXAuYzogRml4IGZvciBGcmVlQlNEIDMgZnJvbSBLZW4gS2V5CgpuYmEgIDQgSnVuIDk5IDExOjUzOjMyCiAgICAtIGtlcm5lbF9zdW5vczUuYywgYXNuMS5jOiBGaXhlcyBmb3IgNjQtYml0IFNvbGFyaXMgNwoKbmJhICA1IEp1biA5OSAwNTo0NzoyMAogICAgLSBpbnRlcmZhY2VzLmMsdGNwLmMsdWRwLmM6IGNsZWFudXAgb2YgY29uZGl0aW9uYWxzIGZvciBGcmVlQlNECgpuYmEgIDUgSnVuIDk5IDA2OjAyOjUyCiAgICAtIGNvbmZpZ3VyZS5pbjogcHJvcGVyIGNvbmZpZ3VyZSBjaGVjayBmb3Igc3lzL3NvY2tldHZhci5oCgptc2xpZmNhayAgNyBKdW4gOTkgMDc6NDU6MTAKICAgIC0oaXAuYywgdmFyX3JvdXRlLmMpIGZpeCBzaXplb2YsIENQUCAjZW5kaWYKCmhhcmRha2VyICA3IEp1biA5OSAxMDo1MjozMgogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIENocmlzIFNtaXRoOgogICAgICAtIGRvbid0IHB1dCBDRkxBR1MgaW4gdGhlIGxpbmsgbGluZS4KCmhhcmRha2VyICA3IEp1biA5OSAxMDo1NDoyMQogICAgLSAoUkVBRE1FLndpbjMyKTogYWRkZWQgdG8gdGhlIDMuNi4yIGxpbmUuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTE6MjU6MjcKICAgIC0gKEZBUSwgUkVBRE1FKTogdXBkYXRlIGZvciAzLjYuMi4KCmhhcmRha2VyICA3IEp1biA5OSAxMToyNzoxNQogICAgLSAoTkVXUyk6IDMuNi4yIHVwZGF0ZS4KCmhhcmRha2VyICA3IEp1biA5OSAxMTozMDo0MAogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IHVwZGF0ZSBmb3IgMy42LjIuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTE6MzI6NTQKICAgIC0gKElOU1RBTEwpOiB1cGRhdGUgZm9yIDMuNi4yLgoKbXNsaWZjYWsgIDcgSnVuIDk5IDEzOjAyOjEwCiAgICAtKGlmLmMpIC0gY2hlY2sgZm9yIHZhbGlkIHBvaW50ZXIgYmVmb3JlIGRlLXJlZmVyZW5jaW5nLgoKaGFyZGFrZXIgIDcgSnVuIDk5IDE1OjQ2OjI2CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBsaWJkYjEgYmVmb3JlIGxpYmRiIGZvciBycG0gdXNhZ2UuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTU6NTA6MDEKICAgIC0gKEZBUSk6IG1lcmdlCgpoYXJkYWtlciAgNyBKdW4gOTkgMTY6MDM6MjUKICAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogY2hlY2sgZm9yIC1sZGIxIHRoZW4gLWxkYiBmb3IgcnBtIHVzYWdlLgoKaGFyZGFrZXIgIDcgSnVuIDk5IDE2OjQzOjUwCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgcnBtR2V0UGF0aCB0byBoZWxwCiAgICAgIGRldGVybWluZSB3aGljaCB2ZXJzaW9uIG9mIFJQTSB3ZSdyZSB1c2luZyAoMyBvciAyKS4KCnBqbCAgNyBKdW4gOTkgMTc6MzA6MzMKICAgIEFkZGVkIFJQTSB2MyBzdXBwb3J0Cgptc2xpZmNhayAgOCBKdW4gOTkgMDM6NDA6MzYKICAgIC0obWliSUkvKixzbm1wbGliLyopIE1hcmtrdSBMLidzIGZpeGVzIHRvIGNvbXBpbGUgb24gSFAtVVggd2l0aCBhQ0MKCm1zbGlmY2FrICA4IEp1biA5OSAwMzo1NDo1MAogICAgc3BlbGwgY2hlY2sgQ09NTVVOSVRZCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy42IC0+IFYzLjYuMQoJCm1zbGlmY2FrICA4IE1hciA5OSAwNDowMjowMQogICAgKHBhcnNlLmMpIC0gZml4IHN1YmlkIGluaXQ7IHJlbW92ZSB1c2VsZXNzICctUGwnIG9wdGlvbi4KCm1zbGlmY2FrICA4IE1hciA5OSAwNDoxNDo0MQogICAgLSAoc25tcF9hcGkuYykgdXNlIHJlcXVlc3QgZGF0YSB3aXRoIHJlcXVlc3QgY2FsbGJhY2sKCm1zbGlmY2FrICA4IE1hciA5OSAwNTowMTo0OQogICAgLSh3aW4zMi9jb25maWcuaCkgcmVtb3ZlIHVudXNlZCBTWVNfVElNRV9OQU1FLEdMT0JBTFNFQ1VSSVRZLiBhZGQgbmV3IGNvbnN0YW50cy4KCm1zbGlmY2FrICA4IE1hciA5OSAwNTowNzoxMwogICAgLSAoQUdFTlQpIE1BWF9OQU1FX0xFTiAtLT4gTUFYX09JRF9MRU4gaW4gZXhhbXBsZQoKbXNsaWZjYWsgIDggTWFyIDk5IDA5OjU4OjE3CiAgICAtIChzbm1wbGliL3BhcnNlLmMpIENvbXBsZXRlIERhdmUgU2hpZWxkcycgcGF0Y2ggZm9yIGNvbnRpbnVlIGFmdGVyIGVycm9yLgoKbXNsaWZjYWsgIDggTWFyIDk5IDE0OjI4OjIwCiAgICAtIChzbm1wbmV0c3RhdDppZi5jLCByb3V0ZS5jKSBsaW1pdCBpbnRlcmZhY2UgbmFtZSBzaXplcyB0byBmaXQgZml4ZWQgbGVuZ3RoIGJ1ZmZlcnMuCgpoYXJkYWtlciAxMCBNYXIgOTkgMTU6MDc6MzEKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBncm91cCBsaW5lcyB3ZXJlIGJhY2t3YXJkcy4KCmhhcmRha2VyIDExIE1hciA5OSAxNTo0ODoyMgogICAgLSAoUkVBRE1FKTogQWRkZWQgTWlrZSBCYWVyLgoKaGFyZGFrZXIgMTEgTWFyIDk5IDE1OjQ4OjUyCiAgICAtIChtZW1vcnlfc29sYXJpczIuYyk6IGNoYW5nZWQgc29tZSBjb21tZW50cyB0byAvKiAqLyBpbnN0ZWFkIG9mIC8vLgoKaGFyZGFrZXIgMTEgTWFyIDk5IDE2OjEwOjMxCiAgICAtIChBR0VOVCk6IHJlbW92ZWQgQUdFTlQKCmhhcmRha2VyIDExIE1hciA5OSAxNjoxMDo0NwogICAgLSAobWliMmMpOiBmaXhlZCBhIGNvdXBsZSBvZiBidWdzIGFuZCBhbnNpJ2lmaWVkIHRoaW5ncy4KCmhhcmRha2VyIDExIE1hciA5OSAxNjoyMjo0MwogICAgLSAodXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgpOiBtb3ZlIE1BVENIX1NVQ0NFRURFRCBkZWZzIHRvIC5oLgoKaGFyZGFrZXIgMTEgTWFyIDk5IDE2OjIzOjQ0CiAgICAtIChzbm1wX2FwaS5oLCBzbm1wX2RlYnVnLmgpOiBQYXRjaCBmcm9tIEVyaWsgSmFjb2JzZW46CiAgICAgIC0gZml4ZWQgcHJvdG90eXBlcyBmb3IgREVCVUdQKCkgYW5kIERFQlVHUE9JRCgpLgoKbXNsaWZjYWsgMTIgTWFyIDk5IDA3OjA4OjQwCiAgICAtIChkbG1vZF9taWIuYykgOiBVc2UgTUFUQ0hfRkFJTC9TVUNDRUVERUQgaW4gdXRpbF9mdW5jcy5oCgpoYXJkYWtlciAxMiBNYXIgOTkgMDk6MTU6MTQKICAgIC0gKG1pYmluY2wuaCwgZHVtbXkuYywgd29tYmF0LmMsIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywKICAgICAgaHJfbmV0d29yay5jLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsCiAgICAgIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAgIHNubXBfbWliLmMsIHN5c09SVGFibGUuYywgc3lzdGVtX21pYi5jLCB0Y3AuYywgdWRwLmMsIGRsbW9kLmMsCiAgICAgIHJlZ2lzdHJ5LmMpOiBmaXhlZCBNQVRDSF9GQUlMRUQvU1VDQ0VFREVEIGRlZmluZXMgLT4gdXRpbF9mdW5jcy5oLgoKbXNsaWZjYWsgMTIgTWFyIDk5IDExOjMxOjE2CiAgICAtIChkbG1vZF9taWIuYykgOiBleHBsaWNpdCB0ZXN0IGZvciBNQVRDSF9GQUlMRUQKCmhhcmRha2VyIDEyIE1hciA5OSAxMjoyMDoxMgogICAgLSAobWliMmMpOiBmaXggYXNuX3BhcnNlIGZ1bmN0aW9ucyB0byBwYXNzIGEgcG9pbnRlciB0byB0aGUgc2l6ZSB2YXJpYWJsZS4KCmhhcmRha2VyIDEyIE1hciA5OSAxNDoxNzowOAogICAgLSAoTkVXUyk6IHVwZGF0ZS4KCmhhcmRha2VyIDEyIE1hciA5OSAxNDoxNzo0NAogICAgLSAoc211eC5jKTogcHJvdGVjdCBzdHJjcHkoKSBhZ2FpbnN0IGEgbnVsbCBwYXNzd29yZCBzcGVjaWZpZWQgb24gdGhlCiAgICAgIGNvbmZpZyBsaW5lLgoKbXNsaWZjYWsgMTIgTWFyIDk5IDE0OjM0OjEyCiAgICAtIChocl9zeXN0ZW0uaCkgLSBkb24ndCByZXF1aXJlIGhyX3V0aWw7IGRvbmUgaW4gbWliZ3JvdXAvaG9zdC5oCiAgICAtIChocl9zd3J1bi5jKSAtIHNvbGFyaXMyIDogbWFrZSBzdXJlIGt2bV9vcGVuIGlzIGNhbGxlZCBiZWZvcmUga2QgaXMgdXNlZC4KICAgIC0gKGhyX3N3cnVuLmMpIC0gYWRkIGxhbWUgc3Vub3M0IGVxdWl2YWxlbnQgaW4gSFJTV1JVTlBFUkZfQ1BVLgoKbXNsaWZjYWsgMTIgTWFyIDk5IDE0OjM1OjM4CiAgICAtICh0YXJnZXQuaCwgdGFyZ2V0LyouaCkgcmVxdWlyZSB1dGlsX2Z1bmNzIG9uY2UuCgpoYXJkYWtlciAxMiBNYXIgOTkgMTQ6MzY6MzkKICAgIC0gKHV0aWxfZnVuY3MuaCk6IE1BVENIX0ZBSUxFRCAtPiAtMSwgc2luY2Ugc29tZSB1c2UgaXQuCgptc2xpZmNhayAxMiBNYXIgOTkgMTQ6NTQ6NTEKICAgIC0gcmVzdG9yZSBjb25maWdfcmVxdWlyZSBsb2dpYzsgZml4IHNwcmludGYgY2FsbHMgdG8gY29tcGlsZSB1bmRlciBTdW5PUyA0LjEueC4KCmhhcmRha2VyIDEyIE1hciA5OSAxNToyMzoxOAogICAgLSAoSU5TVEFMTCk6IGRvbid0IHByaW50IG1vZHVsZSBsaXN0IGhlcmUuLi4gIHRlbGwgdGhlbSB0byBsb29rIGF0CiAgICAgIGNvbmZpZ3VyZSAtLWhlbHAuCgpoYXJkYWtlciAxMiBNYXIgOTkgMTU6MjQ6MzcKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBJUEZXQ0hBSU5TLU1JQi50eHQsIFJFQURNRSwKICAgICAgaXBmd2Nfa2VybmVsX2hlYWRlcnMuaCwgaXBmd2NoYWlucy5jLCBpcGZ3Y2hhaW5zLmgsIGxpYmlwZndjLmMsCiAgICAgIGxpYmlwZndjLmgpOiBQYXRjaCBmcm9tIERpZGllciBEaGFlbmVuczoKICAgICAgLSBuZXcgbW9kdWxlczogaXBmd2NoYWlucy4KCm1zbGlmY2FrIDE1IE1hciA5OSAwNTo1NDowNwogICAgLSAoTWFrZWZpbGUuaW4gbGlic25tcC5oIG1pYi5jIHNubXAuaCBzbm1wX2FwaS5jKSB1cGRhdGUgQ01VX0NPTVBBVElCTEUKCmhhcmRha2VyIDE1IE1hciA5OSAwODo0OToxMAogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYXBpLmMpOgogICAgICAtIHJldmVydCB0byBzbm1wX3BhcnNlLgogICAgICAtIGRvbid0IGluc3RhbGwgbGlic25tcC5oLgoKbXNsaWZjYWsgMTUgTWFyIDk5IDA5OjQyOjM0CiAgICAtIHNlY29uZCBwYXNzIGF0IENNVV9DT01QQVQgOiBEaXNhYmxlIGJ5IGRlZmF1bHQsIGxlYXZlIHNubXBfcGFyc2UgYWxvbmUuCgpoYXJkYWtlciAxNSBNYXIgOTkgMTQ6MzA6NDUKICAgIC0gKHNubXAuaCk6IHJlbW92ZSB1bm5lZWRlZCBjb21tZW50ZWQgb3V0IGRlZmluZS4KCmhhcmRha2VyIDE1IE1hciA5OSAxNDozMToyMwogICAgLSAoYWNjb25maWcuaCk6IGFkZGVkIENNVV9DT01QQVRJQkxFCgpoYXJkYWtlciAxNSBNYXIgOTkgMTU6MjE6MDIKICAgIC0gKGhyX3Byb2MuYywgaHJfcHJvYy5oLCBsb2FkYXZlLmMsIGxvYWRhdmUuaCk6IGZpeCB0cnlfbG9hZGF2ZSBmb3Igc29sYXJpcy4KCmhhcmRha2VyIDE1IE1hciA5OSAxNTozMTo1MQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGludGVyZmFjZXMuYywgbGludXguaCk6IGRldGVjdAogICAgICAvcHJvYy9uZXQvZGV2IHZlcnNpb24gYXQgcnVuIHRpbWUsIG5vdCBjb21waWxlIHRpbWUuCgpoYXJkYWtlciAxNSBNYXIgOTkgMTU6NDY6MTIKICAgIC0gKGludGVyZmFjZXMuYyk6IGZpeGVzIGZvciBsaW51eCAyLjIgaW50ZXJmYWNlIHNjYW5uaW5nLgoKaGFyZGFrZXIgMTUgTWFyIDk5IDE1OjU1OjM1CiAgICAtIChNYWtlZmlsZS5pbik6IG1ha2VmaWxlaW5kZXBlbmQuCgpoYXJkYWtlciAxNSBNYXIgOTkgMTU6NTg6MDcKICAgIC0gKEZBUSwgTkVXUyk6IHVwZGF0ZXMgdG8gdGFsayBhYm91dCB0aGUgQUdFTlQudHh0IGZpbGUuCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNS4zIC0+IFYzLjYKCmhhcmRha2VyIDE5IEp1biA5OCAxMzoxNDo0MwogICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlIGZvciAzLjUuCgpoYXJkYWtlciAyMiBKdW4gOTggMDk6MTY6MzIKICAgIC0gKG1haW4uYyk6IFBhdGNoIGZyb20gSmVycnkgRy4gRGVMYXBwOgogICAgICAtIGNvbW1lbnRlZCBvdXQgdHJhaWxpbmcgI2VuZGlmIGNvbW1lbnQuCgpoYXJkYWtlciAyNCBKdW4gOTggMTA6MzA6MTkKICAgIC0gKE1ha2VmaWxlLmluKTogbWFuLT5odG1sIG1ha2Ugc3BlY2lmaWNhdGlvbi4KCmhhcmRha2VyIDI0IEp1biA5OCAxMDozMToyMgogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBjcmVhdGUgc25tcF9wZHVfYWRkX3ZhcmlhYmxlKCkuCgpoYXJkYWtlciAyNCBKdW4gOTggMTA6NTY6NDYKICAgIC0gKHNubXBzZXQuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgIC0gbW92ZWQgaGV4X3RvX2JpbmFyeSwgYXNjaWlfdG9fYmluYXJ5LCBhbmQgc25tcF9hZGRfdmFyIHRvIHNubXBsaWIuCgpoYXJkYWtlciAyNCBKdW4gOTggMTE6MDg6NDEKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNodXRkb3duIHRyYXAgc3BlY2lmaWNhdGlvbnMuCiAgICAgIC0gbWlzYyBtaWIgZml4ZXMuCgpoYXJkYWtlciAyNCBKdW4gOTggMTE6NDA6NDAKICAgIC0gKHNubXBkLmMsIHNubXBkLmgpOgogICAgICAtIGNyZWF0ZWQgKHBvb3JseSkgc2VuZF90cmFwX3BkdSgpIGZvciBzZW5kaW5nIHYyIHRyYXBzIGZyb20gbWliIG1vZHVsZXMuCgpoYXJkYWtlciAyNiBKdW4gOTggMTA6NDI6MzIKICAgIC0gKGRpc2suYyk6IFBhdGNoIGZyb20gTWljaGFlbCBEb3VnbGFzczoKICAgICAgLSBmaXggY2FsY3VsYXRpb24gb2YgdG90YWxkaXNrIGJ5IGRvaW5nIGJsb2NrIGRpdmlzaW9uIGZpcnN0IHRvCiAgICAgICAgcHJvdGVjdCBhZ2FpbnN0IDMyIGJpdCBvdmVyZmxvd3MuCgpoYXJkYWtlciAyNiBKdW4gOTggMTA6NDU6MTUKICAgIC0gKHNtdXguYywgc25tcF9iZ3AuYywgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jLCBzbm1wX3JpcDIuaCk6IFBhdGNoCiAgICAgIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gRml4IGZvciBuZXcgZGVmaW5lcyBhbmQgcHJvcGVyIGhlYWRlciBpbmNsdWRlcy4KCmhhcmRha2VyIDI2IEp1biA5OCAxNTowMzozOAogICAgLSAoZ2VuZXJpYy5oKTogcHV0IGluIGEgY29tbWVudCB0byBrZWVwIGNvbXBpbGVycyBmcm9tIGNvbXBsYWluaW5nIHRvbyBtdWNoLgoKaGFyZGFrZXIgMjggSnVuIDk4IDA5OjMwOjM0CiAgICAtIChzbm1wX2FwaS5jKTogZml4IHNubXBfYWRkX3ZhcigpLgoKaGFyZGFrZXIgIDEgSnVsIDk4IDExOjI4OjE3CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgICAgIGFnZW50X3JlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywgTWFrZWZpbGUuaW4sCiAgICAgIHN0cnVjdC5oLCBwYXNzLmgsIE1ha2VmaWxlLmluLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgIHNubXB0cmFwZF9oYW5kbGVycy5oLCBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwKICAgICAgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgIC0gbW92ZWQgcmVhZF9jb25maWcgc3VwcG9ydCBpbnRvIHRoZSBsaWJyYXJ5IGFuZCB1c2UgaXQuCiAgICAgIC0gYmVnaW5uaW5ncyBvZiBzbm1wdHJhcGQgZXh0ZW5zaWJpbGl0eS4KCmhhcmRha2VyICAxIEp1bCA5OCAxNTo1NjoxMgogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc3lzdGVtLmgpOgogICAgICAtIGFkZGVkIERFQlVHUE9JRChuYW1lLCBuYW1lbGVuKTsKICAgICAgLSBtb3ZlZCBERUJVR1AgZGVmaW5pdGlvbiBpbnRvIHNubXBfYXBpLmggd2hlcmUgaXQgYmVsb25ncy4KCmhhcmRha2VyICAxIEp1bCA5OCAxNTo1Nzo1MwogICAgLSAoc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jKToKICAgICAgLSBmaXggZXh0ZW5zaWJsaXR5IGNoZWNraW5nIG9mIG9pZHMuCiAgICAgIC0gc2VwZXJhdGUgcnVubmluZyBvZiBleHRlcm5hbCBjb21tYW5kIGludG8gbmV3IGZ1bmN0aW9uLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjI2OjI1CiAgICAtIChmcmVlYnNkMi5oKTogdXNlIF9VVE1QX1BBVEggaWYgYXZhaWxhYmxlLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjI2OjM0CiAgICAtIChpcml4LmgpOiBkZWZpbmUgX0tNRU1VU0VSCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6Mjc6MTIKICAgIC0gKHdpbjMyLm9wdCwgbGlic25tcC5kc3AsIGxpYnNubXAucGxnLCBsaWJzbm1wLmRlZiwgbGlic25tcF9kbGwucGxnLAogICAgICBzbm1wYnVsa3dhbGsuZHNwLCBzbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0LmRzcCwgc25tcGdldC5wbGcsCiAgICAgIHNubXBnZXRuZXh0LmRzcCwgc25tcGdldG5leHQucGxnLCBzbm1wc2V0LmRzcCwgc25tcHNldC5wbGcsCiAgICAgIHNubXBzdGF0dXMuZHNwLCBzbm1wc3RhdHVzLnBsZywgc25tcHRyYW5zbGF0ZS5kc3AsCiAgICAgIHNubXB0cmFuc2xhdGUucGxnLCBzbm1wd2Fsay5kc3AsIHNubXB3YWxrLnBsZyk6IFBhdGNoIGZyb20gSm9lCiAgICAgIE1hcnpvdDoKICAgICAgLSB3aW4zMiB1cGRhdGUuCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6MzQ6MjYKICAgIC0gKHN0cnVjdC5oLCB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCwgcGFzcy1wZXJzaXN0LmMsCiAgICAgIHBhc3MtcGVyc2lzdC5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIERvdWdsYXNzOgogICAgICAtIGNyZWF0ZSBhIHBhc3MtcGVyc2lzdCBtb2R1bGUgdG8gaGFuZGxlIGNvbnRpbnVvdXNseSBydW5uaW5nIHBhc3MgdGhyb3VnaHMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6NTY6NDYKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiByZW1vdmVkIGZyb20gYWdlbnQgZGlyLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjU3OjA2CiAgICAtICh1Y2Rfc25tcC5oKTogYWRkZWQgcGFzcy1wZXJzaXN0IG1vZHVsZS4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjo1ODowMwogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSBmaXggIm51bWJlciBvZiByZXRyaWVzIiBidWcuCiAgICAgIC0gcmVtb3ZlIG9kZCB0aW1lb3V0IGNhbGN1bGF0aW9uIGNvZGUgZm9yIHJldHJpZXMgPiAzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEzOjAyOjA2CiAgICAtIChpbnRlcmZhY2VzLmMpOiBtYWtlIGhwX2ludGVyZmFjZXMgc3RydWN0dXJlIHN0YXRpYy4KCmhhcmRha2VyICA4IEp1bCA5OCAxMzowMzozNgogICAgLSAoc3lzdGVtLmMpOiBkb24ndCBmcmVlIGVudiBwb2ludGVycyB0aGF0IGFyZSBjcmVhdGVkLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEzOjA4OjE4CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggZm9yIG1pc3Npbmcgb2JqZWN0IGlkZW50aWZpZXIgbGFiZWxzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjA0OjIyCiAgICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgIC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCBkbG1vZF9taWIuYywgZGxtb2RfbWliLmgsIGV4YW1wbGUuYywKICAgICAgZXhhbXBsZS5oLCBkbG1vZC5jLCBkbG1vZC5oLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgIERMTU9ELU1JQi50eHQsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRXVnZW5lCiAgICAgIFBvbG92bmlrb3Y6CiAgICAgIC0gbmV3IGRsbW9kIHNldC4KICAgICAgLSBmaXggY29uZmlndXJlIHNjcmlwdC4KCmhhcmRha2VyICA4IEp1bCA5OCAxNDoyMDo0MgogICAgIC0gKGRsbW9kLmMpOiB1c2Ugc25tcGRfIHJlZ2lzdGVyX3JlYWRfY29uZmlnKCkgd3JhcHBlcnMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDM6NTYKICAgIC0gKHNubXBfdmFycy5jKTogaW5jbHVkZSBmaXhlcy4KCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0NDoyNQogICAgLSAodWNkX3NubXAuaCk6IHJlbW92ZWQgdWNkLXNubXAvcGFzc19wZXJzaXN0IGZyb20gZGVmYXVsdCBpbmNsdWRlIGxpc3QuCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDQ6MzQKICAgIC0gKHBhc3MuYyk6IGluY2x1ZGUgc3lzL3dhaXQuaAoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ0OjQxCiAgICAtICh2ZXJzaW9uaW5mby5jKTogaW5jbHVkZSBzeXN0ZW0uaAoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ1OjIyCiAgICAtIChwYXJzZS5jKTogaW5jbHVkZSBzbm1wX2FwaS5oCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDU6NDIKICAgIC0gKHNubXBfYXBpLmMpOiBpbmNsdWRlIGZpeGVzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDE1OjMxOjM2CiAgICAtIChzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMpOiAtV2FsbCBmaXhlcy4KCmhhcmRha2VyICA4IEp1bCA5OCAxNTozMTo1MAogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuYyk6IC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDE1OjUxOjI4CiAgICB2ZXJzaW9uIHRhZyAoIDMuNi5wcmUxICkKCmhhcmRha2VyIDEwIEp1bCA5OCAwOTo0MjoxNgogICAgLSAoc25tcGQuYyk6IHdyb25nIHBkdSBwb2ludGVyIGZvciBzbm1wdjJjIHRyYXBzLgoKaGFyZGFrZXIgMTUgSnVsIDk4IDE1OjQ2OjI4CiAgICAtIChzZWRzY3JpcHQuaW4pOiB1c2luZ19tb2R1bGUgY2hhbmdlcy4KCmhhcmRha2VyIDE1IEp1bCA5OCAxNTo0Njo1NQogICAgLSAobWVtb3J5LmgpOiBNRU1TV0FQTUlOSU1VTSB3YXNuJ3QgYmVpbmcgdXNlZC4KCmhhcmRha2VyIDE3IEp1bCA5OCAxMzoxMToxMAogICAgLSAoVUNELVNOTVAtTUlCLmluYywgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gY3JlYXRlZCBzbWljbmcgaW5wdXQgZmlsZS4KICAgICAgLSBmaXhlZCB0aGUgVUNELVNOTVAgbWliIHRvIGRlYWwgd2l0aCBtb3N0IHNtaWMgZXJyb3JzLgoKaGFyZGFrZXIgMjAgSnVsIDk4IDE3OjE0OjIxCiAgICAtIChzbm1wY2hlY2suZGVmKTogd29yayBhcm91bmQgZm9yIG5ldyBtdWx0aS1kZXB0aCBtaWIgdGFibGVzLi4KCmhhcmRha2VyIDIyIEp1bCA5OCAxNTozNTowNwogICAgLSAobWliLmMpOiBkb24ndCBjaGFuZ2UgcnVubmluZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2l0aCBzdHJ0b2suCgpoYXJkYWtlciAyMiBKdWwgOTggMTY6MjM6NDUKICAgIC0gKE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4pOiBmaXggc2Vkc2NyaXB0IGluY2x1ZGVzLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDEzOjAyOjI3CiAgICAtIChpbnRlcmZhY2VzLmMpOiBtaXNzaW5nIHJldHVybiBvbiBpZkluRXJyb3JzIHJlc3VsdHMuCgpoYXJkYWtlciAzMSBBdWcgOTggMTM6MzI6NDMKICAgIC0gKHNubXB0cmFwZC5jKTogYWRkIGEgYmxhbmsgbGluZSB0byB0aGUgZW5kIG9mIHRoZSB0cmFwZCBvdXRwdXQgZm9yIHBhcnNpbmcuCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDM6MzAKICAgIC0gKFRPRE8pOiBhZGRlZCBzZWN1cml0eSBjaGVja3MuCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDQ6MzgKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gcGVyc2lzdGVudCBjb25maWcgZmlsZSBxdWVzdGlvbi4KCmhhcmRha2VyICAyIFNlcCA5OCAxODo0NDo1MwogICAgLSAoTWFrZWZpbGUuaW4pOiB0eXBvLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE4OjQ3OjE1CiAgICAtIChtaWIuYywgbWliLmgsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgICAtIHByZS9wb3N0IG1pYiBsb2FkaW5nIGNvbmZpZyBmaWxlcy4KICAgICAgLSBjcmVhdGUgaW5pdF9zbm1wKCkgdG8gd3JhcCBvdGhlciBmdWN0aW9ucy4KICAgICAgLSBuZXcgc25tcC5jb25mIGRpcmVjdGl2ZXM6IG1pYnMsIG1pYmRpcnMsIG1pYmZpbGUuCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDc6NDgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBpbml0X3NubXAoKS4KCmhhcmRha2VyICAyIFNlcCA5OCAxODo0ODoyNQogICAgLSAobGlic25tcC5kZWYpOiBmaW5kX21vZHVsZS4KCmhhcmRha2VyICAyIFNlcCA5OCAxODo0ODo0MAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiB1c2UgaW5pdF9zbm1wIGluc3RlYWQgb2YgaW5pdF9taWIoKS4KCmhhcmRha2VyICAyIFNlcCA5OCAxODo1MDozNAogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCwgc25tcF92YXJzLmMsIHNubXBkLmMsCiAgICAgIHNubXBkLmgpOgogICAgICAtIHN1cHBvcnQgbWliLW1vZHVsZSBzaHV0ZG93biBmdW5jdGlvbnMuCiAgICAgIC0gZG8gYSBtaW5pbWFsIHBlcnNpc3RlbnQgY2FjaGUgaW1wbGVtZW50YXRpb24gYW5kIHJlYWQgaXQgYXQgc3RhcnQgdXAuCiAgICAgIC0gdGVzdCB3aXRoIGJlZ2lubmluZ3MgKHdyb25nIHBsYWNlKSBvZiBhZ2VudEJvb3RzIHZhcmlhYmxlLgoKbmJhICAzIFNlcCA5OCAxNDoyOTowMwogICAgLSAoZml4cHJvYyk6IGFkZGVkIGNvbW1lbnQgdG8gdGVzdCBDVlMuCgpoYXJkYWtlciAgOSBTZXAgOTggMTY6MTI6MzIKICAgIC0gKCopOiBNZXJnZSBpbnRvIG1haW4gYnJhbmNoIGZyb20gMy41LjEgYnJhbmNoLgoKaGFyZGFrZXIgIDkgU2VwIDk4IDE2OjU1OjA0CiAgICAtIChzbm1wZC5jKTogZml4IHRyYXAgc3R1ZmYgYnJva2VuIGJ5IHRoZSBjb2RlIG1lcmdlLgoKaGFyZGFrZXIgMTEgU2VwIDk4IDA5OjI2OjQyCiAgICAtICgqKTogTWVyZ2VkIHRoZSBNVCBjaGFuZ2VzIGludG8gdGhlIG1haW4gYnJhbmNoLgoKaGFyZGFrZXIgMTIgU2VwIDk4IDA4OjQ2OjAxCiAgICAtIChzbm1wX2FwaS5jKTogcHJvdG90eXBlIG1vdmUgaW5pdF9zbm1wKCkgYWJvdmUgaW5pdF9zbm1wX3Nlc3Npb24uCgpoYXJkYWtlciAxMiBTZXAgOTggMDg6NTM6MjMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogbW92ZSB1bi1jb25maWd1cmVkIGRlZmluZXMgYWJvdmUgQFRPUEAuCgpoYXJkYWtlciAxMiBTZXAgOTggMDg6NTQ6MjQKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogRG9uJ3QgZm9yY2UgY2MgYW55bW9yZSwgYWxsb3cgZ2NjIHRvIGdvIGZpcnN0LgoKaGFyZGFrZXIgMTIgU2VwIDk4IDA4OjU2OjUxCiAgICAtIChvdi9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgc2VjdGlvbnMgYWxyZWFkeSBkZWZpbmVkIGluIE1ha2VmaWxlLnRvcC4KCmhhcmRha2VyIDEyIFNlcCA5OCAwOTowMjozNwogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGJ1ZyBmaXggdG8gY2hlY2sgZm9yIE5VTEwgc2Vzc2lvbiBwb2ludGVyIGJlZm9yZSB1c2luZyBpdC4KCmhhcmRha2VyIDEyIFNlcCA5OCAwOTowODo0NgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBNb3ZlIENBTl9VU0VfTkxJU1QgdGVzdHMgYmVsb3cgYXJjaCAuaCBmaWxlcy4KCmhhcmRha2VyIDEzIFNlcCA5OCAxODoyNDowMAogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGV4aXQgLT4gcmV0dXJuLgoKaGFyZGFrZXIgMTMgU2VwIDk4IDIwOjEyOjA5CiAgICAtIChzbm1wdGFibGUuYywgc25tcHRyYW5zbGF0ZS5jLCBtaWIuYywgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgpOgogICAgICAtIG1lcmdlIGludG8gbWFpbiBsaW5lIGZyb20gdGhlIDMtNi1wcmUxLXRyYW5zIGJyYW5jaC4KCmhhcmRha2VyIDEzIFNlcCA5OCAyMDoxODoxMAogICAgLSAoc25tcF9hcGkuYyk6IGRlZmluZSB1c2FnZSBtaXNwZWxsaW5nIFNOTVBfQkFEX1BBUlNFIC0+IFNOTVBFUlJfQkFEX1BBUlNFLgoKaGFyZGFrZXIgMTMgU2VwIDk4IDIwOjMwOjM4CiAgICAtIChzbm1wX2FwaS5jKTogcHJldmVudCBkb3VibGUgaW5pdF9zbm1wKClzLgoKaGFyZGFrZXIgMTMgU2VwIDk4IDIxOjA1OjI2CiAgICAtIChSRUFETUUpOiBOYW1lIGFkZGl0aW9uLgoKaGFyZGFrZXIgMTMgU2VwIDk4IDIxOjA2OjUyCiAgICAtIChtaWIuYywgcmVhZF9jb25maWcuYyk6IHJlZml4IHRoZSBub24tbWFsbG9jZWQgY29uZmlndXJhdGlvbiB2YXJzLgoKaGFyZGFrZXIgMTMgU2VwIDk4IDIxOjA5OjM2CiAgICB2ZXJzaW9uIHVwZGF0ZTogMy42LnByZTIKCmhhcmRha2VyIDE0IFNlcCA5OCAxMjozNToxMAogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBpbnN0YWxsIHNubXBfc2Vzc19hcGkuMy4KCmhhcmRha2VyIDE0IFNlcCA5OCAxMjo0MzozMgogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIGRsbW9kX21pYi5jLCB1dGlsX2Z1bmNzLmMsCiAgICAgIGR1bW15LmMsIHdvbWJhdC5jLCBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgICAgIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLAogICAgICBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLAogICAgICBpcC5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgc25tcF9iZ3AuYywKICAgICAgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jLCBocHV4LmMsIHBhc3MuYywgcGFzc19wZXJzaXN0LmMsCiAgICAgIHJlZ2lzdHJ5LmMsIGFjbF92YXJzLmMsIGFsYXJtLmMsIGNvbnRleHRfdmFycy5jLCBldmVudC5jLAogICAgICBwYXJ0eV92YXJzLmMsIHZpZXdfdmFycy5jLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSByZW5hbWUgY29tcGFyZSAtPiBzbm1wX29pZF9jb21wYXJlKCkuCgpoYXJkYWtlciAxNSBTZXAgOTggMTM6MDI6MzQKICAgIC0gKGluZXQuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIG1lbW9yeSByZWxhdGVkIGZpeGVzLgoKaGFyZGFrZXIgMTUgU2VwIDk4IDEzOjA3OjA1CiAgICAtIChtaWIuYyk6IC8vIGNvbW1lbnQgLT4gLyogKi8gY29tbWVudC4KCmhhcmRha2VyIDE1IFNlcCA5OCAxMzowNzo0NQogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCBpbml0X3NubXAgY2FsbHMgZnJvbSBzZXNzaW9uIHJvdXRpbmVzLgoKaGFyZGFrZXIgMTggU2VwIDk4IDEzOjIwOjExCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogYWRkZWQgdGhlIEZpbGVUYWJsZSBzdWJtaXR0ZWQgYnkgSm9uYXMgT2xzc29uLgoKaGFyZGFrZXIgMTggU2VwIDk4IDE0OjAxOjUxCiAgICAtICh1Y2Rfc25tcC5oKTogYWRkIHRoZSBmaWxlIG1pYiBtb2R1bGUuCgpoYXJkYWtlciAxOCBTZXAgOTggMTQ6MDQ6NDMKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBDaGFuZ2UgZmlsZSByZXR1cm4gY29kZSBmcm9tIFRydXRoVmFsdWUgdG8KICAgICAgaW50ZWdlciBzaW5jZSAxLzIgZG9lcyBub3QgZml0IHRoZSBjdXJyZW50IDAvMSByZXR1cm4gY29kZSBzY2hlbWUuCgpoYXJkYWtlciAyMSBTZXAgOTggMTE6MTE6MzkKICAgIC0gKHNubXBfdmFycy5jKTogZmluYWxseSBmaXhlZCB0aGUgd3JpdGVfbWV0aG9kJ3MgZm9yIGNyZWF0aW9uIHByb2JsZW0uCgpoYXJkYWtlciAyMyBTZXAgOTggMTM6MDc6MDcKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcGFyc2UuYyk6IE5ldyBmbGFnOgogICAgICAtIC0tZW5hYmxlLWVvbC10ZXJtaW5hdGVkLWNvbW1lbnRzLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjA1OjQwCiAgICAtIChzbm1wX2FwaS5jKTogZG9uJ3QgcmVseSBvbiB0aGUgZ2V0c2VydmJ5bmFtZSBwb2ludGVyIHRvIHN0YXkgYXJvdW5kLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjE1OjIyCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBUaGUgQ01VIGxpYnJhcnkgaGFzIGFuIG9wdGltaXphdGlvbiBpbiBzbm1wX2Nsb25lX3BkdSgpIHRoYXQgZG9lcwogICAgICAgbm90IGNvcHkgemVybyBsZW5ndGggc3RyaW5ncy4gIEkgaGFkIG1lcmdlZCB0aGlzIGluIHdpdGggY2hhbmdlcwogICAgICAgbWFkZSBmb3IgbXVsdGktdGhyZWFkIHN1cHBvcnQuICBVbmZvcnR1bmF0ZWx5LCBJIGRpZCBub3QgbWFrZSBzdXJlCiAgICAgICB0aGUgY2xvbmVkIFBEVSBoYWQgbm8gcG9pbnRlciBmb3IgdGhpcyBjYXNlLiAgT29wcyEKICAgICAtIEFub3RoZXIgcHJvYmxlbSBpbiBzbm1wX2Nsb25lX3BkdSgpIHdhcyB0aGUgdGVzdCBmb3IgemVybyBsZW5ndGgKICAgICAgIHN0cmluZyB3YXMgbm90IGJlaW5nIHBlcmZvcm1lZCBvbiB0aGUgZmlyc3QgdmFyYmluZCBpbiB0aGUgY2hhaW4uCgpoYXJkYWtlciAyNSBTZXAgOTggMTc6MjQ6MTYKICAgIC0gKG1pYi5jLCBtaWIuaCwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20KICAgICAgTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCBjb21waWxlciB3YXJuaW5ncywgZXJyb3JzLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjI1OjEwCiAgICAtIChzbm1wdGFibGUuYyk6IHByb2Nlc3MgYXJncyBkaXJlY3RseSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gZ2V0X29wdCgpLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjMzOjA2CiAgICAtIChjb25maWcuaCwgd2luMzIuZHN3LCBsaWJzbm1wLmRzcCwgbGlic25tcC5kZWYsIGxpYnNubXBfZGxsLmRzcCwKICAgICAgIHNubXB0YWJsZS5kc3ApOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBzdHVwaWQgT1MgdXBkYXRlLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjU1OjUwCiAgICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGluc3RhbGwgbW9yZSBoZWFkZXJzLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjU2OjQzCiAgICAtIChNYWtlZmlsZS5pbik6IGRvbid0IGluc3RhbGwgbGlic25tcC5oLiAgSXQncyBnb2luZyB0byBjaGFuZ2UgdG9vCiAgICAgIG11Y2ggaW4gdGhlIGZ1dHVyZS4KCmhhcmRha2VyIDI1IFNlcCA5OCAxODowMzoyNwogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHZlcnNpb24uaCwgYW5kIHN0cmlwIGluY2x1ZGVzIG91dCBvZiBjb25maWcuaAoKaGFyZGFrZXIgMjUgU2VwIDk4IDE4OjA0OjExCiAgICAtIChzbm1wX2FwaS5jKTogcmVtb3ZlIHVubmVlZGVkIGNvbW1lbnQtb3V0LgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE4OjE0OjIwCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgdXRpbF9mdW5jcy5jKTogdXNlIFVTTEVFUCBpZiBhdmFpbGFibGUgZm9yCiAgICAgIHNtYWxsIHNsZWVwIHRpbWVzIHdoaWxlIHdhaXRpbmcgZm9yIHByb2Nlc3NlcyB0byBmaW5pc2guCgpoYXJkYWtlciAzMCBTZXAgOTggMTQ6NTc6MTEKICAgIC0gKENoYW5nZUxvZywgRVhBTVBMRS5jb25mLmRlZiwgTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgIGludGVyZmFjZXMuYywgbWVtb3J5LmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHBhcnNlLmMpOgogICAgICAtIG1lcmdlIDMuNS4zIGNoYW5nZXMgaW50byBtYWluIHRydW5rLgoKaGFyZGFrZXIgIDUgT2N0IDk4IDE2OjUzOjIzCiAgICAtIChkdW1teS5jLCBkdW1teS5oKTogdXBkYXRlIHRvIHJlbW92ZSBjb21tb25faGVhZGVyLmgKCmhhcmRha2VyICA1IE9jdCA5OCAxNzowMzozNAogICAgLSAoaHJfcHJvYy5jKTogcG9zc2libGUgZml4IGZvciBzb2xhcmlzJ3MgcHJvY2VzcyBwZXJjZW50YWdlLgoKaGFyZGFrZXIgIDYgT2N0IDk4IDE1OjE4OjAzCiAgICAtICh2YXJfcm91dGUuYyk6IGhhY2sgZml4ZXMgZm9yIGhwdXgxMCBhbmQgcnRlbnRyeS4KCmhhcmRha2VyICA2IE9jdCA5OCAxNToxODoxNgogICAgLSAoaHB1eC5oKTogaGFjayBmaXhlcyBmb3IgaHB1eDEwIGFuZCBydGVudHJ5LgoKaGFyZGFrZXIgIDYgT2N0IDk4IDE1OjE4OjU1CiAgICAtIChjb25maWcuaC5pbik6IHNldHVwIGRlZmluZSBmb3IgSEFWRV9VU0xFRVAuCgpoYXJkYWtlciAgNiBPY3QgOTggMTU6MzQ6NTgKICAgIC0gKHJlbW92ZS1maWxlcyk6IHVwZGF0ZS4KCmhhcmRha2VyICA2IE9jdCA5OCAxNTozNTowNgogICAgLSAodmVyc2lvbnRhZyk6IGZpeCBmb3IgY3ZzIDEuMTAuCgpoYXJkYWtlciAgNiBPY3QgOTggMTU6Mzg6NDkKICAgIC0gKHZlcnNpb250YWcpOiB0eXBvLgoKaGFyZGFrZXIgIDYgT2N0IDk4IDE1OjM4OjU2CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmUzICkKCmhhcmRha2VyICA3IE9jdCA5OCAxNjo0OToxMQogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBwcm9wZXJseSBsb2NhdGUgdmVyc2lvbi5oIGluICQoc3JjZGlyKS4KCmhhcmRha2VyICA3IE9jdCA5OCAxNjo0OTozMAogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggbWFrZSBodG1sLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE2OjUwOjIzCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gcmVtb3ZlIHVuLW5lZWRlZCBoZWFkZXJzLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE2OjUxOjU2CiAgICAtIChzbm1wX2FwaS5jKTogZml4IGRlZmF1bHQgcG9ydCBwcm9ibGVtcyAoYWdhaW4pLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE2OjU0OjM4CiAgICAtIChzbm1wZGVsdGEuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCBleGl0aW5nIHByb2JsZW1zIG9uIE5ULgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE3OjAwOjQwCiAgICAtIChsaWJzbm1wLmRzcCwgbGlic25tcF9kbGwuZHNwKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gd2luTlQgcHJvamVjdCBmaWxlIHVwZGF0ZXMuCgpoYXJkYWtlciAgOSBPY3QgOTggMDg6MDk6MTIKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHVzZSB6bGliIHdoZW4gdXNpbmcgcnBtIGxpYnJhcmllcy4KCmhhcmRha2VyICA5IE9jdCA5OCAyMzowODoxOAogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gQ2hlY2sgZm9yIGZ1bGx5IHF1YWxpZmllZCBvaWQgc3RhdGVtZW50cy4KCmhhcmRha2VyICA5IE9jdCA5OCAyMzoxMjowMgogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gc3VwcG9ydCBmb3Igc3RyaWN0IChjYXNlIHNlbnNpdGl2ZSkgb3B0aW9uIHRvIHRoZSBtaWIgY29tcGlsZXIuCgpoYXJkYWtlciAgOSBPY3QgOTggMjM6MjA6MjUKICAgIC0gKEZBUSk6IERhdmUgU2hpZWxkIGV4cGxhaW5zIGluIHdvbmRlcm91cyBkZXRhaWwgYWxsIGFib3V0IHRoZSBWQUNNIG1vZHVsZS4KCmhhcmRha2VyIDE0IE9jdCA5OCAwOToxNzowMgogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGNoYW5nZSBwdWJsaWMgY29tbXVuaXR5IGV4YW1wbGVzIC0+IHByaXZhdGUuCgpoYXJkYWtlciAxNCBPY3QgOTggMDk6NDE6MTIKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBtYWNoaW5lL3R5cGVzLmguCgpoYXJkYWtlciAxNCBPY3QgOTggMDk6NDE6MzgKICAgIC0gKGhvc3RfcmVzLmgpOiBuZXQvaW5fdmFyLmggZm9yIGZyZWVic2QzLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDA5OjQyOjIwCiAgICAtIChocl9zdG9yYWdlLmMpOiBtYWNoaW5lL3R5cGVzLmggYW5kIHN5cy92bW1ldGVyLmggZm9yIGZyZWVic2QzLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDA5OjUwOjI2CiAgICAtIChmcmVlYnNkMy5oKTogZGVmaW5lIGZyZWVic2QyIGFuZCBNT1VOVF9ORlMuCgpoYXJkYWtlciAxNCBPY3QgOTggMDk6NTE6NTgKICAgIC0gKGZyZWVic2QzLmgpOiBvcHBzOiAgZGVmaW5lIE1PVU5UX05GUyBhcyAibmZzIi4KCmhhcmRha2VyIDE0IE9jdCA5OCAxNjo0MDowNQogICAgLSAoc25tcGQuYyk6IC1BOiBhcHBlbmQgdG8gbG9nIGZpbGUuCgpoYXJkYWtlciAxNCBPY3QgOTggMTY6NDE6NTIKICAgIC0gKHNubXBkLmMpOiBkb2N1bWVudCAtQS4KCmhhcmRha2VyIDE0IE9jdCA5OCAxNjo0MjoxMAogICAgLSAoc25tcGQuMS5kZWYpOiBkb2N1bWVudCAtQS4KCmhhcmRha2VyIDE0IE9jdCA5OCAxNjo0OTowMwogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggZm9yIGJyb2tlbiBjb21waWxlciB3YXJuaW5ncyBvbiBOVC4KCmhhcmRha2VyIDE0IE9jdCA5OCAxNjo1Mjo1MQogICAgLSAobWVtb3J5LmMpOiBmaXggZm9yIGhwdXg5LgoKaGFyZGFrZXIgMTYgT2N0IDk4IDA4OjM4OjM5CiAgICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgYWl4LmgpOiBhaXggaGVhZGVyIGZpbGUgZml4ZXMuCgpoYXJkYWtlciAyMSBPY3QgOTggMTA6NTQ6NDkKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIEZpeCBwYXJzZXIgdG8gZGVhbCB3aXRoIGFub255bW91cyBjaGlsZHJlbiBwcm9wZXJseS4KCmhhcmRha2VyIDIxIE9jdCA5OCAxMTowODo1NgogICAgLSAoaHJfZmlsZXN5cy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSB3YXRjaCBvdXQgZm9yIGVtcHR5IGZpbGUgbmFtZXMgcGFzc2VkIGluLgoKaGFyZGFrZXIgMjEgT2N0IDk4IDE3OjAxOjEyCiAgICAtICguY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuMy5kZWYpOgogICAgICAtIG5ldyB1bnByb29mcmVhZCBtYW51YWwgb24gdGhlIHJlYWRfY29uZmlnIGFwaSAobW9zdCBvZiBpdCkuCgpoYXJkYWtlciAyMyBPY3QgOTggMDc6NTc6MTcKICAgIC0gKGhyX2ZpbGVzeXMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gTlVMTCBjaGVja2luZyBvbiB0aGUgZmlsZXN5c3RlbSBtb3VudCBwb2ludC4KCmhhcmRha2VyIDIzIE9jdCA5OCAxMzo1NDoxMQogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnNlcnQgQCBzaWduLgoKaGFyZGFrZXIgMjMgT2N0IDk4IDEzOjU0OjQ3CiAgICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYyk6IGJ1ZyBmaXhlcywgbWlzc2luZyAjZW5kaWYuCgpoYXJkYWtlciAyMyBPY3QgOTggMTM6NTY6MDkKICAgIC0gKHRrbWliKTogZWRpdGFibGUgb2lkIGZpZWxkLgoKaGFyZGFrZXIgMjMgT2N0IDk4IDEzOjU5OjQ0CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgIGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmgsIHNubXBkLmMsIHdvbWJhdC5oLAogICAgICBzeXN0ZW0uaCwgdmFjbV92YXJzLmgsIGRsbW9kLmMsIGRpc2suaCwgZXh0ZW5zaWJsZS5oLCBmaWxlLmgsCiAgICAgIGxvYWRhdmUuaCwgbWVtb3J5LmgsIG1lbW9yeV9mcmVlYnNkMi5oLCBwYXNzLmgsIHBhc3NfcGVyc2lzdC5oLAogICAgICBwcm9jLmgsIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcGQuYywgbWliLmMsIHJlYWRfY29uZmlnLmMsCiAgICAgIHJlYWRfY29uZmlnLmgpOgogICAgICAtIG5ldyBvcHRpb24gLUggb24gY29tbWFuZCBsaW5lIHRvIHByaW50IG91dCAuY29uZiBmaWxlIGRpcmVjdGl2ZXMKICAgICAgICB0aGF0IHRoZSBhcHBsaWNhdGlvbiB1bmRlcnN0YW5kcy4KICAgICAgLSBjcmVhdGVkIGEgbmV3IG9wdGlvbiB0byB0aGUgcmVhZCBjb25maWcgcmVnaXN0cmF0aW9uIHRvIGFsbG93CiAgICAgICAgc3BlY2lmeWluZyBvZiBhIGhlbHAgbGluZS4KCmhhcmRha2VyICA2IE5vdiA5OCAxNzoyMzo0NgogICAgLSAoc25tcGQuYyk6IGZpeCB2MiB0cmFwIGdlbmVyYXRpb24uCgpoYXJkYWtlciAgNiBOb3YgOTggMTc6NDQ6NDMKICAgIC0gKHNubXBkLmMpOiB2MiB0cmFwIHNlbmQgZGVidWdnaW5nLgoKaGFyZGFrZXIgMTYgTm92IDk4IDIyOjEwOjA4CiAgICAtICh0a21pYik6IHRvbyBtYW55IGltcHJvdmVtZW50cyB0byBjb3VudC4KCmhhcmRha2VyIDIzIE5vdiA5OCAxNTo0Mjo1MgogICAgLSAoaW50ZXJmYWNlcy5jLCBpcml4LmgpOiBmaXggbG9jYXRpb24gb2YgX0tFUk5FTCBkZWZpbmUgZm9yIGlyaXguCgpoYXJkYWtlciAyMyBOb3YgOTggMTY6MzU6NDAKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIG1pc2MgcGFyc2luZyBidWcgZml4ZXMuCiAgICAgIC0gLXcgJiAtVyBvcHRpb25zIHRvIGRlZmF1bHQgYXBwbGljYXRpb24gcGFyc2VfYXJncy4KICAgICAgLSBydW50aW1lIG9wdGlvbnMgdG8gY29udHJvbCB1bmRlcnNjb3JlIGFuZCBjb21tZW50IHBhcnNpbmcgaW4gbWlicy4KCmhhcmRha2VyIDEzIERlYyA5OCAwNzo0Mjo0NAogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWIuYywgc25tcF9hcGkuYyk6CiAgICAgIC0gdXNlIHNldGxvY2FsZSgpIGlmIGF2YWlsYWJsZSB0byBjb3JyZWN0IGlzcHJpbnQgcHJvYmxlbXMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDc6NDg6NTMKICAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBuZXcgZnVuY3Rpb25zOiBzbm1wX21pYl90b2dnbGVfb3B0aW9ucygpIGFuZCB1c2FnZS4KCmhhcmRha2VyIDEzIERlYyA5OCAwNzo0OTo0MwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiAtUCBmbGFnIGZvciB0b2dnbGluZyBuZXcgbWliIHBhcnNpbmcgb3B0aW9ucy4KCmhhcmRha2VyIDEzIERlYyA5OCAwODowNjozMwogICAgLSAoTkVXUyk6IGJlZ2lubmluZyBub3RlcyBmb3IgMy42LgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjA3OjI0CiAgICAtIChkaXNrLmMpOiBmaXggZGlzayBzaXplIGVycm9yIGZsYWcgcmVwb3J0aW5nIG9uIFNvbGFyaXMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6MTI6MTMKICAgIC0gKHBhcnNlLmMpOiBzcGFjaW5nIGluIG1pYiBvcHRpb24gdXNhZ2UgZml4ZXMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6MTQ6NDQKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogcmVtb3ZlIC13Ly1XIGZsYWcgaW4gdXNhZ2UuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6MTg6MDcKICAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IHJlbW92ZSBhIGZldyBkZWZpbmVzIHRoYXQgd2VyZSBtZXNzaW5nIHVwIHNvbGFyaXMgNy4KCmhhcmRha2VyIDEzIERlYyA5OCAwODo0MTo1NQogICAgLSAoaHJfZmlsZXN5cy5jKTogd2F0Y2ggb3V0IGZvciBOVUxMIGZpbGUgcG9pbnRlcnMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6NDI6MjAKICAgIC0gKGluZXQuYyk6IGluaXQgcG9pbnRlciB0byBOVUxMLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjQ4OjM4CiAgICAtIChocl9zd2luc3QuYyk6IFBhdGNoIGZyb20gSmVmZiBKb2huc29uOgogICAgICAtIHByb3RlY3QgYWdhaW5zdCBtZW1vcnkgbGVha3Mgd2l0aCB0aGUgUlBNIHBhY2thZ2UgaW5mbyBjYWxscy4KCmhhcmRha2VyIDEzIERlYyA5OCAwODo1Nzo1MgogICAgLSAoUkVBRE1FKTogYWRkZWQgSmVmZiBKb2huc29uIHRvIHRoZSBjb250cmlidXRvcnMgbGlzdC4KCmhhcmRha2VyIDEzIERlYyA5OCAwODo1OToxNgogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlNSApCgpoYXJkYWtlciAxNiBEZWMgOTggMDc6MzE6MjYKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBwb2ludGVyIGNoZWNrcyBiZWZvcmUgZnJlZWluZyBtZW1vcnkuCgpoYXJkYWtlciAxOCBEZWMgOTggMTE6MzY6MzkKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB0eXBvLgoKaGFyZGFrZXIgMTggRGVjIDk4IDE4OjEwOjI0CiAgICAtIChwYXJzZS5jLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAgLSBmaXhlcyBmcm9tIE1pY2hhZWwgU2xpZmNhay4KICAgICAgLSBtaXNjIHJlYWRfY29uZmlnIGZ1bmN0aW9ucyBwdWxsZWQgaW4gZnJvbSB0aGUgdjMgd29yay4KCmhhcmRha2VyIDE4IERlYyA5OCAxODoxMTowMwogICAgLSAobGlic25tcC5kZWYpOiB1cGRhdGUgZnJvbSBNaWNoYWVsIFNsaWZjYWsuCgpoYXJkYWtlciAxOCBEZWMgOTggMTg6MTI6NTQKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogaW5jbHVkZSByZWFkX2NvbmZpZy5oLgoKaGFyZGFrZXIgMTggRGVjIDk4IDE4OjE2OjMzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIHN0b3JlIGNvbmZpZ3VyZSBmbGFncyB0byBhIGRlZmluZS4KCmhhcmRha2VyIDE4IERlYyA5OCAxODoxNjo1MwogICAgLSAodmVyc2lvbmluZm8uYywgdmVyc2lvbmluZm8uaCk6IG1pYiBvYmplY3QgdG8gZGlzcGxheSBjb25maWd1cmUgb3B0aW9ucy4KCmhhcmRha2VyIDIxIERlYyA5OCAxODoxOToxMgogICAgLSAoZmlsZS5oLCBVQ0QtU05NUC1NSUIudHh0KTogbW92ZSB0aGUgZmlsZSBtaWIgdG8gLjE1IHNvIGl0IGRvZXNuJ3QKICAgICAgY29uZmxpY3Qgd2l0aCB0aGUgZGVtbyBtaWIuCgpoYXJkYWtlciAyMSBEZWMgOTggMTg6MjA6MjUKICAgIC0gKHN5c3RlbS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gV2luMzIgbWVtb3J5IGxlYWsgZml4ZXMgZm9yIG9wZW5kaXIoKSwgZXRjLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDA4OjUwOjI5CiAgICAtIChNYWtlZmlsZS5pbik6IGRvbid0IGNvbXBpbGUgZGxtb2RzCgpoYXJkYWtlciAyMiBEZWMgOTggMTQ6NTY6NDQKICAgIC0gKG1pYi5jLCBzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IG15IGJyb2tlbiBzZXRfbG9jYWxlIHN0dWZmLgoKaGFyZGFrZXIgMjYgRGVjIDk4IDEwOjM1OjIzCiAgICAtIChkbG1vZC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IGRsbW9kIGNvbXBpbGF0aW9uIGluIHNubXBkX3JlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKCkgY2FsbC4KCmhhcmRha2VyIDI5IERlYyA5OCAxNjo1NTo1NAogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSByZW1vdmUgbmV3bGluZXMgZnJvbSBzcHJpbnRfdmFsdWUoKSB3aGVyZSBhcHBsaWNhYmxlLgoKaGFyZGFrZXIgMjkgRGVjIDk4IDE3OjAyOjMzCiAgICAtICh2YWNtLmMpOiBFbmFibGUgbXVsdGlwbGUgc2lkZSBieSBzaWRlIHZpZXdzIGluIHRoZSB2aWV3IGZhbWlseQogICAgICB0cmVlLiAgVGhlIHZpZXdzIGFscmVhZHkgZXhpc3RlZCwgYnV0IHdlcmVuJ3QgY2hlY2tlZCBhbmQgb25seSB0aGUKICAgICAgZmlyc3QgdmlldyB3YXMgZm91bmQuCiAgICAgIC0gTm90IGRvbmUgaW4gYSBjbGVhbiBmYXNoaW9uLiAgTXVjaCBvZiB0aGUgc3RydWN0dXJlIGRlZmluaXRpb25zCiAgICAgICAgc2hvdWxkIGJlIHJld3JpdHRlbiB3aXRoIHN1Yi1waWVjZXMgdG8gZG8gaXQgcHJvcGVybHkgd2l0aCBncmVhdGVyCiAgICAgICAgc3BlZWQuCgpoYXJkYWtlciAzMSBEZWMgOTggMTc6NDY6MTEKICAgIC0gKGV2ZW50LmMpOiBQYXRjaCBmcm9tIERhdmlkIFRpbGxlcjoKICAgICAgLSBtZW1jbXAncyBzaXplcyB3ZXJlIHdyb25nLgoKaGFyZGFrZXIgMzEgRGVjIDk4IDE3OjQ4OjU3CiAgICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBEYXZpZCBUaWxsZXI6CiAgICAgIC0gbmVlZCB0byByZWFkX29iamlkKCkgdGhlIGNvbnRleHQgb2lkIGJhc2UsIG5vdCB0aGUgcGFydHkgb2lkIGJhc2UKICAgICAgICBpbiBvbmUgbG9jYXRpb24uCgpoYXJkYWtlciAzMSBEZWMgOTggMTc6NDk6NTEKICAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZpZCBUaWxsZXI6CiAgICAgIC0gb2lkTGVuJ3Mgd2VyZSB3cm9uZyBmb3IgbTJtIG9pZHMuCgpoYXJkYWtlciAgMiBKYW4gOTkgMDg6NDg6MjkKICAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IFBhdGNoIGZyb20gSmFrb2IgRWxsZXJzdGVkdDoKICAgICAgLSBuZXcgY29tcGxldGUgbGlzdCBvZiBpZlR5cGVzLgoKaGFyZGFrZXIgIDUgSmFuIDk5IDEwOjQxOjUyCiAgICAtIChzbm1wdGFibGUuYyk6IE1ha2UgZmllbGQgc2VwYXJhdG9yIHRha2UgYXJndW1lbnRzIGRpcmVjdGx5IGFmdGVyIHRoZSAtZi4KCmhhcmRha2VyICA1IEphbiA5OSAxMDo0ODo1MQogICAgLSAoc25tcGJ1bGt3YWxrLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsCiAgICAgIHNubXB0YWJsZS5jLCBzbm1wd2Fsay5jKTogUGF0Y2ggZnJvbSBtc2xpZmNha0Bpc3MubmV0OgogICAgICAtIG1ha2UgbWFpbigpIHJldHVybiBhbiBpbnQgaW5zdGVhZCBvZiB2b2lkLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjI4OjIxCiAgICAtIChtaWIuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgdmFjbS5jKToKICAgICAgLSBJbXBsZW1lbnQgdGhlIG5ldyB0b2tlbiBiYXNlZCBkZWJ1Z2dpbmcgbWVzc2FnZSBzdXBwb3J0LgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjMwOjEyCiAgICAtIChzbm1wdGFibGUuYyk6IGNoYW5nZSBpbnRlcm5hbCBkZWJ1ZyB2YXJpYWJsZSB0byBsb2NhbGRlYnVnLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjMwOjQ3CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IG1ha2UgLUQgcmVnaXN0ZXIgdGhlIGRlYnVnZ2luZyB0b2tlbnMgc3BlY2lmaWVkLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjQ5OjI5CiAgICAtIChGQVEsIFJFQURNRSk6IFVSTCBjaGFuZ2VzLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjUwOjE1CiAgICAtIChzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMpOiB1c2UgdGhlIG5ldyBkZWJ1Z2dpbmcgZnVuY3Rpb25zLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjUwOjI4CiAgICAtIChpZi5jLCBtYWluLmMpOiB1c2UgdGhlIG5ldyBkZWJ1Z2dpbmcgZnVuY3Rpb25zLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjUyOjEwCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogREVCVUdQT0lEIHJlcGxhY2VtZW50OiBERUJVR01TR09JRC4KCmhhcmRha2VyICA5IEphbiA5OSAyMDo1MjoyMgogICAgLSAoc25tcGNtZC4xKTogZGlzY3VzcyAtRCB1c2FnZSBjaGFuZ2UuCgpoYXJkYWtlciAgOSBKYW4gOTkgMjE6NTA6MTMKICAgIC0gKGFnZW50LyouYyk6CiAgICAgIC0gdXNlIHRoZSBuZXcgZGVidWdnaW5nIGZ1bmN0aW9ucy4KICAgICAgLSBpbXBsZW1lbnQgbmVlZGVkIC1EIGZsYWcgY2hhbmdlcy4KCmhhcmRha2VyIDE0IEphbiA5OSAwOTowMjozNgogICAgLSAobWliMmMpOiB1cGRhdGUgZm9yIFNOTVAucG0gMS44LgoKaGFyZGFrZXIgMTUgSmFuIDk5IDExOjEwOjA5CiAgICAtIChzbm1wMnAuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHJlbW92ZSByZXZlcnNlX2J5dGVzKCkgdXNhZ2UuCgpoYXJkYWtlciAxNSBKYW4gOTkgMTE6MTI6MjIKICAgIC0gKHNubXBkLmMsIHNubXBkLmgpOgogICAgICAtIHJlbW92ZSByZXZlcnNlX2J5dGVzKCkgdXNhZ2UuCgpoYXJkYWtlciAxNSBKYW4gOTkgMTU6MjQ6MDIKICAgIC0gKGFnZW50L21pYmdyb3VwLyopOgogICAgICAtIG1hZGUgYWxsIChvaywgc29tZS4gIWhvc3QpIG1pYiBtb2R1bGVzIHVzZSBzbm1wZF9yZWdpc3Rlcl9jb25maWdfaGFuZGxlcigpLgogICAgICAtIG1hZGUgYWxsIChvaywgc29tZS4gIWhvc3QpIG1pYiBtb2R1bGVzIHVzZSByZWdpc3Rlcl9taWIoKS4KCmhhcmRha2VyIDE1IEphbiA5OSAxNTo1ODoyMAogICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogbWFrZWZpbGVpbmRlcGVuZC4KCmhhcmRha2VyIDE1IEphbiA5OSAxNTo1ODo1MAogICAgLSAodmFjbS5jKTogREVCVUdNU0cgdHlwby4KCmhhcmRha2VyIDE1IEphbiA5OSAxNjoxNzowNQogICAgLSAoc211eC5jLCBzbXV4LmgpOiBQYXRjaCBmcm9tIE5pY2sgQW1hdG86CiAgICAgIC0gc211eCBwYXRjaGVzLgoKaGFyZGFrZXIgMTYgSmFuIDk5IDIzOjA0OjEyCiAgICAtIChzbm1wY21kLjEpOiB1cGRhdGVkIC1EIGRlc2NyaXB0aW9uLgoKaGFyZGFrZXIgMTYgSmFuIDk5IDIzOjEyOjAzCiAgICAtIChzbm1wbGliLyouW2NoXSk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSBhc25pJ2lmeSBhbGwgZnVuY3Rpb25zLgoKaGFyZGFrZXIgMTYgSmFuIDk5IDIzOjEzOjEwCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU2ICkKCmhhcmRha2VyIDE4IEphbiA5OSAxMDo0NzozNgogICAgLSAoUkVBRE1FLCBhcHBzLCBhZ2VudCwgYWNjb25maWcuaCk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSBhbnNpJ2lmeSBldmVyeXRoaW5nLgoKaGFyZGFrZXIgMTkgSmFuIDk5IDE5OjU5OjUzCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmUgX19QIGNoZWNraW5nLgoKaGFyZGFrZXIgMTkgSmFuIDk5IDIwOjAxOjU5CiAgICAtIChzbm1wdGFibGUuYywgbWliLmMsIHBhcnNlLmMsIHNubXBfYXV0aC5jLCBsaWJzbm1wLmRlZik6IFBhdGNoIGZyb20KICAgICAgTWljaGFlbCBKLiBTbGlmY2FrOgogICAgICAtIGFwcHMvc25tcHRhYmxlLmMgLSBzb21lIGNvbXBpbGVycyB3YXJuIGNvbXBhcmluZyBwb2ludGVyIHdpdGggaW50ZWdlcgogICAgICAtIHNubXBsaWIvbWliLmMgLSBhbHJlYWR5IG1lbnRpb25lZCBiZWZvcmU7IGhlcmUgZm9yIGNvbXBsZXRlLW5lc3MKICAgICAgLSBzbm1wbGliL3BhcnNlLmMgLSBtaW5vciB0b3VjaHVwIG9mIGluY2x1ZGVzOyBzeXN0ZW0uaCBkdXAgcmVtb3ZlZAogICAgICAtIHNubXBsaWIvc25tcF9hcGkuaCAtIE1TVmlzdWFsIEMrKyBkb2Vzbid0IGhhdmUgX19GVU5DVElPTl9fCiAgICAgIC0gc25tcGxpYi9zbm1wX2F1dGguYyAtIG1pbm9yIGZpeCBvZiBjb21tZW50CiAgICAgIC0gd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYgLSBzbm1wX3BhcnNlX2FyZ3MgbmVlZHMgYSBuZXcgZnVuY3Rpb24KCmhhcmRha2VyIDIwIEphbiA5OSAxMjoyMDowOAogICAgLSAoRkFRKTogcGVybC1TTk1QIGFuZCB5MmsgcXVlc3Rpb25zIGFkZGVkLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDEyOjIxOjM1CiAgICAtIChhY2NvbmZpZy5oKTogdW5uZWVkZWQgY29tbWVudCByZW1vdmVkLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDEyOjIxOjU3CiAgICAtIChpbnRlcmZhY2VzLmMpOiB0eXBvIGluIGFuc2kgY2hhbmdlcy4KCmhhcmRha2VyIDIwIEphbiA5OSAxMjoyNDozNAogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYXV0b19ubGlzdC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsCiAgICAgIGhvc3RfcmVzLmgsIG1pYmluY2wuaCwgLmN2c2lnbm9yZSwgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwZC5jLAogICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuYywgaWYuYywgTWFrZWZpbGUuaW4sIG1pYi5jLCBwYXJzZS5jLAogICAgICByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwKICAgICAgdmFjbS5jKTogZGVidWdnaW5nIHN1cHBvcnQgY29kZSBtb3ZlZCB0byBzbm1wX2RlYnVnLltjaF0uCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MTE6NTkKICAgIC0gKE1ha2VmaWxlLmluKTogdmVyc2lvbiB0YWcgY3JlYXRpb24uCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MTQ6MTMKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gY2hlY2sgZm9yIGFzbS9wYWdlLmggKGxpbnV4KS4KICAgICAgLSBjaGVjayBmb3Igc3lzL3N0cmVhbS5oIChTQ08pLgogICAgICAtIEZpeCBydGVudHJ5IHRlc3QuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MTQ6NDIKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jKTogaW5jbHVkZSBzeXMvc3RyZWFtLmggZm9yIFNDTy4KCmhhcmRha2VyIDIwIEphbiA5OSAxNToxNDo1OAogICAgLSAodmVyc2lvbnRhZyk6IHZlcnNpb24gdGFnZ2luZyBhYmlsaXR5IHRvIGRvIG1hbnkgdGhpbmdzLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjE2OjM0CiAgICAtIChhdC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywKICAgICAgdmFyX3JvdXRlLmMpOgogICAgICAtIHN5cy9zdHJlYW0uaCBuZWVkZWQgYnkgU0NPLgogICAgICAtIGludGVyZmFjZXMgc2NhbiBmaXhlcyBmb3IgbGludXggMi4wIHZzIDIuMSBjYW4gYmUgY29uZmlndXJlZCBlbHNld2hlcmUgbm93LgogICAgICAtIHByb3RlY3QgZ2V0X2FkZHJlc3MgY2FsbHMgYWdhaW5zdCBOVUxMIHBvaW50ZXIgcmV0dXJucy4KCmhhcmRha2VyIDIwIEphbiA5OSAxNToxNzoxNwogICAgLSAoZGlzay5jLCBlcnJvcm1pYi5jLCBleHRlbnNpYmxlLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMpOgogICAgICAtIGxpbnV4IDIuMSBrZXJuZWwgbmVlZHMgYXNtL3BhZ2UuaCAoYWxsIGluY2x1ZGVzIG5lZWQgdG8gYmUgcmUtd3JpdHRlbikuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MTc6NDEKICAgIC0gKGxpbnV4LmgpOiBkZWZpbmUgTElOVVhfSU5URVJGQUNFX1NDQU5fTElORS4KCmhhcmRha2VyIDIwIEphbiA5OSAxNToyMDowNAogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHVjZC1zbm1wLWluY2x1ZGVzLmguCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MjI6MDgKICAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MjI6MzgKICAgIC0gKEZBUSwgUkVBRE1FKTogYWRkZWQgdmVyc2lvbiBzdGFtcC4KCmhhcmRha2VyIDIwIEphbiA5OSAxNTozMDo1OAogICAgLSAoQ09QWUlORyk6IEl0J3MgMTk5OQoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjMxOjEzCiAgICAtIChSRUFETUUpOiBoZWxwaW5nIG91dCBjaGFuZ2VzLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjQ4OjUzCiAgICAtIChzbXV4LmMpOiB0eXBvCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6NDk6MzAKICAgIC0gKGhyX3N3aW5zdCk6ICNpZmRlZiBSUE0gcHJvdGVjdCBhIGZyZWUgcm91dGluZS4KCmhhcmRha2VyIDIwIEphbiA5OSAxNTo1MDoxNwogICAgLSAoTWFrZWZpbGUuaW4pOiByZW1vdmUgdWNkIHNwZWNpZmljIG1pYiBtb2R1bGUgbWFrZSByZXF1aXJlbWVudHMuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6NTQ6MDIKICAgIC0gKHNubXBkLmMpOiBleHBvcnQgc2RsaXN0IGFuZCBzZGxlbiB2YXJpYWJsZXMuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6NTQ6MzYKICAgIC0gKHNtdXguYyk6IGRlYnVnZ2luZyBjaGFuZ2VzLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE2OjQxOjIwCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc25tcF9wYXJzZV9hcmdzLmMsIG1haW4uYywgc25tcF9hcGkuYyk6CiAgICAgIFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGFsbG93IHplcm8gbGVuZ3RoIChsZWdhbCkgY29tbXVuaXR5IHN0cmluZ3MuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTc6MDI6MzcKICAgIC0gKGNvbmZpZy5oLmluKTogcmFuIGF1dG9oZWFkZXIKCmhhcmRha2VyIDIwIEphbiA5OSAxNzoxMToyNgogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlNyApCgpoYXJkYWtlciAyMSBKYW4gOTkgMDg6Mzk6MzQKICAgIC0gKEZBUSk6IFBhdGNoIGZyb20gTWljaGFlbCBKLiBTbGlmY2FrOgogICAgICAtIHR5cG8gb24gSm9lJ3MgbmFtZSBmaXhlZC4KCmhhcmRha2VyIDIxIEphbiA5OSAwODo0MDoyNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNubXBfYXBpLmMsIGNvbmZpZy5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsCiAgICAgIEouIFNsaWZjYWs6CiAgICAgIC0gTk9fTlVMTF9DT01VTklUWSAtPiBOT19aRVJPTEVOR1RIX0NPTU1VTklUWS4KCmhhcmRha2VyIDIxIEphbiA5OSAwODo0MjoxNwogICAgLSAoTWFrZWZpbGUuaW4pOiByZW1vdmUgdWNkIHNwZWNpZmljIG1vZHVsZSBkZXBlbmRzLgoKaGFyZGFrZXIgMjIgSmFuIDk5IDA3OjIzOjEzCiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gQ2hlY2sgZm9yIE5VTEwgb24gc2Vzc2lvbiBjbG9zZXMuCgpoYXJkYWtlciAyNSBKYW4gOTkgMTA6Mjg6MDgKICAgIC0gKHNubXBkZWx0YS5jLCBzbm1wc3RhdHVzLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsCiAgICAgIHNubXB0cmFwZF9oYW5kbGVycy5jLCBpbmV0LmMsIG1haW4uYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSBtb3JlIGFuc2kgZml4ZXMuCgpoYXJkYWtlciAyNSBKYW4gOTkgMTA6Mjg6MjYKICAgIC0gKHZlcnNpb250YWcpOiB0eXBvLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDEwOjI4OjQxCiAgICAtIChsaW51eC5oKTogMi4yIGRlZmluZSB1cGRhdGUuCgpoYXJkYWtlciAyNSBKYW4gOTkgMTA6MzM6MjQKICAgIC0gKGNvbnRleHRfcGFyc2UuYywgbWliLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsCiAgICAgIHNubXBfY2xpZW50LmMsIHN5c3RlbS5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgICAtIGFuc2kgZml4ZXMuCgpoYXJkYWtlciAyNSBKYW4gOTkgMTA6MzQ6MTEKICAgIC0gKHN5c3RlbS5jKTogZml4IHN0cmluZ3MuaCBpbmNsdWRlLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDExOjExOjQ5CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIHRlc3QgaWYgX19GVU5DVElPTl9fIGlzIHN1cHBvcnRlZCBieSB0aGUgY29tcGlsZXIuCgpoYXJkYWtlciAyNSBKYW4gOTkgMTE6MTU6NTMKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5oLCBzbm1wZC5jLCBob3N0X3Jlcy5oLCBtaWJpbmNsLmgsCiAgICAgIGZpbGUuYywgaW5ldC5jLCBwYXJzZS5jLCBzbm1wX2RlYnVnLmMpOgogICAgICAtIC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDExOjE2OjE2CiAgICAtIChsaW51eC5oKTogY29tbWVudCB0eXBvLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDE2OjI1OjM3CiAgICAtIChSRUFETUUsIFJFQURNRS5taWIyYyk6IG1pYjJjIHJlYWRtZSBmaWxlLgoKaGFyZGFrZXIgMjYgSmFuIDk5IDA5OjQ1OjQyCiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogY2hhbmdlIHJlZmVyZW5jZSBJUCBuZXQgYWRkcmVzc2VzIHRvIDEwLjEwLjEwLjAuCgpoYXJkYWtlciAgMiBGZWIgOTkgMTM6MzM6MjUKICAgIDIwMzYgLT4gMjAzOAoKaGFyZGFrZXIgIDIgRmViIDk5IDEzOjM0OjM2CiAgICAtIChzbm1wZC5jKTogdHlwbzogLUwgLT4gLUEgaW4gaGVscCBzdHJpbmdzIGRvY3MuCgpoYXJkYWtlciAgMiBGZWIgOTkgMjI6MDA6MTMKICAgIC0gKEZBUSk6IG1lbnRpb24gbGFjayBvZiBzb2xhcmlzIG1lbW9yeSBzdXBwb3J0LgoKaGFyZGFrZXIgIDIgRmViIDk5IDIyOjAxOjAxCiAgICAtIChUT0RPKTogUmVtb3ZlIHVuc3VwcG9yZWQgbWliIG5vZGVzIGZyb20gb3V0cHV0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDAncy4KCmhhcmRha2VyICAyIEZlYiA5OSAyMjowMjowNAogICAgLSAoaHJfcHJvYy5jKTogdXNlIFswXSBpbmRleCBvZiBsb2FkIGF2ZXJhZ2UgdGFibGUuCgpoYXJkYWtlciAgMiBGZWIgOTkgMjI6MDI6NDEKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIG1lbnRpb24gdGhhdCB0aGUgbWVtb3J5IHNlY3Rpb24gaXNuJ3Qgc3VwcG9ydGVkIG9uIGFsbAogICAgICAgIGFyY2hpdGVjdHVyZXMuCgpoYXJkYWtlciAgOCBGZWIgOTkgMTI6MjE6MjUKICAgIC0gKHNtdXguYyk6IFBhdGNoIGZyb20gSm9obiBQb2xzdHJhOgogICAgICAtIGNhbGwgYWNjZXB0KCkgdG8gZ2V0IHRoZSBzb2NrZXQgZmlsZSBkZXNjcmlwdG9yLgoKaGFyZGFrZXIgIDggRmViIDk5IDE1OjA4OjU3CiAgICAtIChGQVEpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBUay5wbSBtZW50aW9uLgoKaGFyZGFrZXIgIDggRmViIDk5IDE1OjEzOjAxCiAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdmFyaWFibGUgcmVuYW1pbmcgaW5kZXggLT4gaWluZGV4LgoKaGFyZGFrZXIgIDggRmViIDk5IDE1OjE0OjQyCiAgICAtIChzbm1wZGVsdGEuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nIHRpbWUgLT4gbV90aW1lLgoKaGFyZGFrZXIgIDggRmViIDk5IDE1OjE3OjUwCiAgICAtIChyb3V0ZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdmFyaWFibGUgcmVuYW1pbmcgaW5kZXggLT4gSWZJbmRleC4KCmhhcmRha2VyICA4IEZlYiA5OSAxNToxODowOAogICAgLSAoaW5ldC5jKTogcHJvcGVyIGJyYWNrZXQgaW5kZW50YXRpb24uCgpoYXJkYWtlciAgOCBGZWIgOTkgMTU6MTk6MjIKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB1c2Ugc2l6ZV90IGluc3RlYWQgb2YgInVuc2lnbmVkIiBmb3IgeG1hbGxvYywgZXRjLgoKaGFyZGFrZXIgIDggRmViIDk5IDE1OjIwOjQ3CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gbWFrZSBzbm1wX29pZF9jb21wYXJlIHVzZSBjb25zdCdzLgoKaGFyZGFrZXIgIDggRmViIDk5IDIzOjIyOjMzCiAgICAtIChhZ2VudC8qKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdHlwZWRlZiBhbGwgb2YgdGhlIHZhcl94eHggYW5kIHdyaXRlIG1ldGhvZCBmdW5jdGlvbnMuCgpoYXJkYWtlciAgOCBGZWIgOTkgMjM6MjM6NDEKICAgIC0gKGtlcm5lbF9zdW5vczUuYywgbWliaW5jbC5oKSBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBpbmNsdWRlIHVwZGF0ZXMuCgpoYXJkYWtlciAgOSBGZWIgOTkgMTQ6MTA6MzMKICAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBGQVEuaHRtbC4KCmhhcmRha2VyICA5IEZlYiA5OSAxNDoxMDo1MgogICAgLSAobWliMmMpOiB0eXBvLgoKaGFyZGFrZXIgIDkgRmViIDk5IDE0OjM1OjQ2CiAgICAtIChtaWIuYyk6IGluY3JlYXNlIGJ1ZmZlciBzaXplIGZvciBvaWQgcHJpbnRpbmcuCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6MTA6MzkKICAgIC0gKCopOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBjb252ZXJ0IE1BWF9OQU1FX0xFTiAtPiBNQVhfT0lEX0xFTi4KICAgICAgLSBjb252ZXJ0IHRlbXBvcmFyeSBjaGFyYWN0ZXIgc3RvcmFnZSBidWZmZXJzIHRvIFNQUklOVF9NQVhfTEVOLgogICAgICAtIG1ha2UgdGhlIGxpYnJhcmllcyBwcmludF8gZnVuY3Rpb25zIHVzZSB0aGUgZnByaW50XyBmdW5jdGlvbgogICAgICAgIGFscmVhZHkgZGVmaW5lZCBhbmQgcGFzcyBpdCBzdGRvdXQuCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6MjI6MDMKICAgIC0gKGhvc3RfcmVzLmgpOiBpbmNsdWRlIHNubXBfdmFycy5oIGFoZWFkIG9mIHZhcl9zdHJ1Y3QuaC4KCmhhcmRha2VyIDExIEZlYiA5OSAxNjoyMzoxNgogICAgLSAoYWNsX3BhcnNlLmMsIGNvbnRleHRfcGFyc2UuYywgcGFydHlfcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6CiAgICAgIC0gTW9yZSBidWYgc2l6ZSBzdGFuZGFyZGl6YXRpb25zIHRoYXQgTWljaGFlbCBtaXNzZWQuCiAgICAgIC0gQSBmZXcgTUFYX05BTUVfTEVOIC0+IE1BWF9PSURfTEVOIGNvbnZlcnNpb25zIHRoYXQgTWljaGFlbCBtaXNzZWQuCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6MzQ6MDAKICAgIC0gKHRjcC5jKTogdmFyX3RjcEVudHJ5IHdhcyBjaGVja2luZyBhZ2FpbnN0IHRoZSBpbmNvbWluZyBvaWQgd2l0aCB0aGUKICAgICAgd3JvbmcgbGVuZ3RoIGFuZCBjb3VsZCBzdWNjZWVkIGF0IHRpbWVzIHdoZW4gaXQgc2hvdWxkbid0IGhhdmUuCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6NDY6NDgKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggRXh0LTMtNi1wcmU4ICkKCmhhcmRha2VyIDExIEZlYiA5OSAxNjo0ODowNwogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlOCApCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6NDg6MjkKICAgIC0gKHZlcnNpb250YWcpOiB1cGRhdGUuCgpoYXJkYWtlciAxNiBGZWIgOTkgMTc6MDU6NDUKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogdXBkYXRlZCBtaWIyYyBwcm9ncmFtLi4uICBzdGlsbCBpbiBwcm9ncmVzcy4uLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjEwOjAwCiAgICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgTC4gSGl0Y2g6CiAgICAgIC0gZml4IGlmX25hbWUgdmFyaWFibGUgYnkgbWFraW5nIGl0IHN0YXRpYy4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxMzozOAogICAgLSAoc25tcGQuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHJlbW92ZSByZXZlcnNlX2J5dGVzKCkgcHJvdG90eXBlLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjEzOjU4CiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB1c2FnZSBmaXguCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MTU6NTkKICAgIC0gKGlmLmMsIGluZXQuYywgbWFpbi5jLCBuZXRzdGF0LmgsIHJvdXRlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBtYWtlIHNubXBuZXRzdGF0IHdpbjMyIGNvbXBhdGlibGUuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MTY6MTcKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogdXBkYXRlIGFnYWluIGZvciBiZXR0ZXIgc3RpbGwgb3V0cHV0LgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjE3OjEzCiAgICAtIChNYWtlZmlsZS5pbik6IHNlcGFyYXRlIHRhcmdldCBmb3IgZ2VuZXJhdGVkIG1hbnVhbCBwYWdlcy4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxODowNgogICAgLSAoSUFOQWlmVHlwZS1NSUIudHh0KTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdXNlIGEgJy0nIGluc3RlYWQgb2YgYSAnLicgZm9yIElFRUU4MDItMTEuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MTk6MDMKICAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGNvbW1lbnQgcmVmb3JtYXR0aW5nLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjE5OjUyCiAgICAtIChjb250ZXh0X3BhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBkb24ndCB1c2UgYSB2YXJpYWJsZSBjYWxsZWQgJ3RpbWUnLiAgVHNrIHRzay4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToyMToyNQogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggZnByaW50X3ZhcmlhYmxlIHRvIG5vdCByZWN1cnNlLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjIzOjQ0CiAgICAtIChwYXJzZS5jLCBwYXJ0eV9wYXJzZS5jLCBzbm1wX2F1dGguYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHZhcmlhYmxlIG5hbWUgY29uZmxpY3QgZml4ZXMuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6Mjg6NTQKICAgIC0gKGNvbmZpZy5oLCB3aW4zMi5kc3csIGxpYnNubXAuZHNwLCBsaWJzbm1wLmRlZiwgbGlic25tcF9kbGwuZHNwLAogICAgICBzbm1wbmV0c3RhdC5kc3AsIHNubXB0YWJsZS5kc3ApOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB3aW4zMiB1cGRhdGVzLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE2OjEzOjQ3CiAgICAtIChzbm1wZC5jLCBkdW1teS5jLCB3b21iYXQuYywgc3lzdGVtX21pYi5jLCB2YWNtX3ZhcnMuYywgZGxtb2QuYywKICAgICAgZGlzay5jLCBleHRlbnNpYmxlLmMsIGZpbGUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywKICAgICAgbWVtb3J5X2ZyZWVic2QyLmMsIHBhc3MuYywgcGFzc19wZXJzaXN0LmMsIHByb2MuYywgbWliLmMsCiAgICAgIHJlYWRfY29uZmlnLmMpOiB3b3JkIC0+IHRva2VuICgid29yZCIgaXMgcmVzZXJ2ZWQgaW4gc29tZSBjb21waWxlcnMuCgpoYXJkYWtlciAyMiBGZWIgOTkgMDk6MTE6NTIKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIG1zbGlmY2FrQGlzcy5uZXQ6CiAgICAgIC0gVGhlIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gc2VsZWN0ICJhbGxvdyB1bmRlcnNjb3JlIGluIE1JQgogICAgICAgIHN5bWJvbHMiIGlzIG1pc3NpbmcuCgpoYXJkYWtlciAyMiBGZWIgOTkgMDk6NDQ6MjEKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBEb24ndCBwcmludCAiY2FuJ3QgZmluZCBtb2R1bGUgWFhYIiBtZXNzYWdlcyB3aXRob3V0IHdhcm5pbmdzIHR1cm5lZCBvbi4KCmhhcmRha2VyIDI0IEZlYiA5OSAxNDo0MzoyMQogICAgLSAoSUFOQWlmVHlwZS1NSUIudHh0KTogdXBkYXRlLgoKaGFyZGFrZXIgMjQgRmViIDk5IDE3OjEwOjEzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGxpbnV4LmgpOgogICAgICAtIENoZWNrIGZvciBhbmQgaGFuZGxlIDIuMiAvcHJvYy9uZXQvZGV2IGNoYW5nZXMuCgpoYXJkYWtlciAyNSBGZWIgOTkgMTA6MDM6NDEKICAgIC0gKFJFQURNRSwgdWNkX3NubXAuaCwgbWVtb3J5X3NvbGFyaXMyLmMsIG1lbW9yeV9zb2xhcmlzMi5oKTogUGF0Y2gKICAgICAgZnJvbSBEYXZpZCBGLiBOZXdtYW46CiAgICAgIC0gbWVtb3J5IHN1cHBvcnQgZm9yIHNvbGFyaXMyLgoKaGFyZGFrZXIgMjYgRmViIDk5IDE1OjAyOjU1CiAgICAtIChsb2FkYXZlLmMsIGxvYWRhdmUuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gaW1wbGVtZW50IGxvYWQgYXZlcmFnZSByZXBvcnRpbmcgYXMgYSBpbnRlZ2VyIGFuZCBhcyBhIGZsb2F0LgoKaGFyZGFrZXIgMjYgRmViIDk5IDE1OjQyOjMxCiAgICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIFVubGlua2VkIE9JRCAuLi4gY2NpdHQgMCBmaXggY291cnRlc3kgb2YgRGF2ZSBTaGllbGQuCiAgICAgIC0gQ29udGludWUgYWZ0ZXIgcmVzZXJ2ZWQgd29yZCBlcnJvciBmaXggY291cnRlc3kgb2YgRGF2ZSBTaGllbGQuCiAgICAgIC0gTW9kaWZpY2F0aW9uIHRvICMyIGNvdXJ0ZXN5IG9mIE5pZWxzIEJhZ2dlc2VuLgogICAgICAtIE1vZGlmaWNhdGlvbiB0byBwcmludCBzdWItaWRlbnRpZmllciA9PSAwCiAgICAgIC0gdmFyaWFibGUgcmVuYW1pbmcuCiAgICAgIC0gSW5zdGVhZCBvZiByZS1vcmRlcmluZyBhbGwgc2luZ2x5LWxpbmtlZCBsaXN0cywgdXNlIGEgbmV3IG1lbWJlcgogICAgICAgIHRoYXQgZmxhZ3Mgd2hlbiBhIHJlcG9ydCBoYXMgYmVndW4uCgpoYXJkYWtlciAyNiBGZWIgOTkgMTY6MDY6NDkKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiB1cGRhdGUgYW5kIG1hZGUgYmV0dGVyIGV4YW1wbGVzLgoKaGFyZGFrZXIgMjYgRmViIDk5IDE2OjEwOjIxCiAgICAtIChORVdTKTogdXBkYXRlIGZvciAzLjYgcmVsZWFzZS4KCmhhcmRha2VyIDI2IEZlYiA5OSAxNjoxMDo0NwogICAgLSAoc25tcHRyYXBkLmMpOiB1c2FnZSB1cGRhdGUsIGFuZCAtSCBzdXBwb3J0LgoKaGFyZGFrZXIgMjYgRmViIDk5IDE2OjExOjQ5CiAgICAtIChNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsCiAgICAgIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0cmFwZC44LCBzbm1wdHJhcGQuY29uZi41LmRlZik6CiAgICAgIC0gbmV3IGRvY3VtZW50YXRpb24gb24gY29uZmlndXJhdGlvbiBjYXBhYmlsaXRpZXMuCgpoYXJkYWtlciAyNiBGZWIgOTkgMTY6MzM6MDkKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTkgKQoKaGFyZGFrZXIgIDEgTWFyIDk5IDEwOjQ4OjAzCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogdHlwbzogZmlsZU1heCAtPiBmaWxlRXJyb3JGbGFnIG5hbWUgY2hhbmdlLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEyOjI3OjEyCiAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgIC0gcmVuYW1pbmcgb2YgdmFyaWFibGVzIGF3YXkgZnJvbSBzeXN0ZW0gZnVuY3Rpb24gbmFtZXMgKGluZGV4IC0+IGxpbmRleCkuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTI6Mjc6MzAKICAgIC0gKGVycm9ybWliLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAgLSByZW1vdmUgZXJybm8gdmFyaWFibGUuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTI6Mjc6NDUKICAgIC0gKGlmLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAgLSBmcmVlIHRoZSBpbnRlcmZhY2UgdGFibGUuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTI6Mjg6MTcKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAgLSByZW1vdmUgZHVwbGljYXRlIGNhc2UgZW50cmllcy4KCmhhcmRha2VyICAxIE1hciA5OSAxMjoyOTowNQogICAgLSAoc25tcF9hcGkuYyk6IHB1dCBhIHByb3BlciAodm9pZCkgaW50byB0aGUgZnVuY3Rpb24gcHJvdG90eXBlLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEyOjI5OjQ1CiAgICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgIC0gdmFyaWFibGUgcmVuYW1pbmcuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTI6MzA6MTkKICAgIC0gKGFzbjEuaCk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgICAtIGFkZGVkIE1JTl9PSURfTEVOIGZvciBpbnN0cnVjdGlvbmFsIHVzZSBtb3N0bHkgKGl0cyB1bnVzZWQpLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEzOjAzOjE1CiAgICAtIChjb250ZXh0X3BhcnNlLmMsIG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdHlwZWNhc3RpbmcgZm9yIGNlcnRhaW4gZnVuY3Rpb25zIHRvIChjaGFyICopLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEzOjU5OjE0CiAgICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgpOiBtYWtlIGNvbXBhcmVfdHJlZSgpIGdsb2JhbC4KCmhhcmRha2VyICAxIE1hciA5OSAxNDowNDowNQogICAgLSAoc211eC5jLCBzbXV4LmgpOiBQYXRjaCBmcm9tIE5pY2sgQW1hdG86CiAgICAgIC0gY29tcGxldGVseSByZS13cml0dGVuIHNtdXggbW9kdWxlcy4KCmhhcmRha2VyICAxIE1hciA5OSAxNDoyMDoxMQogICAgLSAoc211eC5jLCBzbXV4LmgpOiAzLjZpZmllZC4KCmhhcmRha2VyICAxIE1hciA5OSAxNjoxMDo1NwogICAgLSAoYWxhcm0uYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIENhc3QgdG8gcG9pbnRlciB0byBpbnQgbWF5IG92ZXJmbG93IHRoZSByZXR1cm4gYnVmZmVyLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDE2OjExOjQ5CiAgICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRGF2aWQgRi4gTmV3bWFuOgogICAgICAtIHJlbW92ZWQgYSB0cmFpbGluZyBiYWNrc2xhc2ggdGhhdCB3YXNuJ3QgbmVlZGVkLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDE2OjE3OjM2CiAgICAtIChtaWJfYXBpLjMsIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLAogICAgICBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZiwgc25tcHRlc3QuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYsCiAgICAgIHZhcmlhYmxlcy41KTogTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHNwZWxsIGNoZWNrLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDE2OjE5OjU2CiAgICAtIChzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wZC4xLmRlZiwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOgogICAgICAtIHJlbW92ZSByZWZlcmVuY2UgdG8gRUNFIGRlcHQuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTY6MjI6NDAKICAgIC0gKGFzbjEuaCk6IHB1dCBiYWNrIGluIE1BWF9OQU1FX0xFTiB0ZW1wb3JhcmlseS4KCmhhcmRha2VyICAxIE1hciA5OSAxNzo0Mzo0OQogICAgLSAoc211eC5jKToKICAgICAgLSBhbGxvdyBudWxsIGxlbmd0aCBwYXNzd29yZHMuCiAgICAgIC0gY2xlYW4gdXAgZGVidWdnaW5nIG91dHB1dC4KCmhhcmRha2VyICAyIE1hciA5OSAwODo0NzoyOQogICAgLSAoYXNuMS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBEb24ndCBkZWZpbmUgTUFYX05BTUVfTEVOIGlmIGRlZmluZWQgc29tZXdoZXJlIGVsc2UuCgpoYXJkYWtlciAgMiBNYXIgOTkgMTA6NDI6MzQKICAgIC0gKHN5c3RlbV9taWIuYywgdmFjbV92YXJzLmMsIGlwZndhY2MuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIFN1Z2dlc3RlZCBmaXhlcyB0byBlbGltaW5hdGUgbW9yZSBzaGFkb3dlZCBnbG9iYWwgcmVmZXJlbmNlcy4KICAgICAgLSBmaXh1cHMgZm9yIHByb3RvdHlwZSBbKHZvaWQpIHJlcGxhY2luZyAoKV0uCgpoYXJkYWtlciAgMiBNYXIgOTkgMTM6MjM6NTcKICAgIC0gKHZhcl9yb3V0ZS5jKTogZG9uJ3QgcmV0dXJuIGEgcG9pbnRlciB0byBhIHBvaW50ZXIuCgpoYXJkYWtlciAgMiBNYXIgOTkgMTU6MTc6NTMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcF9kZWJ1Zy5jLAogICAgICBzbm1wX2RlYnVnLmgpOgogICAgICAtIG5ldyBmbGFnOiAgLS1kaXNhYmxlLWRlYnVnZ2luZyB0byBjb21wbGV0ZWx5IHR1cm4gb2ZmIGl0cyBzdXBwb3J0LgogICAgICAtIHJlbmFtaW5nIG9mIERPREVCVUcgdG8gU05NUF9BTFdBWVNfREVCVUcuCiAgICAgIC0gY2xlYW4gdXAgb2YgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgb3B0aW9ucyBsaXN0ZWQsIGluY2x1ZGluZyBwdXR0aW5nCiAgICAgICAgYSBsaXN0IG9mIGF2YWlsYWJsZSBtb2R1bGVzIGZvciBjb21waWxhdGlvbiBpbnRvIHRoZSBhZ2VudC4KCmhhcmRha2VyICAyIE1hciA5OSAxNToxODo1OQogICAgLSAoc25tcGQuY29uZi41LmRlZik6IHR5cG8uCgpoYXJkYWtlciAgMiBNYXIgOTkgMTU6MjE6MzQKICAgIC0gKHNtdXguYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIExpbnV4IGNvbXBpbGVzIGRpZSBhdCBTT19SQ1ZUSU1FTy4KICAgICAgLSAtV2FsbCB0eXBlIGZpeGVzLgoKaGFyZGFrZXIgIDMgTWFyIDk5IDA4OjI1OjMzCiAgICAtIChSRUFETUUpOiBBZGRlZCBOaWNrLgoKaGFyZGFrZXIgIDMgTWFyIDk5IDA4OjI4OjA1CiAgICAtIChjb25maWd1cmUpOiByYW4gYXV0b2NvbmYuLi4KCmhhcmRha2VyICAzIE1hciA5OSAxMTo0MDoxMQogICAgLSAocHJvYy5jLCBzb2xhcmlzLmgpOiBQYXRjaCBmcm9tIENocmlzIEh1Z2hlczoKICAgICAgLSBVc2UgL3Byb2Mgb24gc29sYXJpcy4KCmhhcmRha2VyICAzIE1hciA5OSAxNzo1MToyNgogICAgLSAoQ2hhbmdlTG9nLCBGQVEsIE5FV1MsIFBPUlRJTkcsIFJFQURNRSwgVE9ETywgYnVnLXJlcG9ydCwgc25tcGQuYywKICAgICAgUkVBRE1FLm1pYjJjKTogZWNlLnVjZGF2aXMuZWR1IC0+IHVjZC1zbm1wLnVjZGF2aXMuZWR1LgoKaGFyZGFrZXIgIDMgTWFyIDk5IDE4OjAwOjUxCiAgICAtIChORVdTKTogbWVudGlvbiBuYW1lIGNoYW5nZS4KCmhhcmRha2VyICAzIE1hciA5OSAxODowMjowNwogICAgLSAoTkVXUyk6IG1lbnRpb24gU01VWC4KCmhhcmRha2VyICAzIE1hciA5OSAxODowMjoyMwogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlMTAgKQoKbXNsaWZjYWsgIDQgTWFyIDk5IDA0OjA4OjAxCiAgICAKICAgIChzbm1wbmV0c3RhdC9pZi5jKSAtIGFkZCB2b2lkIHRvIGVtcHR5IGZvcm1hbCBwYXJhbWV0ZXIgbGlzdAoKaGFyZGFrZXIgIDQgTWFyIDk5IDA4OjM2OjM5CiAgICAtICh2ZXJzaW9udGFnKTogcmVwb3NpdG9yeSBtb3ZlLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDA4OjM2OjQ2CiAgICAtIChSRUFETUUuc211eCk6IGFkZCBOaWNrLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDA5OjA3OjA3CiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IGZpeCB2b2lkIHRlc3QgZm9yIGFuc2kgY29tcGlsZXJzLgoKbXNsaWZjYWsgIDQgTWFyIDk5IDA5OjIwOjA4CiAgICAKICAgIAogICAgKGFnZW50L3NubXBkLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYykgOiByZW1vdmUgZHVwbGljYXRlIGluY2x1ZGVzCiAgICAKICAgIChhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jKSA6IGNoYW5nZSAiKndvcmQiIHRvICIqdG9rZW4iIHRvIGhlbHAgc29tZSBjb21waWxlcgoKbXNsaWZjYWsgIDQgTWFyIDk5IDA5OjI0OjI2CiAgICAKICAgIAogICAgKE1ha2VmaWxlLmluKSAtIGZpbmQgbWliZGVmcy5oIHdoZW4gbm90IGJ1aWxkaW5nIGluIHRoZSBzb3VyY2UgdHJlZQoKaGFyZGFrZXIgIDQgTWFyIDk5IDA5OjMzOjMxCiAgICAtIChsb2FkYXZlLmMpOiBQYXRjaCBmcm9tIENocmlzIEh1Z2hlczoKICAgICAgLSBmaXggbG9hZCBhdmVyYWdlIG9uIHNvbGFyaXMuCgpoYXJkYWtlciAgNCBNYXIgOTkgMDk6Mzg6MjgKICAgIC0gKHJlbW92ZS1maWxlcywgZWNlLXNubXBkLmNvbmYsIGZpeHByb2MuY29uZik6CiAgICAgIC0gcmVtb3ZlZCBlY2Ugc3BlY2lmaWMgY29uZmlnIGZpbGVzIGZyb20gdGhlIHJlcG9zaXRvcnkuCiAgICAgIC0gZG9uJ3QgcmVtb3ZlIGxvY2FsLyouY29uZiBpbiB0aGUgZmlyc3QgcGxhY2UgYW55bW9yZS4KCmhhcmRha2VyICA0IE1hciA5OSAwOTo0NjozNwogICAgLSAoaHJfc3dpbnN0LmMpOiBQYXRjaCBmcm9tIG1zbGlmY2FrQGlzcy5uZXQ6CiAgICAgIC0gV2hlbiB0aGUgYWdlbnQgaXMgY29tcGlsZWQgd2l0aCBIQVZFX0xJQlJQTSBzZXQsIHlldCBubyBkYXRhYmFzZQogICAgICAgIGlzIGZvdW5kLCBhZ2VudCB3aWxsIGNvcmUuLi4KCmhhcmRha2VyICA0IE1hciA5OSAxMzoxODo0NwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlZCB2b2lkIGNoZWNrLgoKbXNsaWZjYWsgIDQgTWFyIDk5IDE1OjEzOjAwCiAgICAKICAgIAogICAgKGhyX3Byb2MuYywgbG9hZGF2ZS5jKSAtIGZpeGVkIGNvcmUgb24gZ2V0bG9hZGF2ZyBpbiBhIGRpZmZlcmVudCB3YXkKCm1zbGlmY2FrICA0IE1hciA5OSAxNToyNTo1MwogICAgCiAgICAoZGlzay5jKSAtIGV4cGxpY2l0IGJyYWNlcyB0byBhdm9pZCBhbWJpZ3VvdXMgYGVsc2UnCgptc2xpZmNhayAgNCBNYXIgOTkgMTU6Mjk6MjQKICAgIAogICAgKGhyX2Rpc2suYykgLSBjb25kaXRpb25hbGx5IHVzZSBkZWZpbmVkIERLQyBkaXNrIHR5cGVzCgpoYXJkYWtlciAgNCBNYXIgOTkgMTU6NDU6MDIKICAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLCBleGFtcGxlLmMsIHN5c09SVGFibGUuYywgaXBmd2FjYy5jLAogICAgICBkaXNrLmMsIGV4dGVuc2libGUuYywgZmlsZS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwcm9jLmMsIHZtc3RhdC5jLAogICAgICB2bXN0YXRfZnJlZWJzZDIuYyk6CiAgICAgIC0gY3JlYXRlIGFuZCB1c2UgaGVhZGVyX3NpbXBsZV90YWJsZSB0byByZXBsYWNlIGNoZWNrbWliKCkuCgpoYXJkYWtlciAgNCBNYXIgOTkgMTY6MTQ6MTYKICAgIC0gKFJFQURNRS5zbXV4KTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgICAtIHVwZGF0ZS4KCmhhcmRha2VyICA0IE1hciA5OSAxNjoyNjoyNgogICAgLSAoZnJlZWJzZDIuaCk6IFBhdGNoIGZyb20gTmljayBBbWF0bzoKICAgICAgLSBmaXhlcyBmb3IgZHVwbGljYXRlIGRlZmluZXMuCgpoYXJkYWtlciAgNCBNYXIgOTkgMTY6MzI6MTYKICAgIC0gKG1pYjJjKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCgpoYXJkYWtlciAgNCBNYXIgOTkgMTY6NTA6MTYKICAgIC0gKHV0aWxfZnVuY3MuYywgZHVtbXkuYywgZXhhbXBsZS5jLCB3b21iYXQuYywgdGNwLmMsIGhwdXguYywKICAgICAgbWVtb3J5LmMsIGFsYXJtLmMsIHNubXBfYXBpLmMpOgogICAgICAtIG1pc2MgZml4ZXMsIC1XYWxsIG1vc3RseS4KCm1zbGlmY2FrICA0IE1hciA5OSAxNzowMDo1MAogICAgCiAgICAoc3lzT1JUYWJsZS5jKSAtIHJlbW92ZSBzdGF0aWMgdV9sb25nIGxvbmdfcmV0dXJuLCBmb3IgY29uc2lzdGVuY3kuCgptc2xpZmNhayAgNCBNYXIgOTkgMTc6MDc6MTAKICAgIAogICAgKHNvbGFyaXMuaCkgLSB1bmRvIF9TTEFTSF9QUk9DX01FVEhPRF8gOiBhbm90aGVyIHRpbWUKCm1zbGlmY2FrICA0IE1hciA5OSAxNzo1MDoyOQogICAgCiAgICBSZXBsYWNlIHVzZXMgb2YgYnplcm8gd2l0aCBtZW1zZXQsIGJjb3B5IHdpdGggbWVtY3B5LgogICAgRml4IHByb3RvdHlwZXMuCgptc2xpZmNhayAgNCBNYXIgOTkgMTg6MTE6MzcKICAgIAogICAgKHNubXBfYXBpLmMpIC0gZXhwb3NlIHNubXBfZnJlZTsgc25tcF9wZHVfYWRkX3ZhcmlhYmxlIHJldHVybnMgcHRyIHRvIHZhciBmb3IKICAgIGZ1dHVyZSBpbXByb3ZlZCBlcnJvciByZWNvdmVyeS4KCm1zbGlmY2FrICA1IE1hciA5OSAwOTo0MDoxMQogICAgCiAgICBGaXggV2luMzIgdmVyc2lvbiBvZiBnZXR0aW1lb2ZkYXkgOiB0dl91c2VjIHdhcyBtaWxsaXNlY3MgLCByZXR1cm4gbm93ID0gMAoKaGFyZGFrZXIgIDUgTWFyIDk5IDEwOjExOjI5CiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gdGhlIHVzZSBvZiAnaGVhZGVyX3NpbXBsZV90YWJsZScgcmF0aGVyIHRoYW4gJ2NoZWNrbWliJwogICAgICAtIGV4cGxpY2l0IGNvbXBhcmlzb24gd2l0aCBNQVRDSF9GQUlMRUQKICAgICAgLSBkb24ndCBzZXQgZGVmYXVsdHMgZm9yICd3cml0ZV9tZXRob2QnIGFuZCAndmFyX2xlbicKICAgIAkJKHNpbmNlIGJvdGggJ2hlYWRlcl9nZW5lcmljJyBhbmQgJ2NoZWNrbWliJyBkbyB0aGlzIGFueXdheSkKICAgICAgLSBVc2UgZGVmaW5lZCBjb25zdGFudHMgZm9yIHZhcmlhYmxlIGluaXRpYWxpc2F0aW9uIGluIHRoZQogICAgCQl3cml0ZSByb3V0aW5lIChzaW1pbGFybHkgaW4gdGhlIG1pYjJjLmNvbmYgcGF0Y2gpCiAgICAgICAgICBbVGhpcyBpcyBvbmUgb2YgbXkgaG9iYnktaG9yc2VzIHdpdGggb3VyIHN0dWRlbnRzLCBzbyBJIGRvbid0CiAgICAJCSBzZWUgd2h5ICJwcm9mZXNzaW9uYWwiIHByb2dyYW1tZXJzIHNob3VsZCBiZSBleGVtcHQhXQogICAgCiAgICAgIC0gTWFrZSBwcm9wZXIgdXNlIG9mIHRoZSB0aHJlZS1waGFzZSBuYXR1cmUgb2YgU0VUcwoKaGFyZGFrZXIgIDUgTWFyIDk5IDEwOjIxOjI1CiAgICAtIChGQVEpOiB1cGRhdGUgZnJvbSBEYXZlOiByZWFycmFuZ2luZyBhbmQgY2xlYW5pbmcuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTA6NDI6NDAKICAgIC0gKHNubXBfYWdlbnQuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gc3dpdGNoIENPTU1JVCBhbmQgQUNUSU9OIHBoYXNlcy4KCm1zbGlmY2FrICA1IE1hciA5OSAxMTowMjozNAogICAgCiAgICAodGNwLmMpIC0gYnJlYWsgb3V0IG9mIGluZmluaXRlIGxvb3Agd2hlbiBrbG9va3VwIGZhaWxzLgoKaGFyZGFrZXIgIDUgTWFyIDk5IDE1OjEzOjAyCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIHJlbW92ZSBwZXJzaXN0ZW50IHN0b3JhZ2UgaW5mbywgc2luY2UgaXRzIG5vdCB1c2VkIHRoaXMgcmVsZWFzZS4KCmhhcmRha2VyICA1IE1hciA5OSAxNTozMTo1MgogICAgLSAoc25tcF9pbXBsLmgpOiBjcmVhdGUgVU5ETwoKaGFyZGFrZXIgIDUgTWFyIDk5IDE1OjM4OjMyCiAgICAtICh0a21pYik6IHVwZGF0ZS4KCmhhcmRha2VyICA1IE1hciA5OSAxNTo1NzozNgogICAgLSAoa2VybmVsX3N1bm9zNS5jLCB3b21iYXQuYywgaHJfbmV0d29yay5jLCBzbm1wX21pYi5oLCBzeXN0ZW1fbWliLmgsCiAgICAgIGRpc2suaCwgZXJyb3JtaWIuaCwgZXh0ZW5zaWJsZS5oLCBmaWxlLmgsIG1lbW9yeV9zb2xhcmlzMi5oLCBwYXNzLmgsCiAgICAgIHByb2MuaCwgcmVnaXN0cnkuaCwgdmVyc2lvbmluZm8uaCk6CiAgICAgIC0gLVdhbGwgZml4ZXMsIG1vc3RseSBpbml0XygpIHJvdXRpbmVzIGRlY2xhaXJlZCBpbiB0aGUgYXBwcm9wcmlhdGUgLmggZmlsZXMuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTY6MDI6MDYKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdXBkYXRlZCAtLWhlbHAncyBtb2R1bGUgbGlzdC4KCmhhcmRha2VyICA1IE1hciA5OSAxNjoxMDozMAogICAgLSAodm1zdGF0LmgpOiBkZWNsYWlyIGluaXRfdm1zdGF0KCkuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTc6MDg6MjEKICAgIC0gKEZBUSk6IHJlZmVyZW5jZSBBR0VOVCBkb2N1bWVudC4KCmhhcmRha2VyICA1IE1hciA5OSAxNzoxMTo0OAogICAgLSAobWliSUkvc3lzdGVtLmgpOiByZW1vdmVkCgpoYXJkYWtlciAgNSBNYXIgOTkgMTc6MTk6MTQKICAgIC0gKEZBUSwgTkVXUyk6IGZpbmFsIHVwZGF0ZXMuCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjUuMiAtPiBWMy41LjMKCmhhcmRha2VyIDEyIFNlcCA5OCAwOTowMjozNwogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGJ1ZyBmaXggdG8gY2hlY2sgZm9yIE5VTEwgc2Vzc2lvbiBwb2ludGVyIGJlZm9yZSB1c2luZyBpdC4KCmhhcmRha2VyIDIwIFNlcCA5OCAxMTo0NzoxNwogICAgLSAoc25tcF9hZ2VudC5jKTogaWYgYSBtaWIgbW9kdWxlIHJldHVybnMgYW4gZXJyb3IgPiBTTk1QX0dFTl9FUlIsCiAgICAgIHRyYW5zbGF0ZSB0aGUgZXJyb3IgdG8gU05NUF9HRU5fRVJSIGZvciB2MSByZXF1ZXN0cy4KCmhhcmRha2VyIDIxIFNlcCA5OCAxMToxMzoxOQogICAgLSAoc25tcF92YXJzLmMpOiBmaW5hbGx5IGZpeGVkIHRoZSB3cml0ZV9tZXRob2QncyBmb3IgY3JlYXRpb24gcHJvYmxlbS4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNjo1MzozMQogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IHVwZGF0ZS4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzowMjozOQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBwZXJsIGVxIC0+IHRlc3QgPSAob3BwcykuCgpoYXJkYWtlciAyNSBTZXAgOTggMTc6MDg6MjUKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBjaGVjayBmb3IgYSBudWxsIG5hbWUuCgpoYXJkYWtlciAyNSBTZXAgOTggMTc6NDI6MTAKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gdXNlIGEgbWVtc2V0IHRvIHplcm8gb3V0IG5ldyBwb2ludGVycyBpbnN0ZWFkIG9mIGRvaW5nIGl0IGJ5IGhhbmQuCgpoYXJkYWtlciAyOCBTZXAgOTggMTM6MDk6MDYKICAgIC0gKGludGVyZmFjZXMuYyk6IGRvbid0IHVzZSBhICYgb24gb3NmMyBmb3IgYXJwY29tLmFjX2VuYWRkci4KCmhhcmRha2VyIDI4IFNlcCA5OCAxMzowOTo0NQogICAgLSAoc25tcF9hcGkuYyk6IHR5cGVjYXN0IHRoZSBkZWZhdWx0IGNvbW11bml0eSBzdHJpbmcgdG8gKHVfY2hhciAqKS4KCmhhcmRha2VyIDI4IFNlcCA5OCAxNTo0MjoyMQogICAgLSAobWVtb3J5LmMpOiAvZXRjL3N3YXBpbmZvIC0+IC91c3Ivc2Jpbi9zd2FwaW5mbyBmb3IgaHB1eDEwLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNS4xIC0+IFYzLjUuMgoKaGFyZGFrZXIgIDggU2VwIDk4IDA5OjI2OjEzCiAgICAtIChORVdTKTogdXBkYXRlLgoKaGFyZGFrZXIgIDggU2VwIDk4IDA5OjMzOjI1CiAgICAtIChDaGFuZ2VMb2cpOiB1cGRhdGUgZm9yIDMuNS4xLgoKaGFyZGFrZXIgIDggU2VwIDk4IDA5OjM1OjU1CiAgICB2ZXJzaW9uIHRhZyAoIDMuNS4xICkKCmhhcmRha2VyICA5IFNlcCA5OCAwOTo0NToyNAogICAgLSAoTWFrZWZpbGUuaW4pOiBQdXQgYW4gQCBzaWduIGluIGZyb250IG9mIHRoZSBsYXN0IGVjaG8gbGluZS4KCmhhcmRha2VyICA5IFNlcCA5OCAwOTo0NjozNQogICAgLSAobWVtb3J5LmMsIG1lbW9yeS5oLCBtZW1vcnlfZnJlZWJzZDIuYywgbWVtb3J5X2ZyZWVic2QyLmgpOgogICAgICAtIENoYW5nZSBhbGwgaW5zdGFuY2VzIG9mIFVTRUQgLT4gQVZBSUwgc2luY2UgdGhhdHMgcmVhbGx5IHdoYXQKICAgICAgICB3ZSdyZSByZXBvcnRpbmcuCgpoYXJkYWtlciAgOSBTZXAgOTggMDk6NTA6MjIKICAgIC0gKG1lbW9yeS5jLCBtZW1vcnkuaCwgbWVtb3J5X2ZyZWVic2QyLmMsIG1lbW9yeV9mcmVlYnNkMi5oKToKICAgICAgLSBjb3JyZWN0IHdvcmsgSSBzdHVwaWRseSBtYWRlIHdoZW4gdGlyZWQuCgpoYXJkYWtlciAgOSBTZXAgOTggMTE6MDA6NDQKICAgIC0gKE5FV1MpOiB1cGRhdGUgZm9yIDMuNS4yLgoKbWFyeiAgOSBTZXAgOTggIDE4OjMxOjAwCiAgICAtIChzbm1wdHJhcC5jLCBzbm1wdGVzdC5jKTogYWRkIFNPQ0tfIG1hY3JvcyBmb3Igd2luMzIgc3VwcG9ydAoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCQpDaGFuZ2VzOiBWMy41IC0+IFYzLjUuMQoKaGFyZGFrZXIgMjIgSnVuIDk4IDA5OjE2OjMyCiAgICAtIChtYWluLmMpOiBQYXRjaCBmcm9tIEplcnJ5IEcuIERlTGFwcDoKICAgICAgLSBjb21tZW50ZWQgb3V0IHRyYWlsaW5nICNlbmRpZiBjb21tZW50LgoKaGFyZGFrZXIgMjQgSnVuIDk4IDEwOjMwOjE5CiAgICAtIChNYWtlZmlsZS5pbik6IG1hbi0+aHRtbCBtYWtlIHNwZWNpZmljYXRpb24uCgpoYXJkYWtlciAyNCBKdW4gOTggMTE6MDg6NDEKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNodXRkb3duIHRyYXAgc3BlY2lmaWNhdGlvbnMuCiAgICAgIC0gbWlzYyBtaWIgZml4ZXMuCgpoYXJkYWtlciAyNiBKdW4gOTggMTA6NDI6MzIKICAgIC0gKGRpc2suYyk6IFBhdGNoIGZyb20gTWljaGFlbCBEb3VnbGFzczoKICAgICAgLSBmaXggY2FsY3VsYXRpb24gb2YgdG90YWxkaXNrIGJ5IGRvaW5nIGJsb2NrIGRpdmlzaW9uIGZpcnN0IHRvCiAgICAgICAgcHJvdGVjdCBhZ2FpbnN0IDMyIGJpdCBvdmVyZmxvd3MuCgpoYXJkYWtlciAyNiBKdW4gOTggMTA6NDU6MTUKICAgIC0gKHNtdXguYywgc25tcF9iZ3AuYywgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jLCBzbm1wX3JpcDIuaCk6IFBhdGNoCiAgICAgIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gRml4IGZvciBuZXcgZGVmaW5lcyBhbmQgcHJvcGVyIGhlYWRlciBpbmNsdWRlcy4KCmhhcmRha2VyIDI2IEp1biA5OCAxNTowMzozOAogICAgLSAoZ2VuZXJpYy5oKTogcHV0IGluIGEgY29tbWVudCB0byBrZWVwIGNvbXBpbGVycyBmcm9tIGNvbXBsYWluaW5nIHRvbyBtdWNoLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjI2OjI1CiAgICAtIChmcmVlYnNkMi5oKTogdXNlIF9VVE1QX1BBVEggaWYgYXZhaWxhYmxlLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjI2OjM0CiAgICAtIChpcml4LmgpOiBkZWZpbmUgX0tNRU1VU0VSCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6Mjc6MTIKICAgIC0gKHdpbjMyLm9wdCwgbGlic25tcC5kc3AsIGxpYnNubXAucGxnLCBsaWJzbm1wLmRlZiwgbGlic25tcF9kbGwucGxnLAogICAgICBzbm1wYnVsa3dhbGsuZHNwLCBzbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0LmRzcCwgc25tcGdldC5wbGcsCiAgICAgIHNubXBnZXRuZXh0LmRzcCwgc25tcGdldG5leHQucGxnLCBzbm1wc2V0LmRzcCwgc25tcHNldC5wbGcsCiAgICAgIHNubXBzdGF0dXMuZHNwLCBzbm1wc3RhdHVzLnBsZywgc25tcHRyYW5zbGF0ZS5kc3AsCiAgICAgIHNubXB0cmFuc2xhdGUucGxnLCBzbm1wd2Fsay5kc3AsIHNubXB3YWxrLnBsZyk6IFBhdGNoIGZyb20gSm9lCiAgICAgIE1hcnpvdDoKICAgICAgLSB3aW4zMiB1cGRhdGUuCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6NTg6MDMKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gZml4ICJudW1iZXIgb2YgcmV0cmllcyIgYnVnLgogICAgICAtIHJlbW92ZSBvZGQgdGltZW91dCBjYWxjdWxhdGlvbiBjb2RlIGZvciByZXRyaWVzID4gMy4KaGFyZGFrZXIgIDggSnVsIDk4IDEzOjAyOjA2CiAgICAtIChpbnRlcmZhY2VzLmMpOiBtYWtlIGhwX2ludGVyZmFjZXMgc3RydWN0dXJlIHN0YXRpYy4KCmhhcmRha2VyICA4IEp1bCA5OCAxMzowMzozNgogICAgLSAoc3lzdGVtLmMpOiBkb24ndCBmcmVlIGVudiBwb2ludGVycyB0aGF0IGFyZSBjcmVhdGVkLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEzOjA4OjE4CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggZm9yIG1pc3Npbmcgb2JqZWN0IGlkZW50aWZpZXIgbGFiZWxzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQzOjU2CiAgICAtIChzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgZml4ZXMuCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0NDozNAogICAgLSAocGFzcy5jKTogaW5jbHVkZSBzeXMvd2FpdC5oCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDQ6NDEKICAgIC0gKHZlcnNpb25pbmZvLmMpOiBpbmNsdWRlIHN5c3RlbS5oCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDU6MjIKICAgIC0gKHBhcnNlLmMpOiBpbmNsdWRlIHNubXBfYXBpLmgKCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0NTo0MgogICAgLSAoc25tcF9hcGkuYyk6IGluY2x1ZGUgZml4ZXMuCgpoYXJkYWtlciAxNSBKdWwgOTggMTU6NDY6MjgKICAgIC0gKHNlZHNjcmlwdC5pbik6IHVzaW5nX21vZHVsZSBjaGFuZ2VzLgoKaGFyZGFrZXIgMTUgSnVsIDk4IDE1OjQ2OjU1CiAgICAtIChtZW1vcnkuaCk6IE1FTVNXQVBNSU5JTVVNIHdhc24ndCBiZWluZyB1c2VkLgoKaGFyZGFrZXIgMTcgSnVsIDk4IDEzOjExOjEwCiAgICAtIChVQ0QtU05NUC1NSUIuaW5jLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBjcmVhdGVkIHNtaWNuZyBpbnB1dCBmaWxlLgogICAgICAtIGZpeGVkIHRoZSBVQ0QtU05NUCBtaWIgdG8gZGVhbCB3aXRoIG1vc3Qgc21pYyBlcnJvcnMuCgpoYXJkYWtlciAxNyBKdWwgOTggMTM6MjI6MzIKICAgIC0gKFJGQy0xMjE1LnR4dCk6IGNyZWF0ZWQgYW4gZW1wdHkgbWliIG1vZHVsZSBmb3IgaW1wb3J0aW5nIG9mIFRSQVAtVFlQRS4KCmhhcmRha2VyIDE3IEp1bCA5OCAxNjo1OTo1MQogICAgLSAoKik6IHVwZGF0ZSBmb3IgMy41LjEuCgpoYXJkYWtlciAyMCBKdWwgOTggMTc6MTQ6MjEKICAgIC0gKHNubXBjaGVjay5kZWYpOiB3b3JrIGFyb3VuZCBmb3IgbmV3IG11bHRpLWRlcHRoIG1pYiB0YWJsZXMuLgoKaGFyZGFrZXIgMjIgSnVsIDk4IDE1OjM1OjA3CiAgICAtIChtaWIuYyk6IGRvbid0IGNoYW5nZSBydW5uaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aXRoIHN0cnRvay4KCmhhcmRha2VyIDIyIEp1bCA5OCAxNjoyMzo0NQogICAgLSAoTWFrZWZpbGUuaW4sIHNlZHNjcmlwdC5pbik6IGZpeCBzZWRzY3JpcHQgaW5jbHVkZXMuCgpoYXJkYWtlciAyNCBKdWwgOTggMDk6MjU6MzMKICAgIC0gKGRpc2suYyk6IGluY3JlbWVudCBpbmRleCBieSAxIHNvIGl0IGRvZXNuJ3Qgc3RhcnQgYXQgMC4KCmhhcmRha2VyIDI0IEp1bCA5OCAxMDowMjoxNAogICAgLSAoc25tcGQuY29uZi41LmRlZik6IHZhcmlvdXMgZG9jdW1lbmF0aW9uIHVwZGF0ZXMgYW5kIG5vdGVzLgoKaGFyZGFrZXIgMjQgSnVsIDk4IDEwOjAyOjI1CiAgICAtIChzbm1wdHJhbnNsYXRlLjEpOiBucm9mZiBlcnJvci4KCmhhcmRha2VyIDI0IEp1bCA5OCAxMDoyNTo0NAogICAgLSAoc25tcHRyYXBkLjgpOiBicm91Z2h0IHVwIHRvIGRhdGUuCgpoYXJkYWtlciAyNCBKdWwgOTggMTI6MTA6MDcKICAgIC0gKHNubXAuYyk6IGluY2x1ZGUgc3lzL3NlbGVjdC5oIGZvciBBSVguCgpoYXJkYWtlciAyNCBKdWwgOTggMTI6MjQ6MjIKICAgIC0gKGFjbC5oLCBhc24xLmgsIG1kNS5oLCBtaWIuaCwgcGFyc2UuaCwgc25tcC5oLCBzbm1wX2FwaS5oLAogICAgICBzbm1wX2NsaWVudC5oLCBzbm1wX2ltcGwuaCwgdmFjbS5oLCB2aWV3LmgpOgogICAgICAtIHByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZSBpbmNsdXNpb25zLgoKaGFyZGFrZXIgMjkgSnVsIDk4IDEzOjQ0OjIyCiAgICAtIChNYWtlZmlsZS5pbik6IG1ha2UgaW5zdGFsbCBzaG91bGQgZG8gYSByZWFsIG1ha2UgYWxsIGZpcnN0LgoKaGFyZGFrZXIgMTIgQXVnIDk4IDE1OjU3OjE4CiAgICAtIChzbm1wX3ZhcnMuYyk6IGlmZGVmIGZpeGVzIGZvciB2MnBhcnQgbW9kdWxlcy4KCmhhcmRha2VyIDEyIEF1ZyA5OCAxNTo1Nzo0MgogICAgLSAoZXh0ZW5zaWJsZS5jLCBwcm9jLmMpOiBmaXhpdCBwcm9ibGVtcyB3aXRoIGFycmF5IGluZGV4IHdyb25nLgoKaGFyZGFrZXIgMTIgQXVnIDk4IDE1OjU3OjUyCiAgICAtIChsaWJzbm1wLmRlZik6IGZpbmRfbW9kdWxlIGFkZGVkLgoKaGFyZGFrZXIgMTIgQXVnIDk4IDE2OjA1OjI4CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gbGlid3JhcCBjb21tYW5kIGxpbmUgZml4ZXMuCiAgICAgIC0gLS13aXRoLWxkZmxhZ3MgY29tbWFuZCBsaW5lIG9wdGlvbiBjcmVhdGVkLgoKaGFyZGFrZXIgMTIgQXVnIDk4IDE2OjU1OjMyCiAgICAtIChtaWJfYXBpLjMsIHNubXBkLjEuZGVmLCB2YXJpYWJsZXMuNSk6IHVwZGF0ZXMgdG8gcmVtb3ZlIG1pYi50eHQgcmVmZXJlbmNlcy4KCmhhcmRha2VyIDEyIEF1ZyA5OCAxNjo1ODoxMQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBkb24ndCBpbmNsdWRlIGxpYnJhcmllcyB0aGF0IGFyZW4ndCBuZWVkZWQgaWYgZ2V0aG9zdGJ5bmFtZSBpc24ndCBpbiBvbmUuCgpoYXJkYWtlciAxMiBBdWcgOTggMTY6NTk6NTAKICAgIC0gKHNubXBfaW1wbC5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IHRoZSBFUlJPUl9NU0coKSBtYWNybyB0byB1c2Ugc25tcF9zZXRfZGV0YWlsLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjIxOjQ0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYW5zbGF0ZS5jKTogdXNhZ2UgZml4ZXMgYW5kIC1tLy1NIHRvIHNubXB0cmFuc2xhdGUuCgpoYXJkYWtlciAxNCBBdWcgOTggMDg6NDI6NDkKICAgIC0gKGF1dG9fbmxpc3QuYyk6IGZpeCBmb3Igc3R1cGlkIGFpeCBrZXJuZWxzLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjQ0OjA3CiAgICAtICh1Y2Rfc25tcC5oLCBtZW1vcnlfZnJlZWJzZDIuYywgdm1zdGF0X2ZyZWVic2QyLmMpOiBQYXRjaCBmcm9tIEpvbmFzIE9sc3NvbjoKICAgICAgLSBtYWtlIHRoZSBtZW1vcnkgYW5kIHZtc3RhdCBtb2R1bGUgd29yayB1bmRlciBmcmVlYnNkMi4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODo0NDowNwogICAgZmlsZSBtZW1vcnlfZnJlZWJzZDIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgpoYXJkYWtlciAxNCBBdWcgOTggMDg6NDQ6MDcKICAgIGZpbGUgdm1zdGF0X2ZyZWVic2QyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjQ0OjI5CiAgICAtIChSRUFETUUpOiBBZGRlZCB0d28gbmV3IG5hbWVzIHRvIHRoZSB0aGFua3lvdSBsaXN0LgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjQ0OjM3CiAgICAtIChzZWRzY3JpcHQuaW4pOiBjb3JyZWN0IGluY2x1ZGUgZmlsZXMuCgpoYXJkYWtlciAxNCBBdWcgOTggMDg6NDQ6NTIKICAgIC0gKE1ha2VmaWxlLmluKTogQ1BQIG5lZWRzIHRvIGNoZWNrIGFnZW50L21pYmdyb3VwIGZvciBoZWFkZXJzLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjUyOjMyCiAgICAtIChtaWIuYywgcGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gYWRvcHQgdW5rbm93biBjaGlsZHJlbiBpbnRvIHRoZSBjb3JyZWN0IHBsYWNlIGlmIElNUE9SVFMgYXJlIHNjcmV3ZWQgdXAuCgpoYXJkYWtlciAxNCBBdWcgOTggMDk6MzI6NDUKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gSmFtZXMgSC4gWW91bmc6CiAgICAgIC0gdXNhZ2Ugb3V0cHV0IGNsZWFuIHVwLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDEwOjEzOjEzCiAgICAtIChDT1BZSU5HKTogY29weXJpZ2h0IGNoYW5nZS4KCmhhcmRha2VyIDE0IEF1ZyA5OCAxMDoxNDowNgogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gTWFsbG9jIC0+IHhtYWxsb2MuCiAgICAgIC0gcGFyc2VyIGNoYW5nZXMuCgpoYXJkYWtlciAxNCBBdWcgOTggMTA6MTQ6NTkKICAgIC0gKGF0LmMpOiBmaXhlcyBmb3IgbGludXguCgpoYXJkYWtlciAzMSBBdWcgOTggMTM6MDM6MDIKICAgIC0gKGludGVyZmFjZXMuYyk6IG1pc3NpbmcgcmV0dXJuIG9uIGlmSW5FcnJvcnMgcmVzdWx0cy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxMzozMjo0MwogICAgLSAoc25tcHRyYXBkLmMpOiBhZGQgYSBibGFuayBsaW5lIHRvIHRoZSBlbmQgb2YgdGhlIHRyYXBkIG91dHB1dCBmb3IgcGFyc2luZy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxNjoxMDoyNQogICAgLSAoc25tcF92YXJzLmMpOiBpbl9hX3ZpZXcoKTogY3JlYXRlIG5ldyBmdW5jdGlvbiwgYW5kIHVzZSBpdC4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxNjoxMDo1MAogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX2ltcGwuaCk6IGZpeCByZWFkL3dyaXRlIGNoZWNrcy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxMzowMzowMgogICAgLSAoaW50ZXJmYWNlcy5jKTogbWlzc2luZyByZXR1cm4gb24gaWZJbkVycm9ycyByZXN1bHRzLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDEzOjMyOjQzCiAgICAtIChzbm1wdHJhcGQuYyk6IGFkZCBhIGJsYW5rIGxpbmUgdG8gdGhlIGVuZCBvZiB0aGUgdHJhcGQgb3V0cHV0IGZvciBwYXJzaW5nLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDE2OjEwOjI1CiAgICAtIChzbm1wX3ZhcnMuYyk6IGluX2FfdmlldygpOiBjcmVhdGUgbmV3IGZ1bmN0aW9uLCBhbmQgdXNlIGl0LgoKaGFyZGFrZXIgMzEgQXVnIDk4IDE2OjEwOjUwCiAgICAtIChzbm1wX2FnZW50LmMsIHNubXBfaW1wbC5oKTogZml4IHJlYWQvd3JpdGUgY2hlY2tzLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDE2OjM3OjA0CiAgICAtIChDaGFuZ2VMb2csIE5FV1MpOiB1cGRhdGUgZm9yIDMuNS4xLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDE2OjM3OjE1CiAgICB2ZXJzaW9uIHRhZyAoIDMuNS4xLnByZTEgKQoKaGFyZGFrZXIgIDIgU2VwIDk4IDEwOjU1OjUyCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcmVhZF9jb25maWcuYywgc25tcDJwLmMsIHNubXBfYWdlbnQuYywKICAgICAgc25tcF92YXJzLmMsIHNubXBkLmMsIHNubXBkLmgsIHV0aWxfZnVuY3MuYywgaW50ZXJmYWNlcy5jLCBzeXN0ZW0uaCwKICAgICAgdGNwLmMsIHNtdXguYywgc25tcF9iZ3AuYywgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMsIHNubXBfb3NwZi5oLAogICAgICBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgsIGV4dGVuc2libGUuYywgbG9hZGF2ZS5jLAogICAgICBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXAuYywKICAgICAgc25tcHRyYXBkLmMsIGluZXQuYywgbWFpbi5jLCBuZXRzdGF0LmgsIG1pYl9hcGkuMywgc25tcF9hcGkuMywKICAgICAgc25tcGQuMS5kZWYsIGZyZWVic2QuaCwgZnJlZWJzZDIuaCwgbmV0YnNkLmgsIGFzbjEuaCwgbWliLmMsCiAgICAgIHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tCiAgICAgIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHByb3RvdHlwZXMsIGFzIHVzdWFsICh3aGVuIGlzIGV2ZXJ5Ym9keSBzdGFydGluZyB0byB1c2UgLVdhbGwKICAgICAgICAtV3N0cmljdC1wcm90b3R5cGVzIC4uLi4pCiAgICAgIC0gc25tcGQgc2VuZCBhbiBlbnRlcnByaXNlIHNwZWNpZmljIHRyYXAgd2hlbiBpdCB0ZXJtaW5hdGVzCiAgICAgIC0gcG9zc2liaWxpdHkgZm9yIHNlbmRpbmcgdjJjIHRyYXBzIChvciBpbmZvcm1zKSwgdmlhIHRyYXAyc2luayBkaXJlY3RpdmUKICAgICAgLSBmaXhlcyB0byBzbm1wbGliIGFuZCBzbm1wdHJhcGQgZm9yIGJ1Z3MgdW5jb3ZlcmVkIHdoZW4gc25tcGQgc2VuZHMKICAgICAgICBhbiBJTkZPUk0gaW5zdGVhZCBvZiBhIFRSQVAKICAgICAgLSAtbSBhbmQgLU0gb3B0aW9uIGZvciBzbm1wdHJhcGQKICAgICAgLSAtRCBvcHRpb24gZm9yIHNubXB0cmFuc2xhdGUKICAgICAgLSBmaXhlcyB0byBjb25maWd1cmUgdG8gY29ycmVjdGx5IGNhbGwgQUxMIG1vZHVsZSBpbml0IGZ1bmN0aW9ucwogICAgICAtIG1ham9yIHJld29yayBvZiB0Y3AuYywgZm9yIG5ldGJzZC4gSSBob3BlIHRoaXMgaXMgT0sgbm93LCBJIGhhdmVudCBoYWQKICAgICAgICB0aW1lIHRvIHRlc3QgaXQgb24gYWxsIHBsYXRmb3JtcyB5ZXQgLSBidXQgdGlsbCBmcmlkYXkgOi0pCiAgICAgIC0gc25tcG5ldHN0YXQgcHJpbnRzIHVkcCBzb2NrZXQgdGFibGUKICAgICAgLSBzb21lIENNVV9DT01QQVRJQkxFIHN0dWZmCiAgICAgIC0gbWFuIHBhZ2UgZml4ZXMsIHdpdGggYW4gaW5jbHVkZSBsaXN0IHRoYXQgd29ya3MhCgpoYXJkYWtlciAgMiBTZXAgOTggMTA6NTg6MTAKICAgIC0gKHRjcC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgIC0gIENvbWJpbmUgdGhlIHR3byAoYWxtb3N0KSBpZGVudGljYWwgbm9uLXNvbGFyaXMgY2FzZXMKICAgIC0gIEFkZCBzdXBwb3J0IGZvciB0aGUgbWlzc2luZyBMaW51eCBlbnRyaWVzIChJbkVycnMvT3V0UnN0cykKICAgIC0gIEFkZCBzdXBwb3J0IGZvciB0aGUgbWlzc2luZyBTb2xhcmlzIGVudHJ5IChPdXRSc3RzKQoKaGFyZGFrZXIgIDIgU2VwIDk4IDExOjAzOjMzCiAgICAtICh0Y3AuYyk6IHJldmVyc2UgRGF2ZSdzIGNoYW5nZXMgc2luY2UgdGhleSBjb25mbGljdCB3aXRoIE5pZWxzJy4KCmhhcmRha2VyICAyIFNlcCA5OCAxMjoxOTowMwogICAgLSAoZXh0ZW5zaWJsZS5jLCBwcm9jLmMpOiB1c2UgY29ycmVjdCBuYW1lIGluZGV4IGZvciBsb29rdXBzIG9uIHdyaXRlcy4KCmhhcmRha2VyICAyIFNlcCA5OCAxMjoxOTozMwogICAgLSAoc25tcF9hZ2VudC5jKTogY2hlY2sgdG8gbWFrZSBzdXJlIG9wZXJhdGlvbiBpcyBub3QgYSBTRVQgd2hlbgogICAgICByZXR1cm5pbmcgYW4gZXJyb3IgY29kZSBzdWNoIGFzIG5vU3VjaE5hbWUuCgpoYXJkYWtlciAgMiBTZXAgOTggMTQ6MDQ6NDIKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZG9uJ3QgaW5jbHVkZSBtb2R1bGVzIG5vdCByZXF1ZXN0ZWQgZXZlbgogICAgICBpZiByZXF1aXJlZCBieSBhbm90aGVyIG1vZHVsZS4KCmhhcmRha2VyICAyIFNlcCA5OCAxNDoxMDo1MwogICAgdmVyc2lvbiB0YWcgKCAzLjUuMS5wcmUyICkKCmhhcmRha2VyICAyIFNlcCA5OCAxODo0MzozMAogICAgLSAoVE9ETyk6IGFkZGVkIHNlY3VyaXR5IGNoZWNrcy4KCm5iYSAgMyBTZXAgOTggMTQ6Mjk6MDMKICAgIC0gKGZpeHByb2MpOiBhZGRlZCBjb21tZW50IHRvIHRlc3QgQ1ZTLgoKaGFyZGFrZXIgIDQgU2VwIDk4IDEwOjA5OjQ3CiAgICAtIChpbnRlcmZhY2VzLmMpOiBmaXggZm9yIHNnaSdzLgoKaGFyZGFrZXIgIDQgU2VwIDk4IDE0OjE0OjE5CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKToKICAgICAgLSBmaXggdG8gYWxsb3cgbm9uLXNvdXJjZSBkaXJlY3RvcnkgYnVpbGRzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEwOjEwOjA1CiAgICAtIChsb2FkYXZlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGlmZGVmIHJlLW9yZGVyaW5nIGZpeGVzIGZvciBhbHBoYS9saW51eC4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDo0NzowMAogICAgLSAocHJvYy5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gc29sYXJpcyAyLjYgZml4ZXMuCgpoYXJkYWtlciAgNyBTZXAgOTggMTA6NDg6MDkKICAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIENhdGNoIHN1YmlkZW50aWZpZXIgY29ycmVjdGx5LgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEwOjQ5OjA4CiAgICAtIChhc24xLmgpOiByZW1vdmUgX19QKCkgZGVmaW5pdGlvbi4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDo0OTo1MwogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBtYWxsb2MgY29ycmVjdGlvbnMgZm9yIEVOViB2YXJzLi4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDo1MToyMgogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZSBpbml0X21pYl9pbnRlcm5hbCgpIGNhbGxzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEwOjUzOjExCiAgICAtIChzeXN0ZW0uYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGV4aXQgLT4gcmV0dXJuIG9uIHdpbjMyIHN5c3RlbSByb3V0aW5lcy4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDo1NTo1MQogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIE5VTEwgcmV0dXJuIGJ5IG1hbGxvYyBwcm90ZWN0ZWQuCgpoYXJkYWtlciAgNyBTZXAgOTggMTI6MTc6MzYKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGJldHRlciBkZXNjcmlwdGlvbiBvZiB0aGUgdmlldyBtYXNrLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEyOjI3OjQyCiAgICAtIChtZW1vcnlfZnJlZWJzZDIuaCwgdm1zdGF0X2ZyZWVic2QyLmgpOiBjcmVhdGVkIGZyb20gbWVtb3J5LmggYW5kIHZtc3RhdC5oCgpoYXJkYWtlciAgNyBTZXAgOTggMTI6Mjc6NDIKICAgIGZpbGUgbWVtb3J5X2ZyZWVic2QyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEyOjI3OjQyCiAgICBmaWxlIHZtc3RhdF9mcmVlYnNkMi5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCmhhcmRha2VyICA3IFNlcCA5OCAxMjo0NzozNwogICAgLSAocGFyc2UuYyk6IGluY2x1ZGUgc25tcF9hcGkuaCBmb3Igc25tcF9nZXRfZG9fZGVidWdnaW5nKCkuCgpoYXJkYWtlciAgNyBTZXAgOTggMTI6NTQ6MTYKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBjaGVjayBtYWxsb2MgY2FsbHMgbW9yZSBjYXJlZnVsbHkuCiAgICAgIC0gbWlzYyBidWcgZml4ZXMuCgpoYXJkYWtlciAgNyBTZXAgOTggMTM6MTU6MjYKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBjb25maWcuaCBhcyAkKGluY2x1ZGVkaXIpL3VjZC1zbm1wLWNvbmZpZy5oLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEzOjIxOjE4CiAgICAtIChtZW1vcnkuYywgbWVtb3J5LmgpOgogICAgICAtIE1FTVVTRURSRUFMIC0+IE1FTUFWQUlMUkVBTCAodHlwZWRlZiByZW5hbWluZyB0byBtYXRjaCBmdW5jdGlvbmFsaXR5KS4KCmhhcmRha2VyICA3IFNlcCA5OCAxNDowNjoyMQogICAgLSAodGNwLmMpOiBiYWNrIG91dCBOaWVscycgY2hhbmdlcyBzaW5jZSB0aGV5IGJyb2tlIG90aGVyIGFyY2hpdGVjdHVyZXMuCgpoYXJkYWtlciAgNyBTZXAgOTggMTQ6MTk6MjQKICAgIC0gKE1ha2VmaWxlLmluKHMpKTogbWFrZSBkZXBlbmRzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDE2OjM5OjU5CiAgICAtIChpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMpOiA2NGJpdCBsb25nIHJldHVybiBjbGVhbiB1cHMuCgptYXJ6ICA3IFNlcCA5OCAxOTowMTowMQogICAgdXBkYXRlIGhlYWRlcnMgZm9yIHdpbjMyLCBhZGQgcmV0dXJuIHRvIG1haW4KCm1hcnogIDcgU2VwIDk4IDE5OjAyOjAxCiAgICB1cGRhdGUgaGVhZGVycyBmb3Igd2luMzIsIGFkZCByZXR1cm4gdG8gbWFpbixmaXggd2luMzIgY29tcGlsZSBlcnJvciB3LyBub24gaW50ZWdyYWxzd2l0Y2ggY2FzZQoKbWFyeiAgNyBTZXAgOTggMTk6MDM6MzMKICAgIHVwZGF0ZSBoZWFkZXJzIGZvciB3aW4zMiwgYWRkIHJldHVybiB0byBtYWluLCByZXNvbHZlIGNvbmZsaWN0IHcvIHN0ZCBsaWIgbG9nIGZ1bmN0aW9uCgptYXJ6ICA3IFNlcCA5OCAxOTozMDoxMQogICAgcmVuYW1lIGFuZCBzdGF0aWMgbGluayBkZWJ1ZyB0YXJnZXRzLCBkbGwgdG8gYmluIGRpciwgYWRkZWQgc25tcHRlc3QsIHNubXB0cmFwLCBzbm1wZGVsdGEgcHJvamVjdHMKCm1hcnogIDcgU2VwIDk4IDE5OjQyOjM1CiAgICBmaWxlIHNubXBkZWx0YS5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKbWFyeiAgNyBTZXAgOTggMTk6NDI6MzUKICAgIGZpbGUgc25tcGRlbHRhLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgptYXJ6ICA3IFNlcCA5OCAxOTo0MjozNQogICAgZmlsZSBzbm1wdGVzdC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKbWFyeiAgNyBTZXAgOTggMTk6NDI6MzUKICAgIGZpbGUgc25tcHRlc3QucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCm1hcnogIDcgU2VwIDk4IDE5OjQyOjM1CiAgICBmaWxlIHNubXB0cmFwLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgptYXJ6ICA3IFNlcCA5OCAxOTo0MjozNQogICAgZmlsZSBzbm1wdHJhcC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKbWFyeiAgNyBTZXAgOTggMTk6NDI6MzUKICAgIHJlbmFtZSBhbmQgc3RhdGljIGxpbmsgZGVidWcgdGFyZ2V0cywgZGxsIHRvIGJpbiBkaXIsIGFkZGVkIHNubXB0ZXN0LCBzbm1wdHJhcCwgc25tcGRlbHRhIHByb2plY3RzCgpoYXJkYWtlciAgOCBTZXAgOTggMDk6MjY6MTMKICAgIC0gKE5FV1MpOiB1cGRhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy40IC0+IFYzLjUKCmhhcmRha2VyIDI0IE1heSA5OCAxNToyMjoyMQogICAgLSAoRkFRKTogdXBkYXRlIHRvIGNoYW5nZSBhIGZldyB0aGluZ3MuCgpoYXJkYWtlciAyNCBNYXkgOTggMTU6MjI6MzgKICAgIC0gKE5FV1MpOiBjaGFuZ2UgdmFjbSBuZXdzIHdvcmRpbmcuCgpoYXJkYWtlciAyNCBNYXkgOTggMTU6MjI6NTcKICAgIC0gKGlwLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCBmb3IgbmV0YnNkIDwgMS4zLgoKaGFyZGFrZXIgMjkgTWF5IDk4IDEwOjE0OjMyCiAgICAtIChhdC5jKTogUGF0Y2ggZnJvbSBDaHJpcyBTbWl0aDogZml4IGZvciBpcml4LgoKaGFyZGFrZXIgMjkgTWF5IDk4IDEwOjI0OjU0CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2ltcGwuaCk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSBmaXggY29tbXVuaXR5IG5hbWUgbGVuZ3RoIHByb2JsZW1zIGFuZCBpbmNyZWFzZSBzaXplLgoKaGFyZGFrZXIgMjkgTWF5IDk4IDExOjI2OjQ3CiAgICAtIChjb25maWd1cmUuaW4pOiBwYXRjaCBmcm9tIE5pZWxzOiBpbmNsdWRlIHN5cy9zb2NrZXQgaW4gaWZfbXR1IHRlc3QuCgpoYXJkYWtlciAyOSBNYXkgOTggMTE6Mjc6NTkKICAgIC0gKGNvbmZpZ3VyZSk6IG1ha2Ugb2YgY29uZmlndXJlLgoKaGFyZGFrZXIgMjkgTWF5IDk4IDExOjM0OjUzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOgogICAgICAtIEFkZCBhIGRlcGVuZGFuY3kgbGluZSBmb3Igc25tcF92YXJzLm8gZm9yIGFsbCB0aGUgbW9kdWxlIGluY2x1ZGVzLgoKaGFyZGFrZXIgMjkgTWF5IDk4IDE1OjIwOjUzCiAgICAtIChUT0RPKTogd2luU05NUCBtZW50aW9uLgoKaGFyZGFrZXIgMjkgTWF5IDk4IDE1OjIxOjEzCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZCBhYmlsaXR5IHRvIHNwZWNpZnkgbWliIGluZm9ybWF0aW9uIG9uIHRoZSBjbWQgbGluZS4KCmhhcmRha2VyIDI5IE1heSA5OCAxNjoyMTowOAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwLyopOgogICAgICAtIG1vdmVkIG1vc3QgbWliZ3JvdXAgcGllY2VzIGludG8gcmVsZXZlbnQgc3ViLWRpcmVjdG9yaWVzLgogICAgICAgIC0gY2hhbmdlZCBhbGwgaGVhZGVyIGZpbGUgYW5kICNpZmRlZiBVU0lOR18qIGxpbmVzIHRvIHJlZmxlY3QgdGhpcy4KCmhhcmRha2VyIDI5IE1heSA5OCAxNjoyMTo1MQogICAgLSAoc25tcF9pbXBsLmgpOiBjaGFuZ2UgcGR1IHZlcnNpb24gZnJvbSBsb25nIHRvIGludC4KCmhhcmRha2VyIDMxIE1heSA5OCAxNzo1NTo0NQogICAgLSAoYXNuMS5jLCBhc24xLmgsIGludDY0LmMsIGludDY0LmgsIG1pYi5jLCBzbm1wLmMsIHNubXBfYXBpLmMsCiAgICAgIHNubXBfYXBpLmgsIHNubXBfaW1wbC5oKToKICAgICAgLSBpbXBsZW1lbnQgc3BlY2lhbCBkYXRhIHR5cGVzIHZpYSBvcGFxdWVzOiBmbG9hdCwgZG91YmxlLCBpbnQ2NCwgdWludDY0cy4KCmhhcmRha2VyIDMxIE1heSA5OCAxNzo1NjowNwogICAgLSAoc25tcHNldC5jKTogZW5hYmxlIHNldHRpbmcgb2Ygb3BhcXVlIGZsb2F0cywgZG91YmxlcywgaW50NjRzLCB1aW50NjRzLgoKaGFyZGFrZXIgMzEgTWF5IDk4IDE3OjU2OjU1CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIG1ha2UgaXQgcG9zc2libGUgbm90IHRvIHVzZSBvcGFxdWUgc3BlY2lhbCB0eXBlcyB3aXRoIG5ldyBjbWQgbGluZSBmbGFnLgoKaGFyZGFrZXIgIDIgSnVuIDk4IDE0OjIzOjE1CiAgICAtIChhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaCwga2VybmVsLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywKICAgICAgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9uZXR3b3JrLmMsIGhyX290aGVyLmMsCiAgICAgIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsCiAgICAgIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBocl91dGlscy5jLCBhdC5jLCBpbnRlcmZhY2VzLmMsCiAgICAgIHZhcl9yb3V0ZS5jLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXB0YWJsZS5jLAogICAgICBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwZC5jLCBmcmVlYnNkMi5oLCBocHV4LmgsIGxpbnV4LmgsIG5ldGJzZC5oLAogICAgICBzb2xhcmlzLmgsIHN5c3YuaCwgYXNuMS5jLCBtaWIuYywgcGFyc2UuYywgcGFyc2UuaCwgc25tcF9hdXRoLmMsCiAgICAgIHNubXBfaW1wbC5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZW5zZW46CiAgICAgIC0gbWFrZSBob3N0IHJlc291cmNlcyB3b3JrIHVuZGVyIE5ldEJTRCwgRnJlZUJTRCwgU29sYXJpcyBhbmQgTGludXguCiAgICAgICAgLSBTdW5PUzQgYWxtb3N0IHdvcmtzLgogICAgICAtIEFkZCAtcy8tUyB0byBjb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgcHJpbnRpbmcgb2Ygc2hvcnRlciBvaWRzLgogICAgICAtIG51bWVyb3VzIGJ1ZyBmaXhlcy4KCmhhcmRha2VyICAzIEp1biA5OCAxMDo1MToxMAogICAgLSAoc211eC5jLCBzbXV4LmgsIHNtdXhfZ2F0ZWQuaCwgc25tcF9iZ3AuYywgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMsCiAgICAgIHNubXBfb3NwZi5oLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgsIHNtdXguYywgc211eC5oLCBzbm1wX2JncC5jLAogICAgICBzbm1wX2JncC5oLCBzbm1wX29zcGYuYywgc25tcF9vc3BmLmgsIHNubXBfcmlwMi5jLCBzbm1wX3JpcDIuaCk6CiAgICAgIC0gbW92ZWQgc211eCBzdHVmZiBpbnRvIGEgc211eCBzdWItZGlyZWN0b3J5LgoKaGFyZGFrZXIgIDMgSnVuIDk4IDEwOjU4OjE1CiAgICAtIChpcGZ3YWNjLmMsIGlwZndhY2MuaCwgSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBtb3ZlZCBpcGZ3YWNjIHRvIHVjZGF2aXMuMTMgYW5kIHJlbW92ZWQgXk1zIGFuZCBzb21lIGJsYW5rIGxpbmVzLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDEwOjU4OjQ0CiAgICAtIChJTlNUQUxMKTogbWVudGlvbiBpcGZ3YWNjCgpoYXJkYWtlciAgMyBKdW4gOTggMTA6NTg6NTkKICAgIC0gKFJFQURNRSk6IG1lbnRpb24gQ3Jpc3RpYW4gRXN0YW4gaW4gdGhlIGNvZGVycyBsaXN0LgoKaGFyZGFrZXIgIDMgSnVuIDk4IDExOjA2OjQ3CiAgICAtIChleGFtcGxlLmMsIGV4YW1wbGUuaCwgZGxtb2QuYywgZGxtb2QuaCk6IFBhdGNoIGZyb20gRXVnZW5lIFBvbG92bmlrb3Y6CiAgICAgIC0gaW1wbGVtZW50IGEgZHluYW1pYyBsb2FkaW5nIG1vZHVsZSBmb3IgbG9hZGluZyBzaGFyZWQgb2JqZWN0IG1pYiBtb2R1bGVzLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDExOjEwOjQ4CiAgICAtIChSRUFETUUsIGV4YW1wbGUuYywgZXhhbXBsZS5oLCB3b21iYXQuYywgd29tYmF0LmgsIGV4YW1wbGUuYywKICAgICAgZXhhbXBsZS5oLCB3b21iYXQuYywgd29tYmF0LmgpOgogICAgICAtIG1vdmVkIHdvbWJhdCBhbmQgZXhhbXBsZSB0byBleGFtcGxlcy8gZGlyZWN0b3J5LgoKaGFyZGFrZXIgIDMgSnVuIDk4IDExOjI3OjI3CiAgICAtIChzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBpbmNsdWRlIG1pYklJL3NubXBfbWliLmguCgpoYXJkYWtlciAgMyBKdW4gOTggMTE6Mjk6MDQKICAgIC0gKG1pYi5jKTogbWlzc2VkIGEgbmVlZGVkIE9QQVFVRV9TUEVDSUFMX1RZUEVTIGlmZGVmLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDEyOjE3OjAwCiAgICAtIChzbm1wX2FnZW50LmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2ltcGwuaCk6CiAgICAgIC0gZml4IHBkdS0+dmVyc2lvbnMgdG8gYmUgYWxsIGludHMuCgpoYXJkYWtlciAgMyBKdW4gOTggMTM6Mzk6MTIKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogTmV3IGZsYWdzOgogICAgICAtIC0td2l0aC1jYz1DQwogICAgICAtIC0td2l0aC1jZmxhZ3M9Q0ZMQUdTCgpoYXJkYWtlciAgMyBKdW4gOTggMTM6NDM6NDcKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcHRyYXBkLmMpOgogICAgICAtIGNoZWNrIGZvciBnZXRkdGFibGVzaXplIGFuZCB1c2UgYSBnZW5lcmljIGlmIG5vdCBhdmFpbGFibGUuCgpoYXJkYWtlciAgMyBKdW4gOTggMTM6NTI6MjgKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZnJlZWJzZDIuaCk6CiAgICAgIC0gbW92ZSBjb25maWd1cmFibGUgZGVmaW5lcyB0byBjb25maWd1cmUgcmF0aGVyIHRoYW4gaW4gZnJlZWJzZDIuaC4KCmhhcmRha2VyICAzIEp1biA5OCAxMzo1NTo0MAogICAgLSAoaTM4Ni5oLCBpNTg2LmgsIGk2ODYuaCk6IHJlbW92ZWQgdGhlc2UgKHVudXNlZCkgaGVhZGVycy4KCmhhcmRha2VyICAzIEp1biA5OCAxNDowMjozNAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBmaXggbmV3IC0td2l0aC1jYyBhbmQgLS13aXRoLWNmbGFncyBhcmd1bWVudHMuCgpoYXJkYWtlciAgMyBKdW4gOTggMTQ6MjE6MTAKICAgIC0gKGhyX2Rpc2suYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBzbm1wc2V0LmMsIGFzbjEuaCwKICAgICAgaW50NjQuYywgaW50NjQuaCwgbWliLmMsIHNubXBfYXBpLmMpOgogICAgICAtIC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDE0OjIzOjE0CiAgICAtIChNYWtlZmlsZS5pbidzKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAgMyBKdW4gOTggMTQ6MjQ6NTgKICAgIC0gKE1ha2VmaWxlLmluKTogcmVhZF9jb25maWcubyBpcyBtaWJtb2R1bGUgaGVhZGVyIGRlcGVuZGFudCB0b28uCgpoYXJkYWtlciAgMyBKdW4gOTggMTQ6MjY6MTAKICAgIHZlcnNpb24gdGFnICggMy41LnByZTEgKQoKaGFyZGFrZXIgIDUgSnVuIDk4IDEwOjUyOjExCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gdGVzdCBmb3Igc2V0ZW52LgoKaGFyZGFrZXIgIDUgSnVuIDk4IDEwOjUyOjQwCiAgICAtIChtYWtldGFyZ2V0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzdXBwb3J0IGZvciBsYXJnZXIgdHJlZSBkZXB0aHMuCgpoYXJkYWtlciAgNSBKdW4gOTggMTA6NTQ6MzEKICAgIC0gKGFzbjEuYywgbWliLmMsIHBhcnNlLmgsIHN5c3RlbS5jLCBzeXN0ZW0uaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gTUlCX0FDQ0VTUyBkZWZpbmUgY2hhbmdlcy4KICAgICAgLSBzZXRlbnYgaW1wbGVtZW50YXRpb24uCiAgICAgIC0gaWZkZWYgd3JhcHBlcnMgZm9yIE9QQVFVRV9TUEVDSUFMX1RZUEVTLgoKaGFyZGFrZXIgIDggSnVuIDk4IDEwOjUwOjEyCiAgICAtIChGQVEpOiB1cmwgdHlwZSBzcGxpdHRpbmcuCgpoYXJkYWtlciAgOCBKdW4gOTggMTI6MzQ6MDkKICAgIC0gKE1ha2VmaWxlLmluKTogY3JlYXRlIGEgLmMgLT4gLm8gcnVsZSB0byBtYWtlIHN1cmUgYW5kIHBsYWNlIHRoZQogICAgICBvYmplY3QgZmlsZXMgaW4gdGhlIGFwcHJvcHJpYXRlIHN1YmRpcmVjdG9yaWVzLgoKaGFyZGFrZXIgIDggSnVuIDk4IDEzOjU5OjA4CiAgICAtIChSRUFETUUpOiBBZGRlZCBFdWdlbmUncyBuYW1lLgoKaGFyZGFrZXIgIDggSnVuIDk4IDEzOjU5OjI1CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogdXBkYXRlIHJmYyAjIGZvciB2YWNtIHJlZmVyZW5jZS4KCmhhcmRha2VyICA4IEp1biA5OCAxNDoxMjozNwogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gcmVtb3ZlIG1vcmUgY29uZmlnIGNyZWF0ZWQgaGVhZGVycyBvbiBtYWtlIGNvbmZpZ2NsZWFuLgoKaGFyZGFrZXIgIDggSnVuIDk4IDE0OjE2OjI2CiAgICAtIChsaWJzbm1wLmRlZik6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDogdzMyIHVwZGF0ZS4KCmhhcmRha2VyICA4IEp1biA5OCAxNDoyMjo1MAogICAgLSAocGFyc2UuYywgcGFyc2UuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYyk6IFBhdGNoCiAgICAgZnJvbSBKb2UgTWFyem90OgogICAgICAtIGFzeW5jIHN0dWZmIGFkZGVkLgogICAgICAtIGdldF90YyBhZGRlZC4KICAgICAgLSBiZXR0ZXIgY29tbWVudHMgaW4gc29tZSBwbGFjZXMuCgpoYXJkYWtlciAgOCBKdW4gOTggMTQ6NTU6NTMKICAgIC0gKHNubXBfYXBpLmMpOiB1bmRpZCByZWRvIG9mIGNvbW1lbnQgb2YgZ2V0dGltZW9mZGF5KCkuCgpoYXJkYWtlciAxMCBKdW4gOTggMDc6MTE6NDQKICAgIC0gKGNvbmZpZy5oLmluKTogaGF2ZV9zZXRlbnYuCgpoYXJkYWtlciAxMCBKdW4gOTggMDg6NTM6NTMKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wMnAuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gIHN0YXJ0cyB0byBzZXBhcmF0ZSBvdXQgdGhlIGhpc3RvcmljIFNOTVB2MiBzdHVmZi4KICAgICAgLSAgZG9lcyBhIGJpdCBvZiAnY29kZSB0aWR5aW5nJy4KICAgICAgLSAgc3RhcnRzIHRvIG1vdmUgdG93YXJkcyBwb3J0LXNwZWNpZmljIGhhbmRsZXJzLgoKaGFyZGFrZXIgMTAgSnVuIDk4IDE0OjE1OjQ3CiAgICB2ZXJzaW9uIHRhZyAoIDMuNS5wcmUyICkKCmhhcmRha2VyIDEwIEp1biA5OCAxNTozMDo1OQogICAgLSAoVE9ETyk6IGFkZGVkIERhdmUncyBsaXN0LgoKaGFyZGFrZXIgMTAgSnVuIDk4IDE1OjMxOjEyCiAgICAtIChORVdTKTogdXBkYXRlLgoKaGFyZGFrZXIgMTAgSnVuIDk4IDE1OjQ3OjU5CiAgICAtIChzbm1wMnAuYywgc25tcGQuYywgc25tcGQuaCk6IC1XYWxsIGNsZWFudXBzLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDA4OjUyOjI4CiAgICAtIChFWEFNUExFLmNvbmYuZGVmLCBGQVEpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHVwZGF0ZSBmb3IgVkFDTSBzdHVmZi4KCmhhcmRha2VyIDEyIEp1biA5OCAxMDoxMjoyNwogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IHNob3cgdmFjbSBleGFtcGxlIGZvciBwdWJsaWMvcHJpdmF0ZSBmcm9tIGFueXdoZXJlLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEwOjEyOjQwCiAgICAtIChORVdTKTogbWlub3IgdXBkYXRlLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEzOjEzOjEyCiAgICAtIChzbm1wX2FwaS5jKTogdHJhcCB0eXBlcyB3ZXJlIGludCdzIG5vdCBsb25ncyAoZmFpbGVkIHVuZGVyIDY0Yml0IGFyY2gpLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEzOjEzOjI3CiAgICAtIChwYXJzZS5jKTogZnVuY3Rpb24gbmFtZSB0eXBvLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEzOjEzOjM5CiAgICAtICh3aW4zMi9jb25maWcuaCk6IGRvbid0IGhhdmUgc2V0ZW52LgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEzOjEzOjU3CiAgICAtIChsaWJzbm1wLmRlZik6IGFkZCBzZXRlbnYgdG8gdGhlIGxpc3QuCgpoYXJkYWtlciAxMiBKdW4gOTggMTM6NDM6NDEKICAgIC0gKE5FV1MpOiA2NGJpdCBmaXggbWVudGlvbmVkLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEzOjQ4OjIxCiAgICAtIChrZXJuZWwuYyk6IGRvbid0IHByaW50IGtscmVhZCBlcnJvcnMgdW5sZXNzIGluIGRlYnVnZ2luZyBtb2RlLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDE1OjE3OjQ3CiAgICAtIChpcGZ3YWNjLmgsIElQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gY3JlYXRlIGFuZCB1c2UgYSB1Y2RFeHBlcmltZW50YWwgc2VjdGlvbiBmb3IgdGhlIGlwZndhY2MgbWliIHRpbGwKICAgICAgICBpdCBzdGFiaWxpemVzLgoKaGFyZGFrZXIgMTcgSnVuIDk4IDA4OjA4OjIzCiAgICAtIChzbm1wMnAuYywgc25tcGQuYywgc25tcGQuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbWlzYyB0eXBlIGZpeGVzLgoKaGFyZGFrZXIgMTcgSnVuIDk4IDA4OjA4OjU4CiAgICAtIChzbm1wZGVsdGEuYyk6IHVzYWdlKCkgdXBkYXRlLgoKaGFyZGFrZXIgMTcgSnVuIDk4IDA4OjEwOjAyCiAgICAtIChNYWtlZmlsZS5pbiwgc25tcGJ1bGt3YWxrLjEsIHNubXBjbWQuMSwgc25tcGRlbHRhLjEsIHNubXBnZXQuMSwKICAgICAgc25tcGdldG5leHQuMSwgc25tcHNldC4xLCBzbm1wc3RhdHVzLjEsIHNubXB0YWJsZS4xLCBzbm1wdHJhcC4xLAogICAgICBzbm1wd2Fsay4xKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBkb2N1bWVudGF0aW9uIGNsZWFudXAgYW5kIGNlbnRyYWxpemF0aW9uIG9mIGNvbW1vbiBvcHRpb25zLgoKaGFyZGFrZXIgMTcgSnVuIDk4IDA4OjEwOjU0CiAgICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGJjb3B5IC0+IG1lbWNweS4KCmhhcmRha2VyIDE3IEp1biA5OCAwODoxMToyMgogICAgLSAobWliLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHJlbW92ZSAybmQgaW5pdF9taWIoKSBwcm90b3R5cGUuCgpoYXJkYWtlciAxNyBKdW4gOTggMDg6MjE6NTMKICAgIC0gKFJFQURNRSwgQWRkTW9kdWxlRm9yRHVtbWllcy50eHQsIERVTU1ZLU1JQi50eHQsIGR1bW15LmMsIGR1bW15LmgpOgogICAgICBQYXRjaCBmcm9tIEpha29iIEVsbGVyc3RlZHQ6CiAgICAgIC0gbWliIG1vZHVsZSBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlIGZvciBkdW1taWVzLgoKaGFyZGFrZXIgMTcgSnVuIDk4IDE1OjI3OjEzCiAgICAtIChSRUFETUUpOiBtZW50aW9uIGR1bW15IGdyb3VwLgoKaGFyZGFrZXIgMTkgSnVuIDk4IDA4OjQxOjAwCiAgICAtIChGQVEpOiB1cGRhdGUgZnJvbSBEYXZlIFNoaWVsZDogbm90IGZvdW5kIG1vZHVsZXMgd2l0aCBjb25maWd1cmU/LgoKaGFyZGFrZXIgMTkgSnVuIDk4IDA4OjQ2OjMxCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHdhcm4gQlNESSB1c2VycyBhZ2FpbnN0IC91c3IvdWNiL2NjLgoKaGFyZGFrZXIgMTkgSnVuIDk4IDA4OjU4OjA1CiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogUGF0Y2ggZnJvbSBDcmlzdGlhbiBFc3RhbjoKICAgICAgLSBleGFtcGxlIG91dHB1dCBjb3JyZWN0aW9ucy4KCmhhcmRha2VyIDE5IEp1biA5OCAwODo1OTo1MwogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIENyaXN0aWFuIEVzdGFuOgogICAgICAtIGluc3RhbGwgSVBGV0FDQyBtaWIuCgpoYXJkYWtlciAxOSBKdW4gOTggMTI6MDM6NDgKICAgIC0gKHNubXBfdmFycy5jKTogZml4IHJlZ2lzdGVyX21pYigpIHRvIGluaXQgcG9pbnRlcnMgdG8gbnVsbC4KCmhhcmRha2VyIDE5IEp1biA5OCAxMjo1MDo1NQogICAgLSAodXRpbF9mdW5jcy5jKTogZml4IGNoZWNrbWliKCkgaW4gY2FzZSB3ZSBnZXQgY2FsbGVkIG9uIGEgZ2V0IHdoZW4KICAgICAgd2UgcmVhbGx5IHNob3VsZG4ndCAoYmFkIGFydGlmYWN0IG9mIG5ldyB0cmVlIHN0cnVjdHVyZSkuCgpoYXJkYWtlciAxOSBKdW4gOTggMTI6NTM6MjIKICAgIC0gKHNubXBfdmFycy5jKTogbWVtc2V0IHRvIDAgdGhlIGVudGlyZSBzdWJ0cmVlIHN0cnVjdC4KCmhhcmRha2VyIDE5IEp1biA5OCAxMzowMTo0NwogICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDE5IEp1biA5OCAxMzoxMjo1NQogICAgLSAoTkVXUyk6IExhc3QgdXBkYXRlIGZvciAzLjUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4zIC0+IFYzLjQKCmhhcmRha2VyICAxIERlYyA5NyAxMjo0NDoyNAogICAgLSAoKik6IDMuMy4xIGJyYW5jaCBtZXJnZWQgaW50byBtYWluIGRldmVsb3BtZW50IGJyYW5jaC4KCmhhcmRha2VyICA1IERlYyA5NyAwODo0Njo1MAogICAgLSAoc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbWFrZSB0cmFwIHZhcmlhYmxlcyBsb25nJ3Mgbm90IGludHMgZm9yIDY0Yml0IG1hY2hpbmVzIHRvIG1hdGNoCiAgICAgICAgYXNuX2J1aWxkX2ludCBmdW5jdGlvbnMuCgpoYXJkYWtlciAgNSBEZWMgOTcgMTE6NTg6NTIKICAgIC0gKGFwcHMvKi5jKTogc3VwcG9ydCByYW5kb20gYWNjZXNzIHJlcXVlc3RzIG9uIGFsbCBhcHBzIHZpYSAtUiBzd2l0Y2guCgpoYXJkYWtlciAgNSBEZWMgOTcgMTQ6MzA6MDYKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogd2FybiBpbnN0ZWFkIG9mIGVycm9yIGZvciBjb25maWdfcmVxdWlyZSBtYWNybydzLgoKaGFyZGFrZXIgMTUgRGVjIDk3IDExOjA4OjAxCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIG5ldyBtYWNybyB0byBjaGFuZ2UgZGVmYXVsdCBNSUJTIHdoZW4gbW9kdWxlcyBhcmUgY29tcGlsZWQ6CiAgICAgICAgY29uZmlnX2FkZF9taWIoKS4KCmhhcmRha2VyIDE1IERlYyA5NyAxMTowODoxOQogICAgLSAoaG9zdC5oLCB1Y2Rfc25tcC5oLCB2MnBhcnR5LmgpOgogICAgICAtIHVzZSBjb25maWdfYWRkX21pYigpLgoKaGFyZGFrZXIgMTUgRGVjIDk3IDExOjE0OjE4CiAgICAtIChhdC5jLCBleGFtcGxlLmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywKICAgICAgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaCwgaXAuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywKICAgICAgcm91dGVfd3JpdGUuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgd29tYmF0LmMsIGNvbW1vbl9oZWFkZXIuaCk6CiAgICAgIC0gUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW4gdG8gaW1wcm92ZSBpcml4IDYuMiBzdXBwb3J0LgoKaGFyZGFrZXIgMTUgRGVjIDk3IDE1OjA3OjI2CiAgICAtIChVQ0QtZmllbGRzLCBvaWRfdG9fc3ltLmluLCBvaWRfdG9fdHlwZS5pbik6IFBhdGNoIGZyb20gVEFOQUtBIFRha2FzaGk6CiAgICAgIC0gc3VwcG9ydCBtb3JlIE9TIHR5cGVzIGluIHRoZSBvdi8gZGlyZWN0b3J5IGZpbGVzLgogICAgICAtIG1pc3Rha2U6ICBic2RpIHdhcyBnZXR0aW5nIGRlZmluZWQgYXMgaXJpeC4KICAgICAgLSBkb24ndCBjb3JlIGR1bXAgb24gLXYgd2l0aG91dCBhbnkgYXJndW1lbnRzLgoKaGFyZGFrZXIgMTUgRGVjIDk3IDE1OjA3OjU5CiAgICAtIChVQ0QtZmllbGRzLCBvaWRfdG9fc3ltLmluLCBvaWRfdG9fdHlwZS5pbiwgc25tcF9wYXJzZV9hcmdzLmMsIGFjY29uZmlnLmgpOgogICAgICAtIFBhdGNoIGZyb20gVEFOQUtBIFRha2FzaGk6CiAgICAgICAgLSBzdXBwb3J0IG1vcmUgT1MgdHlwZXMgaW4gdGhlIG92LyBkaXJlY3RvcnkgZmlsZXMuCiAgICAgICAgLSBtaXN0YWtlOiAgYnNkaSB3YXMgZ2V0dGluZyBkZWZpbmVkIGFzIGlyaXguCiAgICAgICAgLSBkb24ndCBjb3JlIGR1bXAgb24gLXYgd2l0aG91dCBhbnkgYXJndW1lbnRzLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjIwOjA0CiAgICAtIChocl9zd3J1bi5jKTogQ29ycmVjdCBhIG5vbi1jYXN0ZWQgbWFsbG9jLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjMzOjU5CiAgICAtIChocl9maWxlc3lzLmMpOiBTb2xhcmlzIHNwZWNpZmljIGZpeGVzLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjM1OjI2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc2Vkc2NyaXB0LmluKTogQlNESSBkZWZpbml0aW9uIGZpeGVzLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjQxOjQ5CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEpvaGFubmVzIEdyb3NlbjoKICAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KCmhhcmRha2VyIDIzIERlYyA5NyAxMTo0MjoyOAogICAgLSAobWliZ3JvdXAvKi5jLCBjb21tb25faGVhZGVyLmgpOiBQYXRjaCBmcm9tIEpvaGFubmVzIEdyb3NlbjoKICAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KCmhhcmRha2VyIDIzIERlYyA5NyAxMTo0MjozOQogICAgLSAoc25tcHRyYXAuYyk6IFBhdGNoIGZyb20gSm9oYW5uZXMgR3Jvc2VuOgogICAgICAtIGZpeCBub24tZXhpc3RlbnQgbmxpc3QuaCBwcm9ibGVtcyB1bmRlciBsaW51eCByZWRoYXQgNS4wLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjQyOjU0CiAgICAtIChzbm1wbGliL3N5c3RlbS5jKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTE6NDY6MDgKICAgIC0gKGhwdXguYyk6ICNpZmRlZidlZCBvdXQgdW51c2VkIHdyaXRlSFAgZnVuY3Rpb24uCgpoYXJkYWtlciAyMyBEZWMgOTcgMTI6MzI6MjEKICAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBUZWQgUnVsZToKICAgICAgLSBVc2Ugc3lzbG9nIG9wdGlvbiBMT0dfUElEIG9uIHN0YXJ0dXAuCiAgICAgIC0gZm9yayBpZiBzeXNsb2cgZW5hYmxlZC4KICAgICAgLSBFbmFibGUgbG9nZ2luZyB0byBvdGhlciBzeXNsb2cgZmFjaWxpdGllcy4KICAgICAgLSBwcmludCBhbGwgdHJhcCBkYXRhIHRvIGEgc2luZ2xlIHN5c2xvZyBsaW5lLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDEyOjQ4OjMxCiAgICAtIChzbm1wdHJhcGQuYyk6CiAgICAgIC0gQ2hhbmdlIC1mIGZsYWcgdG8gLWwgYW5kIG1ha2UgLWYgbm8tZm9yay4KICAgICAgLSBmaXggcGF0Y2ggd2hpY2ggbXVuZ2VkIGFiaWxpdHkgdG8gZ2VuZXJhdGUgYm90aCAtUCBhbmQgLXMgc2ltdWx0YW5lb3VzbHkuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTQ6NDA6MzYKICAgIC0gKFJFQURNRSk6IEFkZCBUZWQgUnVsZSB0byBjb2RlcnMgbGlzdC4KCmhhcmRha2VyIDIzIERlYyA5NyAxNDo0Mjo0NwogICAgLSAoKik6IFR1cm4gYWxsIGRlYnVnZ2luZyByb3V0aW5lcyBpbnRvIGxpYnJhcnkgY2FsbHMgdGhhdCBjYW4gYmUKICAgICAgdHVybmVkIG9uIGFuZCBvZmYgYXQgcnVuIHRpbWUuCiAgICAgIC0gREVCVUdQKCkgaXMgbm93IGEgdHlwaWNhbCBwcmludGYgc3R5bGUgZnVuY3Rpb24gYW5kIGlzIHVzZWQgZXZlcnl3aGVyZS4KICAgICAgLSB2b2lkIHNubXBfc2V0X2RvX2RlYnVnZ2luZyhpbnQpLgogICAgICAtIGludCBzbm1wX2dldF9kb19kZWJ1Z2dpbmcoKS4KCmhhcmRha2VyIDIzIERlYyA5NyAxNDo0NDozOAogICAgLSAoc25tcGQuMS5kZWYsIHNubXB0cmFwZC44KTogZGVidWdnaW5nIGZsYWcgYWRkaXRpb25zLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDE0OjQ3OjA4CiAgICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYyk6CiAgICAgIC0gUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBicmVhayB1cCBjb21tb25faGVhZGVyLmguCgpoYXJkYWtlciAyMyBEZWMgOTcgMTU6Mjc6NTQKICAgIC0gKGF0LmMsIGF0LmgsIGhvc3RfcmVzLmgsIGljbXAuaCwgaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmgsIGlwLmgsCiAgICAgIHRjcC5jLCB0Y3AuaCwgdWRwLmMsIHVkcC5oLCByZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYyk6CiAgICAgIC0gY2xlYW4gdXAgcmVxdWlyZWQgaGVhZGVycyBmb3IgbGludXguCgpoYXJkYWtlciAyMyBEZWMgOTcgMTU6NTY6MTgKICAgIC0gKHZlcnNpb25pbmZvLmMsIHZlcnNpb25pbmZvLmgpOiBDcmVhdGUgYSBtaWIgdmFyaWFibGUgdG8gc2V0L3JlcG9ydAogICAgICBpZiBkZWJ1Z2dpbmcgaXMgb24gb3Igb2ZmLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDE1OjU5OjAzCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogQ3JlYXRlIGEgbWliIHZhcmlhYmxlIHRvIHNldC9yZXBvcnQgaWYgZGVidWdnaW5nCiAgICAgIGlzIG9uIG9yIG9mZi4KCmhhcmRha2VyIDIzIERlYyA5NyAxNjozMDo0NwogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlMSApCgpoYXJkYWtlciAyOSBEZWMgOTcgMDk6Mzc6MDYKICAgIC0gKHRrbWliKTogRmlyc3QgaW1wbGVtZW50YXRpb24uCgpoYXJkYWtlciAzMCBEZWMgOTcgMTQ6MDA6MDMKICAgIC0gKHRrbWliKToKICAgICAgLSBuZXcgY29tbWFuZDogdGFibGUgdG8gZGlzcGxheSBzbm1wdGFibGVzIGFzIGEgdGFibGUuCiAgICAgIC0gbWlzYy4uLgoKaGFyZGFrZXIgMzAgRGVjIDk3IDE3OjAxOjU3CiAgICAtICh0a21pYik6IENyZWF0ZSBhIGdyYXBoaW5nIHdpZGdldC4KCmhhcmRha2VyICA1IEphbiA5OCAxMzoyNzozOAogICAgLSAobWliX2FwaS4zKTogY2hhbmdlICJhbGwiIHRvICJBTEwiLgoKaGFyZGFrZXIgIDUgSmFuIDk4IDEzOjI4OjAwCiAgICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IGFkZCBhIGZpbmRfbW9kdWxlKCkgcm91dGluZS4KCmhhcmRha2VyICA1IEphbiA5OCAxMzoyODoyMgogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogcHV0IGluaXRfbWliIGJhY2sgaW4gcGxhY2UgKG9wcHMpLgoKaGFyZGFrZXIgIDUgSmFuIDk4IDEzOjI4OjQyCiAgICAtIChUT0RPKTogc25tcHYzCgpoYXJkYWtlciAgNSBKYW4gOTggMTY6Mjk6MzkKICAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IGFzbjFfYnVpbGRfb2JqaWQuCgpoYXJkYWtlciAgNSBKYW4gOTggMTc6MzM6MDcKICAgIC0gKHBhcnNlLmMpOiBzd2FwIGFyZ3MgdG8gbWVyZ2VfYW5vbl9jaGlsZHJlbigpLgoKaGFyZGFrZXIgMTIgSmFuIDk4IDA5OjE0OjU0CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDogIGZpeCBhbm9uX2NoaWxkcmVuIGludmFsaWQgbWVtb3J5IGFjY2Vzcy4KCmhhcmRha2VyIDEyIEphbiA5OCAwOToxODo1MAogICAgLSAobWliX2FwaS4zLCBzbm1wX2FwaS4zKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBkb2MgdXBkYXRlIHRvIHJlZmxlY3QgbW92ZWQgaGVhZGVycy4KCmhhcmRha2VyIDEyIEphbiA5OCAwOToxOToxMAogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiBsaW5rIGRpcmVjdGx5IHRvIGxpYi4KCmhhcmRha2VyIDEyIEphbiA5OCAwOToxOTo0NwogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICAgICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsCiAgICAgIHNubXB0cmFwZC5jLCBzbm1wd2Fsay5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSByZW1vdmUgdW51c2VkIGhlYWRlcnMuCiAgICAgIC0gc25tcF9wZXJyb3IgY2hhbmdlcy4KCmhhcmRha2VyIDEyIEphbiA5OCAwOToyMTo1NgogICAgLSAoYWxhcm0uYywgYXQuYywgY29udGV4dF92YXJzLmMsIGV2ZW50LmMsIGhyX2RldmljZS5jLCBocl9maWxlc3lzLmMsCiAgICAgIGhyX3BhcnRpdGlvbi5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBpY21wLmMsCiAgICAgIGludGVyZmFjZXMuYywgaXAuYywgcHJvYy5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6CiAgICAgIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gRml4IGhlYWRlcnMgZm9yIEZyZWVCU0QgYW5kIE5ldEJTRC4KCmhhcmRha2VyIDEyIEphbiA5OCAwOTo0MDozNgogICAgLSAoRkFRLCBJTlNUQUxMLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gRG9jdW1lbnRhdGlvbiB1cGRhdGUgdG8gZml4IHBhdGhzIGZyb20gcmVjZW50IGNoYW5nZXMuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6NDE6MzgKICAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBoZWFkZXIgZml4ZXMuCiAgICAgIC0gc25tcF9wZXJyb3IgdXNhZ2UuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6NDQ6NTEKICAgIC0gKGFzbjEuYywgbWliLmMsIHNubXBfYXBpLmgsIHNubXBfaW1wbC5oLCBzeXN0ZW0uaCk6IFBhdGNoIGZyb20gTmllbHMKICAgICAgQmFnZ2VzZW46CiAgICAgIC0gaGVhZGVyIGNoYW5nZXMgYW5kIGJvb2xlYW4gY2hlY2sgY29ycmVjdGlvbnMuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6NTE6MjcKICAgIC0gKHBhcnNlLmMpOiBVbmRpZCBhbm9uLWNoaWxkcmVuIGNoYW5nZS4KCmhhcmRha2VyIDEyIEphbiA5OCAwOTo1NjoxNAogICAgLSAoa2VybmVsX3N1bm9zNS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBpbmNyZWFzZSBidWZmZXIgc2l6ZSB0byBpbmNyZWFzZSBtYXggaW50ZXJmYWNlcyByZXBvcnRlZCBvbiBTb2xhcmlzLgoKaGFyZGFrZXIgMTYgSmFuIDk4IDA5OjQ0OjU2CiAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBTaGVzaGFkcmkgWWFnYXRpOgogICAgICAtIHNpZ25hbCBhIHRyYXAgKDIpIHdoZW4gdGhlIGFnZW50IGlzIHNodXQgZG93bi4KCmhhcmRha2VyIDIxIEphbiA5OCAxMTowODozOQogICAgLSAoQ09QWUlORyk6IHVwZGF0ZS4KCmhhcmRha2VyIDIxIEphbiA5OCAxMToxMjowMQogICAgLSAoKi9NYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICAgICBjb25maWd1cmUuaW4pOgogICAgICAtIGJlZ2luIHN1cHBvcnQgZm9yIGNyZWF0aW5nIGFuZCB1c2luZyBzaGFyZWQgbGlicmFyaWVzLgogICAgICAtIGFsbCBNYWtlZmlsZXMgbm93IGluY2x1ZGUgYSBNYWtlZmlsZS50b3AgZm9yIGVhc2llciBmdXR1cmUgZ2xvYmFsIGNoYW5nZXMuCgpoYXJkYWtlciAyMSBKYW4gOTggMTE6MTI6MjIKICAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMpOgogICAgICAtIGluY2x1ZGUgc3RydWN0LmggZXhwbGljaXRseS4KCmhhcmRha2VyIDIxIEphbiA5OCAxMToxMjozNAogICAgLSAoZGlzay5jLCBlcnJvcm1pYi5jLCBleHRlbnNpYmxlLmMsIGludGVyZmFjZXMuYywgbG9hZGF2ZS5jLAogICAgICBtZW1vcnkuYywgcGFzcy5jLCBwcm9jLmMsIHN5c3RlbS5jLCB1dGlsX2Z1bmNzLmMsIHZhcl9yb3V0ZS5jLAogICAgICB2ZXJzaW9uaW5mby5jKToKICAgICAgLSBpbmNsdWRlIHN0cnVjdC5oIGV4cGxpY2l0bHkuCgpoYXJkYWtlciAyMSBKYW4gOTggMTc6MzM6MjQKICAgIC0gKE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICovTWFrZWZpbGUuaW4pOgogICAgICAtIERvIGEgYmV0dGVyIHZlcnNpb24gb2Ygc2hsaWIgc3VwcG9ydC4gIFNob3VsZCBiZSB1c2VhYmxlIG5vdyBhdCBsZWFzdC4KCmhhcmRha2VyIDIxIEphbiA5OCAyMjowNTo0NAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBjcmVhdGUgbS8gYW5kIHMvIGRpcmVjdG9yaWVzIGFuZCB1c2UgdGhlbSBmb3Igc3VwcGxlbWVudGFsIGNvbmZpZwogICAgICAgIGluY2x1ZGUgZmlsZXMgYmFzZWQgb24gdGhlIGNvbmZpZy5ndWVzcyBvdXRwdXQuCgpoYXJkYWtlciAyMyBKYW4gOTggMDg6MzA6MzUKICAgIC0gKG1lbW9yeS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBkb24ndCBjbG9zZSBmaWxlIGRlc2NyaXB0b3IgaW4gbGludXgncyBGSUxFX1RPX0JVRiBtYWNyby4KCmhhcmRha2VyIDIzIEphbiA5OCAxMToxOToxMgogICAgLSAoZ2VuZXJpYy5oLCBpMzg2LmgsIGk1ODYuaCwgaTY4Ni5oKTogbS8qLmggZmlsZSBiZWdpbm5pbmdzLgoKaGFyZGFrZXIgMjMgSmFuIDk4IDExOjE5OjMzCiAgICAtIChic2QuaCwgZ2VuZXJpYy5oLCBsaW51eC5oLCBzeXN2LmgpOiBzLyogYmVnaW5uaW5ncy4KCmhhcmRha2VyIDIzIEphbiA5OCAxNjoxMjowMgogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLAogICAgICBleHRlbnNpYmxlLmMsIHBhc3MuYyk6CiAgICAgIC0gY3JlYXRlIG5ldyBmdW5jdGlvbnM6CiAgICAgICAgLSByZWdpc3Rlcl9zdWJ0cmVlKCkKICAgICAgICAtIHJlZ2lzdGVyX21pYigpCiAgICAgICAgLSB1bnJlZ2lzdGVyX21pYigpLgogICAgICAtIGdldCByaWQgb2YgcmVhZF9jb25maWcgc3BlY2lhbCBzdHVmZiBmb3IgZXh0ZW5zaWJpbGl0eSBhbmQgcHV0IGl0CiAgICAgICAgaW4gdGhlaXIgb3duIHN1Ym1vZHVsZXMgd2hpY2ggbm93IGNhbGwgcmVnaXN0ZXJfbWliKCkuCgpoYXJkYWtlciAyMyBKYW4gOTggMTY6MTQ6MjAKICAgIC0gKHJlZ2lzdHJ5LltjaF0sIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIGNyZWF0ZSBhIG5ldyB0YWJsZSBhdCB1Y2RhdmlzLjEwMyB0byBkaXNwbGF5IHJlZ2lzdGVyZWQgbWlicy4KCmhhcmRha2VyIDIzIEphbiA5OCAxNjoxNTowNQogICAgLSAoYXQuYywgZGlzay5jLCBob3N0X3Jlcy5oLCBocl9vdGhlci5oLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICAgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1Y2Rfc25tcC5oLCB1ZHAuYywgdmVyc2lvbmluZm8uYyk6CiAgICAgIC0gI2luY2x1ZGUgInNubXBfYXBpLmgiCgpoYXJkYWtlciAyMyBKYW4gOTggMTY6MzQ6NDMKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHZhcl9zdHJ1Y3QuaCwKICAgICAgZXh0ZW5zaWJsZS5jLCBwYXNzLmMsIHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIG1ha2UgdGhlIG1pYiByZWdpc3RyeSByZWNvcmQgYW5kIGRpc3BsYXkgYSBtaWIgbW9kdWxlIG5hbWUgYXMgd2VsbC4KCmhhcmRha2VyIDMwIEphbiA5OCAwODo1Nzo1NAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB0ZXN0IGZvciAncHMgYXV4JyAocmVkaGF0IDUuMCkuCgpoYXJkYWtlciAzMCBKYW4gOTggMDk6MDE6MDYKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQsIG1lbW9yeS5jLCBtZW1vcnkuaCk6IFBhdGNoIGZyb20gTHV1ayBkZSBCb2VyOgogICAgICAtIHJlcG9ydCBjYWNoZWQsIGJ1ZmZlciwgYW5kIHNoYXJlZCBzdGF0aXN0aWNzIGZvciBsaW51eC4KCmhhcmRha2VyIDMwIEphbiA5OCAwOToyNDoxOQogICAgLSAocmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIHZhcl9zdHJ1Y3QuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gbmV3IHN1YnRyZWUgc3RydWN0dXJlIHN5c3RlbS4KCmhhcmRha2VyIDMwIEphbiA5OCAxMDo0MDoyNgogICAgLSAocGFzcy5jKTogcHV0IHBhc3NfY29tYXByZSBoZXJlLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDEwOjQxOjUzCiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHZhcl9zdHJ1Y3QuaCk6CiAgICAgIC0gbWVyZ2UgRGF2ZSdzIGNvZGUgd2l0aCBtaW5lLiAgU3RpbGwgYSBmZXcgYnVncyB0byB3b3JrIHRocm91Z2guCgpoYXJkYWtlciAzMCBKYW4gOTggMTA6NDI6MTcKICAgIC0gKHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgpOiBiZWdpbiBtdW5naW5nIGZvciBuZXcgaGllcmFyY2h5LgoKaGFyZGFrZXIgMzAgSmFuIDk4IDEwOjQzOjI4CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogY2hhbmdlIG1vZHVsZSBpbmRleGluZyB0byB1c2Ugb2lkIGluc3RlYWQgb2YgYSBudW1lcmljLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDEwOjQ5OjU5CiAgICAtIChkaXNrLmMsIGhvc3RfcmVzLmgsIHBhc3MuYywgcmVnaXN0cnkuYywgc25tcF9taWIuYywgc3lzdGVtLmMsCiAgICAgIHZlcnNpb25pbmZvLmMsIHNubXBfYXBpLmgpOgogICAgICAtIGluY2x1ZGUgbmV0aW5ldC9pbi5oIGZvciBhZGRyZXNzIHN0cnVjdHVyZS4KCmhhcmRha2VyIDMwIEphbiA5OCAxMDo1NToyMAogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlMiApCgpoYXJkYWtlciAzMCBKYW4gOTggMTM6NDk6NTYKICAgIC0gKFJFQURNRSk6IEkgY2FuJ3QgcmVhbGx5IGhhdmUgZm9yZ290dGVuIFNpbW9uJ3MgbmFtZSBpbiB0aGUgbGlzdAogICAgICBjb3VsZCBJPwoKaGFyZGFrZXIgMzAgSmFuIDk4IDEzOjUwOjI4CiAgICAtIChhY2xvY2FsLm00LCBjb25maWd1cmUpOiBkZWZpbmUgaWZuZXQgZm9yIGxpbnV4LgoKaGFyZGFrZXIgMzAgSmFuIDk4IDE0OjMxOjU4CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgaWZfc3BlZWQuCgpoYXJkYWtlciAzMCBKYW4gOTggMTQ6MzI6MTMKICAgIC0gKGludGVyZmFjZXMuYyk6IGZpbmlzaCBsaW51eCBwcm9ibGVtcyBhbmQgdXNlIGlmX3NwZWVkLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDE1OjI1OjAyCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXAuYyk6IGZpeCBkZWZhdWx0IHBvcnQgZm9yIHNubXB0cmFwLgoKaGFyZGFrZXIgIDIgRmViIDk4IDA4OjU3OjQxCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gSm9obiBIYXdraW5zb246CiAgICAgIC0gZml4IHR5cG8gaW4gY29uZmlndXJlIGZvciBzaGFyZWQgbGlicmFyeSBleHRlbnNpb24gdy9vIHNoYXJlZCBsaWJyYXJpZXMuCgpoYXJkYWtlciAgNiBGZWIgOTggMTM6Mjk6NDAKICAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMpOiBwcm90ZWN0IGFnYWluc3Qgbmxpc3QuaAoKaGFyZGFrZXIgIDYgRmViIDk4IDEzOjQ0OjQ0CiAgICAtIChocl9kaXNrLmMpOiBjbG9zZSgpIGdvdCBjYXVnaHQgaW5zaWRlIGFuIGVsc2UgaXQgc2hvdWxkbid0IGhhdmUgZHVlCiAgICAgIHRvIGFuIGlmZGVmIGVycm9yLgoKaGFyZGFrZXIgIDYgRmViIDk4IDE3OjEwOjUzCiAgICAtIChNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgICBhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaCwgYXV0b25saXN0LmgsIGtlcm5lbC5jLCBzbm1wX3ZhcnMuYywgaXAuYyk6CiAgICAgIC0gY3JlYXRlZCBhIG5ldyBhdXRvX25saXN0IGZ1bmN0aW9uIGFuZCB1c2UgaXQgaW4gaXAuYy4KCmhhcmRha2VyICA2IEZlYiA5OCAxNzoxMToyNQogICAgLSAoZ2VuZXJpYy5oLCBocHV4LmgsIGlyaXguaCwgbGludXguaCwgc29sYXJpcy5oKToKICAgICAgLSB1cGRhdGUgZm9yIGF1dG9fbmxpc3Qgc3ltYm9scy4KCmhhcmRha2VyICA5IEZlYiA5OCAxMTowMzowMgogICAgLSAoYXQuYywgZGlzay5jLCBlcnJvcm1pYi5jLCBleHRlbnNpYmxlLmMsIGhwdXguYywgaHJfcHJvYy5jLAogICAgICBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICAga2VybmVsX3N1bm9zNS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwcm9jLmMsIHRjcC5jLCB1ZHAuYywKICAgICAgdmFyX3JvdXRlLmMpOgogICAgICAtIHVzZSBhdXRvX25saXN0LgoKaGFyZGFrZXIgIDkgRmViIDk4IDExOjAzOjE3CiAgICAtIChhdXRvX25saXN0LmgpOiBwcm90b3R5cGUgd3JhcHBlci4KCmhhcmRha2VyICA5IEZlYiA5OCAxMTowMzo1NgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGNoYW5nZWQgLS13aXRoLXNoYXJlZC1saWJyYXJpZXMgdG8gLS1lbmFibGUtc2hhcmVkIHRvIG1hdGNoIG90aGVyIHBrZ3MuCiAgICAgIC0gZGlzcGxheSBhcmd1bWVudHMgZm91bmQgZm9yIC0tZW5hYmxlLXNoYXJlZC4KCmhhcmRha2VyICA5IEZlYiA5OCAxMTowNDozMQogICAgLSAoYnNkLmgsIGJzZGkuaCwgZnJlZWJzZC5oLCBmcmVlYnNkMy5oLCBnZW5lcmljLmgsIGhwdXguaCwgbmV0YnNkLmgsCiAgICAgIHNvbGFyaXMuaCk6CiAgICAgIC0gZGVmaW5lIHN5bWJvbHMgZm9yIGF1dG9fbmxpc3QgdG8gdXNlLgoKaGFyZGFrZXIgIDkgRmViIDk4IDExOjA2OjUzCiAgICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gZml4IHByb3RvdHlwZXMgb24gbXkgYnJva2VuIHRhYmxlIHdhbGtpbmcgcm91dGluZXMuCgpoYXJkYWtlciAgOSBGZWIgOTggMTE6MTc6NTIKICAgIHZlcnNpb24gdGFnICggMy40LnByZTMgKQoKaGFyZGFrZXIgIDkgRmViIDk4IDExOjE4OjQ1CiAgICAtIChjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgaW9jdGxzLmgKCmhhcmRha2VyICA5IEZlYiA5OCAxMToxODo1OQogICAgLSAoaW50ZXJmYWNlcy5jKTogIGluY2x1ZGUgaW9jdGxzLmggaWYgYXZhaWxhYmxlLgoKaGFyZGFrZXIgIDkgRmViIDk4IDExOjIwOjAwCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlKTogY2hlY2sgZm9yIGlvY3Rscy5oLgoKaGFyZGFrZXIgMTEgRmViIDk4IDA5OjE5OjMzCiAgICAtIChnZW5lcmljLmgsIGF1dG9fbmxpc3QuYywgYXQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIG1lbW9yeS5jLAogICAgICB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBmaXggYWxsIG15IHR5cG9zIDstKS4KICAgICAgLSBjcmVhdGUgYXV0b19ubGlzdF92YWx1ZSB0byByZXR1cm4gdGhlIGxvb2tlZC11cCB2YWx1ZS4KCmhhcmRha2VyIDExIEZlYiA5OCAwOToyODowOQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIHBzIGF1eCBzaG91bGQgZGVmaW5lIGF1eCBub3QgLWF1eC4KCmhhcmRha2VyIDExIEZlYiA5OCAwOToyODozMwogICAgLSAoaG9zdF9yZXMuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gZG9uJ3QgaW5jbHVkZSBjb25maWcuaAoKaGFyZGFrZXIgMTEgRmViIDk4IDA5OjI4OjQ0CiAgICAtIChocl9uZXR3b3JrLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHNvbGFyaXMgZml4ZXMuCgpoYXJkYWtlciAxMSBGZWIgOTggMDk6Mjk6MDYKICAgIC0gKHNvbGFyaXMuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gdW5kZWYgSVBfRk9SV0FSRElOR19TWU1CT0wgYmVmb3JlIGRlZmluaW5nIGl0LgoKaGFyZGFrZXIgMTEgRmViIDk4IDE2OjQ0OjEzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHNlZCBkb2Vzbid0IGxpa2UgW2Etel0rIHR5cGUgZXhwcmVzc2lvbnMuCgpoYXJkYWtlciAxMyBGZWIgOTggMDk6MDc6MzEKICAgIC0gKEZBUSk6IHR5cG86IGF1dGh0cmFwc2VuYWJsZSAtPiBhdXRodHJhcGVuYWJsZS4KCmhhcmRha2VyIDE3IEZlYiA5OCAwOTo1MDo0MwogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgIC0gdXNlIHNubXBfaXBhZGRyIGluc3RlYWQgb2YgaXBhZGRyIHRvIGF2b2lkIGhwdXggY29uZmxpY3RzLgoKaGFyZGFrZXIgMTcgRmViIDk4IDA5OjUzOjEyCiAgICAtIChhdXRvX25saXN0LmMsIGF1dG9ubGlzdC5oLCBzbm1wX3ZhcnMuYyk6CiAgICAgIC0gdXNlIGFwcHJvcHJpYXRlIG1hbGxvY3MsIGFuZCBOVUxMIGluaXRpYWxpemF0aW9uIG9mIHBvaW50ZXJzLgogICAgICAtIG1hbGxvYyB0aGUgc3ltYm9sIHJhdGhlciB0aGFuIHVzaW5nIGEgZml4ZWQgbGVuZ3RoLgogICAgICAtIGluc2VydCBkZWJ1Z2dpbmcgY29kZS4KICAgICAgLSBlbmFibGUgcHJpbnRpbmcgb2YgdGhlIG5saXN0IHRyZWUgaWYgVEVTVElORyBpcyBkZWZpbmVkLgoKaGFyZGFrZXIgMTcgRmViIDk4IDA5OjU0OjAxCiAgICAtICh0Y3AuYywgdWRwLmMpOgogICAgICAtIG5saXN0IHN5bWJvbCBuYW1lIGVycm9ycy4KCmhhcmRha2VyIDE4IEZlYiA5OCAwODowNjowMAogICAgLSAoRVhBTVBMRS5jb25mLmRlZiwgdm1zdGF0LmMsIHZtc3RhdC5oLCB1Y2Rfc25tcC5oLAogICAgICBVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBMdXVrIGRlIEJvZXI6CiAgICAgIC0gaW1wbG1lbnQgYSB2bXN0YXQgbWliIGdyb3VwIG9uIGxpbnV4LgoKaGFyZGFrZXIgMTggRmViIDk4IDA4OjE1OjU2CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAgLSBjaGVjayBmb3Igc3lzL3N5c21wLmguCgpoYXJkYWtlciAxOCBGZWIgOTggMDg6MTY6MjEKICAgIC0gKGF1dG9fbmxpc3QuYyk6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuOgogICAgICAtIGZpeCBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQgKG1pc3NpbmcgYSB2YXJpYWJsZSkuCgpoYXJkYWtlciAxOCBGZWIgOTggMDg6MTg6MDUKICAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMsIGlyaXguaCk6CiAgICAgIFBhdGNoIGZyb20gU2ltb24gTGVpbmVuOgogICAgICAtIHBvcnQgdG8gaXJpeC4KCmhhcmRha2VyIDE4IEZlYiA5OCAxMTo0NToyMAogICAgLSAoc2Vkc2NyaXB0LmluKTogZGVmaW5lIExJQkRJUiBhbmQgREFUQURJUi4KCmhhcmRha2VyIDE4IEZlYiA5OCAxMTo0Njo0OAogICAgLSAoc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYpOiBjaGFuZ2UgdG8gREFUQURJUiBmcm9tIExJQkRJUi4KCmhhcmRha2VyIDE4IEZlYiA5OCAxMzozMTowNwogICAgLSAoZGlzay5oLCBleHRlbnNpYmxlLmgsIGxvYWRhdmUuaCwgcHJvYy5oLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSB0dXJuIHRoZXNlIG1pYnMgaW50byByZWFsIHRhYmxlcy4gIFJlcXVpcmVkIGNoYW5naW5nIHRoZSBtaWIgdGhvdWdoLgoKaGFyZGFrZXIgMTggRmViIDk4IDEzOjM0OjU1CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogYXV0aHRyYXBzZW5hYmxlIC0+IGF1dGh0cmFwZW5hYmxlLgoKaGFyZGFrZXIgMTggRmViIDk4IDEzOjQ0OjEzCiAgICAtIChhdC5jLCBleGFtcGxlLmMsIGhwdXguYywgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLAogICAgICBocl9uZXR3b3JrLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywKICAgICAgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICAgcGFzcy5jLCByZWdpc3RyeS5jLCBzbXV4LmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsCiAgICAgIHZhcl9yb3V0ZS5jLCB3b21iYXQuYyk6CiAgICAgIC0gYWxsIGJjb3B5cyAtPiBtZW1jcHkuCiAgICAgIC0gaW5jbHVkZSBhIGZldyBleHRyYSBoZWFkZXJzIGZvciBERUJVR1Agc3RhdGVtZW50cy4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNDoyNTo1MwogICAgLSAoYWNsX3ZhcnMuYywgYXQuYywgY29udGV4dF92YXJzLmMsIGRpc2suYywgaG9zdF9yZXMuaCwgaHJfZGlzay5jLAogICAgICBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3V0aWxzLmMsCiAgICAgIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmgsIGlwLmMsIG1lbW9yeS5jLCBtaWJpbmNsLmgsCiAgICAgIHBhcnR5X3ZhcnMuYywgcGFzcy5jLCBwcm9jLmMsIHJlZ2lzdHJ5LmMsIHNtdXguYywgc25tcF9taWIuYywKICAgICAgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHZlcnNpb25pbmZvLmMsIHZpZXdfdmFycy5jLAogICAgICB2bXN0YXQuYyk6CiAgICAgIC0gbWFzc2l2ZSAtV2FsbCBhbmQgLS1zdHJpY3QtcHJvdG90eXBlcyBjaGVja2luZy4KICAgICAgLSBiemVybyAtPiBtZW1zZXQuCgpoYXJkYWtlciAxOCBGZWIgOTggMTQ6MzI6MDUKICAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jKToKICAgICAgLSBwcm90b3R5cGluZyBhbmQgLS1XYWxsIGNoZWNrcy4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNDozMjozOAogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IHByb3RvdHlwaW5nIGNoZWNrcy4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNjoyODo1MQogICAgLSAob3BlbmJzZC5oKTogY3JlYXRlZC4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNjoyOTo1OAogICAgLSAoYWNjb25maWcuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gcmVtb3ZlZCB1bm5lZWRlZCBzdHVmZi4KICAgICAgLSBhZGRlZCBvcGVuYnNkLgoKaGFyZGFrZXIgMTggRmViIDk4IDE2OjMwOjQ3CiAgICAtIChhdC5jLCBwcm9jLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIGJzZC5oLCBic2RpLmgsIGZyZWVic2QuaCwKICAgICAgZ2VuZXJpYy5oLCBocHV4LmgsIG5ldGJzZC5oKToKICAgICAgLSB0cmllZCB0byBtZXJnZSBzb21lIHRoaW5ncyBpbnRvIHMvKi5oIGRlZmluZXMgaW5zdGVhZC4gIFRoZXJlIGlzIGEKICAgICAgICBsb3QgdG8gZ28gc3RpbGwuCgpoYXJkYWtlciAxOCBGZWIgOTggMTY6MzM6MTQKICAgIC0gKGNvbmZpZy5oLmluKTogb3BlbmJzZCBkZWZpbmVzLgoKaGFyZGFrZXIgMTggRmViIDk4IDE2OjMzOjQzCiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAxOCBGZWIgOTggMTY6NTE6MTgKICAgIHZlcnNpb24gdGFnICggMy40LnByZTQgKQoKaGFyZGFrZXIgMjAgRmViIDk4IDA5OjE5OjAwCiAgICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAgLSBmaXggaW5jbHVkZSBmaWxlIGRlcGVuZGFuY2llcyBvbiBpcml4IHdpdGggX0tFUk5FTCBkZWZpbmVkLgoKaGFyZGFrZXIgMjAgRmViIDk4IDExOjE1OjE0CiAgICAtICgqL01ha2VmaWxlLmluKTogZml4IG1ha2UgZGVwZW5kIHRvIGxvb2sgZm9yIGFuZCBzdHJpcCAvdXNyL2xpYi8qLgoKaGFyZGFrZXIgMjUgRmViIDk4IDA3OjI3OjA5CiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggcmVhZF9jb25maWcgcGFyc2VyJ3MgZW5kIG9mIGxpbmUgcHJvYmxlbXMuCgpoYXJkYWtlciAgNCBNYXIgOTggMTU6NDk6MzIKICAgIC0gKENPUFlJTkcpOiBkb2N1bWVudGF0aW9uIHJlcXVpcmVtZW50IGNoYW5nZS4KCmhhcmRha2VyICA2IE1hciA5OCAxNDowMTo1MgogICAgLSAoTWFrZWZpbGUuaW4sIGtlcm5lbC5jLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX2FnZW50LmMsCiAgICAgIHNubXBfdmFycy5jLCBzbm1wZC5jLCBhY2xfdmFycy5jLCBhbGFybS5jLCBjb250ZXh0X3ZhcnMuYywgZGlzay5jLAogICAgICBldmVudC5jLCBleHRlbnNpYmxlLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCBtaWJpbmNsLmgsCiAgICAgIHBhcnR5X3ZhcnMuYywgcGFzcy5jLCBwcm9jLmMsIHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgsIHJvdXRlX3dyaXRlLmMsCiAgICAgIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCwKICAgICAgdmFyX3JvdXRlLmMsIHZlcnNpb25pbmZvLmMsIHZpZXdfdmFycy5jLCBzbm1wX3BhcnNlX2FyZ3MuYywKICAgICAgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsCiAgICAgIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jLAogICAgICBpZi5jLCBpbmV0LmMsIHJvdXRlLmMsIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0YWJsZS4xLCAuaW5kZXgsCiAgICAgIE1ha2VmaWxlLmluLCBTTk1QLUZSQU1FV09SSy1NSUIudHh0LCBTTk1QLU1QRC1NSUIudHh0LAogICAgICBTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBTTk1QLVBST1hZLU1JQi50eHQsIFNOTVAtVEFSR0VULU1JQi50eHQsCiAgICAgIFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0LCBTTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQsCiAgICAgIE1ha2VmaWxlLmluLCBhY2wuaCwgYWNsX3BhcnNlLmMsIGFzbjEuYywgY29udGV4dC5oLCBjb250ZXh0X3BhcnNlLmMsCiAgICAgIG1pYi5jLCBwYXJ0eS5oLCBwYXJ0eV9wYXJzZS5jLCBzbm1wLmMsIHNubXAuaCwgc25tcF9hcGkuYywKICAgICAgc25tcF9hdXRoLmMsIHNubXBfY2xpZW50LmMsIHNubXBfaW1wbC5oLCBzeXN0ZW0uYywgdmFjbS5jLCB2YWNtLmgsCiAgICAgIHZpZXcuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gSW1wbGVtZW50IHRoZSBTTk1QdjMgVmlldyBCYXNlZCBBY2Nlc3MgQ29udHJvbCBNb2RlbCAoUkZDIDIyNzUpLgogICAgICAtIGhlYWRlciBmaXhlcy4KICAgICAgLSBiZXR0ZXIgaGVhZGVyLWZpbGUgI2RlZmluZSBuYW1lcyB0byBpbmNsdWRlIFNOTVBfLCBBU05fLCBldGMuIHByZWZpeGVzLgoKaGFyZGFrZXIgIDYgTWFyIDk4IDE1OjQ3OjAxCiAgICAtICh1dGlsX2Z1bmNzLmMpOgogICAgICAtIHJlbW92ZSBHTE9CQUwtU0VDVVJJVFkgY2hlY2tzLgoKaGFyZGFrZXIgIDYgTWFyIDk4IDE1OjQ3OjE5CiAgICAtIChtaWJJSS5oKTogYWRkIHZhY21fdmFycy4KCmhhcmRha2VyICA2IE1hciA5OCAxNTo0Nzo0MAogICAgLSAoaG9zdF9yZXMuaCk6IG1vdmUgc25tcF9hcGkuaCB1cCBhYm92ZSBzbm1wX2ltcGwuaC4KCmhhcmRha2VyICA2IE1hciA5OCAxNTo0ODozMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSByZW1vdmUgc2VjdXJpdHkgdHlwZSBwcm9tcHRzLgoKaGFyZGFrZXIgIDkgTWFyIDk4IDE3OjQwOjA0CiAgICAtIChtaWJJSS5jLCBtaWJJSS5oLCBzeXNPUlRhYmxlLmMsIHN5c09SVGFibGUuaCwgc3lzdGVtLmMsIHYycGFydHkuYywKICAgICAgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oKToKICAgICAgLSBpbXBsZW1lbnQgc3lzT1JUYWJsZS4KICAgICAgLSByZWdpc3RlciBtaWJzIHVuZGVyIGl0LgoKaGFyZGFrZXIgMTEgTWFyIDk4IDA4OjA2OjE3CiAgICAtICgqLyovKi8qKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggYXV0b19ubGlzdCBvbiBwcmVjZWVkaW5nIF8gYXJjaGl0ZWN0dXJlcy4KICAgICAgLSBDaGFuZ2UgKmFsbCogZGVmaW5lIHVzYWdlIHRvIG5ldyBTTk1QXyBhbmQgQVNOXyBwcmVmaXhlcy4KICAgICAgLSBsZWF2ZSBtaWIgYWNjZXNzIG9wZW4gaWYgbm8gY29tMnNlYyBzdGF0ZW1lbnRzIHdlcmUgZm91bmQgaW4gc25tcGQuY29uZi4KCmhhcmRha2VyIDExIE1hciA5OCAwOTo0MDo0MgogICAgLSAoaHB1eC5oLCBocl9maWxlc3lzLmgsIG1lbW9yeS5oLCBzbm1wX2JncC5oLCBzbm1wX29zcGYuaCwKICAgICAgc25tcF9yaXAyLmgsIHN5c09SVGFibGUuaCwgdm1zdGF0LmgpOgogICAgICAtIGZpbmlzaCBjb252ZXJ0aW5nIGEgZmV3IG9mIHRoZSBmaWxlcyB0aGF0IE5pZWxzIG1pc3NlZC4KCmhhcmRha2VyIDExIE1hciA5OCAxMDozMDo1MAogICAgLSAoc3lzT1JUYWJsZS5jLCBzeXNPUlRhYmxlLmgsIHN5c3RlbS5jLCBzeXN0ZW0uaCk6CiAgICAgIC0gZml4IHRpbWUgdmFsdWVzIGFuZCBtb3ZlIHN5c09STGFzdENoYW5nZWQgdG8gdGhlIHN5c3RlbSBncm91cC4KCmhhcmRha2VyIDExIE1hciA5OCAxMjoxNDowOQogICAgLSAoKik6IFBhdGNoIGZyb20gQ3JhaWcgQmV2aW5zIGZvciBPcGVuQlNECgpoYXJkYWtlciAxMSBNYXIgOTggMTI6Mjc6MDEKICAgIC0gKGludGVyZmFjZXMuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgdmFyX3JvdXRlLmgpOiBQYXRjaCBmcm9tCiAgICAgIENyYWlnIEJldmluczoKICAgICAgLSBwb3J0IHRvIE9wZW5CU0QuCgpoYXJkYWtlciAxMSBNYXIgOTggMTI6NDU6NDYKICAgIC0gKCopOiBwYXRjaCBmcm9tIEdhcnJldHQgV29sbG1hbiBmb3IgRnJlZUJTRC4KCmhhcmRha2VyIDExIE1hciA5OCAxMjo1NjozNwogICAgLSAoYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpY21wLmMsCiAgICAgIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6IFBhdGNoIGZyb20gR2FycmV0dAogICAgICBXb2xsbWFuOgogICAgICAtIGZyZWVic2QgMyBzeXNjdGwgaW1wbGVtZW50YXRpb25zLgoKaGFyZGFrZXIgMTEgTWFyIDk4IDE0OjQxOjExCiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICAgICBob3N0X3Jlcy5oLCBocl9kZXZpY2UuYywgaHJfZGV2aWNlLmgsIGhyX2Rpc2suYywgaHJfZGlzay5oLAogICAgICBocl9maWxlc3lzLmMsIGhyX2ZpbGVzeXMuaCwgaHJfbmV0d29yay5jLCBocl9uZXR3b3JrLmgsIGhyX290aGVyLmMsCiAgICAgIGhyX3BhcnRpdGlvbi5jLCBocl9wYXJ0aXRpb24uaCwgaHJfcHJpbnQuYywgaHJfcHJpbnQuaCwgaHJfcHJvYy5jLAogICAgICBocl9wcm9jLmgsIGhyX3N0b3JhZ2UuYywgaHJfc3RvcmFnZS5oLCBocl9zd2luc3QuYywgaHJfc3dpbnN0LmgsCiAgICAgIGhyX3N3cnVuLmMsIGhyX3N3cnVuLmgsIGhyX3N5c3RlbS5jLCBocl9zeXN0ZW0uaCwgaW50ZXJmYWNlcy5jLAogICAgICBpcC5jLCBtaWJJSS5jLCBtaWJJSS5oLCBzeXNPUlRhYmxlLmMsIHYycGFydHkuYywgdjJwYXJ0eS5oLAogICAgICB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOgogICAgICAtIG1hc3NpdmUgcHJvdG90eXBpbmcgYW5kIC0tV2FsbCBmaXhlcy4KICAgICAgLSBmaXhlZCB0aGluZ3MgYnJva2VuIGJ5IHRoZSBmcmVlYnNkIHBhdGNoIChvbmx5IHNvbWUgSSdtIHN1cmUpLgoKaGFyZGFrZXIgMTEgTWFyIDk4IDE1OjQyOjM1CiAgICAtIChhdXRvX25saXN0LmMpOiBiZXR0ZXIgZGVidWdnaW5nIHByaW50ZnMKCmhhcmRha2VyIDExIE1hciA5OCAxNTo0NToyMgogICAgLSAoaHB1eC5oKTogc3dpdGNoIGluY29ycmVjdCBhcnB0YWIgc3ltYm9scy4KCmhhcmRha2VyIDExIE1hciA5OCAxNTo1NjoxMwogICAgLSAoUkVBRE1FKTogbmFtZSB1cGRhdGUuCgpoYXJkYWtlciAxMSBNYXIgOTggMTU6NTc6MTYKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBkZXBlbmQgdXBkYXRlLgoKaGFyZGFrZXIgMTEgTWFyIDk4IDE3OjA1OjQxCiAgICAtIChzeXN0ZW0uYyk6IGRvbid0IGNob21wIG5ldyBsaW5lIG9uIHJlYWRfY29uZmlnIHV0aWxzLgoKaGFyZGFrZXIgMTggTWFyIDk4IDA5OjE3OjQyCiAgICAtIChSRUFETUUpOiBjaGFuZ2VkIE9WIHBhdGgncyB0byBuZXdlciByZWxlYXNlIHBhdGhzLgoKaGFyZGFrZXIgMTggTWFyIDk4IDEzOjEwOjM1CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc2Vkc2NyaXB0LmluLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSByZS1udW1iZXJpbmcgb2YgdGhlIG5ldyB0YWJsZSBtb2R1bGVzLgoKaGFyZGFrZXIgMTggTWFyIDk4IDEzOjI2OjIyCiAgICAtIChleHRlbnNpYmxlLmMsIG1lbW9yeS5jLCBwYXNzLmMsIHByb2MuYywgdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgpOgogICAgICAtIHdhaXQgZm9yIHBpZCBhZnRlciBnZXRfZXhlY19vdXRwdXQoKSB3aXRoIG5ldyB3YWl0X29uX2V4ZWMoKSBmdW5jdGlvbi4KCmhhcmRha2VyIDE4IE1hciA5OCAxMzo1NjoxNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCByZWFkX2NvbmZpZy5jLAogICAgICBzbm1wZC5jLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXBkLmMsIG1haW4uYywgbWliX2FwaS4zLAogICAgICBjb25maWcuaCk6CiAgICAgIC0gU05NUExJQlBBVEggLT4gU05NUFNIQVJFUEFUSAogICAgICAtIGEgcmVhbCBTTk1QTElCUEFUSAogICAgICAtIG1ha2UgdGhlIGFnZW50IHJlYWQgLmNvbmYgZmlsZXMgZnJvbSBTTk1QU0hBUkVQQVRIOlNOTVBMSUJQQVRILgoKaGFyZGFrZXIgMTggTWFyIDk4IDE0OjA5OjMxCiAgICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU1ICkKCmhhcmRha2VyIDIyIE1hciA5OCAxODoxMzo0MQogICAgLSAocGFzcy5jLCBwcm9jLmMsIHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZToKICAgICAgLSBtb3ZlIHN5cy90eXBlcy5oIHVwIGZvciB1bHRyaXguCgpoYXJkYWtlciAyNSBNYXIgOTggMDk6MTU6NDUKICAgIC0gKHRjcC5jKTogaW5jbHVkZSB0Y3BpcC5oIGZvciBkaWdpdGFsIHVuaXguCgpoYXJkYWtlciAyNSBNYXIgOTggMTA6Mzk6MTMKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCByZWdpc3RyeS5jLCByZWdpc3RyeS5oKToKICAgICAgLSBmaXggdGhlIHJlZ2lzdHJ5IG1pYiB0byB1c2UgdGhlIG5ldyBtb2R1bGUgc3RydWN0dXJlLgogICAgICAtIGNyZWF0ZSBhIHdvcmtpbmcgZmluZF9zdWJ0cmVlKCkgYW5kIGZpbmRfc3VidHJlZV9uZXh0KCkuCgpoYXJkYWtlciAyNSBNYXIgOTggMTA6Mzk6NTAKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogc2ltcGx5IGRvbid0IGRlZmluZSBDQU5fVVNFX05MSVNUIG9uIGxpbnV4LgoKaGFyZGFrZXIgMjUgTWFyIDk4IDEwOjQ0OjA2CiAgICAtIChzbm1wZC5jLCBzbm1wX2FwaS5jKTogU3BlbGxpbmcgZXJyb3JzIGZyb20gdGhlIENNVSBjb2RlIGZpeGVkLgoKaGFyZGFrZXIgMjUgTWFyIDk4IDEwOjQ2OjM2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgbGludXguaCk6IG5ldyBkZWZpbmU6IERPTlRfVVNFX05MSVNULgoKaGFyZGFrZXIgMjUgTWFyIDk4IDEwOjU5OjIwCiAgICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIEFkZCBhbiAmIHRvIGFycGNvbS5hY19lbmFkZHIgaW4gbWVtc2V0LgoKaGFyZGFrZXIgMjUgTWFyIDk4IDEyOjQ4OjMwCiAgICAtIChNYWtlZmlsZS5pbiwgaW50NjQuYywgaW50NjQuaCwgbWliLmMpOiBDb2RlIGZyb20gRGF2aWQgVC4gUGVya2luczoKICAgICAgLSBpbnRlZ3JhdGVkIERhdmlkJ3MgY29kZSB0byBwcmludCBjb3VudGVyNjRzIGFzIGludGVnZXJzIHJhdGhlciB0aGFuIGhleC4KCmhhcmRha2VyIDI1IE1hciA5OCAxMzowNzowMAogICAgLSAodjJwYXJ0eS5jLCBtaWJJSS5jLCB2YWNtX3ZhcnMuYyk6IGRlY2xhaXIgcmVnaXN0cmF0aW9uIHZhcmlhYmxlcyBzdGF0aWNseS4KCmhhcmRha2VyIDI1IE1hciA5OCAxNjo0OTo1NgogICAgLSAoaHB1eC5jKTogZml4IHdyaXRlX21ldGhvZCBkZWNsYXJhdGlvbi4KCmhhcmRha2VyIDI2IE1hciA5OCAwNzoyMjozMAogICAgLSAoKi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBtaXNjIHBvcnRpbmcgaW1wcm92ZW1lbnRzICh0aGUgYnNkIGdyb3Vwcywgc3Vub3MsIC4uLikuCiAgICAgIC0gc3dpdGNoIGF1dG9fbmxpc3RzIGNhbGxpbmcgb3JkZXIgb2YgXyB2cyBub24gXyBsb29rdXBzLgogICAgICAtIHJldmVyc2UgYWxsIHN0cmluZy5oL3N0cmluZ3MuaCBpbmNsdWRlIHBvc3NpYmlsaXRpZXMuCgpoYXJkYWtlciAyNyBNYXIgOTggMDk6MjA6MDQKICAgIC0gKHNubXB0cmFwZC5jKToKICAgICAgLSBCZXRhIHZlcnNpb24gb2YgYW4gZXh0ZW5zaWJsZSB0cmFwIGRlbW9uLgogICAgICAgIC0gLUMgJ2NvbW1hbmQnIG9uIHRoZSBjb21tYW5kIGxpbmUgcnVucyB0aGUgY29tbWFuZCBhbmQgZmVlZHMgaXQKICAgICAgICAgIHN0ZGluIGluZm9ybWF0aW9uIGFib3V0IHRoZSB0cmFwLgogICAgICAgIC0gdjEgdHJhcHMgYXJlIGNvbnZlcnRlZCB0byB2MiB0cmFwcyBmb3IgY29uc2lzdGFuY3kgb2YKICAgICAgICAgIGluZm9ybWF0aW9uIHNlbnQgdG8gdGhlIHNjcmlwdHMuCgpoYXJkYWtlciAyNyBNYXIgOTggMTE6MjA6MjEKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgICAtIGNyZWF0ZSBjb25maWdfcHdhcm4oKSB0aGF0IGRvZXNuJ3QgaW5jcmVhc2UgdGhlIGVycm9yIGNvdW50IHRvCiAgICAgICAgcHJldmVudCBleGl0aW5nLiAgVXNlZCBmb3IgZGlza3MsIHNpbmNlIHNvbWUgbWlnaHQgYnkgcHJvY2VzcyBvcgogICAgICAgIG5mcyBtb3VudGVkLgoKaGFyZGFrZXIgMjcgTWFyIDk4IDExOjIwOjU0CiAgICAtIChkaXNrLmMpOiB1c2UgY29uZmlnX3B3YXJuKCkgZm9yIG1pc3NpbmcgZGlza3MuCgpoYXJkYWtlciAyNyBNYXIgOTggMTE6MjI6MzUKICAgIC0gKGhyX2RldmljZS5jKTogY2hlY2sgZGV2aWNlIGluZGV4IGFnYWluc3QgbWF4aW11bSAoc2VnZmF1bHQgb24gSFBVWCkuCgpoYXJkYWtlciAyNyBNYXIgOTggMTY6MTA6MDUKICAgIC0gKFJFQURNRSwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wZC5jKTogUGF0Y2ggZnJvbQogICAgICBBcnRodXIgSHl1bjoKICAgICAgLSB0Y3B3cmFwcGVycyBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgTWFyIDk4IDE2OjIzOjAzCiAgICAtIChpbnRlcmZhY2VzLmMpOiBJbnRlcmZhY2VzX1NjYW5fTmV4dCBuZWVkZWQgYSA0dGggKE5VTEwpIGFyZ3VtZW50LgoKaGFyZGFrZXIgMjcgTWFyIDk4IDE2OjIzOjMzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBkLmMpOgogICAgICAtIGNvcnJlY3RseSAjaWZkZWYgb3V0IHRoZSB0Y3B3cmFwcGVycyBwYXRjaC4KCmhhcmRha2VyIDI3IE1hciA5OCAxNjo0MjoxMwogICAgLSAoSU5TVEFMTCk6IGRvY3VtZW50IGxpYndyYXAuCgpoYXJkYWtlciAyNyBNYXIgOTggMTY6NDM6MDYKICAgIC0gKHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwgaW50ZXJmYWNlcy5jLCBpcC5jLCByZWdpc3RyeS5jKToKICAgICAgLSBwcm90b3R5cGluZyBhbmQgLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAgMSBBcHIgOTggMDk6NTI6MzIKICAgIC0gKHNubXBfY2xpZW50LmMpOiBlbnRlcnByaXNlX2xlbmd0aCBpcyBzaXplb2Yob2lkKSBkZXBlbmRlbnQuCgpoYXJkYWtlciAgMSBBcHIgOTggMTM6Mjc6MDcKICAgIC0gKGF1dG9fbmxpc3QuYyk6CiAgICAgIC0gcmVtb3ZlIG5vIGxvbmdlciBuZWVkZWQgZGVidWdnaW5nIHN0YXRlbWVudHMgb2YgdHJlZSB0cmF2ZXJzYWwuCgpoYXJkYWtlciAgMSBBcHIgOTggMTM6MzE6MjkKICAgIC0gKE5FV1MsIFBPUlRJTkcpOiB1cGRhdGVzIGZvciAzLjQuCgpoYXJkYWtlciAgMSBBcHIgOTggMTM6NDc6NTUKICAgIC0gKEZBUSwgUkVBRE1FKTogbW9yZSAzLjQgdXBkYXRlcy4KCmhhcmRha2VyICAxIEFwciA5OCAxMzo1MzoyNwogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGFkZGVkIHZhY20gZXhhbXBsZSBjb25maWd1cmF0aW9uLgoKaGFyZGFrZXIgIDEgQXByIDk4IDEzOjU0OjExCiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogbW92ZWQgdGhlIHZpZXcgZXhhbXBsZSBzZWN0aW9uIGFib3ZlIHRoZSBhY2Nlc3Mgc2VjdGlvbi4KCmhhcmRha2VyICAxIEFwciA5OCAxNDoxMDowNwogICAgLSAoVE9ETyk6IHJlbW92ZWQgYSBmZXcgdGhpbmdzIQoKaGFyZGFrZXIgIDEgQXByIDk4IDE0OjExOjQ5CiAgICAtIChNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgIDEgQXByIDk4IDE0OjQwOjQ0CiAgICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgpOiBtYWtlIHVucmVnZXN0ZXJpbmcgb2YgbWlicyB3b3JrLgogICAgICAtIChpbiBtb3N0IGNhc2VzIDotPykKCmhhcmRha2VyICAxIEFwciA5OCAxNDo0MzoxNAogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNiApCgpoYXJkYWtlciAgMSBBcHIgOTggMTY6MzU6NTkKICAgIC0gKHNubXB0cmFwZC5jKTogYWx3YXlzIHNlbmQgZW50ZXJwcmlzZSBhbmQgdHJhcG9pZCB0byBzY3JpcHRzLgoKaGFyZGFrZXIgMjAgQXByIDk4IDEwOjMxOjA4CiAgICAtIChzbm1wZC5jKTogY2hhbmdlIG9pZCBmcm9tIHRleHR1YWwgdG8gbnVtZXJpYyB0byBhbGxvdyBub3cgbWlicyB0bwogICAgICBiZSBsb2FkZWQuCgpoYXJkYWtlciAyMCBBcHIgOTggMTU6NTQ6MjkKICAgIC0gKGhvc3RfcmVzLmgsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYywgaHJfc3RvcmFnZS5jKToKICAgICAgLSBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAgIC0gY29uc29saWRhdGUgdGhlIHN5c3RlbS1zcGVjaWZpYyBzdHVmZiBhIGJpdCAoc2hvdWxkIG1ha2UgaXQgZWFzaWVyCiAgICAgICAgICB0byBmb2xsb3cpCiAgICAgICAgLSBSZS1zdHJ1Y3R1cmVzIHRoZSBEaXNrIHNlYXJjaGluZywgaW4gc3VjaCBhIHdheSB0aGF0IGl0IGNhbiBzZXQgdXAKICAgICAgICAgIHZpYSB0aGUgY29uZmlnIGZpbGUuICh3aGljaCBJIHN0aWxsIG5lZWQgdG8gZG8pCiAgICAgICAgLSBTcGVlZCB1cCBkaXNrIHNlYXJjaGluZyAoYnkgY2FjaGluZyBpbnZhbGlkIHJlc3VsdHMgLSBhICptYWpvciogd2luISkKICAgICAgICAtIEhhbmRsZSBwYXJ0aXRpb25zIHNlbnNpYmx5IChhcnRoZXIgdGhhbiBvbmUgcGVyIGRpc2spCiAgICAgICAgLSBJbXByb3ZlIFNvbGFyaXMgc3VwcG9ydCBmb3IgdGhlIERldmljZSBncm91cAoKaGFyZGFrZXIgMjAgQXByIDk4IDE1OjU2OjUwCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3Igc3lzL2RraW8uaAoKaGFyZGFrZXIgMjAgQXByIDk4IDE1OjU5OjEyCiAgICAtIChocl9maWxlc3lzLmMsIGhyX3N3cnVuLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCBzb21lIGhvc3QgcmVzb3VyY2VzIGZvciBzb2xhcmlzLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjAwOjM2CiAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBhcHByb3ByaWF0ZSB1c2Ugb2Ygc3RyZHVwIGR1cmluZyBzdGFydHVwIGFuZCBiZXR0ZXIgZmxhZyBjaGVja2luZy4KCmhhcmRha2VyIDIwIEFwciA5OCAxNjowMDo1NgogICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBoZWFkZXIgbW92ZXMuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDI6MTIKICAgIC0gKGlwLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHRlc3Qgc3ltYm9sIGRlZmluZXMgYW5kIGNsZWFudXAuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDM6MDMKICAgIC0gKHNubXB0YWJsZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBwcm90b3R5cGluZyBhbmQgb3RoZXIgY2xlYW51cHMuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDU6MDAKICAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBnZXRob3N0YnlhZGRyIG1vdmVzIHVwLgogICAgICAtIGluY2x1ZGUgc3lzL3dhaXQuaC4KICAgICAgLSBzeXNsb2cgJWQgLT4gJWxkIGZvciBsb25nIHNwZWNpZmljX3R5cGUuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDU6MzQKICAgIC0gKHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSB0eXBlY2FzdCBhIHBvaW50ZXIuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDY6MDMKICAgIC0gKHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtICNpZmRlZiBjaGVja3Mgb24gc3ltYm9scyBhbmQgaGVhZGVyIG1vdmVtZW50LgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjA2OjIxCiAgICAtIChzb2xhcmlzLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHVuZGVmaW5lIGEgYnVuY2ggb2Ygbmxpc3Qgc3ltYm9scy4KCmhhcmRha2VyIDIwIEFwciA5OCAxNjowNzoxMAogICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbmVlZGVkIHBvaW50ZXIgY29waWVzLgoKaGFyZGFrZXIgMjIgQXByIDk4IDA3OjQ5OjIxCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogY2hhbmdlZCB3b3JkaW5nLCBjbGVhbmVkIHVwIGEgYml0LgoKaGFyZGFrZXIgMjIgQXByIDk4IDA4OjM1OjI5CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBwYXJzZSBCSVRTIGtleXdvcmRzLgoKaGFyZGFrZXIgMjQgQXByIDk4IDEwOjAwOjA2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IG1pYiBvaWQgbG9jYXRpb24gdXBkYXRlcyBmb3IgdWNkLXNubXAgbWliLgoKaGFyZGFrZXIgMjQgQXByIDk4IDEwOjAyOjI5CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSByZW5hbWVkIGxhYmVscyB0byBiZSB1bmlxdWUgZnJvbSB0aGUgb2xkIGRlZmluaXRpb25zLgogICAgICAtIHJlbnVtYmVyZWQgYWdhaW4uCiAgICAgIC0gY29tbWVudGVkIG9uIHRoZSBkZXNnaW4gb2YgdGhlIG1pYiBhdCB0aGUgdG9wLgogICAgICAtIENoYW5nZWQgYmFjayB0byBTTUl2MS4KICAgICAgLSByZW1vdmVkIGxvY2tkIHNlY3Rpb24uCiAgICAgIC0gcmVtb3ZlZCB2bXN0YXQgc2VjdGlvbiB0aWxsIGl0IGdldHMgaW1wbGVtZW50ZWQuCiAgICAgIC0gcmVtb3ZlZCBzZXF1ZW5jZXMgb2Ygc2NhbGVycy4KCmhhcmRha2VyIDI0IEFwciA5OCAxMDoyMjowMAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHRoZSB0ZXh0dWFsIGRlc2NyaXB0aW9ucyB3ZXJlIHVwZGF0ZWQgc29tZS4KCmhhcmRha2VyIDI0IEFwciA5OCAxNDowMzoyNgogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1vcmUgY2xlYW5pbmcgYW5kIHJlbmFtaW5nLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE0OjMyOjEyCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGNoZWNrIHN0YXR2ZnMuaCBmb3IgZl9iYXZhaWwuCgpoYXJkYWtlciAyNCBBcHIgOTggMTQ6MzM6MDgKICAgIC0gKGhyX2ZpbGVzeXMuYyk6IGluY2x1ZGUgc3lzL3BhcmFtLmggdG8gZGVmaW5lIE1BWFBBVEhMRU4uCgpoYXJkYWtlciAyNCBBcHIgOTggMTQ6MzM6MjQKICAgIC0gKGhyX3BhcnRpdGlvbi5jKTogY2xvc2UgZmlsZSBkZXNjcmlwdG9yIGp1c3Qgb3BlbmVkLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE0OjMzOjU4CiAgICAtIChkaXNrLmMpOiBjYWxjdWxhdGUgdmZzIGJsb2NrIHNpemUgaWYgcG9zc2libGUgYW5kIHNpemUgPiAyNTUgYnl0ZXMuCgpoYXJkYWtlciAyNCBBcHIgOTggMTY6MzE6MzAKICAgIC0gKHRjcC5jKTogaW5jbHVkZSBuZXRpbmV0L3RjcGlwLmggZm9yIERVNC4wLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE2OjMyOjA1CiAgICAtIChhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaCk6IG5fdmFsdWUgaXMgYSBsb25nOgogICAgICAtIHJldHVybiB0aGUgdmFsdWUgZnJvbSBhdXRvX25saXN0X3ZhbHVlIGFzIGFuIHVuc2lnbmVkIGxvbmcuCgpoYXJkYWtlciAyNCBBcHIgOTggMTY6NDA6NDUKICAgIC0gKHZhcl9yb3V0ZS5jKTogd2F0Y2ggb3V0IGZvciBzaW5nbGUgcm91dGUgbG9vcHMuCgpoYXJkYWtlciAyNyBBcHIgOTggMTA6NTk6MTkKICAgIC0gKE1ha2VmaWxlLnRvcCk6IHJlbW92ZWQgdW5uZWVkZWQgdmFyaWFibGUuCgpoYXJkYWtlciAyNyBBcHIgOTggMTE6MDA6MDgKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZGVmaW5lIFNITElCX0xEQ09ORklHX0NNRCBhcyAiOiIgZm9yCiAgICAgIHN0YXRpYyBsaWJyYXJ5IGNhc2VzLgoKaGFyZGFrZXIgMjcgQXByIDk4IDExOjAwOjQ0CiAgICAtIChzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLAogICAgICBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wd2Fsay5jKToKICAgICAgLSBQdXQgdGhlIHdvcmQgIlRpbWVvdXQ6ICIgaW4gZnJvbnQgb2YgdGhlICJObyBSZXNwb25zZSIgZXJyb3JzLgoKaGFyZGFrZXIgMjcgQXByIDk4IDEzOjMxOjEwCiAgICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU3ICkKCmhhcmRha2VyIDI3IEFwciA5OCAxNjoyNDozNAogICAgLSAodGttaWIpOiBidWcgZml4ZXMgYW5kIG5ldyBtaWIgbWVudSB0byBsb2FkIG5ldyBtaWJzLgoKaGFyZGFrZXIgMjcgQXByIDk4IDE2OjQ2OjI4CiAgICAtICh0a21pYik6IE5ldyBtaWIgbWVudSBjb21tYW5kOiBsb2FkIGEgbWliIG1vZHVsZSBieSBJRCBuYW1lLgoKaGFyZGFrZXIgMjcgQXByIDk4IDE2OjQ4OjAyCiAgICAtICh0a21pYik6IGJ1ZyBmaXhlcy4KCmhhcmRha2VyIDI5IEFwciA5OCAwODo1Njo0NAogICAgLSAoc25tcHRhYmxlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCAtSCBoZWFkZXIgcHJpbnRpbmcuCgpoYXJkYWtlciAyOSBBcHIgOTggMTA6MjY6NTgKICAgIC0gKHRjcC5jKTogZG9uJ3QgdXNlIFRDUFNUQVRfU1lNQk9MIHVubGVzcyBkZWZpbmVkLgoKaGFyZGFrZXIgMjkgQXByIDk4IDEwOjM0OjEyCiAgICAtIChleGFtcGxlLmMsIHByb2MuYywgdmFyX3JvdXRlLmMsIHdvbWJhdC5jKToKICAgICAgLSBubGlzdCBjbGVhbnVwcy4KCmhhcmRha2VyIDI5IEFwciA5OCAxMDo0MzowNAogICAgLSAoZXhhbXBsZS5jLCBleGFtcGxlLmgsIHdvbWJhdC5jLCB3b21iYXQuaCk6IG1vcmUgY2xlYW4gdXBzLgoKaGFyZGFrZXIgMjkgQXByIDk4IDExOjMxOjQzCiAgICAtICh2bXN0YXQuYywgdm1zdGF0LmgpOiBtb3ZlcywgY2hhbmdlcywgcmVtb3ZhbHMsIGFuZCBmaXhlcy4KCmhhcmRha2VyIDI5IEFwciA5OCAxMTozMjowMQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHB1dCB2bXN0YXQgYmFjayBpbiBhbmQgcmVuYW1lZCB0byBzeXN0ZW1TdGF0cy4KCmhhcmRha2VyIDI5IEFwciA5OCAxMTo0MTo1OAogICAgLSAodGttaWIpOgogICAgICAtIGRpc3BsYXkgdW5sb2FkZWQgbW9kdWxlIGVycm9yLgogICAgICAtIGRvbid0IHRyeSB0byBsb2FkIGEgZmlsZSBvbiBhIGNhbmNlbC4KCmhhcmRha2VyICA2IE1heSA5OCAxMToyMjo1NgogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHRrbWliLgoKaGFyZGFrZXIgIDYgTWF5IDk4IDE0OjA2OjU3CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBhZGRlZCBpbnRlcm5hbCB0YWJsZSBzZWN0aW9uLgogICAgICAtIG1pYiBudW1iZXIgY29ycmVjdGlvbnMgdG8gbWF0Y2ggdGhlIHNvdXJjZS4KCmhhcmRha2VyICA2IE1heSA5OCAxNDo1ODoyMwogICAgLSAoZGlzay5jLCBlcnJvcm1pYi5jLCBleGFtcGxlLmMsIGV4YW1wbGUuaCwgZXh0ZW5zaWJsZS5jLCBsb2FkYXZlLmMsCiAgICAgIG1lbW9yeS5jLCBwcm9jLmMsIHN5c09SVGFibGUuYywgc3lzdGVtLmMsIHV0aWxfZnVuY3MuYywKICAgICAgdXRpbF9mdW5jcy5oLCB2ZXJzaW9uaW5mby5jLCB2bXN0YXQuYyk6CiAgICAgIC0gcmVtb3ZlIHRoZSBuZXduYW1lIHJlcXVpcmVtZW50IGZyb20gY2hlY2ttaWIoKS4KICAgICAgLSBjcmVhdGUgaGVhZGVyX2dlbmVyaWMoKSBmb3Igc2ltcGxlIHNjYWxhciB0ZXN0cy4KICAgICAgLSB1c2UgaGVhZGVyX2dlbmVyaWMoKSBpbiBhbGwgdWNkIHNwZWNpZmljIHNjYWxhciBtaWJzLCBhbmQgZXhhbXBsZS5bY2hdLgoKaGFyZGFrZXIgIDYgTWF5IDk4IDIxOjA2OjU5CiAgICAtIChORVdTKTogbWlub3Igd29yZGluZyBjaGFuZ2UuCgpoYXJkYWtlciAgNiBNYXkgOTggMjE6MDc6MjgKICAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oKToKICAgICAgLSBuZXcgZnVuY3Rpb246IGNhbGN1bGF0ZV90aW1lX2RpZmYodDEsIHQyKS4KCmhhcmRha2VyICA2IE1heSA5OCAyMTowODowMAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1ha2UgYm9ndXMgaW5kZXgncyBiZSAwLgoKaGFyZGFrZXIgIDYgTWF5IDk4IDIxOjA4OjM3CiAgICAtIChtaWIyYyk6IGNyZWF0ZWQgYSBtaWIyYyB0ZW1wbGF0ZSBjcmVhdG9yLgoKaGFyZGFrZXIgIDYgTWF5IDk4IDIyOjI4OjQ3CiAgICAtICh3aW4zMi9jb25maWcuaCk6IHVwZGF0ZSBmcm9tIEpvZSBNYXJ6b3QuCgpoYXJkYWtlciAgNyBNYXkgOTggMDk6MDU6NTUKICAgIC0gKENPUFlJTkcpOiBjb3JyZWN0aW9uIGZvciBkYXRlcy4KCmhhcmRha2VyICA3IE1heSA5OCAwOTowNzowNgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBzeXMvc3RhdCBpbmNsdXNpb24gaW4gZnMgY2hlY2tzLgoKaGFyZGFrZXIgIDcgTWF5IDk4IDA5OjA3OjQ2CiAgICAtIChyZWFkX2NvbmZpZy5jKTogZGVidWcgaW5mbyBmb3IgY29uZmlnIGZpbGVzIHJlYWQuCgpoYXJkYWtlciAgOCBNYXkgOTggMTA6NTc6NDkKICAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgcGtnbG9jcy5oLgoKaGFyZGFrZXIgIDggTWF5IDk4IDExOjAxOjI0CiAgICAtIChocl9zd2luc3QuYywgaHJfZGlzay5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMuCgpoYXJkYWtlciAgOCBNYXkgOTggMTQ6NTM6MzYKICAgIC0gKGRpc2suYyk6IHdvcmRpbmcgY2hhbmdlLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDA4OjA4OjM3CiAgICAtICh1dGlsX2Z1bmNzLmMpOiBibGFuayBsaW5lIHJlbW92YWwuCgpoYXJkYWtlciAxMSBNYXkgOTggMDg6MDg6NTMKICAgIC0gKHRrbWliKTogb3B0aW9uYWwgcG9ydCBudW1iZXIuCgpoYXJkYWtlciAxMSBNYXkgOTggMDg6MDk6NTgKICAgIC0gKG1pYjJjKToKICAgICAgLSBjb3VudGVyNjRzLgogICAgICAtIGNvbnNvbG9kYXRpb24gb2YgdmFyaWFibGUgZGVjbGFyYXRpb25zLgogICAgICAtIG1vcmUgZXJyb3Igc3RpbmdzIGluIGFsbCBmaWxlcyBmb3IgdW5rbm93biB2YXJpYWJsZSB0eXBlcy4KCmhhcmRha2VyIDExIE1heSA5OCAwODoxMDozMAogICAgLSAocGFyc2UuYyk6IG9wYXF1ZSdzIGNhbiBoYXZlIGEgc2l6ZSBzcGVjaWZpZXIuCgpoYXJkYWtlciAxMSBNYXkgOTggMDg6MTA6NDYKICAgIC0gKGludDY0LmMpOiBhZGQgaW5jckJ5VTMyKCkuCgpoYXJkYWtlciAxMSBNYXkgOTggMTA6Mjk6MTYKICAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5oLCBzbm1wZC5jLCBzbm1wZC5oLCB2YXJfc3RydWN0LmgpOiBQYXRjaAogICAgICBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZyZWUgcm91dGluZXMgZm9yIHZhY20gKHRvIGFsbG93IC1IVVApCiAgICAgIC0gZnJlZSByb3V0aW5lcyBmb3IgdGhlIHRyYXBzaW5rIGRpcmVjdGl2ZXMgaW4gc25tcGQKCmhhcmRha2VyIDExIE1heSA5OCAxMDozMDowMQogICAgLSAoaHJfZGlzay5jLCBocl9maWxlc3lzLmMsIGhyX3BhcnRpdGlvbi5jLCB2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20KICAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc29tZSBwcm90b3R5cGVzIGZvciB0aGUgaHJfKi5jIGZpbGVzIChuZWVkcyBEYXZlJ3MgcmVjZW50IHBhdGNoKQogICAgICAgIFdhcm5pbmc6IHRoZSBwcm9jIHBhcnQgc3RpbGwgZG9lcyBub3Qgd29yayB3aXRoIFNvbGFyaXMhCgpoYXJkYWtlciAxMSBNYXkgOTggMTA6MzA6MTgKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gaW1wbGVtZW50IHRoZSBsb25nIHNpbmNlIGFubm91bmNlZCAtSCBvcHRpb24gdG8gc25tcHRhYmxlCgpoYXJkYWtlciAxMSBNYXkgOTggMTA6MzA6MzcKICAgIC0gKHNubXB0cmFuc2xhdGUuMSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gaW1wbGVtZW50IHRoZSBsb25nIHNpbmNlIGFubm91bmNlZCAtSCBvcHRpb24gdG8gc25tcHRhYmxlLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDEwOjMxOjMzCiAgICAtIChTTk1QdjItVEMudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSB0aGlzIGxhc3QgW3BhcnNlcl0gbWF5IGZpbmQgZXJyb3JzIGluIG9sZCBNSUJzIChpbmNsdWRpbmcgdGhlCiAgICAgICAgdmVyc2lvbiBvZiBTTk1QdjItVEMgdGhhdCB3ZSBzaGlwKS4KCmhhcmRha2VyIDExIE1heSA5OCAxMDozMjoyNwogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gQ29ycmVjdGlvbnMgb2YgZGlzayBlbnRyeSBjYXBpdGlsYXphdGlvbiBwcm9ibGVtcy4KCmhhcmRha2VyIDExIE1heSA5OCAxMDozNDozOAogICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXBpLmgsIHZhY20uYywgdmFjbS5oKTogUGF0Y2ggZnJvbQogICAgICBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmcmVlIHJvdXRpbmVzIGZvciB2YWNtICh0byBhbGxvdyAtSFVQKQogICAgICAtIGZpeCB0aGUgcGFyc2VyIHRvIHJlcG9ydCB1bmxpbmtlZCBPSURzLiBUaGlzIGRpZCByZXZlYWwgYW4gZXJyb3IgaW4gYQogICAgICAgIENpc2NvIE1JQiAoQ0lTQ08tSVBNQ0FTVC1NSUIpIHRoYXQgSSBoYWQgYmVlbiB1c2luZyAoaXQgbmVlZHMgYW4KICAgICAgICBJTVBPUlRTIGNpc2NvRXhwZXJpbWVudCBGUk9NIENJU0NPLVNNSSkKICAgICAgICBBY3R1YWxseSB0aGUgcGFyc2VyIHdvcmtlZCBvaywgZXhjZXB0IGZvciB0aGUgbWlzc2luZyBlcnJvciBtZXNzYWdlcy4KICAgICAgLSByZXdyaXRlIG9mIHRoZSBwYXJzZXJzIGxleGljYWwgYW5hbHlzZXIsIHRvIGNvcnJlY3QgdGhlIGVycm9ycyB0aGF0CiAgICAgICAgRGF2ZSBQZXJraW5zIGFuZCBvdGhlcnMgaGF2ZSBwb2ludGVkIG91dCByZWNlbnRseSAobmFtZTo6PSAsIERFU0NSSVBUSU9OIgogICAgICAgIGFuZCBwcm9wZXIgaGFuZGxpbmcgb2YgLS0gcGFydGlhbCBsaW5lIGNvbW1lbnRzIC0tKS4gV2F0Y2ggb3V0ISB0aGlzIGxhc3QKICAgICAgICBtYXkgZmluZCBlcnJvcnMgaW4gb2xkIE1JQnMgKGluY2x1ZGluZyB0aGUgdmVyc2lvbiBvZiBTTk1QdjItVEMgdGhhdAogICAgICAgIHdlIHNoaXApLiBNeSBGb3JlIFN5c3RlbXMgTUlCcyBoYWQgZXJyb3JzIHdpdGggdGhpcy4KICAgICAgLSBpbXBsZW1lbnQgdGhlIGxvbmcgc2luY2UgYW5ub3VuY2VkIC1IIG9wdGlvbiB0byBzbm1wdGFibGUKCmhhcmRha2VyIDEyIE1heSA5OCAxMDo1MjoxNgogICAgLSAoaHJfc3dpbnN0LmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIG1vcmUgc3dpbnN0IGZpeGVzIGZvciBycG0gbW9kdWxlcy4KCmhhcmRha2VyIDEyIE1heSA5OCAxMDo1Mjo1NwogICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGluY2x1ZGUgYSBnZXRkdGFibGVzaXplKCkgZnVuY3Rpb24gZm9yIGhwdXg5LgoKaGFyZGFrZXIgMTIgTWF5IDk4IDExOjEwOjQyCiAgICAtIChORVdTKTogbW9yZSB1cGRhdGVzLgoKaGFyZGFrZXIgMTIgTWF5IDk4IDExOjExOjEwCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIG11bmdlIHJwbSBsaWIgY2hlY2sgdG8gbGluayB3aXRoIC1sZGIgYXMgd2VsbC4KCmhhcmRha2VyIDEyIE1heSA5OCAxMToxMTozMgogICAgLSAoZGlzay5jKTogTlVMTCAtPiAwLgoKaGFyZGFrZXIgMTIgTWF5IDk4IDExOjQ1OjIxCiAgICAtICh2bXN0YXQuYyk6IGNvcnJlY3Qgc3RyaW5ncyBpbmNsdXNpb24uCgpoYXJkYWtlciAxMiBNYXkgOTggMTE6NDU6NTEKICAgIC0gKHNubXBfYXBpLmMsIHN5c3RlbS5jKToKICAgICAgLSBtb3ZlIGRlYnVnZ2luZyBjb2RlIGZyb20gc3lzdGVtLmMgdG8gc25tcF9hcGkuYywgd2hlcmUgaXQgc2hvdWxkIGJlLgoKaGFyZGFrZXIgMTIgTWF5IDk4IDE1OjE0OjQ4CiAgICAtIChkaXNrLmMsIGV4YW1wbGUuYywgaW50ZXJmYWNlcy5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwYXNzLmMsCiAgICAgIHByb2MuYywgdXRpbF9mdW5jcy5oLCB2bXN0YXQuYyk6CiAgICAgIC0gaW5jbHVkZSB0aW1lLmggcHJvcGVybHkgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHV0aWxfZnVuY3MuaCB0byBkbyBpdC4KCmhhcmRha2VyIDEyIE1heSA5OCAxNToxNTowMQogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlOCApCgpoYXJkYWtlciAxMyBNYXkgOTggMjE6MjE6MjIKICAgIC0gKGludDY0LmMsIGludDY0LmgsIG1pYi5jKTogbWFrZSBpbnQ2NC5jIHVzZSBjb3VudGVyNjQncyBzdHJ1Y3R1cmUuCgpoYXJkYWtlciAxMyBNYXkgOTggMjE6MjE6NDIKICAgIC0gKHNubXBfdmFycy5jKTogZG9uJ3QgcmV0dXJuIGEgY291bnRlcjY0IHRvIGEgc25tcHYxIHJlcXVlc3QuCgpoYXJkYWtlciAxMyBNYXkgOTggMjE6MjI6MDkKICAgIC0gKGlwLmMpOiBpbmNsdWRlIG5ldC9yb3V0ZS5oIGFuZCBzeXNsb2cuaCBmb3IgYnNkaS4KCmhhcmRha2VyIDEzIE1heSA5OCAyMToyMjoxNwogICAgLSAobWVtb3J5LmMpOiBpbmNsdWRlIHN5cy9wYXJhbS5oIGZvciBic2RpCgpoYXJkYWtlciAxMyBNYXkgOTggMjE6MjU6MzkKICAgIC0gKG1pYi5jKTogc3ByaW50X2J5X3R5cGUoKSBkaWRuJ3QgaGFuZGxlIGNvdW50ZXI2NCdzLgoKaGFyZGFrZXIgMTQgTWF5IDk4IDA3OjE3OjM0CiAgICAtIChtZW1vcnkuYyk6IG1vdmUgc3lzL3BhcmFtLmggdXAgYWJvdmUgZnMuaCBoZWFkZXJzLgoKaGFyZGFrZXIgMTQgTWF5IDk4IDA4OjIxOjU1CiAgICAtIChGQVEpOiBuZXcgRkFRIGZyb20gRGF2ZSBTaGllbGRzLgoKaGFyZGFrZXIgMTQgTWF5IDk4IDA4OjIyOjA4CiAgICAtIChORVdTKTogbWliMmMgbWVudGlvbmVkLgoKaGFyZGFrZXIgMTQgTWF5IDk4IDA4OjI1OjU3CiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IHR5cG9zLgoKaGFyZGFrZXIgMTUgTWF5IDk4IDEwOjEzOjE2CiAgICAtIChwYXJzZS5jKTogc2luZ2xlIHF1b3RlIG1pc3NpbmcgbW9kdWxlIG5hbWVzLgoKaGFyZGFrZXIgMTUgTWF5IDk4IDEwOjE3OjM2CiAgICAtIChyZWFkX2NvbmZpZy5jLCBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsCiAgICAgIGhyX3N5c3RlbS5oLCBocl91dGlscy5jLCB1dGlsX2Z1bmNzLmMsIHZhcl9yb3V0ZS5jLAogICAgICBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRhYmxlLmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYW5zbGF0ZS4xLAogICAgICBic2QuaCwgc29sYXJpcy5oLCBzdW5vcy5oLCBpbnQ2NC5oLCBtaWIuYywgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgpOgogICAgICBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNubXB0cmFuc2xhdGUgc3VwcG9ydHMgLVIgYW5kIC1yLgogICAgICAtIG1pc2NlbGxhbmVvdXMgd2FybmluZyBmaXhlcy4KICAgICAgLSBvaWQgc2VhcmNoZXIgYWx3YXlzIGlnbm9yZXMgY2FzZS4KICAgICAgLSBmaXhlZCBocl9zeXN0ZW0gdG8gY29tcGlsZSBvbiBTdW5PUzQuCgpoYXJkYWtlciAxNSBNYXkgOTggMTA6MTk6MDUKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBwcm92aWRlIGFiaWxpdHkgdG8gZG8gcmFuZG9tIHNlYXJjaGVzIHNwZWNpZnlpbmcgYSBtb2R1bGUgbmFtZSB0byBsb29rIGluLgoKaGFyZGFrZXIgMTUgTWF5IDk4IDExOjE3OjQ0CiAgICAtIChGQVEsIG1pYi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBoYW5kbGUgcmFuZG9tIGxvb2t1cHMgd2l0aCBtdWx0aXBsZSBvaWQgc2VnbWVudHMuCgpoYXJkYWtlciAxNSBNYXkgOTggMTE6MTk6MTAKICAgIC0gKGNvbmZpZy5oLCB3aW4zMi5vcHQsIGxpYnNubXAuZHNwLCBsaWJzbm1wLnBsZywgbGlic25tcC5kZWYsCiAgICAgIGxpYnNubXBfZGxsLmRzcCwgbGlic25tcF9kbGwucGxnLCBzbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0LnBsZywKICAgICAgc25tcGdldG5leHQucGxnLCBzbm1wc2V0LnBsZywgc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUucGxnLAogICAgICBzbm1wd2Fsay5wbGcpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gd2luMzIgZmlsZSB1cGRhdGVzLgoKaGFyZGFrZXIgMTggTWF5IDk4IDExOjE4OjIxCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGZpeCBydGVudHJ5IHN0cnVjdHVyZSB0ZXN0IG9uIHJlLWNvbmZpZ3VyZXMuCgpoYXJkYWtlciAxOCBNYXkgOTggMTM6MTM6MTgKICAgIC0gKGhyX3N3aW5zdC5jKTogcHJvdGVjdCB1c2luZyB0aGUgZGF0ZSBwb2ludGVyIGFnYWluc3QgTlVMTCBzZXR0aW5ncy4KCmhhcmRha2VyIDE4IE1heSA5OCAxNTozOTozOAogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlOSApCgpoYXJkYWtlciAxOCBNYXkgOTggMTg6MTQ6MTkKICAgIC0gKGludDY0LmMpOgogICAgICAtIGluY2x1ZGUgaGVhZGVyIGNoYW5nZXMgZm9yIHdpbjMyLgoKaGFyZGFrZXIgMTkgTWF5IDk4IDEwOjQxOjE0CiAgICAtIChhdC5jKTogc2V0IHRvIGRvIG5vdGhpbmcgd2hlbiBDQU5fVVNFX1NZU0NUTC4KCmhhcmRha2VyIDE5IE1heSA5OCAxMDo0MTo0OQogICAgLSAobWVtb3J5LmMpOiBmaXggc3dhcGluZm8gb24gaHB1eDEwIHN5c3RlbXMuICgvZXRjL3N3YXBpbmZvIC1yKS4KCmhhcmRha2VyIDIwIE1heSA5OCAwNzozMzowMgogICAgLSAobWliLmMsIHBhcnNlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGV4dGVuZCByYW5kb20gbG9va3VwcyBmdXJ0aGVyLgoKaGFyZGFrZXIgMjAgTWF5IDk4IDA3OjM0OjMxCiAgICAtIChGQVEpOiBVcGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KCmhhcmRha2VyIDIwIE1heSA5OCAwNzozNjoxNAogICAgLSAodXRpbF9mdW5jcy5jKTogbWFrZSBjaGVjbWliKCkgdXNlIG9pZCBub3QgaW50IGZvciBuZXduYW1lLgoKaGFyZGFrZXIgMjAgTWF5IDk4IDA3OjM3OjMzCiAgICAtIChzbm1wX2ltcGwuaCk6IHZlcnNpb24gc2hvdWxkIGJlIGEgbG9uZy4KCmhhcmRha2VyIDIwIE1heSA5OCAwODoyNTo0MQogICAgLSAocmVhZF9jb25maWcuYyk6IGNvbmZpZ19wZXJyb3IoKSAtPiBjb25maWdfcHdhcm4oKSBmb3IgbWlzc2luZyB0b2tlbnMuCgpoYXJkYWtlciAyMCBNYXkgOTggMDg6Mjc6MDYKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4yIC0+IFYzLjMKCndoYXJkYWtlIDExIEp1biA5NyAwNDo1Mzo1MwogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIG1ha2UgTUlCRklMRVMgZW52IHZhciB3b3JrIGNvcnJlY3RseS4KCndoYXJkYWtlIDExIEp1biA5NyAwNTo0NjoxOAogICAgLSAoQ2hhbmdlTG9nKTogd2hvb3BzLgoKd2hhcmRha2UgMjMgSnVuIDk3IDIzOjQwOjI4CiAgICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gSm9obiBDaGFybHRvbiB0byBmaXggbGVhZGluZyBzcGFjZXMgaW4gc2Vkc2NyaXB0LgoKd2hhcmRha2UgMjMgSnVuIDk3IDIzOjQxOjU4CiAgICAtIChjb25maWd1cmUqKTogYnNkaTMgbmVlZHMgdG8gZGVmaW5lIGJzZGkyLCBub3QgaXRzZWxmIChkdWgpLgoKd2hhcmRha2UgMjMgSnVuIDk3IDIzOjQyOjM2CiAgICAtIChhZ2VudC9taWJncm91cC9SRUFETUUpOiBuZWVkIDIgbGVhZGluZyAnLSdzIG9uIC0td2l0aC1taWItbW9kdWxlcyBmbGFnLgoKd2hhcmRha2UgMjYgSnVuIDk3IDIzOjM5OjMyCiAgICAtIChzbXV4LmMpOiBfX1AgbWFjcm9zIHdlcmUgY2FsbGVkIHdpdGggdG9vIG1hbnkgYXJndW1lbnRzIChuZWVkZWQgKGFyZ3MpKS4KCndoYXJkYWtlIDMwIEp1biA5NyAwNTo1Mzo1NwogICAgLSAoYWdlbnQvc25tcF97YWdlbnQsdmFyc30uYywgYWxhcm0uYywgZXZlbnQuYywgYXBwcy8qLAogICAgICAgc25tcGxpYi9zbm1weyxfYXBpLF9hdXRofS5jKToKICAgICAgIC0gQWRkZWQgYmFzaWMgKG1vc3RseSBjb25mb3JtaW5nPykgdjJjIHN1cHBvcnQuCiAgICAgICAtIE1lcmdlZCBhcmcgcGFyc2luZyBvZiBhcHBzLyogY2xpZW50cyBpbnRvIG9uZSBmaWxlLgoKd2hhcmRha2UgMzAgSnVuIDk3IDA1OjU0OjM2CiAgICAtIChhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMpOiBEb24ndCBwdXQgJiBpbiBmcm9udCBvZiBvc2Y0IGFjX2VuYWRkci4KCndoYXJkYWtlIDMwIEp1biA5NyAwNjozMzowOAogICAgLSAoc25tcHRlc3QuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gZml4IGdldCAtPiBmZ2V0ICdcbicgcHJvYmxlbS4KICAgICAgLSBBbHNvIG1ha2VzIHN1cmUgaXQgaGFuZGxlcyB1cCBhbmQgbG93ZXIgY2FzZXMuCgp3aGFyZGFrZSAzMCBKdW4gOTcgMDY6Mzg6NDMKICAgIC0gKHdvbWJhdC5oKTogYmV0dGVyIGRvY3VtZW50IGNvbmZpZ19sb2FkX21pYigpIGV4YW1wbGUuCgp3aGFyZGFrZSAzMCBKdW4gOTcgMDY6NDk6NDUKICAgIC0gKGNvbmZpZyosIG1lbW9yeS5jKTogUGF0Y2ggZnJvbSB2bGFkQG1pc2VyeS5yb3NwcmludC5ydToKICAgICAgLSBpbXBsZW1lbnQgbWVtb3J5IHNlY3Rpb24gb2YgdWNkIG1pYiBvbiBsaW51eC4KCndoYXJkYWtlIDMwIEp1biA5NyAwNjo1ODo0OQogICAgLSAobWliX2FwaS4zLCBwYXJzZS5bY2hdKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBIYW5kbGUgbWliIG1vZHVsZSByZXBsYWNlbWVudHMgdGhyb3VnaCBuZXcgZnVuY3Rpb24gYW5kIHJlcGxhY2VtZW50IHRhYmxlLgoKd2hhcmRha2UgMzAgSnVuIDk3IDA3OjE5OjUxCiAgICAtIChtaWIuYywgcGFyc2UuYywgc25tcF9hcGkuYyk6IFN1Z2dlc3Rpb25zIGZyb20gTGF1a2thbmVuIE1hcmtrdSBOUkMvSGtpOgogICAgICAtIE1hbGxvYyB0eXBlY2FzdHMgYW5kIG90aGVyIGNvcnJlY3Rpb25zIGluIGNhc3RpbmcuCgp3aGFyZGFrZSAgMSBKdWwgOTcgMDE6MTA6MDAKICAgIC0gKHNtdXguYyk6IGZpeCBwcm90b3R5cGluZyBmYWlsdXJlcy4KCndoYXJkYWtlICAxIEp1bCA5NyAwNTo0MTo1OAogICAgLSAoY29uZmlnKiwgY29tbW9uX2hlYWRlci5oLCBpbnRlcmZhY2VzLmMsIHZhcl9yb3V0ZS5jLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBmaXggZnJlZWJzZDMgc3BlY2lmaWMgcHJvYmxlbXMgKGJhc2VkIG9uIHN1Z2dlc3Rpb25zIGZyb20gQmlsbCBGZW5uZXIpLgoKd2hhcmRha2UgIDEgSnVsIDk3IDA2OjAyOjU3CiAgICAtIChhcHBzLyouYyk6IEJldHRlciB1c2FnZSBpbmZvcm1hdGlvbiBhbmQgdXNhZ2UoKSBzdGFuZGFyaXphdGlvbi4KCndoYXJkYWtlICAxIEp1bCA5NyAwNjo0MTo0NAogICAgLSAoZGlzay5jLCBlcnJvcm1pYi5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jKTogYnNkaTMgc3BlY2lmaWMgaGVhZGVycy4KCndoYXJkYWtlICAxIEp1bCA5NyAwNzoyMDoyNQogICAgLSAoY29uZmlnKik6IGJzZGkzIHNwZWNpZmljIGhlYWRlcnMuCgp3aGFyZGFrZSAgMSBKdWwgOTcgMDg6Mzc6NTEKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTEgKQoKd2hhcmRha2UgIDMgSnVsIDk3IDIzOjMzOjIzCiAgICAtIChzbm1wdHJhbnNsYXRlLmMsIG1pYi5bY2hdLCBwYXJzZS5bY2hdKToKICAgICAgLSBOZXcgb3B0aW9uIHRvIHNubXB0cmFuc2xhdGUgKC1hKSB0byBvdXRwdXQgYSBhc2NpaSBkdW1wIG9mIHRoZSBtaWIKICAgICAgICBkYXRhYmFzZSBjYXBhYmxlIG9mIGJlaW5nIHVzZWQgYnkgdGhlIHBhcnNlciBmb3IgcXVpY2sgT0lEIHRyYW5zbGF0aW9ucy4KCndoYXJkYWtlICAzIEp1bCA5NyAyMzozNDoxNAogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlMiApCgp3aGFyZGFrZSAyNCBKdWwgOTcgMjM6NTA6NDgKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIEVkZHkgSi4gR3VybmV5OiAgdW5jb21tZW50IGdldHRpbWVvZmRheSgpIGNhbGwuCgp3aGFyZGFrZSAgNyBBdWcgOTcgMDA6Mjk6MjQKICAgIC0gKFRPRE8pOiBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMgYnkgYXBwcy4KCndoYXJkYWtlICA3IEF1ZyA5NyAwMToxMTo1NAogICAgLSAoY29uZmlnKiwgbG9hZC5jLCBkaXNrLmMsIHBhcnNlLmMsIHNubXAuYyk6IFBhdGNoIGZyb20gU2ltb24gQnVyZ2U6CiAgICAgIC0gVWx0cml4IGZpeGVzIGZvciBzdGF0ZnMsIGxvYWRhdmUuCiAgICAgIC0gaW1wbGVtZW50IHN0cmR1cCBpZiBub3QgZm91bmQgaW4gc3lzdGVtLgogICAgICAtIHRlc3QgZm9yIHRlc3QgZmxhZ3MgZm9yIGtlcm5lbCBjaGVja2luZy4KICAgICAgLSB3YXRjaCBvdXQgZm9yIHBzJ2VzIHRoYXQgcmV0dXJuIGVncmVwIHdpdGggdGhlIHBzIGFyZyBvbiB0aGUgbGluZS4KICAgICAgLSB1cCBtYXhpbXVtIGRpc2tzIHRvIDUwLgoKd2hhcmRha2UgIDcgQXVnIDk3IDAxOjMzOjM4CiAgICAtIChrZXJuZWwuYywgcHJvYy5jKTogUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZToKICAgICAgLSBJbXBsZW1lbnQgcmVhbCBwcm9jZXNzIHRhYmxlIHdhbGtzIG9uIFVsdHJpeC4KCndoYXJkYWtlICA3IEF1ZyA5NyAwMjozNDo0NQogICAgLSAoY29uZmlnKiwgbWVtb3J5LmMpOgogICAgIC0gZml4IHN3YXAgb24gSFBVWCAxMC4yMAoKd2hhcmRha2UgMTMgQXVnIDk3IDA0OjQ3OjQ5CiAgICAtIChzbm1wc3RhdHVzLmMpOiBvcHRhcmcvb3B0aW5kIG5lZWQgdG8gYmUgZGVjbGFpcmVkIHVuZGVyIHVsdHJpeDQuCgp3aGFyZGFrZSAxMyBBdWcgOTcgMDg6MTE6NDIKICAgIC0gKHZlcnNpb24uaCwgYWdlbnQvKiwgYWdlbnQvbWliZ3JvdXAvKik6CiAgICAgIC0gbW92ZSB2ZXJzaW9uIHN0cmluZyB0byBhIGdsb2JhbCBoZWFkZXIuCiAgICAgIC0gaW5zZXJ0IFVTSU5HXypfTU9EVUxFIG1hY3JvJ3MgaW4gbWFueSBwbGFjZXMgdG8gbWFrZSBtb2R1bGUKICAgICAgICByZW1vdmFsIG1vcmUgcG9zc2libGUuICBZb3UgY2FuIG5vdyBjb21waWxlIHdpdGggYWxtb3N0IG5vIG1vZHVsZXMKICAgICAgICBpbnN0YWxsZWQuCgp3aGFyZGFrZSAxNCBBdWcgOTcgMDA6NDY6MzgKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywgbWFpbi5jKToKICAgICAgLSBhZGQgLVYgdmVyc2lvbiBmbGFnZS4KCndoYXJkYWtlIDE0IEF1ZyA5NyAwNzozODoxNwogICAgLSAoY29uZmlnKiwgRkFRLCBSRUFETUUsIGFnZW50L21pYmdyb3VwLyouYywgYXBwcy8qLmMpOgogICAgICAtIFBhdGNoIGZyb20gRGF2aWQgUGF1bCBaaW1tZXJtYW46CiAgICAgICAgLSBwb3J0IHRvIEFJWCA0LjEuNS4KICAgICAgICAtIGZpeCBtb3JlIHR5cGUgY2FzdGluZyBwcm9ibGVtcy4KCndoYXJkYWtlIDE0IEF1ZyA5NyAwODoxNTo0MgogICAgLSAoY29uZmlndXJlKik6CiAgICAgIC0gVHlwbydzIHdoZW4gY29weWluZyBpbiBhIGF1dG9jb25mIHRlc3QuCiAgICAgIC0gQWRkIGVycm9ybWliIHRvIGRlZmF1bHQgbW9kdWxlIGxpc3QgKHNpbmNlIGl0cyBubyBsb25nZXIgcmVxdWlyZWQpLgogICAgICAtIGJhY2txdW90ZSBhIC4gaW4gYSBzZWQgcmVnZXhwIHRvIHdhdGNoIG91dCBmb3IgbW9kdWxlIG5hbWVzCiAgICAgICAgYmVnaW5uaW5nIHdpdGggdGhlIGxldHRlciBvLgoKd2hhcmRha2UgMTQgQXVnIDk3IDA4OjE2OjEyCiAgICAtIChhZ2VudC9taWJncm91cC9SRUFETUUpOiBQb2ludCBvdXQgdGhhdCBtaWIgbGlzdCBtdXN0IGJlIGluIGRlc2NlbmRpbmcgb3JkZXIuCgp3aGFyZGFrZSAxNCBBdWcgOTcgMDg6MTY6MzcKICAgIC0gKHByb2MuYyk6IGRvbid0IHVzZSBzZXRlcnJvcnN0YXR1cygpIGlmIG5vdCB1c2luZyB0aGUgZXJyb3JtaWIuCgp3aGFyZGFrZSAxNCBBdWcgOTcgMDg6MjE6MjYKICAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gRGF2aWQgQy4gTGF3cmVuY2UgZm9yIG5ldGJzZCAqIGJzZC9vcyAyLjAuCgp3aGFyZGFrZSAxNSBBdWcgOTcgMDI6MzA6NTkKICAgIC0gKGNvbmZpZyosIHNubXBkLmMsIHNubXBfY2xpZW50LltjaF0sIHN5c3RlbS5bY2hdKToKICAgICAgLSBmaXggbW9yZSBsb25nL2ludCBwcm9ibGVtcyBvbiA2NCBiaXQgbWFjaGluZXMgdV9sb25nIC0+IGluX2FkZHJfdC4KICAgICAgLSBDaGVjayBmb3IgU0lPQ0dJRkFERFIgaW4gc3lzL2lvY3RsLmggYW5kIHVzZSBpdCBpbiBnZXRfbXlhZGRyKCkgaWYKICAgICAgICBkZWZpbmVkLgoKd2hhcmRha2UgMTUgQXVnIDk3IDA2OjQ2OjM5CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUzICkKCndoYXJkYWtlIDI1IEF1ZyA5NyAwMDoyMToyMwogICAgLSAobWVtb3J5LmMpOiB0eXBvIGluIGlmZGVmLgoKd2hhcmRha2UgMjUgQXVnIDk3IDAwOjIxOjQxCiAgICAtICh2ZXJzaW9udGFnKTogY2hlY2tpbiB2ZXJzaW9uLmguCgp3aGFyZGFrZSAyNSBBdWcgOTcgMDA6MjI6MTgKICAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzIGZvciBuZXRic2QuCgpoYXJkYWtlciAxNCBPY3QgOTcgMTU6MTU6MjMKICAgIC0gKG1pYl9hcGkuMyk6IGRvYyBhZGRpdGlvbjogIGFkZF9taWJkaXIoKSByZXR1cm4gdmFsdWUuCgpoYXJkYWtlciAxNCBPY3QgOTcgMTU6MTY6MzYKICAgIC0gKHBhcnNlLmMpOiBGcm9tIERhdmUgU2hpZWxkczoKICAgICAgLSBzZWxmIGNvbnRhaW5lZCBtaWIgLnR4dCBmaWxlcyB3aXRoIG11bHRpcGxlIG1vZHVsZXMuCgpoYXJkYWtlciAxNCBPY3QgOTcgMTU6MTk6MTYKICAgIC0gKGNvbmZpZyosIGNvbW1vbl9oZWFkZXIuaCk6IGR5bml4IGRvZXNuJ3QgaGF2ZSBuZXQvcm91dGUuaC4KCmhhcmRha2VyIDE0IE9jdCA5NyAxNToyMTo1NwogICAgLSAoRkFRKTogRnJvbSBEYXZlIFNoaWVsZHM6IHJlZmVyIHJlYWRlciB0byBhbm90aGVyIGFuc3dlciBhcyB3ZWxsLgoKaGFyZGFrZXIgMTQgT2N0IDk3IDE1OjMzOjAzCiAgICAtIChhZ2VudC9taWJncm91cC8qLmMpOiBZTVdSQU1GU0ZOOgogICAgICAtICh5ZXQgbW9yZSB3YXJuaW5nIHJlbW92YWxzIGFuZCBtZW1vcnkgZnVuY3Rpb24gc3RhbmRhcmRpemF0aW9ucyBmcm9tIE5pZWxzKS4KICAgICAgLSBtaW5vciBsaW51eC9uZXRic2QvYnNkaSBjbGVhbiB1cHMuCgpoYXJkYWtlciAxNSBPY3QgOTcgMDk6NTA6MDgKICAgIC0gKHZpZXdfcGFyc2UuYywgc25tcF92YXJzLmMpOiBGcm9tIE5pZWxzOiB3YXJuaW5nIHJlbW92YWxzIGFuZCBzdGFuZGFyZGl6YXRpb24uCgpoYXJkYWtlciAxNSBPY3QgOTcgMDk6NTg6MzYKICAgIC0gKGFwcHMvKi5jLCBhZ2VudC9zbm1wZC5jLCBzbm1wbGliLyouYyk6IFBhdGNoIGZyb20gTmllbHM6CiAgICAgIC0gd2FybmluZyBmaXhlcy4KICAgICAgLSByZW1vdmUgdGhlIHByaW50ZidzIGZyb20gdGhlIGxpYnJhcnkgYW5kIHNldCBhIHNubXAgJ2Vycm5vJyBlcXVpdmFsZW50LgoKaGFyZGFrZXIgMTUgT2N0IDk3IDEyOjEyOjAyCiAgICAtIChhcHBzLyouYywgYWdlbnQvc25tcGQuYywgc25tcGxpYi8qLmMpOgogICAgICAtIGNyZWF0ZSBhbmQgdXNlIG5ldyBmdW5jdGlvbjogIHNubXBfcGVycm9yKGNoYXIgKikKICAgICAgLSBmcmVlIGFsbG9jYXRlZCBzcGFjZSBvZiBzbm1wX2RldGFpbCB1cG9uIHVzYWdlIGJ5IHNubXBfYXBpX2VycnN0cmluZygpLgoKaGFyZGFrZXIgMTUgT2N0IDk3IDE4OjQwOjM4CiAgICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC9ociopOiBIb3N0IHJlc291cmNlcyBtaWIgZnJvbSBEYXZlIFNoaWVsZC4KICAgICAgLSBtaW5vciBwYXRjaGVzIGJ5IG1lLCBtb3N0bHkgcG9pbnRlciBlcnJvcnMuCiAgICAtIChtZW1vcnkuYyk6IGZpeGVkIGEgbnVsbCBwb2ludGVyIHByb2JsZW0gdW5kZXIgbGludXguCgpoYXJkYWtlciAyMCBPY3QgOTcgMTE6NDU6NTgKICAgIC0gKEZBUSk6IENoYW5nZXMgZnJvbSBEYXZlLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDExOjUxOjM0CiAgICAtIChjb25maWcqLCBhZ2VudC9zbm1wKiwgYWdlbnQvbWliZ3JvdXAvKi5bY2hdKToKICAgICAgLSBDcmVhdGVkIGEgbmV3IG1pYm1vZHVsZS5oIGNvbmZpZ3VyYXRpb24gbWFjcm8gY2FsbGVkCiAgICAgICAgY29uZmlnX3BhcnNlX2RvdF9jb25mKCkgd2hpY2ggY2FuIGJlIGNhbGxlZCB0byByZXF1ZXN0IHBhcnNpbmcgb2YKICAgICAgICB0aGUgc25tcGQuY29uZiBmaWxlKHMpIG9uIGEgcGVyIG1vZHVsZSBiYXNpcy4KICAgICAgLSBBbGwgcmVsYXRlZCBwYXJzaW5nIGhhcyBiZWVuIHN0cmlwZWQgZnJvbSByZWFkX2NvbmZpZy5jIGFuZCBtb3ZlCiAgICAgICAgdG8gdGhlaXIgY29ycmVjdCBtb2R1bGUgaW5zdGVhZC4KICAgICAgLSBOZXcgZnVuY3Rpb246IGNvbmZpZ19wZXJyb3IoY2hhciAqKTogcHJpbnQgZXJyb3Igd2l0aCBmaWxlICYgbGluZSAjLgogICAgICAtIGJhc2ljIC1XYWxsIGNsZWFudXBzIGluIGhyKiBhcyB3ZWxsIChub3QgbmVhcmx5IGRvbmUgeWV0KS4KCmhhcmRha2VyIDIwIE9jdCA5NyAxNjowNToxNAogICAgLSAocGFzcy5jKSBkb24ndCBudWxsIGxhc3QgY2hhciBpbiBjb21tYW5kIGxpbmUuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTY6MDY6MTYKICAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgICAtIGRvbid0IHJlcG9ydCBhbiBlcnJvciBpZiB5b3UgY2FuJ3QgZmluZCBhIHNubXBkLmNvbmYgZmlsZS4KICAgICAgLSBkb24ndCByZXBvcnQgYWxsIGxpbmVzIGFzIGFuIGVycm9yIChvcHBzKS4KCmhhcmRha2VyIDIwIE9jdCA5NyAxNjozODozMwogICAgLSAobWliLmMpOiBGcm9tIERhdmU6ICBwYXRjaCBERUZBVUxUX01JQlMgdG8gdGFrZSAnKycgaW4gZnJvbnQuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTY6NDQ6MzcKICAgIC0gKG1pYi5jKTogcGF0Y2ggYWxsIG90aGVyIGVudi12YXJzIHRvIHRha2UgJysnIGluIGZyb250LgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE3OjAxOjQ4CiAgICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC9ocl8qLmMpOgogICAgICAtIEEgbW9kdWxlLmMgZmlsZSBpcyBubyBsb25nZXIgcmVxdWlyZWQuICBPbmx5IHRoZSAuaCBmaWxlIGlzCiAgICAgICAgbmVjZXNzYXJ5LCBmb3IgcGVvcGxlIHdobyB3YW50IHRvIGhhdmUgb25lIG1vZHVsZSB3cmFwIGEgYnVuY2ggb2Ygb3RoZXJzLgogICAgICAtIHJlbW92ZWQgaG9zdC5jCiAgICAgIC0gcmVuYW1lZCBhbGwgaHJfaW5pdCBmdW5jdGlvbnMgdG8gYmUgYXV0by1jYWxsZWQuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTc6MTU6NTEKICAgIC0gKGFnZW50L21pYmdyb3VwL1JFQURNRSwgd29tYmF0LltjaF0pOgogICAgICAtIGRvY3VtZW50YXRpb24gdXBkYXRlIHRvIHJlZmxlY3QgY29uZmlnX3BhcnNlX2RvdF9jb25mKCkgdXNhZ2UuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTc6MTY6NTgKICAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwL2hyXyouYyk6CiAgICAgIC0gQSBtb2R1bGUuYyBmaWxlIGlzIG5vIGxvbmdlciByZXF1aXJlZC4gIE9ubHkgdGhlIC5oIGZpbGUgaXMKICAgICAgICBuZWNlc3NhcnksIGZvciBwZW9wbGUgd2hvIHdhbnQgdG8gaGF2ZSBvbmUgbW9kdWxlIHdyYXAgYSBidW5jaCBvZiBvdGhlcnMuCiAgICAgIC0gcmVtb3ZlZCBob3N0LmMKICAgICAgLSByZW5hbWVkIGFsbCBocl9pbml0IGZ1bmN0aW9ucyB0byBiZSBhdXRvLWNhbGxlZC4KCmhhcmRha2VyIDIwIE9jdCA5NyAxODowMTo0NgogICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5oLCB1Y2Rfc25tcC5oLCBzbXV4X2dhdGVkLmgpOgogICAgICAtIGNyZWF0ZWQgbmV3IHdyYXBwZXJzIGZvciB0aGUgdmFyaW91cyBtb2R1bGVzIHRvIG1ha2UgdGhlbSBlYXN5IHRvCiAgICAgICAgYWRkIGFuZCByZW1vdmUgYXMgbmVlZGVkLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE5OjQyOjQ2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGRlZmluZSBsaW51eCdzIE9TIHR5cGUuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTk6NDM6MTMKICAgIC0gKHNubXBfdmFycy5jKTogZGVmaW5lIGF0IGxlYXN0IGJsYW5rIGZ1bmMgbmxpc3RfaW5pdCgpIG9uIGxpbnV4LgoKaGFyZGFrZXIgMjEgT2N0IDk3IDEwOjE1OjU0CiAgICAtIChQT1JUSU5HLCBSRUFETUUpOiBtaW5vciB1cGRhdGVzLgoKaGFyZGFrZXIgMjEgT2N0IDk3IDEwOjQ1OjQ3CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFsbG93IC12IDJoIGFuZCAycCBmb3IgcGFydHkgY29kZS4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMTowMDo1NwogICAgLSAoaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jLCBtZW1vcnkuYyk6IGNsb3NlIG9wZW4gZmlsZXMgb24gbGludXguCgpoYXJkYWtlciAyMSBPY3QgOTcgMTE6MDE6MjcKICAgIC0gKE5FV1MpOiBiZWdpbm5pbmdzIG9mIE5FV1MgdXBkYXRlcy4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMTowMjo0NgogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNCApCgpoYXJkYWtlciAyMSBPY3QgOTcgMTI6MjU6MDMKICAgIC0gKGFnZW50L3JlYWRfY29uZmlnLltjaF0sIHNubXBkLmMsIHNubXBfdmFycy5jLCBtaWJncm91cC8qKToKICAgICAgLSBtb3ZlZCByZWFkX2NvbmZpZy5bY2hdIHVwIGEgbGV2ZWwgdG8gYWx3YXlzIGJlIGNvbXBpbGVkIGluLgoKaGFyZGFrZXIgMjEgT2N0IDk3IDEyOjMxOjU0CiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBtYWtlZmlsZWluZGVwZW5kIHNldHVwLgoKaGFyZGFrZXIgMjEgT2N0IDk3IDEyOjMyOjA4CiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBtYWtlZmlsZWluZGVwZW5kLi4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMjozNjozMwogICAgLSAoKi9NYWtlZmlsZS5pbik6IGRpZCBhIG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgMjEgT2N0IDk3IDEyOjM2OjM5CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU1ICkKCmhhcmRha2VyIDIyIE9jdCA5NyAxMTo0MDowNgogICAgLSAoY29tbW9uX2hlYWRlci5oLCByZWFkX2NvbmZpZy5jLCBkaXNrLmMsIHNubXBfcGFyc2VfYXJncy5jKToKICAgICAgLSBUeXBvJ3MgZml4ZWQgYnkgTmllbHMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMDk6NTY6MjYKICAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwLyouaCk6CiAgICAgIC0gbmV3IGNvbmZpZyBtYWNybzogIGNvbmZpZ19hcmNoX3JlcXVpcmUoYXJjaCwgbW9kdWxlKS4KICAgICAgLSBtb3ZlZCBhcmNoIGRlcGVuZGFudCBtb2R1bGVzIChtZW1vcnksIGhwdXgsIGtlcm5lbF9zdW5vczUpIGxvYWRzCiAgICAgICAgZnJvbSB0aGUgY29uZmlndXJlIGludG8gdGhlIGFwcHJvcHJpYXRlIC5oIGZpbGVzLgogICAgLSAoaW50ZXJmYWNlcy5jLCB2YXJfcm91dGUuYyk6CiAgICAgIC0gdHlwZWNhc3Qga2xvb2t1cCBjYWxscyBmb3IgZnJlZWJzZDIuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MDM6MTUKICAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyBzbm1wX3ZhcnMuYyk6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHYyaCAtPiB2MnAsIHYyIC0+IHYyYy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDowNDozMwogICAgLSAoYXBwcy8qLmMpOgogICAgICAtIGNoYW5nZXMgZm9yIFdJTjMyIHN1cHBvcnQuCiAgICAgIC0gc3VwcG9ydCBmb3IgY29tbWFuZCBsaW5lIGZsYWdzIHdpdGhvdXQgc3BhY2VzLgogICAgICAtIHYyaCAtPiB2MnAuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTY6NDIKICAgIC0gKHNubXBsaWIvKi5bY2hdKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gY2hhbmdlcyBmb3IgV0lOMzIgc3VwcG9ydC4KICAgICAgLSB2MmggLT4gdjJwLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjE4CiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjE4CiAgICBmaWxlIGNvbmZpZy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToxOAogICAgZmlsZSB3aW4zMi5kc3cgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjE4CiAgICBmaWxlIHdpbjMyLm9wdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MjUKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MjUKICAgIGZpbGUgbGlic25tcC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjI1CiAgICBmaWxlIGxpYnNubXAucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToyOAogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToyOAogICAgZmlsZSBsaWJzbm1wLmRlZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MjgKICAgIGZpbGUgbGlic25tcF9kbGwuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToyOAogICAgZmlsZSBsaWJzbm1wX2RsbC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjMxCiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjMxCiAgICBmaWxlIHNubXBidWxrd2Fsay5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjMxCiAgICBmaWxlIHNubXBidWxrd2Fsay5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjM0CiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjM0CiAgICBmaWxlIHNubXBnZXQuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozNAogICAgZmlsZSBzbm1wZ2V0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MzcKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MzcKICAgIGZpbGUgc25tcGdldG5leHQuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozNwogICAgZmlsZSBzbm1wZ2V0bmV4dC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQxCiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQxCiAgICBmaWxlIHNubXBzZXQuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0MQogICAgZmlsZSBzbm1wc2V0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDQKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDQKICAgIGZpbGUgc25tcHN0YXR1cy5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQ0CiAgICBmaWxlIHNubXBzdGF0dXMucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0NwogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0NwogICAgZmlsZSBzbm1wdHJhbnNsYXRlLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDcKICAgIGZpbGUgc25tcHRyYW5zbGF0ZS5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjUyCiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjUyCiAgICBmaWxlIHNubXB3YWxrLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NTIKICAgIGZpbGUgc25tcHdhbGsucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNToxNzoxMQogICAgLSAoY29uZmlnKikgd2luMzIgaGVhZGVyIGNoZWNrcy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNToxNzo1MAogICAgLSAoYWdlbnQva2VybmVsLmMsIHNubXBfYWdlbnQuYyk6CiAgICAgIC0gRVJST1IoKSAtPiBFUlJPUl9NU0coKS4KICAgICAgLSBmdW50aW9uIHJlbmFtZXMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6MTg6MTYKICAgIC0gKGFnZW50L21pYmdyb3VwLyouYyk6CiAgICAgIC0gRVJST1IoKSAtPiBFUlJPUl9NU0coKS4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNToyMTo1MwogICAgLSAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYyk6CiAgICAgIC0gcHV0IHRhYnMgYmFjayBpbiBoZWxwIHN0cmluZy4KICAgICAgLSBwdXQgdmVyc2lvbiBzdHJpbmcgcmVxdWVzdCBiYWNrIGluLgogICAgICAtIG1ha2UgZXJyb3Igc3RyaW5ncyBiZXR0ZXIgYW5kIHB1dCBiYWNrIGluIHBlcmlvZHMuCiAgICAgIC0gZG9uJ3QgYm9tYiBvbiB1bmtub3duIHBhcmFtZXRlcnMgZm9yIGZ1dHVyZSB1c2UuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6MjI6MjEKICAgIC0gKHNubXBsaWIvc25tcC5jKTogcHV0IHN0cmR1cCBkZWNsYWlyYXRpb24gYmFjayBpbi4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNToyMzoyMAogICAgLSAoc25tcGxpYi9zbm1wX2F1dGguYyk6CiAgICAgIC0gcmVtb3ZlICNpZmRlZiBPTEQgcmVxdWlyZW1lbnQuCiAgICAgIC0gY2hhbmdlIGJhY2sgaW50LT5sb25nIGFyZ3VtZW50IGNoYW5nZSBmb3Igc25tcF9jb21zdHJfYnVpbGQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6Mzc6NDYKICAgIC0gKHNubXBsaWIvc25tcC5oKToKICAgICAgLSBzbm1wIHZlcnNpb24gI2RlZmluZSBjbGFpcmlmaWNhdGlvbiBvbiBmdXR1cmUgaW1wbGVtZW50YXRpb25zLgogICAgICAtIG1vcmUgY2xlYXJseSBzdGF0ZSBwdXJwb3NlIG9mIGZ1dHVyZSBTTk1QVjMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTY6MjY6NTcKICAgIC0gKCopOiBtZXJnZSBvZiBXMzIgcG9ydCBhbmQgbWFpbiB2ZXJzaW9uIGJyYW5jaC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNjozNDo0NQogICAgLSAoc25tcF9hcGkuW2NoXSk6IGZpeCBwZXJyb3IgbG9zc2VzIGZyb20gbWVyZ2UuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTc6MDQ6NTEKICAgIC0gKGhyXyouYyk6IEVSUk9SIC0+IEVSUk9SX01TRy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNzowNToxMgogICAgLSAoc25tcHN0YXR1cy5jKTogcmVtb3ZlIGR1cGxpY2F0ZSBkZWNsYWlyYXRpb24uCgpoYXJkYWtlciAyNyBPY3QgOTcgMTc6NDI6NTUKICAgIC0gKHNubXBfdmFycy5jKTogdHdvIG1vZHVsZXMgZm9yIGV4dGVuc2libGUgY291bnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTc6NDM6MjIKICAgIC0gKGFnZW50L21pYmdyb3VwL2hyXyouaCk6IHByb3BlciBpbml0XyBwcm90b3R5cGVzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE3OjQzOjUwCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IG1pc3NpbmcgYSBlbHNlIHN0YXRlbWVudCAoc2lnaCkuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTc6NDQ6MjcKICAgIC0gKHNubXBfYXV0aC5jKTogbWVyZ2UgYnVncy4gIE1pc3NpbmcgYnJhY2tldHMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTc6NDc6MDAKICAgIC0gKHNubXBfYXBpLmMpOiBtZXJnZSBidWdzOiBlbHNlIGNoZWNrIGFnYWluc3QgcGR1IGNvbW1hbmQgdHlwZS4KCmhhcmRha2VyIDI3IE9jdCA5NyAxODowMjo1NgogICAgd2luMzIgZmlsZXMKCmhhcmRha2VyIDI3IE9jdCA5NyAxODowNTozNgogICAgLSAod2luMzIpOiAgYWRkIGZpbGVzIG9uIG1haW4gYnJhbmNoLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE4OjE4OjM2CiAgICAtIChzbm1wd2Fsay5jKTogcmVtb3ZlIGdvdHJvb3QgdmFyLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE4OjE4OjU3CiAgICAtIChzbm1wbGliLyouYyk6IHVzZSBzbm1wX3NldF9kZXRhaWwgdG8gaGFuZGxlIG1hbGxvYy9mcmVlIG9mIHNubXBfZGV0YWlsLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE4OjI2OjQxCiAgICAtIChjb25maWd1cmUuaW4pOiBmaXggY29uZmlnX2FyY2hfcmVxdWlyZSBtYWNybyB0byBhY3R1YWxseSB3b3JrLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE4OjMxOjM0CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU2ICkKCmhhcmRha2VyIDI4IE9jdCA5NyAwOTo1NjoxMQogICAgLSAoYWNjb25maWcuaCwgc3lzdGVtLltjaF0sIHNubXAuYyk6IG1vdmUgc3RyZHVwIGRlZiB0byBzeXN0ZW0uW2NoXS4KCmhhcmRha2VyIDI4IE9jdCA5NyAxNDozMDo1NQogICAgLSAoYWNjb25maWcuaCwgbWliLmMpOiB1c2UgJzsncyBmb3IgRE9TIGVudiBwYXRocy4KCmhhcmRha2VyIDI4IE9jdCA5NyAxNDo0MjoyMwogICAgLSAoY29uZmlnKik6IGZpeCBydGVudHJ5IHN0cnVjdHVyZSBjaGVja3MgZm9yIHRoZSAqYnNkIGdyb3Vwcy4KCmhhcmRha2VyIDI4IE9jdCA5NyAxNDo1NDoyNAogICAgLSAoKi4qLiouKik6IHJlbmFtZSBtYWNybyBfX1AgLT4gX19VQ0RfUCB0byByZWR1Y2Ugc3R1cGlkIGNvbmZsaWN0cy4KCmhhcmRha2VyIDI4IE9jdCA5NyAxNTo1MDowNQogICAgLSAoY29uZmlnKiwgcm91dGVfd3JpdGUuYywgdmFyX3JvdXRlLmMpOgogICAgICAtIGZpeCBydGVudHJ5IHByb2JsZW1zIG9uY2UgYW5kIGZvciBwcm9iYWJseSBuZXZlci4KCmhhcmRha2VyIDI4IE9jdCA5NyAxNzowOTo1NwogICAgLSAoYWNjb25maWcuaCwgVUNELVNOTVAtTUlCLnR4dCk6IGRlZmluZSBic2RpIGFnZW50IHR5cGUuCgpoYXJkYWtlciAyOCBPY3QgOTcgMTc6MTA6NTgKICAgIC0gKHV0aWxfZnVuY3MuYyk6IFBhdGNoIGZyb20gTm9idW9fT2thYmVAeW9rb2dhd2EuY28uanA6CiAgICAgIC0gZml4IHVud3JhcHBlZCBmb3BlbigpIGJ5IGFkZGluZyByZXR1cm4gTlVMTCBjaGVjay4KCmhhcmRha2VyIDI4IE9jdCA5NyAxNzoxMjowMAogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNyApCgpoYXJkYWtlciAyOSBPY3QgOTcgMDk6NDE6NTQKICAgIC0gKHNubXB0cmFwLmMpOiByZW1vdmUgdW51c2VkIG5saXN0IHN0cnVjdC4KCmhhcmRha2VyIDI5IE9jdCA5NyAwOTo0MjowNwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhZGQgc3lzL3NlbGVjdC5oIGZvciBhaXguCgpoYXJkYWtlciAyOSBPY3QgOTcgMDk6NTc6NDgKICAgIC0gKGRpc2suW2NoXSwgc3RydWN0LmgsIHNlZHNjcmlwdC5pbiwgc25tcGQuY29uZi41LmRlZiwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZSB0byBhbGxvdyBhIG1pbmltdW0gcGVyY2VudGFnZSBvbiBkaXNrIHNwYWNlLgogICAgICAgIC0gKHdhcyBvcmlnaW5hbGx5IGEgbWF4aW11bSwgYnV0IEkgY2hhbmdlZCBpdCB0byBtaW5pbXVtIGluc3RlYWQpLgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEwOjA2OjExCiAgICAtIChkaXNrLmMpOiBmaXggcG9pbnRlciBwcm9ibGVtcyBmcm9tIG9sZCByZWFkX2NvbmZpZyBmb3JtIHRvIG5ldy4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMDowNjozNAogICAgLSAoc25tcGQuY29uZi41LmRlZik6IHJlbW92ZSBzcGFjZSBiZWZvcmUgJSBzaWduLgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEwOjI1OjMxCiAgICAtICgqL01ha2VmaWxlLmluLCBtYW4vKik6CiAgICAgIC0gUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZSB0byBjaGFuZ2UgaW5zdGFsbGF0aW9uIHBhdGhzLgogICAgICAgIC0gKG1vZGlmaWVkIHRvIHBvaW50IGFnZW50IHRvIHNiaW5kaXIgaW5zdGVhZCBvZiBldGNkaXIpLgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEwOjQ4OjE4CiAgICAtIChjb25maWcqLCAqL01ha2VmaWxlLmluKToKICAgICAgLSBNb3ZlIHNubXBsaWJwYXRoIHRvIEBkYXRhZGlyQCB3aGljaCBkZWZhdWx0cyB0byAvdXNyL2xvY2FsL3NoYXJlL3NubXAuCgpoYXJkYWtlciAyOSBPY3QgOTcgMTA6NTQ6MDcKICAgIC0gKGFnZW50L01ha2VmaWxlLmluKTogb3BwcywgZm9yZ290IHRvIHB1dCBpbiBAZXhlY19wYXRoQC4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMToyMDo1NAogICAgLSAoYWNjb25maWcuaCwgYXNuMS5jLCBtaWIuW2NoXSwgcGFyc2UuaCxhcHBzLyosZXJyb3JtaWIuYyxsb2FkYXZlLmMsCiAgICAgICBleHRlbnNpYmxlLmMsIGRpc2suYywgc25tcGRlbHRhKik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gdGhlIG5vdyB3ZWxsa25vd24gTmV0QlNEIGZpeCwKICAgICAgLSBTdW5PUzQgY2MgZG9lc24ndCBsaWtlIHVuc2lnbmVkIGxpdGVyYWxzIG9yIHN0cnRvdWwsCiAgICAgIC0gYWRkZWQgYSBjaGFyIHZlcnNpb24gb2YgIjsiLAogICAgICAtIGFkZGVkIGZwcmludF92YXJpYWJsZSwgZnByaW50X29iamlkIGV0YwogICAgICAtIGNoYW5nZWQgdGhlIGFwcHMgdG8gcHJpbnQgYWxsIGVycm9yIG1lc3NhZ2VzIHRvIHN0ZGVyciwKICAgICAgLSBjb21wbGV0ZWQgdGhlIGFjY2VzcyBhbmQgc3RhdHVzIHZhbHVlcyBpbiBzbm1wbGliL3BhcnNlLmgKICAgICAgLSBhZGRlZCBhIHJvdWdobHkgcGF0Y2hlZCB2ZXJzaW9uIG9mIHNubXBkZWx0YS4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMjoyMzoyNgogICAgLSAocGFyc2UuaCk6IFNUQVRVU19LV19PUFRJT05BTCAtPiBTVEFUVVNfT1BUSU9OQUwKCmhhcmRha2VyIDI5IE9jdCA5NyAxMjo0Mzo0NAogICAgLSAoKi4qLiopOiBfX1VDRF9QIC0+IF9fUCwgYW5kIGEgY29uZmlndXJlIGNoZWNrIHRvIGxvb2sgZm9yIGl0LgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEyOjU3OjQ4CiAgICAtIChjb25maWcqKTogY2hlY2sgYW5kIGluY2x1ZGUgc3lzL2NkZWZzLmggaW4gY29uZmlnLmguCgpoYXJkYWtlciAyOSBPY3QgOTcgMTI6NTg6MDEKICAgIC0gKGhvc3RfcmVzLmgpOiBkb24ndCBpbmNsdWRlIGNvbmZpZy5oIHR3aWNlLgoKaGFyZGFrZXIgMjkgT2N0IDk3IDE0OjAwOjM4CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU4ICkKCmhhcmRha2VyICA0IE5vdiA5NyAxMjo0NzoxMgogICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgIC0gI2luY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaAogICAgICAtIFVTSU5HX0VYVEVOU0lCTEVfTUlCX01PRFVMRSAtPiBVU0lOR19FWFRFTlNJQkxFX01JQl9NT0RVTEUKCmhhcmRha2VyICA0IE5vdiA5NyAxMjo0Nzo1OQogICAgLSAoY29uZmlndXJlLmluKToKICAgICAgLSBDaGVjayBmb3IgJHByZWZpeCBiZWluZyBkZWZpbmVkIGFzIE5PTkUgZm9yIG90aGVyIHZhcnMuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTM6NDI6NTcKICAgIC0gKGFwcHMvTWFrZWZpbGUuaW4pOiBwdXQgc25tcHRyYXBkIGluIEBzYmluZGlyQAoKaGFyZGFrZXIgIDUgTm92IDk3IDEzOjQ0OjU4CiAgICAtIChjb21tb25faGVhZGVyLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkcyBmb3IgaHB1eDEwIHJlLWRlZmluaW5nIHByb2JsZW1zLgoKaGFyZGFrZXIgIDUgTm92IDk3IDEzOjQ1OjIzCiAgICAtIChocl9kaXNrLmMpOiBuZXcgdmVyc2lvbiBmb3IgaHB1eDEwIHN1cHBvcnQgZnJvbSBEYXZlIFNoaWVsZC4KCmhhcmRha2VyICA1IE5vdiA5NyAxMzo0NjoxNwogICAgLSAoaHJfZmlsZXN5cy5jLCBocl9zd3J1bi5jLCBocl91dGlscy5jKTogUGF0Y2hlcyBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGJ1ZyBmaXhlcyBhbmQgaHB1eDEwIHN1cHBvcnQuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTM6NDY6NDYKICAgIC0gKHZhcl9yb3V0ZS5jKTogZnJvbSBEYXZlIFNoaWVsZDogZG9uJ3QgcHJvdG90eXBlIG1hbGxvYy4KCmhhcmRha2VyICA1IE5vdiA5NyAxMzo0ODowNwogICAgLSAoKik6IG1lcmdlIGZyb20gRGF2ZSdzIHByZTYgcGF0Y2hlcy4KCmhhcmRha2VyICA1IE5vdiA5NyAxMzo1MjowMAogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywgZGlzay5jLCBwcm9jLmMsIHV0aWxfZnVuY3MuYyk6CiAgICAgIC0gI2luY2x1ZGUgIm1pYl9tb2R1bGVfY29uZmlnLmgiLgoKaGFyZGFrZXIgIDUgTm92IDk3IDEzOjU2OjU4CiAgICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jKToKICAgICAgLSAjaW5jbHVkZSAibWliX21vZHVsZV9jb25maWcuaCIKCmhhcmRha2VyICA1IE5vdiA5NyAxNDowMDowOQogICAgLSAoTWFrZWZpbGUuaW4sIGtlcm5lbF9zdW5vczUuYywgbWliLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIG9jdGV0IGNvdW50ZXJzIGZvciBzb2xhcmlzLgogICAgICAtIE1ha2VmaWxlLmluIHBhdGNoZXMuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTQ6NDA6MDcKICAgIC0gKG1lbW9yeS5jKTogcHJvdGVjdCB2bW1ldGVyLmggZnJvbSBtdWx0aXBsZSBpbmNsdXNpb25zIG9uIG5ldGJzZC4KCmhhcmRha2VyICA1IE5vdiA5NyAxNToyOTo1MAogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlOSApCgpoYXJkYWtlciAgNyBOb3YgOTcgMTI6MjQ6MjIKICAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBsaW51eC9oZHJlZy5oCgpoYXJkYWtlciAgNyBOb3YgOTcgMTI6MjU6MzUKICAgIC0gKGhyX3N3cnVuLmMpOiBkb24ndCBwcmludCBhIHZhcmlhYmxlIHRoYXQgZG9lc24ndCBleGlzdCB1bmRlciBsaW51eC4KCmhhcmRha2VyICA3IE5vdiA5NyAxMjoyODowMwogICAgLSAoa2VybmVsX3N1bm9zNS5jKTogcGF0Y2ggZnJvbSBOaWVscyBmb3Igc29sYXJpcyA+Mi42LgoKaGFyZGFrZXIgIDcgTm92IDk3IDEzOjM3OjE0CiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBVU0lORy4qX01JQl9NT0RVTEUgLT4gVVNJTkcuKl9NT0RVTEUuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTM6Mzc6NDQKICAgIC0gKGhyX25ldHdvcmsuYyk6IGRvbid0IHBhc3MgY2hhciAqKiB0byBpbnRlcmZhY2VzX3NjYW5fbmV4dCgpLgoKaGFyZGFrZXIgIDcgTm92IDk3IDEzOjM4OjM2CiAgICAtIChzbm1wd2Fsay5jKTogc3RvcCBvbiBubyByZXNwb25zZSBmcm9tIGhvc3QuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTU6MTk6MjQKICAgIC0gKGFjY29uZmlnLmgpOiBwYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gZGVmaW5lIF9DUlRJTVAgZm9yIHVuaXggZHVlIHRvIFczMiBiYWQgT1MgZGVzaWducy4KCmhhcmRha2VyICA3IE5vdiA5NyAxNToxOTo1OQogICAgLSAoc25tcGdldG5leHQuaCk6IHBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSB1c2UgX0NSVElNUCBpbiBmcm9udCBvZiBlcnJubyBkZWNsYXJhdGlvbi4KCmhhcmRha2VyICA3IE5vdiA5NyAxNToyMDo1NAogICAgLSAocGFyc2UuW2NoXSwgc25tcF9jbGllbnQuYyk6IHBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSB1c2UgX0NSVElNUCBpbiBmcm9udCBvZiBlcnJubyBkZWNsYXJhdGlvbi4KICAgICAgLSBkZWZpbmUgZmluZF9ub2RlIGV4dGVybmFsbHkuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTU6MjI6MDkKICAgIC0gKHdpbjMyLyopOiBwYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gd2luMzIgc3BlY2lmaWMgY2hhbmdlcy4KCmhhcmRha2VyICA3IE5vdiA5NyAxNToyODo1OQogICAgLSAoKik6IG1lcmdlIHRvIG1haW4gYnJhbmNoOiAgcGF0Y2hlcyBmcm9tIEpvZSBNYXJ6b3QuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTY6MTY6NTMKICAgIC0gKGNvbmZpZ3VyZS5pbik6IHdhdGNoIG91dCBmb3IgL3Vzci91Y2IvY2Mgb24gc29sYXJpcyBhbmQgZG9uJ3QgdXNlIGl0LgoKaGFyZGFrZXIgIDcgTm92IDk3IDE2OjM3OjAxCiAgICAtIChORVdTLCBSRUFETUUsIFRPRE8pOiBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTY6Mzg6NDkKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTEwICkKCmhhcmRha2VyIDEyIE5vdiA5NyAwNzo0MjoyNAogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OiBXMzIgc3BlY2lmaWMgZml4ZXMuCgpoYXJkYWtlciAxMiBOb3YgOTcgMDg6MjY6NDUKICAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gRnJlZSBhIHBkdSBpbiBhIHNwb3QgdGhhdCBzaG91bGQgdGVjaG5pY2FsbHkgbmV2ZXIgYmUgbmVlZGVkLCBidXQKICAgICAgICBpcyBuaWNlIGZvciBwZW9wbGUgcmVhZGluZyB0aGUgY29kZS4KCmhhcmRha2VyIDEyIE5vdiA5NyAwOToxNzowOAogICAgLSAoRkFRKTogRG9jIHVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgoKaGFyZGFrZXIgMTIgTm92IDk3IDA5OjE3OjI4CiAgICAtIChtaWJfYXBpLjMpOiBEb2MgdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCgpoYXJkYWtlciAxMiBOb3YgOTcgMDk6MTg6MDIKICAgIC0gKGhyX3N3cnVuLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIGZvciBsaW51eC9ocHV4MTAgcHJvYmxlbXMuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6MjU6MzAKICAgIC0gKE5FV1MsIFRPRE8pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGRvYyB1cGRhdGUuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6Mjc6MDgKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGFkZCBAZGF0YWRpckAgdG8gZmlsZXMgdGhhdCBuZWVkZWQgaXQuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6Mjc6NDYKICAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc29sYXJpcyBwYXRjaGVzLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjI4OjExCiAgICAtIChwYXJ0eV92YXJzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGluY2x1ZGUgbmV0aW5ldC9pbi5oIGlmIGF2YWlsYWJsZS4KCmhhcmRha2VyIDEyIE5vdiA5NyAxMDoyOTo0MgogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGFkZCBAZGF0YWRpckAgdG8gZmlsZXMgdGhhdCBuZWVkZWQgaXQuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6MzA6NTcKICAgIC0gKGFwcHMvKi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSB2YXJpb3VzIChyZW1vdmUgdW5uZWVkZWQgdmFycywgZXRjKS4KICAgICAgLSBhZGQgc25tcHRhYmxlLgogICAgICAtIG1ha2Ugc25tcHRyYXBkIG11bHRpLWxpbmd1YWwuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6MzI6MjIKICAgIC0gKHNubXBuZXRzdGF0L21haW4uYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc25tcHYyYyBzdXBwb3J0IGFuZCBhcmd1bWVudCBwYXJzaW5nIGNoYW5nZXMuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6MzM6MjAKICAgIC0gKG1hbi9zbm1wZGVsdGEuMSxzbm1wdGFibGUuMSxzbm1wdHJhcGQuOCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZG9jdW1lbnRhdGlvbiBjaGFuZ2VzIGFuZCBhZGRpdGlvbnMuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6Mzg6MzYKICAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHBhcnNlciBpbXByb3ZlbWVudHMuCiAgICAgIC0gcGFyc2VyIGRpcmVjdG9yeSBjYWNoaW5nLgogICAgICAtIHNhdmVfZGVzY3JpcHRpb25zL21pYl93YXJuaW5ncyBzZXQgZnVuY3Rpb25zLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjQ0OjQ3CiAgICAtIChORVdTKTogZG9jIHVwZGF0ZS4KCmhhcmRha2VyIDEyIE5vdiA5NyAxNToxMDoyNwogICAgLSAoc3lzdGVtLmgpOiBEb24ndCBpbmNsdWRlIGNvbmZpZy5oIQoKaGFyZGFrZXIgMTIgTm92IDk3IDE1OjE2OjQ0CiAgICAtIChwYXJ0eV92YXJzLmMpOiBpbmNsdWRlIFNURENfSEVBREVSUyBmb3IgQUlYLgoKaGFyZGFrZXIgMTIgTm92IDk3IDE1OjIxOjQxCiAgICAtIChwYXJzZS5jKTogaW5jbHVkZSBTVERDX0hFQURFUlMgZm9yIEFJWC4KCmhhcmRha2VyIDEyIE5vdiA5NyAxNTo0MjowMgogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgMTIgTm92IDk3IDE2OjA1OjQ3CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUxMSApCgpoYXJkYWtlciAxMiBOb3YgOTcgMjA6Mjc6MTEKICAgIC0gKHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OiBmdW5jdGlvbiBjaGFuZ2VzLgoKaGFyZGFrZXIgMTIgTm92IDk3IDIwOjM1OjAwCiAgICAtICgpOiBQYXRjaCBmcm9tIERhdmlkIFppbW1lcm1hbjoKICAgICAgLSBGaXhlcyBmb3IgQUlYLgoKaGFyZGFrZXIgMTIgTm92IDk3IDIwOjM1OjI3CiAgICAtICh2YXJfcm91dGUuYywgcmVhZF9jb25maWcuYywgc25tcGRlbHRhLmMpOiBQYXRjaCBmcm9tIERhdmlkIFppbW1lcm1hbjoKICAgICAgLSBGaXhlcyBmb3IgQUlYLgoKaGFyZGFrZXIgMTIgTm92IDk3IDIwOjQzOjMzCiAgICAtICh2YXJfcm91dGUuYywgcmVhZF9jb25maWcuYyk6IGZpeCBxc29ydCBwYXJhbXMgZm9yIFNUREMuCgpoYXJkYWtlciAxMiBOb3YgOTcgMjA6NDc6NDcKICAgIC0gKHZhcl9yb3V0ZS5jLCByZWFkX2NvbmZpZy5jKTogU1REQyB0eXBvcy4KCmhhcmRha2VyIDE0IE5vdiA5NyAwODozMTo0MQogICAgLSAod29tYmF0LmMpOiBjb2RlIGNvbW1lbnRzIGZyb20gQWxhbiBCYXRpZS4KCmhhcmRha2VyIDE0IE5vdiA5NyAwODozMjoyNgogICAgLSAoUkVBRE1FKTogY29kZXIgbGlzdCB1cGRhdGUuCgpoYXJkYWtlciAxNCBOb3YgOTcgMTI6MjE6MTAKICAgIC0gKHdvbWJhdC5jKTogcXVpY2sgZG9jIGNoYW5nZS4KCmhhcmRha2VyIDE0IE5vdiA5NyAxMjozNToxOQogICAgLSAoRkFRLCBORVdTLCBSRUFETUUpOiBsYXN0IGRvY3VtZW50YXRpb24gdXBkYXRlcy4KCgkKCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4xLjMgLT4gVjMuMgoKd2hhcmRha2UgMTEgRmViIDk3IDEyOjQ4OjA2CiAgICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmxpbnV4LmgpOiBQYXRjaCBmcm9tIEplbm5pZmVyIEJyYXk6CiAgICAgIC0gR2V0IGFnZW50IHdvcmtpbmcgb24gbGludXguCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTI6NTA6NDYKICAgIC0gKHNubXBfdmFycy5saW51eC5oKTogUmVtb3ZlZCBub24tbGludXggc3BlY2lmaWMgc3R1ZmYuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTI6NTQ6MzYKICAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDogIEZpeCBocHV4IHNwZWNpZmljIHByb2JsZW1zLgoKd2hhcmRha2UgMTEgRmViIDk3IDEzOjExOjIxCiAgICAtICgqTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIFBoaWxpcCBHdWVudGhlcjoKICAgICAgLSBGaXggYWxsIE1ha2VmaWxlLmluJ3MgdG8gc3VwcG9ydCBhIGRpZmZlcmVudCBzcmMgZGlyLgoKd2hhcmRha2UgMTEgRmViIDk3IDEzOjEyOjE5CiAgICAtIChSRUFETUUpOiBVcGRhdGUgcGVvcGxlIHN1cHBseWluZyBwYXRjaGVzIGxpc3QuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTM6MTk6MzcKICAgIC0gKGFsbCAuYyB3aXRoIG1haW4oKSwgc25tcGxpYi8qKTogUGF0Y2ggZnJvbSBQaGlsaXAgR3VlbnRoZXI6CiAgICAgIC0gTWFrZSBiZXR0ZXIgc3VwcG9ydCBmb3Igc2hhcmVkIGxpYiBwb3NzaWJpbGl0aWVzLgoKd2hhcmRha2UgMTEgRmViIDk3IDE0OjEwOjExCiAgICAtIChzbm1wX3ZhcnMubGludXguaCk6IEZpeCAjaWZkZWYuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTQ6MTE6MjQKICAgIC0gKHtsb2NhbCxtYW4sb3Z9L01ha2VmaWxlLmluKTogUmVtb3ZlIHNwYWNlcyBpbiBmcm9udCBvZiB0YWJzLgoKd2hhcmRha2UgMTEgRmViIDk3IDE0OjEzOjM0CiAgICAtIChzbm1wX2F1dGguYyk6IHJlbW92ZSBub24tc3RhdGljIG1kNWRpZ2VzdCBwcm90b3R5cGUuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTQ6MTQ6MDUKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlMSApCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTY6NDI6MDIKICAgIC0gKGFwcHMvTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5pbiB0byBkZXNjZW5kIHdoZW4gbWFrZSBjbGVhbmluZy4KCndoYXJkYWtlIDExIEZlYiA5NyAxNjo0NDowOAogICAgLSAobWFuL01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluaW4gdG8gZml4IHNyY2RpciBwcm9ibGVtcy4KCndoYXJkYWtlIDExIEZlYiA5NyAxNzowMDoyNgogICAgLSAoTWFrZWZpbGUuaW4pOiBSZXN0IG9mIFBoaWxpcCdzIHBhdGNoIHRvIGZpeCBzcmNkaXIgcHJvYmxlbXMgKHNoIHZhcnMpLgoKd2hhcmRha2UgMTcgRmViIDk3IDE0OjQxOjA4CiAgICAtIChhZ2VudC9zbm1wX3ZhcnMsIGFnZW50L21pYmdyb3VwKTogRGF2ZSBTaGllbGQgc3BsaXQgdXAgdGhlCiAgICAgIHNubXBfdmFycy5jIGFuZCByZWxhdGVkIGZpbGVzIGludG8gcGllY2VzIGZvciBlYXNpZXIgbWFuYWdlbWVudC4KICAgICAgVGhlIHJlc3VsdHMgb2YgaGlzIHdvcmsgYXJlIGluIHRoZSBuZXcgYWdlbnQvbWliZ3JvdXAgZGlyZWN0b3J5LgoKd2hhcmRha2UgMTcgRmViIDk3IDE0OjQ3OjEzCiAgICAtIChtaWIuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gcmVtb3ZlCiAgICAgIEFOU0kgc3BlY2lmaWMgcmVxdWlyZW1lbnRzLgoKd2hhcmRha2UgMTcgRmViIDk3IDE0OjUzOjI0CiAgICAtIChhZ2VudC8qTWFrZWZpbGUuaW4pOiAgTWFrZSBkZXBlbmQuCgp3aGFyZGFrZSAxNyBGZWIgOTcgMTU6MzA6MDQKICAgIC0gKGFsYXJtLmMpOiB0eXBlZGVmIGZvciBnZXRTdGF0UHRyKCkuCgp3aGFyZGFrZSAxNyBGZWIgOTcgMTU6MzA6MzYKICAgIC0gKGV2ZW50LmMpOiBXYXMgcGFzc2luZyBhbiBpbnQgdG8gYmNvcHkgaW5zdGVhZCBvZiAmaW50LgoKd2hhcmRha2UgMTcgRmViIDk3IDE1OjMxOjI1CiAgICAtIChpY21wLmMpOiBkb24ndCB1c2UgcmV0IHZhcmlhYmxlLCBzaW5jZSBpdCdzIG5vdCBkZWZpbmVkLgoKd2hhcmRha2UgMTcgRmViIDk3IDE1OjMyOjMwCiAgICAtIChpbnRlcmZhY2VzLmMpOiBSZW1vdmUgTUFYX05BTUVfTEVOR1RIIHJlcXVpcmVtZW50cy4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNjoxMTowOQogICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmUyICkKCndoYXJkYWtlICA0IE1hciA5NyAxNTo0NjozMAogICAgLSAoY29uZmlnKiwgbWliZ3JvdXAvTWFrZWZpbGUuaW4pOgogICAgICAtIG1pYmdyb3VwIGNvbXBpbGUgbGlzdCBpcyBidWlsZCBieSBjb25maWd1cmUgYW5kIGNhbiBiZSBhdWdtZW50ZWQKICAgICAgICBieSB0aGUgLS13aXRoLW1pYi1tb2R1bGVzPSJsaXN0IG9mIG1vZHVsZXMiIGNvbW1hbmQgbGluZSB0byBjb25maWd1cmUuCgp3aGFyZGFrZSAgNSBNYXIgOTcgMDk6NDk6NTkKICAgIC0gKGNvbmZpZyosIGFnZW50LyosIGFnZW50L21pYmdyb3VwLyopOgogICAgICAtIEFkZGVkIC5vIGZpbGUgbGlzdCB0byBhZ2VudC9NYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgY29uZmlndXJlLgogICAgICAtIG5ldyBmaWxlcyBnZW5lcmF0ZWQgYnkgY29uZmlndXJlOgogICAgICAgIC0gbWliZ3JvdXAvbWliX21vZHVsZV9pbmNsdWRlcy5oOiAgQSBsaXN0IG9mIG1pYiAuaCBmaWxlcyBmb3Igc25tcF92YXJzLmguCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChldmVyeSBtb2R1bGUgKm11c3QqIGhhdmUgYSAuaCBmaWxlKQogICAgICAgIC0gbWliZ3JvdXAvbWliX21vZHVsZV9pbml0cy5oOiBBIGxpc3Qgb2YgaW5pdF93b21iYXQoKSB0eXBlIGZ1bmN0aW9ucy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9ubHkgcHJlc2VudCBpZiBleGlzdCBpbiB3b21iYXQuYykuCiAgICAgICAgLSBtaWJncm91cC9taWJfbW9kdWxlX2xvYWRzLmg6IFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgYSBuZXcgbWFjcm8gaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG1pYi5oIGZpbGVzIGNhbGxlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdfbG9hZF9taWIoKSwgd2hpY2ggc2ltcGxpZmllcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbG9hZGluZyBvZiB0aGUgbWliIHNlY3Rpb25zLgoKd2hhcmRha2UgIDUgTWFyIDk3IDEwOjAzOjU4CiAgICAtIChzeXN0ZW0uYyk6IHJlbW92ZWQgc3lzdGVtIG5saXN0ICh1bnVzZWQpLgoKd2hhcmRha2UgIDUgTWFyIDk3IDExOjE3OjQ0CiAgICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBFbHd5biBCIERhdmllczoKICAgICAgLSBGaXggYSBQRFUgY2xvbmluZyBidWcuCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTE6Mjg6MjAKICAgIC0gKCouYywgKi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBwcm90b3R5cGUgKmV2ZXJ5dGhpbmcqLgoKd2hhcmRha2UgIDUgTWFyIDk3IDExOjI4OjIzCiAgICBmaWxlIGtlcm5lbC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTEtNC1wcmUyLW5pZWxzLgoKd2hhcmRha2UgIDUgTWFyIDk3IDExOjI4OjQ1CiAgICAtICgqLmMsICouaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcHJvdG90eXBlICpldmVyeXRoaW5nKi4KCndoYXJkYWtlICA1IE1hciA5NyAxMToyODo0OAogICAgZmlsZSBzbm1wZC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTEtNC1wcmUyLW5pZWxzLgoKd2hhcmRha2UgIDUgTWFyIDk3IDExOjM1OjE4CiAgICAtICgqLmMsICouaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcHJvdG90eXBlICpldmVyeXRoaW5nKi4KCndoYXJkYWtlICA1IE1hciA5NyAxMTozNzozNQogICAgLSAoUkVBRE1FKTogQ29udHJpYnV0ZXIgbmFtZSBhZGRpdGlvbi4KCndoYXJkYWtlICA1IE1hciA5NyAxNTowNjo0MQogICAgLSAoKi5jLCAqLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHByb3RvdHlwZSAqZXZlcnl0aGluZyouCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTY6MTM6MzgKICAgIC0gKGFjbF92YXJzLmMpOiBpbmNvcnJlY3RseSBmaXhlZCBwcm90b3R5cGluZyBlcnJvcnMgZm9yIHdyaXRlX2FjbCgpLgoKd2hhcmRha2UgIDUgTWFyIDk3IDE2OjE1OjU0CiAgICAtIChzbm1wX2FwaS5jKTogZml4ZWQgcHJvdG90eXBpbmcgZXJyb3JzIGluIHNubXBfcGFyc2UuICBQb3NzaWJseSB3cm9uZy4KCndoYXJkYWtlICA1IE1hciA5NyAxNjoyOTowNQogICAgLSAoc25tcF9hcGkuYyk6IFllcC4gSXQgd2FzIHdyb25nLiAgVGVzdGVkIGFuZCB3b3JrcyBub3cuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMDk6MDY6MzQKICAgIC0gKGV4dGVuc2libGUvKiAtPiBtaWJncm91cC8qKTogbW92ZWQgZXh0ZW5zaWJsZSBzdHVmZiB0byBtaWIgbW9kdWxlcy4KCndoYXJkYWtlICA3IE1hciA5NyAwOTowNzowNwogICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmVkIG1vcmUgbm9uLW1pYmdyb3VwIHNwZWNpZmljIGNhbGxzIGFuZCBoZWFkZXJzLgoKd2hhcmRha2UgIDcgTWFyIDk3IDA5OjU5OjI4CiAgICAtIChzbm1wX3ZhcnMuaCwgbWliZ3JvdXAvKik6IHN0cmljdC1wcm90b3R5cGluZyBhbmQgY29uZmlnX3JlcXVpcmUoKXMuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTA6MDc6NTMKICAgIC0gKG1pYm1vZHVsZS92ZXJzaW9udGFnKTogbW92ZWQgaW50byBwbGFjZSBmcm9tIGV4dGVuc2libGUvCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTA6MzQ6NTMKICAgIC0gKGhwdXguW2NoXSk6IEFkZGVkIGhwdXggc3BlY2lmaWMgZmlsZXMgZnJvbSBleHRlbnNpYmxlIGRpci4KCndoYXJkYWtlICA3IE1hciA5NyAxMDo0MzowOAogICAgLSAoZXh0ZW5zaWJsZS8qKTogY3ZzIHJlbW92aW5nIGZpbGVzLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEwOjQ5OjAwCiAgICAtIChtaWJncm91cC9zdHJ1Y3QuaCk6IG1vdmVkIHRvIGhlcmUuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTE6NDM6MDUKICAgIC0gKGNvbmZpZyopOiBnZW5lcmF0ZSBhIG1pYl9tb2R1bGVfY29uZmlnLmggd2l0aCBkZWZpbmVzIG9mIHdoYXRzIGJlaW5nIHVzZWQuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6Mzk6MjQKICAgIC0gKG1ha2VkZXBlbmQuaW4pOiBuZXcgbWFrZSBkZXBlbmQgc2NyaXB0Cgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6NDA6NDAKICAgIC0gKHJlbW92ZS1maWxlcyk6IGFkZCBtYWtlZGVwZW5kLmluCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6NDY6MTUKICAgIC0gKE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4pOiBGaXggc2Vkc2NyaXB0IGdlbmVyYXRpb24uICBzaWdoLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjQ3OjQ1CiAgICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kIGFuZCBleHRlbnNpYmxlLyByZW1vdmVzLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjQ4OjU5CiAgICAtIChzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jKTogcmVtb3ZlIGV4dHByb3RvLmggaW5jbHVkZS4KCndoYXJkYWtlICA3IE1hciA5NyAxMzo1MDoxNQogICAgLSAobWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pOiBkZXBlbmQuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6NTA6NTIKICAgIC0gKGhwdXguYyk6IGlmZGVmIGEgZmV3IGhlYWRlcnMgZm9yIGNvcnJlY3QgbWFrZSBkZXBlbmQuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6NTE6MzAKICAgIC0gKHNubXBsaWIvc25tcC5jKTogcmVtb3ZlIHNlY29uZCBjdHlwZS5oIGluY2x1ZGUuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTQ6MDE6NTEKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlMyApCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTU6MDE6MDUKICAgIC0gKG1pYmdyb3VwLyopOiByZW1vdmVkIHt9IHJlcXVpcmVtZW50IGZyb20gY29uZmlnX2xvYWRfbWliKCkgY2FsbHMuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTU6MDI6MTgKICAgIC0gKGNvbmZpZ3VyZSk6IHJlbW92ZWQge30gcmVxdWlyZW1lbnQgZnJvbSBjb25maWdfbG9hZF9taWIoKSBjYWxscy4KCndoYXJkYWtlICA3IE1hciA5NyAxNjowOTo1OAogICAgLSAoY29uZmlnKik6IG1ha2UgbmV3IGNvbmZpZ3VyZSBvcHRpb25zIHJlc3BlY3QgJChzcmNkaXIpLgoKd2hhcmRha2UgIDcgTWFyIDk3IDE2OjExOjUwCiAgICAtIChjb21tb25faGVhZGVyLmgpOiBjb21tZW50IG91dCBlbmQgb2YgI2VuZGlmLgoKd2hhcmRha2UgMTAgTWFyIDk3IDE2OjU1OjQ2CiAgICAtIChjb25maWd1cmUuaW4pOiBOZXcgY29uZmlndXJlIG9wdGlvbjogIC0td2l0aC1vdXQtbWliLW1vZHVsZXM9Imxpc3QiLgoKd2hhcmRha2UgMTAgTWFyIDk3IDE3OjI4OjI5CiAgICAtIChjb25maWd1cmUuaW4pOiBzcGFjZSBwcm90ZWN0IG1vZHVsZXMgd2hlbiBjaGVja2luZyBmb3Igd2l0aCBncmVwLgoKd2hhcmRha2UgMTEgTWFyIDk3IDA5OjA0OjAzCiAgICAtIChpcC5jKTogZnJlZWJzZDIgcGF0Y2guCgp3aGFyZGFrZSAxMSBNYXIgOTcgMTc6Mzk6MjMKICAgIC0gKG1pYmdyb3VwLyopOgogICAgICAtIHJlbW92ZSB0cmFpbGluZyA7cyBvbiBidW5jaGVzIG9mIGZ1bmN0aW9ucy4KICAgICAgLSBtYWtlIGV2ZXJ5dGhpbmcgYnV0IGludGVyZmFjZXMuYyBjb21waWxlIG9uIGlyaXg2LjMuCiAgICAtIChjb25maWcqLHN5c3RlbS5jKTogdXNlIHVuYW1lIGFuZCBnZXRob3N0bmFtZSBpZiBhdmFpbGFibGUuCiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IERvbid0IGNoZWNrIF9LRVJORUwgaWYgaWZuZXQuaWZfbXR1IGFscmVhZHkgd29ya3MuCgp3aGFyZGFrZSAxMiBNYXIgOTcgMDk6Mjg6MDQKICAgIC0gKG1pYmdyb3VwL3NubXAuW2hjXSAtPiBtaWJncm91cC9zbm1wX21pYi5baGNdKTogTW92ZWQgZHVlIHRvIG5hbWUgY2xhc2hlcy4KCndoYXJkYWtlIDEyIE1hciA5NyAxNTo0NzowMAogICAgLSAoY29uZmlndXJlLmluLCBzbm1wZC5jLCBzbm1wX2FnZW50LmMsIHJvdXRlX3dyaXRlLltjaF0sCiAgICAgIHZhcl9yb3V0ZS5bY2hdLCBpcC5bY2hdLCBzbm1wLltjaF0gLT4gc25tcF9taWIuW2NoXSk6CiAgICAgIC0gTW92ZWQgc25tcCBtaWIgbW9kdWxlIC0+IHNubXBfbWliIGZvciBuYW1pbmcgY29uZmxpY3RzIHdpdGggc25tcGxpYi4KICAgICAgLSBNb3ZlZCBzbm1wX3Zhcl9yb3V0ZS5jIC0+IG1pYmdyb3VwL3Zhcl9yb3V0ZS5jCiAgICAgIC0gTW92ZWQgd3JpdGVfcm91dGUuYyAtPiBtaWJncm91cC93cml0ZV9yb3V0ZS5jCgp3aGFyZGFrZSAxMiBNYXIgOTcgMTU6NDg6MzcKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZCB1cGRhdGUuCgp3aGFyZGFrZSAxMiBNYXIgOTcgMTU6NTU6MjAKICAgIC0gKG1pYmdyb3VwL1JFQURNRSk6IGRvYyB1cGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KCndoYXJkYWtlIDEyIE1hciA5NyAxNzoxNToyMAogICAgLSAoc25tcF9hcGkuYyk6IHJldHVybnMgZnJvbSBpbmV0X2FkZHIgYXJlIGluX2FkZHJfdCAodV9pbnQpIG5vdCB1X2xvbmcuCgp3aGFyZGFrZSAxMyBNYXIgOTcgMDk6Mzc6MzcKICAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgaW5fYWRkcl90IGFuZCBkZWZpbmUgYXMgdV9pbnQgKDMyIGJpdHMpIGlmIG5vdCBwcmVzZW50LgogICAgLSAoYXBwcy8qLmMsIHBhcnR5X3BhcnNlLmMpOiB1c2UgaXQuCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTA6MTQ6NTkKICAgIC0gKGV4dGVuc2libGVfc3VidHJlZXMuaCk6IFJlbW92ZWQgZmlsZS4KCndoYXJkYWtlIDEzIE1hciA5NyAxNDozNTowNQogICAgLSAoYWdlbnQvKiwgbWliZ3JvdXAvKik6IG1vdmVkIGFsYXJtLCBjb250ZXh0LCB2aWV3cywgZXZlbnQsIHBhcnR5LAogICAgICBhbmQgYWNsIHZhcmlhYmxlIGdyb3VwcyB0byBtaWJncm91cC8uCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTQ6NDQ6NTUKICAgIC0gKGtlcm5lbF9zdW5vczUuW2NoXSk6IG1vdmVkIHRvIG1pYmdyb3VwLy4KICAgIC0gKHJvdXRlX3dyaXRlLmMsIHNubXBfdmFyX3JvdXRlLmMpOiBkZWxldGUgZnJvbSBhZ2VudCBkaXIuCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTU6MzU6MjYKICAgIC0gKGhwdXguYywgbWVtb3J5LmMsIG1lbW9yeS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMgdG8gZml4IG1pbm9yIHByb2JsZW1zLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE1OjM2OjE0CiAgICAtICh2aWV3X3ZhcnMuYywgY29udGV4dF92YXJzLmMsIGFjbF92YXJzLmMpOiBkb24ndCBpbmNsdWRlIHNubXB2Ml92YXJzLmguCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTU6NDU6MTQKICAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3Igc3lzdGVtIGRlcGVuZGVudCBtb2R1bGVzLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE1OjQ2OjE2CiAgICAtICgqL01ha2VmaWxlLmluKTogTmV3IG1ha2UgZGVwZW5kIHJ1bGVzIHRvIHNlcGVyYXRlIHN5c3RlbS9ub24gZGVwZW5kZW50IHN0dWZmLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE2OjA3OjUyCiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQgYW5kIHJ1bGUgZml4ZXMgYXMgd2VsbC4KCndoYXJkYWtlIDEzIE1hciA5NyAxNjoxMDo1OAogICAgLSAoY29uZmlnKik6IHJlbW92ZSBkdXBsaWNhdGUgZ2V0aG9zdG5hbWUgY2hlY2suCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTY6MTc6NTkKICAgIC0gKGFwcHMvKi9NYWtlZmlsZS5pbik6IGRlcGVuZCBwcm9ibGVtcyBmaXguCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTc6MTc6MzIKICAgIC0gKGNvbW1vbl9oZWFkZXIuaCk6IGZpeCBwYXRoIHRvIGFsYXJtLmguCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTc6NDc6MzIKICAgIC0gKG1hbnkpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlbnNlbjoKICAgICAgLSBBIGxhcmdlIG51bWJlciBvZiBwcm9ibGVtcyB3aXRoIHRoZSBMaW51eCBwb3J0CiAgICAgIC0gU29tZSBwcm9ibGVtcyB3aXRoIE5ldEJTRCAxLjJDLCBidXQgaXQncyBzdGlsbCBub3QgcGVyZmVjdAogICAgICAtIE1vcmUgKHN5bWJvbGljKSBkZWJ1ZyBvdXRwdXQgZnJvbSBzbm1wZCwgd2hlbiB1c2luZyAtVi4gLWQgaW1wbGllcyAtVgogICAgICAgIFNob3dzIHlvdSB2YXJpYWJsZSByZXF1ZXN0ZWQgYW5kIHZhbHVlIHJldHVybmVkCiAgICAgIC0gUmV0dXJuIGlwUm91dGVNYXNrIHVuZGVyIFNvbGFyaXMKICAgICAgLSBzbm1wbmV0c3RhdCAtciBzaG93cyBub24tc3RhbmRhcmQgbmV0bWFza3MKICAgICAgLSBzbm1wbmV0c3RhdCAtbyAobmV3KSBzaG93cyBpbnRlcmZhY2Ugb2N0ZXRzLCB3aXRob3V0IGVucXVpcmluZyBmb3IgbXR1CiAgICAgICAgYW5kIG90aGVyIHZhcmlhYmxlcyBub3QgcHJlc2VudCBmb3IgYSBDaXNjbyBGcmFtZS1SZWxheSB2aXJ0dWFsIGNpcmN1aXQKICAgICAgICBpbnRlcmZhY2UKICAgICAgLSBzbm1wbmV0c3RhdCB0Y3AvdWRwIHByaW50LW91dCBoYWQgbnRvaHMvaHRvbnMgaW4gd3JvbmcgcGxhY2VzIGZvciBwb3J0CiAgICAgICAgbnVtYmVycyAoc2hvd3MgdXAgb24gbGl0dGxlLWVuZGlhbiBhcmNoaXRlY3R1cmVzKQogICAgICAtIGFkZHMgYSBtYWtldGFyZ2V0IHNjcmlwdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIHBhcmFsbGVsIHN5bWxpbmtlZAogICAgICAgIHNvdXJjZSBkaXJlY3RvcnkuIFVzZWZ1bCBpZiB5b3VyIG1ha2UgZG9lcyBub3Qgc3VwcG9ydCBWUEFUSAoKd2hhcmRha2UgMTQgTWFyIDk3IDA5OjM5OjE1CiAgICAtICh1Y2Qtc25tcC50eHQsIG1pYi50eHQsIE1ha2VmaWxlLmluKTogRG9uJ3QgYnVpbGQgbWliIGZpbGVzIGFueW1vcmUuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMDk6NDY6MzEKICAgIC0gKHVjZC1zbm1wLnR4dCk6IG1vdmVkIHRvIG1pYnMvLgoKd2hhcmRha2UgMTQgTWFyIDk3IDA5OjQ3OjQ3CiAgICAtIChtaWIudHh0KTogc3RyZWFtZWQgZG93bi4KCndoYXJkYWtlIDE0IE1hciA5NyAwOTo1MDowMwogICAgLSAobWlicy97cmZjMTI3MSxzbm1wdjIsdWNkLXNubXB9LnR4dCk6IE5ldyBtaWJzIGRpcmVjdG9yeSBmb3Igc3ViLW1pYnMuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTA6NDg6MzUKICAgIC0gKE1ha2VmaWxlLmluLCBjb25maWcqLCBtaWJzL01ha2VmaWxlLmluKTogZW5hYmxlIG1pYnMvIG1ha2UgaW5zdGFsbC4KCndoYXJkYWtlIDE0IE1hciA5NyAxMDo0OTowMwogICAgLSAodWNkLXNubXAudHh0KTogcmVtb3ZlIHRoZSBsYXN0IG9mIHRoZSBzZWQgc2NyaXB0IGRlZnMuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTE6MDE6MTkKICAgIC0gKHNubXBkLjEuZGVmKTogVXBkYXRlZCB0byBpbmNsdWRlIC1jLy1DIGFuZCBTTk1QQ09ORlBBVEggZW52IHZhci4KCndoYXJkYWtlIDE0IE1hciA5NyAxMTowNzoxNgogICAgLSAoTWFrZWZpbGUuaW4pOiBGaXggc2Vkc2NyaXB0IHRvIGluY2x1ZGUgcyMgYXMgd2VsbCBhcyBzLyBjb21tYW5kcy4KCndoYXJkYWtlIDE0IE1hciA5NyAxMToxNzowNgogICAgLSAobWFrZWRlcGVuZC5pbik6IHJ1biBvbiBzbm1wbmV0c3RhdCBkaXIgYWxzby4KCndoYXJkYWtlIDE0IE1hciA5NyAxMToxODoxNwogICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCndoYXJkYWtlIDE0IE1hciA5NyAxMToyMDozOQogICAgLSAoc25tcF92YXJzX2V2ZW50LmgpOiBheGUuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTE6MjI6MjkKICAgIC0gKHNubXBfZ3JvdXB2YXJzLmgpOiBheGUuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTM6NTE6NTkKICAgIC0gKGNvbmZpZ3VyZS5pbiwgYXBwcy9NYWtlZmlsZS5pbik6IGZpeCB0cmFwIGJ5IGluY2x1ZGluZyBvcHRpb25hbCAubyBmaWxlcy4KCndoYXJkYWtlIDE0IE1hciA5NyAxMzo1MzoyMgogICAgLSAoc25tcGQuYywgY29udGV4dF9wYXJzZS5jLCBwYXJ0eV9wYXJzZS5jLCBzeXN0ZW0uW2NoXSk6CiAgICAgIC0gNjRiaXQgZml4OiBnZXRfbXlhZGRyKCkgc2hvdWxkIHJldHVybiBpbnQgbm90IGxvbmcuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTM6NTQ6MjIKICAgIC0gKGFjY29uZmlnLmgsIHVjZC1zbm1wLnR4dCk6IHJlY29nbml6ZSBuZXcgaG9zdHMgZm9yIHN5c09iamVjdElkLgoKd2hhcmRha2UgMTQgTWFyIDk3IDEzOjU1OjUwCiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTQgKQoKd2hhcmRha2UgMTQgTWFyIDk3IDE2OjE2OjUyCiAgICAtIChtaWJncm91cC9SRUFETUUpOiBVcGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KCndoYXJkYWtlIDE4IE1hciA5NyAxNjo1MjozNAogICAgLSAoRkFRKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCgp3aGFyZGFrZSAxOCBNYXIgOTcgMTY6NTM6MjYKICAgIC0gKEZBUSk6IHNubXAuY29uZiAtPiBzbm1wZC5jb25mCgp3aGFyZGFrZSAyNCBNYXIgOTcgMDk6NDk6NTQKICAgIC0gKG1lbW9yeS5jKTogcHJvdG90eXBlIHdyaXRlIGZ1bmN0aW9uIGJldHRlci4KCndoYXJkYWtlIDI0IE1hciA5NyAwOTo1MDo0OQogICAgLSAoZXhhbXBsZS5jLC5oKTogTmV3IGV4YW1wbGUgbWliIG1vZHVsZSBkdXBsaWNhdGluZyB0aGUgcGFzc3Rlc3QKICAgICAgc2NyaXB0IGluIEMgY29kZS4KCndoYXJkYWtlIDI0IE1hciA5NyAwOTo1MToxNgogICAgLSAoTWFrZWZpbGUuaW4pOiBXYXRjaCBvdXQgZm9yIG11bHRpcGxlIHNwYWNlcyBpbiBDIGRlZnMuCgp3aGFyZGFrZSAyNCBNYXIgOTcgMDk6NTE6MzMKICAgIC0gKFJFQURNRSk6IHJ1bnMgb24gYnNkaSAyLjEuCgp3aGFyZGFrZSAyNCBNYXIgOTcgMTM6NTY6NTAKICAgIC0gKEZBUSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQuCgp3aGFyZGFrZSAyNSBNYXIgOTcgMDk6Mzk6MDEKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBhZGRlZCBzeXNsb2NhdGlvbiBhbmQgc3lzY29udGFjdCBleGFtcGxlcy4KCndoYXJkYWtlIDI1IE1hciA5NyAxMzozMDowNQogICAgLSAoSU5TVEFMTCk6IG1pbm9yIGRvYyB1cGRhdGUgZm9yIG5ldyBmbGFncy4KCndoYXJkYWtlIDI2IE1hciA5NyAxNzowNToxMQogICAgLSAobWliZ3JvdXAvc3lzdGVtLmMpOiByZXBvcnQgYWdlbnQgdXB0aW1lIHJhdGhlciB0aGFuIHN5c3RlbSB1cHRpbWUuCgp3aGFyZGFrZSAyMiBBcHIgOTcgMDg6NDI6MDEKICAgIC0gKEZBUSk6IHZhcmlvdXMgdXBkYXRlcy4KCndoYXJkYWtlIDIyIEFwciA5NyAxNTowMjo1NgogICAgLSAobWFueSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gZml4IHZhcmlvdXMgdGhpbmdzLCBtb3N0bHkgb24gbGludXguCgp3aGFyZGFrZSAyMiBBcHIgOTcgMTU6MjA6MzAKICAgIC0gKFJFQURNRS5zbXV4LCBzbXV4LmMsIHNtdXguaCwgc25tcF9iZ3AuYywgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jKToKICAgICAgLSBzbXV4IHN1cHBvcnQgZm9yIGdhdGVkIGZyb20gUm9oaXQgRHViZS4KCndoYXJkYWtlIDIyIEFwciA5NyAxNTo0NzowNgogICAgLSAoY29tbW9uX2hlYWRlci5oKTogcmVtb3ZlIGR1cGxpY2F0ZSAod2FybmluZykgVENQIGRlZmluZXMgb24gb3NmNCBzeXN0ZW1zLgoKd2hhcmRha2UgMjIgQXByIDk3IDE1OjUxOjQ0CiAgICAtIChzbm1wX2JncC5bY2hdLCBzbm1wX3JpcDIuW2NoXSwgc25tcF9vc3BmLltjaF0pOgogICAgICAtIGNvbmZvcm0gdG8gbmV3IG1vZHVsZSBzdGFuZGFyZHMgb2YgY29kaW5nLgoKd2hhcmRha2UgMjIgQXByIDk3IDE2OjQxOjEwCiAgICAtIChzbm1wX2JncC5jLCBzbm1wX3JpcDIuYywgc25tcF9vc3BmLmMsIHNtdXguW2NoXSk6CiAgICAgIC0gc3RhbmRhcmRpemUgaGVhZGVycyBmb3IgYXV0b2NvbmYuCiAgICAgIC0gc211eF9pbml0KCkgLT4gaW5pdF9zbXV4KCkuCiAgICAgIC0gU01VWERFQlVHIC0+IERPREVCVUcgKC0tZW5hYmxlLWRlYnVnZ2luZyB0dXJucyB0aGlzIG9uIGF1dG9tYXRpY2FsbHkpLgoKd2hhcmRha2UgMjIgQXByIDk3IDE3OjQ1OjA5CiAgICAtIChjb25maWcqLCBzbXV4LmMpOiBDaGVjayBmb3IgaGVhZGVycyBhbmQgZGVmaW5lIEZEX0NPUFkgaWYgbm90IGRlZmluZWQuCgp3aGFyZGFrZSAyMiBBcHIgOTcgMjA6NDk6MTUKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlNSApCgp3aGFyZGFrZSAgOSBNYXkgOTcgMjI6Mzg6MTUKICAgIC0gKG1pYi5bY2hdLCBwYXJzZS5bY2hdLCBNYWtlZmlsZS5pbik6IE5ldyBwYXJzZXIgZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBSdW4tdGltZSBjb250cm9sIG9mIGluaXRpYWwgbW9kdWxlIGxvYWRpbmcKICAgICAgICAgICAgICAodXNlcyBlbnYgdmFyaWFibGVzIE1JQkRJUlMsIE1JQlMsIGFuZCBNSUJGSUxFKQogICAgICAtIERlZmluZWQgaW50ZXJmYWNlcyBmb3IgbG9hZGluZyBtb2R1bGVzIGFuZCByZXRyZWl2aW5nIGVudHJpZXMKICAgICAgLSBNb2R1bGUgc2NvcGluZyBub3cgaW5jbHVkZXMgVGV4dHVhbCBDb252ZW50aW9ucwogICAgICAtIFRva2VucyBpbXBsZW1lbnRlZCBpbnRlcm5hbGx5IG5vIGxvbmdlciByZXF1aXJlIGltcG9ydGluZyB0aGUKICAgICAgICBjb3JyZXNwb25kaW5nIG1vZHVsZXMKCndoYXJkYWtlICA5IE1heSA5NyAyMjo0NjozMAogICAgLSAoc211eC5jLCBjb25maWcqKToKICAgICAgLSBjaGVjayBmb3Igc2d0dHkuaCBhbmQgcHJvdG90eXBlIGJldHRlci4KCndoYXJkYWtlICA5IE1heSA5NyAyMjo0Njo0NgogICAgLSAoVE9ETyk6IFVwZGF0ZS4KCndoYXJkYWtlICA5IE1heSA5NyAyMzo1Mjo0MAogICAgLSAoc211eC5bY2hdKTogcGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuOiBwcm90b3R5cGluZy4KCndoYXJkYWtlIDEwIE1heSA5NyAwMDowMzozMgogICAgLSAobWliLmMsIHBhcnNlLmMpOiBwYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW46IHByb3RvdHlwaW5nIChtb3N0bHkpLgoKd2hhcmRha2UgMTAgTWF5IDk3IDAwOjI4OjI1CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBuZWdhdGl2ZSBudW1iZXJzIGluIG1pYnMuCgp3aGFyZGFrZSAxMCBNYXkgOTcgMDA6NDY6NDQKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIGRlYWwgd2l0aCBhbm9ueW1vdXMgSURzLgoKd2hhcmRha2UgMTAgTWF5IDk3IDAwOjUwOjIwCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBkZWFsIHdpdGggYW5vbnltb3VzIElEcyAoZXZlbiBiZXR0ZXIpLgoKd2hhcmRha2UgMTAgTWF5IDk3IDE2OjQxOjIzCiAgICAtIChidWctcmVwb3J0KTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBkb24ndCBzdWJtaXQgYmxhbmsgYnVnLXJlcG9ydHMuCgp3aGFyZGFrZSAxMCBNYXkgOTcgMTY6NDU6MTQKICAgIC0gKEZBUSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgdXBkYXRlLgoKd2hhcmRha2UgMTAgTWF5IDk3IDE2OjUyOjExCiAgICAtIChtaWJfYXBpLjMpOiBOZXcgZmlsZSBmcm9tIERhdmUgU2hpZWxkLgoKd2hhcmRha2UgMTAgTWF5IDk3IDE3OjIzOjIxCiAgICAtIChzbm1wZC5jLCByZWFkX2NvbmZpZy5jLCBzeXN0ZW0uYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZGVmYXVsdCB0cmFwIGNvbW11bml0eS4KICAgICAgLSBtdWx0aXBsZSB0cmFwIHNpbmtzLgoKd2hhcmRha2UgMTIgTWF5IDk3IDA4OjQzOjU5CiAgICAtIChjb25maWcqLCBleHRlbnNpYmxlLmMpOiAgQlNESTMgc3BlY2lmaWMgaGVhZGVycyBhbmQgZGVmaW5lcy4KCndoYXJkYWtlIDEyIE1heSA5NyAwODo0NDoxOQogICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiByZW1vdmVkIENDSEFDSyA/Pz8uCgp3aGFyZGFrZSAxMiBNYXkgOTcgMDg6NDg6MTMKICAgIC0gKElOU1RBTEwsIFJFQURNRSwgVE9ETyk6IGRvY3VtZW50YXRpb24gdXBkYXRlLgoKd2hhcmRha2UgMTIgTWF5IDk3IDA4OjQ5OjIzCiAgICAtIChtYW4vTWFrZWZpbGUuaW4pOiBpbnN0YWxsIG1pYl9hcGkuMy4KCndoYXJkYWtlIDEyIE1heSA5NyAwODo1Mjo0OAogICAgLSAobWlicy91Y2Qtc25tcC50eHQpOiBQYXRjaCBmcm9tIE1hcmlvIERlRmF6aW8gdG8gZml4IHR5cG9zLgogICAgICAtIGNvbXBpbGVzIHVuZGVyIFNOTVBjIDQuMWcuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6MjgKICAgIC0gKElGLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MToyOQogICAgLSAodWNkLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjMxCiAgICAtIChFdGhlckxpa2UtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjMyCiAgICAtIChIT1NULVJFU09VUkNFUy1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6MzMKICAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjM1CiAgICAtIChJUC1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6MzYKICAgIC0gKFNOTVB2Mi1DT05GLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjM3CiAgICAtIChTTk1QdjItTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjM5CiAgICAtIChTTk1QdjItU01JLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjQwCiAgICAtIChTTk1QdjItVEMudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NDIKICAgIC0gKFNOTVB2Mi1UTS50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo0MwogICAgLSAoVENQLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo0NQogICAgLSAoVURQLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo0NgogICAgLSAoU05NUHYyLVBBUlRZLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo0OAogICAgLSAoU05NUHYyLU0yTS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NDkKICAgIC0gKFJGQzEyNzEtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjUxCiAgICAtIChSRkMxMTU1LVNNSS50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo1MgogICAgLSAoUkZDMTIxMy1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTI6MTIKICAgIC0gKHVjZC50eHQpOiB3aG9vcHMuICBSZW1vdmVkLgoKd2hhcmRha2UgMTMgTWF5IDk3IDExOjU3OjEwCiAgICAtIChyZmMxMjcxLnR4dCk6IHJlbW92ZWQuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTI6MDI6MjYKICAgIC0gKHNubXB2Mi50eHQpOiByZW1vdmVkLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEyOjAzOjA0CiAgICAtIChtaWJzL01ha2VmaWxlLmluKTogcmVtb3ZlZCBzbm1wdjIudHh0LCByZmMxMjcxLnR4dC4KCndoYXJkYWtlIDEzIE1heSA5NyAxNDo0ODo1OQogICAgLSAodWNkLXNubXAudHh0KTogQ2hhbmdlZCBJRCB0byBVQ0QtU05NUAoKd2hhcmRha2UgMTMgTWF5IDk3IDE1OjA1OjI4CiAgICAtIChjb25maWcqLCBJTlNUQUxMKTogTmV3IGZsYWdzIHRvIHNldCBwcm9tcHRlZCB2YWx1ZXMgaW5zdGVhZCBvZiBwcm9tcHRpbmcuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTU6MDU6NTMKICAgIC0gKFJFQURNRSk6IGFyY2hpdGVjdHVyZSBsaXN0IHVwZGF0ZS4KCndoYXJkYWtlIDEzIE1heSA5NyAxNTozNjowOAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1vdmVkIGZyb20gdWNkLXNubXAudHh0LgoKd2hhcmRha2UgMTMgTWF5IDk3IDE1OjM2OjUxCiAgICAtICh1Y2Qtc25tcC50eHQpOiBtb3ZlZCB0byBVQ0QtU05NUC1NSUIudHh0Cgp3aGFyZGFrZSAxMyBNYXkgOTcgMTU6Mzg6NDcKICAgIC0gKG1pYnMvTWFrZWZpbGUuaW4pOiB1Y2Qtc25tcC50eHQgLT4gVUNELVNOTVAtTUlCLnR4dC4KCndoYXJkYWtlIDEzIE1heSA5NyAxNjoyMjoxMwogICAgLSAoY29uZmlnKixtaWIuYyk6IE5ldyBjb25maWd1cmUgb3B0aW9uIC0td2l0aC1kZWZhdWx0LW1pYnM9Imxpc3Q6bGlzdCIuCgp3aGFyZGFrZSAxNCBNYXkgOTcgMTE6NDE6MDkKICAgIC0gKE1ha2VmaWxlLmluLCBtaWIudHh0KTogcmVtb3ZlZCBtaWIudHh0IGZyb20gZGlzdHJpYnV0aW9uLiAgTm8gbG9uZ2VyIG5lZWRlZC4KCndoYXJkYWtlIDE0IE1heSA5NyAxMzoxMzoxOQogICAgLSAoTWFrZWZpbGUuaW4pOiB3YXJuIGlmIG1pYi50eHQgaXMgaW5zdGFsbGVkIGZyb20gYSBwcmV2aW91cyByZWxlYXNlLgoKd2hhcmRha2UgMTQgTWF5IDk3IDEzOjE4OjAyCiAgICAtIChNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE9kZGJqb3JuIFN0ZWZmZW5zZW46CiAgICAgIC0gUHJvdGVjdCBhZ2FpbnN0IGJhc2ggbmVlZGluZyAnOydzIG9uIG11bHRpcGxlIHN1YmRpciBtYWtlcy4KCndoYXJkYWtlIDE0IE1heSA5NyAxMzo0NToyNAogICAgLSAoc25tcGQuYyk6ICBUeXBlY2FzdCBtYWxsb2MuCgp3aGFyZGFrZSAxNCBNYXkgOTcgMTU6MDA6MjIKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlNiApCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTE6MjI6MTgKICAgIC0gKGludGVyZmFjZXMuYyk6IHBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbiBmb3IgRnJlZUJTRAoKd2hhcmRha2UgMTUgTWF5IDk3IDExOjIzOjI5CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBmaXggcHVyZWx5IG51bWVyaWMgT0lEcy4KCndoYXJkYWtlIDE1IE1heSA5NyAxMToyODoxNQogICAgLSAoSU5TVEFMTCk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcmVmZXJlbmNlIHRoZSBtYWtldGFyZ2V0IHNjcmlwdC4KCndoYXJkYWtlIDE1IE1heSA5NyAxMToyOTozMwogICAgLSAobWliX2FwaS4zKTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjogIE1JQlMgdmFyaWFibGUgY2FuIGJlIHNldCB0byBBTEwuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTE6MzA6MDEKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiAgaW1wb3J0IGluZGVudGlmaWVycy4KCndoYXJkYWtlIDE1IE1heSA5NyAxMTozMTowMQogICAgLSAoU05NUHYyLVNNSS50eHQpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiAgY2NpdHQgLT4gMC4KCndoYXJkYWtlIDE1IE1heSA5NyAxMTozMjo1NgogICAgLSAobWliLmMsIHBhcnNlLmMpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHByb3RvdHlwaW5nIGFuZCBudWxsIGNoZWNraW5nLgogICAgICAtIGlmIE1JQlMgaXMgc2V0IHRvIEFMTCwgcGFyc2UgZXZlcnl0aGluZyBmb3VuZC4KCndoYXJkYWtlIDE1IE1heSA5NyAxNDozNzozOQogICAgLSAocGFyc2UuYyk6IHBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gZGVhbCB3aXRoIG11bHRpcGxlIG1vZHVsZSBJRCdzIGJlaW5nIHJlZmVyZW5jZWQgb3Igbm9kZXMgZGVmaW5lZC4KICAgICAgLSBzdXByZXNzICJuYW1lIGNsYXNoIiB3YXJuaW5ncyBmb3IgYW5vbnltb3VzIG5vZGVzLgoKd2hhcmRha2UgMTUgTWF5IDk3IDE1OjIyOjUxCiAgICAtIChwYXJzZS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDogIEFkZCBuZXcgbm9kZSBzdHJ1Y3R1cmUgZW50cmllcy4KCndoYXJkYWtlIDE1IE1heSA5NyAxNjowMToxOAogICAgLSAoY29uZmlnKiwgbWliLmMpOgogICAgICAtIENoYW5nZWQgZW52IHZhcmlhYmxlIE1JQkZJTEUgLT4gTUlCRklMRVMgKHNpbmNlIGl0IGlzIGEgbGlzdCBub3cpLgogICAgICAgICh3aWxsIGFjY2VwdCBNSUJGSUxFIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSkuCiAgICAgIC0gQnkgZGVmYXVsdCwgKm5vKiBhZGRpdGlvbmFsIG1pYmZpbGVzIGFyZSBsb2FkZWQgKGllLCBtaWIudHh0IGlzIG5vCiAgICAgICAgbG9uZ2VyIGxvYWRlZCkgYW5kIG11c3QgYmUgdHVybmVkIG9uIHRocm91Z2ggY29uZmlndXJlIG9yIHRoZSBlbnYgdmFyLgogICAgICAtIE5ldyBjb25maWd1cmUgb3B0aW9ucyB0byBzZXQgZGVmYXVsdCBNSUJTLCBNSUJGSUxFUywgTUlCRElSUy4KCndoYXJkYWtlIDE1IE1heSA5NyAxNjoyMjoxOQogICAgLSAoY29uZmlndXJlKiwgSU5TVEFMTCk6CiAgICAgIC0gRGlzcGxheSBkZWZhdWx0cyBpbiBjb25maWd1cmUgLS1oZWxwIGxpbmVzLgoKd2hhcmRha2UgMTUgTWF5IDk3IDE2OjI2OjEyCiAgICAtIChjb25maWd1cmUqLCBJTlNUQUxMKToKICAgICAgLSBXb3JkaW5nIGFuZCBvcmRlciBjaGFuZ2VzIGluIGNvbmZpZ3VyZSAtLWhlbHAgbGluZXMuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTY6NDM6MzcKICAgIC0gKHVkcC5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc2VuOgogICAgICAtIEZpeCB1ZHBfaW5wY2Igc3RydWN0dXJlcy4KCndoYXJkYWtlIDE2IE1heSA5NyAxMToyNTozMAogICAgLSAocGFyc2UuYyk6IFByb3RlY3QgbWFsbG9jIGFnYWluc3QgMCBleHRlcm5hbCBpbXBvcnRzLgoKd2hhcmRha2UgMjAgTWF5IDk3IDA4OjAzOjM1CiAgICAtICh1ZHAuYyk6IE9ubHkgZG8gTWFydGluIEphY29ic3NlbidzIGZpeGVzIGZvciBmcmVlYnNkMi4KCndoYXJkYWtlIDIwIE1heSA5NyAwODoxODo0OQogICAgLSAoU05NUHYyLVRDLnR4dCk6IENvbW1lbnQgb3V0IE9iamVjdFN5bnRheCBpbXBvcnQuCgp3aGFyZGFrZSAyMCBNYXkgOTcgMDg6MTk6MTIKICAgIC0gKHBhcnNlLmMpOiBwcm90ZWN0IGFnYWluc3QgMCBpbXBvcnQgY2FsbHMuCgp3aGFyZGFrZSAyMCBNYXkgOTcgMDg6MTk6MjgKICAgIC0gKG1pYi5jLCBzbm1wX2F1dGguYyk6IGluY2x1ZGUgc3lzL3NlbGVjdC5oIGZvciBBSVguCgp3aGFyZGFrZSAyMCBNYXkgOTcgMTA6MDg6MjUKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlNyApCgp3aGFyZGFrZSAyMCBNYXkgOTcgMTE6MjQ6MjcKICAgIC0gKHVkcC5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uOiAgRml4IG15IGNwcCBzdHVwaWRpdHkuCgp3aGFyZGFrZSAyMCBNYXkgOTcgMTY6NTA6MTgKICAgIC0gKFRPRE8pOiBzbm1wc2V0IHNob3VsZCBjaGVjayBhZ2FpbnN0IHNpemUgZGVmaW5lZCBpbiBtaWIuCgp3aGFyZGFrZSAyMCBNYXkgOTcgMTY6NTA6NTUKICAgIC0gKHBhcnNlLmMpOiBjb2RlIGZyb20gRGF2ZSBTaGllbGQ6IGFkZCBiYWNrIGluIGZpbmRfbm9kZSgpIGZvciBwZXJsIHVzYWdlLgoKd2hhcmRha2UgMjEgTWF5IDk3IDEwOjEzOjM4CiAgICAtIChORVdTKTogVXBkYXRlIGZvciAzLjIuCgp3aGFyZGFrZSAyMSBNYXkgOTcgMTU6Mzg6MzIKICAgIC0gKE5FV1MpOiBDaGFuZ2VzIGZyb20gRGF2ZS4KCndoYXJkYWtlIDIxIE1heSA5NyAxNTo0MDozMQogICAgLSAoRkFRKTogQ2hhbmdlcyBmcm9tIERhdmUuCgp3aGFyZGFrZSAyMiBNYXkgOTcgMTM6MTM6NTkKICAgIC0gKFNOTVB2Mi1NMk0tTUlCLnR4dCk6IHJlc3RvcmVkLiAgR290IHRydW5jYXRlZC4KCndoYXJkYWtlIDIzIE1heSA5NyAxMzozNToxNAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBTZXQgZGVmYXVsdCBNSUIgbGlzdC4KCndoYXJkYWtlIDIzIE1heSA5NyAxMzozNjoxNwogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZXNzZW4gdG8gZml4IGVuZGlhbm5lcyBwcm9ibGVtcy4KCndoYXJkYWtlIDIzIE1heSA5NyAxMzozNzowMgogICAgLSAoSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgU05NUHYyLVRDLnR4dCk6IEZyb20gTmllbHM6IGNoYW5nZSBpbXBvcnQgY2xhdXNlcy4KCndoYXJkYWtlIDIzIE1heSA5NyAxMzozNzozOQogICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZXNzZW4gdG8gZml4IGVuZGllbm5lcyBwcm9ibGVtcy4KCndoYXJkYWtlIDIzIE1heSA5NyAxMzozODoxMwogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZXNzZW4gdG8gZml4IG11bHRpcGxlIGZyZWVzIGluIHYyIHBkdSdzLgoKd2hhcmRha2UgMjMgTWF5IDk3IDEzOjQwOjA5CiAgICAtIChtaWIuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzIHRvIGZpeCBTTk1QIHBlcmwgYWdhaW4uCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTM6NDA6MzIKICAgIC0gKHNubXBfYXBpLmgpOiBDaGFuZ2UgdHJhcCB0eXBlcyBmcm9tIGludCB0byBsb25nLgoKd2hhcmRha2UgMjMgTWF5IDk3IDE2OjIzOjU2CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTggKQoKd2hhcmRha2UgMjMgTWF5IDk3IDE2OjM0OjMzCiAgICAtIChtaWJfYXBpLjMpOiBNb2RpZml5IHRvIG5vdGUgZGVmYXVsdCBtaWJzLgoKd2hhcmRha2UgMjYgTWF5IDk3IDEwOjUwOjIwCiAgICAtIChJTlNUQUxMLCBjb25maWd1cmUpOiBkZWZhdWx0IG1pYnMgbGlzdGVkIGNvcnJlY3RseS4KCndoYXJkYWtlIDI2IE1heSA5NyAxMDo1MjoxMgogICAgLSAoc25tcF9hcGkuaCk6IHRyYXAgbG9uZydzIGJhY2sgdG8gaW50cywgYmFkIHNvbHV0aW9uLgoKd2hhcmRha2UgMjYgTWF5IDk3IDEwOjU2OjE5CiAgICAtIChzbm1wY2hlY2suZGVmKTogbmV3IHZhcmlhYmxlcyB0byBzZXQgd2Fsay9nZXQvc2V0IGNvbW1hbmQgbGluZSB1c2FnZS4KCndoYXJkYWtlIDI2IE1heSA5NyAxMTozODo0MQogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gbmllbHMgQmFnZ2VzZW4gdG86CiAgICAgIC0gY2xvc2UgbWliZmlsZXMgZm9yIE1JQlM9QUxMLgogICAgICAtIEFsbG93IFNZTlRBWCBEaXNwbGF5U3RyaW5nIChTSVpFKDEuLjI1NSkpIGluc2lkZSBPQkpFQ1QtVFlQRS4KCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4xLjIuMSAtPiBWMy4xLjMKCndoYXJkYWtlIDEwIEphbiA5NyAwODo0Mzo0MgogICAgLSAoQ09QWUlORyk6ICBVcGRhdGUgZm9yIDk3LgoKd2hhcmRha2UgMTAgSmFuIDk3IDA4OjQ2OjAwCiAgICAtIChjb25maWcqKTogQ2hlY2sgZm9yIC9kZXYva3N5bXMgZm9yIHNvbGFyaXMga2VybmVsLgoKd2hhcmRha2UgMTAgSmFuIDk3IDA4OjQ2OjM2CiAgICAtIChzbm1wdHJhcGQuYyk6IFJlbW92ZSBicm9rZW4gRkRfU0VUIGNvZGUuCgp3aGFyZGFrZSAxNCBKYW4gOTcgMTY6NDU6MzMKICAgIC0gKFBPUlRJTkcsIFJFQURNRSwgVE9ETyk6ICBBZGRlZCB1Y2Qtc25tcC1jb2RlcnMgYXMgZGVmYXVsdCBtYWlsIGFkZHJlc3MuCgp3aGFyZGFrZSAxNyBKYW4gOTcgMDk6Mjg6NTYKICAgIHBhdGNoIG5pZWxzLjAKCndoYXJkYWtlIDE3IEphbiA5NyAxMTo1MTo0MAogICAgLSAoc25tcGQuYywgZXh0ZW5zaWJsZS5jKToKICAgICAgLSBOZXcgYXJnIC1jIEZJTEU6ICAJICAgUmVhZCBGSUxFIGFzIGEgY29uZmlndXJhdGlvbiBmaWxlIGFzIHdlbGwuCiAgICAgIC0gTmV3IGFyZyAtQzogICAgICAgCSAgIERvbid0IHJlYWQgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZpbGVzLgogICAgICAtIE5ldyBlbnYgU05NUENPTkZQQVRIOiAgUmVhZCBzbm1wZHssLmxvY2FsfS5jb25mIGZpbGVzIGluIDogc2VwZXJhdGVkIHBhdGguCgp3aGFyZGFrZSAxNyBKYW4gOTcgMTE6NTg6NDYKICAgIC0gKHNubXBkLmMpOgogICAgICAtIFVzYWdlKCkgdXBkYXRlIGFuZCB2ZXJzaW9uIHByaW50b3V0IHVwZGF0ZS4KCndoYXJkYWtlIDE3IEphbiA5NyAxNDo1NToyOAogICAgRGF2ZSBTaGllbGQgcGF0Y2hlcwoKd2hhcmRha2UgMjAgSmFuIDk3IDExOjE3OjUzCiAgICBOaWVsJ3MgcGF0Y2hlcyBpbnRlZ3JhdGVkCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6MDk6MjUKICAgIC0gUGF0Y2hlcyBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgIC0gaW1wbGVtZW50ZWQ6IGludGVyZmFjZXMuaWZUYWJsZS5pZkVudHJ5LmlmU3BlY2lmaWMsCiAgICAgICAgICBpcC5pcFJvdXRpbmdEaXNjYXJkcywKICAgICAgICAgIGlwLmlwQWRkclRhYmxlLmlwQWRkckVudHJ5LmlwQWRFbnRSZWFzbU1heFNpemUsCiAgICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVNYXNrICwKICAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZU1ldHJpYzUsCiAgICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVJbmZvLCBpcC5pcE5ldFRvTWVkaWFUYWJsZSwKICAgICAgICAgIHVkcC51ZHBUYWJsZS4KICAgICAtIHVkcCBjb25uZWN0aW9uIHRhYmxlLgogICAgIC0gaXBOZXRUb01lZGlhLgogICAgCiAgICAtIFBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbiA8TmllbHMuQmFnZ2VzZW5AdW5pLWMuZGs+OgogICAgIC0gdWRwTm9Qb3J0LCB0Y3BJbkVycnMgZml4ZXMgZm9yIFNvbGFyaXMuCiAgICAgLSBsaW51eCBhcHBsaWNhdGlvbiBzdXBwb3J0LgogICAgIC0gc25tcCB2YXJpYWJsZSBncm91cC4KICAgICAtIHNpbXBsZSBjb2xkIHN0YXJ0IHRyYXBzIHZpYSBleGVjKCdzbm1wdHJhcCcpLgogICAgIC0gTUlCIHBhcnNlciBmaXhlcy4KICAgICAtIE1lbW9yeS9mcmVlIGFsbG9jYXRpb24gZml4ZXMuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6MjI6NTMKICAgIC0gUGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxOaWVscy5CYWdnZXNlbkB1bmktYy5kaz46CiAgICAgLSAoc25tcF9jbGllbnQuYyk6IFdhaXQgMTIwIHNlY29uZHMgYmVmb3JlIHJldHVybmluZy4KCndoYXJkYWtlIDIwIEphbiA5NyAxNTozNzowOAogICAgLSAoY29uZmlnKik6IEF1dG9oZWFkZXIgaXMgZHVtYjogIFB1dCBtYWNybyBkZWZpbmVzIGJlbG93ZSBAQk9UVE9NQCBzeW1ib2wuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6Mzg6NTkKICAgIC0gKHNubXBfdmFycy5jLCBleHRlbnNpYmxlLmMsIHJlYWRfY29uZmlnLmMpOiBSZW1vdmUgQU5TSSBjcHAgI2VsaWYncy4KCndoYXJkYWtlIDIwIEphbiA5NyAxNTo1MDozNwogICAgLSAoc25tcF92YXJzLmMpOiBic2RpICNpZmRlZiBmaXhlcy4KCndoYXJkYWtlIDIwIEphbiA5NyAxNTo1NTo0NQogICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzb24gPG1hcnRpbkBleG1hbmRhdG8uc2U+OgogICAgICAtIGFkZCBic2RpIHRvIHNvbWUgI2lmZGVmcy4KCndoYXJkYWtlIDIwIEphbiA5NyAxNTo1ODo1MQogICAgLSAoZXh0ZW5zaWJsZS5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uIDxtYXJ0aW5AZXhtYW5kYXRvLnNlPjoKICAgICAgLSB3YXRjaCBvdXQgZm9yIHN0cmluZyBsZW5ndGhzIG9uIHZlcnNpb24gZGVzYyBhbmQgc3lzbmFtZS4KCndoYXJkYWtlIDIwIEphbiA5NyAxNjozODoyMAogICAgcGF0cmljZS4xIHBhdGNoCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTY6NDM6MjUKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfY2xpZW50LltjaF0pOgogICAgICAtIFBhdGNoIGZyb20gUGF0cmljZSBWQU5BQ0tFUiA8dmFuYWNrZXJAd29ybGRuZXQuZnI+OgogICAgICAgIC0gZml4IHJlcXVlc3QgZGVsZXRpb25zIGluIHNubXBfcmVhZCgpLgogICAgICAgIC0gYWRkZWQgcmV0dXJuIGFyZ3VtZW50IHRvIHNubXBfYWRkX251bGxfdmFyKCkuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTY6NTk6MDIKICAgIC0gKGV4dGVuc2libGUuYyk6IFBhdGNoIGZyb20gc3hqemhhbmdAc3NzLnNzaTEuY29tOgogICAgICAgIC0gZml4IGRpc2sgcmVwb3J0aW5nIG9uIHN1bm9zIDQuMS4zIHdpdGggT0RTIDEuMC4KCndoYXJkYWtlIDIwIEphbiA5NyAxNjo1OTo1NgogICAgdmVyc2lvbiB0YWcgKCAzLjEuMy5wcmUxICkKCndoYXJkYWtlIDIxIEphbiA5NyAwODozMzowNAogICAgLSAocmVhZF9jb25maWcuYyk6IFBhdGNoIGZyb20gS2FybCBMZWhlbmJhdWVyIDxrYXJsQGhhbW1lcjEub3BzLk5lb1NvZnQuY29tPjoKICAgICAgLSAjaWYgRE9ERUJVRyAtPiAjaWZkZWYgRE9ERUJVRy4KCndoYXJkYWtlIDIxIEphbiA5NyAwODozMzo1MgogICAgLSAoc25tcGQuYyk6IHJlbW92ZSBzZWNvbmQgY2hhciBkZWZpbml0aW9uLgoKd2hhcmRha2UgMjEgSmFuIDk3IDA4OjM0OjMyCiAgICAtIChzbm1wX2NsaWVudC5oKTogcmVtb3ZlIHNlY29uZCAod3JvbmcpIGZ1bmN0aW9uIHByb3RvdHlwZS4KCndoYXJkYWtlIDIxIEphbiA5NyAwOToxNzo0MgogICAgLSAoc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMpOgogICAgICAtIFBhdGNoIGZyb20gS2FybCBMZWhlbmJhdWVyIDxrYXJsQGhhbW1lcjEub3BzLk5lb1NvZnQuY29tPgogICAgICAgIC0gaGFuZGxlIG11bHRpcGxlIGludGVyZmFjZSBuYW1lcyA+IDEwIHByb3Blcmx5LgoKd2hhcmRha2UgMjkgSmFuIDk3IDEwOjQ3OjQwCiAgICBidWcgcmVwb3J0aW5nIHNjcmlwdCBhZGQKCndoYXJkYWtlIDI5IEphbiA5NyAxMjowNzowMAogICAgLSAoYnVnLXJlcG9ydCk6CiAgICAgLSBBbHdheXMgdXNlIG11bHRpcGFydDogdmVyc2lvbiBpbmZvIGFuZCBjb25maWcuY2FjaGUgYXJlIG9uZS4KICAgICAtIHJlLWFycmFuZ2VkIGEgYml0LgogICAgIC0gQWRkZWQgaW50cm9kdWN0aW9uLgogICAgIC0gR3Vlc3MgYXQgZG9tYWluIG5hbWUgaWYgcG9zc2libGUuCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTI6MDc6NTkKICAgIC0gKGFjY29uZmlnLmgpOgogICAgIC0gU05NUEJMT0NLID0gIVNOTVBCTE9DSwoKd2hhcmRha2UgMjkgSmFuIDk3IDEyOjA5OjA1CiAgICAtIChhY2xvY2FsLm00KTogRml4IGNoZWNrX3N0cnVjdF9mb3IgdG8gZGVmaW5lIHRoaW5ncyBjb3JyZWN0bHkuCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTI6MTA6MjgKICAgIC0gKGNvbmZpZ3VyZS5pbik6IE5ldyBwcyBvcHRpb25zIHRvIGNoZWNrIGZvci4KCndoYXJkYWtlIDI5IEphbiA5NyAxMjoxMTowNAogICAgLSAoRkFRKTogcmV2aXNpb24gb25lIQoKd2hhcmRha2UgMjkgSmFuIDk3IDEyOjExOjI5CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlKTogdXBkYXRlCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTI6NTg6NDYKICAgIC0gKGtlcm5lbC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIEZpeCB2YXJpb3VzIHdhcm5pbmdzL2Vycm9ycy4KICAgICAgLSBJbXBsZW1lbnQgcmVhbCB0cmFwcy4KCndoYXJkYWtlIDI5IEphbiA5NyAxMzowMzoxNQogICAgLSAodmVyc2lvbnRhZyk6IE1vZGlmeSAuLi8uLi9idWctcmVwb3J0IGFzIHdlbGwuCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTM6MDg6MTEKICAgIC0gKGJ1Zy1yZXBvcnQpOgogICAgICAtIGNoYW5nZSB0byBhZGRyZXNzIChiYWNrKSB0byB1Y2Qtc25tcC1jb2RlcnMuCiAgICAgIC0gQWRkIGEgdHJhcCBvbiBzaWduYWxzIHRvIHJlbW92ZSB0bXAgZmlsZXMuCgp3aGFyZGFrZSAzMSBKYW4gOTcgMDk6NTg6MTAKICAgIC0gKGNvbmZpZyopOiBDaGVjayBmb3Iga3N0YXQuaCBhbmQgaWYgc3lzY3RsIGNhbiByZWFkIHRoZSBib290dGltZS4KCndoYXJkYWtlIDMxIEphbiA5NyAxMDowMTo1OQogICAgLSAoc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzb246CiAgICAgIC0gQ2hhbmdlIHNvbWUgc3lzdGVtIHNwZWNpZmljIGlmZGVmcyB0byBDQU5fVVNFX1NZU0NUTC4KICAgICAgLSBGaXggY29tcGxpYXRpb24gZXJyb3JzIG9uIGJzZGkyLgogICAgICAtIEZpeCByb3V0aW5nIHRhYmxlcyBmb3Igc2ltaWxhci4KCndoYXJkYWtlIDMxIEphbiA5NyAxMDo0OTowNwogICAgLSAodmVyc2lvbnRhZyk6IHVoLCBjb21taXQgaXQgYWdhaW4uCgp3aGFyZGFrZSAzMSBKYW4gOTcgMTA6NTA6MDQKICAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogZmlyZSBvZmYga3NoIGlmIGhwdXggJiYgc2guCgp3aGFyZGFrZSAzMSBKYW4gOTcgMTA6NTk6NDMKICAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogY2hhbmdlZCBhcmNoIHRvIGhwcGEgYW5kIG1ha2Ugc3VyZSAvYmluL2tzaCBleGlzdHMuCgp3aGFyZGFrZSAzMSBKYW4gOTcgMTE6MDM6MTEKICAgIHZlcnNpb24gdGFnIHVwZGF0ZQoKd2hhcmRha2UgIDMgRmViIDk3IDEwOjAyOjEyCiAgICAtIChidWctcmVwb3J0KTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBkb21haW4gbmFtZSBmaXggYW5kIGVkaXRvciBib21iIG91dC4KCndoYXJkYWtlICAzIEZlYiA5NyAxMDowMzoxMAogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGNvbW1lbnQgb3V0IHBvc3NpYmxlIHNlY3VyaXR5IHByb2JsZW0gbGluZXMuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTA6NDY6MDIKICAgIC0gKGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gQ2hlY2sgZm9yIHdob2FtaSwgbG9nbmFtZS4KICAgICAgLSBEb24ndCBwYXNzIG51bGwgYXJncyB0byBrc2guCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTA6NDc6MDQKICAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZAogICAgICAtIE1hcmsgc3R1ZmYgZm9yIGxhdGVyIGNoYW5nZXMuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTA6NDg6MDYKICAgIC0gKHNubXBsaWIvc3lzdGVtLmMpOiAgVXNlIENBTl9VU0VfU1lTQ1RMIGluc3RlYWQgb2YgYnNkbGlrZS4KCndoYXJkYWtlICAzIEZlYiA5NyAxMTo1MDoyMwogICAgLSAoY29uZmlnKik6CiAgICAgIC0gQ2hlY2sgZm9yIGlyaXggNi4yIGhlYWRlcnMuCiAgICAgIC0gQ2hlY2sgaWYgX0tFUk5FTCBuZWVkcyB0byBiZSBkZWZpbmVkIGZvciBpcml4IGFuZCBpZm5ldCB1c2FnZS4KICAgICAgLSBVc2UgdGhlIGZvdW5kIFVOQU1FIHByb2dyYW0gaW5zdGVhZCBvZiBhc3N1bWluZyB3ZSBoYXZlIGl0LgoKd2hhcmRha2UgIDMgRmViIDk3IDEyOjQ0OjUxCiAgICAtIChzbm1wbGliL3N5c3RlbS5jKTogdHlwbzogIG5lZWRzIGEgc3BhY2UgYmV0d2VlbiAnc3RhdGljJyBhbmQgJ3N0cnVjdCcuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTI6NDc6NTgKICAgIC0gKHNubXBfdmFycy5jKTogYWRkIHNvbWUgaXJpeCBhcHByb3ByaWF0ZSBpbmNsdWRlcy4KCndoYXJkYWtlICAzIEZlYiA5NyAxMjo1MTowNAogICAgLSAoUkVBRE1FKTogcmVtb3ZlIHByb2plY3QgaGlzdG9yeS4KCndoYXJkYWtlICAzIEZlYiA5NyAxMzoxNToxMQogICAgLSAoUkVBRE1FKToKICAgICAgLSBhZGRlZCBGQVEgcG9pbnRlci4KICAgICAgLSBEYXZlJ3MgRW5nbGlzaCBwb2ludGVycyAoaWUsIGhlIHByb29mZWQgaXQgYW5kIEksIHVoLCBkb24ndC4uLikuCiAgICAgIC0gc3dpdGNoIGZ0cCBtaXJyb3IuCiAgICAgIC0gYnVnLXJlcG9ydCBzY3JpcHQgbWVudGlvbmVkLgogICAgICAtIEkgLT4gV2UsIG1lIC0+IHVzLi4uCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTM6MzM6MTEKICAgIC0gKFJFQURNRSwgTkVXUywgVE9ETyk6IFVwZGF0ZSBmb3IgMy4xLjMuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTM6NTM6MDQKICAgIC0gKGJ1Zy1yZXBvcnQpOiBtb3ZlIGNvbmZpZy5jYWNoZSB0byBlbmQgb2YgbWVzc2FnZS4KCndoYXJkYWtlICAzIEZlYiA5NyAxMzo1NTowNQogICAgdmVyc2lvbiB0YWcgKCAzLjEuMy5wcmUzICkKCndoYXJkYWtlICA0IEZlYiA5NyAwOTozNTowMgogICAgLSAoRkFRKTogRGF2ZSdzIGxhdGVzdCByZXZpc2lvbi4KCndoYXJkYWtlICA0IEZlYiA5NyAwOTozNTozNwogICAgLSAoVE9ETyk6IEFkZGVkIHN1Z2dlc3Rpb25zIGZyb20gdWNkLXNubXAtY29kZXJzLgoKd2hhcmRha2UgIDQgRmViIDk3IDA5OjM2OjQzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IEZpeCBocHV4IHByb2JsZW1zLCAqYWdhaW4qLgoKd2hhcmRha2UgIDQgRmViIDk3IDA5OjM3OjI2CiAgICAtIChtaWIuYyk6IFBhdGNoIGZyb20gU2ltb246IGNvbW1lbnQgI2lmZGVmIGVuZGluZ3MgZm9yIEFOU0kgY29tcGxpZXJzLgoKd2hhcmRha2UgIDQgRmViIDk3IDA5OjQxOjM5CiAgICAtIChGQVEpOiBBZGRlZCBUT0MgYW5kIGF1dG9yIG5vdGVzIDstKS4KCndoYXJkYWtlICA1IEZlYiA5NyAxNjozMzowMQogICAgLSAoRkFRKTogRGF2ZSB1cGRhdGVkIGFyY2hpdGVjdHVyZSBsaXN0cy4KCndoYXJkYWtlICA1IEZlYiA5NyAxNjozMzozMgogICAgLSAoVE9ETyk6IG1pc2MgcmVxdWVzdGVkIGFkZGl0aW9ucy4KCndoYXJkYWtlICA1IEZlYiA5NyAxNzowNzoyNQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQdXQgL2Rldi9rc3ltcyBhaGVhZCBvZiAva2VybmVsL3VuaXguCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6MTE6MTUKICAgIC0gKG1hbnkpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNubXAgbWliIGdyb3VwIGNsZWFudXBzLgogICAgICAtIHRyYXAgZ2VuZXJhdGlvbiBjbGVhbnVwcy4KICAgICAgLSBhZGRlZCBtYW4gZW50cmllcyBmb3IgdHJhcCBnZW5lcmF0aW9uLgogICAgICAtIGltcHJvdmVkIGFnZW50IGRlYnVnZ2luZyBvdXRwdXQgd2l0aCBhZ2VudCdzIC1kIGZsYWcuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6MTM6MDkKICAgIC0gKHN5c3RlbS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBmaXggbmxpc3QgcHJvYmxlbXMuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6MjA6MTAKICAgIC0gKGJ1Zy1yZXBvcnQpOiBDaGFuZ2Ugc3ViamVjdCBsaW5lIHRvIHNob3J0ZW4gYW5kIGZvcmNlIGJldHRlciBkZXNjcmlwdGlvbi4KCndoYXJkYWtlICA1IEZlYiA5NyAxNzoyMzo0MQogICAgLSAodGNsLCB0aywgc25tcHRjbCk6IE51a2VkLgoKd2hhcmRha2UgIDUgRmViIDk3IDE3OjI1OjAzCiAgICAtIChORVdTKTogcmVtb3ZlZCB0Y2wgc3R1ZmYuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6Mjk6NTQKICAgIC0gKE1ha2VmaWxlLmluLCBjb25maWd1cmUuaW4pOiByZW1vdmVkIHRjbCBzdHVmZi4KCndoYXJkYWtlICA1IEZlYiA5NyAxNzo0MTo1MAogICAgdmVyc2lvbiB0YWcgKCAzLjEuMy5wcmU0ICkKCndoYXJkYWtlIDEwIEZlYiA5NyAwOToyMjowMwogICAgLSAoRkFRKTogRGF2ZSBTaGllbGRzJyBhZGRpdGlvbnM6ICBmaW5kaW5nIG1vcmUgaW5mby4KCndoYXJkYWtlIDEwIEZlYiA5NyAwOToyMjo1MwogICAgLSAoc25tcG5ldHN0YXQvbWFpbi5jKTogUmVtb3ZlIG1hbGxvYyBwcm90b3R5cGUsIG5vdyBpbiBzdGRsaWIuaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjEuMiAtPiBWMy4xLjIuMQoKd2hhcmRha2UgIDUgRGVjIDk2IDA5OjEzOjU2CiAgICAtIChpZi5jKTogI2lmbmRlZiAtPiAjaWZkZWYgZm9yIHNpZ3NldC4KIAp3aGFyZGFrZSAgNSBEZWMgOTYgMDk6MTQ6NTkKICAgIC0gKG1kNS5jKTogcmVtb3ZlIGFuc2kgc3BlY2lmaWMgQyBmZWF0dXJlcyAodW5zaWduZWQgY29uc3RhbnRzKS4KIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4xLjEgLT4gVjMuMS4yCgp3aGFyZGFrZSAxNyBPY3QgOTYgMDc6MDI6NTgKICAgIHZlcnNpb24gdGFnICggMy4xLjEuQlNESSApCgp3aGFyZGFrZSAzMCBPY3QgOTYgMTM6NDc6MjEKICAgIC0gKFBPUlRJTkcsUkVBRE1FKTogQWRkIGEgbmV3IFBPUlRJTkcgZmlsZSB0byByZWZlcmVuY2UgYXV0b2NvbmYgcGxlZS4KCndoYXJkYWtlIDMwIE9jdCA5NiAxMzo0OTowOQogICAgLSAoY29uZmlnKiwgZWNlLW1pYi5kZWYpOgogICAgICAtIENoYW5nZSBleHRlbnNpYmxlIG1pYiBsb2NhdGlvbiB0byB1Y2RhdmlzIGVudGVycHJpc2UgbWliOiAyMDIxLgogICAgICAtIFJlbW92ZSBhc3NvY2lhdGVkIHByb21wdGluZyBmcm9tIGNvbmZpZ3VyZSBzY3JpcHQgYW5kIGV0Yy4KCndoYXJkYWtlIDMxIE9jdCA5NiAxNzowNjoxNgogICAgLSAocmVhZF9jb25maWcuYyk6IG51bWRpc2tzIHdhcyBiZWluZyBpbmNyZW1lbnRlZCBiZWZvcmUgbGFzdCB1c2FnZS4KCndoYXJkYWtlICAxIE5vdiA5NiAwODo1NDoxMQogICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW4gIDxzaW1vbkBzd2l0Y2guY2g+OgogICAgICAtIGFzbl9idWlsZF91bnNpZ25lZF9pbnQsIGFzbl9idWlsZF91bnNpZ25lZF9pbnQ2NDoKICAgICAgICAtIERvbid0IHRyeSB0byBzdHJpcCBGRnMgZnJvbSB0aGUgaGlnaCBlbmQgb2YgdW5zaWduZWQgdmFsdWVzLgogICAgICAgIC0gU2tpcCB0aGUgc3RyaXBwaW5nIGNvZGUgZW50aXJlbHkgaWYgd2UgaGF2ZSB0byBhZGQgYSBudWxsIGJ5dGUuCgp3aGFyZGFrZSAgNCBOb3YgOTYgMDk6MzA6NDYKICAgIC0gKGNvbmZpZyosIHNubXBfdmFycy5jLCBleHRlbnNpYmxlLmMpOiAgTW9yZSBpbmNsdWRlIGNoZWNrcyBmb3IgbGludXguCgp3aGFyZGFrZSAgNCBOb3YgOTYgMTA6MDg6NDkKICAgIC0gKGNvbmZpZyopOiBDaGVjayBmb3Igbmxpc3QgaW4gLWxtbGQgKGlyaXgpLgoKd2hhcmRha2UgIDcgTm92IDk2IDA5OjE2OjQ1CiAgICAtIE5ldEJTRCAzLjEuMC4xIGJyYW5jaCBtZXJnZS4KCndoYXJkYWtlICA3IE5vdiA5NiAwOToyNDoyMwogICAgLSBOaWVscyAzLjEuMSBicmFuY2ggbWVyZ2UuCgp3aGFyZGFrZSAgNyBOb3YgOTYgMDk6MzU6NTIKICAgIC0gQlNEaTIgMy4xLjEgYnJhbmNoIG1lcmdlLgoKd2hhcmRha2UgIDcgTm92IDk2IDA5OjU3OjE2CiAgICAtICh2ZXJzaW9udGFnKTogT25seSB0YWcgcmVsZWFzZSB2ZXJzaW9ucyAoRXh0KikuCgp3aGFyZGFrZSAgNyBOb3YgOTYgMTQ6MTY6MDAKICAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogQ2hhbmdlZCBkZWZhdWx0IFNOTVBWMkFVVEggdG8gU05NUFYxLgoKd2hhcmRha2UgIDcgTm92IDk2IDE0OjE2OjM5CiAgICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogaWZkZWYncyBhcm91bmQgc3RyaW5ncy5oLgoKd2hhcmRha2UgIDcgTm92IDk2IDE0OjE3OjE3CiAgICAtIChzbm1wX3ZhcnMuYyk6IGlmZGVmIHR5cG9zLgoKd2hhcmRha2UgIDcgTm92IDk2IDE0OjE5OjMzCiAgICAtIChtaWIuYyk6IHR5cGVjYXN0IGZvciBzcHJpbnRfb2JqaWQoKS4KCndoYXJkYWtlICA4IE5vdiA5NiAxNzowMzo0NwogICAgLSAoTWFrZWZpbGUuaW4pOiBDcmVhdGVkIGEgJ3RvdWNoaXQnIHRvIHRvdWNoIGNvbmZpZyBmaWxlcyBwcm9wZXJseS4KCndoYXJkYWtlICA4IE5vdiA5NiAxNzowNjo0NgogICAgLSAoTWFrZWZpbGUuaW4pOiBGaXhlZCAndG91Y2hpdCcuCgp3aGFyZGFrZSAxNCBOb3YgOTYgMTU6MTQ6NTAKICAgIC0gKGV4dGVuc2libGUuYyk6IFVzZSBzdGF0ZnMgaWYgc3RhdHZmcyBpcyB1bmF2YWlsYWJsZS4KCndoYXJkYWtlIDE0IE5vdiA5NiAxNToxNjoyMgogICAgLSAoc25tcF92YXJzLmMpOgogICAgICAtICNpZmRlZiB0eXBvLgogICAgICAtIHByb3RvdHlwZSBmb3IgSW50ZXJmYWNlX1NjYW5fSW5pdCgpLgogICAgICAtIENoZWNrIGZvciBleGlzdGFuY2Ugb2YgdGNwc3RhdC50Y3BzX3Jjdm1lbWRyb3AgYmVmb3JlIHVzaW5nLgoKd2hhcmRha2UgMTQgTm92IDk2IDE1OjE3OjM2CiAgICAtIChjb25maWcqKToKICAgICAgLSBDaGVjayBmb3IgZXhpc3RhbmNlIG9mIHRjcHN0YXQudGNwc19yY3ZtZW1kcm9wLgogICAgICAtIENoZWNrIGZvciBzeXMvdmZzLmguCgp3aGFyZGFrZSAxNCBOb3YgOTYgMTU6MjQ6MjQKICAgIC0gKHNubXB0cmFwLmMsIGluZXQuYywgcm91dGUuYyk6IHR5cGVjYXN0aW5nIHdhcm5pbmcgZml4ZXMuCgp3aGFyZGFrZSAxNSBOb3YgOTYgMTY6NDM6MzMKICAgIC0gKGNvbmZpZyosIGV4dGVuc2libGUuYyk6IE1ha2UgdW5hbWUgY2FsbHMgd29yayBjb3JyZWN0bHkuCgp3aGFyZGFrZSAxNSBOb3YgOTYgMTY6NDQ6MTEKICAgIC0gKHBhcnNlLmMpOiAgQWRkIGJhY2sgaW4gInJlYWRpbmcgbWliLi4uIiBkZWJ1Z2dpbmcgc3RhdG1lbnRzLgoKd2hhcmRha2UgMjIgTm92IDk2IDA4OjE4OjI5CiAgICAtIChzbm1wX3ZhcnMuYyk6IFRyYXNoIGludGVyZmFjZSBjYWNoaW5nLgoKd2hhcmRha2UgMjIgTm92IDk2IDA5OjA2OjEwCiAgICAtIChzbm1wX3ZhcnMuYyk6IE1lcmdlIGZyb20gRnJlZUJTRDItMy0xLTEuCiAgICAgIC0gQWRkIGNoZWNrcyBmb3IgaWZuZXQuW2lvXWJ5dGVzLgoKd2hhcmRha2UgMjIgTm92IDk2IDA5OjE0OjIyCiAgICAtIChjb25maWcqKTogQWRkIGNoZWNrcyBmb3IgaWZuZXQuW2lvXWJ5dGVzLgoKd2hhcmRha2UgMjIgTm92IDk2IDExOjM1OjI5CiAgICAtIChhZ2VudC9leHRlbnNpYmxlLyouYywgbmV3OiBleHRwcm90by5oKTogIFJlbW92ZWQgYWxsIC1XYWxsIHdhcm5pbmdzIQoKd2hhcmRha2UgMjIgTm92IDk2IDE0OjM4OjA1CiAgICAtIChjb25maWcqLCBpbnN0YWxsLXNoLCBta2luc3RhbGxkaXJzKTogVXBncmFkZWQgdG8gYXV0b2NvbmYgMi4xMS4KCndoYXJkYWtlIDIyIE5vdiA5NiAxNToxMDozNgogICAgLSAoZXh0ZW5zaWJsZS5jLCByZWFkX2NvbmZpZy5jKTogcmVtb3ZlZCBtb3JlIC1XYWxsIHdhcm5pbmdzLgoKd2hhcmRha2UgMjQgTm92IDk2IDE2OjI1OjA3CiAgICAtIChrZXJuZWwuYywgY29uZmlnKiwgSU5TVEFMTCk6ICBOZXcgY29uZmlndXJlIHN3aXRjaDogIC0td2l0aG91dC1yb290LWFjY2Vzcy4KICAgICAgLSBUaGUgYWdlbnQgZG9lc24ndCBleGl0IGlmIGl0IGNhbid0IG9wZW4gL2Rldi9rbWVtLgoKd2hhcmRha2UgMjQgTm92IDk2IDE2OjQ1OjI3CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS4yLnByZTEgKQoKd2hhcmRha2UgMjUgTm92IDk2IDA4OjQ0OjAzCiAgICAtICh7YWdlbnQsYXBwc30vTWFrZWZpbGUuaW4pOiBQdXQgbGlic25tcC5hIGluIGZyb250IG9mIC1sIGxpYnMuCgp3aGFyZGFrZSAyNSBOb3YgOTYgMDk6MTU6NTcKICAgIC0gKGNvbmZpZyosIHNubXBfaW1wbC5oKTogTW92ZWQgdm9pZCAtPiBjaGFyIGRlZmluZSB0byBhIGNvbmZpZ3VyZSB0ZXN0LgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjAyOjA2CiAgICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgIC0gQ2hhbmdlIGNvbW1lbnRzIHRvIHJlZmxlY3Qgd2hhdCBpdHMgYWN0dWFsbHkgbG9va2luZyBhdC4KICAgICAgLSBSZW1vdmUgaWZkZWYgYXJvdW5kIGlmbmV0IGRlY2xhcmF0aW9ucy4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODowMzo0NwogICAgLSAoZXh0ZW5zaWJsZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAgLSBSZW1vdmUgcmV0dXJuKDApIG9uIHZvaWQgaW5pdF9leHRlbnNpYmxlKCkuCgp3aGFyZGFrZSAyNyBOb3YgOTYgMDg6MDY6MDQKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogRGVmYXVsdCBzeXNsb2MgVUNEYXZpcyAtPiBVbmtub3duLgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjIxOjIwCiAgICAtIChJTlNUQUxMKTogVHlwbzogIDMuMS4zIC0+IDMuMC4zLgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjIxOjM0CiAgICAtIChSRUFETUUpOiBVcGRhdGUuCgp3aGFyZGFrZSAyNyBOb3YgOTYgMDg6MzQ6MTIKICAgIC0gKGlmLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgICAtIFdhdGNoIG91dCBmb3IgaW50ZXJmYWNlIG5hbWVzIHdpdGggJyAnIGluIHRoZW0uCiAgICAgIC0gUmVzZXQgc2lnbmFsIG9uIEJTRCBzaWduYWwgaW1wbGVtZW50YXRpb25zLgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjQ1OjQ2CiAgICAtIChpZi5jKTogUmVzZXQgc2lnbmFsIG9uIGFsbCB0eXBlcyBvZiBzaWduYWwgaW1wbGVtZW50YXRpb25zLgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjU2OjQ0CiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IFRydW5jYXRlIHN5c3RlbSBuYW1lcyBiZXlvbmQgWy1fXS4qLgoKd2hhcmRha2UgIDIgRGVjIDk2IDA4OjU1OjQ5CiAgICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgIC0gaWZQaHlzQWRkciAtIGluIEludGVyZmFjZV9HZXRfRXRoZXJfQnlfSW5kZXgsIEhQLVVYIGhhcyB0aGUgc2FtZQogICAgICAgICAgICBFdGhlckFkZHIgc3RydWN1cmUgYXMgTUlQUy4KICAgIAogICAgICAtIGlwQWRFbnRJZkluZGV4IC0gaW4gdmFyX2lwQWRkckVudHJ5LCB0aGVyZSBpcyBhIGZhbHNlIG1hdGNoIG9uCiAgICAgICAgICAgIHRoZSBsb29wYmFjayBpbnRlcmZhY2UsIGdpdmluZyB0aGUgd3JvbmcgYW5zd2VyIG9mIHRoZSBmaXJzdAogICAgICAgICAgICBpbnRlcmZhY2UgaW5kZXguCiAgICAKICAgICAgLSB1ZHBJbkVycm9ycyAtIGluIHZhcl91ZHAsIHRoZSBjb3VudCBvZiBVRFAgZXJyb3JzIG9taXRzIGRpc2NhcmRlZAogICAgICAgICAgICBwYWNrZXRzLiAgU29tZSBzeXN0ZW1zIChpLmUuIEhQLVVYKSBoYXZlIGV4dGVuZGVkIHRoZSB1ZHBzdGF0CiAgICAgICAgICAgIHN0cnVjdHVyZSB0byBpbmNsdWRlIHRoZXNlLiAgSSd2IHR3ZWFrZWQgdGhpcyBhbmFsb2dvdXMgdG8gYQogICAgICAgICAgICBzaW1pbGFyIGFkZGl0aW9uIGluIHRoZSB0Y3BzdGF0IHN0cnVjdHVyZS4KICAgIAogICAgICAtIHRjcENvbm5TdGF0ZSAtIEhQLVVYIGhhcyBhZGRlZCBhbiBleHRyYSBzdGF0ZSBpbnRvIHRoZSBsaXN0LCB3aGljaAogICAgICAgICAgICB0aHJvd3MgdGhlIHJlc3Qgb2YgdGhlbSBvdXQuCgp3aGFyZGFrZSAgMyBEZWMgOTYgMTA6MDQ6MDIKICAgIC0gKGNvbmZpZyosIHNubXBfdmFycy5jKToKICAgICAgLSBXcm90ZSBBQ19DSEVDS19TVFJVQ1RfRk9SIGFuZCB1c2UgaXQuCiAgICAgIC0gTWFrZSBBQ19DSEVDS19JRk5FVF9GT1IgdXNlIGFib3ZlLgogICAgICAtIENoYW5nZXF1b3RlICdbXScgLT4gJycgYXJvdW5kIHNlZCBleHByZXNzaW9uIHdpdGggW11zICgtRG9zdHlwZSkuCgp3aGFyZGFrZSAgMyBEZWMgOTYgMTA6MDU6MTcKICAgIC0gKG1kNS5jKTogUHV0ICdVJ25zaWduZWQgbWFya2VyIGF0IGVuZCBvZiBjb25zdGFudHMgdG8gcmVtb3ZlIGdjYyB3YXJucy4KCndoYXJkYWtlICAzIERlYyA5NiAxMTowNDozMwogICAgLSAoc25tcF92YXJzLmMpOiBGcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgICAtIEZpeCBhcnAgdGFibGUgZm9yIGhwdXguCiAgICAtIChjb25maWcqKTogQ2hlY2sgZm9yIGFycGhkLmF0X25leHQgYW5kIHVzZSBpbiBhYm92ZS4KCndoYXJkYWtlICAzIERlYyA5NiAxMToxNDo0MwogICAgLSAoRVhBTVBMRS5jb25mLmRlZiwgcGFzc3Rlc3QpOiBNb3ZlIHBhc3N0ZXN0IHRvIHVjZGF2aXMgc3VidHJlZS4KCndoYXJkYWtlICAzIERlYyA5NiAxNDo1MToyNAogICAgLSAoZWNlLW1pYi5kZWYpOiBVc2VkIC0+IEF2YWlsIGluIG1lbW9yeSBzZXF1ZW5jZS4KCndoYXJkYWtlICA0IERlYyA5NiAwOToxNjowOQogICAgLSAoYXNuMS5jLCBwYXJzZS5jLCBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jKToKICAgICAgLSBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxOaWVscy5CYWdnZXNlbkB1bmktYy5kaz46CiAgICAgICAgLSBQYXJzZXIgZml4ZXMgZm9yIG11bHRpcGxlIG5vZGVzLgogICAgICAgIC0gbWVtbW92ZS9jb3B5IGRlbGV0ZXMuCgp3aGFyZGFrZSAgNCBEZWMgOTYgMDk6NDk6MzgKICAgIC0gKFBPUlRJTkcsIFJFQURNRSk6ICBVcGRhdGUgZm9yIHJlbGVhc2UgMy4xLjIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4xLjAuMSAtPiBWMy4xLjEKCndoYXJkYWtlIDExIFNlcCA5NiAwODo0OToxNAogICAgLSAocmVhZF9jb25maWcuYyk6IEZpeGVkIGNvbW11bml0eSBudW1iZXIgY2hlY2tzLgoKd2hhcmRha2UgMjQgU2VwIDk2IDE2OjU0OjU5CiAgICAtIChjb25maWcqLCBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jKTogQWRkZWQgc3lzL3NlbGVjdC5oIGZvciBBSVguCgp3aGFyZGFrZSAyNCBTZXAgOTYgMTY6NTk6MjYKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jKTogdHlwb3MuCgp3aGFyZGFrZSAyNCBTZXAgOTYgMTc6MDI6NDcKICAgIC0gKHNubXBfdmFycy5jKTogTW92ZWQgYSB2YXJpYWJsZSBkZWNsYWlyYXRpb24uCgp3aGFyZGFrZSAyNCBTZXAgOTYgMTc6MTY6NTgKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMpOiB0eXBvIGZpeGluZyBhIHR5cG8gKHNpZ2guLikuCgp3aGFyZGFrZSAyNSBTZXAgOTYgMTQ6MTQ6NTMKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMpOiBmcmVlYnNkMiB0eXBlY2FzdC4KCndoYXJkYWtlICAxIE9jdCA5NiAxNTozMDo0NgogICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IEZyb20gSm9lIE1hcnpvdDoKICAgICAgLSBhbGxvd3MgdGhlIENNVSBsaWIgdG8gcmV0YWluIHRoZSBUQyBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggYQogICAgICAgIHBhcnRpY3VsYXIgb2JqZWN0LiBJbiBwYXJ0aWN1bGFyIHRoaXMgYWxsb3dzIERpc3BsYXlTdHJpbmdzIHRvIGJlCiAgICAgICAgZGlmZmVyZW50aWF0ZWQgZnJvbSBPY3RldFN0cmluZ3Mgd2hlbiB0aGV5IGFyZSBsb29rZWQgdXAgaW4gdGhlCiAgICAgICAgTWliIFRyZWUuCgp3aGFyZGFrZSAgMSBPY3QgOTYgMTU6NTQ6MjIKICAgIC0gKGV4dGVuc2libGUuYyk6IGludCAtPiBkb3VibGUgdG8gc3VwcG9ydCBsYXJnZXIgZGlzayBzaXplcy4KCndoYXJkYWtlICAxIE9jdCA5NiAxNjoyODo1MgogICAgLSAoY29uZmlnKiwgcmVhZF9jb25maWcuYyk6CiAgICAgIC0gQ2hlY2sgZm9yIG1udGVudC5oIGFuZCBpbmNsdWRlIGl0LgogICAgICAtIENoZWNrIGZvciAvZXRjL21udHRhYiBvciAvZXRjL210YWIgYW5kIHVzZSBhcHByb3ByaWF0ZWx5LgogICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgIC0gcGljayBnZXRtbnRlbnQgb3ZlciBnZXRmc2ZpbGUgaWYgYm90aCBhcmUgYXZhaWxhYmxlLgogICAgICAtIGRlYnVnIGNsZWFudXAgKG9maWxlIC0+IHN0ZGVyciwgY2hlY2sgZm9yIERPREVCVUcgaW5zdGVhZCBvZiBjb25zdCB2YXIpLgoKd2hhcmRha2UgIDMgT2N0IDk2IDE2OjA1OjQ3CiAgICAtIChzbm1wX2FnZW50LmMpOgogICAgICAtIE1ha2UgYWdlbnQgcHJvcGVybHkgY2hlY2sgc25tcHNldCBleGl0IGNvZGVzIGFuZCB1c2UgdGhlbSAob24gQ09NTUlUKS4KCndoYXJkYWtlICAzIE9jdCA5NiAxNjowODo1OQogICAgLSAocGFzcy5jKToKICAgICAgLSBDaGVjayBmb3IgcGFzc3RocnUgZXhpc3RhbmNlIGJlZm9yZSByZXR1cm5pbmcgRVJSX05PRVJST1IsIGVsc2UKICAgICAgICByZXR1cm4gRVJSX05PU1VDSE5BTUUuCiAgICAgIC0gQ29ycmVjdGx5IGNoZWNrIGZvciBhbmQgcGFzcyAibm90LXdyaXRhYmxlIiBhbmQgIndyb25nLXR5cGUiIHBhc3MgcmV0dXJucy4KCndoYXJkYWtlICAzIE9jdCA5NiAxNjoxMDozOAogICAgLSAoc25tcF9pbXBsLmgpOiAgVHVybiBvbiBvbGQgQ01VIGRlYnVnZ2luZyBzdGF0bWVudHMgd2l0aCAtLWVuYWJsZS1kZWJ1Z2dpbmcuCgp3aGFyZGFrZSAgNCBPY3QgOTYgMDk6NDM6NDAKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBBZGRlZCBzbm1wZ2V0L3NldCB0byBwYXNzIGV4YW1wbGUuCgp3aGFyZGFrZSAgNCBPY3QgOTYgMDk6NDQ6MjYKICAgIC0gKE1ha2VmaWxlLmluKTogUmVtb3ZlIHNwYWNlcyBmcm9tIHNlZHNjcmlwdCB3aGVuIHVzaW5nIGJyb2tlbiBjcHAgKGdjYykuCgp3aGFyZGFrZSAgNCBPY3QgOTYgMDk6NDY6MDkKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOgogICAgICAtIENsZWFuZWQgdXAgbWFuIHBhZ2UgZm9ybWF0dGluZy4KICAgICAgLSBBZGRlZCBub3RlIGFib3V0IFNOTVBzZXQgY29tbXVuaXR5IHN0cmluZ3MuCiAgICAgIC0gbWlub3IgcHJvb2YtcmVhZGluZyAobWFqb3IgcHJvb2ZpbmcgbmVlZGVkIHN0aWxsKS4KICAgICAgLSBSZS1vcmdhbml6ZWQgYSBiaXQuCgp3aGFyZGFrZSAgNCBPY3QgOTYgMTA6MDE6MjAKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBsaWIgLT4gbGliL3NubXAgcGF0aCBjb3JyZWN0aW9uIGluIEZJTEVTIHNlY3Rpb24uCiAgICAtIChzbm1wZC4xLmRlZik6CiAgICAgIC0gQWRkZWQgYSBGSUxFUyBzZWN0aW9uLgogICAgICAtIEdlbmVyYWwgY2xlYW4gdXAuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMDc6NDE6NDAKICAgIC0gKHBhcnNlLmMpOiAgTm93IGxvYWRzIGFsbCBtaWJzIChmaWxlcykgaW4gdGhlIGRpcmVjdG9yeSBTTk1QTElCL21pYnMuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMDc6NDk6NTkKICAgIC0gKHBhcnNlLmMpOiAgUHJvcGVyIGF1dG9jb25mIGRpcmVudCBoZWFkZXJzLgoKd2hhcmRha2UgIDcgT2N0IDk2IDA4OjAxOjQzCiAgICAtIChNYWtlZmlsZS5pbik6IE1pYiBpbnN0YWxsYXRpb24gY2hhbmdlZCB0byByZWZsZWN0IG5ldyBtaWIgZGlyZWN0b3J5LgoKd2hhcmRha2UgIDcgT2N0IDk2IDA4OjUzOjA2CiAgICAtIChjb25maWcqKTogY2hlY2sgY29ycmVjdGx5IGZvciBnZXQvc2V0bW50ZW50LgoKd2hhcmRha2UgIDcgT2N0IDk2IDA5OjExOjQzCiAgICAtIChzbm1wX2FnZW50LmMpOiBSZW1vdmVkIHNubXAgdmVyc2lvbiBjaGVjayBvbiBlcnJvciByZXR1cm4gZnJvbSBzZXQuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMDk6MTI6MjMKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBVc2UgZ2V0bW50ZW50IGNvcnJlY3RseS4gIFBhaW4uCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTA6MjI6NDcKICAgIC0gKE1ha2VmaWxlLmluKToKICAgICAgLSBhZGRlZCAtLXJlY2hlY2sgdG8gY29uZmlnLnN0YXR1cyBjYWxsIHRvIHJlZ2VuZXJhdGUgc2VsZi4KICAgICAgLSBDaGFuZ2VkIGVjZS1taWIudHh0IC0+IHVjZC1zbm1wLnR4dCBhbmQgaW5zdGFsbCAoYW5kIGdlbmVyYXRlKSBwcm9wZXJseS4KCndoYXJkYWtlICA3IE9jdCA5NiAxMDoyMzozMgogICAgLSAoZXh0ZW5zaWJsZS5jKTogQ2hvbXAgbmV3bGluZSBvbiB1bmFtZSBvdXRwdXQuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTA6MjQ6MTIKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBBZGRlZCAnc3lzY29udGFjdCcgYW5kICdzeXNsb2NhdGlvbicgcGFyc2luZy4KCndoYXJkYWtlICA3IE9jdCA5NiAxMTowMDoxMAogICAgLSAoY29uZmlndXJlLmluKToKICAgICAgLSB0aW1lc3RhbXAgc3RhbXAtaCBhdCBlbmQuCiAgICAgIC0gZW1hY3MgbG9jYWwgdmFycy4KCndoYXJkYWtlICA3IE9jdCA5NiAxMTowMToyNQogICAgLSAocmVhZF9jb25maWcuYyk6IFJlbW92ZSBleHRyYSBhcmdzIGZyb20gc3RyY3B5ICh3YXMgc3RybmNweSkuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTE6MDI6NDYKICAgIC0gKGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gdGltZXN0YW1wIHN0YW1wLWggYXQgZW5kLgogICAgICAtIGVtYWNzIGxvY2FsIHZhcnMuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTI6MjM6MDUKICAgIC0gKHNubXBkLjEuZGVmKTogQ2hhbmdlZCB0byByZWZsZWN0IFNOTVBMSUIvbWlicy4KCndoYXJkYWtlICA3IE9jdCA5NiAxMjoyMzoyNwogICAgLSAoc25tcGQuY29uZi41LmRlZik6IEFkZGVkIHN5c2NvbnRhY3QgYW5kIHN5c2xvY2F0aW9uLgoKd2hhcmRha2UgIDkgT2N0IDk2IDA4OjA0OjE0CiAgICAtIChwYXJzZS5jKToKICAgICAgLSBQYXJzZSBPQkpFQ1QtSURFTlRZIGFzIE9CSkVDVC1HUk9VUCAoc2F2ZXMgb25seSBkZXNjcmlwdGlvbikuCiAgICAgIC0gQ2hhbmdlIHByaW50X2Vycm9yKCksIHJlYWRfbWliKCkgdG8gcmVmbGVjdCBmaWxlIGFuZCBjb3JyZWN0IGxpbmUgbnVtYmVyLgoKd2hhcmRha2UgIDkgT2N0IDk2IDA4OjMwOjI5CiAgICAtIChwYXJzZS5jKToKICAgICAgLSBwcmludCBhIG5ldyBsaW5lIGluIHByaW50X2Vycm9yKCkgaWYgZGVidWdnaW5nIGlzIHR1cm5lZCBvbi4KICAgICAgLSB0b3NzT2JqZWN0SWRlbnRpZmllcigpOiBjYXRjaCBtdWx0aXBsZSBicmFja2V0IGNsYXVzZXMgKElFIHsgezAgMH0gfSApLgoKd2hhcmRha2UgIDkgT2N0IDk2IDE0OjM2OjAzCiAgICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAgLSBzdHJuY21wIC0+IHN0cm5jYXNlY21wLgogICAgICAtIE5VTEwgLT4gMC4KCndoYXJkYWtlICA5IE9jdCA5NiAxNDozODowNQogICAgLSAoZXh0ZW5zaWJsZS5jKToKICAgICAgLSBzb3J0IHBhc3MgdGhydXMgYnkgbWlib2lkIHRvIHByZXZlbnQgcGFzc2luZyBvZmYgdG8gd3Jvbmcgb25lLgogICAgICAtIHR5cG9zOiAgZXhzdGVuIC0+IGV4dGVuLgogICAgICAtIGluaXRfZXh0ZW5zaWJsZSgpIGNhbGxzIHVwZGF0ZV9jb25maWcoKSB0byByZWR1Y2UgZHVwbGljYXRpb25zLgoKd2hhcmRha2UgIDkgT2N0IDk2IDE1OjE4OjQyCiAgICAtIChzbm1wX2FwaS5jKTogRnJvbTogZ2FoQGJlbGxjb3JlLmNvbSAoR2FyeSBBLiBIYXl3YXJkKQogICAgICAtIEZyZWUgcGR1IGNvbW11bml0eSB0byBxdWVsY2ggcHVyaWZ5LgoKd2hhcmRha2UgIDkgT2N0IDk2IDE1OjIyOjIzCiAgICAtIChSRUFETUUpOiBBZGRlZCB0aGFua3MgbmFtZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjEgLT4gVjMuMS4wLjEKCndoYXJkYWtlIDI2IEF1ZyA5NiAxMDozNjowOAogICAgLSAoTkVXUykgVHlwbywgZXh0cmEgcXVvdGF0aW9uIG1hcmsuCgp3aGFyZGFrZSAyNiBBdWcgOTYgMTA6Mzc6MDUKICAgIC0gKFRPRE8pIEV4dHJhIG1pYiBwYXJzaW5nIGlkZWFzIGFkZGVkLgoKd2hhcmRha2UgMjYgQXVnIDk2IDEwOjM3OjM2CiAgICAtIChlY2UtbWliLmRlZik6ICBjb21tYXMgb3V0IG9mIHBsYWNlLgoKd2hhcmRha2UgMjYgQXVnIDk2IDE2OjU1OjUxCiAgICAtIChzbm1wX2FwaS5jKTogRml4ZWQgYSBnY2MvRnJlZUJTRCBvcHRpbWl6YXRpb24gYnVnIChzdHVwaWQgY29tcGlsZXIpCgp3aGFyZGFrZSAyNiBBdWcgOTYgMTY6NTg6MDMKICAgIC0gKGV2ZW50LmMsIGtlcm5lbC5jLCByb3V0ZV93cml0ZS5jKTogRnJlZUJTRCBtb2RpZmljYXRpb25zCgp3aGFyZGFrZSAyNyBBdWcgOTYgMDg6NDY6NDMKICAgIC0gKGV4dGVuc2libGUuYyk6ICBGcmVlQlNEIGNoYW5nZXMgYW5kIHVzZSBnZXRsb2FkYXZnIGlmIGF2YWlsYWJsZS4KCndoYXJkYWtlIDI3IEF1ZyA5NiAwODo0Nzo1NwogICAgLSAoc25tcHRyYXBkLmMpOiBGaXggYnl0ZSBvcmRlciBwcm9ibGVtIChjb252ZXJ0IHRvIG5ldHdvcmsgYmVmb3JlIHNlbmRpbmcpLgoKd2hhcmRha2UgMjcgQXVnIDk2IDA5OjAxOjEwCiAgICAtIChzbm1wdHJhcC5jKToKICAgICAgLSBGcmVlQlNEIHNwZWNpZmljIGNoYW5nZXMuCiAgICAgIC0gbW9yZSBhdXRvY29uZiBjb21wbGV0ZTogcGF0aHMgdG8gbGlicmFyaWVzIGFuZCBrZXJuZWwgbG9jYXRpb24uCgp3aGFyZGFrZSAyNyBBdWcgOTYgMDk6Mzg6MzMKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMpOiBGcmVlQlNEIHNwZWNpZmljIGNoYW5nZXMuCgp3aGFyZGFrZSAyNyBBdWcgOTYgMTA6MDA6MTUKICAgIC0gKHNubXBfdmFycy5jKTogTW9yZSB3YXJwZWQgRnJlZUJTRCBjaGFuZ2VzCgp3aGFyZGFrZSAyNyBBdWcgOTYgMTA6MDQ6NTYKICAgIC0gKGF1dG9jb25mKik6CiAgICAgIC0gRnJlZUJTRCBhZGRpdGlvbnMuCiAgICAgIC0gTmV3IGtlcm5lbCBsb2NhdGlvbjogIC9rZXJuZWwgKGljaykuCiAgICAgIC0gTG9nIGZpbGUgZGVmYXVsdCBpbnRlbGxpZ2VudGx5IGNoZWNrcyBmb3IgL3Zhci9sb2cgYW5kIC91c3IvYWRtLgogICAgICAtIENoZWNrcyBmb3IgZ2V0bG9hZGF2ZygpLgoKd2hhcmRha2UgMjkgQXVnIDk2IDE0OjQyOjIwCiAgICAtIChleHRlbnNpYmxlLyouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSBjbGVhbmVkIHVwIGdjYyB3YXJuaW5ncy4KICAgICAgLSBmaXhlZCBhIHNwZWxsaW5nIGVycm9yLgoKd2hhcmRha2UgMjkgQXVnIDk2IDE0OjU5OjU1CiAgICAtIChhcHBzLyouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSBzZXQgZXhpdCBjb2RlcyBvZiAwIGZvciBhbGwgYXBwcy4KICAgICAgLSBSZW1vdmVkIFNWUjQgI2lmZGVmcy4KICAgICAgLSBHcmVhdGx5IGltcHJvdmVkIHNubXB0cmFwLgoKd2hhcmRha2UgMjkgQXVnIDk2IDE1OjAzOjEyCiAgICAtIChtYW4vc25tcHRyYXAuMSk6ICBhZGRlZCBieSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgoKd2hhcmRha2UgMjkgQXVnIDk2IDE1OjA2OjIxCiAgICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgIC0gdWNoYXIocykgY2FuJ3QgYmUgbGVzcyB0aGFuIDAuCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTU6MDY6NTAKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgICAtIHByb3RvdHlwZXMgZm9yIGdjYyB3YXJuaW5ncwoKd2hhcmRha2UgMjkgQXVnIDk2IDE1OjA3OjU2CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgICAtIHNhdmUgbWliIGRlc2NyaXB0aW9ucyBmb3Igc25tcHRyYW5zbGF0ZSBhbmQgb3RoZXIgYXBwcyB0aGF0IG5lZWQgaXQuCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTU6MDg6MjgKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgIC0gZ2NjIHdhcm5pbmdzIE5VTEwgLT4gMAoKd2hhcmRha2UgMjkgQXVnIDk2IDE1OjU4OjEwCiAgICAtIChzbm1wc3RhdHVzLmMpOiBQYXRjaCBmcm9tIFRyZXZvciBCb3VyZ2V0IDx0Ym91cmdldEBxdWFsY29tbS5jb20+CiAgICAgIC0gbWFsbG9jIHN5c2Rlc2MgaW5zdGVhZCBvZiBhc3N1bWluZyA8IDEyOCBieXRlcy4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNjowMzo0NAogICAgLSAoc25tcHdhbGsuYyk6IFJlbW92ZWQgU1ZSNCBpZmRlZnMKCndoYXJkYWtlIDI5IEF1ZyA5NiAxNjoyMjoyNQogICAgLSAoYXV0b2NvbmYqLCBzbm1wX3ZhcnMuYyk6IFJlbW92ZWQgc29tZSBzb2xhcmlzIGlmZGVmcy4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNjoyOToxMAogICAgLSBDaGFuZ2VkIG15IGVtYWlsIGFkZHJlc3MgdG8gbXkgbmV3IG9uZS4KCndoYXJkYWtlIDMwIEF1ZyA5NiAwOToyMzowNQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIHJlbW92ZWQgLVhzIGZsYWcgZm9yIGdjYyBvbiBzb2xhcmlzLgogICAgICAtIGxvZ2ZpbGUgY2hlY2tzIGZvciBleGlzdGFuY2Ugb2YgL3Zhci9sb2cgYW5kIC91c3IvYWRtLgoKd2hhcmRha2UgMzAgQXVnIDk2IDA5OjIzOjQyCiAgICAtIChzbm1wdHJhcC5jKTogcGF0Y2ggc2NyZXdlZCB1cC4KCndoYXJkYWtlIDMwIEF1ZyA5NiAwOToyNDozMQogICAgLSAoYXBwcy9NYWtlZmlsZS5pbik6ICBBZGRlZCBrZXJuZWxfc3Vub3M1Lm8gdG8gc25tcHRyYXAgZm9yIGdldEtzdGF0LgoJCndoYXJkYWtlIDMwIEF1ZyA5NiAwOTozNDowOQogICAgLSAoTkVXUywgQ2hhbmdlTG9nKTogVXBkYXRlZCBmb3IgMy4xLjAuMQoKd2hhcmRha2UgMzAgQXVnIDk2IDA5OjM0OjQ4CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS4wLjEgKQoKd2hhcmRha2UgMzAgQXVnIDk2IDEwOjE1OjE4CiAgICAtIChSRUFETUUpOiBVcGRhdGVkIGZvciAzLjEuMC4xCgp3aGFyZGFrZSAzMCBBdWcgOTYgMTE6NDk6MzgKICAgIC0gKHNubXBfdmFycy5jKTogcmVtb3ZlZCBtYWxsb2MgcHJvdG90eXBlIGR1ZSB0byBjb25mbGljdGlvbnMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4wLjcuMiAtPiBWMy4xCgpoYXJkYWtlciAgMyBNYXkgOTYgMTQ6MzQ6MDMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbikKICAgICAgLSBBZGRlZCBhIGNoZWNrIGZvciB2YXJpb3VzIHJhbmRvbSBmdW5jdGlvbnMuCiAgICAgIC0gSW5jbHVkZWQgYW5vdGhlciBpZmRlZiB0byBlbnN1cmUgbm8gI2RlZmluZSBsb29wcyBvY2N1ciB3aXRoIHN0ci9pbmRleCBmbnMuCgpoYXJkYWtlciAgMyBNYXkgOTYgMTQ6MzU6MjcKICAgIC0gKGFnZW50L3NubXBfdmFyX3JvdXRlLmMsc25tcF92YXJzLmMpCiAgICAgIC0gQ2hhbmdlZCB0aGUgaW50ZXJmYWNlIGNvdW50ZXIgdG8gYSBzaG9ydCBmb3IgYWxsIGFyY2hpdGVjdHVyZXMgKGJ1cyBlcnIpCiAgICAgIC0gVW5kZWZlZCBhIGZ1bmN0aW9uIHRoYXQgaXMgbmV2ZXIgdXNlZC4KCmhhcmRha2VyICAzIE1heSA5NiAxNDozNzoxNwogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpIFNvbGFyaXMgZml4IGZvciBpbnRlcmZhY2VzLgogICAgICAtIEZyb20gRGFuIEEuIERpY2tleSA8ZGRpY2tleUB0cmFuc2l0aW9uLmNvbT4KCmhhcmRha2VyICAzIE1heSA5NiAxNDo0MDoxOAogICAgLSAoYXBwcy9zbm1wdHJhcC5jKSBBZGRlZCAjaW5jbHVkZTxzeXMvc29ja2lvLmg+CgpoYXJkYWtlciAgOSBNYXkgOTYgMTM6MjQ6MDAKICAgIC0gKGFwcHMvc25tcHNldC5jKSBBZGRlZCAnLicgYXMgYSBkZWxpbWl0ZXIgZm9yIGRlY2ltYWwgZW5jb2RlZCBzdHJpbmdzLgoKaGFyZGFrZXIgIDkgTWF5IDk2IDEzOjI3OjQwCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pCiAgICAgIC0gQWRkZWQgYSBjaGVjayBmb3IgdmFyaW91cyByYW5kb20gZnVuY3Rpb25zLgogICAgICAtIEluY2x1ZGVkIGFub3RoZXIgaWZkZWYgdG8gZW5zdXJlIG5vICNkZWZpbmUgbG9vcHMgb2NjdXIgd2l0aCBzdHIvaW5kZXggZm5zLgoKaGFyZGFrZXIgIDkgTWF5IDk2IDEzOjMzOjEyCiAgICAtIChhY2NvbmZpZy5oLGFnZW50L3tNYWtlZmlsZSxzbm1wX3ZhcnMuY30sYWdlbnQvZXh0ZW5zaWJsZS9tYW55KToKICAgICAgLSBBZGRlZCBzdXBwb3J0IGZvciBwYXNzdGhydSBtaWJzLiAgVG90YWwgY29udHJvbCBpcyBoYW5kZWQgdG8gZXhlYydzLgoKaGFyZGFrZXIgIDkgTWF5IDk2IDE2OjE0OjI4CiAgICAtIChjb25maWd1cmUuaW4pOiBTb2xhcmlzIHNwZWNpZmljIGNwcCBmbGFncyBhZGRlZCBmb3IgU1VOc3BybydzIGNwcC4KICAgIC0gKGFnZW50L3tzbm1wX3ZhcnMsc25tcGR9LmMsYWdlbnQvZXh0ZW5zaWJsZS97ZXh0ZW5zaWJsZSxtaXNjLHBhc3N9LmMsCiAgICAgICBzbm1wbGliL3ttaWIsc25tcF9jbGllbnR9LmMpOgogICAgICAtIENsZWFuZWQgdXAgcHJvdG90eXBlcyB0byBtYXRjaCBtb3JlIGNhcmVmdWxseSAod2l0aCBTb2xhcmlzJ3Mgc3BybyBjYykuCgpoYXJkYWtlciAxMCBNYXkgOTYgMTA6Mjc6MTQKICAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IEEgcGF0Y2ggdG8gZml4IGEgdmlydHVhbCBpbnRlcmZhY2UgcHJvYmxlbS4KICAgICAgLSBwYXRjaCBzdXBwbGllZCBieSAiRGFuIEEuIERpY2tleSIgPGRkaWNrZXlAdHJhbnNpdGlvbi5jb20+CgpoYXJkYWtlciAxMCBNYXkgOTYgMTg6MTY6NTcKICAgIC0gKG1hbnkpOiBNZXJlZ2VkIGJhZ2dlc2VuLTMtMC03LTIgYnJhbmNoIGludG8gbWFpbiB0cnVuay4KCmhhcmRha2VyIDEzIE1heSA5NiAxNTo1Njo0NQogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9taXNjLmMpOiBleGVjIE5hbWVzIHdlcmUgZ2V0dGluZyBpbmNsdWRlZCBpbiB0aGUgY29tbWFuZC4KCmhhcmRha2VyIDEzIE1heSA5NiAxNTo1Nzo0MwogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9taXNjLmMpOiBjbG9zZSBmaWxlIGRlc2NyaXB0b3JzIGJlZm9yZSByZS1zdGFydGluZyBhZ2VudC4KCmhhcmRha2VyIDEzIE1heSA5NiAxNTo1ODo0NAogICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvZXh0ZW5zaWJsZS9leHRlbnNpYmxlLmMpOgogICAgICAtIEJ1ZyBmaXg6IEdMT0JBTFNFQ1VSSVRZIGJ1ZzogIHNhdmUgcmlnaHRtb3N0IHR3byBiaXRzIGluIGFjbC4KCmhhcmRha2VyIDEzIE1heSA5NiAxNTo1OTozMAogICAgLSAoc25tcGxpYi9zbm1wX2ltcGwuaCk6IENoYW5nZSBSV1JJVEUgdG8gaW5jbHVkZSBXcml0ZSBmb3IgVjIgYml0cy4KCmhhcmRha2VyIDE1IE1heSA5NiAwODo1OTo1MQogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9wYXNzLmMpIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSBJbXBsZW1lbnRlZCBtaXNzaW5nIHBhcnRzIG9mIGludGVyZmFjZSBhZGRyZXNzIGFuZCBuZXR3b3JrIG91dHB1dCAoLWkpCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6MDI6MjQKICAgIC0gKGFnZW50L2tlcm5lbF9zdW5vczUuYykgUGF0Y2ggZnJvbSAiRGFuIEEuIERpY2tleSIgPGRkaWNrZXlAdHJhbnNpdGlvbi5jb20+CiAgICAgIC0gQmV0dGVyIGNhY2hpbmcgYWxnb3JpdGhtIGZvciBpbXByb3ZlZCBzcGVlZC4KCmhhcmRha2VyIDE1IE1heSA5NiAwOTowNTo0OQogICAgLSAoKi8uY3ZzaWdub3JlKSBpZ25vcmUgZmlsZSB1cGRhdGUuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6MDY6NDkKICAgIC0gKE1ha2VmaWxlLmluLHNlZHNjcmlwdC5pbikgQWRkZWQgUFJFRklYIHRvIHRoZSBzZWRzY3JpcHQuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6MDc6MzUKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnRlZCBwYXNzIHRocnUgbWlicy4KCmhhcmRha2VyIDE1IE1heSA5NiAwOToyOToyMQogICAgLSAoQ09QWUlORywgUkVBRE1FLCBUT0RPKSBSZWxlYXNlIGRvY3MgdXBkYXRlZC4KCmhhcmRha2VyIDE1IE1heSA5NiAwOTo1MDoxNQogICAgLSAoYWdlbnQva2VybmVsX3N1bm9zNS5jKSBwYXRjaCBtaXN0YWtlLgoKaGFyZGFrZXIgMTUgTWF5IDk2IDA5OjUxOjEyCiAgICAtIChhZ2VudC9leHRlbnNpYmxlL3JlYWRfY29uZmlnLmMpOiBhbnNpIHNlbWFudGljIGZpeCBmb3IgJzwnLgoKaGFyZGFrZXIgMTUgTWF5IDk2IDA5OjUxOjM3CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS5BMSApCgpoYXJkYWtlciAxNSBNYXkgOTYgMTI6MDA6NTcKICAgIC0gKElOU1RBTEwpIG1ha2UgaW5zdGFsbCBhcyByb290LgoKaGFyZGFrZXIgMTUgTWF5IDk2IDEyOjAzOjU0CiAgICAtIChSRUFETUUpIEFkZGVkIGEgbm90ZSAocG9pbnRlciB0byBkb2NzKSBvbiB0aGUgYWdlbnQncyBleHRlbnNpYmxpdHkuCgpoYXJkYWtlciAxNSBNYXkgOTYgMTI6MjM6NDAKICAgIC0gKGFwcHMvc25tcG5ldHN0YXQvaWYuYykgcmVtb3ZlZCAmIGluIGZyb250IG9mIGFycmF5IHBhc3NlZCBhcyBhcmcuCgpoYXJkYWtlciAxNSBNYXkgOTYgMTI6MzU6MTYKICAgIC0gKHNlZHNjcmlwdC5pbikgRml4ZWQgYSBob3JyaWJsZSB0eXBvLiAgUCAtPiBQUkVGSVgKCmhhcmRha2VyIDIyIE1heSA5NiAwODo1MDoyOAogICAgLSAobWFuL01ha2VmaWxlLmluKSBVcGRhdGVkIHRoZSB3YXkgc2Vkc2NyaXB0IGlzIHVzZWQuCgpoYXJkYWtlciAyMiBNYXkgOTYgMDg6NTE6MDEKICAgIC0gKGNvbmZpZy5ndWVzcywgY29uZmlndXJlLCBpbnN0YWxsLXNoLCBta2luc3RhbGxkaXJzKTogQXV0b2NvbmYtMi4xMAoKaGFyZGFrZXIgMjIgTWF5IDk2IDEyOjUwOjI0CiAgICAtIChhZ2VudC9rZXJuZWxfc3Vub3M1LmMsIHNubXBfdmFycy5jLAogICAgICAgYWdlbnQvZXh0ZW5zaWJsZS9leHRlbnNpYmxlLmMscmVhZGNvbmZpZy5jLHNubXBfdmFycy5jKToKICAgICAgLSBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+OgogICAgICAgIC0gZmluYWxseSBuYWlsZWQgdGhhdCBtaXNzaW5nIGluaXRpYWxpemF0aW9uIHRoYXQgZ2F2ZSBwcm9ibGVtcwogICAgICAgICAgd2l0aCB0aGUgQVQgc3VidHJlZQogICAgICAgIC0gSSBhbHNvIGltcGxlbWVudGVkIHRoZSBkaXNrIHBhcnQgb2YgdGhlIGV4dGVuc2liaWxpdHkgaW4gdGhlCiAgICAgICAgICBhdHRhY2hlZCBwYXRjaC4KCmhhcmRha2VyIDIyIE1heSA5NiAxMjo1NTozMwogICAgLSAoYXBwcy9zbm1wbmV0c3RhdC9pZi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgICAtIHJld29ya2VkIHRoZSB3YXkgc25tcG5ldHN0YXQgLWkgd29ya3MuCgpoYXJkYWtlciAyMyBNYXkgOTYgMTQ6NDM6NDkKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogRG9uJ3QgZGVmaW5lIHJhbmRvbSBpZiBpdCBhbHJlYWR5IGV4aXN0cy4KCmhhcmRha2VyIDIzIE1heSA5NiAxNDo0NDoxNQogICAgLSAoZXh0ZW5zaWJsZS5jKTogIEFkZGVkIGEgZGlzayB3YXJuaW5nIHRvIHN0ZGVyci4KCmhhcmRha2VyIDIzIE1heSA5NiAxNDo0NDozOQogICAgLSAoYWNsLmMsIHBhcnR5LmMsIHZpZXcuYyk6IHJlbW92ZWQgTlVMTCBkZWZpbmVzLgoKaGFyZGFrZXIgMjMgTWF5IDk2IDE0OjU2OjQyCiAgICAtIChpZi5jKTogdHlwZSBjYXN0aW5nIGJ1Z3MuCgpoYXJkYWtlciAyMyBNYXkgOTYgMTY6Mjg6MDgKICAgIC0gKGFjbC5jLCBwYXJ0eS5jKTogaW5jbHVkZSBzdGRpby5oCgpoYXJkYWtlciAyMyBNYXkgOTYgMTc6MDk6MjQKICAgIC0gKGNvbmZpZyosIGV4dGVuc2libGUuYyk6IGZpeGVkIGRpc2sgY2hlY2tzIG9uIFNvbGFyaXMgYW5kIGFscGhhJ3MKICAgICAgLSB1c2Ugc3RhdHZmcyBvdmVyIGZzdGFiIGlmIGJvdGggcHJlc2VudC4KCmhhcmRha2VyIDIzIE1heSA5NiAxNzo0ODowOQogICAgLSAoY29uZmlnKik6IGNoZWNrIGZvciBnZXRtbnRlbnQuCgpoYXJkYWtlciAyNCBNYXkgOTYgMTI6MjM6NTIKICAgIC0gKHNubXBsaWIvcGFyc2UuYyk6ICBwYXJzaW5nIGZpeGVzIGZyb20gTWlrZSBQZXJpayA8bWlrZXBAY3J0LmNvbT4KCmhhcmRha2VyIDI0IE1heSA5NiAxMjozOTo1MQogICAgLSAoUkVBRE1FKTogQWRkZWQgYSB0aGFua3Mgc2VjdGlvbi4KCmhhcmRha2VyIDI0IE1heSA5NiAxMzowODoyOAogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IG1pbm9yIGV4YW1wbGUgZmlsZSBjaGFuZ2VzLgoKaGFyZGFrZXIgMjQgTWF5IDk2IDEzOjA5OjAyCiAgICAtIChjb25maWcqKTogIENoZWNrIGZvciBzeXMvbW50dGFiLmgKCmhhcmRha2VyIDI0IE1heSA5NiAxMzowOTo1MgogICAgLSAocmVhZF9jb25maWcuYyk6IGlmZGVmIGNsZWFudXAKCmhhcmRha2VyIDI0IE1heSA5NiAxMzoxMDozNAogICAgLSAocGFyc2UuYyk6IGRlY2xhcmF0aW9ucyBjbGVhbnVwCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6MTM6MjEKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiAgbm90ZSBvbiBjcmVhdGluZyBjb21tZW50cyBhZGRlZC4KCmhhcmRha2VyIDI0IE1heSA5NiAxMzozODo0NgogICAgLSAocmVhZF9jb25maWcuYyk6ICNpZmRlZiB0eXBvCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6NTQ6MjUKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogIGRlZmluZSBtZW1tb3ZlIGlmIG5vdCBkZWZpbmVkIGFuZCBtZW1jcHkgaXMuCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6NTU6MTQKICAgIC0gKGlmLmMsIHJvdXRlLmMpOiBjYXN0IHJldHVybnMgZnJvbSBpbmRleCB0byBjaGFyICouCgpoYXJkYWtlciAyNCBNYXkgOTYgMTQ6MDI6NTMKICAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgbWVtbW92ZSBiZWZvcmUgeW91IGRlZmluZSBpdC4KCmhhcmRha2VyIDI0IE1heSA5NiAxNDo1MzoyMAogICAgLSAocmVhZF9jb25maWcuYyk6IHByaW50ZiAtPiBET0RFQlVHIGNoZWNrCgpoYXJkYWtlciAyNCBNYXkgOTYgMTU6Mjg6NDEKICAgIC0gKGFjY2NvbmZpZy5oLCBjb25maWcuaC5pbik6ICNpZmRlZiB0eXBvcwoKaGFyZGFrZXIgMjQgTWF5IDk2IDE1OjI5OjEzCiAgICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZWQgc29tZSBpZmRlZiByZXF1aXJlbWVudHMuCgpoYXJkYWtlciAyNCBNYXkgOTYgMTU6Mjk6MjkKICAgIC0gKHNubXBfdmFycy5oKTogcmVvcmdhbml6ZWQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6ICBWMy4wLjcuMSAtPiBWMy4wLjcuMgoKTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4gMSBNYXkgOTYgMTI6Mzc6MzUKICAgIC0gKG1hbnkpIEZpeGVzIGZvciBTb2xhcmlzICgyLjUpIHN1Ym1pdHRlZCBieQogICAgICAgICAgICAgTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz46CiAgICAgICAgIlNvbWUgYXJlIG15IG93biwgb3RoZXJzIGFyZSBmcm9tIFl1cmkgUmFib3ZlciB3aG8gb3JpZ2luYWxseQogICAgICAgICBjcmVhdGVkIHRoZSBwYXRjaC4gU29tZSBvZiB0aGlzIGlzIHRoZXJlIHRvIGVsaW1pbmF0ZSB0aGUKICAgICAgICAgZGVwZW5kZW5jeSBvbiB0aGUgdWNibGliIGNvbXBhdGliaWxpdHkgc3R1ZmYsIHNvbWUgaXMgImNvc21ldGljIiwKICAgICAgICAgYnV0IGl0IGFsc28gZml4ZXMgYSBzZXJpb3VzIHByb2JsZW0gaW4gdGhlIGFnZW50LCB3aGVyZSB3YWxraW5nCiAgICAgICAgIHRoZSBtaWIgdHJlZSBjYW4gbG9vcCBlbmRsZXNzbHkgaWYgeW91IGhhdmUgbXVsdGlwbGUgbmV0d29yawogICAgICAgICBpbnRlcmZhY2VzLiIKCmhhcmRha2VyICAxIE1heSA5NiAxMzo1NDoxOAogICAgLSAoY29uZmlndXJlKiwgYWdlbnQvZXh0ZW5zaWJsZS97cmVhZF9jb25maWcsZXh0ZW5pc2JsZX0uYyk6CiAgICAgIC0gY29uZmlndXJpZmllZCAobmV3IHdvcmQpIHNvbWUgb2YgTmllbHMnIGNoYW5nZXMgYW5kIHRoZSBiY29weS9tZW1tb3ZlIHN0dWZmLgoKaGFyZGFrZXIgIDEgTWF5IDk2IDEzOjU1OjE2CiAgICAtIChtYW4vc25tcGQuMS5kZWYsc25tcGQuY29uZi41LmRlZikgLkMgLT4gLkIsIHRvIGluY3JlYXNlIG5yb2ZmIHBvcnRhYmlsaXR5LgoKaGFyZGFrZXIgIDEgTWF5IDk2IDE0OjM1OjIzCiAgICAtIChhZ2VudC9yb3V0ZV93cml0ZS5jLGFnZW50L2V4dGVuc2libGUvZXh0ZW5zaWJsZS5jKToKICAgICAgLSBuZXRic2QxLjFCIHNwZWNpZmljIGZpeGVzOiBjbGFzaCB3aXRoIHN5c19lcnJsaXN0IGFuZCBydF9kc3QgZGVmaW5lcy4KCmhhcmRha2VyICAxIE1heSA5NiAxNDozNzowOQogICAgLSAobG9jYWwvc25tcGNoZWNrKSBUay1iMTAgZml4ZXMuCgpoYXJkYWtlciAgMSBNYXkgOTYgMTQ6Mzc6MjUKICAgIC0gKHNlZHNjcmlwdC5pbikgZm9yZ290IE5FVEJTRDFJRCBkZWYuCgpoYXJkYWtlciAgMSBNYXkgOTYgMTQ6NTY6MjEKICAgIC0gKGFjY29uZmlnLmgsYWdlbnQvZXh0ZW5zaWJsZS9taWJkZWZzLmgpOiByZW1vdmVkIGNvbWVudHMvc3BhY2VzIGZyb20gZGVmaW5lcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6ICBWMy4wLjcgLT4gVjMuMC43LjEKCmhhcmRha2VyIDI1IEFwciA5NiAxMjoxODo0MwogICAgLSAoQ2hhbmdlTG9nLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbikgRGVmaW5lZCBERUJVR1AgaWYgRE9ERUJVRyBpcyBub3QgZGVmaW5lZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6ICBWMy4wLjYgLT4gVjMuMC43CgpoYXJkYWtlciAgNSBBcHIgOTYgMTY6MTE6MzkKICAgIC0gKGxvY2FsL3NubXBjaGVjay5kZWYpIFRrLWI4ID0+IFRrLWIxMCBjaGFuZ2VzCgpoYXJkYWtlciAgNSBBcHIgOTYgMTY6MTI6MjIKICAgIC0gKGNvbmZpZ3VyZSkgYXV0b2NvbmYtMi43IC0+IGF1dG9jb25mLTIuOQoKaGFyZGFrZXIgIDUgQXByIDk2IDE2OjE1OjExCiAgICAtIChzbm1wbGliL2FzbjEuYykgcmVtb3ZlZCBhIHJlcXVpcmVkICd1bml4JyBkZWZpbmUgc3Vycm91bmRpbmcgYSBoZWFkZXIgZmlsZS4KCmhhcmRha2VyICA1IEFwciA5NiAxNjoxOTozNQogICAgLSAobWFuL01ha2VmaWxlLmluKSBBZGRlZCBhICdjbGVhbicgZGVmaW5pdGlvbiB0byB0aGUgTWFrZWZpbGUuCgpoYXJkYWtlciAxMiBBcHIgOTYgMTQ6NTE6MDgKICAgIC0gQ2hhbmdlZCBubGlzdCB3YXJuaW5ncyB0byBvbmx5IHByaW50IGlmIERPREVCVUcgaXMgZGVmaW5lZCBpbiBjb25maWcuaAoKaGFyZGFrZXIgMTIgQXByIDk2IDE0OjUxOjQyCiAgICAtIChhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvZXh0ZW5zaWJsZS5jKQogICAgICAtIENoYW5nZWQgbmxpc3Qgd2FybmluZ3MgdG8gb25seSBwcmludCBpZiBET0RFQlVHIGlzIGRlZmluZWQgaW4gY29uZmlnLmgKCmhhcmRha2VyIDEyIEFwciA5NiAxNjo0OToyMwogICAgLSAoc25tcF92YXJfcm91dGUuYykKICAgICAgLSBDaGFuZ2VkIG5saXN0IHdhcm5pbmdzIHRvIG9ubHkgcHJpbnQgaWYgRE9ERUJVRyBpcyBkZWZpbmVkIGluIGNvbmZpZy5oCiAgICAtIChtYW55KSBBZGRlZCBzdXBwb3J0IGZvciBocHBhMS4xLWhwLWhwdXgxMC4wMQogICAgICAtIHRvdGFsbHkhIHJlZGlkIHRoZSByb3V0aW5nIHRhYmxlcyBmb3IgQlNEIDQuNCBkZXJpdmVkIHN5c3RlbXMKICAgICAgICAoYWxwaGEsIGhwdXgxMC4wMSssIG5ldGJzZCkgc2luY2UgaHB1eDEwIGRvZXNuJ3QgaGF2ZSA0LjMgY29tcGF0IHN0cnVjdHMuCiAgICAtIChlY2UtbWliLmRlZikgQ2FwaXRhbGl6YXRpb24gcHJvYmxlbS4KICAgIC0gKGNvbmZpZ3VyZS5pbikKICAgICAgLSBDbGVhbmVkIHVwIGtlcm5lbCBjaGVja2luZwogICAgICAtIFN0YXJ0ZWQgdXNpbmcgYSBhdXRvY29uZiAyLjggZmVhdHVyZSB0byBjaGVjayBmb3IgY2FjaGUgdmFsdWVzLgoKaGFyZGFrZXIgMTUgQXByIDk2IDEyOjUzOjQwCiAgICAtIChjb25maWd1cmUpIE5ldyBjb21tYW5kIGxpbmUgb3B0aW9uOiAgLS1lbmFibGUtZGVidWdnaW5nLiAgVHVybnMgb24gZGVidWdnaW5nLgogICAgLSAoY29uZmlndXJlKSBGaXhlcyBmb3IgdHlwZSBjaGVja2luZyBvZiA0LjQgcnRlbnRyeSBzdHJ1Y3R1cmVzIG9uIGFscGhhcy4KCmhhcmRha2VyIDE1IEFwciA5NiAxNDoxMTozOQogICAgLSAoY29uZmlndXJlKSBOZXcgY29tbWFuZCBsaW5lIG9wdGlvbjogIC0td2l0aC1kZWZhdWx0cy4gIERvbid0IHByb21wdCB0aGUgdXNlci4KICAgIC0gKGNvbmZpZ3VyZSkgYnVnIGZpeGVzOiAgd2Fzbid0IHF1b3Rpbmcga2VybmVsIGFuZCBkbWVtIGxvY2F0aW9uLgogICAgLSAoY29uZmlndXJlKSBnY2MgY3BwIHJlcXVpcmVzIC14IGMgdG8gYWNjZXB0IC5pbiBmaWxlIHN1ZmZpeC4KCmhhcmRha2VyIDE1IEFwciA5NiAxNDozNjo0OAogICAgLSAoYWdlbnQvc25tcGQuYykgRml4ZWQgMiBnZXR0aW1lb2ZkYXkgY2FsbHMgLS0gYWRkZWQgYSBOVUxMIHRpbWV6b25lIHB0ci4KCmhhcmRha2VyIDE2IEFwciA5NiAwOTo0NzoxOAogICAgLSAoY29uZmlndXJlKSBJIGZvcmdvdCBETUVNX0xPQyBuZWVkcyB0byBiZSAjdW5kZWYnZWQgaWYgbm90IGZvdW5kCgpoYXJkYWtlciAxNiBBcHIgOTYgMDk6NDg6MDYKICAgIC0gKGFnZW50L3tyb3V0ZV93cml0ZS5jLHNubXBfdmFyX3JvdXRlLmN9KSBPU0YzLjIgc3BlY2lmaWMgY2hhbmdlcy4gIGFyZy4KCmhhcmRha2VyIDE2IEFwciA5NiAxODowODoyOQogICAgLSAoc25tcGQuYykgQWRkZWQgZmZsdXNoIGNhbGxzIGFmdGVyIHByaW50aW5nIHBhY2tldCBkdW1wcwoKaGFyZGFrZXIgMjQgQXByIDk2IDA4OjM2OjA2CiAgICAtIChjb25maWd1cmUuaW4pIE1vcmUgaGVhZGVyIGZpbGUgY2hlY2tzICh2bS92bS5oICgrIG90aGVycykgYW5kIHVmcy9mZnMvZnMuaCkKCmhhcmRha2VyIDI0IEFwciA5NiAwODozNjo1MAogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9leHRlbnNpYmxlLmMpIEluY2x1ZGUgdWZzL2Zmcy9mcy5oIGlmIGF2YWlsYWJsZS4KCmhhcmRha2VyIDI0IEFwciA5NiAwODozNzoxMwogICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pIEZvcmdvdCBhIHF1b3RlLiAgKHdoeSBoYXNuJ3QgdGhpcyBhcHBlYXJlZCBiZWZvcmU/KQoKaGFyZGFrZXIgMjQgQXByIDk2IDA4OjM4OjE4CiAgICAtIChhZ2VudC9hbGFybS5jKSBGaXhlZCBzb21lIGRlZmluZSBuYW1pbmcgY29uZmxpY3RzIGZvciBOZXRCU0QgKHRpbWVyYWRkKCkpLgoKaGFyZGFrZXIgMjQgQXByIDk2IDA4OjQ0OjQ1CiAgICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLHNubXBfdmFycy5jKSBtb3JlIGNvbmZpZyBmaWxlcyBmb3IgTmV0QlNELgogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpIHJlbW92ZWQgYXJwIHRhYmxlcyBmb3IgbmV0YnNkLgoKaGFyZGFrZXIgMjQgQXByIDk2IDA4OjU0OjA3CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgZWNlLW1pYi5kZWYsIG92LyopIEFkZGVkIE5ldEJTRCB0byBzeXMtT0lEIHJldHVybmVkLgoKaGFyZGFrZXIgMjQgQXByIDk2IDA4OjU0OjM5CiAgICAtIChtYW4vLmN2c2lnbm9yZSkgYWRkZWQgc25tcGQuMQoKaGFyZGFrZXIgMjQgQXByIDk2IDA5OjAwOjIxCiAgICAtIChSRUFETUUpIHVwZGF0ZWQKCmhhcmRha2VyIDI0IEFwciA5NiAwOTowNzo0MAogICAgLSAoSU5TVEFMTCkgdXBkYXRlZAoKaGFyZGFrZXIgMjQgQXByIDk2IDExOjQ2OjUyCiAgICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jKSBDaGVja2VkIGZvciBzeXMvbWJ1ZiBmb3IgZGV0ZXJtaW5pbmcgcnRlbnRyeS5ydF9uZXh0CgpoYXJkYWtlciAyNCBBcHIgOTYgMTE6NTU6MTAKICAgIC0gKGFnZW50L3NubXBfdmFyX3JvdXRlLmMpIEAjJCVpbmcgc29sYXJpcwoKaGFyZGFrZXIgMjQgQXByIDk2IDEzOjI1OjQ4CiAgICAtIChjb25maWcqLGFnZW50L3NubXBfdmFyX3JvdXRlLmMpIGNvbmZpZyBjaGVja2luZyBmb3IgcnRlbnRyeS5ydF9uZXh0CgpoYXJkYWtlciAyNCBBcHIgOTYgMTQ6Mzc6NDcKICAgIC0gKGxvY2FsL3NubXBjaGVjaykgbmV3IHByZWY6ICBkb24ndCBwb3AgZm9yd2FyZCBvbiBuZXcgcHJvYmxlbXMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiAgVjMuMC41IC0+IFYzLjAuNgoKaGFyZGFrZXIgMjQgSmFuIDk2IDE2OjMxOjIwCiAgICAtIFJldHVybmluZyBFWFRFTlNJQkxFRE9UTUlCLkFHRU5USUQgYXMgdGhlIG5ldyBvYmplY3RpZAoKRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az4gMjQgSmFuIDk2IDE2OjMzOjA4CiAgICAtIFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az4KICAgICAgLSBmaXhlcyAtcCBQT1JUIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gYWN0dWFsbHkgdXNlIHRoZSByZXF1ZXN0ZWQgcG9ydC4KICAgICAgLSBmaXhlcyB0aGUgLWwgTE9HRklMRSBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIGFjdHVhbGx5IHVzZSBpdC4KCmhhcmRha2VyIDI0IEphbiA5NiAxNjozNjo1MQogICAgLSAoTWFrZWZpbGUsIGNvbmZpZy5oLCBlY2UtbWliLiosIHNlZHNjcmlwdC5pbikKICAgICAgLSBjaGFuZ2VkIHRoZSB3YXkgbWliLnR4dCBpcyBidWlsdAogICAgICAgIC0gc3BsaXQgdGhlIGNvbW1hbmQgaW50byB0d28gcGFydHMgdG8gYnVpbGQgYSBlY2UtbWliLnR4dCBhcyB3ZWxsCiAgICAgIC0gYWRkZWQgYSBuZXcgT2JqZWN0SUQgYWRkaXRpb24gdG8gZWNlLW1pYi50eHQKICAgICAgLSBERUZNQVhMT0FEQVZFIC0+IERSRU1PVkVNRUVGTUFYTE9BREFWRQoKaGFyZGFrZXIgMjYgSmFuIDk2IDA4OjI1OjA4CiAgICAtIFRoZSBTb2xhcmlzIDIuNSBrZXJuZWwgaGFzIG1vdmVkIHRvIC9rZXJuZWwvZ2VudW5peAogICAgICAtIFRoYW5rcyBnb2VzIHRvIHBvbW1pZXJAdm9sbmF5LnN0b3J0ZWsuY29tIChWaW5jZW50IFBvbW1pZXIgKFRvdWxvdXNlKSkKCmhhcmRha2VyICA5IEZlYiA5NiAxNzowNTowMAogICAgLSBCZXR0ZXIgT3BlblZpZXcgc3VwcG9ydAogICAgICAtIFJldHVybnMgZGlmZmVyZW50IHN5c09iamVjdElEJ3MgZm9yIGVhY2ggYXJjaGl0ZWN0dXJlCiAgICAgIC0gQWRkZWQgYSAnb3YnIGRpcmVjdG9yeSBmb3IgT3BlblZpZXcgc3VwcG9ydCBmaWxlcwogICAgICAgIC0gY3VycmVudGx5IGNvbnRhaW5zIG5lY2Vzc2FyeSBmaWxlcyB0byBzdXBwb3J0IGEgVUNEIGJpdG1hcCBmaWxlCiAgICAgICAgICBmb3IgaG9zdHMgdXNpbmcgdGhlIHVjZC1zbm1wIGFnZW50LiAgU2VlIHRoZSBvdi9SRUFETUUgZmlsZSBmb3IgZGV0YWlscy4KCmhhcmRha2VyIDEyIEZlYiA5NiAxNDoyODoyNwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmhpbiwgYWdlbnQvZXh0ZW5zaWJsZS9taXNjLmMpCiAgICAgIC0gVGhlIGFnZW50IG5vdyBzZXRzIGFuIGFsYXJtIHRvIHJlc3RhcnQgcmF0aGVyIHRoYW4gZG9pbmcgYXQgdGhlCiAgICAgICAgc25tcHNldCB0aW1lIHRvIHJldHVybiBhIHZhbHVlIHRvIHRoZSBzbm1wc2V0IHJlcXVlc3QuCgpoYXJkYWtlciAxNiBGZWIgOTYgMTY6MzI6NDEKICAgIC0gKGFjY29uZmlnLmgsY29uZmlnLmguaW4sIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvZXh0ZW5zaWJsZS9yZWFkX2NvbmZpZy5jKQogICAgICAtIC5jb25mIGZpbGUgYWRkaXRpb246ICAiY29tbXVuaXR5IE4gU1RSSU5HIiB0byBjaGFuZ2UgY29tbXVuaXR5IG5hbWVzCgpoYXJkYWtlciAyMSBGZWIgOTYgMTY6MTI6MzkKICAgIC0gKE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4sIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBkLmNvbmYuNS5kZWYpCiAgICAgIC0gQWRkZWQgdGhlIGJlZ2lubmluZ3Mgb2YgYSBzbm1wZC5jb25mIG1hbnVhbCBwYWdlLgoKaGFyZGFrZXIgMjEgRmViIDk2IDE2OjE1OjM2CiAgICAtIChhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0cmFwLmMpCiAgICAgIC0gQWRkZWQgYXBwcy9zbm1wdHJhcAogICAgICAgIC0gY29kZSB0YWtlbiBmcm9tIDIuMC4xIGFuZCBzdWJtaXR0ZWQgdG8gbWUgYnkgZnJhbmN1c0BtZXRzbnkuZGVscGhpLmNvbS4KICAgICAgICAtIEkgaGF2ZSB5ZXQgdG8gdGVzdCBpdC4KCmhhcmRha2VyICA2IE1hciA5NiAwOTowOToxNQogICAgLSAoYWdlbnQvc25tcGQuYykgQWRkZWQgT19UUlVOQyB0byB0aGUgbG9nZmlsZSBvcGVuKCkgY2FsbC4KCmhhcmRha2VyICA2IE1hciA5NiAxMDowNjoyNAogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9yZWFkX2NvbmZpZy5jKSBzbWFsbCBidWdzIGZpeGVkCiAgICAgIC0gZGlzayBlbnRyaWVzIHdpdGggbm8gc2l6ZSBzcGVjaWZpZWQgY2F1c2VkIHNlZy1mYXVsdHMuCiAgICAgIC0gYmV0dGVyIHR5cGUgY2hlY2tpbmcgb24gTUlCIGZvciAnZXhlYyBNSUInIGVudHJpZXMuCiAgICAgIC0gbW9yZSBlcnJvciBtZXNzYWdlcyBhZGRlZC4KCmhhcmRha2VyICA2IE1hciA5NiAxNjozODoxNgogICAgLSAoZWNlLW1pYi5kZWYpCiAgICAgIC0gQ2hhbmdlZCBjYXBpdGFsaXphdGlvbiBzY2hlbWVzIHRvIGJlIG1vc3kgY29tcGxpYW50LgogICAgICAtIE1hZGUgdGhlIG1lbW9yeSBtaWIgU1lOVEFYIHBvaW50IHRvIHRoZSBNZW1vcnkgc2VxdWVuY2UgbGlrZSBpdCBzaG91bGQuCgpoYXJkYWtlciAgNiBNYXIgOTYgMTY6NTg6MTEKICAgIC0gKHNubXBsaWIvbWliLmMpIHByaW50ZWQgdmFsdWVzIGZvciB0aW1ldGlja3MgYXJlIG5vIGxvbmdlciBuZWdhdGl2ZS4KCmhhcmRha2VyICA4IE1hciA5NiAxMDozMTozNAogICAgLSAoc25tcGxpYi9zbm1wX2NsaWVudC5jKSBDaGVjayBpZiB2YXJpYWJsZSBjb250ZW50IGlzIE5VTEwgYmVmb3JlIHVzaW5nLgoKaGFyZGFrZXIgIDggTWFyIDk2IDE2OjU2OjA4CiAgICAtIChhZ2VudC9leHRlbnNpYmxlL2V4ZWMuYykKICAgICAgIC0gcmVsb2NhdGFibGUgZXhlYydzIGZhaWxlZCB0byBjbG9zZSB0aGUgY2FjaGUgZmlsZS4KCmhhcmRha2VyIDExIE1hciA5NiAxMzozNzoyNQogICAgLSAoc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMsIGV4dGVuc2libGUuYyk6IGNvbW1lbnRlZCBvdXQgbmxpc3Qgd2FybmluZ3MuCgpoYXJkYWtlciAxMSBNYXIgOTYgMTU6MTc6MjYKICAgIC0gKG1hbi97TWFrZWZpbGUuaW4sc25tcGQuMS5kZWYsc25tcGQuY29uZi41LmRlZn0sdmVyc2lvbnRhZyxzZWRzY3JpcHQuaW4pOgogICAgICAtIGNsZWFuZWQgdXAgZG9jdW1lbnRhdGlvbiBtb3JlIGFuZCBhZGRlZCB0aGUgdmVyc2lvbiBudW1iZXIgdG8gdGhlIHRyYWlsZXJzLgoKaGFyZGFrZXIgMTEgTWFyIDk2IDE1OjE3OjU3CiAgICAtIChSRUFETUUpOiBjbGVhbmVkIHVwLCByZS1hcnJhbmdlZCwgc2hvcnRlbmVkIChzZWN0aW9ucyBtb3ZlZCB0byBtYW4vKiBkb2NzKS4KCmhhcmRha2VyIDExIE1hciA5NiAxNTo0MDoxNwoKICAgIC0gKFJFQURNRSk6IG1vcmUgY2xlYW4gdXAgYW5kIGFkZGVkIHJlZmVyZW5jZSB0byB0aGUgdWNkLXNubXAgbWFpbGluZyBsaXN0LgoKR2lvdmFubmkgUy4gTWFyem90IDxnbWFyem90QGJheW5ldHdvcmtzLmNvbT4gMTEgTWFyIDk2IDE1OjU3OjIwCgogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogZml4ZWQgYSB0aW1lb3V0IGJ1ZyBjYXVzZWQgYnkgYXJjaGl0ZWN0dXJlcwogICAgICB3aXRoIGFuIHVuc2lnbmVkIHRpbWV2YWwudHZfc2VjIHZhbHVlLgogICAgICAtIFRoYW5rcyBnb2VzIHRvIEdpb3Zhbm5pIFMuIE1hcnpvdCA8Z21hcnpvdEBiYXluZXR3b3Jrcy5jb20+IGZvcgoJdGhlIHBhdGNoIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlcyBzaW5jZSBWMy4wLjQKCmhhcmRha2VyIDE5IEphbiA5NiAxNzozMToxNgogICAgLSAoY29uZmlndXJlKikKICAgICAgLSB1cGRhdGVkIHRvIGF1dG9jb25mIHYyLjcKICAgICAgLSBIb3BlZnVsbHkgbm93IHVzaW5nIGNvcnJlY3QgJ21ha2UnIGRlZmluaXRpb25zCgpoYXJkYWtlciAxOSBKYW4gOTYgMTc6MzI6NTcKICAgIC0gKGFnZW50L2V4dGVuc2libGUvKi5jKQogICAgICAtIERlY2xhaXJlZCBtb3JlIHN0YXRpYyB2YXJpYWJsZXMgKGxvbmdfcmV0KSB0byBmaXggc3VuNHMgZXhpdCBjb2RlcyAoYWdhaW4pLgoKaGFyZGFrZXIgMjIgSmFuIDk2IDE2OjI3OjMwCiAgICAtIChhY2NvbmZpZy5oLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvZXh0ZW5zaWJsZS8qLmMpCiAgICAgIC0gQWRkZWQgbmV3IGRlZmluZXMgdG8gdHVybiBvbi9vZmYgc2VjdGlvbnMgb2YgdGhlIGV4dGVuc2libGUgbWliLgogICAgICAtIFRoaXMgYWxzbyBmaXhlcyB0aGUgbWliLnR4dCBmaWxlIGRlZmluaXRpb25zIGlmIHNvbWV0aGluZyBpcyB0dXJuZWQgb2ZmLgogICAgLSAoTWFrZWZpbGUuaW4pIHJlbW92ZWQgJHtzcmNkaXJ9IGZyb20gdGhlIGZyb250IG9mIHN0YW1wLWguaW4KCmhhcmRha2VyIDIyIEphbiA5NiAxNzoxODo1OAogICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pIEFkZGVkIGEgY2htb2QgdG8gbWFrZSB0aGUgc25tcGNoZWNrIHNjcmlwdCBleGVjdXRhYmxlCgpoYXJkYWtlciAyMiBKYW4gOTYgMTc6MjM6MTcKICAgIC0gKGxvY2FsL3NubXBjaGVjaykKICAgICAgLSBhZGRlZCBhZ2VudCBjb250cm9sczogIHJlc3RhcnQsIHVwZGF0ZWNvbmZpZywgY2xlYXJjYWNoZS4KICAgICAgLSByZW1vdmVkIGFuIG9sZCBkZWJ1Z2dpbmcgcHJpbnRmLgogICAgICAtIGN0cmwtZiA9PiBmaXhhbGwuCiAgICAgIC0gQWRkZWQga2V5Ym9hcmQgYWNjZWxlcmF0b3JzIHRvIHRoZSBhc3NvY2lhdGVkIG1lbnUgaXRlbXMuCiAgICAgIC0gTWFkZSBoaWdobGlnaHRUaGlja25lc3MgYSBnbG9iYWwgcGFyYW1ldGVyIHZpYSAkd2luZG93LT5vcHRpb24oJ2FkZCcpLgogICAgICAtIEFkZGVkIGEgZW50cnkgYm94IHRvIHRoZSBleGVjdXRhYmxlIGNvbW1hbmRzIHdpdGggdGhlIGNvbW1hbmQgdG8gcnVuLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgVjMuMC4zCgpoYXJkYWtlciAyMyBPY3QgOTUgMTY6Mzc6NDMKICAgIC0gKGV4dGVuc2libGUuYykgc3RvcHBlZCByZXBvcnRpbmcgYW55dGhpbmcgZm9yIHRoZSBkaXNrIG1pYiBpZiBubwogICAgICBkaXNrcyB3ZXJlIGRlZmluZWQgaW4gdGhlIHNubXBkLmNvbmYgZmlsZS4gIFRoaXMgd2FzIGNhdXNpbmcgYW4KICAgICAgZXJyb3IgaW4gdGhlIGFnZW50J3MgZXJyb3IgbWliIHdoZW4gbm8gZGlza3Mgd2VyZSBkZWZpbmVkIGFuZAogICAgICBzb21lb25lIHdhbGtzIHRoZSBkaXNrIG1pYi4KCmhhcmRha2VyIDIwIE5vdiA5NSAxNjowNDo0NwogICAgLSAoUkVBRE1FKSBBZGRlZCBwb2ludGVyIHRvIHRoaXMgZmlsZSB2aWEgZnRwCgpoYXJkYWtlciAyMCBOb3YgOTUgMTY6MDU6MTIKICAgIC0gKFRPRE8pIEZpbmQgYW5kIGZpeCBtZW1vcnkgbGVhayBzb21ldGltZQoKaGFyZGFrZXIgMjAgTm92IDk1IDE2OjA3OjQ1CiAgICAtIChjb25maWd1cmUuaW4pIENoZWNrIGZvciAtbGVsZiBmb3Igc29sYXJpcyAyLjMgYW5kIHlvdW5nZXIKICAgIC0gKGNvbmZpZ3VyZS5pbikgTW9yZSBzb2xhcmlzIHNwZWNpZmljczogIC1EU1ZSNAogICAgLSAoY29uZmlndXJlLmluKSBDYWNoZXMgaW5pdGlhbCBwcm9tcHQgaW4gdGhlIGNvbmZpZ3VyZSBzY3JpcHQgc28geW91CiAgICAgIHdvbid0IGJlIGJ1Z2dlZCB0d2ljZSBieSB0aGUgaW5pdGlhbCBxdWVzdGlvbi4KCmhhcmRha2VyIDIwIE5vdiA5NSAxNjowODo0OQogICAgLSAoY29uZmlnLmguaW4pIENoZWNrIGZvciAtbGVsZiBmb3Igc29sYXJpcyAyLjMgYW5kIHlvdW5nZXIKCmhhcmRha2VyIDIwIE5vdiA5NSAxNjowOTozNwogICAgLSAoYWxsIGF1dG9jb25mIGJ1aWx0IGZpbGVzKSBVcGRhdGVkIGV2ZXJ5dGhpbmcgdG8gYXV0b2NvbmYgMi41CgpoYXJkYWtlciAyMCBOb3YgOTUgMTY6MTA6NDkKICAgIC0gKHRyYXBub3RpZikgTG9ncyBuby1yZXNwb25zZSBlcnJvcnMuCiAgICAtICh0cmFwbm90aWYpIEJldHRlciBzdHJpbmcgY2hlY2tpbmcgKHF1b3RlcyBhbGwgdmFyaWFibGVzIG5vdykKCmhhcmRha2VyICAxIERlYyA5NSAxNjoyMDoxMwogICAgLSBsb2NhbC9zbm1wY2hlY2s6ICAgICAgICpuZXcgZmVhdHVyZXMqCiAgICAgIC0gaGFuZGxlcyBmYWlsZWQgc25tcHdhbGsvZ2V0L3NldHMgbXVjaCBtb3JlIGdyYWNlZnVsbHkgbm93CiAgICAgIC0gbmV3IHByZWZlcmVuY2U6ICBZb3UgY2FuIHBpY2sgd2hhdCB0eXBlcyBvZiBwcm9ibGVtcyB0byBjaGVjayBmb3IKICAgICAgICAtIC1mIG9uIHRoZSBjb21tYW5kIGxpbmUgb25seSBjaGVja3MgZm9yIGZpeGFibGUgcHJvYmxlbXMKICAgICAgLSBubyBsb25nZXIgcGluZzo6ZWNob3MgaG9zdHMgYmVmb3JlIGNoZWNraW5nIHRoZW0KICAgICAgICAtIGluc3RlYWQgcmVsaWVzIG9uICdObyBSZXNwb25zZScgdHlwZSByZXBsaWVzIGZyb20gc25tcHdhbGsvZ2V0IHRvCiAgICAgICAgICBkZXRlcm1pbmUgaWYgYSBob3N0IGlzIHVwLgogICAgICAgIC0gcGluZyB0aGUgaG9zdCBpcyBzdGlsbCBhbiBvcHRpb24gKHRocm91Z2ggdGhlIGNvbW1hbmQgbGluZSBhbmQgbWVudXMpCiAgICAgIC0gY29udmVydGVkIGZyb20gVGstYjQgdG8gVGstYjgKICAgICAgLSBBZGRlZCBhIGxvZ2dpbmcgd2luZG93IGZvciBkZWJ1Z2dpbmcgYW5kIHRyYWNraW5nIG9mIGFjdGlvbnMuCiAgICAgICAgLSBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbnM6ICAtViBOVU0gIGluaXRpYWwgbG9nIHZlcmJvc2l0eSBsZXZlbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUwgICAgICBzaG93IHRoZSBsb2cgd2luZG93IGF0IHN0YXJ0dXAKICAgICAgLSBOb3cgdHJhbnNsYXRlcyBtaWIgbnVtYmVycyBpbnRvIG1vcmUgcmVhc29uYWJsZSBuYW1lcwoKaGFyZGFrZXIgIDUgRGVjIDk1IDE0OjU3OjE0CiAgICAtIChjb25maWd1cmUqKSBhZGRlZCBBQ19UWVBFX1BJRF9UIHRvIHRoZSBjb25maWd1cmUgY2hlY2tzCgpoYXJkYWtlciAgNSBEZWMgOTUgMTU6MDE6MTAKICAgIC0gKHNubXBjaGVjaykKICAgICAgLSBOZXcgZmxhZzogIC1kLCBkb24ndCBzdGFydCBjaGVja2luZyBhbnl0aGluZy4gIEp1c3QgYnJpbmcgdXAgaW50ZXJmYWNlLgogICAgICAtIGNoZWNrIGZvciBibGFuayBvdXRwdXQgb2Ygc25tcGdldCBiZWZvcmUgcGFyc2luZyB3aXRoIHMvLy9nCiAgICAgICAgY29uc3RydWN0cy4KCmhhcmRha2VyICA1IERlYyA5NSAxNTowNToyMAogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZSkKICAgICAgLSBCdWcgZml4OiAgYWxwaGFzIGFuZCBzdW5vc2VzIHdlcmUgcmVwb3J0aW5nIGluY29ycmVjdCBleHRlbnNpYmxlCiAgICAgICAgZXhpdCBjb2Rlcy4gICh5ZXQgYW5vdGhlciA2NC8zMiBiaXQgYnVnIGZvdW5kKS4KICAgICAgLSBCdWcgZml4OiBhZ2VudC11cGRhdGUscmVzdGFydCwgYW5kIGNhY2hlIG1pYiBmbHVzaCBlbnRyaWVzIHdlcmUKICAgICAgICByZXR1cm5pbmcgdmFsdWVzIGluc3RlYWQgb2YgcG9pbnRlcnMgdG8gdmFsdWVzLgoKaGFyZGFrZXIgMTMgRGVjIDk1IDE1OjI3OjE5CiAgICAtIChhZ2VudC9leHRlbnNpYmxlL21pc2MuYykgYnVnIGZpeGVzIGZvciBleGVjIGl0ZW1zOgogICAgICAtIGEgc2Vjb25kIHNubXB3YWxrIG9mIHRoZSBleGVjIGl0ZW0gd291bGQgcmV0dXJuIHRoZSBvbGQgY2FjaGUKICAgICAgICBmaWxlLiAgRml4ZWQgYnkgcmVzZXRpbmcgdGhlIGxhc3QgY2FjaGV0aW1lIHRvIDAgdG8gYWx3YXlzIHJlc2NhbgogICAgICAgIGFmdGVyIGZvcmsvcGlwZS9tZW1vcnkvZXRjIGVycm9ycy4KICAgICAgLSBNYWRlIGxhc3RyZXN1bHQgYSBzdGF0aWMgdmFyLiAgV2FzIHJldHVybmluZyB3cm9uZyBleGl0IGNvZGVzCiAgICAgICAgdW5kZXIsIHN0cmFuZ2VseSBlbm91Z2gsIG9ubHkgc3Vub3MtNCBtYWNoaW5lcy4KCmhhcmRha2VyIDIwIERlYyA5NSAwOTo1MzoxMAogICAgLSBzbm1wX29wZW4gY2FsbHMgZ2V0c2VydmJ5bmFtZSBvbmx5IG9uY2Ugbm93LCBhdCB0aGUgcmVxdWVzdCBvZiBHYXJ5CiAgICAgIEhheXdhcmQgPGdhaEBkaXJhYy5iZWxsY29yZS5jb20+LgoKaGFyZGFrZXIgMjAgRGVjIDk1IDE1OjU2OjE2CiAgICAtIEZvdW5kIGFuZCBmaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSByb3V0aW5nIHRhYmxlIG1pYi4KCmhhcmRha2VyIDI4IERlYyA5NSAxMDowMTozNQogICAgLSBBZGRlZCBzZWRzY3JpcHQgdG8gdGhlIC5jdnNpZ25vcmUgZmlsZS4KCmhhcmRha2VyIDI4IERlYyA5NSAxMDoyNDozNwogICAgLSBBZGRlZCBhIHNlZHNjcmlwdCB3aGljaCBpcyBidWlsdCBmcm9tIGNvbmZpZy5oIGFuZCBhZ2VudC9leHRlbnNpYmxlL21pYmRlZnMuaAogICAgICAtIHVzZWQgdG8gZHluYW1pY2FsbHkgYnVpbGQgbWliLnR4dCBhbmQgbG9jYWwvc25tcGNoZWNrLgoKaGFyZGFrZXIgMjggRGVjIDk1IDEyOjA2OjQ5CiAgICAtIENyZWF0ZWQgYSBFWEFNUExFLmNvbmYgZmlsZSBmb3IgZXhhbXBsZSB1c2FnZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgVjMuMC4yLjEKCmhhcmRha2VyIDI5IFNlcCA5NSAxMzo0Mzo0OQogICAgLSBwb3J0ZWQgdG8gR05VJ3MgYXV0b2NvbmZpZzIuNAogICAgICAtIHRvIGluc3RhbGwsIHlvdSBtdXN0IG5vdyBydW4gLi9jb25maWd1cmUgZmlyc3QgdG8gZ2VuZXJhdGUgdGhlCiAgICAgICAgTWFrZWZpbGVzIGFuZCBjb25maWcuaAogICAgICAtIGFsbW9zdCBhbGwgb2YgdGhlIGNvZGUgaXMgbm93IGR5bmFtaWNhbGx5IGNoZWNrZWQgZm9yIHByb2JsZW1zCiAgICAgICAgcmF0aGVyIHRoYW4gYmVpbmcgZGVwZW5kYW50IG9uIGFyY2hpdGVjdHVyZSBuYW1lcy4KICAgIC0gc3lzdGVtIG5hbWUgbm93IGR5bmFtaWNhbGx5IGRldGVybWluZWQgYXQgcnVuIHRpbWUgKGZyb20gdW5hbWUgLW4pCiAgICAtIGNyZWF0ZWQgYSAnbWFrZSBkZXBlbmQnIGNhbGwgKGZpbmFsbHkpLgogICAgLSAoYWdlbnQvc25tcF92YXJzLmgpIGNoYW5nZWQgU1lTTkFNRSBkZWZpbmUgdG8gU1lTVEVNTkFNRSBkZWZpbmUgdG8KICAgICAgYXZvaWQgYSBjb25mbGljdCB3aXRoIGEgc29sYXJpcyBoZWFkZXIgZmlsZS4KICAgIC0gcHJvdGVjdGluZyBiZXR0ZXIgYWdhaW5zdCBpbmNsdWRlIGhlYWRlciBmaWxlcyB0d2ljZS4KICAgIC0gTW9zdCBvZiBwb3J0IHRvIFNvbGFyaXMgMi40IGZpbmlzaGVkLiAgVGhlIGtlcm5lbCByZWFkcyBzdGlsbCBuZWVkIHdvcmsuCgpoYXJkYWtlciAyOSBTZXAgOTUgMTM6NDY6NDMKICAgIC0gKE5FV1MpIHVwZGF0ZWQgdGhlIG5ld3MgZmlsZS4KCmhhcmRha2VyICAzIE9jdCA5NSAwOToyNDowMAogICAgKGFjY29uZmlnLmgpIE1pbm9yIGJ1ZzogIHJlY3Vyc2l2ZSBjb21tZW50cyBub3QgY29ycmVjdCBmb3IgY29tcGlsZXJzIChBSVgpCgpoYXJkYWtlciAgMyBPY3QgOTUgMDk6NDM6NTQKICAgICh2ZXJzaW9uaW5mby5jKSBBZGRlZCAzLTAtMy1BMSB0YWcKCmhhcmRha2VyICA0IE9jdCA5NSAxNjo1MzozOQogICAgdmVyc2lvbiB0YWcgb2YgdmVyc2lvbmluZm8uYwoKaGFyZGFrZXIgIDUgT2N0IDk1IDE1OjIzOjA1CiAgICAtIE1vcmUgU29sYXJpcyBwb3J0aW5nLgogICAgICAtIE1vc3QgbWliSUkgZW50cmllcyBub3cgd29yay4KICAgICAgICAgLSBIYXZlbid0IGNoZWNrZWQgcmV0dXJuZWQgaW5mb3JtYXRpb24gZm9yIGFjY3VyYWN5CiAgICAgIC0gc3lzVXBUaW1lIHN0aWxsIGZhaWxzLgogICAgICAtIGNjIGFuZCBnY2MgYm90aCBjb21waWxlIGV2ZXJ5dGhpbmcgbm93LgoKaGFyZGFrZXIgIDUgT2N0IDk1IDE1OjQ4OjIzCiAgICB2ZXJzaW9uIHRhZyBvZiB2ZXJzaW9uaW5mby5jCgpoYXJkYWtlciAgNiBPY3QgOTUgMTE6Mzc6MDAKICAgIC0gKFJFQURNRSkgTW92ZWQgSU5TVEFMTEFUSU9OIGluc3RydWN0aW9ucyB0byBJTlNUQUxMCiAgICAgICAgICAgICAgIENoYW5nZWQgbGlzdGluZyBvZiBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlcwogICAgICAgICAgICAgICBVcGRhdGVkIEFWQUlMQUJJTElUWSBzZWN0aW9uCgpoYXJkYWtlciAgNiBPY3QgOTUgMTY6Mjg6NDgKICAgIHZlcnNpb24gdGFnIG9mIHZlcnNpb25pbmZvLmMKCmhhcmRha2VyICA2IE9jdCA5NSAxNjozMjowNAogICAgLSAoc25tcGQuYykgQWRkZWQgdHdvIG5ldyBmbGFnczoKICAgICAgLWggZm9yIGhlbHAKICAgICAgLXYgZm9yIHZlcnNpb24gaW5mb3JtYXRpb24KCmhhcmRha2VyICA2IE9jdCA5NSAxNjozMjo0MwogICAgLSAocGFyc2UuYywgc25tcC5jKSBhZGRlZCBjb25maWcuaCB0byB0aGUgbGlzdCBvZiBpbmNsdWRlcy4KCmhhcmRha2VyICA2IE9jdCA5NSAxNjo0MDozOAogICAgLSAoc25tcGQuYykgVXNhZ2Ugb2YgLS1oZWxwIGFuZCAtLXZlcnNpb24gc2hvdWxkIHdvcmsgbm93Li4uICBHTlUgc3RhbmRhcmQuCgpoYXJkYWtlciAgNiBPY3QgOTUgMTY6NDE6MTgKICAgIC0gKE5FV1MvLVRPRE8pIC1oLy0taGVscCwgLXYvLS12ZXJzaW9uIGNvbW1hbmQgbGluZSBvcHRpb25zCgpoYXJkYWtlciAxMSBPY3QgOTUgMTc6MzM6MjYKICAgIC0gVGhlIGNvbmZpZ3VyZSBzY3JpcHQgbm93IHByb21wdHMgZm9yIGltcG9ydGFudCB2YWx1ZXMgdG8gYmUgcHV0IGluCiAgICAgIGNvbmZpZy5oLiAgU29tZSB0aGluZ3MgbmVlZCB0byB1c2UgJChwcmVmaXgpIGluc3RlYWQgaG93ZXZlci4KICAgIC0gKE1ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbikKICAgICAgKyBsaW5raW5nIHRvIC4uL3NubXBsaWIvbGlic25tcC5hIGluc3RlYWQgb2YgLi4vbGliL2xpYnNubXAuYSB0bwogICAgICAgIHJlbW92ZSBpbnN0YWxsIHJlcXVpcmVtZW50LgogICAgICArICBwdXQgLi4vbGliL2xpYnNubXAuYSBpbiBhcHBsaWNhdGlvbgoKaGFyZGFrZXIgMTMgT2N0IDk1IDE1OjQ1OjI4CiAgICAtIChzbm1wZC5jKSBBZGRlZCAtcCBwb3J0IHRvIC0taGVscCBvdXRwdXQKICAgIC0gKGNvbmZpZykgU2V0dXAgdG8gdXNlIC0tcHJlZml4IHRvIGxvb2sgZm9yIGNvbmZpZyBmaWxlcy4KCmhhcmRha2VyIDE2IE9jdCA5NSAxMzowMTozOQogICAgLSAoTWFrZWZpbGVzKSBGYWlybHkgZGVjZW50ICdtYWtlIGluc3RhbGwnIG5vdyBwb3NzaWJsZS4gIEluc3RhbGxzCiAgICAgIGludG8gdGhlIGRpcmVjdG9yeSBzcGVjaWZpZWQgYnkgLS1wcmVmaXggZm9yIHRoZSAuL2NvbmZpZ3VyZSBzY3JpcHQuCiAgICAtIChleHRlbnNpYmxlLmMpIGNvbmZpZyBmaWxlIHJlLWxvY2F0aW9uOiBub3cgdXNlcyB0aGUgU05NUExJQlBBVEgKICAgICAgZGVmaW5lZCBsb29zZWx5IGFzICQocHJlZml4KS9saWIvc25tcC8uCgpoYXJkYWtlciAxNiBPY3QgOTUgMTU6MDI6MDEKICAgIC0gKE1ha2VmaWxlcykgbWFrZSBpbnN0YWxsIGVjaG9zIHdoYXQgaXRzIGRvaW5nIGluIGEgbW9yZSBjbGVhciBmYXNoaW9uCiAgICAtIChJTlNUQUxMKSBhZGRlZCBiZXR0ZXIgaW5zdHJ1Y3Rpb25zIHRvIHRoZSBJTlNUQUxMIGZpbGUuCiAgICAtIChSRUFETUUpIG1pbm9yIHdvcmRpbmcgY2hhbmdlcwoKaGFyZGFrZXIgMTYgT2N0IDk1IDE2OjIxOjQzCiAgICAtIChzbm1wZC5jKSB3YXMgc3RpbGwgbG9va2luZyBpbiAvZXRjIGZvciB0d28gLmNvbmYgZmlsZXMuCgpoYXJkYWtlciAxNiBPY3QgOTUgMTY6NDM6MTIKICAgIC0gKGFwcHMpIGFsbCBhcHBzIHdlcmUgc3RpbGwgbG9va2luZyBpbiAvZXRjLyBmb3IgLmNvbmYgZmlsZXMKCmhhcmRha2VyIDE3IE9jdCA5NSAxNjo1ODozMgogICAgdmVyc2lvbiB0YWcgKCAzLjAuMyApIG9mIHZlcnNpb25pbmZvLmMKCmhhcmRha2VyIDE3IE9jdCA5NSAxNzowMDoyMgogICAgLSBDaGFuZ2VMb2cgdXBkYXRlCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlcyBzaW5jZSBWMy4wLjIKCmhhcmRha2VyIDIxIFNlcCA5NSAwOToyNzoxOAogICAgKHNubXBsaWIvbWQ1LmMpIEZvcmdvdCB0byBpbmNsdWRlIHN5cy90eXBlcy5oIGZvciB1X2xvbmcgZGVmaW5pdGlvbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgVjMuMC4xCgpoYXJkYWtlciAyNiBKdWwgOTUgMTY6MzE6NDEKICAgIC0gQWRkZWQgYSBuZXcgI2RlZmluZTogRVhJVF9PTl9CQURfS0xSRUFEIHRvIGNvbmZpZy5oCiAgICAgIElmIGRlZmluZWQsIGFuZCBhbiBlcnJvciBvY2N1cnMgd2hpbGUgcmVhZGluZyB0aGUga2VybmVsIGNvbnRlbnRzLAogICAgICB0aGUgYWdlbnQgd2lsbCBleGl0LiAgVGhpcyB3YXMgdGhlIGRlZmF1bHQuICBJIHdhbnRlZCBpdCB0bwogICAgICBjb250aW51ZS4KICAgIAogICAgLSBQb3J0IHRvIGRlYy1hbHBoYS9PU0YgMy4xCiAgICAgIC0gYWxwaGEncyBsb25nIGlzIDggYnl0ZXMsIG5vdCA0LgogICAgICAtIHNob3VsZCBiZSAobW9zdGx5KSA2NCBiaXQgY2xlYW4gbm93LgogICAgICAtIGNsZWFuZWQgdXAgYSBMT1Qgb2YgYnVncyBDTVUgY29kZSBpbiB0aGUgcHJvY2Vzcy4KCmhhcmRha2VyIDI4IEp1bCA5NSAxNDoyMzo0MQogICAgWWV0IG1vcmUgcHJvYmxlbXMgZml4ZWQgaW4gdGhlIGFscGhhIHBvcnQuCiAgICAgIC0tIG1vcmUgaW50IC0+IGxvbmcgY2hlY2tpbmcuCgpoYXJkYWtlciAzMSBKdWwgOTUgMTY6Mjc6NDcKICAgIC0gc25tcGNoZWNrIGNoYW5nZXM6CiAgICAgIC0gdGVybWluYWwgKGFzY2lpKSBiYXNlZCBzdXBwb3J0ZWQgZml4ZWQuCiAgICAgICAgLSBEZXRlY3RzIHByZXNlbmNlIG9mIGEgRElTUExBWSB2YXJpYWJsZS4KICAgICAgICAtIE5vdyByZXF1aXJlcyB0aGUgVGVybTo6UmVhZGtleSBwYWNrYWdlLgogICAgICAgIC0gYXNrcyB1c2VycyB3ZWF0aGVyIHRvIGZpeCBwcm9ibGVtcwogICAgICAtIHJhaXNlcyBhbmQgZGVpY29uaWZpZXMgd2hlbiBuZXcgcHJvYmxlbXMgYXJlIGZvdW5kCiAgICAgIC0gc2V0cyB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiBuZXcgcHJvYmxlbXMgdG8gcGlua2lzaAogICAgICAtIG5ldyBwcmVmZXJlbmNlOiAgcGluZyBob3N0PwogICAgICAtIGdsb2JhbCBrZXkgYmluZGluZ3M6CiAgICAgICAgICBjdHJsLXEgPSBxdWl0OyBjdHJsLWggPSBoaWRlOyBjdHJsLXMgPSBzZWVuIGFsbAoKaGFyZGFrZXIgIDEgU2VwIDk1IDExOjU3OjUyCiAgICAtIEZpeGVkIGFscGhhJ3Mga2VybmVsIGxvb2t1cHM6CiAgICAgICogQ01VIGNvZGUgd2FzIHBhc3NpbmcgaW50cyBpbnRvIGxzZWVrIChuZWVkcyBsb25nKS4KCmhhcmRha2VyIDE4IFNlcCA5NSAxNjowOToyNQogICAgTWlub3IgbW9kcyB0byBSRUFETUUgZmlsZS4KCmhhcmRha2VyIDE4IFNlcCA5NSAxNjoxMzo0OQogICAgTWlub3IgYnVnOgogICAgICAoc2hfY291bnRfcHJvY3MpIGNoZWNrIGlmIHJldHVybmVkIGZpbGUgZGVzY3JpcHRvciA+IDAgYmVmb3JlIGNvbnRpbnVpbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgVjMuMAoKaGFyZGFrZXIgMTYgSnVuIDk1IDEwOjEzOjUzCiAgICBSZW1vdmVkICdnbWFrZScgLT4gJ21ha2UnIGluIGFnZW50L01ha2VmaWxlCgpoYXJkYWtlciAxNiBKdW4gOTUgMTA6MTU6NDIKICAgIEhvdXNlIGNsZWFuaW5nCiAgICAgIC0gQ29tcGlsZXMgY2xlYW5seSBvbiBocHV4L2djYwogICAgCShleGNlcHQgb25lIGluY2x1ZGUgZmlsZSBlcnJvciBJIGRvbid0IGhhdmUgY29udHJvbCBvdmVyLikKICAgICAgLSBDaGFuZ2UgVkVSU0lPTl9JRCAtPiBWRVJTSU9OSUQgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggSFAncyBpbmNsdWRlcy4KCmhhcmRha2VyIDE2IEp1biA5NSAxNDoxMzo1MwogICAgSG91c2UgQ2xlYW5pbmc6CiAgICAgIFRvb2sgb3V0IGdjYy9hbnNpIHJlcXVpcmVtZW50IGZvciB0aGUgYWdlbnQuCiAgICAgIHBlcnJvcigpIGlzIGNhbGxlZCBtb3JlIGZyZXF1ZW50bHkgZm9yIGxvZyBhcmNoaXZhbAogICAgCiAgICBOZXcgQnVnL0hhdmVuJ3Qgc29sdmVkOgogICAgICBIUC1VWDogIGlmIGFnZW50LyouYyBhbmQgYWdlbnQvZXh0ZW5zaWJsZS8qLmMgYXJlIGJ1aWx0IHdpdGggZ2NjLAogICAgCSAgRGlzcGxheVN0cmluZ3MgcmV0dXJuIGdhcmJhZ2UuICBObyBjbHVlIGFzIHRvIHdoeS4KCmhhcmRha2VyIDE2IEp1biA5NSAxNDoyMDo0OAogICAgSG91c2UgQ2xlYW5pbmc6CiAgICAgIE1pc3NlZCBhIFZFUlNJT05fSUQKCmhhcmRha2VyIDIxIEp1biA5NSAwOToxMToyNwogICAgQ2hhbmdlZCBhbm90aGVyICJlbXB0eSIgZXJyb3IgbWVzc2FnZSBpbiB0aGUgQ01VIGNvZGUgdG8gYSByZWFsIHdhcm5pbmcuCgpoYXJkYWtlciAyMSBKdW4gOTUgMDk6MTU6MzEKICAgIEJ1ZyBGaXg6CiAgICAgIFN0b3BwZWQgcmV0dXJuaW5nIGEgcG9pbnRlciB0byBhIG5vbi1zdGF0aWMgY2hhciBhcnJheS4uLiAgKC0+IHN0YXRpYyBjaGFyKQogICAgICBQYXNzaW5nIHdyb25nIHBvaW50ZXIgdG8gc2V0ZXJyb3JzdGF0dXMoKSBpbiBzZXRQZXJyb3JzdGF0dXMoKQogICAgCiAgICBGZWF0dXJlOgogICAgICBBZGRlZCBhIHNldGFibGUgbWliIGVudHJ5IHRvIHRoZSB2ZXJzaW9uIG1pYiB0byByZS1yZWFkIHRoZSBjb25maWcgZmlsZShzKS4KCmhhcmRha2VyIDIxIEp1biA5NSAwOToxODozNwogICAgZWNlLW1pYi5kZWY6CiAgICBCdWcgRml4OgogICAgICBMb2FkYXZlIG1pYjogIEludGVnZXIgLT4gRGlzcGxheVN0cmluZwogICAgICB2ZXJzaW9uQ2xlYXJDYWNoZTogIC0+IHJlYWQtd3JpdGUgKHdhcyByZWFkLW9ubHkpCiAgICAKICAgIEZlYXR1cmU6CiAgICAgIEFkZGVkIGEgc2V0YWJsZSBtaWIgZW50cnkgdG8gdGhlIHZlcnNpb24gbWliIHRvIHJlLXJlYWQgdGhlIGNvbmZpZyBmaWxlKHMpLgoKaGFyZGFrZXIgMjEgSnVuIDk1IDA5OjE5OjE3CiAgICBDaGFuZ2VkIGRlZmF1bHQgQ0MgdG8gY2MgYWdhaW4uCgpoYXJkYWtlciAyMSBKdW4gOTUgMDk6MjA6MjMKICAgIHNubXBsaWI6CiAgICAgIEJ1ZyBmaXg6ICBmZHNldCAtPiAoaW50ICopIGZkc2V0IGluIHNlbGVjdCBjYWxsLgoKaGFyZGFrZXIgMTAgSnVsIDk1IDExOjI3OjAwCiAgICBUd28gbmV3IGNvbW1hbmQgbGluZSBvcHRpb25zOgogICAgICAtbCBMT0dGSUxFICAgICAgIE91dHB1dHMgc3RkZXJyL291dCB0byBMT0dGSUxFIChvdmVycmlkZXMgY29uZmlnLmggZGVmKQogICAgICAtTCAgICAgICAgICAgICAgIERvIE5PVCB3cml0ZSB0byBhIGxvZyBmaWxlIChvdmVycmlkZXMgY29uZmlnLmgpCgpoYXJkYWtlciAxMCBKdWwgOTUgMTI6Mjk6MzIKICAgIC0gTW9yZSBwZXJyb3IoKXMgY29udmVydGVkIHRvIHNldCB0aGUgc25tcCBlcnJvciBzdGF0dXMgZmxhZyBvbiB0aGUgYWdlbnQuCiAgICAtIGVycm9yIHN0YXR1cyBmbGFnIGlzIG5vdyBwcmlvcml0aXplZC4gIHBlcnJvcnMgZ2V0IHRoZSBoaWdoZXN0IHNvCiAgICAgIG90aGVyIGVycm9ycyB3b24ndCBvdmVycmlkZSB0aGVtIGlmIHRoZXkgaGFwcGVuIGF0IGEgbGF0ZXIgdGltZS4KICAgIC0gQWRkZWQgdGhlIGJlZ2lubmluZ3Mgb2YgYSByZXN0YXJ0IG1pYiB0byB0aGUgdmVyc2lvbiBtaWIgb2YgdGhlCiAgICAgIGFnZW50LiAgU2V0dGluZyB0aGlzIHdyaXRhYmxlIG1pYiB0byBvbmUgd2lsbCBjYXVzZSBpdCB0byBleGVjCiAgICAgIGl0c2VsZiBhZ2FpbiAoZm9yIHJlbW90ZSByZXN0YXJ0L3VwZGF0ZXMpLgoKaGFyZGFrZXIgMTAgSnVsIDk1IDEyOjMwOjE5CiAgICBNaW5vciBjb21tZW50IGNoYW5nZSBpbiBjb25maWcuaAoKaGFyZGFrZXIgMTQgSnVsIDk1IDE1OjEyOjQwCiAgICAtIEZpbmlzaGVkIHRoZSByZXN0YXJ0IG1pYi4gIFRoaXMgaXMgYSBzZXRhYmxlIHN1Yi1taWIgb2YgdGhlIHZlcnNpb24KICAgICAgbWliLCBkZWZhdWx0IHRvIFZFUlNJT04uMTIoLjEpLiAgSWYgc25tcC1zZXQgdG8gJzEnLCBpdCB3aWxsIHJlc3RhcnQKICAgICAgdGhlIGFnZW50LgogICAgCiAgICAgICogIEEgc2lkZSBlZmZlY3Qgb2YgdGhpcyBpcyB0aGF0IGl0IHJlc3RhcnRzIDMgdGltZXMgb3Igc28sIHNpbmNlIGl0CiAgICAgICAgIG5ldmVyIHJldHVybnMgYSByZXNwb25jZSB0byB0aGUgcHJvZ3JhbSBnZW5lcmF0aW5nIHRoZSByZXF1ZXN0LgogICAgICAgICBJZiBzYWlkIHByb2dyYW0gdHJpZXMgdG8gcmVzZW5kIHRoZSByZXF1ZXN0ICh3aGljaCBtb3N0IGRvKSwgaXQKICAgICAgICAgd2lsbCBBR0FJTiByZXN0YXJ0IHRoZSBhZ2VudC4uLiAgb2ggd2VsbC4KCmhhcmRha2VyIDE0IEp1bCA5NSAxNToxNTozMQogICAgLSBzbm1wY2hlY2sgKHRrLXBlcmwtYjQgc2NyaXB0KSBpcyBwcmV0dHkgc3RhYmxlIGF0IHRoaXMgcG9pbnQuICBJCiAgICAgIGxvc3QgY3Vyc2VzIHN1cHBvcnQsIGFuZCBuZWVkIHRvIHJlLWFkZCBpdCBzdGlsbCwgc28gaXQgaXMgc3RpbGwKICAgICAgYmV0YS4gIEl0IGRvZXMgZXhwZWN0IGEgbG9nIGZpbGUgb2YgcHJvYmxlbXMgdG8gZXhpc3QgKHBvaW50IGl0IHRvCiAgICAgIC9kZXYvbnVsbCksIGFuZCBuZWVkcyB0byBrbm93IHRoZSBsb2NhdGlvbnMgb2YgdGhlIG1pYnMgdG8gY2hlY2sKICAgICAgKHdoaWNoIGFyZW4ndCBjb25maWd1cmVkIGJ5ICdtYWtlJyksIHNvIGl0IG5lZWRzIHNvbWUgd29yay4KICAgICAgSG93ZXZlciwgaXQgd2lsbCBxdWVyeSBhbiBhZ2VudCwgY2hlY2sgaXRzIHByb2JsZW1zIGJhc2VkIG9uIHRoZQogICAgICBzdGF0dXMgb2YgdGhlIGVycm9yIGZsYWcgKG9yIHJldHVybiBjb2RlKSBiZWluZyA+MSBhbmQgcmVwb3J0IHRoZW0KICAgICAgd2l0aCBuZWF0IEdVSS1idXR0b25zIGFuZCBzdHVmZiAob2ggd293KS4gIE5vIGRvY3VtZW50YXRpb24gb24gaXQgdGhvdWdoLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlcyBzaW5jZSAzLTBBMToKCmhhcmRha2VyICAyIEp1biA5NSAxNjoyMzo0NgogICAgLSB2ZXJzaW9uIHVwZGF0ZQoKaGFyZGFrZXIgIDUgSnVuIDk1IDEyOjQ0OjQ2CiAgICAtIGFnZW50L2V4dGVuc2libGUvTWFrZWZpbGU6CiAgICAgICAgLS0gIG5vIGxvbmdlciByZXF1aXJlcyBHTlUgbWFrZQogICAgICAgIC0tICBldGFncyBubyBsb25nZXIgcnVuIGJ5IGRlZmF1bHQKICAgIAogICAgLSBTdW5PUyBhZGRpdGlvbnM6CiAgICAgICAgLS0gbG9hZGF2ZXJhZ2UgY2hlY2tpbmcgTUlCIGVuYWJsZWQKICAgICAgICAtLSBkaXNrIGNoZWNraW5nIE1JQiBlbmFibGVkCgpoYXJkYWtlciAgOSBKdW4gOTUgMTA6MjE6MDcKICAgIC0gQWRkZWQgYSBTTk1QQkxPQ0sgb3B0aW9uIHRvIHRoZSBjb25maWcuaCBmaWxlLiAgU3VwcG9zZWRpbHkgc2V0dGluZwogICAgICB0aGlzIHRvIHplcm8gKG5vdyB0aGUgZGVmYXVsdCkgd2lsbCBhbGxvdyBzbm1wIHJlcXVlc3RzIHRvIHRpbWUgb3V0LgogICAgICBIYXZlbid0IHRlc3RlZCBpdCB0aHJvdWdobHkuCiAgICAgICAgLS0gQ29udHJpYnV0ZWQgYnkgU2FuamFpIE5hcmFpbiA8bmFyYWluQHRodW1wZXIuYmVsbGNvcmUuY29tPgoKaGFyZGFrZXIgIDkgSnVuIDk1IDEwOjIxOjUxCiAgICAtIENvcnJlY3RseSBvcmRlcmVkIHRoZSBtaWIgdGFibGUgbGlzdC4KICAgICAgLS0gIE5lZWQgdG8gd3JpdGUgYSBkeW5hbWljIGNoZWNrZXIvcmUtb3JkZXJlci4KCmhhcmRha2VyICA5IEp1biA5NSAxMDoyMzozNQogICAgLSBDb3JyZWN0IHVzYWdlIGZvciBzbm1wd2FsayBpcyBub3cgcG9zc2libGUuICBJRSwgc25tcHdhbGsgdGFyZ2V0CiAgICAgIC4xLjMuNi4xIHdpbGwgbm93IGJyb3dzZSB0aGUgZW50aXJlIHRyZWUuCiAgICAgIC0tIFN0aWxsIGZhaWxzIG9uIHJlbG9jYXRhYmxlIGV4dGVuc2libGUgbWlicyBhbmQgd2lsbCB1bnRpbCBJCiAgICAgICAgIHdyaXRlIGEgZHluYW1pYyB0cmVlIGJ1aWxkZXIuCgpoYXJkYWtlciAgOSBKdW4gOTUgMTQ6MDg6MTUKICAgIC0gQ2hhbmdlZCB0ZXN0IC14IHRvIHRlc3QgLWYgaW4gc25tcGxpYi9NYWtlZmlsZS4gIE5vdCBhbGwgT1NlcwogICAgICAoaWUgdWx0cml4KSBoYW5kbGUgdGhpcy4KCmhhcmRha2VyIDEyIEp1biA5NSAxMDozNTozOAogICAgLSBsb2NhbC90cmFwbm90aWY6CiAgICAgIC0tIHVzZXMgc25tcHYyIG5vdyAoY29ycmVjdGx5KQoKaGFyZGFrZXIgMTIgSnVuIDk1IDEwOjM3OjQ2CiAgICAtIFJlcG9ydHMgYWxsIGVycm9ycyB0aHJvdWdoIHRoZSBlcnJvciBtaWIgbm93IGluc3RlYWQgb2YgdGhyb3VnaCBwZXJyb3IoKS4KICAgIC0gQ2xlYW5lZCB1cCBlcnJvciBoYW5kbGluZy4gIFNob3VsZG4ndCBoYW5kbGUgZXJyb3JzIG5pY2VseSBpZiBzeXN0ZW0KICAgICAgZXJyb3JzIG9jY3VyIHdoZW4gc2Nhbm5pbmcgYW4gZXh0ZW5zaWJsZSBtaWIuCgpoYXJkYWtlciAxNCBKdW4gOTUgMTE6MjQ6MjAKICAgIGFnZW50OgogICAgLSBNaWIgdGFibGUgaXMgbm93IHFzb3J0ZWQgYXQgcnVuIHRpbWUgYW5kIHRoZSBleHRlbnNpYmxlIHZhcmlhYmxlcyBhcmUKICAgICAgc29ydGVkIGluIGF0IHRoaXMgdGltZS4gIFRoaXMgYnJpbmdzIHRoZSBhZ2VudCB1cCB0byBjb3JyZWN0CiAgICAgIFNOTVB3YWxrL2dldG5leHQgcHJvdG9jb2xzLiAgWW91IGNhbiBub3cgd2FsayB0aGUgZW50aXJlIHRyZWUKICAgICAgaW5jbHVkaW5nIHRoZSBleHRlbnNpYmxlIHNlY3Rpb25zIGFuZCBpdCB3b24ndCBzdG9wLgogICAgICAqIFRoaXMgaGFzIGFuIGFkZGVkIGJvbnVzIG9mIGNoZWNraW5nIHRoZSBtaWIgdGFibGUKICAgICAgICAoYWdlbnQvc25tcF92YXJzLmMpIGZvciBjb3JyZWN0IG9yZGVyLiAgSSBoYXZlIGFkZGVkIHRoaW5ncyB0byB0aGUKICAgICAgICB3cm9uZyBsb2NhdGlvbiB0b28gbWFueSB0aW1lcyBhbmQgY2F1c2VkIHRoZSBhZ2VudCB0byBmdW5jdGlvbgogICAgICAgIGluY29ycmVjdGx5LiAgTWFqb3Igd2luLgoKaGFyZGFrZXIgMTQgSnVuIDk1IDEyOjU2OjQ5CiAgICAtIENsZWFuZWQgdXAvQWRkZWQgbW9yZSBkb2N1bWVudGF0aW9uIHRvIGNvbmZpZy5oCiAgICAtIEdMT0JBTFNFQ1VSSVRZIG5vdyB1c2VzIHRoZSBsZWZ0IG1vc3QgZm91ciBiaXRzIGluIHRoZSBNSUIgYWNsLgogICAgICBUaGlzIGlzIG1vcmUgY29tcGF0aWJsZSB3aXRoIHRoZSBDTVUgY29kZSB0aGFuIHVzaW5nIHRoZSBsZWZ0IG1vc3QKICAgICAgMiwgd2hpY2ggd2FzIGRvbmUgcHJldmlvdXNseS4KCgpoYXJkYWtlciAxNCBKdW4gOTUgMTM6NDM6MzgKICAgIC0gQWRkZWQgbW9yZSBkb2N1bWVudGF0aW9uIHRvIHRoZSBSRUFETUUgZmlsZS4KICAgIC0gQ3JlYXRlZCBhIG1haWxpbmcgbGlzdCB0byBoYW5kbGUgYW5ub3VuY2VtZW50cwogICAgICAodWNkLXNubXAtYW5ub3VuY2VAdWNkLXNubXAudWNkYXZpcy5lZHUpCgoKIyBnZW5lcmF0ZWQgdXNpbmc6CiMgIGN2czJjbCAtYiAtciAtZiBDaGFuZ2VMb2cuYWRkIC1GIFY0LTItcGF0Y2hlcyAtLW5vLXdyYXAgLVMKIyAgcGVybCBkaXN0L2NoYW5nZWxvZ2ZpeCA8IENoYW5nZUxvZy5hZGQgPiBDaGFuZ2VMb2cucmVhbGx5YWRkCg==