MjAwNy0wNy0yNSAgTWlrZSBGcnlzaW5nZXIgIDx2YXBpZXJAZ2VudG9vLm9yZz4KCgkqIHRlc3RzdWl0ZS9jb25maWctZ3Vlc3Muc2ggKHJ1bl9jb25maWdfZ3Vlc3MpOiBEbyBub3QgcHJlZml4IHdpdGgKCSJmdW5jdGlvbiIgYXMgdGhpcyBpcyBub3QgcGVybWl0dGVkIGJ5IFBPU0lYLgoJKiB0ZXN0c3VpdGUvY29uZmlnLXN1Yi5zaCAocnVuX2NvbmZpZ19zdWIpOiBMaWtld2lzZS4KCjIwMDctMDctMjQgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCSogY29uZmlnLmd1ZXNzOiBSZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZS4KCjIwMDctMDctMjIgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCVJlcG9ydGVkIGJ5IEx1a2UgTWV3YnVybiA8bHVrZUBtZXdidXJuLm5ldD46CgkqIGNvbmZpZy5ndWVzczogRml4IHR5cG8gaXg4NnhlbiAtPiBpODZ4ZW4uCgoyMDA3LTA2LTI4ICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCglGcm9tIE0gUiBTd2FtaSBSZWRkeSA8TVIuU3dhbWkuUmVkZHlAbnNjLmNvbT46CgkqIGNvbmZpZy5zdWI6IFJlbmFtZSBjcjE2YyB0byBjcjE2LgoKMjAwNy0wNS0xNyAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJRnJvbSBMdWtlIE1ld2J1cm4gPGx1a2VAbWV3YnVybi5uZXQ+OgoJKiBjb25maWcuZ3Vlc3MgKGk4NnhlbjpTdW5PUzo1Lio6Kik6IE5ldy4KCSogdGVzdHN1aXRlL2NvbmZpZy1ndWVzcy5kYXRhOiBBZGQgdGVzdCBjYXNlLgoKMjAwNy0wNC0yOSAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJRnJvbSBQZWRybyBBbHZlcyA8cGVkcm9fYWx2ZXNAcG9ydHVnYWxtYWlsLnB0PjoKCSogY29uZmlnLnN1YiAobWluZ3czMmNlKTogTmV3LgoJKiB0ZXN0c3VpdGUvY29uZmlnLXN1Yi5kYXRhOiBBZGQgdGVzdCBjYXNlcy4KCjIwMDctMDMtMDYgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCSogY29uZmlnLmd1ZXNzICgqOkludGVyaXgqOlszNDU2XSopOiBDb25zb2xpZGF0ZSBhbGwgbWFjaGluZQoJcG9zc2liaWxpdGllcyBpbnRvIGEgc2luZ2xlIGVudHJ5IHdpdGggYSBjYXNlIHN0YXRlbWVudCB0aGF0CglleGFtaW5lcyAke1VOQU1FX01BQ0hJTkV9LiBTdWdnZXN0ZWQgYnkgPGplcmtlci5iYWNrQHRlbGlhLmNvbT4uCgoyMDA3LTAxLTE4ICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIHRlc3RzdWl0ZS9jb25maWctc3ViLmRhdGE6IEFkZCBNZVAgdGVzdCBjYXNlcy4KCglGcm9tIERhdmUgQnJvbGxleSAgPGJyb2xsZXlAcmVkaGF0LmNvbT4KCTIwMDEtMDMtMTkgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLnN1YiAobWVwLCBtZXAtKik6IEFkZC4KCjIwMDctMDEtMTUgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCSogY29uZmlnLmd1ZXNzIChTWC04UjpTVVBFUi1VWDoqOiopOiBOZXcuCgkqIHRlc3RzdWl0ZS9jb25maWctZ3Vlc3MuZGF0YTogQWRkIGEgdGVzdCBjYXNlLgoKMjAwNy0wMS0wNCAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJRnJvbSBBbGV4YW5kZXIgQm9ldHRjaGVyIDxhbGV4QGthZmZlLm9yZz4gdmlhIERhbGlib3IgVG9waWM6CgkqIGNvbmZpZy5zdWI6IFJlY29nbmlzZSAtZHJvcHMqLgoJKiB0ZXN0c3VpdGUvY29uZmlnLXN1Yi5kYXRhOiBBZGQgYSB0ZXN0LgoKMjAwNi0xMi0yMiAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJKiBjb25maWcuZ3Vlc3MgKGkqOk1JTkdXOio6Kik6IFJlbmFtZSBmcm9tIHRoaXMgLi4KCSgqOk1JTkdXOio6Kik6IC4uIHRvIHRoaXMuCgkqIHRlc3RzdWl0ZS9jb25maWctZ3Vlc3MuZGF0YTogQWRkIHRlc3QgY2FzZXMuCgoyMDA2LTEyLTA4ICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogY29uZmlnLmd1ZXNzICh4dGVuc2E6TGludXg6KjoqKTogTmV3LgoJKiB0ZXN0c3VpdGUvY29uZmlnLWd1ZXNzLmRhdGE6IEFkZCB0ZXN0IGNhc2UuCgkqIHRlc3RzdWl0ZS9jb25maWctc3ViLmRhdGE6IEFkZCB4dGVuc2EtZWxmIGFuZCB4dGVuc2EtbGludXguCgoyMDA2LTEyLTA4ICBLYXp1IEhpcmF0YSAgPGthenVAY29kZXNvdXJjZXJ5LmNvbT4KCSAgICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIGNvbmZpZy5zdWI6IFJlY29nbml6ZSBmaWRvIGFuZCBmaWRvLSouCgkqIHRlc3RzdWl0ZS9jb25maWctc3ViLmRhdGE6IEFkZCB0ZXN0IGNhc2VzLgoKMjAwNi0xMS0zMCAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJKiBjb25maWcuZ3Vlc3MgKFNYLTc6U1VQRVItVVg6KjoqKTogTmV3LgoJKiB0ZXN0c3VpdGUvY29uZmlnLWd1ZXNzLmRhdGE6IEFkZCB0ZXN0IGNhc2UuCgoyMDA2LTExLTE1ICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCglGcm9tIEpvc3NlbGluIE1vdWV0dGUgPGpvc3NAZGViaWFuLm9yZz46CgkqIGNvbmZpZy5ndWVzcyAoU1gtODpTVVBFUi1VWDoqOiopOiBOZXcuCgkqIHRlc3RzdWl0ZS9jb25maWctZ3Vlc3MuZGF0YTogQWRkIHRlc3QgY2FzZS4KCjIwMDYtMTEtMDggIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCSogY29uZmlnLmd1ZXNzIChhdXRoZW50aWNhbWQ6SW50ZXJpeCo6WzM0NTZdKik6IEFub3RoZXIgQU1ENjQuCgkqIHRlc3RzdWl0ZS9jb25maWctZ3Vlc3MuZGF0YTogQWRkIHRlc3QgY2FzZS4KCjIwMDYtMTEtMDcgIFN0ZXZlIFdvb2Rmb3JkICA8c2N3QE5ldEJTRC5vcmc+CgkgICAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJKiBjb25maWcuZ3Vlc3MgKCo6TmV0QlNEOio6Kik6IEhhbmRsZSBzaDVlbCBhcmNoLgoJKiBjb25maWcuc3ViIChzaDVlbCk6IE5ldyBiYXNpY19tYWNoaW5lLgoJKiB0ZXN0c3VpdGUvY29uZmlnLXN1Yi5kYXRhOiBBZGQgdGVzdCBjYXNlcy4KCjIwMDYtMDktMjAgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCSogY29uZmlnLnN1YiAoc2NvcmUsIHNjb3JlLSopOiBOZXcuCgkqIHRlc3RzdWl0ZS9jb25maWctc3ViLmRhdGE6IEFkZCB0ZXN0IGNhc2VzLgoKMjAwNi0wOC0xNCAgVGhpZW1vIFNldWZlciAgPHRoc0BtaXBzLmNvbT4KCSAgICBOaWdlbCBTdGVwaGVucyAgPG5pZ2VsQG1pcHMuY29tPgoJICAgIERhdmlkIFVuZyAgPGRhdmlkdUBtaXBzLmNvbT4KCgkqIGNvbmZpZy5zdWIgKHNkZSk6IE5ldy4KCSogdGVzdHN1aXRlL2NvbmZpZy1zdWIuZGF0YTogQWRkIHRlc3QgY2FzZXMuCgoyMDA2LTA4LTE0ICBWaWpheSBLLiBNdW5qYWwgPHZpamF5a3VtYXJtMUBLUElUQ3VtbWlucy5jb20+CgoJKiBjb25maWcuc3ViICh4YzE2eCwgeGMxNngtKik6IE5ldy4KCSogdGVzdHN1aXRlL2NvbmZpZy1zdWIuZGF0YTogQWRkIHRlc3QgY2FzZXMuCgoyMDA2LTA3LTAyICBNYXNha2kgTVVSQU5BS0EgIDxtb25ha2FAbW9uYW1pLXNvZnR3YXJlLmNvbT4KCgkqIGNvbmZpZy5zdWIgKHRvcHBlcnMtKik6IE5ldy4KCSogdGVzdHN1aXRlL2NvbmZpZy1zdWIuZGF0YTogQWRkIHRlc3QgY2FzZS4KCjIwMDYtMDctMDIgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCSogY29uZmlnLmd1ZXNzIChtYWNwcGM6TWlyQlNEOio6Kik6IEZpeCB0eXBvLgoJKiB0ZXN0c3VpdGUvY29uZmlnLWd1ZXNzLmRhdGE6IEFkZCB0ZXN0IGNhc2UuCgoyMDA2LTA3LTAyICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIGNvbmZpZy5ndWVzczogSGFuZGxlIEludGVyaXggNi4KCSogdGVzdHN1aXRlL2NvbmZpZy1ndWVzcy5kYXRhOiBBZGQgdGVzdCBjYXNlLgoKMjAwNi0wNi0wNiAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJRnJvbSBIPz92YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT46CgkqIGNvbmZpZy5ndWVzcyAoYXZyMzIqOkxpbnV4Oio6Kik6IE5ldy4KCSogY29uZmlnLnN1YiAoYXZyMzIsIGF2cjMyLSopOiBMaWtld2lzZS4KCSogdGVzdHN1aXRlL2NvbmZpZy1ndWVzcy5kYXRhOiBBZGQgdGVzdCBjYXNlLgoJKiB0ZXN0c3VpdGUvY29uZmlnLXN1Yi5kYXRhOiBMaWtld2lzZS4KCjIwMDYtMDUtMTMgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCSogY29uZmlnLnN1YjogU3BlY2lmeSAtZWxmIGFzIHRoZSBkZWZhdWx0IE9TIGZvciBzcHUuCgkoYzR4LSogfCB0aWM0eC0qKTogVGlkeSBmb3JtYXR0aW5nLgoJKiB0ZXN0c3VpdGUvY29uZmlnLXN1Yi5kYXRhOiBVcGRhdGUgdGVzdHMuCgoyMDA2LTA1LTEzICBCcnVubyBIYWlibGUgIDxicnVub0BjbGlzcC5vcmc+CgoJKiBjb25maWcuZ3Vlc3M6IENoYW5nZSBzdXBwb3J0IGZvciBTdW4gQy9DKysgNS45IG9uIExpbnV4L3g4NiB0bwoJdXNlIGNvbXBpbGVyLXNwZWNpZmljIHByZWRlZmluZXMgb3RoZXIgdGhhbiBfX3N1bi4KCjIwMDYtMDUtMTIgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCSogY29uZmlnLnN1YiAoc3B1KTogTmV3LgoJKiB0ZXN0c3VpdGUvY29uZmlnLXN1Yi5kYXRhOiBBZGQgdGVzdCBjYXNlLgoKMjAwNi0wNS0xMiAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJKiBjb25maWcuc3ViIChtMzJjLCBtMzJjLSopOiBGb2xkIGludG8gdGhlIHN0YW5kYXJkIGNhc2UuCgoyMDA2LTA0LTI2ICBCcnVubyBIYWlibGUgIDxicnVub0BjbGlzcC5vcmc+CgkgICAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJKiBjb25maWcuZ3Vlc3MgKGFtZDY0OkZyZWVCU0Q6KjoqKSBEZXRlY3QgYXMgeDg2XzY0LgoJKiB0ZXN0c3VpdGUvY29uZmlnLWd1ZXNzLmRhdGE6IEFkZCB0ZXN0IGNhc2UuCgoyMDA2LTAzLTEzICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCglSZXZlcnQgdGhlc2UgcGF0Y2hlcyBhdCBFYXJuaWUgQm95ZCdzIHJlcXVlc3Q6CgoJKiB0ZXN0c3VpdGUvY29uZmlnLWd1ZXNzLmRhdGE6IFR3ZWFrIE1TWVNfTlQtNS4xIHRlc3QuCgoJKiBjb25maWcuZ3Vlc3M6IEhhbmRsZSBpKjpNU1lTX05ULSo6KjoqIGZvciBNU1lTL01pbmd3LgoJKiB0ZXN0c3VpdGUvY29uZmlnLWd1ZXNzLmRhdGE6IEFkZCB0ZXN0IGNhc2UuCgoyMDA2LTAzLTA3ICBNaWtlIEZyeXNpbmdlciAgPHZhcGllckBnZW50b28ub3JnPgoKICAgICAgICAqIGNvbmZpZy5zdWIgKHNoZWIsIHNoZWItKik6IEhhbmRsZSB0aGVzZSBpbiBhZGRpdGlvbiB0byBzaGJlLgogICAgICAgICogdGVzdHN1aXRlL2NvbmZpZy1zdWIuZGF0YTogQWRkIHRlc3QgY2FzZS4KCjIwMDYtMDMtMDYgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCSogdW5hbWU6IEV4aXQgd2l0aCBleGl0IGNvZGUgMC4KCjIwMDYtMDItMjcgIERhdmlkIFMuIE1pbGxlciAgPGRhdmVtQHN1bnNldC5kYXZlbWxvZnQubmV0PgoJICAgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCSogY29uZmlnLnN1YiAoc3BhcmN2OXYsIHNwYXJjNjR2KTogUmVjb2duaXNlIFNVTjRWLWJhc2VkIFNQQVJDcy4KCSogdGVzdHN1aXRlL2NvbmZpZy1zdWIuZGF0YTogQWRkIHRlc3QgY2FzZXMuCgoyMDA2LTAyLTI3ICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YjogQWRkIDIwMDYgdG8gY29weXJpZ2h0IHllYXJzLgoKMjAwNi0wMi0yMyAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJKiBjb25maWcuZ3Vlc3MgKEVNNjRUOkludGVyaXg6KjoqKTogTmV3IGNhc2UuCgkqIHRlc3RzdWl0ZS9jb25maWctZ3Vlc3MuZGF0YTogQWRkIHRlc3QgY2FzZS4KCjIwMDYtMDItMjMgIE1pa2UgRnJ5c2luZ2VyICA8dmFwaWVyQGdlbnRvby5vcmc+CgoJKiBjb25maWcuc3ViIChuaW9zLCBuaW9zMik6IE5ldy4KCSogdGVzdHN1aXRlL2NvbmZpZy1zdWIuZGF0YTogQWRkIHRlc3QgY2FzZXMuCgoyMDA2LTAyLTIzICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIGNvbmZpZy5ndWVzcyAoeDg2OkludGVyaXgqOlszNDVdKik6IFJldGFpbiBmdWxsIEludGVyaXggdmVyc2lvbi4KCSogdGVzdHN1aXRlL2NvbmZpZy1ndWVzcy5kYXRhOiBVcGRhdGUgSW50ZXJpeCB0ZXN0KHMpLgoKMjAwNi0wMi0yMyAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJKiB0ZXN0c3VpdGUvY29uZmlnLWd1ZXNzLmRhdGE6IFR3ZWFrIE1TWVNfTlQtNS4xIHRlc3QuCgoyMDA2LTAyLTIzICBEYW4gTmljb2xhZXNjdSAgPGRhbm5AaWNzLnVjaS5lZHU+CgoJKiBjb25maWcuZ3Vlc3MgKGkqODY6TGludXg6KjoqKTogUmVjb2duaXNlIHRoZSBTdW4gU3R1ZGlvIGNvbXBpbGVyCglieSBoYW5kbGluZyAjaWYgZGVmaW5lZChfX3N1bikuCgoyMDA2LTAyLTIzICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIGNvbmZpZy5ndWVzczogSGFuZGxlIGkqOk1TWVNfTlQtKjoqOiogZm9yIE1TWVMvTWluZ3cuCgkqIHRlc3RzdWl0ZS9jb25maWctZ3Vlc3MuZGF0YTogQWRkIHRlc3QgY2FzZS4KCjIwMDYtMDEtMzAgIFJhbGYgV2lsZGVuaHVlcyA8UmFsZi5XaWxkZW5odWVzQGdteC5kZT4KCgkqIGNvbmZpZy5ndWVzczogRG9uJ3QgdXNlIHNlbWljb2xvbnMgdG8gc2VwYXJhdGUgc2VkIGNvbW1hbmRzLCBhcwoJUE9TSVggc2F5cyBpdCdzIG5vdCBwb3J0YWJsZS4KCU5vdGVkIGJ5IFBhdWwgRWdnZXJ0IDxlZ2dlcnRAY3MudWNsYS5lZHU+LgoKMjAwNi0wMS0zMCAgUmFsZiBXaWxkZW5odWVzIDxSYWxmLldpbGRlbmh1ZXNAZ214LmRlPgoKCSogY29uZmlnLmd1ZXNzIChzZXRfY2NfZm9yX2J1aWxkKTogRG8gbm90IHBhc3MgYC1xJyB0byBta3RlbXAuCglSZXBvcnRlZCBieSBCcnVjZSBLb3JiIDxia29yYkBnbnUub3JnPi4KCjIwMDYtMDEtMTkgIFJvYmVydCBNaWxsYW4gIDxyb2JlcnRtaEBnbnUub3JnPgoKCSogdGVzdHN1aXRlL2NvbmZpZy1ndWVzcy5kYXRhOiBBZGQgdGVzdCBjYXNlIGZvciBHTlUva0ZyZWVCU0QuCgkqIHRlc3RzdWl0ZS9jb25maWctc3ViLmRhdGE6IEFkZCB0ZXN0IGNhc2UgZm9yIGFtZDY0LWtmcmVlYnNkNS40LWdudS4KCjIwMDYtMDEtMDIgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCSogY29uZmlnLmd1ZXNzICgqOlNvbGlkQlNEOio6Kik6IE5ldy4KCSogY29uZmlnLnN1YiAoLXNvbGlkYnNkKik6IE5ldy4KCSogdGVzdHN1aXRlL2NvbmZpZy1ndWVzcy5kYXRhOiBBZGQgdGVzdCBjYXNlLgoJKiB0ZXN0c3VpdGUvY29uZmlnLXN1Yi5kYXRhOiBEaXR0by4KCjIwMDUtMTItMjMgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCUZyb20gVGFrYWhhc2hpIFlvc2hpaGlybyA8bnlhbkBqcC5GcmVlQlNELm9yZz46CgkqIGNvbmZpZy5ndWVzcyAocGM5ODpGcmVlQlNEOio6KikgQWRkIHNwZWNpYWwgY2FzZS4KCSogY29uZmlnLnN1YiAocGM5OCwgcGM5OC0qKTogTmV3LgoJKiB0ZXN0c3VpdGUvY29uZmlnLWd1ZXNzLmRhdGE6IEFkZCB0ZXN0IGNhc2UuCgkqIHRlc3RzdWl0ZS9jb25maWctc3ViLmRhdGE6IERpdHRvLgoKMjAwNS0xMi0yMiAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJRnJvbSBKb2huIFdpbGxpYW1zIDxqd2lsbGlhbXNAaXRlZS51cS5lZHUuYXU+OgoJKiBjb25maWcuc3ViIChtYiwgbWljcm9ibGF6ZSk6IE5ldyBiYXNpY19tYWNoaW5lLgoJKiB0ZXN0c3VpdGUvY29uZmlnLXN1Yi5kYXRhOiBOZXcgdGVzdHMuCgoyMDA1LTEyLTEzICBSYWxmIFdpbGRlbmh1ZXMgIDxSYWxmLldpbGRlbmh1ZXNAZ214LmRlPgoKCSogY29uZmlnLmd1ZXNzIChtaXBzOkxpbnV4Oio6KiwgbWlwczY0OkxpbnV4Oio6KiwgaSo4NjpMaW51eDoqOiopOgoJRml4IHF1b3Rpbmcgb2YgZXZhbCBjb21tYW5kIGxpbmUsIGFsbG93IGZvciBwcmVwcm9jZXNzb3IgdG8gaW5zZXJ0Cgl3aGl0ZSBzcGFjZSBiZXR3ZWVuIEMgdG9rZW5zLgoJKGkqODY6TGludXg6KjoqKTogSGFuZGxlIFBvcnRsYW5kIEdyb3VwIHBnY2MgbGlrZSBJbnRlbCBpY2M7IGl0Cglkb2Vzbid0IGRlZmluZSBfX0VMRl9fIGVpdGhlci4KCjIwMDUtMTItMTEgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCUZyb20gU2hhdW4gSmFja21hbiA8c2phY2ttYW5AZ21haWwuY29tPjoKCSogY29uZmlnLnN1YjogQWRkIHRoZSBLRVJORUwtT1MgY29tYmluYXRpb24gbGludXgtbmV3bGliKi4KCSogdGVzdHN1aXRlL2NvbmZpZy1zdWIuZGF0YTogQWRkIGEgdGVzdCBmb3IgaTM4Ni1saW51eC1uZXdsaWIuCgoyMDA1LTEyLTExICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCglSZXBvcnRlZCBieSBMZWlmIEVrYmxhZCA8bGVpZkByZG9zLm5ldD46CgkqIGNvbmZpZy5ndWVzcyAoaSo4NjpyZG9zOio6Kik6IE5ldy4KCSogY29uZmlnLnN1YjogSGFuZGxlIHJkb3MuCgkqIHRlc3RzdWl0ZS9jb25maWctZ3Vlc3MuZGF0YTogQWRkIHRlc3QgY2FzZSBmb3IgUkRPUy4KCSogdGVzdHN1aXRlL2NvbmZpZy1zdWIuZGF0YTogTGlrZXdpc2UuCgoyMDA1LTEyLTA5ICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCglSZXBvcnRlZCBieSBKYW4tQmVuZWRpY3QgR2xhdyA8amJnbGF3QGx1Zy1vd2wuZGU+OgoJKiBjb25maWcuZ3Vlc3MgKHZheDpMaW51eDoqOik6IERldGVjdCBhcyB2YXgtZGVjLWxpbnV4LWdudS4KCSogdGVzdHN1aXRlL2NvbmZpZy1ndWVzcy5kYXRhOiBBZGQgdGVzdC4KCjIwMDUtMTItMDkgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcuc3ViIChtdCk6IFJlbmFtZSBmcm9tIG1zMS4KCShtczEpOiBBbGlhcyBpdCB0byBtdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KCSogdGVzdHN1aXRlL2NvbmZpZy1zdWIuZGF0YTogVXBkYXRlIHRlc3RzdWl0ZS4KCjIwMDUtMTEtMTMgIEtlYW4gSm9obnN0b24gIDxqa2pAc2NvLmNvbT4KCgkqIGNvbmZpZy5zdWI6IEFsbG93IC1zY282IGFuZCAtc2NvNXY2IHRvIGJlIGFsaWFzZXMgZm9yIFNDTwoJT3BlblNlcnZlciA2LgoJKiB0ZXN0c3VpdGUvY29uZmlnLXN1Yi5kYXRhOiBOZXcgdGVzdHMuCgoyMDA1LTExLTExICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIHRlc3RzdWl0ZS9jb25maWctZ3Vlc3MuZGF0YTogQWRkIHRlc3QgY2FzZSBmb3IgTGludXggUFBDNjQuCgoyMDA1LTExLTExICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIGNvbmZpZy5ndWVzcyAoeDg2OkludGVyaXgqOlszNDVdKik6IEhhbmRsZSBJbnRlcml4IHZlcnNpb24gNS4KCSogdGVzdHN1aXRlL2NvbmZpZy1ndWVzcy5kYXRhOiBBZGQgdGVzdCBjYXNlLgoKMjAwNS0wOS0xOSAgR2VyYmVuIFdpZXJkYSA8R2VyYmVuLldpZXJkYUBybmEubmw+CgoJKiBjb25maWcuZ3Vlc3MgKCo6RGFyd2luOio6Kik6IERvbid0IHRyZWF0ICo4NiBzcGVjaWZpY2FsbHkuCgoyMDA1LTA4LTAzICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCglSZXBvcnRlZCBieSBLdWxraW4gQWxleGV5IDxrdWxraW5AeWFuZGV4LnJ1PjoKCSogY29uZmlnLmd1ZXNzICh4ODZfNjQ6Q1lHV0lOKjoqOiopOiBOZXcgY2FzZS4KCSogdGVzdHN1aXRlL2NvbmZpZy1ndWVzcy5kYXRhOiBBZGQgdGVzdCBjYXNlLgoKMjAwNS0wNy0xNCAgUm9iZXJ0IE1pbGxhbiAgPHJvYmVydG1oQGdudS5vcmc+CgoJKiBjb25maWcuZ3Vlc3MgKG9yMzI6TGludXg6KjoqKTogRGV0ZWN0LgoJKiB0ZXN0c3VpdGUvY29uZmlnLWd1ZXNzLmRhdGE6IEFkZCB0ZXN0IGNhc2UuCgoyMDA1LTA3LTA4ICBNaWNoYWVsIEhhdWJlbndhbGxuZXIgIDxtaWNoYWVsLmhhdWJlbndhbGxuZXJAc2Fsb21vbi5hdD4KCgkqIGNvbmZpZy5ndWVzczogTGV0IHNldF9jY19mb3JfYnVpbGQgZXZhbHVhdGUgb25seSBvbmNlIHRvIGF2b2lkCgljcmVhdGlvbiBvZiBtb3JlIHRoYW4gb25lIHRtcGRpciB3aXRob3V0IHJlbW92aW5nIHRoZSBvbGQgb25lLgoKMjAwNS0wNy0wOCAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJKiBjb25maWcuc3ViOiBBZGQgc3VwcG9ydCBmb3IgSGFpa3UuCgkqIHRlc3RzdWl0ZS9jb25maWctc3ViLmRhdGE6IEFkZCB0ZXN0IGNhc2VzIGZvciBpMzg2LCBTUEFSQyBhbmQKCVBvd2VyUEMgSGFpa3UuCgoyMDA1LTA3LTA4ICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIE1ha2VmaWxlIChTSEVMTCk6IFJlbW92ZSBvdmVycmlkZS4KCjIwMDUtMDctMDQgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoJICAgIFBhdWwgTXVuZHQgIDxsZXRoYWxAbGludXgtc2gub3JnPgoKCSogY29uZmlnLnN1YjogSGFuZGxlIHNoMmEvc2g0YS4KCSogdGVzdHN1aXRlL2NvbmZpZy1zdWIuZGF0YTogQWRkIHRlc3QgY2FzZXMuCgoyMDA1LTA3LTAxICBSb2JlcnQgTWlsbGFuICA8cm9iZXJ0bWhAZ251Lm9yZz4KCgkqIGNvbmZpZy5zdWI6IERlcHJlY2F0ZSAib3BlbnJpc2MiIGluIGZhdm91ciBvZiAib3IzMiIuCglEbyBub3QgZGVmYXVsdCB0aGUgT1MgZmllbGQgdG8gImNvZmYiLgoJKiB0ZXN0c3VpdGUvY29uZmlnLXN1Yi5kYXRhOiBBZGQgYSB0ZXN0IGNhc2UuCgoyMDA1LTA2LTMwICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIGNvbmZpZy5zdWIgKHNoNjQpOiBSZW1vdmUgZHVwbGljYXRlIGVudHJ5LgoJKiB0ZXN0c3VpdGUvY29uZmlnLXN1Yi5kYXRhOiBBZGQgdGVzdCBjYXNlIGZvciBzaDY0LgoKMjAwNS0wNi0zMCAgTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKCSogY29uZmlnLnN1YiAobWlwczY0dnI1OTAwLCBtaXBzNjR2cjU5MDBlbCk6IE5ldyBtYWNoaW5lcy4KCSogdGVzdHN1aXRlL2NvbmZpZy1zdWIuZGF0YTogQWRkIHRlc3QgY2FzZXMuCgoyMDA1LTA2LTMwICBCcmFkIFNtaXRoICA8YnJhZEBjb21zdHlsZS5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IFNpbXBsaWZ5IE9wZW5CU0Qgc3VwcG9ydC4KCjIwMDUtMDYtMDIgIEFsZHkgSGVybmFuZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5zdWIgKG1zMSwgbXMxLSopOiBOZXcuCgkqIHRlc3RzdWl0ZS9jb25maWctc3ViLmRhdGE6IEFkZCB0ZXN0IGNhc2VzLgoKMjAwNS0wNi0wMiAgSmltIEJsYW5keSAgPGppbWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5zdWIgKG0zMmMsIG0zMmMtKik6IE5ldy4KCSogdGVzdHN1aXRlL2NvbmZpZy1zdWIuZGF0YTogQWRkIHRlc3QgY2FzZXMuCgoyMDA1LTA1LTI3ICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIGNvbmZpZy5ndWVzcyAoaSo6d2luZG93czMyKjoqKTogdW5hbWUgLW0gaW5jbHVkZXMgIi1wYyIsIHNvIG5vCgluZWVkIHRvIGVtaXQgaXQgYWRkaXRpb25hbGx5LgoJKiB0ZXN0c3VpdGUvY29uZmlnLWd1ZXNzLmRhdGE6IFVwZGF0ZSB0ZXN0IGNhc2UuCgoyMDA1LTA1LTE1ICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCglSZXBvcnRlZCBieSBTYW0gU3RlaW5nb2xkIDxzZHNAZ251Lm9yZz46CgkqIGNvbmZpZy5ndWVzcyAoaSo6d2luZG93czMyKjoqKTogTmV3LgoJKiB0ZXN0c3VpdGUvY29uZmlnLWd1ZXNzLmRhdGE6IEFkZCBhIGNvcnJlc3BvbmRpbmcgdGVzdCBjYXNlLgoKMjAwNS0wNS0xNSAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAY3MudWNsYS5lZHU+CgoJKiBjb25maWcuZ3Vlc3M6IEZpeCByZW1haW5pbmcgcHJvYmxlbWF0aWMgdXNlcyBvZiAiZXhpdCAwIiAoYW5kCglvbmUgcHJvYmxlbWF0aWMgdXNlIG9mICImJiBleGl0IikuCgoyMDA1LTA1LTEyICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIGNvbmZpZy5ndWVzczogVXBkYXRlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBhZGRyZXNzLgoJKiBjb25maWcuc3ViOiBMaWtld2lzZS4KCjIwMDUtMDUtMTIgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCSogdW5hbWU6IFNpbWlsYXIgdG8gdGhlIGxhc3QgY2hhbmdlLCByZW1vdmUgYWxsIGV4aXQgY29tbWFuZHMgYW5kCglsZXQgdGhlIHNjcmlwdCBleGl0IHdpdGggdGhlIGV4aXQgY29kZSBvZiB0aGUgbGFzdCBjb21tYW5kLgoKMjAwNS0wNS0xMiAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAQ1MuVUNMQS5FRFU+CgoJRXhwbGFuYXRpb24gZm9yIHRoaXMgc3VidGxlIGNoYW5nZToKCglGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QENTLlVDTEEuRURVPgoJVG86IGNvbmZpZy1wYXRjaGVzQGdudS5vcmcKCVN1YmplY3Q6IGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiBtaXNkaWFnbm9zZSB3cml0ZSBlcnJvcnMKCQoJY29uZmlnLmd1ZXNzIGFuZCBjb25maWcuc3ViIHNvbWV0aW1lcyBtaXNoYW5kbGUgd3JpdGUgZXJyb3JzIHRvCglzdGRvdXQ6IHRoZXkgZWl0aGVyIGlnbm9yZSB0aGUgZXJyb3JzLCBvciBvdXRwdXQgaW52YWxpZAoJZGlhZ25vc3RpY3Mgd2hlbiB0aGV5IG9jY3VyLiAgRm9yIGEgc2ltcGxlIChhbGJlaXQgdW5yZWFsaXN0aWMpCglleGFtcGxlLCBvbiBteSBTb2xhcmlzIDggKHNwYXJjKSBob3N0LCB0aGUgY29tbWFuZCAiY29uZmlnLmd1ZXNzCgk+Ji0iIGV4aXRzIHdpdGggc3RhdHVzIDA7IGl0IHNob3VsZCBleGl0IHdpdGggc3RhdHVzIDEsIGR1ZSB0byB0aGUKCXdyaXRlIGZhaWx1cmUuCgkKCSogY29uZmlnLmd1ZXNzOiBEb24ndCBleGl0IHdpdGggYW4gZXhwbGljaXQgZXhpdCBjb2RlIG9mIDAuCgkqIGNvbmZpZy5zdWI6IExpa2V3aXNlLgoKMjAwNS0wNS0xMiAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJKiBjb25maWcuZ3Vlc3MgKGkqODY6c2t5b3M6KjoqKTogTmV3LgoJKiBjb25maWcuc3ViIChjYXNlICRvcyk6IEhhbmRsZSAiLXNreW9zKiIgYXMgYSB2YWxpZCBPUy4KCSogdGVzdHN1aXRlL2NvbmZpZy1ndWVzcy5kYXRhOiBBZGQgYSB0ZXN0IGNhc2UuCgkqIHRlc3RzdWl0ZS9jb25maWctc3ViLmRhdGE6IExpa2V3aXNlLgoKMjAwNS0wNS0xMiAgVGltIFJpY2UgIDx0aW1AbXVsdGl0YWxlbnRzLm5ldD4KCgkqIGNvbmZpZy5ndWVzczogQWRkIHN1cHBvcnQgZm9yIFNDTyBPcGVuU2VydmVyIDYuCgoyMDA1LTA1LTEyICBOb2FoIE1pc2NoICA8bm9haEBjcy5jYWx0ZWNoLmVkdT4KCgkqIGNvbmZpZy5ndWVzcyAoOTAwMC9bMzQ2NzhdPz86SFAtVVg6KjoqKTogRGlzY2FyZCBzdGRlcnIgb2YgYGNjCgktRSAtJzsgSFAgYGNjJyBlbWl0cyBhbiBlcnJvciBmb3IgaXQgYnV0IHN0aWxsIHByZXByb2Nlc3NlcwoJc3RhbmRhcmQgaW5wdXQgYXMgZXhwZWN0ZWQuICBBZGQgY29tbWVudC4KCjIwMDUtMDUtMTIgIE5pY2sgQnVycmV0dCAgPG5pY2tAc3FydC5jby51az4KCSAgICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIGNvbmZpZy5ndWVzcyAoYXJtOnJpc2NvczoqOiopOiBOZXcgY29uZmlndXJhdGlvbi4KCSogdGVzdHN1aXRlL2NvbmZpZy1zdWIuZGF0YTogTmV3IHRlc3RzLgoJKiB0ZXN0c3VpdGUvY29uZmlnLWd1ZXNzLmRhdGE6IExpa2V3aXNlLgoKMjAwNS0wNS0xMiAgTmljayBCdXJyZXR0ICA8bmlja0BzcXJ0LmNvLnVrPgoKCSogY29uZmlnLmd1ZXNzOiBBZGQgYSBtaXNzaW5nIG5ld2xpbmUgdG8gYXJtLWFjb3JuLXJpc2NpeCBzdHJpbmcuCgoyMDA1LTA0LTIyICBQYXVsIEdyZWVuICA8UGF1bC5HcmVlbkBzdHJhdHVzLmNvbT4KCSAgICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIGNvbmZpZy5ndWVzczogQWRkIFN0cmF0dXMgVk9TIElBMzIgc3lzdGVtcy4KCSogdGVzdHN1aXRlL2NvbmZpZy1ndWVzcy5kYXRhOiBBZGQgYSB0ZXN0Y2FzZS4KCjIwMDUtMDQtMjIgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoJICAgIEJlcm5kIFNjaG1pZHQgIDxiZXJuZHNfY2IxQHQtb25saW5lLmRlPgoKCSogY29uZmlnLnN1YiAoYmZpbik6IE5ldyB0YXJnZXQuCgkqIHRlc3RzdWl0ZS9jb25maWctc3ViLmRhdGE6IFRlc3QgYmZpbi1lbGYuCgoyMDA1LTA0LTIyICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCSAgICBEYXZlIE1pbGxlciAgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+CgoJKiBjb25maWcuc3ViIChzcGFyYzY0Yik6IEhhbmRsZS4KCSogdGVzdHN1aXRlL2NvbmZpZy1zdWIuZGF0YTogVGVzdCBzcGFyYzY0LWxpbnV4LCBzcGFyYzY0Yi1saW51eC4KCjIwMDUtMDMtMjQgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgoKCSogY29uZmlnLmd1ZXNzOiBVcGRhdGUgVVJMIGZvciBzY3JpcHQgbG9jYXRpb24uCglQcm9ibGVtIHJlcG9ydGVkIGJ5IEJydW5vIEhhaWJsZS4KCjIwMDUtMDItMTAgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoJICAgIEogU2hlcGhlcmQgIDxqYXNoZXBoZXJkQHVzYS5uZXQ+CgoJKiBjb25maWcuZ3Vlc3MgKE5TRS0/Ok5PTlNUT1BfS0VSTkVMOio6Kik6IE5ldy4KCSogdGVzdHN1aXRlL2NvbmZpZy1ndWVzcy5kYXRhOiBUZXN0IGZvciBuc2UtdGFuZGVtLW5zay4KCjIwMDUtMDItMTAgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCSogdGVzdHN1aXRlL2NvbmZpZy1ndWVzcy5kYXRhOiBBZGQgY3JheW52LWNyYXktdW5pY29zbXAyLjUuWCBjYXNlLgoKMjAwNS0wMi0xMCAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJKiB0ZXN0c3VpdGUvY29uZmlnLXN1Yi5zaCAocnVuX2NvbmZpZ19zdWIpOiBOZXcgZnVuY3Rpb24uIENvbXB1dGUKCSRyYyB3aXRoaW4gdGhlIGZ1bmN0aW9uIGFuZCByZXR1cm4gaXQuCgkqIHRlc3RzdWl0ZS9jb25maWctZ3Vlc3Muc2ggKHJ1bl9jb25maWdfZ3Vlc3MpOiBMaWtld2lzZS4KCjIwMDUtMDItMTAgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCSogY29uZmlnLmd1ZXNzIChhbWQ2NDpDWUdXSU4qOio6Kik6IE5ldy4KCSogdGVzdHN1aXRlL2NvbmZpZy1zdWIuZGF0YTogQWRkIGFtZDY0LWN5Z3dpbiwgeDg2XzY0LWN5Z3dpbi4KCSogdGVzdHN1aXRlL2NvbmZpZy1ndWVzcy5kYXRhOiBBZGQgeDg2XzY0LXVua25vd24tY3lnd2luIHRlc3QuCgoyMDA1LTAyLTEwICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIGNvbmZpZy5ndWVzczogVXBkYXRlIGNvcHlyaWdodCB5ZWFycy4KCSogY29uZmlnLnN1YjogTGlrZXdpc2UuCgoyMDA1LTAxLTExICBJbmRlcnByZWV0IFNpbmdoICA8aW5kZXJwcmVldGJAbm9pZGEuaGNsdGVjaC5jb20+CgkgICAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJKiBjb25maWcuc3ViOiBIYW5kbGUgbWF4cSB0YXJnZXQuCgkqIHRlc3RzdWl0ZS9jb25maWctc3ViLmRhdGE6IEFkZCBtYXhxIGFuZCBtYXhxLWVsZiB0ZXN0cy4KCjIwMDQtMTEtMzAgIE1lbGlzc2EgTWVhcnMgIDxhc3Rlcmlza0BncmFjZXMuZHJpY2FzLmNvbT4KCgkqIGNvbmZpZy5zdWI6IEhhbmRsZSB4Ym94IGFsaWFzLgoJKiB0ZXN0c3VpdGUvY29uZmlnLXN1Yi5kYXRhOiBBZGQgeGJveCBjYXNlLgoKMjAwNC0xMS0xNyAgSWFuIExhbmNlIFRheWxvciAgPGlhbkB3YXNhYmlzeXN0ZW1zLmNvbT4KCSAgICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIGNvbmZpZy5zdWI6IFJlY29nbml6ZSB4c2NhbGVlW2JsXS4KCSogdGVzdHN1aXRlL2NvbmZpZy1zdWIuZGF0YTogQWRkIHhzY2FsZSwgeHNjYWxlZVtibF0gY2FzZXMuCgoyMDA0LTExLTEyICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIGNvbmZpZy5ndWVzcyAoKjp6L1ZNOio6Kik6IEFkZCBuZXcgY2FzZS4KCSogY29uZmlnLnN1YiAob3MpOiBBZGQgY2FzZSBmb3IgLXp2bW9lLgoJKiB0ZXN0c3VpdGUvY29uZmlnLWd1ZXNzLmRhdGE6IEFkZCBhIHRlc3QgY2FzZS4KCSogdGVzdHN1aXRlL2NvbmZpZy1zdWIuZGF0YTogTGlrZXdpc2UuCgoyMDA0LTExLTEyICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIHRlc3RzdWl0ZS9jb25maWctZ3Vlc3Muc2g6IFVzZSAsIGFuZCBub3QgLyBhcyB0aGUgc2VkIGRlbGltaXRlci4KCjIwMDQtMTEtMTIgIEFuZHJpcyBQYXZlbmlzIDxwYXZlbmlzQGxhdG5ldC5sdj4KCgkqIGNvbmZpZy5zdWIgKGRqZ3BwKTogQWxpYXMgdG8gaTU4Ni1wYy1tc2Rvc2RqZ3BwLgoJKiB0ZXN0c3VpdGUvY29uZmlnLXN1Yi5kYXRhOiBBZGQgYSB0ZXN0IGNhc2UuCgkKMjAwNC0xMC0yNSAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJKiB0ZXN0c3VpdGUvY29uZmlnLWd1ZXNzLnNoOiBSZWR1Y2UgcmVjdXJyaW5nIHRhYnMgaW50byBhIHNpbmdsZQoJdGFiLCB0byBhbGxvdyB0aGUgdGVzdCBkYXRhIHRvIGJlIGJldHRlciBhbGlnbmVkIGluIGNvbHVtbnMuCgoyMDA0LTEwLTI1ICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCglSZXBvcnRlZCBieSBNb250eSBTb2xvbW9uIDxtb250eUByb3Njb20uY29tPjoKCSogY29uZmlnLmd1ZXNzICgqOlhFTklYOio6U3lzVik6IE5ldy4KCSogdGVzdHN1aXRlL2NvbmZpZy1ndWVzcy5kYXRhOiBBZGQgYSB0ZXN0IGNhc2UuCgoyMDA0LTEwLTI1ICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCglSZXBvcnRlZCBieSBNYXJ0aW4gSGFtbWVyIDxtYXJ0aW4uaGFtbWVyQHNpZW1lbnMuY29tPjoKCSogY29uZmlnLmd1ZXNzIChEUlM/NjAwMDppc2lzOjQuMio6NyopOiBOZXcgcGF0dGVybi4KCjIwMDQtMDktMDcgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCSogY29uZmlnLmd1ZXNzIChmcnY6TGludXg6KjoqKTogTmV3LgoJKiB0ZXN0c3VpdGUvY29uZmlnLXN1Yi5kYXRhOiBBZGQgY3Jpcy1saW51eCwgZnJ2LWxpbnV4LgoJKiB0ZXN0c3VpdGUvY29uZmlnLWd1ZXNzLmRhdGE6IEFkZCBmcnYtbGludXgtdW5rbm93bi1nbnUgY2FzZS4KCjIwMDQtMDgtMjcgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogY29uZmlnLnN1YjogSGFuZGxlIGNyaXN2MzIsIGFsaWFzIGV0cmF4ZnMuCgkqIGNvbmZpZy5ndWVzcyAoY3Jpc3YzMjpMaW51eDoqOiopOiBIYW5kbGUuCgkqIHRlc3RzdWl0ZS9jb25maWctc3ViLmRhdGE6IEFkZCB0ZXN0IGNhc2UuCgkqIHRlc3RzdWl0ZS9jb25maWctZ3Vlc3MuZGF0YTogTGlrZXdpc2UuCgoyMDA0LTA4LTIyICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIE1ha2VmaWxlIChjaGVjayk6IFJ1biBjb25maWctZ3Vlc3Muc2ggdGVzdHMgYXMgd2VsbC4KCSogdGVzdHN1aXRlL2NvbmZpZy1ndWVzcy5zaDogTmV3IHRlc3QuCgkqIHRlc3RzdWl0ZS9jb25maWctZ3Vlc3MuZGF0YTogTmV3IGZpbGUuCgkqIHRlc3RzdWl0ZS91bmFtZS5pbjogTGlrZXdpc2UuCgkqIHRlc3RzdWl0ZS9jb25maWctc3ViLmRhdGEgKGFtZDY0LXVua25vd24tZnJlZWJzZDUuMik6IE5ldyBjYXNlLgoKMjAwNC0wOC0xMyAgQnJhZCBTbWl0aCAgPGJyYWRAY29tc3R5bGUuY29tPgoKCSogY29uZmlnLmd1ZXNzICgqOk9wZW5CU0Q6KjoqKTogUmVtb3ZlIGRlZnVuY3QgTUlQUyBtYWNoaW5lcy4KCShzZ2k6T3BlbkJTRDoqOiopOiBFbWl0IG1pcHM2NCwgbm90IG1pcHNlYi4KCjIwMDQtMDgtMTEgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgoKCSogY29uZmlnLmd1ZXNzICgqOkRhcndpbjoqOiopOiBJZiB1bmFtZSAtcCByZXBvcnRzICJ1bmtub3duIiwKCWFzc3VtZSB0aGUgcHJvY2Vzc29yIGlzIGEgcG93ZXJwYy4gIFRoaXMgaXMgYmVjYXVzZSBjb3JldXRpbHMKCXVuYW1lIChhdCBsZWFzdCB2ZXJzaW9ucyA0LjUuNyB0aHJvdWdoIDUuMi4xKSBvdXRwdXRzICJ1bmtub3duIgoJaW4gdGhpcyBjYXNlLCBkdWUgdG8gYSBNYWNPUyBYIGJ1ZyB0aGF0IGNhdXNlcwoJc3lzY3RsICgoaW50W10pIHtDVExfSFcsIEhXX01BQ0hJTkVfQVJDSH0sIDIsIGJ1ZmZlciwgJmJ1ZnNpemUsIDAsIDApCgl0byByZXR1cm4gYSBuZWdhdGl2ZSBudW1iZXIuCglQcm9ibGVtIHJlcG9ydGVkIGJ5IFBldHRlciBSZWluaG9sZHRzZW4gaW46CglodHRwOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvYnVnLWdudS11dGlscy8yMDAzLTAyL21zZzAwMjAxLmh0bWwKCjIwMDQtMDctMTkgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCSogY29uZmlnLmd1ZXNzIChTNzUwMToqOjQuMDozLjApOiBIYW5kbGUgTkNSIFN5c3RlbSBWIFVOSVggbWFjaGluZS4KCjIwMDQtMDctMDIgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCSogdGVzdHN1aXRlL2NvbmZpZy1zdWIuZGF0YTogQWRkIGkzODYtZWxmIHRvIGk3ODYtZWxmLgoKMjAwNC0wNi0zMCAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJKiB0ZXN0c3VpdGUvY29uZmlnLXN1Yi5kYXRhOiBBZGQgbW9yZSBuZXcgdGVzdHMuCgoyMDA0LTA2LTI1ICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIE1ha2VmaWxlIChjaGVjayk6IE5ldyB0YXJnZXQuCgkqIHRlc3RzdWl0ZS9jb25maWctc3ViLnNoOiBOZXcgdGVzdC4KCSogdGVzdHN1aXRlL2NvbmZpZy1zdWIuZGF0YTogTmV3IGZpbGUuCgoyMDA0LTA2LTI0ICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIGNvbmZpZy5ndWVzczogVXBkYXRlIGNvcHlyaWdodCB5ZWFycy4KCSogY29uZmlnLnN1YjogTGlrZXdpc2UuCgoyMDA0LTA2LTIyICBSb2JlcnQgTWlsbGFuICA8cm9iZXJ0bWhAZ251Lm9yZz4KCgkqIGNvbmZpZy5ndWVzcyAoKjpGcmVlQlNEOio6Kik6IFJlbW92ZSBjaGVjayBmb3IgZ2xpYmMgKHVubmVlZGVkCglzaW5jZSBHTlUva0ZyZWVCU0Qgc3lzdGVtcyBtYXRjaCAqOkdOVS8qOio6KiBpbnN0ZWFkKS4KCjIwMDQtMDYtMjIgIFN0YW5sZXkgRi4gUXVheWxlIDxzdGFuQHN0YW5xLmNvbT4KCgkqIGNvbmZpZy5ndWVzcyAoKjoqVk1TOio6Kik6IE5ldyBlbnRyeS4gUmVwbGFjZXMKCUFscGhhOk9wZW5WTVM6Ki4gUmVjb2duaXplIGFuZCBhZHZlcnRpc2UgYWxsIFZNUyBmbGF2b3JzIGFzIGRlYwoJbWFudWZhY3R1cmVyLgoKMjAwNC0wNi0yMiAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJKiBjb25maWcuZ3Vlc3M6IENyYXkgZml4ZXMgZnJvbSBXZW5keSBQYWxtIDx3ZW5keXBAY3JheS5jb20+LgoJKiBjb25maWcuc3ViOiBMaWtld2lzZS4KCjIwMDQtMDYtMjIgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCVJlcG9ydGVkIGJ5IEhhbnMtUGV0ZXIgTmlsc3NvbiA8aHBAYml0cmFuZ2UuY29tPjoKCSogY29uZmlnLnN1YjogQ29ycmVjdGx5IGhhbmRsZSBtbWl4LWtudXRoIGFuZCBtbWl4LWtudXRoLW1taXh3YXJlLgoKMjAwNC0wNi0yMSAgQmVuIEVsbGlzdG9uICA8YmplQGdudS5vcmc+CgoJKiBNYWtlZmlsZTogTmV3IGZpbGUuCgoyMDA0LTA2LTExICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIGNvbmZpZy5ndWVzcyAocGVnYXNvczpPcGVuQlNEOio6Kik6IFJlbW92ZS4KCjIwMDQtMDYtMTEgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCUZyb20gV291dGVyIFZlcmhlbHN0IDx3b3V0ZXJAZ3JlcC5iZT46CgkqIGNvbmZpZy5ndWVzcyAoTTY4KjoqOlIzVls1Njc4XToqKTogRGV0ZWN0IFIzVjguCgoyMDA0LTA2LTExICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIGNvbmZpZy5ndWVzcyAobHVuYTg4azpPcGVuQlNEOio6Kik6IE5ldy4KCjIwMDQtMDMtMTIgIEthenVoaXJvIEluYW9rYSAgPGluYW9rYS5rYXp1aGlyb0ByZW5lc2FzLmNvbT4KCgkqIGNvbmZpZy5ndWVzcyAobTMycio6TGludXg6KjoqKTogTmV3IGNhc2UuCgkqIGNvbmZpZy5zdWI6IEhhbmRsZSBtMzJybGUuCgoyMDA0LTAzLTEyICBCZW4gRWxsaXN0b24gIDxiamVAd2FzYWJpc3lzdGVtcy5jb20+CgoJRnJvbSBKZW5zIFBldGVyc2VuICA8cGV0ZXJzZW5AcmVkaGF0LmNvbT46CgkqIGNvbmZpZy5zdWI6IEhhbmRsZSBzcGFyY3Y4LgoKMjAwNC0wMy0wMyAgQmVuIEVsbGlzdG9uICA8YmplQHdhc2FiaXN5c3RlbXMuY29tPgoKCUZyb20gVG9tIFNtaXRoIDxzbWl0aEBjYWcubGtnLmhwLmNvbT46CgkqIGNvbmZpZy5ndWVzczogVmVyc2lvbiBzdWZmaXhlcyBhcmUgZXF1YWxseSBzaWduaWZpY2FudCBvbiBUcnU2NAoJVjQuKiBhbmQgVjUuKiwgc28gZG8gbm90IGlnbm9yZSB0aGVtIG9uIFY1LiouICBIYW5kbGUgYSB2ZXJzaW9uCglwcmVmaXggb2YgIlAiIChwYXRjaGVkIGtlcm5lbCkuCgoyMDA0LTAyLTIzICBUYWwgQWdtb24gIDxUYWwuQWdtb25AbnNjLmNvbT4KCgkqIGNvbmZpZy5zdWI6IEFkZCBzdXBwb3J0IGZvciBOYXRpb25hbCBTZW1pY29uZHVjdG9yIENSWCB0YXJnZXQuCgoyMDA0LTAyLTE2ICBUaG9yc3RlbiBHbGFzZXIgIDx4ODZAZVBvc3QuZGU+CgoJKiBjb25maWcuZ3Vlc3MgKCo6TWlyQlNEOio6KiwgbWFjcHBjOk1pckJTRDoqOiopOiBIYW5kbGUuCgkqIGNvbmZpZy5zdWI6IEhhbmRsZSAtbWlyYnNkKi4KCjIwMDQtMDItMTYgIEJyYWQgU21pdGggIDxicmFkQGNvbXN0eWxlLmNvbT4KCgkqIGNvbmZpZy5ndWVzczogUmVjb2duaXplIE9wZW5CU0Qgb24gQU1ENjQgYW5kIENBVFMgaGFyZHdhcmUuCgoyMDA0LTAyLTExICBCZW4gRWxsaXN0b24gIDxiamVAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcuc3ViIChhYmFjdXMpOiBBZGQuCgoyMDA0LTAyLTExICBHYWxpdCBIZWxsZXIgIDxHYWxpdC5IZWxsZXJAbnNjLmNvbT4KCgkqIGNvbmZpZy5zdWI6IEFkZCBzdXBwb3J0IGZvciBOYXRpb25hbCBTZW1pY29uZHVjdG9yIENSMTZDIHRhcmdldC4KCjIwMDQtMDItMDIgIEJlbiBFbGxpc3RvbiAgPGJqZUB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZy5ndWVzcyAoKjpla2tvQlNEOio6Kik6IEhhbmRsZS4KCSogY29uZmlnLmd1ZXNzOiBIYW5kbGUgLWVra29ic2QqLgoKMjAwNC0wMS0zMCAgQmVuIEVsbGlzdG9uICA8YmplQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogTkVXUzogUmVtb3ZlLgoKMjAwNC0wMS0yNCAgQmVuIEVsbGlzdG9uICA8YmplQHdhc2FiaXN5c3RlbXMuY29tPgoKCUZyb20gQnJldHQgRS4gV3lua29vcCA8d3lua29vcEB3eW5uLmNvbT46CgkqIGNvbmZpZy5ndWVzcyAobTY4azptYWNodGVuOio6Kik6IEhhbmRsZS4KCjIwMDQtMDEtMjAgIEplcm9lbiBSdWlncm9rIHZhbiBkZXIgV2VydmVuICA8YXNtb2RhaUBkcmFnb25mbHlic2Qub3JnPgoKCSogY29uZmlnLmd1ZXNzOiBGaXggRHJhZ29uRmx5IGVudHJ5IHRvIHJlYWxseSB3b3JrLgoKMjAwNC0wMS0wNSAgQmVuIEVsbGlzdG9uICA8YmplQHdhc2FiaXN5c3RlbXMuY29tPgoJICAgIEpvYWNoaW0gU2NobWl0eiAgPHNjaG1pdHpAaHAuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBIYW5kbGUgTlNSLT8gdG8gYWNjZXB0IGFueSBDUFUgdHlwZS4KCjIwMDQtMDEtMDUgIEJlbiBFbGxpc3RvbiAgPGJqZUB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZy5zdWI6IEhhbmRsZSBhbWQ2NC0qLgoKMjAwMy0xMS0yMCAgS3Jpc3RpYW4gVmFuIERlciBWbGlldCAgPHZhbmRlcnNAbGlxd3lkLmNvbT4KCgkqIGNvbmZpZy5ndWVzcyAoaSo4NjpzeWxsYWJsZToqOiopOiBOZXcuCgkqIGNvbmZpZy5zdWIgKC1zeWxsYWJsZSopOiBMaWtld2lzZS4KCjIwMDMtMTEtMTggIEplcm9lbiBSdWlncm9rIHZhbiBkZXIgV2VydmVuICA8YXNtb2RhaUBkcmFnb25mbHlic2Qub3JnPgoKCSogY29uZmlnLmd1ZXNzICgqOkRSQUdPTkZMWToqOiopOiBOZXcuCgkqIGNvbmZpZy5zdWIgKC1kcmFnb25mbHkqKTogTGlrZXdpc2UuCgoyMDAzLTExLTAzICBCZW4gRWxsaXN0b24gIDxiamVAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IERldGVjdCBPcGVuQlNEIG9uIFBlZ2Fzb3MgSSBoYXJkd2FyZS4KCjIwMDMtMTEtMDMgIEppbSBUaXNvbiAgPGp0aXNvbkB1cy5pYm0uY29tPgoJICAgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy5zdWIgKHRwZiwgLXRwZiopOiBSZWNvZ25pemUuCgoyMDAzLTEwLTE2ICBCZW4gRWxsaXN0b24gIDxiamVAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcuZ3Vlc3MgKDUwMDA6VU5JWF9TeXN0ZW1fVjo0Lio6Kik6IERldGVjdCB0aGUgRnVqaXRzdQoJVlBQNTAwMC4gIFJlcG9ydGVkIGJ5IE5hb2tpIFlvc2hpZGEgPG5hb2tpQHRoLm5hby5hYy5qcD4uCgoyMDAzLTEwLTE2ICBCZXJuYXJkbyBJbm5vY2VudGkgIDxiZXJuaWVAZGV2ZWxlci5jb20+CgoJKiBjb25maWcuc3ViIChsaW51eC11Y2xpYmMsIHVjbGludXgtdWNsaWJjKTogSGFuZGxlLgoKMjAwMy0xMC0xNiAgQmVuIEVsbGlzdG9uICA8YmplQHdhc2FiaXN5c3RlbXMuY29tPgoKCVJlcG9ydGVkIGJ5IFRvZGQgSHVtcGhyZXkgPHRodW1wQGlzbC5uZXQ+OgoJKiBjb25maWcuZ3Vlc3MgKCo6T1M0MDA6KjoqKTogRGV0ZWN0IE9TLzQwMCBvbiBBUy80MDAgbWFjaGluZXMuCgkqIGNvbmZpZy5zdWIgKG9zNDAwLCAtb3M0MDAqKTogUmVjb2duaXNlLgoKMjAwMy0xMC0wNyAgUm9iZXJ0IE1pbGxhbiAgPHJvYmVydG1oQGdudS5vcmc+CgkgICAgQmVuIEVsbGlzdG9uICA8YmplQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlnLmd1ZXNzICgqOkdOVS8qOio6Kik6IE5ldy4gR2VuZXJpYyBjaGVjayBmb3Igc3lzdGVtcyB3aXRoCglHTlUgbGliYyBhbmQgdXNlcmxhbmQgKG1hdGNoZXMgR05VL0tGcmVlQlNEIGFuZCBHTlUvS05ldEJTRCkuCgkoKjpHTlUvRnJlZUJTRDoqOiopOiBSZW1vdmUsIHN1cGVyY2VlZGVkIGJ5IEdOVS8qLgoJKiBjb25maWcuc3ViOiBIYW5kbGUgLWtuZXRic2QqLgoKMjAwMy0xMC0wNyAgQmVuIEVsbGlzdG9uICA8YmplQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlnLmd1ZXNzICgzWzM0NV0/PzoqOjQuMDozLjApOiBFeHBhbmQgcGF0dGVybiB0byBtYXRjaCAzNTI2LgoKMjAwMy0xMC0wMyAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy5zdWIgKG1pcHNpc2E2NHIyKik6IEFkZC4KCjIwMDMtMTAtMDMgIEJlbiBFbGxpc3RvbiAgPGJqZUB3YXNhYmlzeXN0ZW1zLmNvbT4KCSAgICBKb2FjaGltIFNjaG1pdHogIDxzY2htaXR6QGhwLmNvbT4KCgkqIGNvbmZpZy5ndWVzcyAoTlNSLSo6Tk9OU1RPUF9LRVJORUw6KjoqKTogUmVjb2duaXNlIE5TUi1ZLgoKMjAwMy0wOC0xOCAgQW5kcmVhcyBLcmVubm1haXIgPGtyZW5ubWFpckBsaXplbnpmcmVpLmF0PgoKCSogY29uZmlnLmd1ZXNzOiBBZGQgZGV0ZWN0aW9uIGZvciBkaWV0IGxpYmMuCgkqIGNvbmZpZy5zdWI6IEhhbmRsZSBsaW51eC1kaWV0bGliYy4KCjIwMDMtMDctMjkgIEJlbiBFbGxpc3RvbiAgPGJqZUB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIE5FV1M6IE5ldyBkcmFmdCBmaWxlLgoKMjAwMy0wNy0xNyAgQmVuIEVsbGlzdG9uICA8YmplQHdhc2FiaXN5c3RlbXMuY29tPgoKCVJlcG9ydGVkIGFzIG1pc3NpbmcgYnkgRG91ZyBFdmFuczoKCSogY29uZmlnLnN1YjogSGFuZGxlIGlxMjAwMCBhbmQgaXEyMDAwLSouCgoyMDAzLTA3LTE1ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5zdWI6IEFkZCBhbTMzXzIuMCBtYWNoaW5lLgoKMjAwMy0wNy0wNCAgQmVuIEVsbGlzdG9uICA8YmplQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlnLnN1YjogSGFuZGxlIC1rZnJlZWJzZCouIEZyb20gUm9iZXJ0IE1pbGxhbi4KCjIwMDMtMDctMDIgIFJvYmVydCBNaWxsYW4gIDxybWhAZGViaWFuLm9yZz4KCgkqIGNvbmZpZy5ndWVzcyAoKjpHTlUvRnJlZUJTRDoqOiopOiBQcmVmaXggR05VL0ZyZWVCU0QgdHJpcGxldAoJd2l0aCBhICJrIiB0byBpbmRpY2F0ZSB0aGUgc3lzdGVtIGlzIGJhc2VkIG9uIEZyZWVCU0QncyBrZXJuZWwgYW5kCglub3QgdGhlIHdob2xlIE9TLgoKMjAwMy0wNi0xNyAgQmVuIEVsbGlzdG9uICA8YmplQHdhc2FiaXN5c3RlbXMuY29tPgoKCUZyb20gYnkgU3RlcGhlbiBUaG9tYXMgPHN0ZXBoZW4udGhvbWFzQHN1cGVyaC5jb20+OgoJKiBjb25maWcuZ3Vlc3MgKHNoNjQqOio6KjpMaW51eCk6IE5ldyBjYXNlLgoJKiBjb25maWcuc3ViIChzaDY0KTogTWFwIHRvIHNoNjQtdW5rbm93bi4KCjIwMDMtMDYtMTcgIEJlbiBFbGxpc3RvbiAgPGJqZUB3YXNhYmlzeXN0ZW1zLmNvbT4KCglSZXBvcnRlZCBieSBEZW5uaXMgR3JldmVuc3RlaW4gPGRlbm5pc0BwY2RlLmlua2EuZGU+OgoJKiBjb25maWcuZ3Vlc3MgKHNlaToqOio6c2VpdXgpOiBEZXRlY3QgU0VJVVggcnVubmluZyBvbiBNSVBTLWJhc2VkCgl3b3Jrc3RhdGlvbnMgbWFudWZhY3R1cmVkIGJ5IFN1bWl0b21vIEVsZWN0cmljIEluZHVzdHJpZXMuCgkqIGNvbmZpZy5zdWIgKHNlaSwgLXNlaSopOiBIYW5kbGUuCgoyMDAzLTA2LTEzICBTdmVpbiBFLiBTZWxkYWwgIDxTdmVpbi5TZWxkYWxAc29saWRhcy5jb20+CgoJKiBjb25maWcuc3ViIChjNHgsIHRpYzR4KTogUmUtYXJyYW5nZSBhbmQgZml4LgoKMjAwMy0wNi0xMiAgQmVybmFyZCBHaXJvdWQgIDxiZXJuYXJkLmdpcm91ZEBjcmVkaXRseW9ubmFpcy5jaD4KCgkqIGNvbmZpZy5ndWVzcyAoQWxwaGEqOk9wZW5WTVM6KjoqKTogTmV3IGVudHJ5LgoKMjAwMy0wNi0wNiAgQmVuIEVsbGlzdG9uICA8YmplQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlnLnN1YjogUmVjb2duaXNlIHBlbnRpdW0zIGFuZCBwZW50aXVtNC4gIEZyb20gS2VsbGV5IENvb2sKCTxrY29vazM0QGZvcmQuY29tPi4KCjIwMDMtMDYtMDYgIERvdWdsYXMgQiBSdXBwICA8cnVwcEBnbmF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogUmVjb2duaXplIEludGVyaXggNC4KCjIwMDMtMDYtMDQgIEJlbiBFbGxpc3RvbiAgPGJqZUB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZy5ndWVzcyAoc2V0X2NjX2Zvcl9idWlsZCk6IEFsbG93IGluc2VjdXJlIHRlbXBvcmFyeQoJZmlsZW5hbWVzIHRvIGJlIGdlbmVyYXRlZCBvbiBzeXN0ZW1zIHdpdGhvdXQgbWt0ZW1wKDEpIG9yICRSQU5ET00sCglidXQgaXNzdWUgYSB3YXJuaW5nIHRvIHN0YW5kYXJkIGVycm9yLiAgU3VnZ2VzdGVkIGJ5IEhhbnMtUGV0ZXIKCU5pbHNzb24uCgoyMDAzLTA1LTI0ICBCZW4gRWxsaXN0b24gIDxiamVAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcuc3ViOiBIYW5kbGUgJG9zIHZhbHVlcyBvZiAtbng2IGFuZCAtbng3LgoKMjAwMy0wNS0yMiAgQmVuIEVsbGlzdG9uICA8YmplQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBEZXRlY3QgSUNMIE5YIHZlcnNpb24gNiBydW5uaW5nIG9uIElDTC9GdWppdHN1IERSUwoJNjAwMCBtYWNoaW5lcy4gUmVwb3J0ZWQgYnkgPGFscGhhMUBhbHBoYTF0ZWNsYWJzLmNvbT4uCgoyMDAzLTA1LTE5ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGNvbmZpZy5ndWVzcyAoY3JpczpMaW51eDoqOiopOiBOZXcgY2FzZS4KCjIwMDMtMDUtMDkgIEJlbiBFbGxpc3RvbiAgPGJqZUB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZy5ndWVzcyAoU0hHMjoqOjQuMDozLjApOiBIYW5kbGUgTkNSIFN5c3RlbSBWIFVOSVggbWFjaGluZS4KCVJlcG9ydGVkIGJ5IFJhaiBNYW5uYXIgPHJham1hbkB1cmVhY2guY29tPi4KCjIwMDMtMDUtMDkgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGNvbmZpZy5zdWIgKG1heWJlX29zKTogQWRkIGFsaWFzIGFtZDY0IGZvciB4ODZfNjQuCgoyMDAzLTA1LTA5ICBCZW4gRWxsaXN0b24gIDxiamVAd2FzYWJpc3lzdGVtcy5jb20+CgoJRnJvbSBSb2JlcnQgTWlsbGFuIDx6ZXJhdHVsMkB3YW5hZG9vLmVzPgoJKiBjb25maWcuZ3Vlc3MgKCo6R05VL0ZyZWVCU0Q6KjoqKTogSGFuZGxlLgoKMjAwMy0wMi0yMiAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJUmV2ZXJ0IHRoZSBmb2xsb3dpbmcgZHVlIHRvIHRoZSBkZW1pc2Ugb2YgTWljcm9CU0Q6CgogICAgICAgIDIwMDMtMDEtMDMgIFNjb3R0IEthbXAgIDxkaW5nb0BtaWNyb2JzZC5uZXQ+CgkqIGNvbmZpZy5ndWVzczogRGV0ZWN0IE1pY3JvQlNEIG9wZXJhdGluZyBzeXN0ZW0gb24gaTM4NiBDUFVzLgoJKiBjb25maWcuc3ViOiBIYW5kbGUgYWxpYXNlcyBmb3Igc3VjaC4KCjIwMDMtMDItMDMgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLnN1YjogSGFuZGxlIC1rYW9zKi4KCjIwMDMtMDItMDMgIENoYXJsZXMgTGVwcGxlICA8Y2xlcHBsZUBnaHouY2M+CgoJKiBjb25maWcuc3ViOiBIYW5kbGUgVEkgdGljNTV4LSogYW5kIHRpYzZ4LSogdGFyZ2V0cy4KCjIwMDMtMDEtMzAgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzIChhbHBoYTpPU0YxOio6Kik6IFVzZSAvdXNyL3NiaW4vcHNyaW5mbyAtdiB0bwoJZGV0ZWN0IHRoZSBBbHBoYSBDUFUgdHlwZSwgbm90IGFuIGFzc2VtYmxlZCBwcm9ncmFtIHJlcXVpcmluZwoJJENDX0ZPUl9CVUlMRC4KCjIwMDMtMDEtMjggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcuc3ViOiBBZGQgc2gyZSBzdXBwb3J0LgoKMjAwMy0wMS0yMiAgRmFiaW8gQWxlbWFnbmEgIDxmYWxlbWFnbkBhcm9zLm9yZz4KCgkqIGNvbmZpZy5zdWI6IEhhbmRsZSAtYXJvcyouCgoyMDAzLTAxLTEwICBTdHVhcnQgSGFzdGluZ3MgIDxzdHVhcnRAYXBwbGUuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBNYWtlIGk2ODYgdGhlIGRlZmF1bHQgZm9yIERhcndpbi94ODYuCgoyMDAzLTAxLTAzICBTY290dCBLYW1wICA8ZGluZ29AbWljcm9ic2QubmV0PgoKCSogY29uZmlnLmd1ZXNzOiBEZXRlY3QgTWljcm9CU0Qgb3BlcmF0aW5nIHN5c3RlbSBvbiBpMzg2IENQVXMuCgkqIGNvbmZpZy5zdWI6IEhhbmRsZSBhbGlhc2VzIGZvciBzdWNoLgoKMjAwMy0wMS0wMiAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJRnJvbSBXZW5keSBQYWxtIDx3ZW5keXBAY3JheS5jb20+OgoJKiBjb25maWcuZ3Vlc3MgKENSQVkqVDNEOio6KjoqKTogUmVtb3ZlLgoJKCo6VU5JQ09TL21wOio6Kik6IE5ldyBzeXN0ZW0uCgkqIGNvbmZpZy5zdWIgKHQzZCk6IFJlbW92ZS4KCShudjEpOiBBZGQuCgoyMDAzLTAxLTAyICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5zdWI6IEZpeCBtaXBzdHgzOS0qIGFuZCBtaXBzdHgzOWVsLSogaGFuZGxpbmcgKHR5cG8pLgoKMjAwMy0wMS0wMiAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJRnJvbSBEbWl0cnkgRGlreSA8ZGl3aWxAbWFpbC5ydT46CgkqIGNvbmZpZy5zdWIgKGJhc2ljX21hY2hpbmUpOiBBZGQgbXNwNDMwIGFuZCBtc3A0MzAtKi4KCjIwMDMtMDEtMDIgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcuc3ViIChtaXBzaXNhMzJyMiopOiBBZGQuCgoyMDAyLTEyLTIzICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzcyAoc2V0X2NjX2Zvcl9idWlsZCk6IFJld29yayB0byBkbyBtb3JlIHNlY3VyZSB0bXAKCWRpcmVjdG9yeSBjcmVhdGlvbi4gIFJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMgYW5kIHRtcCBkaXJlY3Rvcnkgb24KCWV4aXQ7IHJlbW92ZSByZWR1bmRhbnQgcm0oMSkgYW5kIHJtZGlyKDEpIGNvbW1hbmRzIHRocm91Z2hvdXQuCgoyMDAyLTEyLTE3ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogY29uZmlnLmd1ZXNzIChocHBhKik6IFJlbW92ZSB0bXBkaXIgd2hlbiBDQ19GT1JfQlVJTEQgaXMgc2V0LgoKMjAwMi0xMi0xMSAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgkgICAgRGF2ZSBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMuY2E+CgkgICAgUm9zcyBBbGV4YW5kZXIgIDxyb3NzLmFsZXhhbmRlckB1ay5uZWNldXIuY29tPgoKCSogY29uZmlnLmd1ZXNzICgqOkhQLVVYOio6Kik6IERldGVjdCA2NC1iaXQgY29tcGlsZXIuCgoyMDAyLTExLTMwICBKLlQuIENvbmtsaW4gIDxqdGNAYWNvcm50b29sd29ya3MuY29tPgoKCSogY29uZmlnLnN1YiAoLW50by1xbngqKTogTmV3ICRvcyBwYXR0ZXJuLgoJKC1udG8qKTogUHJlc2VydmUgT1MgdmVyc2lvbiB3aGVuIGNvbnZlcnRpbmcgdG8gLW50by1xbngqLgoKMjAwMi0xMS0zMCAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJRnJvbSBTdGVmYW4gTmVpcyA8bmVpc0Brb2JpbC5kZT46CgkqIGNvbmZpZy5ndWVzczogUmVvcmRlciBlbnRyaWVzIHNvIHRoYXQgaG9zdHMgd2l0aCBhIGRpZmZlcmVudAoJb3BlcmF0aW5nIHN5c3RlbSB3b24ndCBiZSBtaXNkZXRlY3RlZCBhcyBTeXN0ZW0gViBzaW1wbHkgYmVjYXVzZQoJdGhlaXIgdmVyc2lvbiBudW1iZXIgaGFwcGVucyB0byBiZSAzLjIsIDQuKiBvciA1LiAgVGhpcyBpcyBuZWVkZWQKCWZvciBPUy8yLCBhdCBsZWFzdCwgd2hpY2ggaXMgY3VycmVudGx5IGF0IHZlcnNpb24gNC41Mi4KCjIwMDItMTEtMzAgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCUZyb20gSm9lbCBCYWtlciA8bHVjaWZlckBsaWdodGJlYXJlci5jb20+OgoJKiBjb25maWcuZ3Vlc3M6IEFwcGVuZCAiLWdudSIgdG8gdHJpcGxldCBvbiBEZWJpYW4vTmV0QlNEIHN5c3RlbXMuCgkqIGNvbmZpZy5zdWI6IFJlY29nbmlzZSBuZXRic2QqLWdudSouCgoyMDAyLTExLTMwICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGRzMi5wZy5nZGEucGw+CgoJKiBjb25maWcuZ3Vlc3MgKG1pcHM2NDpMaW51eDoqOiopOiBSZWNvZ25pemUuCgkobWlwczpMaW51eDoqOiopOiBSZWNvZ25pemUgYXMgbWlwcy11bmtub3duLWxpbnV4LWdudSBpbnN0ZWFkIG9mCgltaXBzLXBjLWxpbnV4LWdudS4KCjIwMDItMTEtMzAgIERvdWdsYXMgQiBSdXBwICA8cnVwcEBnbmF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogTWFrZSBkZWZhdWx0IEludGVyaXggYXJjaCAiaTU4NiIuCgoyMDAyLTExLTMwICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogQWRkICJTRFMyIiB0byBtYWNoaW5lcyB0aGF0IHJ1biBOQ1IgU3lzdGVtIFYgVU5JWC4KCVJlcG9ydGVkIGJ5IDxhZ3VzdGluc2FuY2hlekBwcm9kaWd5Lm5ldC5teD4uCgoyMDAyLTExLTEzICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5zdWIgKHdpbmRvd3MzMik6IFJlbW92ZSBiYWQgaWRlYS4KCjIwMDItMTEtMTMgIFdlcm5lciBMZW1iZXJnICA8d2xAZ251Lm9yZz4KCgkqIGNvbmZpZy5zdWI6IEFkZCAtbWtzKi4KCjIwMDItMTEtMTMgIEplZmYgQ29ucmFkICA8amVmZl9jb25yYWRAbXNuLmNvbT4KCgkqIGNvbmZpZy5ndWVzczogRGV0ZWN0IE1LUyBydW5uaW5nIG9uIFdpbmRvd3Mgezk1LDk4LE5UfS4KCjIwMDItMTEtMTMgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBEZXRlY3QgUG93ZXJNQVggT1Mgb24gQ29uY3VycmVudCBTeW5lcmd5IG1hY2hpbmVzLgoJUmVwb3J0ZWQgYnkgU2FtIFdpbGxpYW1zIDxzYW0ud2lsbGlhbXNAaHMudXRjLmNvbT4uCgoyMDAyLTExLTA4ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogRGV0ZWN0IG02OGstZGlhYi1kbml4LgoJKiBjb25maWcuc3ViOiBIYW5kbGUgLWRuaXgqLgoKMjAwMi0xMC0yMSAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAdHdpbnN1bi5jb20+CgoJKiBjb25maWcuZ3Vlc3MgKENDX0ZPUl9CVUlMRCk6IFB1dCAiLW8gb3V0cHV0ZmlsZSIgYmVmb3JlIGFueQoJb3BlcmFuZHMuICBQT1NJWCAxMDAzLjEtMjAwMSBzYXlzIHRoYXQgImM5OSBmaWxlLmMgLW8gZmlsZSIgaXMgbm90CglzdXBwb3J0ZWQ7IHlvdSBtdXN0IHB1dCBhbGwgb3B0aW9ucyBiZWZvcmUgYWxsIG9wZXJhbmRzLCBlLmcuICJjOTkKCS1vIGZpbGUgZmlsZS5jIi4KCjIwMDItMDktMDUgIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvbmZpZy5zdWI6IEFkZCB0aWM0eCB0YXJnZXQuCgoyMDAyLTA5LTAzICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogRGV0ZWN0IE5TUi1EIG1hY2hpbmVzIGZvciBuc3ItdGFuZGVtLW5zay4KCVJlcG9ydGVkIGJ5IDxEdW5jYW5fU3RvZGFydEBpbnNlc3Npb24uY29tPi4KCjIwMDItMDgtMjMgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBEZXRlY3QgQ29uY3VycmVudCBQb3dlck1heGlvbi4KCVJlcG9ydGVkIGJ5IExsb3lkIEdvbGRzdG9uIDxsbG95ZC5nb2xkc3RvbkBzZWQucmVkc3RvbmUuYXJteS5taWw+LgoKCSogY29uZmlnLmd1ZXNzOiBEZXRlY3QgQ29udmVyZ2VudCAzQjEgbWFjaGluZXMgKHJ1bm5pbmcgQVQmVCBVTklYKS4KCVJlcG9ydGVkIGJ5IEJydWNlIExpbGx5IDxibGlsbHlAZXJvbHMuY29tPi4KCjIwMDItMDgtMjIgIFVycyBKYW7fZW4gPHVyc0Bha2sub3JnPgoKCSogY29uZmlnLnN1YjogQ29zbWV0aWMgd2hpdGVzcGFjZSBmaXhlcy4KCjIwMDItMDgtMjAgIFBoaWwgRWR3YXJkcyAgPHBtZUBnY2MuZ251Lm9yZz4KCgkqIGNvbmZpZy5zdWI6IEFjY2VwdCBhdGhsb25fKiBwYXR0ZXJucyBhcyBzeW5vbnltcyBmb3IgaTY4Ni1wYy4KCjIwMDItMDgtMjAgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCUZyb20gQ2hyaXMgRGVtZXRyaW91IDxjZ2RAYnJvYWRjb20uY29tPjoKCSogY29uZmlnLnN1YiAoc2IxLCBzYjFlbCk6IFRyZWF0IHRoZXNlIG1hY2hpbmVzIGFzCgltaXBzaXNhNjRzYjEtdW5rbm93biBhbmQgbWlwc2lzYTY0c2IxZWwtdW5rbm93biwgcmVzcGVjdGl2ZWx5LgoKMjAwMi0wOC0xOSAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IERldGVjdCBTdXBlci1VWCBvbiBORUMgU1gtNi4KCVJlcG9ydGVkIGJ5IEpvYWNoaW0gV29ycmluZ2VuIDxqb2FjaGltQGNjcmwtbmVjZS5kZT4uCgoyMDAyLTA4LTE2ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5zdWIgKG1pcHNpc2E2NHNyNzFrKiwgbWlwczY0dnIqKTogQWRkLgoKMjAwMi0wNy0yMyAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IERldGVjdCBhbHBoYWV2Ny4gIFJlcG9ydGVkIGJ5IHVyc0Bha2sub3JnLgoKMjAwMi0wNy0wMyAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IFVzZSB1bWFzayB0byBjcmVhdGUgdGVtcG9yYXJ5IGRpcmVjdGx5IHNhZmVseS4KCVVzaW5nIG1rZGlyIGFuZCBjaG1vZCBpbnRyb2R1Y2VzIGEgcmFjZS4KCjIwMDItMDctMDMgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBEZXRlY3QgSUNMIE5YIHZlcnNpb24gNyBydW5uaW5nIG9uIElDTC9GdWppdHN1IERSUwoJNjAwMCBtYWNoaW5lcy4gUmVwb3J0ZWQgYnkgSGVucmlrIE4uIFNwdXVyIEhhbnNlbiA8aG5zaEBtZXJhLmRrPi4KCjIwMDItMDctMDMgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBFeGVjdXRlICRkdW1teSwgbm90IC4vJGR1bW15LCB0aHJvdWdob3V0LgoKCSogY29uZmlnLmd1ZXNzIChzZXRfY2NfZm9yX2J1aWxkKTogQ3JlYXRlIGEgY2htb2QgNzAwIGRpcmVjdG9yeSBpbgoJL3RtcCAob3IgJFRNUERJUiwgaWYgc2V0KSB0byBzdG9yZSB0ZW1wb3JhcnkgZmlsZXMgZ2VuZXJhdGVkIGZvcgoJdXNlIGJ5IHRoZSBDIGNvbXBpbGVyLiBUaGlzIHNob3VsZCByZXNpc3QgdGhlIC90bXAgc3ltYm9saWMgbGluawoJcmFjZSB2dWxuZXJhYmlsaXR5IHJlcG9ydGVkIGJ5IExhd3JlbmNlIFRlby4KCjIwMDItMDctMDMgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLnN1YjogSGFuZGxlIGZyZWVic2QqLiBGcm9tIEJydW5vIEhhaWJsZS4KCjIwMDItMDctMDEgIEJydW5vIEhhaWJsZSAgPGJydW5vQGNsaXNwLm9yZz4KCgkqIGNvbmZpZy5ndWVzczogRm9yIEZyZWVCU0Qgc3lzdGVtcyB1c2luZyBnbGliYywgYWRkIHN1ZmZpeCAiLWdudSIuCgkqIGNvbmZpZy5zdWI6IEFjY2VwdCBmcmVlYnNkLWdudSBzeXN0ZW0gbmFtZS4KCjIwMDItMDYtMjEgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogY29uZmlnLnN1YjogQWRkIHN1cHBvcnQgZm9yIHNoWzEyXSwgc2gzZSwgc2hbMTIzNF1sZSwgc2gzZWxlLAoJc2hsZSwgc2hbMTIzNF1sZSwgc2gzZWxlLgoKMjAwMi0wNi0yMSAgRGF2ZSBCcm9sbGV5ICA8YnJvbGxleUByZWRoYXQuY29tPgoKCSogY29uZmlnLnN1YjogQWRkIHN1cHBvcnQgZm9yIGZydi4KCjIwMDItMDYtMjAgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcuc3ViOiBBZGQgQnJvYWRjb20gU2lCeXRlIFNCLTEgcHJvY2Vzc29yIHN1cHBvcnQKCShtaXBzaXNhNjRzYjEsIG1pcHNpc2E2NHNiMWVsKS4gIEFkZCBsaXR0bGUtZW5kaWFuIHZhcmlhbnRzIG9mCgltaXBzaXNhMzIgYW5kIG1pcHNpc2E2NCAobWlwc2lzYTMyZWwgYW5kIG1pcHNpc2E2NGVsLAoJcmVzcGVjdGl2ZWx5KS4gIFNvcnQgTUlQUyBlbnRyaWVzIGFuZCBzcGxpdCB0aGVpciBsaW5lcyBhIGJpdCBtb3JlCglsb2dpY2FsbHkuICBNYWtlIHN1cmUgdGhhdCBhbGwgb2YgdGhlIE1JUFMgZW50cmllcyBpbiB0aGUgIndpdGhvdXQKCWNvbXBhbnkgbmFtZSIgdGFyZ2V0IGxpc3QgYXJlIGVjaG9lZCBpbiB0aGUgIndpdGggY29tcGFueSBuYW1lIgoJbGlzdC4KCjIwMDItMDYtMTkgIERlbmlzIENoZXJ0eWtvdiAgPGRlbmlzY0BvdmVydGEucnU+CgoJKiAgKGNvbmZpZy5zdWIpOiBBZGQgaXAyayBzdXBwb3J0LgoKMjAwMi0wNi0xOSAgSiJvcm4gUmVubmVja2UgPGpvZXJuLnJlbm5lY2tlQHN1cGVyaC5jb20+CgoJKiBjb25maWcuc3ViOiBBY2NlcHQgc2g2NGxlIGFuZCBzaDY0bGUtKi4KCjIwMDItMDUtMjkgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QHR3aW5zdW4uY29tPgoKCSogY29uZmlnLmd1ZXNzOiBEb24ndCB1c2UgZWdyZXAsIGFzIFBPU0lYIDEwMDMuMS0yMDAxIG5vIGxvbmdlcgoJcmVxdWlyZXMgZWdyZXAuICBVc2UgZ3JlcCBpbnN0ZWFkLgoKMjAwMi0wNS0yOCAgS3VhbmcgSHdhIExpbiA8a3VhbmdAc2JjZ2xvYmFsLm5ldD4KCgkqIGNvbmZpZy5zdWI6IEFkZCBETFggc3VwcG9ydC4KCjIwMDItMDUtMjIgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IEFkZCBjYXNlIGZvciAiYXJtZWIiIGluIE5ldEJTRCBzZWN0aW9uLgoJKiBjb25maWcuc3ViOiBBbGxvdyAiYXJtZWIiIGFzIGEgdmFsaWQgQ1BVIHR5cGUuCgoyMDAyLTA1LTE2ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogRGV0ZWN0IFBvd2VyTUFYIE9TIG9uIENvbmN1cnJlbnQgTmlnaHQgSGF3ay4KCSogY29uZmlnLnN1YjogSGFuZGxlIC1wb3dlcm1heCouCgoyMDAyLTA1LTAyICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogQWRkICI0NDAwIiB0byBtYWNoaW5lcyB0aGF0IHJ1biBOQ1IgU3lzdGVtIFYgVU5JWC4KCjIwMDItMDQtMjUgIE1hcmsgTWl0Y2hlbGwgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy5zdWIgKCotd3JzLXdpbmRpc3MpOiBOZXcgdGFyZ2V0cy4KCjIwMDItMDMtMjAgIEtlaXRoIFRob21wc29uICA8a3N0QHNkc2MuZWR1PgoKCSogY29uZmlnLmd1ZXNzIChpYTY0OkxpbnV4Oio6Kik6IE91dHB1dCAiaWE2NC11bmtub3duLWxpbnV4LWdudSIuCgoyMDAyLTAzLTIwICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzcyAoc2V0X2NjX2Zvcl9idWlsZCk6IEFkZCBjOTkgdG8gbGlzdCBvZiBjYW5kaWRhdGVzLgoKMjAwMi0wMy0xMiAgSi5ULiBDb25rbGluICA8anRjQGFjb3JudG9vbHdvcmtzLmNvbT4KCgkqIGNvbmZpZy5ndWVzczogQWRkIE9TIHJlbGVhc2UgdG8gUU5YIGNvbmZpZyBzdHJpbmdzLgoKMjAwMi0wMy0wNiAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy5zdWI6IEFkZCBzdXBwb3J0IGZvciBtaXBzaXNhNjQuCgoyMDAyLTAzLTA0ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCglGcm9tIEtldmluIFJ5ZGUgPHVzZXI0MkB6aXAuY29tLmF1PjoKCSogY29uZmlnLnN1YiAoc3BhcmNsZXQtKi0qKTogQWNjZXB0IGFueSB2ZW5kb3IuCgkoc3BhcmM4NngpOiBFeHBhbmQgdG8gc3BhcmM4NngtdW5rbm93bi1ub25lLgoKMjAwMi0wMy0wNCAgQWRyaWFuIEJ1bmsgIDxidW5rQGZzLnR1bS5kZT4KCgkqIGNvbmZpZy5ndWVzcyAoKjpOZXRCU0Q6KjoqKTogVXNlICJzeXNjdGwgLW4gaHcubWFjaGluZV9hcmNoIgoJaW5zdGVhZCBvZiAidW5hbWUgLXAiIHRvIGdldCBVTkFNRV9NQUNISU5FX0FSQ0guCgoyMDAyLTAyLTIyICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCSAgICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnLnN1YiAoY2FzZSAkYmFzaWNfbWFjaGluZSk6IEFkZCBtaXBzIGFuZCBjbGVhbiB1cCBvdGhlcgoJTGludXggc3BlY2lmaWMgY2FzZXMuIE5vdyBgY29uZmlnLnN1YiBtaXBzYCB5aWVsZHMgbWlwcy11bmtub3duLWVsZi4KCjIwMDItMDItMjIgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCUZyb20gS2V2aW4gUnlkZSA8dXNlcjQyQHppcC5jb20uYXU+OgoJKiBjb25maWcuc3ViIChzdjEtKiwgeW1wLSosIGM5MC0qKTogUHJlc2VydmUgQ1BVIHR5cGUgaW4gb3V0cHV0LgoJKHQzZC0qLCB0M2UtKik6IENhbm9uaWNhbGl6ZSB0byBhbHBoYSBhbmQgYWxwaGFldjUuCgoyMDAyLTAyLTE4ICBKaW0gTWV5ZXJpbmcgIDxtZXllcmluZ0BsdWNlbnQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBEb24ndCB1c2UgYGhlYWQgLTEnOyBpdCdzIG5vIGxvbmdlciBwb3J0YWJsZS4KCVVzZSBgc2VkIDFxJyBpbnN0ZWFkLgoKMjAwMi0wMi0xNSAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuc3ViIChydG1rKiwgcnRtay1ub3ZhKik6IFJlY29nbmlzZS4KCUZyb20gSm9oYW4gUnlkYmVyZyA8anJ5ZGJlcmdAcnRtay5vcmc+LgoKMjAwMi0wMi0xNSAgV2VuZHkgUGFsbSAgPHdlbmR5cEBjcmF5LmNvbT4KCgkqIGNvbmZpZy5ndWVzcyAoQ1JBWSpYLU1QOio6KjoqLCBDUkFZLTI6KjoqOiopOiBSZW1vdmUsIGFzIHdlIGtub3cKCXRoZXkgbm8gbG9uZ2VyIGV4aXN0IGluIHRoZSBmaWVsZC4KCSogY29uZmlnLnN1YiAoY3JheTIsIHhtcCk6IExpa2V3aXNlLgoJKGNyYXksIHltcCwgW2NqXTkwLWNyYXkpOiBiYXNpY19tYWNoaW5lIGlzIG5vdyBqOTAtY3JheS4KCShzdjEtY3JheSwgY3JheS10M2UsIGNyYXktdDNkLCBjcmF5LXQ5MCk6IE5ldyBiYXNpYyBtYWNoaW5lIHBhdHRlcm5zLgoKMjAwMi0wMi0xNSAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuc3ViOiBBY2NlcHQgbTY4MDYwLgoKMjAwMi0wMi0xMiAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuc3ViIChzeD8tKiwgc3VwZXJ1eCopOiBOZXcgYmFzaWNfbWFjaGluZSBhbmQgb3MuCglGcm9tIExlbiBNYWtpbiA8TGVuLk1ha2luQGNzaXJvLmF1Pi4KCjIwMDItMDItMTIgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBTZXQgTENfQUxMLCBub3QgTEFORywgd2hlbiBydW5uaW5nIGxkIC0taGVscC4KCUZyb20gTmljb2xhIFBlcm8gPG5pY29sYUBicmFpbnN0b3JtLmNvLnVrPi4KCjIwMDItMDItMDEgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLnN1YiAoc2g2NCwgc2g2NC0qKTogQWRkIG5ldyBtYWNoaW5lLgoKMjAwMi0wMS0zMSAgSXZhbiBHdXp2aW5lYyAgPGl2YW5nQG9wZW5jb3Jlcy5vcmc+CgoJKiBjb25maWcuc3ViOiBBZGQgc3VwcG9ydCBmb3Igb3IzMi4KCjIwMDItMDEtMjYgIEFuZHkgT2xzb24gIDxhbmRyZXcub2xzb25AbG1jby5jb20+CgoJKiBjb25maWcuZ3Vlc3MgKCo6UU5YOio6Kik6IFJlcG9ydCBpMzg2LSogcmF0aGVyIHRoYW4geDg2cGMtKi4KCURpc2N1c3NlZCB3aXRoIGFuZCBhcHByb3ZlZCBieSA8cGV0ZXJ2QHFueC5jb20+LgoKMjAwMi0wMS0yMyAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3MgKGkqODY6TGludXg6KjoqKTogU3BlY2lmaWNhbGx5IGhhbmRsZSB0aGUgSW50ZWwgaWNjCgljb21waWxlciwgd2hpY2ggZG9lc24ndCBkZWZpbmUgX19FTEZfXy4gIFN1Ym1pdHRlZCBieSBFcmlrIExpbmRhaGwKCTxsaW5kYWhsQHN0YW5mb3JkLmVkdT4uCgoyMDAyLTAxLTIyICBOaWNvbGEgUGVybyAgPG5pY29sYUBicmFpbnN0b3JtLmNvLnVrPgoKCSogY29uZmlnLmd1ZXNzIChpKjg2OkxpbnV4Oio6Kik6IEZpeGVkOiBleHBvcnQgTEFORz1DIGJlZm9yZQoJcnVubmluZyBsZCBzbyB0aGF0IGxpbmtlciBvdXRwdXQgY2FuIGJlIGFzc3VtZWQgdG8gYmUgaW4gRW5nbGlzaCwKCWFuZCBpdCB3b3JrcyB3aXRoIG5vbi1kZWZhdWx0IGxvY2FsZXMuCgoyMDAyLTAxLTEwICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogVXBkYXRlIFBlciBCb3RobmVyJ3MgbWFpbCBhZGRyZXNzLgoKMjAwMi0wMS0wMiAgRG91Z2xhcyBCLiBSdXBwICA8cnVwcEBnbmF0LmNvbT4KCgkqIGNvbmZpZy5zdWIgKGFscGhhNjQqKTogTmV3IGJhc2ljX21hY2hpbmUuCgoyMDAyLTAxLTAyICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCglGcm9tIFNpZ2Jqb3JuIFNramFlcmV0IDxjaXNjQGMyaS5uZXQ+LgoJKiBjb25maWcuZ3Vlc3M6IEFkZCBkZXRlY3Rpb24gZm9yIE1vcnBoT1MuCgkqIGNvbmZpZy5zdWI6IEhhbmRsZSBtb3JwaG9zKi4KCjIwMDItMDEtMDIgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZy5ndWVzcyAobWlwczpMaW51eDoqOiopOiBVbmRlZiBDUFUsIG1pcHMgYW5kIG1pcHNlbCBmaXJzdC4KCjIwMDEtMTItMTMgIERvdWdsYXMgQi4gUnVwcCAgPHJ1cHBAZ25hdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IFJlY29nbml6ZSB4ODYgSW50ZXJpeCB2ZXJzaW9uIDMuCgoyMDAxLTEyLTEyICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzcyAoaSo4NjpMaW51eDoqOiopOiBNaW5vciBzaW1wbGlmaWNhdGlvbjogaGF2ZSB0aGUKCXByZXByb2Nlc3NvciBlbWl0IHNoZWxsIGFzc2lnbm1lbnRzIGFuZCBqdXN0IGV2YWwgdGhlIG91dHB1dC4KCjIwMDEtMTItMTIgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZy5ndWVzcyAobWlwczpMaW51eDoqOiopOiBSZS13b3JrLgoKMjAwMS0xMi0xMiAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3MgKGkqODY6TGludXg6KjoqKTogU3BlZWQgdXAgZGV0ZWN0aW9uIG9mIHg4NiBMaW51eAoJc3lzdGVtcyBieSB1c2luZyBqdXN0IHRoZSBDIHByZXByb2Nlc3NvciByYXRoZXIgdGhhbiBhc3NlbWJsaW5nCglhbmQgbGlua2luZyBhIGZpbmFsIGV4ZWN1dGFibGUuCgoyMDAxLTEyLTEyICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBTaW1wbGlmeSBhc3NpZ25tZW50IG9mIG1hY2hpbmUgZm9yIE5ldEJTRCB0YXJnZXRzLAoJYW5kIG1ha2UgaXQgbWF0Y2ggdGhlIGNvbnZlbnRpb24gdGhhdCBOZXRCU0QgdXNlcy4gIExpc3QgYWxsCglOZXRCU0QgYXJjaGl0ZWN0dXJlcyB0aGF0IHJlcXVpcmUgImVsZiIgYXQgdGhlIGVuZCBvZiB0aGUgT1MgbmFtZS4KCjIwMDEtMTItMTAgIExhcnMgQnJpbmtob2ZmICA8bGFyc0Bub2NyZXcub3JnPgoKCSogY29uZmlnLnN1YjogUmVjb2duaXplIGEgZmV3IFBEUC0xMCBhbGlhc2VzLgoKMjAwMS0xMi0wMyAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuc3ViOiBSZWNvZ25pc2UgdGhlIE51Y2xldXMgZmFtaWx5IG9mIG9wZXJhdGluZyBzeXN0ZW1zLgoJRnJvbSA8VGFrYWhpa29fS2F3YXNha2lAY2lpLmNzay5jby5qcD4uCgoyMDAxLTEyLTAzICBCb2IgV2lsc29uICA8YndpbHNvbkB0ZW5zaWxpY2EuY29tPgoKCSogY29uZmlnLnN1YjogQWRkIHN1cHBvcnQgZm9yIFh0ZW5zYSB0YXJnZXRzLgoKMjAwMS0xMS0zMCAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuc3ViOiBSZWNvZ25pc2UgTkVDIHY4NTBlLiBGcm9tIE1pbGVzIEJhZGVyCgk8bWlsZXNAbHNpLm5lYy5jby5qcD4uCgoyMDAxLTExLTI2ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzcyAobnNyLXRhbmRlbS1uc2spOiBEZXRlY3QgYWxsIGtub3duIE5TUiBwcm9jZXNzb3IKCXR5cGVzLiBDb250cmlidXRlZCBieSBLamV0aWwgQmFydmlrIDxramV0aWwuYmFydmlrQGJicy5ubz4uCgoyMDAxLTExLTE2ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5zdWI6IEFjY2VwdCAiLWF0aGVvcyoiIGFzIGEgdmFsaWQgT1MuCglGcm9tIFRhY28gV2l0dGUgPFQuQy5XaXR0ZUBwaHlzLnV1Lm5sPi4KCjIwMDEtMTEtMDggIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBIYW5kbGUgMzQ4Ny8zNDg4IG1hY2hpbmVzIGZvciBOQ1IgU3lzViBVTklYLgoJQ29udHJpYnV0ZWQgYnkgTWVsdmluIE0uIEJhZ2Fmb3JvIDxtYmFnYWZvcm9AbWFrcm8uY29tLnBoPi4KCjIwMDEtMTEtMDcgIEFkcmlhbiB2b24gQmlkZGVyICA8YXZiaWRkZXJAYWN0ZXIuY2g+CgoJKiBjb25maWcuc3ViOiBBY2NlcHQgIi11Y2xpbnV4KiIgYXMgYSB2YWxpZCBPUy4KCjIwMDEtMTEtMDcgIEQuSi4gQmFycm93ICA8ZGpiYXJyb3dAZGUuaWJtLmNvbT4KCiAgICAgICAgKiBjb25maWcuc3ViOiBBZGRlZCBTLzM5MCAzMSBhbmQgNjQgYml0IHRhcmdldC4KCjIwMDEtMTEtMDYgIEpvaG4gTWFyc2hhbGwgIDxqbWFyc2hhbGxAYWNtLm9yZz4KCgkqIGNvbmZpZy5zdWI6IEFjY2VwdCAiLXBhbG1vcyoiIGFzIGEgdmFsaWQgT1MuCgoyMDAxLTExLTA3ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQHJlZGhhdC5jb20+CgoJKiBjb25maWcuc3ViOiBDaGFuZ2UgJ3N0b3JteTE2JyB0byAneHN0b3JteTE2JyBpbiB0aGUgdHdvIHBsYWNlcwoJaXQgYXBwZWFycy4KCjIwMDEtMTAtMDUgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBBZGQgIlNLQTQwIiBhcyBhIG1hY2hpbmUgdHlwZSBmb3IgTkNSIFN5c1YgVU5JWC4KCUZyb20gUnVkaSBIZWl0YmF1bSA8cmhlaXRiYXVtQHRhdHRlcnNhbGxzLmNvbS5hdT4uCgoyMDAxLTEwLTA1ICBSb2RuZXkgQnJvd24gIDxyYnJvd242NEBjc2MuY29tLmF1PgoKCSogY29uZmlnLmd1ZXNzICg5MDAwL1szNDY3OF0/PzpIUC1VWDoqOiopOiBVbmNvbmRpdGlvbmFsbHkgdHJ5CgkvdXNyL2Jpbi9nZXRjb25mIHdoaWNoIGlzIGF2YWlsYWJsZSBvbiBIUC1VWCAxMC4yMC4gUmVpbmRlbnQuCgoyMDAxLTEwLTA0ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5zdWI6IEhhbmRsZSB2aWFjMyBhcyBhbiBpNTg2LWNsYXNzIENQVS4KCgkqIGNvbmZpZy5zdWI6IEhhbmRsZSBzaW1zby13cnMgKFdpbmQgUml2ZXIncyBWeFdvcmtzIFNvbGFyaXMKCXNpbXVsYXRvciB0YXJnZXQpLiBGcm9tIGRwb3ZleUBkc3RjLnF1dC5lZHUuYXUuCgoyMDAxLTA5LTE0ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBjb25maWcuc3ViOiBTdXBwb3J0IGF2ci12ZW5kb3ItKi4KCjIwMDEtMDktMTMgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzICgqLSotb3BlbmJzZCk6IFJlb3JnYW5pc2UgYW5kIGNsZWFuIHVwLgoJQ29udHJpYnV0ZWQgYnkgYnJhZEBvcGVuYnNkLm9yZy4KCjIwMDEtMDktMTIgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzIChzcGFyYyotKi1uZXRic2QpOiBQcm9wZXJseSBtYXRjaCAzMi1iaXQgTmV0QlNEL3NwYXJjNjQKCWFzIHNwYXJjLXVua25vd24tbmV0YnNkLiBGcm9tIE1hdHRoZXcgR3JlZW4gPG1yZ0BldGVybmEuY29tLmF1Pi4KCjIwMDEtMDktMDcgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLnN1YjogQWRkIG1pcHNlYi0qIGFsaWFzICh3aG9vcHMpLgoKMjAwMS0wOS0wNCAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuc3ViOiBBZGQgbWlwc2ViIGFsaWFzLgoKMjAwMS0wOS0wNCAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgkgICAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5zdWI6IEFkZCBzdXBwb3J0IGZvciBtaXBzaXNhMzIuCgoyMDAxLTA5LTA0ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogTW92ZSBldmFsICRzZXRfY2NfZm9yX2J1aWxkIGluIG1vc3QgY2FzZXMsIHRvCglwcmV2ZW50IHRoaXMgc2NyaXB0IGZyYWdtZW50IGZyb20gY2xvYmVycmluZyBhIHByZXZpb3VzbHkKCWNvbnN0cnVjdGVkIEMgcHJvZ3JhbSBpbiAkZHVtbXkuYy4KCjIwMDEtMDgtMjMgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBEZXRlY3QgQXRoZU9TIG9uIHg4NiBzeXN0ZW1zLgoJQmFzZWQgb24gaW5mbyBwcm92aWRlZCBieSBUYWNvIFdpdHRlIDx0Y3dpdHRlQHdpc2gubmV0Pi4KCjIwMDEtMDgtMjMgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5zdWI6IEFkZCBzdG9ybXkxNi1lbGYuCgoyMDAxLTA4LTIxICBtYXR0aGV3IGdyZWVuICA8bXJnQGV0ZXJuYS5jb20uYXU+CgoJKiBjb25maWcuZ3Vlc3MgKHNwYXJjKjpOZXRCU0Q6Kik6IFVzZSAkTUFDSElORV9BUkNILCBub3QgJE1BQ0hJTkUuCgoyMDAxLTA4LTEzICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5zdWI6IEhhbmRsZSBjb21wbGV0ZSBzeXN0ZW0gbmFtZSBmb3IgZWx4c2kuCglGcm9tIFphY2sgV2VpbmJlcmcgPHphY2t3QHBhbml4LmNvbT4uCgoyMDAxLTA4LTA5ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogRGV0ZWN0IEFscGhhIGV2Njggb24gT1NGLzEgYW5kIExpbnV4LgoJRnJvbSBLZW4gV2hhbGV5IDxrZW5AYmVsaWV2ZS5jb20+LgoKMjAwMS0wOC0wNCAgRGFycmVsbCBIYW1pbHRvbiAgPERhcnJlbGxfSGFtaWx0b25AbGFiY29ycC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IFVuaXN5cyBwbGFjZXMgdGhlIGhvc3QgaWQgaW4gJHtVTkFNRV9TWVNURU19Cgl3aGljaCBpcyB0b28gdW5pcXVlIHRvIGZsYWcgdGhpcyBzeXN0ZW0uICBEZXRlY3QgaXQgd2l0aCAqCglpbnN0ZWFkLgoKMjAwMS0wOC0wMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy5zdWI6IFNvcnQgYmFzaWMgY3B1IHBhdHRlcm5zLiAgQ29tYmluZSBocHBhIHBhdHRlcm5zLgoKMjAwMS0wOC0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy5zdWI6IFJlY29nbmlzZSBwb3dlcnBjNjQsIHBvd2VycGM2NGxlLCBwcGM2NCB2YXJpYXRpb25zLgoKMjAwMS0wNy0zMSAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IERldGVjdCBTdHJhdHVzIFZPUyBvcGVyYXRpbmcgc3lzdGVtLgoJKiBjb25maWcuc3ViOiBIYW5kbGUgYWxpYXNlcyBmb3Igc3VjaC4KCjIwMDEtMDctMzAgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBEZXRlY3QgU1RPUCBvcGVyYXRpbmcgc3lzdGVtIG9uIHg4NiBDUFVzLgoJRnJvbSBIYW5zIEVkd2FyZHMgPEhhbnMuRWR3YXJkc0BnZXRyb25pY3Nnb3YuY29tPi4KCjIwMDEtMDctMjcgIE5paWJlIFl1dGFrYSAgPGduaWliZUBtMTduLm9yZz4KCiAgICAgICAgKiBjb25maWcuc3ViOiBSZWNvZ25pemUgc2gzZWIgYW5kIHNoNGViIChiaWcgZW5kaWFuKSBhbGlhc2VzLgoKMjAwMS0wNy0xOSAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IERldGVjdCBMaW51eCBvbiB0aGUgUFBDNjQgYXJjaGl0ZWN0dXJlLgoKMjAwMS0wNy0xMiAgS2VpdGggVGhvbXBzb24gIDxrc3RAc2RzYy5lZHU+CgoJKiBjb25maWcuZ3Vlc3M6IFN0cmlwIHRyYWlsaW5nIHN1Yi12ZXJzaW9uIG51bWJlciBmcm9tCgkkVU5BTUVfUkVMRUFTRSBvbiBDcmF5IFlNUCBvciBDcmF5IFtBLVpdOTAgbW9kZWxzLgoKMjAwMS0wNy0wOSAgTWFyayBLbGVpbiAgPG1rbGVpbkBkaXMuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBVcGRhdGUgTVBFL2lYIHRvIGhhbmRsZSBBIGFuZCBOIGNsYXNzIEhQZTMwMDAuCgoyMDAxLTA3LTAyICBHcmFoYW0gU3RvdHQgIDxncmFoYW1zQHJlZGhhdC5jb20+CgoJKiBjb25maWcuc3ViIChiYXNpY19tYWNoaW5lKTogRml4IHR5cG8gZm9yIG1pcHM2NHZyNTAwMGVsLgoKMjAwMS0wNi0yOSAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IFJlbW92ZSBzdGFsZSBsaWJjMSB0ZXN0cyBvbiBQb3dlclBDIExpbnV4LgoKMjAwMS0wNi0yOSAgSm9obiBXb2xmZSAgPGpsd0BzY28uY29tPgoKCSogY29uZmlnLmd1ZXNzOiBDb3JyZWN0IFVuaXhXYXJlIDcgYW5kIE9wZW4gVU5JWCA4LjAgY2hhbmdlOwoJdGVzdCBmb3IgaTU4NiBtdXN0IGJlIGEgc3RyaW5nIHRoYXQgZW5kcyB3aXRoICJQZW50aXVtIi4KCjIwMDEtMDYtMjggIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBPbiBBbHBoYSBMaW51eCwgdXNlIC9wcm9jL2NwdWluZm8gdG8gZGV0ZXJtaW5lCgl0aGUgQ1BVIG1vZGVsLCByYXRoZXIgdGhhbiBhc3NlbWJsaW5nIGEgc21hbGwgdGVzdCBwcm9ncmFtLgoKMjAwMS0wNi0yNyAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IERvIG5vdCB1bmNvbmRpdGlvbmFsbHkgcnVuIHRoZSBzY3JpcHQgZnJhZ21lbnQKCXRvIHNldCAkQ0NfRk9SX0JVSUxELiBQdXQgdGhlIHNjcmlwdCBpbiB0aGUgc2hlbGwgdmFyaWFibGUKCSRzZXRfY2NfZm9yX2J1aWxkIGFuZCBvbmx5IGV2YWx1YXRlIGl0IGJlZm9yZSAkQ0NfRk9SX0JVSUxEIGlzCglyZWZlcmVuY2VkLiAoUG9vciBtYW4ncyBmdW5jdGlvbiBpbmxpbmluZyEpCgoJSW4gZnV0dXJlLCB0aGUgZ29hbCB3aWxsIGJlIHRvIHJlZHVjZSB0aGUgZGVwZW5kZW5jZSBvbiBhIEMKCWNvbXBpbGVyIHRvIGRldGVjdCBzeXN0ZW0gdHlwZXMgYnkgdXRpbGlzaW5nIG90aGVyIG1lYW5zLgoKMjAwMS0wNi0yNiAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IE9uIE1JUFMgTGludXgsIHVzZSAvcHJvYy9jcHVpbmZvIHRvIGRldGVybWluZQoJdGhlIGVuZGlhbiBtb2RlIG9mIHRoZSBDUFUsIHJhdGhlciB0aGFuIGNvbXBpbGluZyBhbmQgcnVubmluZwoJYSBzbWFsbCBDIHByb2dyYW0uCgoyMDAxLTA2LTEyICBKb2huIFdvbGZlICA8amx3QHNjby5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IFN0YW5kYXJkaXplIHRyaXBsZXQgZm9yIFVuaXhXYXJlIDcgYW5kIE9wZW4KCVVOSVggOC4wLCBpbXByb3ZlIHByb2Nlc3NvciBkZXRlY3Rpb24gYW5kIG1haW50YWluICJzeXN2NSIKCXByZWZpeCBvbiB0aGlyZCBzZWdtZW50LgoKMjAwMS0wNi0wOCAgQ2hyaXN0b3BoZXIgRmF5bG9yICA8Y2dmQHJlZGhhdC5jb20+CgoJKiBjb25maWcuc3ViOiBBZGQgc3VwcG9ydCBmb3IgU3VuIENob3J1cy4KCjIwMDEtMDYtMDUgIFRvbWlzbGF2IEdyZWd1cmljICA8Z3JlZ3VyaWNAc3R1ZC51bmktZnJhbmtmdXJ0LmRlPgoKCSogY29uZmlnLmd1ZXNzOiBBZGQgMjAwMSB0byBjb3B5cmlnaHQgbm90aWNlIGlzc3VlZCBmb3IgLXYuCgoyMDAxLTA2LTAxICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzcyAoaSo4NjpMaW51eDoqOiopOiBFeGFtaW5lIHRoZSBsaXN0IG9mIHN1cHBvcnRlZAoJdGFyZ2V0cywgbm90IHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBlbXVsYXRpb25zIHdoZW4gY2FwdHVyaW5nCgl0aGUgb3V0cHV0IG9mICJsZCAtLWhlbHAiLiAgVGhpcyBjYXVzZXMgcHJvYmxlbXMgb24gc3lzdGVtcwoJd2hlcmUgR05VIGxkIGlzIGJ1aWx0IHdpdGggc3VwcG9ydCBmb3IgYWxsIHRhcmdldHMuIEFkanVzdAoJY2FzZXMgaW4gdGhlIHN3aXRjaCBhY2NvcmRpbmdseS4KCgkqIGNvbmZpZy5ndWVzczogT3RoZXIgc21hbGwgTGludXggY2xlYW51cHMuIFJlbW92ZSB1bm5lY2Vzc2FyeQoJbG9naWMgZm9yIHNldHRpbmcgJFZFTkRPUiwgc2luY2UgVU5BTUVfTUFDSElORSB3aWxsIGFsd2F5cyBiZQoJaSo4NiBpbiB0aGlzIGNhc2UuCgoyMDAxLTA1LTMwICBNbyBEZUpvbmcgIDxtZGVqb25nQHJlZGhhdC5jb20+CgoJKiBjb25maWcuc3ViOiBIYW5kbGUgd2luZG93czMyIGFuZCBydW50aW1lcy4KCjIwMDEtMDUtMjQgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLnN1YjogUmVtb3ZlIGR1cGxpY2F0ZSB6OGsgZW50cnkuCgoyMDAxLTA1LTExICBZYWVnYXNoaSBUYWtlc2hpICA8dEBrZXNoaS5vcmc+CgoJKiBjb25maWcuc3ViOiBIYW5kbGUgc2hbMzRdLSogYW5kIHNoWzM0XWViLSouCgoyMDAxLTA1LTA5ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5zdWI6IEhhbmRsZSB6OGstY29mZi4KCUZyb20gQ2hyaXN0aWFuIEdyb2Vzc2xlciA8Y3BnQGFsYWRkaW4uZGU+LgoKMjAwMS0wNC0yMCAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuc3ViOiBIYW5kbGUgc3BhcmN2OWIuCglGcm9tIERhdmUgTWlsbGVyIDxkYXZlbUByZWRoYXQuY29tPi4KCgkqIGNvbmZpZy5ndWVzczogRGV0ZWN0IFBvd2VyTUFYIE9TIG9uIFBvd2VyUEMuCgoyMDAxLTA0LTIwICBUeXNvbiBEb3dkICA8dHJkQGNzLm11Lm96LmF1PgoJICAgIEZlcmd1cyBIZW5kZXJzb24gIDxmamhAY3MubXUub3ouYXU+CgoJKiBjb25maWcuZ3Vlc3M6IFJlcGxhY2UgaT84NiB3aXRoIGkqODYgdG8gbWF0Y2ggbmV3ZXIgUGVudGl1bXMuCgkqIGNvbmZpZy5zdWI6IExpa2V3aXNlLgoKMjAwMS0wMy0zMCAgUGV0ZXIgQnVja2luZ2hhbSAgPHBidWNraW5naGFtQGxueHcuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBVcGRhdGUgTHlueE9TIHZlcnNpb24gbnVtYmVycy4KCjIwMDEtMDMtMzAgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnLnN1YjogTWFrZSBzdXJlIHRvIG1hdGNoIGFuIGFscmVhZHktY2Fub25pY2FsaXplZAoJbWFjaGluZSBuYW1lIChlZy4gbW4xMDMwMC11bmtub3duLWVsZikuCgoyMDAxLTAzLTE5ICBQaGlsaXAgQmx1bmRlbGwgIDxwaGlsYkBnbnUub3JnPgoKCSogY29uZmlnLnN1YjogQWxsb3cgdGljODAgYXMgbWFjaGluZSB0eXBlLiAgQWxsb3cgY29tcGFueSBuYW1lIGZvcgoJaDg1MDAgYW5kIHBqIHRhcmdldHM7IGFkZCBgdW5rbm93bicgY29tcG9uZW50IHdoZW4gY2Fub25pY2FsaXNpbmcKCWg4NTAwLSosIHBqLSogYW5kIHBqbC0qLgoKMjAwMS0wMy0xNiAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IERldGVjdCBMaW51eCBvbiBTUEFSQzY0LgoKMjAwMS0wMy0xNCAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IERldGVjdCBFTEYtYmFzZWQgbTY4ayBMaW51eCBzeXN0ZW1zLiBSZXBvcnRlZCBieQoJTWljaGFlbCBGZWRyb3dpdHogPG1pY2hhZWwuZmVkcm93aXR6QGluZm9ybWF0aWsudW5pLXVsbS5kZT4uCgoyMDAxLTAzLTA5ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBjb25maWcuc3ViOiBSZWNvZ25pemUgczM5MC9zMzkweCBhcyB2YWxpZCAkYmFzaWNfbWFjaGluZS4KCjIwMDEtMDMtMDUgIFBhdmVsIFJvc2tpbiAgPHByb3NraUBnbnUub3JnPgoKCSogY29uZmlnLmd1ZXNzOiBOZXZlciB1c2UgYHJtJyB3aXRob3V0IGAtZicgc2luY2UgaXQgbWF5IGJlCglpbnRlcmFjdGl2ZS4KCjIwMDEtMDItMjQgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBNYXRjaCBMaW51eCB4ODYgc3lzdGVtcyBleHBsaWNpdGx5LiAgQWxsb3cgdW5rbm93bgoJYXJjaGl0ZWN0dXJlcyB0byBmYWxsIHRocm91Z2ggdG8gdGhlIGRlZmF1bHQgY2FzZS4KCjIwMDEtMDItMjMgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBNb3JlIExpbnV4IGNsZWFudXAuIE1hdGNoIG1vcmUgaW4gdGhlIHRvcC1sZXZlbAoJY2FzZSBzdGF0ZW1lbnQgYW5kIGxlc3MgYnkgZ3Jva2luZyB0aGUgb3V0cHV0IG9mIGxkLgoKMjAwMS0wMi0xNiAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuc3ViOiBSZWNvZ25pc2UgW2NqdF05MC0qLiBGcm9tIEtldmluIFJ5ZGUuCgoyMDAxLTAyLTEzICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJKiBjb25maWcuZ3Vlc3MgKGlhNjQ6QUlYKTogTmV3IGNhc2UuCgkoKjpBSVgpOiBFeHBhbmQgQUlYIFY0IGNhc2UgdG8gaW5jbHVkZSBWNS4gIFJlbW92ZSB1bm5lY2Vzc2FyeSBgSCcKCW9wdGlvbiBmcm9tIGxzYXR0ci4gIENoZWNrIGZvciBzdHJpbmcgIlBPV0VSIiB3aXRoIHByZXBlbmRlZCBzcGFjZQoJdG8gZGlzdGluZ3Vpc2ggZnJvbSBQb3dlclBDX1BPV0VSMy4gIFVzZSAke1VOQU1FX1ZFUlNJT059IGluc3RlYWQKCW9mIGFzc3VtaW5nICI0IiB0byBtYXRjaCB0aGUgZXhwYW5kZWQgY2FzZS4KCjIwMDEtMDItMTMgIEtldmluIFJ5ZGUgIDx1c2VyNDJAemlwLmNvbS5hdT4KCgkqIGNvbmZpZy5zdWI6IFJlY29nbmlzZSB0OTAsIGM5MCwgajkwIHdpdGhvdXQgLWNyYXkuIFByZXNlcnZlIHQ5MAoJYW5kIGo5MC0tZG9uJ3QgdHJhbnNmb3JtIHRvIGM5MC4KCjIwMDEtMDItMTMgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBNb3JlIExpbnV4IGNsZWFudXAuCgoyMDAxLTAyLTEzICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogY29uZmlnLmd1ZXNzOiBBZGQgTGludXggdGFyZ2V0IGZvciBTLzM5MHguCgkqIGNvbmZpZy5zdWI6IExpa2V3aXNlLgoKMjAwMS0wMi0xMyAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IFJld29yayBkZXRlY3Rpb24gb2YgbWFueSBMaW51eCBwbGF0Zm9ybXMsIHdoZXJlCglkZXRlY3Rpb24gaXMgc3RyYWlnaHRmb3J3YXJkLgoKMjAwMS0wMS0zMSAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IEhhbmRsZSBocHBhNjQtbGludXggc3lzdGVtcy4gRnJvbSBBbGFuIE1vZHJhCgk8YWxhbkBsaW51eGNhcmUuY29tLmF1Pi4KCjIwMDEtMDEtMjkgIE1pY2hhZWwgU29rb2xvdiAgPG1zb2tvbG92QGl2YW4uSGFyaGFuLk9SRz4KCgkqIGNvbmZpZy5ndWVzczogU3BlY2lmaWNhbGx5IGlkZW50aWZ5IDQuM0JTRCBhbmQgNC4zQlNELVJlbm8gaW4KCXRoZSBvcmlnaW5hbCBWQVggVU5JWCBkZXRlY3Rpb24gbG9naWMgYmFzZWQgb24gdGhlIEJTRCBkZWZpbmUgaW4KCTxzeXMvcGFyYW0uaD4uCgoyMDAxLTAxLTE3ICBQYXZlbCBSb3NraW4gIDxwcm9za2lAZ251Lm9yZz4KCgkqIGNvbmZpZy5zdWI6IFJlbW92ZWQgY2FzZXMgdGhhdCBjYW5ub3QgbWF0Y2guIFZlbmRvciBjaGFuZ2VkCglmcm9tICJ1bmtub3duIiB0byAicGMiIGZvciAibWluZ3ciLCAibXNkb3MiIGFuZCAiZ28zMiIuCgoyMDAxLTAxLTE3ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogRGV0ZWN0IEhJLVVYIG9uIEhpdGFjaGkgU1I4MDAwIG1hY2hpbmVzLiBJdCBoYXMKCWJlZW4gZGlmZmljdWx0IHRvIGRpc2NvdmVyIHdoYXQgdHlwZSBvZiBDUFUgaXMgaW4gdGhpcyBtYWNoaW5lLAoJc28gd2UnbGwgcHVudCBvbiBocHBhMS4xIGZvciBub3cuCgoyMDAxLTAxLTE0ICBQYXZlbCBSb3NraW4gIDxwcm9za2lAZ251Lm9yZz4KCgkqIGNvbmZpZy5ndWVzczogRG9uJ3QgdXNlICR2ZXJzaW9uIGluIHRoZSBlcnJvciBtZXNzYWdlLiBVc2UKCSR0aW1lc3RhbXAgaW5zdGVhZC4gTWlub3IgY2hhbmdlcyBpbiB0aGUgZXJyb3IgdGV4dC4KCjIwMDEtMDEtMTIgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBEZWxldGUgJGR1bW15LnJlbCBhZnRlciBjb21waWxpbmcgdGVzdCBwcm9ncmFtcyBvbgoJUERQLTEwIHN5c3RlbXMgd2hvc2UgY29tcGlsZXJzIHByb2R1Y2UgdGhpcyBvdXRwdXQgZmlsZS4gRnJvbSBMYXJzCglCcmlua2hvZmYgPGxhcnNAbm9jcmV3Lm9yZz4uCgoJKiBjb25maWcuc3ViOiBIYW5kbGUgRU1YIG9uIE9TLzIuIEZyb20gUGF2ZWwgUm9za2luLgoKMjAwMS0wMS0xMiAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IERldGVjdCBjb21tb24ga2VybmVscyBydW5uaW5nIG9uIHZhcmlvdXMgUERQLTEwCglhcmNoaXRlY3R1cmVzLiBDb250cmlidXRlZCBieSBMYXJzIEJyaW5raG9mZiA8bGFyc0Bub2NyZXcub3JnPi4KCSogY29uZmlnLnN1YjogSGFuZGxlIFBEUC0xMC4KCjIwMDEtMDEtMTAgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBEZXRlY3QgTHlueE9TIDMueCBvbiBQb3dlclBDIGFyY2hpdGVjdHVyZXMuCgoyMDAxLTAxLTA3ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5zdWI6IFJlY29nbmlzZSBvcGVucmlzYy0qLSouCgoyMDAwLTEyLTIxICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogRGV0ZWN0IEhQLVVYIG9uIElBLTY0IGhvc3RzLiAgRnJvbSBKb25hdGhhbgoJVGhhY2tyYXkgPGpvbkB0aGFja3JheS5vcmc+LgoKMjAwMC0xMi0yMCAgUGF2ZWwgUm9za2luICA8cHJvc2tpQGdudS5vcmc+CgoJKiBjb25maWcuc3ViOiBIYW5kbGUgbWludCB3aXRoIHZlcnNpb24gbnVtYmVyIGFzIHJlY29nbml6ZWQgT1MuCglDb250cmlidXRlZCBieSBUb21hcyBCZXJuZHRzc29uIDx0b21hc0Bub2NyZXcub3JnPi4KCjIwMDAtMTItMjAgIFBhdmVsIFJvc2tpbiAgPHByb3NraUBnbnUub3JnPgoKCSogY29uZmlnLmd1ZXNzOiBEZXRlY3QgRnVqaXRzdSBmNzAwIG1hY2hpbmVzLgoJKiBjb25maWcuc3ViOiBIYW5kbGUgZjcwMCBhbmQgZjcwMC1mdWppdHN1LgoKMjAwMC0xMi0xNSAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IERldGVjdCBBSVggdmVyc2lvbiA1LiBDb250cmlidXRlZCBieQoJRGFuIE1jTmljaG9sIDxtY25pY2hvbEBhdXN0aW4uaWJtLmNvbT4uCgoJKiBjb25maWcuc3ViOiBBY2NlcHQgZjMwMSBmb3IgRnVqaXRzdSBtYWNoaW5lcy4KCVJlcG9ydGVkIGJ5IFBhdmVsIFJvc2tpbiA8cHJvc2tpQGdudS5vcmc+LgoKMjAwMC0xMi0wNyAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuc3ViOiBBZGQgbW9yZSBkZXRhaWwgdG8gdmVyc2lvbiBpbmZvcm1hdGlvbi4KCSogY29uZmlnLmd1ZXNzOiBMaWtld2lzZS4KCjIwMDAtMTItMDYgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLnN1YjogQWRkIC0tdmVyc2lvbiBvcHRpb24uCgkqIGNvbmZpZy5ndWVzczogTGlrZXdpc2UuCgoyMDAwLTEyLTAyICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogT25seSBhcHBlbmQgImVsZiIgdG8gIm5ldGJzZCIgZm9yIHBsYXRmb3JtcyB0aGF0CgloYXZlIHN3aXRjaGVkIHRvIHRoZSBFTEYgb2JqZWN0IGZpbGUgZm9ybWF0IGluIHJlY2VudCBoaXN0b3J5LgoJRnJvbSBNYXR0aGV3IEdyZWVuIDxtcmdAZXRlcm5hLmNvbS5hdT4uCgoyMDAwLTExLTI0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnLnN1YjogQWRkIHhzY2FsZSBhcyBhIHJlY29nbmlzZWQgQ1BVIG5hbWUuCgoyMDAwLTExLTIzICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCglQYXRjaGVzIGZyb20gQWtpbSBEZW1haWxsZSA8YWtpbUBlcGl0YS5mcj4uCgkqIGNvbmZpZy5zdWIgKHZlcnNpb24pOiBSZW5hbWUgZnJvbSB0aGlzIC4uCgkodGltZXN0YW1wKTogLi4gdG8gdGhpcy4KCSh1c2FnZSk6IFJlcGxhY2UgLS12ZXJzaW9uIHdpdGggLS10aW1lLXN0YW1wLiBBZGQgYWRkaXRpb25hbCBoZWxwCglhbmQgY29weWxlZnQgbm90aWNlLgoJKHRpbWUtc3RhbXAtc3RhcnQpOiBSZXBsYWNlIHdpdGggInRpbWVzdGFtcD0iLgoJKiBjb25maWcuZ3Vlc3MgKHZlcnNpb24pOiBSZW5hbWUgZnJvbSB0aGlzIC4uCgkodGltZXN0YW1wKTogLi4gdG8gdGhpcy4KCSh1c2FnZSk6IFJlcGxhY2UgLS12ZXJzaW9uIHdpdGggLS10aW1lLXN0YW1wLiBBZGQgYWRkaXRpb25hbCBoZWxwCglhbmQgY29weWxlZnQgbm90aWNlLgoJKENDX0ZPUl9CVUlMRCk6IFJld29yayB0aGlzIGxvZ2ljLgoJKHRpbWUtc3RhbXAtc3RhcnQpOiBSZXBsYWNlIHdpdGggInRpbWVzdGFtcD0iLgoKMjAwMC0xMS0yMSAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IERldGVjdCBFTVggb24gT1MvMi4gUmVwb3J0ZWQgYnkgSWx5YSBaYWtoYXJldmljaAoJPGlseWFAbWF0aC5vaGlvLXN0YXRlLmVkdT4uCgoyMDAwLTExLTE2ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogVXNlIGdldGNvbmYoMSkgb24gSFAtVVggMTEueCBzeXN0ZW1zICh3aGVuCglhdmFpbGFibGUpIHRvIGVsaW1pbmF0ZSB0aGUgbmVlZCBmb3IgY29tcGlsaW5nIGEgc21hbGwgdGVzdAoJcHJvZ3JhbS4gRnJvbSBOZWlsIFNjaGVsbGVuYmVyZ2VyIDxuc2NoZWxsZUBjcm9zc2tleXMuY29tPi4KCjIwMDAtMTEtMTUgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLnN1YjogRXhwYW5kIGBwb3dlcicgdG8gYHBvd2VyLWlibS1haXgnIGZvciBjb25zaXN0ZW5jeS4KCUZyb20gS2V2aW4gUnlkZS4KCgkqIGNvbmZpZy5ndWVzczogRGlmZmVyZW50aWF0ZSBDcmF5IFQzRCBhbmQgVDNFLiBGcm9tIEtldmluIFJ5ZGUKCTx1c2VyNDJAemlwLmNvbS5hdT4uCgoyMDAwLTExLTEwICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5zdWI6IE1hcCBwZW50aXVtcHJvIGFuZCBwZW50aXVtaWkgYWxpYXNlcyBvbnRvIGk2ODYtcGMuCglGcm9tIEtldmluIFJ5ZGUgPHVzZXI0MkB6aXAuY29tLmF1Pi4KCgkqIGNvbmZpZy5ndWVzczogU2VhcmNoIGZvciBhIHdvcmtpbmcgQyBjb21waWxlciBpZiBDQ19GT1JfQlVJTEQgaXMKCW5vdCBzcGVjaWZpZWQuIEZyb20gS2V2aW4gUnlkZS4KCgkqIGNvbmZpZy5ndWVzczogU2V0IENQVSBhcmNoaXRlY3R1cmUgdG8gImhwcGEiIGJ5IGRlZmF1bHQsIGluIGNhc2UKCXRlc3RzIGZhaWwgdG8gcHJvZHVjZSBhIHJlc3VsdC4gRnJvbSBLZXZpbiBSeWRlLgoKMjAwMC0xMS0wOCAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IERldGVjdCBzcGFyYy11bmtub3duLWxpbnV4LWdudS4gUmVwb3J0ZWQgYnkgUGV0ZXIKCVN0b3JrZXkgPHBzdG9ya2V5QHByaW1leC5jb20+LgoKMjAwMC0xMS0wMiAgUGVyIEx1bmRiZXJnICA8cGx1bmRpc0BjaGFvc2Rldi5vcmc+CgoJKiBjb25maWcuc3ViOiBBZGQgc3VwcG9ydCBmb3IgdGhlICotc3Rvcm0tY2hhb3MgT1MuCgoyMDAwLTEwLTI1ICBFZCBTYXR0ZXJ0aHdhaXRlICA8ZWhzQHNpYnl0ZS5jb20+CgoJKiBjb25maWcuc3ViOiBOZXhHZW4sIG5vdCBuZXhlbiwgaXMgdGhlIHg4NiBDUFUgY2xvbmUKCW1hbnVmYWN0dXJlci4KCjIwMDAtMTAtMjMgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBEZXRlY3QgTm9uU3RvcC1VWCBvbiBDb21wYXEgTUlQUyBtYWNoaW5lcy4KCSogY29uZmlnLnN1YjogSGFuZGxlIGFsaWFzZXMgZm9yIG1pcHMtY29tcGFxLW5vbnN0b3B1eC4KCUZyb20gVG9tIEJhdGVzIDx0b20uYmF0ZXNAY29tcGFxLmNvbT4uCgoyMDAwLTEwLTEyICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogRGV0ZWN0IEdOVS9MaW51eCBvbiBIUCBQQS1SSVNDIHN5c3RlbXMuCglGcm9tIERhdmlkIEh1Z2dpbnMtRGFpbmVzIDxkaGRAbGludXhjYXJlLmNvbT4uCgoyMDAwLTEwLTA5ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5zdWI6IFR5cG8gZml4IGZvciBzaHszLDR9IGNhc2UuCgoyMDAwLTEwLTA4ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogSGFuZGxlIDgtd2F5IE5DUiA0MzAwcyAtLSB1bmFtZSgxKSByZXR1cm5zIDM0NDZBLgoJRnJvbSBLZW4gQ29ybWFjayA8a2Nvcm1hY2tAYWNzLnJvYWR3YXkuY29tPi4KCjIwMDAtMTAtMDMgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBEbyBub3QgaG9sZCBsZCdzIG91dHB1dCBpbiBhIHNoZWxsIHZhcmlhYmxlOyBmZWVkCgl0aGUgb3V0cHV0IGRpcmVjdGx5IGludG8gdGhlIGNvbW1hbmQgcGlwbGluZSB0byBhdm9pZCBhIGxpbWl0YXRpb24KCWluIHZhcmlhYmxlIGxlbmd0aHMgaW4gYXNoKDEpLiBGcm9tIFBhdmVsIFJvc2tpbiA8cHJvc2tpQGdudS5vcmc+LgoKMjAwMC0wOS0xMSAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuc3ViOiBIYW5kbGUgbnNrKi4KCjIwMDAtMDktMTEgIFBoaWxpcCBCbHVuZGVsbCAgPHBoaWxiQGdudS5vcmc+CgoJKiBjb25maWcuc3ViOiBGaXggbWlzdGFrZSBpbiBjaGFuZ2Ugb2YgMjAwMC0wOC0wNi4KCjIwMDAtMDktMDUgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGNvbmZpZy5zdWIgKG1heWJlX29zKTogUmVjb2duaXNlIEFNRCB4ODYtNjQgYXMgeDg2XzY0LgoJKiBjb25maWcuZ3Vlc3M6IERldGVjdCB4ODZfNjQtdW5rbm93bi1saW51eC1nbnUuCgoyMDAwLTA5LTA1ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogSGFuZGxlIFRhbmRlbSBOU1ItSyBtYWNoaW5lcy4KCVJlcG9ydGVkIGJ5IEFuZHJlcyBKdW5nZSA8YWp1bmdlQGFkZXh1cy5jbD4uCgoyMDAwLTA5LTA1ICBQYXVsIFNva29sb3Zza3kgIDxQYXVsLlNva29sb3Zza3lAdGVjaG5vbG9naXN0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogRGV0ZWN0IHRoZSBQVzMyIFBPU0lYLW9uLVdpbjMyIGVudmlyb25tZW50LgoJKiBjb25maWcuc3ViOiBIYW5kbGUgcHczMiBhbGlhc2VzLgoKMjAwMC0wOC0zMSAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IENvcnJlY3RseSBkZXRlY3QgU29ueSBORVdTLU9TIDYueC4KCUZyb20gS2ltaW8gSXNoaWkgPGlzaGlpQHNtLnNvbnkuY28uanA+LgoKMjAwMC0wOC0wNiAgUGhpbGlwIEJsdW5kZWxsICA8cGhpbGJAZ251Lm9yZz4KCgkqIGNvbmZpZy5zdWI6IEFjY2VwdCBgLWNvbml4KicgYXMgYSB2YWxpZCBPUy4gIEFjY2VwdCBgYXJtdionIGFzIGEKCXZhbGlkIENQVSB3aXRob3V0IGEgY29tcGFueSBuYW1lLgoKMjAwMC0wNy0zMSAgTWFyayBLZXR0ZW5pcyAgPGtldHRlbmlzQGdudS5vcmc+CgoJKiBjb25maWcuZ3Vlc3M6IFJlc3RvcmUgZGV0ZWN0aW9uIG9mIGxpYmMgdmVyc2lvbiBmb3IgeDg2CglMaW51eC9HTlUgRUxGIHN5c3RlbXMsIGJ1dCBmYWxsIGJhY2sgb24gdGVudGF0aXZlIG5hbWUgYmFzZWQgb24gbGQKCWVtdWxhdGlvbi4gIFVzZSBpPzg2LXBjLWxpbnV4LWdudSBhcyB0ZW50YXRpdmUgbmFtZSBzaW5jZSB0aGF0J3MKCXRoZSBjYW5vbmljYWwgbmFtZS4KCjIwMDAtMDctMjcgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLnN1YjogVXNlICJ1bmtub3duIiBmb3IgdGhlIG1hbnVmYWN0dXJlciBmaWVsZCBvZiBBbWlnYQoJc3lzdGVtcywgbm90ICJjYm0iLiBDb250cmlidXRlZCBieSBSdWVkaWdlciBLdWhsbWFubgoJPHJ1ZWRpZ2VyLmt1aGxtYW5uQHN0dWQudW5pLWthcmxzcnVoZS5kZT4uCgkqIGNvbmZpZy5zdWI6IExpa2V3aXNlLgoKMjAwMC0wNy0yNCAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IERldGVjdCBQbGFuIDkuCgoyMDAwLTA3LTA2ICBBbmRyZXcgQ2FnbmV5ICA8Y2FnbmV5QGIxLmN5Z251cy5jb20+CgoJKiBjb25maWcuc3ViOiBSZWNvZ25pc2UgZDMwdiBhcyBhIHZhbGlkIGJhc2ljX21hY2hpbmUuCgoyMDAwLTA2LTI4ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5zdWI6IFJlY29nbmlzZSBNb3Rvcm9sYSA2OEhDMTEvMTIgdGFyZ2V0cy4gRnJvbSBTdGVwaGFuZQoJQ2FycmV6IDxTdGVwaGFuZS5DYXJyZXpAd29ybGRuZXQuZnI+LgoKMjAwMC0wNi0yMCAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuc3ViOiBSZWNvZ25pc2UgdGljNTR4IChUZXhhcyBJbnN0cnVtZW50cyBUTVMzMjBDNTR4KSBhbmQKCWM1NHggKElCTSBDNTRYRFNQKS4gRnJvbSBUaW0gV2FsbCA8dHdhbGxAY3lnbnVzLmNvbT4uCgoyMDAwLTA2LTEzICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogRGV0ZWN0IE1pbml4IG9uIHg4NiBtYWNoaW5lcy4KCSogY29uZmlnLnN1YjogUmVjb2duaXNlIGkyODYuIEZyb20gPG1pY2hhZWxAbW9yaWEuZGU+LgoKCSogY29uZmlnLnN1YjogUmVjb2duaXNlIHNoMyBhbmQgc2g0IGFsaWFzZXMuIEZyb20gS2F6dW1vdG8gS29qaW1hCgk8a2tvamltYUByci5paWo0dS5vci5qcD4uCgoJKiBjb25maWcuc3ViOiBQZXIgQm90aG5lciBpcyBub3QgdGhlIGF1dGhvci4KCjIwMDAtMDYtMTAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogY29uZmlnLnN1YiAob3MpOiBSZWNvZ25pemUgYXhpcyBhcyBtYW51ZmFjdHVyZXIuCgkoYmFzaWNfbWFjaGluZSk6IFJlY29nbml6ZSBjcmlzIGFuZCBldHJheCogYXMgY3Jpcy1heGlzLgoKMjAwMC0wNS0zMSAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuc3ViOiBBY2NlcHQgYXRobG9uIGFzIGFuIGk2ODYgdmFyaWFudC4gRnJvbSBQaGlsaXBwCglUaG9tYXMgPHB0aG9tYXNAc3VzZS5kZT4uCgoyMDAwLTA1LTMwICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogUmUtd29yZCBzb21lIG91dHB1dC4KCSogY29uZmlnLnN1YjogRml4IGEgc3ludGF4IGVycm9yIGludHJvZHVjZWQgYnkgeWVzdGVyZGF5J3MKCWNoYW5nZXMuIENvcnJlY3QgYSBzcGVsbGluZyBtaXN0YWtlLiBGcm9tIFN0ZXZlbiBHLiBKb2huc29uCgk8c3RldmVuakBhbHVtLm1pdC5lZHU+LgoKMjAwMC0wNS0wMiAgQWtpbSBEZW1haWxsZSAgPGFraW1AZXBpdGEuZnI+CgoJKiBjb25maWcuZ3Vlc3M6IEFkZCAtLWhlbHAgYW5kIC0tdmVyc2lvbiBvcHRpb25zLiBBZGQgRW1hY3MgaG9va3MuCgkqIGNvbmZpZy5zdWI6IExpa2V3aXNlLgoKMjAwMC0wNS0yNyAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IEhhbmRsZSBHTlUvTGludXggb24gSGl0YWNoaSBTdXBlckguIEZyb20gTmlpYmUKCVl1dGFrYSA8Z25paWJlQGNocm9vdC5vcmc+LgoKMjAwMC0wNS0xOSAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuc3ViOiBSZWNvZ25pc2UgaHBwYTY0IGFzIGEgdmFsaWQgY3B1IHR5cGUuIEZyb20gSmVmZiBMYXcuCgoyMDAwLTA1LTEwICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5zdWI6IFJlY29nbmlzZSBiczIwMDAtc2llbWVucyBhcyBhIGJhc2ljX21hY2hpbmUgdHlwZS4KCUZyb20gSmVhbi1GcmVkZXJpYyBDbGVyZSA8amZyZWRlcmljLmNsZXJlQGZ1aml0c3Uuc2llbWVucy5zZT4uCgoyMDAwLTA1LTA3ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogTWFjIE9TIFggd2lsbCBuZXZlciByZXR1cm4gIk1hYyBPUyIgYXMgYSB1bmFtZQoJdmFsdWUsIHNvIHJlbW92ZSB0aGVzZSBjYXNlcyBhbmQgcHVudCB0byB0aGUgIkRhcndpbiIgY2FzZS4KCUZyb20gV2lsZnJlZG8gU2FuY2hleiA8d3NhbmNoZXpAYXBwbGUuY29tPi4KCjIwMDAtMDQtMzAgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBIYW5kbGUgRnVqaXRzdSBVWFAvRFMuIEZyb20gRnUtQ2h1YW4gVHNhaQoJPGZjaHRzYWlAbXMyMy5oaW5ldC5uZXQ+LgoKMjAwMC0wNC0yNiAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IEhhbmRsZSBhbiBsZCBlbXVsYXRpb24gb2YgZWxmX2k/ODYuIEZyb20gQnJ1Y2UKCUtvcmIgPGJrb3JiQHNjby5jb20+LgoKMjAwMC0wNC0yMiAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IERvIG5vdCBkaWZmZXJlbnRpYXRlIEZyZWVCU0Qgc3lzdGVtcyB0aGF0IHVzZSB0aGUKCUVMRiBvYmplY3QgZmlsZSBmb3JtYXQuIEZyb20gRGF2aWQgTydCcmllbiA8b2JyaWVuQGZyZWVic2Qub3JnPi4KCjIwMDAtMDQtMjIgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBEZXRlY3QgU2llbWVucyBCUzIwMDAgbWFjaGluZXMuIEZyb20gSmVhbi1GcmVkZXJpYwoJQ2xlcmUgPGpmcmVkZXJpYy5jbGVyZUBmdWppdHN1LnNpZW1lbnMuc2U+LgoKMjAwMC0wNC0yMiAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IEZpeCBhIHN5bnRheCBlcnJvciBpbiB0aGUgREcvVVggdGVzdC4KCjIwMDAtMDQtMDYgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBEZWZpbmUgX0hQVVhfU09VUkNFIGZvciB0aGUgSFAtVVggdGVzdCBwcm9ncmFtLgoJRnJvbSBCcnVubyBIYWlibGUgPGhhaWJsZUBpbG9nLmZyPi4KCjIwMDAtMDQtMDYgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBEZXRlY3QgQXBwbGUncyBEYXJ3aW4gb3BlcmF0aW5nIHN5c3RlbS4KCSogY29uZmlnLnN1YjogSGFuZGxlIGFuIGFwcHJvcHJpYXRlIGFsaWFzLiBGcm9tIEFzc2FyIFdlc3Rlcmx1bmQuCgoyMDAwLTAzLTI3ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogRGV0ZWN0IEFzY2VuZCBFbWJlZGRlZC9PUywgd2hpY2ggaXMgcmVhbGx5IEJTREkuCglGcm9tIEFzc2FyIFdlc3Rlcmx1bmQgPGFzc2FyQHNpY3Muc2U+LgoKMjAwMC0wMy0yMCAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ3Vlc3M6IERldGVjdCB0aGUgTm9uU3RvcCBLZXJuZWwgb24gVGFuZGVtCgltYWNoaW5lcy4gU3VnZ2VzdGVkIGJ5IEtlbGx5IEYuIEhpY2tlbCA8a2ZoQG1xc29mdHdhcmUuY29tPi4KCSogY29uZmlnLnN1YjogSGFuZGxlIG5zci10YW5kZW0gYW5kIC1uc2sgYWxpYXNlcy4KCjIwMDAtMDItMjkgIFBldGVyIHZhbiBkZXIgVmVlbiAgPHBldGVydkBxbnguY29tPgoKCSogY29uZmlnLmd1ZXNzOiBBZGQgc3VwcG9ydCBmb3IgUU5YIE5ldXRyaW5vLgoJKiBjb25maWcuc3ViOiBJbXByb3ZlIHN1cHBvcnQgZm9yIFFOWCBOZXV0cmluby4KCjIwMDAtMDItMjkgIE9zc2FtYSBPdGhtYW4gIDxvc3NhbWFAZWNlLnVjaS5lZHU+CgoJKiBjb25maWcuc3ViOiBBZGQgc3VwcG9ydCBmb3IgUU5YIE5ldXRyaW5vLgoKMjAwMC0wMi0yNCAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIGNvbmZpZy5zdWI6IFN1cHBvcnQgYW4gT1Mgb2YgIndpbmNlIi4KCjIwMDAtMDItMTUgIEFuZHJldyBDYWduZXkgIDxjYWduZXlAY3lnbnVzLmNvbT4KCgkqIGNvbmZpZy5ndWVzczogUmV3cml0ZSBOZXRCU0QgY29kZS4gIFJldHVybiAqLSotbmV0YnNkZWxmKiBmb3IKCUVMRiBzeXN0ZW1zIGFuZCAqLSotbmV0YnNkKiBmb3IgYWxsIG90aGVycy4gIFByb3ZpZGUgYSBndWlkZWxpbmUKCWZvciBob3cgdG8gbWF0Y2ggYSBOZXRCU0QgdHVwbGUuCgoyMDAwLTAyLTE1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEBjeWdudXMuY29tPgoKCSogY29uZmlnLmd1ZXNzIChhbHBoYS1vc2YsIGFscGhhLWxpbnV4KTogRGV0ZWN0IGV2NjcuCgkqIGNvbmZpZy5zdWI6IEFjY2VwdCBhbHBoYWV2Nls3OF0sIGFscGhhZXY4LgoKMjAwMC0wMi0xNSAgUGhpbGlwIEJsdW5kZWxsICA8cGhpbGJAZ251Lm9yZz4KCgkqIGNvbmZpZy5ndWVzczogRGlzdGluZ3Vpc2ggYXJtLSotbGludXgtZ251b2xkbGQgZnJvbQoJYXJtKi1saW51eC1nbnUuCgoyMDAwLTAyLTE1ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5zdWI6IEhhbmRsZSBhdnIuIEZyb20gRGVuaXMgQ2hlcnR5a292IDxkZW5pc2NAb3ZlcnRhLnJ1Pi4KCgkqIGNvbmZpZy5ndWVzczogRGV0ZWN0IEdOVS9MaW51eCBvbiBJQk0gUy8zOTAgbWFjaGluZXMuCgkqIGNvbmZpZy5zdWI6IEhhbmRsZSBzMzkwLSouIEZyb20gQWRhbSBKLiBUaG9ybnRvbgoJPGFkYW1AcGhvZW5peC5wcmluY2V0b24uZWR1Pi4KCgkqIGNvbmZpZy5ndWVzczogRGV0ZWN0IE1hY09TIFggb24gUG93ZXJQQyBhbmQgb3RoZXIgbWFjaGluZXMuCglGcm9tIFN0ZXBoZW4gRy4gSm9obnNvbiA8c3RlcGhlbmpAZ2lsLWdhbGFkLm1pdC5lZHU+LgoKMjAwMC0wMi0wOCAgSm9obiBXLiBFYXRvbiAgPGp3ZUBiZXZvLmNoZS53aXNjLmVkdT4KCgkqIGNvbmZpZy5zdWI6IFJlY29nbml6ZSBzdjEtY3JheSBhcyBhIGJhc2ljX21hY2hpbmUgdHlwZS4KCjIwMDAtMDItMDcgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBSZXBsYWNlIHN1Yi1taW5vciBzeXN0ZW0gdmVyc2lvbiBudW1iZXIgd2l0aCBhbgoJYFgnIG9uIGNlcnRhaW4gQ3JheSBwbGF0Zm9ybXMuIEZyb20gS2VpdGggVGhvbXBzb24gPGtzdEBzZHNjLmVkdT4uCgoJKiBjb25maWcuc3ViOiBBZGQgc3VwcG9ydCBmb3IgbW1peCBhbmQgbW1peHdhcmUuIEZyb20gSGFucy1QZXRlcgoJTmlsc3NvbiA8aHBAYml0cmFuZ2UuY29tPi4KCjIwMDAtMDItMDYgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlnLmd1ZXNzOiBJbmNsdWRlIDxzdGRpby5oPiB3aGVuIGNvbXBpbGluZyB0ZXN0IHByb2dyYW1zCgl3aXRoIGEgQysrIGNvbXBpbGVyLiAgRnVuY3Rpb24gcHJvdG90eXBlcyBhcmUgbWFuZGF0b3J5IGluIEMrKy4KCUZyb20gT3NzYW1hIE90aG1hbiA8b3RobWFuQGNzLnd1c3RsLmVkdT4uCgoJKiBjb25maWcuZ3Vlc3M6IEZpeCBhIHJlZ3Jlc3Npb24gaW4gUG93ZXJQQyBMaW51eCBkZXRlY3Rpb24uCglGcm9tIEZyYW56IFNpcmwuCgoyMDAwLTAyLTAzICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5ndWVzczogSGFuZGxlIHZlcnNpb25zIG9mIERKR1BQJ3MgdW5hbWUoMSkgY29tbWFuZCB3aGljaAoJcmV0dXJuIHRoZSBleGFjdCBtYWNoaW5lIHR5cGUgYW5kIG5vdCBqdXN0IGBwYycuIEZyb20gTGF1cnluYXMKCUJpdmVpbmlzIDxsYXVyYXNAc29mdGhvbWUubmV0Pi4KCgkqIGNvbmZpZy5ndWVzczogSW1wb3J0IGZyb20gYXV0b2NvbmYgc291cmNlIHRyZWUuCgkqIGNvbmZpZy5zdWI6IExpa2V3aXNlLgo=