MjAwNy0wNi0yMyAgSmFtZXMgSG91c2xleSA8amltQHRoZWhvdXNsZXlzLm5ldD4KICAgICAgICAqIEViZXJoYXJkIE1hdHRlcyBzdWJtaXR0ZWQgYSBwYXRjaCAiQWNjb3JkaW5nIHRvIFJGQyA0MjUxLAogICAgICAgIGEgYm9vbGVhbiB2YWx1ZSBvZiB0cnVlIGlzIGVuY29kZWQgYXMgMSwgbm90IGFzIDB4ZmYiLiAgU2VydmVycwogICAgICAgIHNob3VsZCBhY2NlcHQgYW55IG5vbi16ZXJvIHZhbHVlLgoKMjAwNy0wNi0yMiAgSmFtZXMgSG91c2xleSA8amltQHRoZWhvdXNsZXlzLm5ldD4KCSogR3VlbnRlciBLbmF1ZiBzdWJtaXR0ZWQgY29kZSBmb3Igd2luZG93cyB0byBkZXRlY3QKCWlmIHRoZSBzb2NrZXQgaXMgYmxvY2tpbmcgb3Igbm90LgoKMjAwNy0wNi0xNSAgSmFtZXMgSG91c2xleSA8amltQHRoZWhvdXNsZXlzLm5ldD4KCSogQWRkIGxpYnNzaDJfc2Z0cF9yZWFkZGlyX2V4KCksIHRoaXMgZnVuY3Rpb24gaWYgcGFzc2VkIHRoZQoJZXh0cmEgcGFyYW1ldGVycyB3aWxsIGJlIHVzZWQgdG8gc3RvcmUgdGhlIGZ1bGwgZGlyZWN0b3J5CgllbnRyeSBhcyBwcm92aWRlZCBieSB0aGUgc2VydmVyLiAgVXBkYXRlZCBMSUJTU0gyX0FQSU5PIHRvCgkyMDA3MDYxNTEyMDAgZm9yIHRoaXMgY2hhbmdlLgoKMjAwNy0wNi0xMiAgSmFtZXMgSG91c2xleSA8amltQHRoZWhvdXNsZXlzLm5ldD4KCgkqIGxpYnNzaDJfcHVibGlja2V5X3NodXRkb3duKCksIGxpYnNzaDJfc2Vzc2lvbl9mcmVlKCkgY2hhbmdlZAoJdG8gcmV0dXJuIGFuICJpbnQiIHRvIGFsbG93IHNpZ25hbGluZyBvZiBMSUJTU0gyX0VSUk9SX0VBR0FJTi4KCgkqIGxpYnNzaDJfc2NwX3JlY3YoKSwgbGlic3NoMl9zY3Bfc2VuZF9leCgpIGFuZCBsaWJzc2gyX3NmdHBfaW5pdCgpCgl3aWxsIGxvb3AgaW4gb24gbGlic3NoMl9jaGFubmVsX2ZyZWUoKSB3aGVuIHRoZXJlIGlzIGFuIGVycm9yLgoJSXQgaXMgbm90IHBvc3NpYmxlIHRvIHJldHVybiBMSUJTU0gyX0VSUk9SX0VBR0FJTiBpbiB0aGlzIGNvbmRpdGlvbgoJaW4gdGhlc2UgMyBmdW5jdGlvbnMgYW5kIG5vdCBsb3NlIHRoZSBvcmlnaW5hbCBlcnJvciBjb2RlLgoKMjAwNy0wNi0xMCAgSmFtZXMgSG91c2xleSA8amltQHRoZWhvdXNsZXlzLm5ldD4KCgkqIFRoZSBsaXN0IG9mIHN1cHBvcnRlZCBhdXRoZW50aWNhdGlvbiB0eXBlcyByZXR1cm5lZCBieQoJbGlic3NoMl91c2VyYXV0aF9saXN0KCkgaXMgYW4gaW50ZXJuYWwgYnVmZmVyIGFuZCBpcyBtYW5hZ2VkCglieSB0aGUgbGlicmFyeSBhbmQgc2hvdWxkIG5vdCBiZSBmcmVlKCknZCBieSB0aGUgdXNlci4KCjIwMDctMDYtMDggIEphbWVzIEhvdXNsZXkgPGppbUB0aGVob3VzbGV5cy5uZXQ+CgoJKiBDb252ZXJ0IGFsbCB0aGUgY29kZSB0byBwcm9wZXJseSB3b3JrIHdpdGggYSBzb2NrZXQgaW4KCW5vbi1ibG9ja2luZyBtb2RlLiAgQWxsIGZ1bmN0aW9ucyBlaXRoZXIgcmV0dXJuIAoJTElCU1NIMl9FUlJPUl9FQUdBSU4gb3IgcmV0dXJuIE5VTEwgYW5kIHNldCB0aGUgZXJyb3IgY29kZQoJdG8gYmUgTElCU1NIMl9FUlJPUl9FQUdBSU4gaW5zdGVhZCBvZiBibG9ja2luZywgd2hlbiBpbgoJbm9uLWJsb2NraW5nIG1vZGUuCgoyMDA3LTAzLTI3ICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBORVdTOiBBZGQuCgoyMDA3LTAzLTI3ICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBORVdTOiBBZGQuCgoyMDA3LTAzLTI3ICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBORVdTOiBBZGQgLWxzb2NrZXQvLWxuc2wuICBFbmQgc2VudGVuY2VzIHdpdGggJy4nLgoKMjAwNy0wMy0yNyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogTkVXUzogQWRkLiAgU3RhcnQgc2VudGVuY2VzIHdpdGggdXBwZXJjYXNlLgoKMjAwNy0wMy0yNyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogY29uZmlndXJlLmluOiBVc2UgQUNfU0VBUkNIX0xJQlMgb24gc29ja2V0KCkgZm9yIC1sc29ja2V0LCBzbyB3ZQoJZG9uJ3QgbGluayB3aXRoIC1sc29ja2V0IHVubGVzcyBpdCBpcyBuZWNlc3NhcnkuICBSZW1vdmUKCVNITElCX0xERkxBR1MsIGl0IHdhcyBuZXZlciB1c2VkIGJ5IGFueXRoaW5nLgoKMjAwNy0wMy0yNyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogY29uZmlndXJlLmluOiBGaXggdHlwby4KCjIwMDctMDMtMjcgIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIHNyYy9zZXNzaW9uLmM6CgkobGlic3NoMl9wb2xsX2NoYW5uZWxfd3JpdGUsIGxpYnNzaDJfcG9sbF9saXN0ZW5lcl9xdWV1ZWQpOiBNYXJrIGFzCglzdGF0aWMuICBSZW1vdmUgdW5uZWVkZWQgcHJvdG90eXBlcy4gIEJyZWFrIFNvbGFyaXMgMTAgYnVpbGRzCglhY2NvcmRpbmcgdG8gIkhlaWtvIEphbnNlbiIgPGphbnNlbkBoYnotbnJ3LmRlPi4KCjIwMDctMDMtMjcgIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIHNyYy9wYWNrZXQuYzoKCShsaWJzc2gyX3BhY2tldF94MTFfb3BlbiwgbGlic3NoMl9wYWNrZXRfcXVldWVfbGlzdGVuZXIpOiBNYXJrIGFzCglzdGF0aWMgZnVuY3Rpb25zLiAgUmVtb3ZlIHVubmVjZXNzYXJ5IHByb3RvdHlwZXMuICBCcmVha3MgU29sYXJpcyAxMAoJYnVpbGRzIGFjY29yZGluZyB0byAiSGVpa28gSmFuc2VuIiA8amFuc2VuQGhiei1ucncuZGU+LgoKMjAwNy0wMy0yNyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogY29uZmlndXJlLmluOiBTZWFyY2ggLWxuc2wgZm9yIGluZXRfYWRkciwgc3VnZ2VzdGVkIGJ5ICJIZWlrbwoJSmFuc2VuIiA8amFuc2VuQGhiei1ucncuZGU+LgoKMjAwNy0wMy0yNyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogUkVBRE1FOiBGaXggdHlwbywgcmVwb3J0ZWQgYnkgIkhlaWtvIEphbnNlbiIgPGphbnNlbkBoYnotbnJ3LmRlPi4KCjIwMDctMDMtMjcgIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIE1ha2VmaWxlLmFtOiBEaXN0IGJ1aWxkY29uZiwgc3VnZ2VzdGVkIGJ5ICJIZWlrbyBKYW5zZW4iCgk8amFuc2VuQGhiei1ucncuZGU+LgoKMjAwNy0wMy0yNyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogZG9jcy9NYWtlZmlsZS5hbTogQWRkICdkaXN0XycgdG8gbWFrZSBzdXJlIG1hbiBwYWdlcyBhcmUgaW5jbHVkZWQKCWluIHRoZSByZWxlYXNlLgoKMjAwNy0wMy0yNyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogTWFrZWZpbGUuYW06IEFkZCBydWxlIHRvIGdlbmVyYXRlIENoYW5nZUxvZy4gIE5vIG5lZWQgZm9yIGZvcmVpZ24KCW9yIG5vc3RkaW5jIChjb3JyZWN0IG1lIGlmIEknbSB3cm9uZz8pLgoKMjAwNy0wMy0yNyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogQVVUSE9SUzogQWRkLgoKMjAwNy0wMy0yNyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogTElDRU5TRTogUmVtb3ZlLgoKMjAwNy0wMy0yNyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogQ09QWUlORzogQWRkLCBmcm9tIExJQ0VOU0UuCgoyMDA3LTAzLTI3ICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBSRUFETUU6IFJld3JpdGUsIGJhc2VkIG9uIElOU1RBTEwuCgoyMDA3LTAzLTI3ICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBORVdTOiBBZGQsIGZyb20gUkVBRE1FLgoKMjAwNy0wMy0xNSAgRGFuaWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5zZT4KCgkqIHNyYy9vcGVuc3NsLmM6IERhbiBGYW5kcmljaCBmaXhlZCBhbm90aGVyIG1lbW9yeSBsZWFrLCB0aGlzIHRpbWUKCWluIHRoZSBPcGVuU1NMIGludGVyZmFjZSBjb2RlOgoKCUl0J3Mgbm90IGNsZWFyIHRvIG1lIHdoZXRoZXIgYWxsIHRoZSBCTl9uZXdzIGluIF9saWJzc2gyX3JzYV9uZXcKCW5lZWQgdG8gYmUgY2xlYW5lZCB1cCwgdG9vLiAgVGhlIE9wZW5TU0wgZG9jcyBmb3IgUlNBX2ZyZWUgaW1wbGllcwoJdGhhdCB5b3UgZG9uJ3QgbmVlZCB0bywgYW5kIHZhbGdyaW5kIGRvZXNuJ3QgY29tcGxhaW4sIHNvIGl0J3MKCXByb2JhYmx5IE9LIGFzIGlzLgoKMjAwNy0wMy0xNSAgRGFuaWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5zZT4KCgkqIFJFQURNRTogZ2l2ZSBjcmVkaXQgdG8gdGhvc2Ugd2hvIG1hZGUgdGhlIGNoYW5nZXMKCjIwMDctMDMtMTUgIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CgoJKiBzcmMvcGFja2V0LmM6IGZpeGVkIGEgbWVtb3J5IGxlYWsgaW4gdGhlIHBhY2tldCBoYW5kbGluZyAoRGFuCglGYW5kcmljaCkKCjIwMDctMDMtMTQgIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CgoJKiBzcmMvY3J5cHQuYywgc3JjL29wZW5zc2wuYywgdGVzdHMvTWFrZWZpbGUuYW06IERhbiBGYW5kcmljaAoJcGF0Y2g6CgoJMSAtIGxldCBsaWJzc2gyIGNvbXBpbGUgd2l0aCBPcGVuU1NMIDAuOS42Yi4gIFRoaXMgaXMgZHVlIHRvICdjcnlwdCcKCWlzIGZvdW5kIGluIG9uZSBvZiBpdHMgaGVhZGVyIGZpbGVzIGFuZCBFVlBfTUFYX0JMT0NLX0xFTkdUSCBub3QKCWJlaW5nIGZvdW5kLgoKCTIgLSBUaGUgRVhFRVhUIHBhdGNoIGlzIGJlY2F1c2UgYXV0b21ha2UgMS43IGRvZXNuJ3Qgc3VwcG9ydCBpdCwgYW5kCglyZWNlbnQgYXV0b21ha2VzIGFkZCBpdCBhdXRvbWF0aWNhbGx5CgoyMDA3LTAyLTIzICBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPgoKCSogZXhhbXBsZS9zaW1wbGUvTWFrZWZpbGUuYW0sIGV4YW1wbGUvc2ltcGxlL3NmdHBkaXIuYzogQWRkZWQKCXNmdHBkaXIsIGEgc2FtcGxlIGRvaW5nIGFuIFNGVFAgZGlyZWN0b3J5IGxpc3RpbmcKCjIwMDctMDItMjMgIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CgoJKiBkb2NzL2xpYnNzaDJfc2Z0cF9vcGVuX2V4LjM6IG5pY2VyIGxvb2sKCjIwMDctMDItMjMgIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CgoJKiBkb2NzL01ha2VmaWxlLmFtLCBkb2NzL2xpYnNzaDJfY2hhbm5lbF9yZWFkX2V4LjMsCglkb2NzL2xpYnNzaDJfY2hhbm5lbF9yZWFkbmJfZXguMywgZG9jcy9saWJzc2gyX2NoYW5uZWxfd3JpdGVfZXguMywKCWRvY3MvbGlic3NoMl9wb2xsLjMsIGRvY3MvbGlic3NoMl9wb2xsX2NoYW5uZWxfcmVhZC4zLAoJZG9jcy9saWJzc2gyX3NmdHBfcmVhZC4zLCBkb2NzL2xpYnNzaDJfc2Z0cF9yZWFkbmIuMzogbW9yZS91cGRhdGVkCgltYW4gcGFnZXMKCjIwMDctMDItMTQgIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CgoJKiBzcmMvdHJhbnNwb3J0LmM6IEx1Y2FzIE5ld21hbiBmb3VuZCBhbmQgZml4ZWQgYSBwcm9ibGVtIHdoZXJlCglsaWJzc2gyX3BhY2tldF9yZWFkKCkgY291bGQgImxvc2UiIGJ5dGVzIHdoZW4gaXQgcmVhZCBkYXRhIGZyb20gdGhlCgluZXR3b3JrIHRoYXQgd2FzIGFuIHVuYWxpZ25lZCBudW1iZXIgb2YgYnl0ZXMgY29tcGFyZWQgdG8gdGhlCglibG9ja3NpemUuCgoyMDA3LTAyLTA4ICBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPgoKCSogZXhhbXBsZS9zaW1wbGUvc2Z0cC5jOiBhZGQgaW5jbHVkZSB0byBmaXggY29tcGlsZXIgd2FybmluZwoKMjAwNy0wMi0wOCAgRGFuaWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5zZT4KCgkqIGV4YW1wbGUvc2ltcGxlL3NmdHAuYzogR3VlbnRlciBLbmF1ZiBhZGRlZCBzdXBwb3J0IGZvciBhbm90aGVyIElQCglhbmQgSSBjaGFuZ2VkIHRoZSBvcmRlciBvZiB0aGUgYXJndW1lbnRzIGFuZCB1cGRhdGVkIHNvbWUgY29tbWVudHMuCgoyMDA3LTAyLTA4ICBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPgoKCSogbncvTWFrZWZpbGUubmV0d2FyZSwgbncvdGVzdC9NYWtlZmlsZS5uZXR3YXJlLAoJd2luMzIvTWFrZWZpbGUud2luMzIsIHdpbjMyL3Rlc3QvTWFrZWZpbGUud2luMzI6IEd1ZW50ZXIgS25hdWYncwoJTmV0d2FyZStXaW4zMiB1cGRhdGVzIGFmdGVyIG15IHJlY2VudCBjaGFuZ2VzCgoyMDA3LTAyLTA3ICBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPgoKCSogc3JjL2NoYW5uZWwuYzogcmVtb3ZlZCB1bnVzZWQgdmFyaWFibGUKCjIwMDctMDItMDcgIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CgoJKiBhY2luY2x1ZGUubTQsIGNvbmZpZ3VyZS5pbiwgc3JjL2NoYW5uZWwuYzogc2V0dGluZyBzb2NrZXRzCglub24tYmxvY2tpbmcgdXNpbmcgbW9yZSBwb3J0YWJsZSBjb2RlIGFuZCBjb25maWd1cmUgbWFjcm9zIGZyb20gdGhlCglsaWJjdXJsIHByb2plY3QgKHdyaXR0ZW4gYnkgbWUpCgoyMDA3LTAyLTA3ICBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPgoKCSogZ2V0X3Zlci5hd2ssIGluY2x1ZGUvbGlic3NoMi5oLCBudy9NYWtlZmlsZSwgbncvTWFrZWZpbGUubmV0d2FyZSwKCW53L2tlZXBzY3JlZW4uYywgbncvbndsaWJjLmMsIG53L3Rlc3QvTWFrZWZpbGUubmV0d2FyZSwKCXNyYy9saWJzc2gyX3ByaXYuaCwgc3JjL3Nlc3Npb24uYywgd2luMzIvTWFrZWZpbGUsCgl3aW4zMi9NYWtlZmlsZS53aW4zMiwgd2luMzIvbGlic3NoMl9jb25maWcuaCwKCXdpbjMyL3Rlc3QvTWFrZWZpbGUud2luMzI6IE5ldHdhcmUgYW5kIFdpbmRvd3MgZml4ZXMgYnkgR3VlbnRlcgoJS25hdWYKCjIwMDctMDItMDYgIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CgoJKiBpbmNsdWRlL2xpYnNzaDIuaDogbGV0J3MgY2FsbCB0aGUgY3VycmVudCB2ZXJzaW9uIDAuMTUtQ1ZTCgoyMDA3LTAyLTA0ICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBjb25maWd1cmUuaW4sIHNyYy9zZXNzaW9uLmM6IFJlbW92ZSB1bnVzZWQgdXNlcyBvZiAtbG0gYW5kCgltYXRoLmguCgoyMDA3LTAyLTA0ICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBSRUFETUU6IEZpeC4KCjIwMDctMDItMDIgIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CgoJKiBjb25maWd1cmUuaW4sIGV4YW1wbGUvc2ltcGxlL3NjcC5jLCBpbmNsdWRlL2xpYnNzaDIuaCwKCXNyYy9jaGFubmVsLmMsIHNyYy9rZXguYywgc3JjL2xpYnNzaDJfcHJpdi5oLCBzcmMvbWlzYy5jLAoJc3JjL3BhY2tldC5jLCBzcmMvcHVibGlja2V5LmMsIHNyYy9zY3AuYywgc3JjL3Nlc3Npb24uYywKCXNyYy9zZnRwLmMsIHNyYy90cmFuc3BvcnQuYywgc3JjL3VzZXJhdXRoLmM6IDEgLSBuZXcgcHVibGljCgkgZnVuY3Rpb24gbGlic3NoMl90cmFjZSgpIHRoYXQgZW5hYmxlcyB0cmFjaW5nL2RlYnVnIG91dHB1dCBvbgoJdmFyaW91cyBzdHVmZiBpZiBsaWJzc2gyIHdhcyBidWlsdCB3aXRoIGRlYnVnLiBJZiBidWlsdCB3aXRob3V0CgkgZGVidWcsIHRoZSBmdW5jdGlvbiBkb2VzIG5vdGhpbmcuICAyIC0gY29uZmlndXJlIC0tZW5hYmxlLWRlYnVnIGlzCglub3cgZW5vdWdoIHRvIGJ1aWxkIGEgZGVidWcgdmVyc2lvbiAoaW5jbHVkaW5nIHBpY2t5IGNvbXBpbGVyCglvcHRpb25zKSAzIC0gaW50ZXJuYWxseSwgd2Ugbm8gbG9uZ2VyIG5lZWQvdXNlICNpZmRlZi8jZW5kaWYgYXJvdW5kCglhbGwgdXNlcyBvZiB0aGUgX2xpYnNzaDJfZGVidWcoKSBmdW5jdGlvbi9tYWNyby4KCglUaGUgc2NwLmMgZXhhbXBsZSBpcyB0aGUgZmlyc3QgYXBwbGljYXRpb24gdG8gdGVzdCB0aGlzIG5ldyBkZWJ1ZwoJbG9nZ2luZy4KCjIwMDctMDItMDIgIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CgoJKiBSRUFETUU6IG5vbi1ibG9ja2luZyBhbmQgbWFuIHBhZ2VzCgoyMDA3LTAyLTAyICBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPgoKCSogTWFrZWZpbGUuYW0sIGNvbmZpZ3VyZS5pbiwgZG9jcy9NYWtlZmlsZS5hbTogSW5jbHVkZSBtYW4gcGFnZXMgaW4KCWRpc3RybyB0YXJiYWxsIGFuZCBtYWtlIGluc3RhbGwuIE5vdGUgdGhhdCB0aGlzIGlzIHN0aWxsIChieSBmYXIpIGFuCglpbmNvbXBsZXRlIHNldCBvZiBtYW4gcGFnZXMuCgoyMDA3LTAyLTAyICBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPgoKCSogc3JjL01ha2VmaWxlLmFtOiBidW1wIHRoZSB2ZXJzaW9uLWluZm8gZHVlIHRvIHRoZSBjaGFuZ2VzIGluIHRoZQoJQVBJIHdlJ3JlIHdvcmtpbmcgb24gYW5kIGR1ZSB0byB0aGUgZmFjdCB0aGF0IHRoZXJlJ3MgcmVsZWFzZSBvZiB0aGUKCXByZXZpb3VzIENWUy1zdGF0ZSBzaGlwcGVkIGluIERlYmlhbiAoYW5kIHBvc3NpYmx5IG90aGVycyBkaXN0cm9zKS4KCjIwMDctMDItMDIgIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CgoJKiBNYWtlZmlsZS5hbSwgY29uZmlndXJlLmluLCBzc2gyX3NhbXBsZS5jLCBleGFtcGxlL01ha2VmaWxlLmFtLAoJZXhhbXBsZS9zaW1wbGUvTWFrZWZpbGUuYW0sIGV4YW1wbGUvc2ltcGxlL3NjcF9ub25ibG9jay5jLAoJZXhhbXBsZS9zaW1wbGUvc2Z0cC5jLCBleGFtcGxlL3NpbXBsZS9zZnRwX25vbmJsb2NrLmMsCglpbmNsdWRlL2xpYnNzaDIuaCwgaW5jbHVkZS9saWJzc2gyX3NmdHAuaCwgc3JjL01ha2VmaWxlLmFtLAoJc3JjL2NoYW5uZWwuYywgc3JjL2NyeXB0LmMsIHNyYy9rZXguYywgc3JjL2xpYnNzaDJfcHJpdi5oLAoJc3JjL21pc2MuYywgc3JjL3BhY2tldC5jLCBzcmMvcHVibGlja2V5LmMsIHNyYy9zY3AuYywKCXNyYy9zZXNzaW9uLmMsIHNyYy9zZnRwLmMsIHNyYy90cmFuc3BvcnQuYzogQWRkaW5nIHNyYy90cmFuc3BvcnQuYwoJZm9yIHRoZSBTRUNTSCB0cmFuc3BvcnQgbGF5ZXIgcmVhZC93cml0ZSBpbiBhIG5vbi0gYmxvY2tpbmcgd2F5LiBUaGUKCWNoYW5uZWwgY29kZSBpcyBub3cgcmVzcG9uc2libGUgZm9yIGVuYWJsaW5nL2Rpc2FibGluZyBibG9ja2luZwoJc3RhdHVzIGFuZCB0byB3b3JrIHdpdGggaXQuCgoJSSd2ZSBhbHNvIG1vZGlmaWVkIGluZGVudGluZyBhbmQgZml4ZWQgY29tcGlsZXIgd2FybmluZ3MgYXQgcGxhY2VzLAoJYW5kIGFkZGVkIGEgYnVuY2ggb2YgbmV3IGV4YW1wbGVzIGluIGV4YW1wbGUvc2ltcGxlIHRoYXQgSSd2ZSB1c2VkCgl0byB2ZXJpZnkgdGhhdCB0aGUgY29kZSBzdGlsbCBydW5zIGxpa2UgYmVmb3JlLgoKCWxpYnNzaDJfY2hhbm5lbF97cmVhZHx3cml0ZX1uYl9leCgpIGFuZAoJbGlic3NoMl9zZnRwX3tyZWFkfHdyaXRlfW5iKCkgYXJlIHRoZSBmb3VyIG5ldyBmdW5jdGlvbnMgdGhhdAoJc3VwcG9zZWRseSB3b3JrIG5vbi1ibG9ja2luZy4KCjIwMDctMDItMDIgIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CgoJKiBkb2NzL2xpYnNzaDJfY2hhbm5lbF9yZWFkX2V4LjM6IG5vbi1ibG9ja2luZyBzdHVmZiByZW1vdmVkLCBzZWUKCSpyZWFkbmJfZXgoKQoKMjAwNy0wMi0wMiAgRGFuaWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5zZT4KCgkqIGRvY3MvbGlic3NoMl9jaGFubmVsX3JlYWRfZXguMywgZG9jcy9saWJzc2gyX2NoYW5uZWxfcmVhZG5iX2V4LjMsCglkb2NzL2xpYnNzaDJfc2Z0cF9pbml0LjMsIGRvY3MvbGlic3NoMl9zZnRwX29wZW5fZXguMywKCWRvY3MvdGVtcGxhdGUuMzogbW9yZSBkb2NzLCBpbmNsdWRpbmcgYSB0ZW1wbGF0ZS4zIGZvciBuZXcgbWFuCglwYWdlcwoKMjAwNy0wMi0wMiAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogUkVBRE1FOiBMaWJnY3J5cHQgc3R1ZmYgd29ya3MuCgoyMDA3LTAyLTAyICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBzcmMvbGliZ2NyeXB0LmM6IE1pbmQgeW91ciBwJ3MgYW5kIHEncyEgIFJTQSBhdXRoZW50aWNhdGlvbiBub3cKCXdvcmtzLgoKMjAwNy0wMi0wMSAgRGFuaWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5zZT4KCgkqIGV4YW1wbGUvc2ltcGxlL3NjcC5jOiBDaHJpcyBOeXN0cm9tIGhlbHBlZCBtZSByZWFsaXplIEkgbXVzdAoJY291bnQgdGhlIHJlY2VpdmVkIGJ5dGVzIG15c2VsZiB0byBrbm93IHdoZW4gdGhlIHRyYW5zZmVyIGlzCgljb21wbGV0ZQoKMjAwNy0wMS0zMCAgRGFuaWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5zZT4KCgkqIGV4YW1wbGUvc2ltcGxlL3NjcC5jOiBvb3BzLCBpdCBzaG91bGRuJ3QgYmUgbm9uLWJsb2NraW5nIHdoZW4KCWRvaW5nIGJsb2NraW5nIHRyYW5zZmVycy4uLgoKMjAwNy0wMS0zMCAgRGFuaWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5zZT4KCgkqIGV4YW1wbGUvc2ltcGxlL3NjcC5jOiBzaW1wbGUgKGJsb2NraW5nKSBTQ1AgdHJhbnNmZXIKCjIwMDctMDEtMjQgIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CgoJKiBleGFtcGxlL3NpbXBsZS9zZnRwLmMsIGV4YW1wbGUvc2ltcGxlL3NzaDIuYzogdHdvIHNpbXBsZSBzYW1wbGVzCgoyMDA3LTAxLTIzICBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPgoKCSogc3JjL2xpYnNzaDJfcHJpdi5oLCBzcmMvbWFjLmMsIHNyYy9vcGVuc3NsLmMsIHNyYy9wZW0uYzogZml4Cgljb21waWxlciB3YXJuaW5ncwoKMjAwNy0wMS0yMyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogc3JjL2xpYmdjcnlwdC5jOiBGaXggUlNBIHByaXZhdGUga2V5IHJlYWRpbmcgKHN0aWxsIG5vdCB3b3JraW5nKS4KCjIwMDctMDEtMjMgIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIHNyYy9saWJnY3J5cHQuYzogRml4IHdhcm5pbmdzLgoKMjAwNy0wMS0yMyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogc3JjL2xpYmdjcnlwdC5oOiBGaXggd2FybmluZ3MuCgoyMDA3LTAxLTIzICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBzcmMvY3J5cHQuYywgc3JjL2hvc3RrZXkuYywgc3JjL2xpYmdjcnlwdC5jLCBzcmMvbGliZ2NyeXB0LmgsCglzcmMvbGlic3NoMl9wcml2LmgsIHNyYy9vcGVuc3NsLmMsIHNyYy9vcGVuc3NsLmg6IEZpeCB3YXJuaW5ncy4KCjIwMDctMDEtMjMgIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIHNyYy9ob3N0a2V5LmM6IEZpeCB3YXJuaW5ncy4KCjIwMDctMDEtMjMgIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIHNyYy9saWJnY3J5cHQuYzogRml4IG1lbSBsZWFrLgoKMjAwNy0wMS0yMyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogc3JjL3BlbS5jOiBGaXggbWVtIGxlYWsuCgoyMDA3LTAxLTIzICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBzcmMvb3BlbnNzbC5oLCBzcmMvcGVtLmMsIHNyYy9wdWJsaWNrZXkuYzogRml4IHdhcm5pbmdzLgoKMjAwNy0wMS0yMyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogc3JjL29wZW5zc2wuaDogTmVlZCBtb3JlICNpbmNsdWRlJ3MuCgoyMDA3LTAxLTIzICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBzcmMvcGVtLmMsIHNyYy9vcGVuc3NsLmM6IEZpeCB3YXJuaW5ncy4KCjIwMDctMDEtMjMgIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIHNyYy9rZXguYzogUmVtb3ZlIE9wZW5TU0wgI2luY2x1ZGUuCgoyMDA3LTAxLTIzICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBzcmMvbGliZ2NyeXB0LmM6IEZpeCBtZW0gbGVhay4KCjIwMDctMDEtMjMgIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIGNvbmZpZ3VyZS5pbjogSWYgLS13aXRoLWxpYmdjcnlwdCBpcyBzcGVjaWZpZWQsIGRvbid0IGNoZWNrIGZvcgoJT3BlblNTTC4KCjIwMDctMDEtMjMgIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIHNyYy9rZXguYywgc3JjL2xpYmdjcnlwdC5oLCBzcmMvb3BlbnNzbC5oOiBBYnN0cmFjdCBiaWdudW0gQVBJLgoKMjAwNy0wMS0yMyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogc3JjL2hvc3RrZXkuYywgc3JjL2xpYmdjcnlwdC5jLCBzcmMvbGliZ2NyeXB0LmgsIHNyYy9vcGVuc3NsLmMsCglzcmMvb3BlbnNzbC5oOiBBYnN0cmFjdCBSU0EvRFNBIHByaXZhdGUga2V5IGZpbGUgcmVhZGluZyBhbmQKCVJTQS9EU0Egc2lnbmluZywgYW5kIGltcGxlbWVudCB0aGVtIGluIG9wZW5zc2wvbGliZ2NyeXB0IGxheWVyLgoKMjAwNy0wMS0yMyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogc3JjL2xpYnNzaDJfcHJpdi5oOiBBZGQgcHJvdG90eXBlcyBmb3IgcGVtLmMgZnVuY3Rpb25zLgoKMjAwNy0wMS0yMyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogc3JjL01ha2VmaWxlLmFtOiBBZGQgcGVtLmMuCgoyMDA3LTAxLTIzICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBzcmMvcGVtLmM6IEFkZC4gIEZ1bmN0aW9ucyBmb3IgcmVhZGluZyBQRU0gZmlsZXMgYW5kIGRlY29kaW5nCglBU04uMS4KCjIwMDctMDEtMjIgIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CgoJKiBzcmMvbGlic3NoMl9wcml2Lmg6IHBsZWFzZSBwaWNreSBjb21waWxlcgoKMjAwNy0wMS0yMiAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogc3JjL2hvc3RrZXkuYywgc3JjL2xpYnNzaDJfcHJpdi5oOiBSZW1vdmUgbm9uLWlvdmVjIGJhc2VkIFJTQS9EU0EKCXNpZ25pbmcgKG5vdCB1c2VkLCBhbmQgRFNBIGNvZGUgZXZlbiBidWdneSkuCgoyMDA3LTAxLTE5ICBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPgoKCSogc3JjL29wZW5zc2wuYzogZml4IHdhcm5pbmcgZm9yIG1lbWNweSgpCgoyMDA3LTAxLTE4ICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBzcmMvbGliZ2NyeXB0LmM6IEluZGVudC4gIEZpeCBtZW0gbGVhayBvbiBlcnJvcnMuCgoyMDA3LTAxLTE4ICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBzcmMvY3J5cHQuYzogUmVtb3ZlIG9wZW5zc2wgI2luY2x1ZGUuICBQcm90ZWN0IHVzZSBvZiAzREVTLgoJUmVvcmRlciBkZWZpbml0aW9ucyB0byBtYXRjaCBwcmVmZXJlbmNlIG9yZGVyLgoKMjAwNy0wMS0xOCAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogc3JjL2NyeXB0LmM6IFJlbW92ZSBkZWJ1ZyBjb2RlLgoKMjAwNy0wMS0xOCAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogc3JjL2NyeXB0LmM6IFVzZSBuZXcgZ2VuZXJpYyBjcnlwdG8gQVBJcy4KCjIwMDctMDEtMTggIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIHNyYy9rZXguYzogQWxpZ24gd2l0aCBuZXcgX0xJQlNTSDJfQ1JZUFRfTUVUSE9EIEFQSSwgZm9yCglsaWJnY3J5cHQgc3VwcG9ydC4KCjIwMDctMDEtMTggIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIHNyYy9saWJzc2gyX3ByaXYuaDogRml4IF9MSUJTU0gyX0NSWVBUX01FVEhPRCBmb3IgbGliZ2NyeXB0CglzdXBwb3J0LgoKMjAwNy0wMS0xOCAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogc3JjL2xpYmdjcnlwdC5jLCBzcmMvbGliZ2NyeXB0LmgsIHNyYy9vcGVuc3NsLmMsIHNyYy9vcGVuc3NsLmg6CglJbXBsZW1lbnQgbmV3IF9saWJzc2gyX2NpcGhlcl8qIEFQSS4KCjIwMDctMDEtMTggIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIHNyYy9ob3N0a2V5LmMsIHNyYy9saWJnY3J5cHQuYywgc3JjL2xpYmdjcnlwdC5oLCBzcmMvb3BlbnNzbC5jLAoJc3JjL29wZW5zc2wuaDogU3VwcG9ydCBEU0EgdmVyaWZpY2F0aW9ucy4KCjIwMDctMDEtMTggIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIHNyYy9ob3N0a2V5LmM6IENoZWNrIHJldHVybiB2YWx1ZS4gIEZpeCBTSEExX0ZpbmFsLgoKMjAwNy0wMS0xNyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogc3JjL29wZW5zc2wuaDogRml4IDNERVMgY2hlY2suCgoyMDA3LTAxLTE3ICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBzcmMvaG9zdGtleS5jOiBVc2UgbGlic3NoMl9zaGExIGluc3RlYWQgb2YgU0hBMS4KCjIwMDctMDEtMTcgIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIHNyYy9ob3N0a2V5LmM6IEZpeCBsYXN0IGNvbW1pdC4KCjIwMDctMDEtMTcgIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIHNyYy9ob3N0a2V5LmM6IFVzZSBsaWJzc2gyXyogd3JhcHBlcnMgZm9yIFNIQS0xLgoKMjAwNy0wMS0xNyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogc3JjL2NyeXB0LmMsIHNyYy9ob3N0a2V5LmMsIHNyYy9saWJnY3J5cHQuaCwgc3JjL21hYy5jLAoJc3JjL29wZW5zc2wuaDogVXNlIExJQlNTSDJfKiBpbnN0ZWFkIG9mIE9QRU5TU0xfTk9fKiAoc2hvdWxkCgl1bHRpbWF0ZWx5IGJlIHBvc3NpYmxlIHRvIGNob3NlIGJ5IC4vY29uZmlndXJlPykuCgoyMDA3LTAxLTE3ICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBzcmMvaG9zdGtleS5jLCBzcmMva2V4LmMsIHNyYy9saWJnY3J5cHQuaCwgc3JjL2xpYnNzaDJfcHJpdi5oLAoJc3JjL29wZW5zc2wuaDogVXNlIExJQlNTSDJfKiBpbnN0ZWFkIG9mIE9QRU5TU0xfTk9fKiAoc2hvdWxkCgl1bHRpbWF0ZWx5IGJlIHBvc3NpYmxlIHRvIGNob3NlIGJ5IC4vY29uZmlndXJlPykuCgoyMDA3LTAxLTE3ICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBzcmMvb3BlbnNzbC5oOiBVbmNvbmRpdGlvbmFsbHkgdXNlIFNIQS0xLgoKMjAwNy0wMS0xNiAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogc3JjL29wZW5zc2wuYywgc3JjL2xpYmdjcnlwdC5jOiBBZGQuCgoyMDA3LTAxLTE2ICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBSRUFETUU6IEFkZC4KCjIwMDctMDEtMTYgIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIHNyYy9ob3N0a2V5LmMsIHNyYy9saWJnY3J5cHQuaCwgc3JjL29wZW5zc2wuaDogQmVnaW4gdG8gYWJzdHJhY3QKCVJTQSBvcGVyYXRpb25zLgoKMjAwNy0wMS0xNiAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogc3JjL01ha2VmaWxlLmFtOiBBbHNvIGJ1aWxkIG9wZW5zc2wuYyBvciBsaWJnY3J5cHQuYy4KCjIwMDctMDEtMTYgIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIGNvbmZpZ3VyZS5pbjogRGVmaW5lIGFuIGF1dG9tYWtlIGNvbmRpdGlvbmFsIGlmZiBsaWJnY3J5cHQgaXMKCXVzZWQuCgoyMDA3LTAxLTE1ICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBzcmMvTWFrZWZpbGUuYW0sIHNyYy9jaGFubmVsLmMsIHNyYy9rZXguYywgc3JjL2xpYmdjcnlwdC5oLAoJc3JjL2xpYnNzaDJfcHJpdi5oLCBzcmMvbWFjLmMsIHNyYy9vcGVuc3NsLmgsIHNyYy9wYWNrZXQuYywKCXNyYy9zZXNzaW9uLmMsIHNyYy91c2VyYXV0aC5jOiBVc2UgZ2VuZXJpYyBBUElzIGZvciAoSE1BQy0pTUQ1L1NIQTEKCWFuZCBSTkcsIGFuZCBpbXBsZW1lbnQgdGhlbSB2aWEgT3BlblNTTC9saWJnY3J5cHQuCgoyMDA3LTAxLTE1ICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBtNC9saWJnY3J5cHQubTQ6IEFkZCwgZm9yIGxpYmdjcnlwdC4KCjIwMDctMDEtMTUgIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIGNvbmZpZ3VyZS5pbjogTG9vayBmb3IgbGliZ2NyeXB0IGlmIC0td2l0aC1saWJnY3J5cHQgaXMgZ2l2ZW4gdG8KCS4vY29uZmlndXJlLiAgTm90ZSB0aGF0IHVudGlsIHRoZSBsaWJnY3J5cHQgd29yayBpcyBjb21wbGV0ZSwKCWxpYnNzaDIgYWxzbyBsaW5rIHRvIE9wZW5TU0wuCgoyMDA3LTAxLTEwICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBzcmMvaG9zdGtleS5jLCBzcmMva2V4LmMsIHNyYy9saWJzc2gyX3ByaXYuaDogUmVtb3ZlIHVuZmluaXNoZWQKCU9QRU5TU0xfTk9fU0hBIGlmZGVmIHN0dWZmLCBzaW5jZSBTSEEtMSBpcyByZXF1aXJlZCBmb3IgbGlic3NoMiB0bwoJd29yay4KCjIwMDctMDEtMDkgIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuYW0sIHRlc3RzL01ha2VmaWxlLmFtLCB0ZXN0cy9zaW1wbGUuYzogQWRkCgliYXNpYyBzZWxmIHRlc3QuCgoyMDA3LTAxLTAzICBNaWtoYWlsIEd1c2Fyb3YgPGRvdHRlZG1hZ0Bkb3R0ZWRtYWcubmV0PgoKCSogYnVpbGRjb25mOiAtLWNvcHkgYWRkZWQgdG8gYXV0b21ha2UgLS1hZGQtbWlzc2luZyB0byBhdm9pZAoJc3ltbGlua3MgaW4gYm9vdHN0cmFwcGVkIENWUyBzbmFwc2hvdCB0YXJiYWxscwoKMjAwNy0wMS0wMiAgTWlraGFpbCBHdXNhcm92IDxkb3R0ZWRtYWdAZG90dGVkbWFnLm5ldD4KCgkqIGRvY3MvbGlic3NoMl9jaGFubmVsX3JlYWRfZXguMywgZG9jcy9saWJzc2gyX3Nlc3Npb25fc3RhcnR1cC4zOgoJTWludXMgc2lnbiBlc2NhcGVkIHRvIG5vdCBiZSB0cmVhdGVkIGFzIGVtZGFzaCBpbiBtYW4gcGFnZXMuCgoyMDA2LTEyLTIxICBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPgoKCSogc3JjL2tleC5jOiBmaXggY29tcGlsZXIgd2FybmluZ3MKCjIwMDYtMTItMjEgIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CgoJKiBzcmMvY29tcC5jOiBmaXggY29tcGlsZXIgd2FybmluZ3MgKGFuZCBzb21lIGluZGVudCBjaGFuZ2VzKQoKMjAwNi0xMi0yMSAgRGFuaWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5zZT4KCgkqIHNyYy9taXNjLmMsIHNyYy9tYWMuYzogZml4IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDA2LTEyLTIxICBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPgoKCSogc3JjL2hvc3RrZXkuYzogZml4IGNvbXBpbGVyIHdhcm5pbmdzLCBtaW5vciByZS1pbmRlbnRpbmcKCjIwMDYtMTItMjEgIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CgoJKiBkb2NzL2xpYnNzaDJfY2hhbm5lbF9mb3J3YXJkX2FjY2VwdC4zLAoJZG9jcy9saWJzc2gyX2NoYW5uZWxfZm9yd2FyZF9saXN0ZW5fZXguMywKCWRvY3MvbGlic3NoMl9jaGFubmVsX3JlYWRfZXguMywKCWRvY3MvbGlic3NoMl9jaGFubmVsX3NldF9ibG9ja2luZy4zLCBkb2NzL2xpYnNzaDJfc2Vzc2lvbl9mcmVlLjMsCglkb2NzL2xpYnNzaDJfc2Vzc2lvbl9pbml0LjMsIGRvY3MvbGlic3NoMl9zZXNzaW9uX3N0YXJ0dXAuMzogQWRkZWQKCWFuIGluaXRpYWwgc2V0IG9mIG1hbiBwYWdlcy4KCjIwMDYtMTItMjEgIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CgoJKiBzc2gyX3NhbXBsZS5jOiBmaXggd2FybmluZ3MgYW5kIGFsbG93IHBhc3NpbmcgdXNlciBuYW1lIGFuZAoJcGFzc3dvcmQgb24gdGhlIGNvbW1hbmQgbGluZQoKMjAwNi0xMi0xMyAgRGFuaWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5zZT4KCgkqIGFjaW5jbHVkZS5tNCwgY29uZmlndXJlLmluOiBBZGRlZCB0aGUgY29uZmlndXJlIG9wdGlvbgoJLS1lbmFibGUtZGVidWctYnVpbGQgd2hpY2ggbm90IG9ubHkgZW5hYmxlcyBhIGRlYnVnIGJ1aWxkICh1c2luZyAtZwoJYW5kIGRpc2FibGluZyBhbGwgLU8gb3B0aW9ucyksIGJ1dCBhbHNvIHNldHMgYSB3aG9sZSByYW5nZSBvZgoJcGlja3kvc3RyaWN0IGNvbXBpbGVyIG9wdGlvbnMgZGVwZW5kaW5nIG9uIHdoYXQgY29tcGlsZXIgYW5kIHZlcnNpb24KCXRoYXQgaXMgdXNlZC4gVGhpcyBmdW5jdGlvbiBpcyByaXBwZWQgcmlnaHQgb2ZmIHRoZSBjdXJsIGNvbmZpZ3VyZQoJc2NyaXB0LCB3cml0dGVuIGJ5IHlvdXJzIHRydWx5LiBJIGxlZnQgaXQgdXNpbmcgdGhlIHNhbWUgbmFtZSBhcyBpbgoJdGhlIGN1cmwgc2NyaXB0IHRvIDEpIG1ha2UgaXQgb2J2aW91cyB3aGVyZSBpdCBjb21lcyBmcm9tLCBzbyB0aGF0CgkyKSBpdCB3aWxsIGJlIGVhc2llciB0byB1cGRhdGUgYW5kIGtlZXAgaXQgaW4gc3luYyB3aXRoIGZ1dHVyZQoJbW9kaWZpY2F0aW9ucy4KCglOb3csIHRoaXMgc2hvd3MgTUFBQUFBQUFBQU5ZIHdhcm5pbmdzLi4uCgoyMDA2LTEyLTEzICBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPgoKCSogc3JjL3Nlc3Npb24uYzogUmVtb3ZlZCB1c2Ugb2YgY2VpbCgpIHNpbmNlIHRoYXQgaXMgYSBtYXRoIGxpYgoJZnVuY3Rpb24gYW5kIGdldHRpbmcgdGhlIGV4YWN0IGFjY3VyYWN5IG9mIHRoZSBtaWNyb3NlY29uZCB0bwoJbWlsbGlzZWNvbmQgY29udmVyc2lvbiBzaW1wbHkgY2Fubm90IGJlIHRoYXQgaW1wb3J0YW50LiBXZSBkb24ndAoJZXZlbiBleHBsaWNpdGx5IGxpbmsgd2l0aCAtbG0uLi4KCjIwMDYtMTItMDkgIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIHNyYy9wYWNrZXQuYywgc3JjL3Nlc3Npb24uYzogRml4IGluZGVudGF0aW9uLgoKMjAwNi0xMi0wOSAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogc3JjL2NyeXB0LmMsIHNyYy9rZXguYzogRml4IGluZGVudGF0aW9uLgoKMjAwNi0xMi0wNyAgU2ltb24gSm9zZWZzc29uIDxzaW1vbkBqb3NlZnNzb24ub3JnPgoKCSogYnVpbGRjb25mOiBBZGQuCgoyMDA2LTEyLTA3ICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CgoJKiBNYWtlZmlsZS5hbSwgY29uZmlndXJlLmluLCBtNC9hdXRvYnVpbGQubTQ6IEFkZCBhdXRvYnVpbGQubTQsIHRvCgltYWtlIGl0IGVhc2llciB0byB1c2UgaHR0cDovL2F1dG9idWlsZC5qb3NlZnNzb24ub3JnLy4KCjIwMDYtMTItMDcgIFNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9zZWZzc29uLm9yZz4KCgkqIHNyYy9jcnlwdC5jLCBzcmMva2V4LmMsIHNyYy9saWJzc2gyX3ByaXYuaCwgc3JjL3BhY2tldC5jLAoJc3JjL3Nlc3Npb24uYzogTW92ZSBzeW1tZXRyaWMgT3BlblNTTCBFVlAgY3J5cHRvIGNhbGxzIHRvIGNyeXB0LmMuCgoyMDA2LTExLTI3ICBNaWtoYWlsIEd1c2Fyb3YgPGRvdHRlZG1hZ0Bkb3R0ZWRtYWcubmV0PgoKCSogc3JjL3BhY2tldC5jOiBJbXByb3ZlIGRldGVjdGlvbiBvZiBjbG9zZWQgY2hhbm5lbC4gRWxlbWluYXRlcwoJbG9jay11cHMgb24gbXVsdGktY2hhbm5lbCBvcGVyYXRpb24uCgoyMDA2LTExLTI3ICBNaWtoYWlsIEd1c2Fyb3YgPGRvdHRlZG1hZ0Bkb3R0ZWRtYWcubmV0PgoKCSogc3JjL3BhY2tldC5jOiBSZWFkaW5nIGJpZ2dlciBibG9ja3MgZnJvbSBuZXR3b3JrIGJlZm9yZQoJZGVjcnlwdGlvbi4gIFNpZ25pZmljYW50bHkgaW5jcmVhc2VzIHBlcmZvcm1hbmNlLgoKMjAwNi0xMS0yNyAgTWlraGFpbCBHdXNhcm92IDxkb3R0ZWRtYWdAZG90dGVkbWFnLm5ldD4KCgkqIHNyYy9wYWNrZXQuYzogd3JpdGUoMikgbWF5IHdyaXRlIG9ubHkgcGFydCBvZiBwYXNzZWQgZGF0YSB1bmRlcgoJRnJlZUJTRC4gIE1ha2Ugc3VyZSB3aG9sZSBidWZmZXIgaXMgd3JpdHRlbi4KCjIwMDYtMTEtMjQgIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CgoJKiBSRUFETUU6IG1lbnRpb24gYSBmZXcgcmVjZW50IGNoYW5nZXMKCjIwMDYtMTEtMjAgIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CgoJKiBzcmMvTWFrZWZpbGUuYW06IEFkZCBidWlsZGRpci9zcmMgdG8gdGhlIGluY2x1ZGUgcGF0aCwgZm9yIHRoZQoJZ2VuZXJhdGVkIGNvbmZpZyBoZWFkZXIgd2hlbiBidWlsZGluZyBvdXQgb2YgdGhlIHNvdXJjZSB0cmVlLgoKMjAwNi0xMS0yMCAgRGFuaWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5zZT4KCgkqIE1ha2VmaWxlLmFtOiBzc2gyX3NhbXBsZSBub3cgZ2V0cyB0aGUgcmlnaHQgaW5jbHVkZSBwYXRoIHRvIHRoZQoJY3VycmVudCBpbmNsdWRlIGRpcmVjdG9yeQoKMjAwNi0xMS0yMCAgRGFuaWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5zZT4KCgkqIGNvbmZpZ3VyZS5pbiwgc3JjL2xpYnNzaDJfcHJpdi5oOiBjaGVjayBmb3IgaW5saW5lIGluIGNvbmZpZ3VyZQoKMjAwNi0xMS0yMCAgRGFuaWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5zZT4KCgkqIE1ha2VmaWxlLmFtLCBNYWtlZmlsZS5pbiwgYnVpbGRjb25mLCBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsCgljb25maWd1cmUuaW4sIHNyYy9NYWtlZmlsZS5hbSwgc3JjL01ha2VmaWxlLmluLAoJc3JjL2xpYnNzaDJfY29uZmlnLmguaW46IFN0YXJ0aW5nIG5vdywgd2UgdXNlIGF1dG9tYWtlIGFuZCBsaWJ0b29sCglmb3IgdGhlIGJ1aWxkLgoKMjAwNi0xMS0yMCAgRGFuaWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5zZT4KCgkqIE1ha2VmaWxlLmluLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbGlic3NoMl9jb25maWcuaC5pbiwKCWluY2x1ZGUvbGlic3NoMl9wcml2LmgsIHNyYy9saWJzc2gyX2NvbmZpZy5oLmluLAoJc3JjL2xpYnNzaDJfcHJpdi5oOiBNb3ZlZCB0aGUgcHJpdmF0ZSBpbmNsdWRlIGZpbGVzIGxpYnNzaDJfcHJpdi5oCglhbmQgbGlic3NoMl9jb25maWcuaC5pbiBmcm9tIGluY2x1ZGUvIGludG8gdGhlIHNyYy8gZGlyZWN0b3J5LiBUaGUKCWluY2x1ZGUvIGRpciBpcyBub3cgc3RyaWN0bHkgZm9yIHB1YmxpYyBoZWFkZXJzLgoKCUFsc28sIEkgcmVtb3ZlZCB0aGUgc3BlY2lhbCB3aW4zMiBzb3VyY2UgcGFja2FnZSBjcmVhdGlvbiB0YXJnZXQgaW4KCXRoZSBtYWtlZmlsZSBhbmQgSSBtb2RpZmllZCB0aGUgY29udGFjdCBlbWFpbCBhZGRyZXNzIGluCgljb25maWd1cmUuaW4gdG8gcG9pbnQgb3V0IHRoZSBsaWJzc2gyLWRldmVsIGxpc3QuCgoyMDA2LTExLTE5ICBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPgoKCSogc3JjL3B1YmxpY2tleS5jOiBraWxsIGNvbXBpbGVyIHdhcm5pbmdzCgoyMDA2LTExLTE5ICBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPgoKCSogc3JjL01ha2VmaWxlLmluOiB1bnRpbCB3ZSBhdXRvbWFrZSwgbGV0ICdtYWtlJyBidWlsZCBhbGwgYnkKCWRlZmF1bHQKCjIwMDYtMTEtMTkgIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CgoJKiBzcmMvY2hhbm5lbC5jOiBraWxsIHdhcm5pbmdzCgoyMDA2LTExLTE3ICBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPgoKCSogY29uZmlndXJlLmluOiBVc2UgcGtnLWNvbmZpZyAtLWNmbGFncy1vbmx5LUkgd2hlbiBnZXR0aW5nIHRoZQoJaW5jbHVkZSBmaWxlcyBuZWNlc3NhcnkgdG8gYnVpbGQgd2l0aCBPcGVuU1NMLiBQcmV2aW91cyBhcHByb2FjaAoJY2F1c2VkIGEgYmFkIGNvbXBpbGVyIG9wdGlvbiBnZXQgc2V0LgoKMjAwNi0xMS0xNCAgIEphbWVzIEhvdXNsZXkKCgkqIHNyYy9wYWNrZXQuYzogUGF0Y2ggZnJvbSBEYW5pZWwgU3RlbmJlcmcKCgkxIC0gI2luY2x1ZGUgPGludHR5cGVzLmg+IGFuZCB1c2VzIHVpbnQzMl90ICh0aGlzIGlzIG5vdCB2ZXJ5CgkgICAgcG9ydGFibGUgYW5kIG5lZWQgYXR0ZW50aW9uIGFzIEkgbWVudGlvbmVkIGluIG15IHNlcGFyYXRlIG1haWwpCgoJMiAtIGNoYW5nZXMgbGlic3NoMl9ibG9ja2luZ19yZWFkKCkgdG8gcmV0dXJuIHNzaXplX3QgYW5kIGFsbCBjb2RlCgkgICAgdGhhdCB1c2VzIHRoaXMgZnVuY3Rpb24gZXhwbGljaXRseSBjaGVja3MgaXRzIHJldHVybiBjb2RlIChiZXR0ZXIpLgoKCTMgLSBJIGZpeGVkIGEgYnVuY2ggb2YgY29tcGlsZXIgd2FybmluZ3Mgd2hlcmUgZnVuY3Rpb25zIGdvdCBjYWxsZWQKCSAgICB3aXRoIHVuc2lnbmVkIGNoYXIgKiB3aGVuIHRoZXkgZXhwZWN0IGNoYXIgKi4gSSBzdHJvbmdseSBzdWdnZXN0IHdlCgkgICAgcGF0Y2ggYXdheSBhbGwgd2FybmluZ3MgLSBub3cuCgoyMDA2LTExLTEzICAgSmFtZXMgSG91c2xleQoKCSogaW5jbHVkZS9saWJzc2gyX3NmdHAuaDogUmVwcm9kdWNlIG1vc3Qgb2YgdGhlIFBPU0lYCglwZXJtaXNzaW9uL2ZpbGUgdHlwZSBkZWZpbmVzIGZyb20gc3lzL3N0YXQuaCBzbyB0aGF0IGlmIGNvbXBpbGVkCgl3aXRoIGEgbm9uLVBPU0lYIGNvbXBpbGVyIHRoZXNlIGFyZSBzdGlsbCBhdmFpbGFibGUgZm9yIGNsaWVudAoJc29mdHdhcmUuCgoyMDA2LTExLTEzICAgSmFtZXMgSG91c2xleQoKCSogc3JjL3VzZXJhdXRoLmM6IEFzIHBvaW50ZWQgb3V0LCBmZW9mKCkgd2lsbCBhbHdheXMgZmFpbCBhZnRlciBhCglyZXdpbmQKCjIwMDYtMTEtMTMgICBKYW1lcyBIb3VzbGV5CgoJKiBzcmMvdXNlcmF1dGguYzogQnVnOiBbIDE1OTI2NDUgXSBQdWJsaWMga2V5IGNhbiBub3QgYmUgcmVhZGVkCglmcm9tIGZpbGUKCglXaGlsZSBwb3N0aW5nIGEgcHVibGljIGtleSBmaWxlIHRvIGEgcmVtb3RlIHNlcnZlciB2aWEgY3V0LW4tcGFzdGUKCWl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGtleSB3b24ndCBoYXZlIHRoZSBwcm9wZXIgZW5kaW5nLiAgSXQgbWlnaHQKCW5vdCBoYXZlIHRoZSBzdGFuZGFyZCBjYXJyaWFnZSByZXR1cm4gb3IgbGluZSBmZWVkLiAgSXQgbWlnaHQgZXZlbgoJaGF2ZSBleHRyYSBzcGFjZXMuICBUaGlzIHBhdGNoIGlzIGJhc2VkIG9uIHRoZSBvcmlnaW5hdG9ycyBvcmlnaW5hbAoJcGF0Y2gsIGJ1dCBpcyBtb3JlIGV4dGVuc2l2ZS4gIElmIHJlYWRpbmcgdGhlIGZpbGUgZW5kcyBpbiBFT0YsCglyZW1vdmUgdGhhdCBjaGFyYWN0ZXIuICBUaGVuIGlmIHRoZXJlIGFyZSBzcGFjZXMgYXQgdGhlIGVuZCBvZiB0aGUKCWZpbGUgcmVtb3ZlIHRoZW0gYWxzby4KCglUaGlzIGRvZXMgbm90IGZpeCB0aGUgcG9zaWJpbGl0eSBvZiB0aGUgc2FtZSBlcnJvciBpbiBhIG11bHRpLWtleQoJZmlsZSwgYnV0IGl0IGlzIGEgc3RhcnQuCgoyMDA2LTExLTEwICAgSmFtZXMgSG91c2xleQoKCSogc3JjL3BhY2tldC5jOiAvKiBSRkM0MjUzIHNlY3Rpb24gNi4xIE1heGltdW0gUGFja2V0IExlbmd0aCBzYXlzOgoJICoKCSAqICJBbGwgaW1wbGVtZW50YXRpb25zIE1VU1QgYmUgYWJsZSB0byBwcm9jZXNzIHBhY2tldHMgd2l0aAoJICogdW5jb21wcmVzc2VkIHBheWxvYWQgbGVuZ3RoIG9mIDMyNzY4IGJ5dGVzIG9yIGxlc3MgYW5kCgkgKiB0b3RhbCBwYWNrZXQgc2l6ZSBvZiAzNTAwMCBieXRlcyBvciBsZXNzIChpbmNsdWRpbmcgbGVuZ3RoLAoJICogcGFkZGluZyBsZW5ndGgsIHBheWxvYWQsIHBhZGRpbmcsIGFuZCBNQUMuKS4iCgkgKi8gUHJvdGVjdCBhZ2FpbnN0IGFuIGltcHJvcGVyIHBhY2tldCBmcm9tIHByb2R1Y2luZyB1bnJlYXNvbmFibGUKCXZhbHVlcy4gIENyZWRpdCBnb2VzIHRvIERhbmllbCBTdGVuYmVyZwoKMjAwNi0xMS0xMCAgIEphbWVzIEhvdXNsZXkKCgkqIHNyYy9zZnRwLmM6IGxpYnNzaDJfc2Z0cF9yZWFkZGlyKCkgd2Fzbid0IG51bGwgdGVybWluYXRpbmcgdGhlCglmaWxlbmFtZS4gIElmIHRoZXJlIGlzIGVub3VnaCByb29tIGluIHRoZSBidWZmZXIsIGFsbCBhIG51bGwgdG8gdGhlCgllbmQuCgoyMDA2LTExLTA0ICAgSmFtZXMgSG91c2xleQoKCSogaW5jbHVkZS9saWJzc2gyLmgsIGluY2x1ZGUvbGlic3NoMl9zZnRwLmgsIHNyYy9jaGFubmVsLmMsCglzcmMvbWlzYy5jLCBzcmMvc2Z0cC5jLCBzcmMvdXNlcmF1dGguYzogVGhlIHB1YmxpYyAqX2V4KCkgQVBJCglmdW5jdGlvbnMsIG1vc3Qgb2YgdGhlbSwgdXNlZCAiaW50IiBmb3IgbGVuZ3RoIHZhbHVlcy4gIFRoZQoJY29udmllbmNlIGZ1bmN0aW9ucyBwYXNzIGluIHRoZSByZXR1cm4gZnJvbSBzdHJsZW4oKSB3aGljaCBpcwoJInNpemVfdCIsIHVzdWFsbHkgYW4gInVuc2lnbmVkIGxvbmciLiAgVGhpcyBjcmVhdGVkIHRoZSBwb3NzaWJsaWxpdHkKCW9mIHBhc3NpbmcgaW4gYSB2YWx1ZSB0aGF0IGNvdWxkIGxvb2sgbmVnYXRpdmUuCgoJQWxsICJpbnQiIGxlbmd0aHMgd2VyZSBjb252ZXJ0ZWQgdG8gInVuc2lnbmVkIGludCIuICBJZGVhbGx5IHRoZXkKCXNob3VsZCBhbGwgYmVjb21lICJzaXplX3QiLCBidXQgdGhhdCBpcyBhIGJpZ2dlciBjaGFuZ2UuICBUaGlzIGlzIGEKCWdvb2Qgc3RhcnQuCgoyMDA2LTA2LTIyICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBjb25maWd1cmUuaW4sIGluY2x1ZGUvbGlic3NoMi5oOiBCdW1wIGZvciByZWxlYXNlCgoyMDA2LTA2LTIyICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBSRUFETUUsIGluY2x1ZGUvbGlic3NoMl9wcml2LmgsIHNyYy9rZXguYywgc3JjL3BhY2tldC5jOiBEb24ndAoJd2FpdCBmb3IgS0VYX0lOSVQgcHJpb3IgdG8gc2VuZGluZyBvdXIgb3duIHBhY2tldC4gIFdhdGNoIG91dCBmb3IKCWJhZCBLRVhfSU5JVCBndWVzc2VzIGFuZCBidXJuIHBhY2tldHMgaWYgbmVjZXNzYXJ5LgoKMjAwNi0wNS0yNiAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogUkVBRE1FLCBjb25maWd1cmUuaW4sIHNyYy9wYWNrZXQuYzogU3dhcCBvcmRlcmluZyBvZgoJcGFja2V0X2FkZC9wYWNrZXQtaW5zcGVjdGlvbiB0byBhdm9pZCBpbnNwZWN0IGFmdGVyIGZyZWUuICBGaXgKCU9wZW5TU0wgZGV0ZWN0aW9uIHVzaW5nIHBrZy1jb25maWcuCgoyMDA2LTA0LTE3ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBzcmMvcGFja2V0LmMsIHNyYy9zZXNzaW9uLmM6IE1hcCBXaW4zMiBlcnJubyB2YWx1ZXMKCjIwMDYtMDQtMDcgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIE1ha2VmaWxlLmluLCBzcmMvTWFrZWZpbGUuaW46IGF1dG9jb25mIGFscmVhZHkgaGFuZGxlcyAtZyBmb3IgdXMKCjIwMDYtMDQtMDYgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIFJFQURNRSwgc3JjL2tleC5jLCBzcmMvc2Vzc2lvbi5jOiBQbHVnIGxlYWtzIGNhdXNlZCBieSBub3QgdXNpbmcKCU9wZW5TU0wncyBFVlAgaW50ZXJmYWNlIGNvcnJlY3RseQoKMjAwNi0wNC0wNSAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogc3JjL3Nlc3Npb24uYzogTWFwIHdpbjMyIGVycm9yIGNvZGVzCgoyMDA2LTAzLTA4ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBSRUFETUUsIHNyYy9zZXNzaW9uLmM6IEFsbG93IHNvY2tldF9mZCA9PSAwIGluCglsaWJzc2gyX3Nlc3Npb25fc3RhcnR1cCgpCgoyMDA2LTAzLTAyICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBMSUNFTlNFLCBpbmNsdWRlL2xpYnNzaDIuaCwgaW5jbHVkZS9saWJzc2gyX3ByaXYuaCwKCWluY2x1ZGUvbGlic3NoMl9wdWJsaWNrZXkuaCwgaW5jbHVkZS9saWJzc2gyX3NmdHAuaCwgc3JjL2NoYW5uZWwuYywKCXNyYy9jb21wLmMsIHNyYy9jcnlwdC5jLCBzcmMvaG9zdGtleS5jLCBzcmMva2V4LmMsIHNyYy9tYWMuYywKCXNyYy9taXNjLmMsIHNyYy9wYWNrZXQuYywgc3JjL3B1YmxpY2tleS5jLCBzcmMvc2NwLmMsCglzcmMvc2Vzc2lvbi5jLCBzcmMvc2Z0cC5jLCBzcmMvdXNlcmF1dGguYzogQnVtcCBjb3B5cmlnaHQgeWVhcgoKMjAwNi0wMy0wMiAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogaW5jbHVkZS9saWJzc2gyLmgsIGNvbmZpZ3VyZS5pbjogQnVtcCB2ZXJzaW9uIG51bWJlcgoKMjAwNi0wMi0yMyAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogTWFrZWZpbGUuaW4sIFJFQURNRSwgY29uZmlndXJlLmluLCBpbmNsdWRlL2xpYnNzaDJfcHJpdi5oLAoJc3JjL01ha2VmaWxlLmluOiBCdWdGaXgjMTQzNjU5MzogQXBwbHkgYnVpbGQgb3B0aW9ucyBmb3IgSFBVWAoJdGFyZ2V0cwoKMjAwNi0wMi0yMCAgTWlraGFpbCBHdXNhcm92IDxkb3R0ZWRtYWdAZG90dGVkbWFnLm5ldD4KCgkqIHNyYy9wYWNrZXQuYzogRml4ZWQgZXJyb3JuZW91cyBmbHVzaGluZyBwYWNrZXRzIGZvciB1bnJlbGF0ZWQKCWNoYW5uZWxzIHdoZW4gb25lIGlzIGNsb3NlZCAodGhhbmtzIHRvIEFsZXhhbmRlciBIb2x5YXBpbikKCjIwMDYtMDEtMDYgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIE1ha2VmaWxlLmluLCBSRUFETUU6IEZpeCAgIG1ha2UgaW5zdGFsbCAgb24gTWFjT1NYCgoyMDA1LTExLTE3ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBSRUFETUUsIHNyYy9zZnRwLmM6IEFkZCB0ZXJtaW5hdGluZyBOVUxMIHRvIHJlYWRsaW4vcmVhbHBhdGgKCXJlc3VsdHMKCjIwMDUtMTEtMDIgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIFJFQURNRSwgc3JjL2NoYW5uZWwuYywgc3JjL3BhY2tldC5jOiBGaXggbWlzY2VsbGFuZW91cyBidWdzIGluCglzcmMvY2hhbm5lbC5jIGFuZCBzcmMvcGFja2V0LmMgQ291cnRlc3N5IERhdmlkIFJvYmlucwoKMjAwNS0xMS0wMSAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogUkVBRE1FLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbGlic3NoMi5oOiBQcmVwIGZvciByZWxlYXNlCgoyMDA1LTEwLTA0ICBNaWtoYWlsIEd1c2Fyb3YgPGRvdHRlZG1hZ0Bkb3R0ZWRtYWcubmV0PgoKCSogaW5jbHVkZS9saWJzc2gyX3NmdHAuaDogQWRkZWQgbWlzc2luZyAnI2lmZGVmIF9fY3BsdXNwbHVzIGV4dGVybgoJIkMiIHt9JyBzdGFuemEKCjIwMDUtMDgtMjUgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIGluY2x1ZGUvbGlic3NoMl9wcml2Lmg6IEV4cGxpY2l0bHkgaW5jbHVkZSBzaGEuaCBhbmQgbWQ1LmggZnJvbQoJb3BlbnNzbAoKMjAwNS0wOC0xMCAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogUkVBRE1FLCBzcmMvY2hhbm5lbC5jOiBGaXggeDExX3JlcS4gIE11bHRpcGxlIHBhY2tldF9sZW4gaXNzdWVzCglhbmQgZXJyb3IgaGFuZGxpbmcgbG9naWMuIChTaW1vbiBIYXJ0KQoKMjAwNS0wNy0yMSAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogTWFrZWZpbGUuaW4sIFJFQURNRSwgY29uZmlndXJlLmluLCBpbmNsdWRlL2xpYnNzaDIuaCwKCWluY2x1ZGUvbGlic3NoMl9jb25maWcuaC5pbiwgaW5jbHVkZS9saWJzc2gyX3ByaXYuaCwKCWluY2x1ZGUvbGlic3NoMl9wdWJsaWNrZXkuaCwgc3JjL01ha2VmaWxlLmluLCBzcmMvbWlzYy5jLAoJc3JjL3B1YmxpY2tleS5jOiBBZGQgcHVibGlja2V5IHN1YnN5c3RlbSBzdXBwb3J0CgoyMDA1LTA3LTExICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBzcmMva2V4LmMsIFJFQURNRTogRml4IGdlbmVyYXRpb24gb2YgJ2UnIHBvcnRpb24gb2YKCURpZmZpZS1IZWxsbWFuIGtleXNldC4KCjIwMDUtMDctMDYgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIFJFQURNRSwgc3JjL3NmdHAuYzogRml4IHJlbmFtZSBvcCAtLSBUYWtlIDIKCjIwMDUtMDctMDYgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIHNyYy9zZnRwLmM6IENvcnJlY3QgYW5jaWVudCB0eXBvcyBpbiBlcnJvciBtZXNzYWdlcwoKMjAwNS0wNy0wNSAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogY29uZmlndXJlLmluLCBpbmNsdWRlL2xpYnNzaDIuaDogYnVtcCBmb3IgcmVsZWFzZSAtLSAwLjExCgoyMDA1LTA3LTA1ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBSRUFETUU6IEJGTgoKMjAwNS0wNi0yNCAgTWlraGFpbCBHdXNhcm92IDxkb3R0ZWRtYWdAZG90dGVkbWFnLm5ldD4KCgkqIHNyYy9zZXNzaW9uLmMsIGluY2x1ZGUvbGlic3NoMi5oOiBsaWJzc2gyX3BvbGxfY2hhbm5lbF9yZWFkIG1hZGUKCWV4dGVybmFsCgoyMDA1LTA2LTI0ICBNaWtoYWlsIEd1c2Fyb3YgPGRvdHRlZG1hZ0Bkb3R0ZWRtYWcubmV0PgoKCSogc3JjL3BhY2tldC5jOiBEZWJ1ZyBvdXRwdXQgc2xpZ2h0bHkgZml4ZWQKCjIwMDUtMDYtMjQgIE1pa2hhaWwgR3VzYXJvdiA8ZG90dGVkbWFnQGRvdHRlZG1hZy5uZXQ+CgoJKiBzcmMvY2hhbm5lbC5jLCBpbmNsdWRlL2xpYnNzaDIuaDogQWRkZWQKCWxpYnNzaDJfY2hhbm5lbF93YWl0X2Nsb3NlKCkKCjIwMDUtMDYtMjMgIE1pa2hhaWwgR3VzYXJvdiA8ZG90dGVkbWFnQGRvdHRlZG1hZy5uZXQ+CgoJKiBzcmMvcGFja2V0LmM6IE1lbW9yeSBsZWFrIGxpcXVpZGF0ZWQgLSBmcmVlIHRoZQoJU1NIX01TR19DSEFOTkVMX1JFUVVFU1QgcGFja2V0IGRhdGEgYWZ0ZXIgcHJvY2Vzc2luZyAnZXhpdC1zdGF0dXMnCgltZXNzYWdlCgoyMDA1LTA2LTIzICBNaWtoYWlsIEd1c2Fyb3YgPGRvdHRlZG1hZ0Bkb3R0ZWRtYWcubmV0PgoKCSogc3JjL2NoYW5uZWwuYywgc3JjL3BhY2tldC5jLCBpbmNsdWRlL2xpYnNzaDIuaCwKCWluY2x1ZGUvbGlic3NoMl9wcml2Lmg6ICdleGl0LXN0YXR1cycgaW5mb3JtYXRpb24gcGFja2V0IGhhbmRsaW5nCglhZGRlZAoKMjAwNS0wNi0yMCAgTWlraGFpbCBHdXNhcm92IDxkb3R0ZWRtYWdAZG90dGVkbWFnLm5ldD4KCgkqIGluY2x1ZGUvbGlic3NoMi5oOiBBZGRlZCBleHRlcm4gIkMiIGRlY2xhcmF0aW9uIGZvciBDKysKCWNvbXBhdGliaWxpdHkKCjIwMDUtMDYtMTggIE1pa2hhaWwgR3VzYXJvdiA8ZG90dGVkbWFnQGRvdHRlZG1hZy5uZXQ+CgoJKiBzcmMvdXNlcmF1dGguYzogRml4ZWQga2V5Ym9hcmQtaW50ZXJhY3RpdmUgYXV0aGVudGljYXRpb24sIGRlYnVnCglvdXRwdXQgYWRkZWQKCjIwMDUtMDYtMTggIE1pa2hhaWwgR3VzYXJvdiA8ZG90dGVkbWFnQGRvdHRlZG1hZy5uZXQ+CgoJKiBzcmMvdXNlcmF1dGguYywgaW5jbHVkZS9saWJzc2gyLmg6IGxpYnNzaDJfdXNlcmF1dGhfbGlzdCBzaG91bGQKCXJldHVybiBjaGFyKiwgbm90IHRoZSBjb25zdCBjaGFyKgoKMjAwNS0wNi0xOCAgTWlraGFpbCBHdXNhcm92IDxkb3R0ZWRtYWdAZG90dGVkbWFnLm5ldD4KCgkqIHNyYy9jaGFubmVsLmMsIHNyYy9ob3N0a2V5LmMsIHNyYy9rZXguYywgc3JjL3NjcC5jLAoJc3JjL3Nlc3Npb24uYywgc3JjL3VzZXJhdXRoLmMsIHNzaDJfc2FtcGxlLmMsIGluY2x1ZGUvbGlic3NoMi5oLAoJaW5jbHVkZS9saWJzc2gyX3ByaXYuaDogU3RyaWN0ZW5pbmcgZnVuY3Rpb24gcHJvdG90eXBlczogY2hhciogLT4KCWNvbnN0IGNoYXIqIHdoZXJlIGFwcGxpY2FibGUKCjIwMDUtMDYtMTcgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIFJFQURNRSwgc3JjL3NmdHAuYzogRG9uJ3Qgc2VuZCBmbGFncyBmb3IgcmVuYW1lIG9wIGlmIHRoZSBzZnRwCgl2ZXJzaW9uIGlzIHRvbyBsb3cKCjIwMDUtMDYtMTYgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIGluY2x1ZGUvbGlic3NoMi5oLCBzcmMvdXNlcmF1dGguYzogQWRkIGFic3RyYWN0IHBvaW50ZXIgdG8KCWtleWJvYXJkLWludGVyYWN0aXZlIGNhbGxiYWNrCgoyMDA1LTA2LTExICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBpbmNsdWRlL2xpYnNzaDIuaCwgaW5jbHVkZS9saWJzc2gyX3ByaXYuaCwgUkVBRE1FLAoJc3JjL3VzZXJhdXRoLmM6IEFkZCBrZXlib2FyZCBpbnRlcmFjdGl2ZSBhdXRoZW50aWNhdGlvbi4KCUltcGxlbWVudGF0aW9uIGNvbnRyaWJ1dGVkIGJ5IE1pa2hhaWwgR3VzYXJvdi4KCjIwMDUtMDUtMjQgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIGNvbmZpZ3VyZS5pbjogTGF0ZSBjb21taXQgLS0gVGhpcyBpcyBmb3IgcmVsZWFzZSAwLjEwCgoyMDA1LTA1LTE4ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBzcmMvY2hhbm5lbC5jLCBzcmMvcGFja2V0LmM6IERyb3AgdGhlc2Ugb2xkIHJlZmVyZW5jZXMgdG8gaW5pdGlhbAoJd2luZG93IHNpemUsIHRoZXkgd2VyZSBhIG1pc3Rha2UKCjIwMDUtMDUtMTggIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIFJFQURNRTogQkZOCgoyMDA1LTA1LTE4ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBpbmNsdWRlL2xpYnNzaDIuaCwgaW5jbHVkZS9saWJzc2gyX3ByaXYuaCwgc3JjL2NoYW5uZWwuYywKCXNyYy9wYWNrZXQuYzogU2F2ZSB1cCBtdWx0aXBsZSBzbWFsbCByZWZ1bmRzIGluIG9yZGVyIHRvIGN1dCBkb3duCglvbiB1bm5lY2Vzc2FyeSBXSU5ET1dfQURKVVNUIHBhY2tldHMKCjIwMDUtMDUtMTcgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIHNyYy9zZnRwLmM6IFR5cG86ICBBTFdBWVMgVEVTVCBGSVJTVAoKMjAwNS0wNS0xNyAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogUkVBRE1FLCBzcmMvc2Z0cC5jOiBGaXggc2Z0cCBwYWNrZXQgcXVldWVpbmcgbWVjaGFuaXNtCgoyMDA1LTA1LTE2ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBzcmMvc2Z0cC5jLCBSRUFETUU6IFJlZHVjZSBidXN5LWxvb3Bpbmcgb2YKCWxpYnNzaDJfc2Z0cF9wYWNrZXRfcmVxdWlyZXYoKQoKMjAwNS0wNS0xNiAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogUkVBRE1FLCBzcmMva2V4LmM6IEZpeCBzZWdmYXVsdCB3aGVuIGNsaWVudC9ob3N0IGNhbid0IGFncmVlIG9uCglob3N0a2V5L2NyeXB0L21hYy9jb21wCgoyMDA1LTA1LTExICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBzcmMvcGFja2V0LmM6IEZpeCBmb3JtYXQgc3BlY2lmaWVycwoKMjAwNS0wNS0xMSAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogc3JjL21pc2MuYzogV2hvb3BzCgoyMDA1LTA1LTExICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBSRUFETUUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9saWJzc2gyX2NvbmZpZy5oLmluLAoJaW5jbHVkZS9saWJzc2gyX3ByaXYuaCwgc3JjL2NoYW5uZWwuYywgc3JjL2tleC5jLCBzcmMvbWlzYy5jLAoJc3JjL3BhY2tldC5jLCBzcmMvc2NwLmMsIHNyYy9zZXNzaW9uLmMsIHNyYy9zZnRwLmMsIHNyYy91c2VyYXV0aC5jOgoJQWRkIGRlYnVnZ2luZyBob29rcyBmb3IgZGV2ZWxvcG1lbnQgZGlhZ25vc3RpY3MKCjIwMDUtMDUtMTAgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIFJFQURNRSwgc3JjL3NmdHAuYzogSWdub3JlIGV4dGVuZGVkIGRhdGEgaW4gdGhlIFNGVFAgbGF5ZXIuCgoyMDA1LTA1LTEwICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBSRUFETUUsIHNyYy9zZnRwLmM6IE9uZSBsYXN0IChiZXR0ZXIgYmUgbGFzdCkgZml4IGZvciBGWFBfSU5JVAoKMjAwNS0wNS0wNiAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogUkVBRE1FLCBzcmMvY2hhbm5lbC5jOiBNb3JlIGZpeGVzIGZvciBjaGFubmVsX3dyaXRlKCkKCjIwMDUtMDUtMDUgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9saWJzc2gyLmg6IEJ1bXAgZm9yIHJlbGVhc2UKCjIwMDUtMDUtMDUgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIFJFQURNRSwgY29uZmlndXJlLmluOiBDaGVjayBmb3IgYW5kIGxpbmsgYWdhaW5zdCBsaWJtIGFuZAoJbGlic29ja2V0CgoyMDA1LTA1LTA0ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBzcmMvY2hhbm5lbC5jLCBSRUFETUU6IEJsb2NrIG1lYW5zIGJsb2NrCgoyMDA1LTA1LTA0ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBSRUFETUUsIHNyYy9wYWNrZXQuYzogTWFrZSBibG9ja2luZ19yZWFkJ3MgcG9sbGluZyBsb29wIGxlc3MKCWFyYml0cmFyeQoKMjAwNS0wNS0wNCAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogc3JjL3NmdHAuYzogUHV0IGZpbGV0eXBlIGludG8gb3Blbi9kaXJvcGVuL21rZGlyIGF0dHJpYnV0ZXMKCjIwMDUtMDUtMDQgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIHNyYy9zZnRwLmM6IEZpeCBjb25zdGFudCBmcm9tIGxhc3QgcGF0Y2gKCjIwMDUtMDUtMDMgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIFJFQURNRTogTGF0ZSBCRk4KCjIwMDUtMDUtMDMgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIHNyYy9zZnRwLmM6IEZYUF9JTklUIHBhY2tldCBzaG91bGQgbm90IGhhdmUgaGFkIGEgcmVxdWVzdF9pZAoJY29tcG9uZW50IGFuZCBzZnRwX3BhY2tldF9yZXF1aXJlIHNob3VsZG4ndCBleHBlY3QgRlhQX1ZFUlNJT04gdG8KCWhhdmUgb25lIHdoZW4gY29taW5nIGJhY2suICBUaGFua3MgcHV1ZGVsaSEKCjIwMDUtMDQtMDcgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIFJFQURNRSwgc3JjL3NmdHAuYzogRml4ZWQgU0ZUUCB0byBiZSBwcm9wZXJseSBCQyB3aXRoIHZlcnNpb24gMQoJYW5kIDIgc2VydmVycwoKMjAwNS0wNC0wNSAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogc3JjL3BhY2tldC5jOiBCbG9jayBtZWFucyBibG9jay4KCjIwMDUtMDQtMDIgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIHNyYy9wYWNrZXQuYzogYnJlYWs7IGZhbGx0aHJvdWdocyBpbiB3aW4zMiBjb2RlCgoyMDA1LTA0LTAxICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBzcmMvY2hhbm5lbC5jLCBzcmMvdXNlcmF1dGguYzogUGhhc2UgSUkgb2YgcGFja2V0IGxvb3AgbWlncmF0aW9uOgoJQ2xlYW4gY29kZSBpcyBnb29kIGNvZGUKCjIwMDUtMDQtMDEgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIHNyYy9wYWNrZXQuYzogQW5vdGhlciB0eXBvCgoyMDA1LTA0LTAxICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBpbmNsdWRlL2xpYnNzaDJfcHJpdi5oOiB0eXBvCgoyMDA1LTA0LTAxICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBzcmMvcGFja2V0LmMsIGluY2x1ZGUvbGlic3NoMl9wcml2Lmg6IFBoYXNlIDEgb2YgdGhlIEdyZWF0CglUaW1lb3V0IENsZWFudXAKCjIwMDUtMDMtMjggIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIHNyYy9wYWNrZXQuYzogTml4IHVudXNlZCB2YXJpYWJsZQoKMjAwNS0wMy0yOCAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogUkVBRE1FLCBpbmNsdWRlL2xpYnNzaDIuaCwgc3JjL2NoYW5uZWwuYzogQWRkCglsaWJzc2gyX2NoYW5uZWxfd2luZG93XyhyZWFkfHdyaXRlKV9leCgpCgoyMDA1LTAzLTI2ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBzcmMvcGFja2V0LmM6IE5peCB0aGUgbWVtc2V0IGxvb3AgU3BlYWtpbmcgb2Ygd2hpY2g6IFdoeSB3YXNuJ3QKCWl0IEpVU1QgYSBtZW1zZXQoKSBjYWxsPwoKCVRoZSBlbmNyeXB0ZWQgdmVyc2lvbiBvZiBwYWNrZXRfd3JpdGUgZmlsbHMgaW4gdGhpcyBkYXRhIHdpdGgKCU9wZW5TU0wgUkFORF9ieXRlcygpIGRhdGEsIGFuZCBhcyBmYXIgYXMgdGhlIHVuZW5jcnlwdGVkIHZlcnNpb24KCWdvZXM/IFdlbGwsIGl0J3MgdW5lbmNyeXB0ZWQsIHJhbmRvbW5lc3MgZG9lc24ndCBoZWxwIGF0IHRoYXQgcG9pbnQuCgoyMDA1LTAzLTI2ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBSRUFETUUsIGluY2x1ZGUvbGlic3NoMi5oLCBzcmMvc2Vzc2lvbi5jOiBEb24ndCBsZXQgYSBkZWFkCglzZXNzaW9uIGxlYXZlIHBvbGwoKSBoYW5naW5nCgoyMDA1LTAzLTIzICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBjb25maWd1cmUuaW4sIGluY2x1ZGUvbGlic3NoMi5oOiBCdW1wIGZvciByZWxlYXNlCgoyMDA1LTAzLTIzICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBSRUFETUUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9saWJzc2gyLmgsCglpbmNsdWRlL2xpYnNzaDJfY29uZmlnLmguaW4sIHNyYy9zZXNzaW9uLmM6IEFkZCBsaWJzc2gyX3BvbGwoKQoKMjAwNS0wMy0yMSAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogUkVBRE1FLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbGlic3NoMl9jb25maWcuaC5pbiwgc3JjL2hvc3RrZXkuYywKCXNyYy9wYWNrZXQuYywgc3JjL3NjcC5jLCBzcmMvdXNlcmF1dGguYzogQWRkIHN5cy91aW8uaCBmb3IgRkJTRAoJYnVpbGRzIGFuZCByZW1vdmUgb2xkIHN0ZGlvIHJlZmVyZW5jZXMKCjIwMDUtMDMtMTcgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIFJFQURNRSwgc3JjL2NvbXAuYzogU3dhcCBjb21wcmVzc2lvbiBtb2RlIHByZWZlcmVuY2VzLCBwcmVmZXIKCW5vbmUgb3ZlciB6bGliIGJ5IGRlZmF1bHQKCjIwMDUtMDMtMTcgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIFJFQURNRTogTGF0ZSBuZXdzCgoyMDA1LTAzLTAyICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBzcmMvaG9zdGtleS5jOiBQb3NzaWJsZSBmaXggZm9yIGNvbXBhdGFiaWxpdHkgd2l0aCBPcGVuU1NMIDwKCTAuOS43CgoyMDA1LTAyLTI4ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBzcmMvY29tcC5jOiBzdHJtLT5uZXh0X291dCBkb2Vzbid0ICpzdGF5KiA9PSBvdXQsIG9ubHkgZnJlZSBvdXQKCjIwMDUtMDItMTggIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIGluY2x1ZGUvbGlic3NoMi5oLCBpbmNsdWRlL2xpYnNzaDJfcHJpdi5oLAoJaW5jbHVkZS9saWJzc2gyX3NmdHAuaCwgc3JjL2NoYW5uZWwuYywgc3JjL2NvbXAuYywgc3JjL2NyeXB0LmMsCglzcmMvaG9zdGtleS5jLCBzcmMva2V4LmMsIHNyYy9tYWMuYywgc3JjL21pc2MuYywgc3JjL3BhY2tldC5jLAoJc3JjL3NjcC5jLCBzcmMvc2Vzc2lvbi5jLCBzcmMvc2Z0cC5jLCBzcmMvdXNlcmF1dGguYywgTElDRU5TRToKCVVwZGF0ZSBjb3B5cmlnaHQgeWVhcgoKMjAwNS0wMi0xOCAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogaW5jbHVkZS9saWJzc2gyLmgsIGNvbmZpZ3VyZS5pbjogQnVtcCBmb3IgcmVsZWFzZQoKMjAwNS0wMi0xOCAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogTWFrZWZpbGUuaW46IEFkZCB3aW4zMi8gZmlsZXMgdG8gZGlzdAoKMjAwNS0wMi0xOCAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogd2luMzIvY29uZmlnLm1rOiBHZW5lcmljaXNlIHdpbjMyIGJ1aWxkIHBhcmFtcwoKMjAwNS0wMi0xNyAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogUkVBRE1FLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbGlic3NoMi5oOiBBZGQgc3VwcG9ydCBmb3IKCU1hY09TWChEYXJ3aW4pCgoyMDA1LTAyLTE0ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBSRUFETUUsIHNyYy91c2VyYXV0aC5jLCBpbmNsdWRlL2xpYnNzaDIuaDogQWRkIHN1cHBvcnQgZm9yCglob3N0YmFzZWQgcHVia2V5IGF1dGhlbnRpY2F0aW9uCgoyMDA1LTAyLTE0ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBSRUFETUUsIHNyYy9jaGFubmVsLmM6IEFja25vd2xlZGdlIHdpbmRvdyBhZGp1c3RtZW50cyBhbmQgZml4IHRoZQoJcGFyZW4gYnVnIEkganVzdCBpbnRyb2R1Y2VkIDopCgoyMDA1LTAyLTE0ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBzcmMvY2hhbm5lbC5jOiBGaXggZXh0ZW5kZWQgZGF0YSBpZGVudGlmaWNhdGlvbiBhbmQgbWFrZSB3aW5kb3cKCWFkanVzdCBhbHdheXMgYmUgc2VudAoKMjAwNS0wMi0wOSAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogTWFrZWZpbGUuaW4sIFRPRE86IFJlbW92ZSBUT0RPIGZpbGUKCjIwMDUtMDItMDkgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9saWJzc2gyLmg6IEJ1bXAgZm9yIHJlbGVhc2UKCjIwMDUtMDItMDkgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIGluY2x1ZGUvbGlic3NoMi5oOiBUaGVzZSBhcmVuJ3QgbWVhbmluZ2Z1bCBzaW5jZSB3ZSBkb24ndCBicmluZwoJbGlic3NoMl9jb25maWcuaCBpbgoKMjAwNS0wMi0wMyAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogUkVBRE1FLCBpbmNsdWRlL2xpYnNzaDIuaCwgaW5jbHVkZS9saWJzc2gyX3ByaXYuaCwgc3JjL3BhY2tldC5jLAoJc3JjL3Nlc3Npb24uYzogQWRkZWQgbGlic3NoMl9zZXNzaW9uX2ZsYWcoKSBhbmQKCUxJQlNTSDJfRkxBR19TSUdQSVBFIHdpdGggaG9va3MKCjIwMDUtMDItMDMgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIGluY2x1ZGUvbGlic3NoMl9wcml2LmgsIFJFQURNRSwgc3JjL2tleC5jLCBzcmMvcGFja2V0LmMsCglzcmMvc2Vzc2lvbi5jLCBzcmMvdXNlcmF1dGguYzogQ29sbGFwc2Ugc3RhdGUgZmxhZ3MgaW50byBzaW5nbGUKCWJpdG1hc2sgYXR0cmlidXRlCgoyMDA1LTAyLTAxICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBSRUFETUUsIHNyYy9jb21wLmM6IEZpeCB6bGliIGNvbXByZXNzaW9uIHdoZW4gaW50ZXJuYWwgYnVmZmVyIG5vdAoJZW1wdHkKCjIwMDUtMDEtMjIgIEVkaW5rIEthZHJpYmFzaWMKCgkqIHdpbjMyL2xpYnNzaDJfY29uZmlnLmg6IFNpbGVuY2Ugd2FybmluZ3Mgd2hlbiB3aW4zMiBpcyBhbHJlYWR5CglkZWZpbmVkLiAgRW5hYmxlIHpsaWIgYW5kIG5ld2VyIGRpZmZpZS1oZWxsbWFuLWdyb3VwLWV4Y2hhbmdlLXNoYTEKCXN5bnRheC4KCjIwMDUtMDEtMjIgIEVkaW5rIEthZHJpYmFzaWMKCgkqIHdpbjMyL2xpYnNzaDIuZHNwLCB3aW4zMi9zc2gyX3NhbXBsZS5kc3A6IEFkanVzdCBwcm9qZWN0IGZpbGVzIHRvCglsaXZlIGluIC93aW4zMgoKMjAwNS0wMS0yMiAgRWRpbmsgS2FkcmliYXNpYwoKCSogd2luMzIvbGlic3NoMi5kc3AsIHdpbjMyL3NzaDJfc2FtcGxlLmRzcDogQ29ycmVjdCBsaW5lIGVuZGluZ3MKCjIwMDUtMDEtMjEgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIHNyYy9zZXNzaW9uLmMsIFJFQURNRTogQXZvaWQgc2VnZmF1bHQgd2hlbgoJbGlic3NoMl9zZXNzaW9uX21ldGhvZHMoKSBjYWxsZWQgdG9vIGVhcmx5CgoyMDA1LTAxLTIwICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBSRUFETUU6IEJGTgoKMjAwNS0wMS0yMCAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogc3JjL2NoYW5uZWwuYywgc3JjL3BhY2tldC5jOiBIYW5kbGUgQ2xpZW50LVRvLVNlcnZlciBjaGFubmVsCgl3aW5kb3dpbmcuCgoyMDA1LTAxLTE5ICBiaW90CgoJKiBzcmMvc2NwLmM6IEFkZGVkIGEgY291cGxlIG9mIGNvbW1lbnRzIHRvIGtlZXAgbXkKCWxhc3QtZXJyb3Itbm90LXNldC1vLW1ldGVyIGZyb20gZ29pbmcgb2ZmCgoyMDA1LTAxLTE4ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBzcmMvc2Vzc2lvbi5jOiBDYW4ndCByZW1lbWJlciB3aHkgSSBkaWQgdGhpcywgYmFubmVyIHNob3VsZAoJYWx3YXlzIGJlIHNlbnQgYmVmb3JlIHRyeWluZyB0byByZWNlaXZlCgoyMDA1LTAxLTE4ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBzcmMvaG9zdGtleS5jOiBTaW1wbGlmeSBEU0Egc2lnbmluZyBwcm9jZXNzCgoyMDA1LTAxLTE4ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBpbmNsdWRlL2xpYnNzaDIuaDogRml4IHU2NGludCBpZmRlZiBzdGF0ZW1lbnQKCjIwMDUtMDEtMTEgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIHdpbjMyL2xpYnNzaDIuZHNwLCB3aW4zMi9saWJzc2gyLmRzdywgd2luMzIvc3NoMl9zYW1wbGUuZHNwOiBBZGQKCU1TVkM2IGJ1aWxkIGZpbGVzCgoyMDA1LTAxLTExICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBzcmMvbWlzYy5jOiBGaW5pc2ggbWFraW5nIG1zdmM2IGhhcHB5CgoyMDA1LTAxLTExICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBjb25maWd1cmUuaW4sIGluY2x1ZGUvbGlic3NoMi5oOiBCdW1wIGZvciByZWxlYXNlICh0YXJkeSkKCjIwMDUtMDEtMTEgIFdleiBGdXJsb25nCgoJKiBpbmNsdWRlL2xpYnNzaDIuaCwgaW5jbHVkZS9saWJzc2gyX3ByaXYuaCwKCWluY2x1ZGUvbGlic3NoMl9zZnRwLmgsIHNyYy9zZnRwLmM6IGJlIG5pY2UgdG8gbXN2YyA2CgoyMDA1LTAxLTExICBXZXogRnVybG9uZwoKCSogd2luMzIvY29uZmlnLm1rOiBBZGQgcmVsZWFzZSBidWlsZCBmb3Igd2luMzIKCjIwMDUtMDEtMTAgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIGluY2x1ZGUvbGlic3NoMi5oOiBBbGxvdyBhbHRlcm5hdGUgQVBJIHByZWZpeCBmcm9tIENGTEFHUyBvcgoJY2FsbGluZyBhcHAKCjIwMDUtMDEtMTAgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIE1ha2VmaWxlLmluOiBBZGQgZGlzdF9ubWFrZSB0YXJnZXQKCjIwMDUtMDEtMDcgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIFJFQURNRSwgc3JjL3NmdHAuYzogRml4IHNldHN0YXQgY2FsbHMuICBsaWJzc2gyX2F0dHIyYmluIHdhcwoJbWFza2luZyBvdXQgZmxhZ3MKCjIwMDUtMDEtMDcgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIHNyYy9ob3N0a2V5LmMsIFJFQURNRTogTmVlZCB0byBsb2FkIHRoZSBjaXBoZXIgZGVmaW5pdGlvbnMgaWYgd2UKCWV4cGVjdCB0byB1c2UgdGhlbS4uLgoKMjAwNS0wMS0wNyAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogUkVBRE1FLCBzcmMvaG9zdGtleS5jOiBGaXggc3NoLWRzcyBwdWJsaWMga2V5IGF1dGhlbnRpY2F0aW9uCgoyMDA1LTAxLTA2ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBzcmMvY2hhbm5lbC5jOiBPb29wcywgdGhpcyBzaG91bGQgaGF2ZSBiZWVuIGhleGl0cywgbm90IHJhdyBieXRlcwoKMjAwNS0wMS0wNiAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogaW5jbHVkZS9saWJzc2gyLmgsIGluY2x1ZGUvbGlic3NoMl9wcml2LmgsIHNyYy9jaGFubmVsLmMsCglzcmMvcGFja2V0LmMsIHNyYy9zZXNzaW9uLmM6IEFkZCBYMTEgZm9yd2FyZGluZyBzdXBwb3J0CgoyMDA1LTAxLTAzICBXZXogRnVybG9uZwoKCSogTk1ha2VmaWxlLCBzc2gyX3NhbXBsZS5jLCBpbmNsdWRlL2xpYnNzaDIuaCwKCWluY2x1ZGUvbGlic3NoMl9wcml2LmgsIHNyYy9OTWFrZWZpbGUsIHNyYy9jaGFubmVsLmMsIHNyYy9wYWNrZXQuYywKCXNyYy9zZXNzaW9uLmMsIHNyYy9zZnRwLmMsIHdpbjMyL2NvbmZpZy5taywgd2luMzIvbGlic3NoMl9jb25maWcuaCwKCXdpbjMyL3J1bGVzLm1rOiBBZGQgc3VwcG9ydCBmb3Igd2luMzIuCgoJRWRpdCB3aW4zMi9jb25maWcubWsgdG8gc2V0IHRoZSBwYXRocyB0byB5b3VyIG9wZW5zc2wgYW5kIHpsaWIKCWhlYWRlcnMgYW5kIGxpYnJhcmllcy4KCglUaGVuLCBmcm9tIHRoZSByb290IG9mIHRoZSB0cmVlOgoKCQlubWFrZSAtZiBOTWFrZWZpbGUKCgl2b2lsYS4KCjIwMDUtMDEtMDEgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YjogT29vcHMsIGZvcmdvdCB0byBhZGQgdGhlc2UKCjIwMDUtMDEtMDEgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIE1ha2VmaWxlLmluLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbGlic3NoMi5oLAoJaW5jbHVkZS9saWJzc2gyX3ByaXYuaDogTW92ZSB0b3dhcmRzIGEgd29ya2luZyB3aW4zMiBidWlsZAoKMjAwNC0xMi0zMSAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5pbjogTGV0IC4vY29uZmlndXJlIHBvcHVsYXRlIFZFUlNJT04gaW4KCU1ha2VmaWxlCgoyMDA0LTEyLTMxICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBJTlNUQUxMOiBBZGRpdGlvbmFsIGluc3RhbGwgZG9jcwoKMjAwNC0xMi0zMSAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogUkVBRE1FLCBpbmNsdWRlL2xpYnNzaDJfcHJpdi5oLCBzcmMva2V4LmMsIHNyYy9tYWMuYzogQWRkZWQKCXN1cHBvcnQgZm9yIE1BQyBtZXRob2RzOiBobWFjLW1kNSBhbmQgaG1hYy1tZDUtOTYKCglrZXlfbGVuIHNob3VsZCBub3QgaGF2ZSBiZWVuIGluIEtFWF9NRVRIT0QsIGl0J3MgZGVwZW5kZW50IG9uIE1BQwoJbWV0aG9kLCBub3QgS0VYIG1ldGhvZC4KCglUaGlzIGlzIHdoeSB0aGUgTUQ1IE1BQ3Mgd2VyZSBib3JrZWQgaW5pdGlhbGx5LCBtZDUgaGFzIGEga2V5X2xlbiBvZgoJMTYsIG5vdCAyMC4KCjIwMDQtMTItMzEgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIGluY2x1ZGUvbGlic3NoMi5oOiBBUElOTyBzaG91bGQgaGF2ZSBiZWVuIGJ1bXBlZCB3aGVuCglzZXNzaW9uX21ldGhvZHMoKSBwcm90byB3YXMgY2hhbmdlZAoKMjAwNC0xMi0zMSAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogUkVBRE1FLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbGlic3NoMi5oLAoJaW5jbHVkZS9saWJzc2gyX2NvbmZpZy5oLmluOiBBZGQgLi9jb25maWd1cmUgb3B0aW9uCgknLS1kaXNhYmxlLWdleC1uZXcnIHRvIGZhbGxiYWNrIG9uIG9sZGVyCglkaWZmaWUtaGVsbG1hbi1ncm91cC1leGNoYW5nZS1zaGExIHN5bnRheC4KCglpLmUuIFVzZSBTU0hfTVNHX0tFWF9ESF9HRVhfUkVRVUVTVF9PTEQgcmF0aGVyIHRoZW4KCVNTSF9NU0dfS0VYX0RIX0dFWF9SRVFVRVNUCgoJU2VlIGRyYWZ0LWlldGYtc2Vjc2gtZGgtZ3JvdXAtZXhjaGFuZ2Ugc2VjdGlvbiA3IGZvciBkZXRhaWxzLgoKMjAwNC0xMi0zMCAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogUkVBRE1FOiBOb3RlIGNoYW5nZSB0byBsaWJzc2gyX3Nlc3Npb25fbWV0aG9kcygpCgoyMDA0LTEyLTMwICBiaW90CgoJKiBpbmNsdWRlL2xpYnNzaDIuaCwgc3JjL3Nlc3Npb24uYzogQ2hhbmdlZAoJbGlic3NoMl9zZXNzaW9uX21ldGhvZHMoKSB0byB1c2UgbWV0aG9kX3R5cGUgcGFyYW1ldGVyCgoyMDA0LTEyLTMwICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBpbmNsdWRlL2xpYnNzaDIuaCwgc3JjL2tleC5jOiBBZGQgZXJyb3IgY29kZXMgdG8KCXNlc3Npb25fbWV0aG9kX3ByZWYoKQoKMjAwNC0xMi0yOSAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogaW5jbHVkZS9saWJzc2gyLmgsIGluY2x1ZGUvbGlic3NoMl9wcml2LmgsIFJFQURNRSwgc3JjL2NoYW5uZWwuYywKCXNyYy9wYWNrZXQuYywgc3JjL3Nlc3Npb24uYzogQWRkIHJlbW90ZSB0Y3AvaXAgZm9yd2FyZGluZy4KCjIwMDQtMTItMjcgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIFJFQURNRSwgc3JjL2tleC5jLCBzcmMvcGFja2V0LmM6IHVzZSBhY3R1YWwgcmFuZG9tIGRhdGEgd2l0aAoJS0VYX0lOSVQgY29va2llIGFuZCBwYWNrZXQgcGFkZGluZwoKMjAwNC0xMi0yNiAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogTWFrZWZpbGUuaW4sIFJFQURNRSwgc3JjL01ha2VmaWxlLmluOiBBZGQgREVTVERJUiBzdXBwb3J0IGR1cmluZwoJJ21ha2UgaW5zdGFsbCcgKEFkYW0gR2+z6mJpb3dza2kpCgoyMDA0LTEyLTI0ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLmluLCBpbmNsdWRlL2xpYnNzaDIuaDogQnVtcCBmb3IgcmVsZWFzZQoKMjAwNC0xMi0yNCAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogUkVBRE1FLCBpbmNsdWRlL2xpYnNzaDIuaCwgc3JjL3Nlc3Npb24uYzogQWRkZWQKCWxpYnNzaDJfYmFubmVyX3NldCgpCgoyMDA0LTEyLTI0ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBSRUFETUUsIHNyYy9zZnRwLmM6IEZpeGVkIGxlYWsgaW4gc2Z0cF9zeW1saW5rX2V4KCksIHJlc3VsdCBmb3IKCVJFQURMSU5LIGFuZCBSRUFMUEFUSCBub3QgZnJlZWQgdW5sZXNzIHRoZXJlIHdhcyBhbiBlcnJvci4KCjIwMDQtMTItMjQgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIFJFQURNRSwgc3JjL3NmdHAuYzogUGx1ZyBsZWFrIGluIGhhbmRsZSBzdHJpbmcgcHJvdmlkZWQgYnkKCXNmdHBfb3BlbgoKMjAwNC0xMi0yNCAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogUkVBRE1FLCBzcmMvc2Z0cC5jOiBGaXggY3Jhc2ggaW4gc2Z0cF9jbG9zZV9oYW5kbGUuCgoJRG9uJ3QgZnJlZSBkaXIgaGFuZGxlIGRhdGEgd2hlbiBpdCdzIG5vdCBhIGRpciBoYW5kbGUhCgoyMDA0LTEyLTIzICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBNYWtlZmlsZS5pbiwgVE9ETywgY29uZmlndXJlLmluLCBpbmNsdWRlL2xpYnNzaDIuaDogQnVtcCB2ZXJzaW9uCglmb3IgcmVsZWFzZSBhbmQgcmVtb3ZlIFNGVFAgZnJvbSBUT0RPIGxpc3QKCjIwMDQtMTItMjMgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIFJFQURNRSwgc3JjL3BhY2tldC5jOiBNYWtlIGxpYnNzaDJfcGFja2V0X3JlYWQoKSB1c2UgYSBzdGF0aWMKCWJ1ZmZlciB0byBhdm9pZCB1bm5lY2Vzc2FyeSBhbGxvYyBhbmQgZnJlZSBjYWxscy4KCglTaW5jZSB0aGUgY2lwaGVyIGFuZCBtYWMgbGF5ZXJzIGFyZW4ndCBydW50aW1lIGV4dGVuc2libGUgKHlldCkgYW5kCgl3ZSBrbm93IG5laXRoZXIgb2YgdGhlc2Ugd29ya3MgaW4gc2l6ZXMgZ3JlYXRlciB0aGFuIDMyLCB3ZSBjYW4KCXNhZmVseSBzZXQgYXNpZGUgYSA2NCBieXRlIGJsb2NrIG9mIGRhdGEgb24gdGhlIHN0YWNrIGZvciBjcnlwdGluZwoJYW5kIGhhc2hpbmcuCgoJVGhpcyB3aWxsIG1ha2UgYSBiaWcgZGlmZmVyZW5jZSBkdXJpbmcgcXVhc2ktbm9uLWJsb2NraW5nIHJlYWRzCgl3aGVyZSBsaWJzc2gyX3BhY2tldF9yZWFkKCkgaXMgcG9sbGVkIHJlcGVhdGVkbHkuCgoyMDA0LTEyLTIyICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBpbmNsdWRlL2xpYnNzaDJfc2Z0cC5oLCBzcmMvc2Z0cC5jOiBFeHBvc2Ugc3BlY2lmaWMgU0ZUUCBlcnJvcgoJY29kZXMgdG8gdGhlIGNhbGxpbmcgcHJvZ3JhbQoKMjAwNC0xMi0yMiAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogTElDRU5TRSwgY29uZmlndXJlLmluLCBpbmNsdWRlL2xpYnNzaDIuaCwgaW5jbHVkZS9saWJzc2gyX3ByaXYuaCwKCWluY2x1ZGUvbGlic3NoMl9zZnRwLmgsIHNyYy9jaGFubmVsLmMsIHNyYy9jb21wLmMsIHNyYy9jcnlwdC5jLAoJc3JjL2hvc3RrZXkuYywgc3JjL2tleC5jLCBzcmMvbWFjLmMsIHNyYy9taXNjLmMsIHNyYy9wYWNrZXQuYywKCXNyYy9zY3AuYywgc3JjL3Nlc3Npb24uYywgc3JjL3NmdHAuYywgc3JjL3VzZXJhdXRoLmM6IFVwZGF0ZQoJY29udGFjdCBpbmZvIHdpdGggbmV3IGRvbWFpbgoKMjAwNC0xMi0yMiAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogTWFrZWZpbGUuaW4sIFJFQURNRSwgaW5jbHVkZS9saWJzc2gyLmgsIGluY2x1ZGUvbGlic3NoMl9wcml2LmgsCglpbmNsdWRlL2xpYnNzaDJfc2Z0cC5oLCBzcmMvTWFrZWZpbGUuaW4sIHNyYy9taXNjLmMsIHNyYy9zZnRwLmM6CglBZGQgU0ZUUCBzdXBwb3J0CgoyMDA0LTEyLTIwICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBpbmNsdWRlL2xpYnNzaDJfcHJpdi5oOiBGaXggTElCU1NIMl9DSEFOTkVMX0NMT1NFIGZvciB0aGUgTEFTVAoJVElNRS4KCjIwMDQtMTItMjAgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIGluY2x1ZGUvbGlic3NoMi5oLCBpbmNsdWRlL2xpYnNzaDJfcHJpdi5oOiBPb29wcywgdHJ5IHRoYXQKCWFnYWluLi4uCgoyMDA0LTEyLTIwICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBSRUFETUUsIGluY2x1ZGUvbGlic3NoMi5oLCBpbmNsdWRlL2xpYnNzaDJfcHJpdi5oLCBzcmMvY2hhbm5lbC5jLAoJc3JjL3NjcC5jOiBGaXhlczogc2NwIGJsb2NraW5nIG1vZGVzLCBNYWNFcnJvciBhYnN0cmFjdCBpbmRpcmVjdGlvbgoJQWRkaXRpb25zOiBDaGFubmVsIENsb3NlIGNhbGxiYWNrCgoyMDA0LTEyLTE4ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBzcmMvcGFja2V0LmMsIGluY2x1ZGUvbGlic3NoMi5oOiBBIGJyb2tlbiBkZWNyeXB0IChvciBmYWxzZQoJcGFja2V0KSBjb3VsZCBjYXVzZSBhbiB1bnJlYXNvbmFibHkgbGFyZ2UgYmxvY2sgb2YgbWVtb3J5IHRvIGJlCglhbGxvY2F0ZWQgbGVhZGluZyB0byBpbmRldGVybWluYXRlIHJlc3VsdHMuCgoJU1NILVRSQU5TIG9ubHkgcmVxdWlyZXMgaW1wbGVtZW50YXRpb25zIHRvIGhhbmRsZSBhYm91dCBhYm91dCAzMmsKCWNvbXByZXNzZWQgbGVuZ3RoIHBlciBwYWNrZXQuICBBbGxvdyA0MGsgdG8gYmUgc2FmZSwgYnV0IG5vIG1vcmUuCgoyMDA0LTEyLTE4ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBzcmMvY2hhbm5lbC5jLCBSRUFETUU6IEZpeGVkIHBvbGxpbmcgZXJyb3IgaW4KCWxpYnNzaDJfY2hhbm5lbF9yZWFkX2V4KCkKCjIwMDQtMTItMTcgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIHNyYy9jaGFubmVsLmM6IFBhY2tldCBxdWV1ZWluZyBtZWNoYW5pc20gYWxsb3dzIGRhdGEgd2hpY2gKCWltbWVkaWF0ZWx5IGZvbGxvd3Mgb3BlbiBjb25maXJtYXRpb24gdG8gZ2V0IGlnbm9yZWQuICBXb3JrIGFyb3VuZAoJdGhpcyBieSBhZGRpbmcgdGhlIGNoYW5uZWwgdG8gdGhlIGxpc3QgYmVmb3JlIG9wZW5pbmcgaXQuCgoyMDA0LTEyLTE3ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLmluLCBpbmNsdWRlL2xpYnNzaDIuaDogQnVtcCB2ZXJzaW9uIGZvcgoJcmVsZWFzZQoKMjAwNC0xMi0xNiAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogc3JjL2NoYW5uZWwuYzogRml4IHJldHVybiBjb2RlIGluIGxpYnNzaDJfY2hhbm5lbF93cml0ZV9leCgpCgoyMDA0LTEyLTE2ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBSRUFETUUsIGluY2x1ZGUvbGlic3NoMi5oLCBzcmMvc2Vzc2lvbi5jOiBDaGFuZ2VkCglsaWJzc2gyX3Nlc3Npb25fZGlzY29ubmVjdF9leCgpIHRvIHJldHVybiBhbiBlcnJvciBjb2RlIG9uIGZhaWxlZAoJYWxsb2MuCgoyMDA0LTEyLTE2ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBzcmMvaG9zdGtleS5jOiBDb3JyZWN0IGNvbW1lbnRzIGZvciBob3N0a2V5X2hhc2gKCjIwMDQtMTItMTYgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIFJFQURNRSwgaW5jbHVkZS9saWJzc2gyLmgsIHNyYy9zZXNzaW9uLmM6IEFkZAoJbGlic3NoMl9zZXNzaW9uX2xhc3RfZXJyb3IoKQoKMjAwNC0xMi0xMCAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogc3JjL3VzZXJhdXRoLmM6IFRoaXMgaW5pdGlhbGl6YXRpb24gd2FzIGJhc2VkIG9uIGFuIGVhcmxpZXIKCWNvbmNlcHQKCjIwMDQtMTItMDkgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIFJFQURNRSwgaW5jbHVkZS9saWJzc2gyLmgsIHNyYy9zZXNzaW9uLmM6IEFkZGVkCglsaWJzc2gyX3Nlc3Npb25fYWJzdHJhY3QoKQoKMjAwNC0xMi0wOSAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogUkVBRE1FLCBpbmNsdWRlL2xpYnNzaDIuaCwgaW5jbHVkZS9saWJzc2gyX3ByaXYuaCwgc3JjL2tleC5jLAoJc3JjL3Nlc3Npb24uYzogQWRkIGxpYnNzaDJfc2Vzc2lvbl9tZXRob2RfcHJlZigpIGFuZAoJbGlic3NoMl9zZXNzaW9uX21ldGhvZHMoKS4KCglTcGVjaWZ5IG1ldGhvZHMgdG8gYmUgdXNlZCBhbmQgcmV0cmVpdmUgd2hhdCBtZXRob2RzIHdlcmUKCW5lZ290aWF0ZWQuCgoyMDA0LTEyLTA5ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBpbmNsdWRlL2xpYnNzaDIuaDogTGV0IHRoZSBjYWxsaW5nIHByb2dyYW0ga25vdyB3aGF0IG1ldGhvZHMgd2UKCXN1cHBvcnQKCjIwMDQtMTItMDkgIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIFJFQURNRSwgaW5jbHVkZS9saWJzc2gyLmgsIHNyYy9zZXNzaW9uLmM6IEFkZGVkCglsaWJzc2gyX3Nlc3Npb25fY2FsbGJhY2tfc2V0KCkKCjIwMDQtMTItMDggIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIFJFQURNRSwgaW5jbHVkZS9saWJzc2gyLmgsIHNyYy9jaGFubmVsLmM6IEFkZCBmbHVzaCBtZWNoYW5pc20gdG8KCXRoZSBjaGFubmVsIEFQSQoKMjAwNC0xMi0wOCAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogUkVBRE1FOiBVcGRhdGUgY2hhbmdlbG9nCgoyMDA0LTEyLTA4ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBpbmNsdWRlL2xpYnNzaDIuaCwgaW5jbHVkZS9saWJzc2gyX3ByaXYuaCwgc3JjL2NoYW5uZWwuYywKCXNyYy9wYWNrZXQuYzogQ2hhbmdlIGV4dGVuZGVkIGRhdGEgaWdub3JlIHRvIGFsbG93IG1lcmdpbmcgZXh0ZW5kZWQKCWRhdGEgaW50byB0aGUgcHJpbWFyeSBzdHJlYW0KCjIwMDQtMTItMDggIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIE1ha2VmaWxlLmluOiBBZGQgSU5TVEFMTCwgYW5kIHJlbW92ZSBjb25maWd1cmUuaW4gZnJvbSAnbWFrZQoJZGlzdCcKCjIwMDQtMTItMDggIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIElOU1RBTEw6IEJhc2ljIEluc3RydWN0aW9ucwoKMjAwNC0xMi0wOCAgU2FyYSBHb2xlbW9uIDxwb2xsaXRhQGxpYnNzaDIub3JnPgoKCSogaW5jbHVkZS9saWJzc2gyLmgsIE1ha2VmaWxlLmluOiBCdW1wIHZlcnNpb24gZm9yIHJlbGVhc2UKCjIwMDQtMTItMDggIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIGluY2x1ZGUvbGlic3NoMi5oLCBpbmNsdWRlL2xpYnNzaDJfcHJpdi5oLCBzcmMvY2hhbm5lbC5jLAoJc3JjL3BhY2tldC5jOiBBZGQgImlnbm9yZSBleHRlbmRlZCBkYXRhIiBvcHRpb24gdG8gYXZvaWQgaGF2aW5nCglzdGRlcnIgZGF0YSBmaWxsIHVwIHRoZSByZWNlaXZlIHdpbmRvdyBhbmQgbGVhdmluZyBubyByb29tIGZvciBzdGRpbwoJZGF0YS4KCjIwMDQtMTItMDggIFNhcmEgR29sZW1vbiA8cG9sbGl0YUBsaWJzc2gyLm9yZz4KCgkqIHNyYy9jaGFubmVsLmM6IFBsdWcgbWVtb3J5IGxlYWtzIGluIHJlcXVlc3RfcHR5IGFuZAoJY2hhbm5lbC0+Y2hhbm5lbF90eXBlCgoyMDA0LTEyLTA3ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBMSUNFTlNFLCBNYWtlZmlsZS5pbiwgUkVBRE1FLCBUT0RPLCBjb25maWd1cmUuaW4sIGluc3RhbGwtc2gsCglta2luc3RhbGxkaXJzLCBzc2gyX3NhbXBsZS5jLCBpbmNsdWRlL2xpYnNzaDIuaCwKCWluY2x1ZGUvbGlic3NoMl9jb25maWcuaC5pbiwgaW5jbHVkZS9saWJzc2gyX3ByaXYuaCwKCXNyYy9NYWtlZmlsZS5pbiwgc3JjL2NoYW5uZWwuYywgc3JjL2NvbXAuYywgc3JjL2NyeXB0LmMsCglzcmMvaG9zdGtleS5jLCBzcmMva2V4LmMsIHNyYy9tYWMuYywgc3JjL21pc2MuYywgc3JjL3BhY2tldC5jLAoJc3JjL3NjcC5jLCBzcmMvc2Vzc2lvbi5jLCBzcmMvdXNlcmF1dGguYzogSW5pdGlhbCBJbXBvcnQuCgoyMDA0LTEyLTA3ICBTYXJhIEdvbGVtb24gPHBvbGxpdGFAbGlic3NoMi5vcmc+CgoJKiBMSUNFTlNFLCBNYWtlZmlsZS5pbiwgUkVBRE1FLCBUT0RPLCBjb25maWd1cmUuaW4sIGluc3RhbGwtc2gsCglta2luc3RhbGxkaXJzLCBzc2gyX3NhbXBsZS5jLCBpbmNsdWRlL2xpYnNzaDIuaCwKCWluY2x1ZGUvbGlic3NoMl9jb25maWcuaC5pbiwgaW5jbHVkZS9saWJzc2gyX3ByaXYuaCwKCXNyYy9NYWtlZmlsZS5pbiwgc3JjL2NoYW5uZWwuYywgc3JjL2NvbXAuYywgc3JjL2NyeXB0LmMsCglzcmMvaG9zdGtleS5jLCBzcmMva2V4LmMsIHNyYy9tYWMuYywgc3JjL21pc2MuYywgc3JjL3BhY2tldC5jLAoJc3JjL3NjcC5jLCBzcmMvc2Vzc2lvbi5jLCBzcmMvdXNlcmF1dGguYzogSW5pdGlhbCByZXZpc2lvbgoK